#ifndef _DRS_SEARCH_H
#define _DRS_SEARCH_H

////////////////////////////////////////////////////////
// DRS_SearchField
////////////////////////////////////////////////////////
#include "drs_type.h"
#include "drs_setting.h"
#include "drs_indexlist.h"

#include "drs_fld.h"

class DRS_Database;
class DRS_Index;

class DRS_SearchField
{
public:
  explicit DRS_SearchField( DRS_Database const &rDatabase, AT_String fp, AT_String sSection, DRS_Setting BaseKey);

  inline DRS_Descriptor const & Descriptor() const { return Descr;};
  inline uint                   DataFieldCount() const { return( iFieldCount);};
  DRS_Field const &             DataField( uint iDataField) const;

  inline DRS_IndexList const &  IndexList() const { return *apIndexList.get();};

private:
  DRS_DescriptorSerialize        Descr;

  uint                           iFieldCount;
  std::vector< DRS_Field const *> DataFields;
  std::vector< uint>              DataFieldApplIDs; //Mustr maintain ApplIDs since user wants to access.

  //AT_FieldID      *    FieldIDs;

  auto_ptr<DRS_IndexList> apIndexList;
};
#endif

