00001 
00002 
00003 
00004 
00009 #ifndef __FIELD_H__
00010 #define __FIELD_H__
00011 
00012 #ifndef __K4CONF_H__
00013 #error Please include "k4conf.h" before this header file
00014 #endif
00015   
00017 
00018 class c4_Field
00019 {
00020   c4_PtrArray _subFields;
00021   c4_String _name;
00022   char _type;
00023   c4_Field* _indirect;
00024 
00025 public: 
00026 
00027   c4_Field (const char*&, c4_Field* =0);
00028     
00029   ~c4_Field ();
00030 
00031 
00032   int NumSubFields() const; 
00033     
00034   c4_Field& SubField(int) const;
00035     
00036   bool IsRepeating() const;
00037     
00038   
00039 
00040   const c4_String& Name() const;
00041     
00042   char Type() const;
00043     
00044   char OrigType() const;
00045     
00046   c4_String Description(bool anonymous_ =false) const;
00047     
00048   c4_String DescribeSubFields(bool anonymous_ =false) const;
00049     
00050   
00051 private:
00052   c4_Field (const c4_Field&);     
00053   void operator= (const c4_Field&); 
00054 };
00055 
00057 
00058 #if q4_INLINE
00059 #include "field.inl"
00060 #endif
00061 
00063 
00064 #endif