|
Go to the documentation of this file.
23 #ifndef FAUDES_RTITYPES_H
24 #define FAUDES_RTITYPES_H
174 class TypeDefinition;
264 virtual Type* New( void) const;
278 virtual Type* Copy( void) const;
293 virtual const Type* Cast( const Type* pOther) const;
299 virtual void Clear( void);
318 virtual Type& Assign( const Type& rSrc);
357 virtual bool Equal( const Type& rOther) const;
375 bool operator==( const Type& rOther) const;
391 bool operator!=( const Type& rOther) const;
403 virtual void Name( const std::string& rName);
413 virtual const std::string& Name( void) const;
425 virtual const std::string& TypeName( void) const;
436 void Write( const Type* pContext=0) const;
455 void Write( const std::string& pFileName, const std::string& rLabel= "",
456 const Type* pContext=0, std::ios::openmode openmode = std::ios::out|std::ios::trunc) const;
471 void Write( const std::string& pFileName, std::ios::openmode openmode) const;
488 void Write( TokenWriter& rTw, const std::string& rLabel= "", const Type* pContext=0) const;
506 virtual void XWrite( const std::string& pFileName, const std::string& rLabel= "",
507 const Type* pContext=0) const;
518 void XWrite( const Type* pContext=0) const;
535 void XWrite( TokenWriter& rTw, const std::string& rLabel= "", const Type* pContext=0) const;
551 std::string ToString( const std::string& rLabel= "", const Type* pContext=0) const;
569 std::string ToText( const std::string& rLabel= "", const Type* pContext=0) const;
580 void DWrite( const Type* pContext=0) const;
599 void DWrite( const std::string& pFileName, const std::string& rLabel= "",
600 const Type* pContext=0, std::ios::openmode openmode = std::ios::out|std::ios::trunc) const;
617 void DWrite( TokenWriter& rTw, const std::string& rLabel= "", const Type* pContext=0) const;
638 void SWrite( void) const;
650 std::string ToSText( void) const;
668 void Read( const std::string& rFileName, const std::string& rLabel = "", const Type* pContext=0);
685 void FromString( const std::string& rString, const std::string& rLabel= "", const Type* pContext=0);
703 void Read( TokenReader& rTr, const std::string& rLabel = "", const Type* pContext=0);
718 void DoAssign( const Type& rSrc);
730 bool DoEqual( const Type& rOther) const;
749 virtual void DoRead( TokenReader& rTr, const std::string& rLabel = "", const Type* pContext=0);
767 virtual void DoWrite( TokenWriter& rTw, const std::string& rLabel= "", const Type* pContext=0) const;
787 virtual void DoXWrite( TokenWriter& rTw, const std::string& rLabel= "", const Type* pContext=0) const;
805 virtual void DoDWrite( TokenWriter& rTw, const std::string& rLabel= "", const Type* pContext=0) const;
852 virtual Token XBeginTag( const std::string& rLabel= "", const std::string& rFallbackLabel= "") const;
872 #define FAUDES_TYPE_DECLARATION(ftype,ctype,cbase) \
873 public: virtual ctype* New(void) const; \
874 public: virtual ctype* Copy(void) const; \
875 public: virtual const Type* Cast(const Type* pOther) const; \
876 public: virtual ctype& Assign(const Type& rSrc); \
877 public: virtual bool Equal(const Type& rOther) const; \
878 public: ctype& operator=(const ctype& rSrc); \
879 public: bool operator==(const ctype& rOther) const; \
880 public: bool operator!=(const ctype& rOther) const;
883 #define FAUDES_TYPE_TDECLARATION(ftype,ctype,cbase) \
884 public: virtual ctype* New(void) const; \
885 public: virtual ctype* Copy(void) const; \
886 public: virtual const Type* Cast(const Type* pOther) const; \
887 public: virtual ctype& Assign(const Type& rSrc); \
888 public: virtual bool Equal(const Type& rOther) const; \
889 public: ctype& operator=(const ctype& rSrc); \
890 public: bool operator==(const ctype& rOther) const; \
891 public: bool operator!=(const ctype& rOther) const;
894 #define FAUDES_TYPE_IMPLEMENTATION_NEW(ftype,ctype,cbase) \
895 ctype* ctype::New(void) const { return new ctype(); }
896 #define FAUDES_TYPE_IMPLEMENTATION_COPY(ftype,ctype,cbase) \
897 ctype* ctype::Copy(void) const { return new ctype(*this); }
898 #define FAUDES_TYPE_IMPLEMENTATION_CAST(ftype,ctype,cbase) \
899 const Type* ctype::Cast(const Type* pOther) const { \
900 return dynamic_cast< const ctype * >(pOther); }
901 #define FAUDES_TYPE_IMPLEMENTATION_ASSIGN(ftype,ctype,cbase) \
902 ctype& ctype::Assign(const Type& rSrc) { \
903 if(const ctype* csattr=dynamic_cast< const ctype * >(&rSrc)) { \
904 this->Clear(); DoAssign(*csattr);} \
906 cbase::Assign(rSrc);}; \
908 ctype& ctype::operator=(const ctype& rSrc) { this->Clear(); DoAssign(rSrc); return *this; }
909 #define FAUDES_TYPE_IMPLEMENTATION_EQUAL(ftype,ctype,cbase) \
910 bool ctype::Equal(const Type& rOther) const { \
911 if(&rOther==this) return true; \
912 if(typeid(rOther) != typeid(*this)) return false; \
913 const ctype* csattr=dynamic_cast<const ctype*>(&rOther); \
914 if(!csattr) return false; \
915 if(!DoEqual(*csattr)) return false; \
917 bool ctype::operator==(const ctype& rOther) const { return DoEqual(rOther); } \
918 bool ctype::operator!=(const ctype& rOther) const { return !DoEqual(rOther); }
921 #define FAUDES_TYPE_TIMPLEMENTATION_NEW(ftype,ctype,cbase,ctemp) \
922 ctemp ctype* ctype::New(void) const { \
923 return new ctype(); }
924 #define FAUDES_TYPE_TIMPLEMENTATION_COPY(ftype,ctype,cbase,ctemp) \
925 ctemp ctype* ctype::Copy(void) const { \
926 return new ctype(*this); }
927 #define FAUDES_TYPE_TIMPLEMENTATION_CAST(ftype,ctype,cbase,ctemp) \
928 ctemp const Type* ctype::Cast(const Type* pOther) const { \
929 return dynamic_cast< const ctype * >(pOther); }
930 #define FAUDES_TYPE_TIMPLEMENTATION_ASSIGN(ftype,ctype,cbase,ctemp) \
931 ctemp ctype& ctype::Assign(const Type& rSrc) { \
932 if(const ctype* csattr=dynamic_cast< const ctype * >(&rSrc)) { \
933 this->Clear(); DoAssign(*csattr);} \
935 cbase::Assign(rSrc);}; \
937 ctemp ctype& ctype::operator=(const ctype& rSrc) { this->Clear(); DoAssign(rSrc); return *this; }
938 #define FAUDES_TYPE_TIMPLEMENTATION_EQUAL(ftype,ctype,cbase,ctemp) \
939 ctemp bool ctype::Equal(const Type& rOther) const { \
940 if(&rOther==this) return true; \
941 if(typeid(rOther) != typeid(*this)) return false; \
942 const ctype* csattr=dynamic_cast<const ctype*>(&rOther); \
943 if(!csattr) return false; \
944 if(!DoEqual(*csattr)) return false; \
946 ctemp bool ctype::operator==(const ctype& rOther) const { return DoEqual(rOther); } \
947 ctemp bool ctype::operator!=(const ctype& rOther) const { return !DoEqual(rOther); }
951 #define FAUDES_TYPE_IMPLEMENTATION(ftype,ctype,cbase) \
952 ctype* ctype::New(void) const { \
953 return new ctype(); } \
954 ctype* ctype::Copy(void) const { \
955 return new ctype(*this); } \
956 const Type* ctype::Cast(const Type* pOther) const { \
957 return dynamic_cast< const ctype * >(pOther); } \
958 ctype& ctype::Assign(const Type& rSrc) { \
959 if(const ctype* csattr=dynamic_cast< const ctype * >(&rSrc)) { \
960 this->Clear(); this->DoAssign(*csattr);} \
962 cbase::Assign(rSrc);}; \
964 ctype& ctype::operator=(const ctype& rSrc) { this->Clear(); this->DoAssign(rSrc); return *this; } \
965 bool ctype::Equal(const Type& rOther) const { \
966 if(&rOther==this) return true; \
967 if(typeid(rOther) != typeid(*this)) return false; \
968 const ctype* csattr=dynamic_cast<const ctype*>(&rOther); \
969 if(!csattr) return false; \
970 if(!this->DoEqual(*csattr)) return false; \
972 bool ctype::operator==(const ctype& rOther) const { return this->DoEqual(rOther); } \
973 bool ctype::operator!=(const ctype& rOther) const { return !this->DoEqual(rOther); }
977 #define FAUDES_TYPE_TIMPLEMENTATION(ftype,ctype,cbase,ctemp) \
978 ctemp ctype* ctype::New(void) const { \
979 return new ctype(); } \
980 ctemp ctype* ctype::Copy(void) const { \
981 return new ctype(*this); } \
982 ctemp const Type* ctype::Cast(const Type* pOther) const { \
983 return dynamic_cast< const ctype * >(pOther); } \
984 ctemp ctype& ctype::Assign(const Type& rSrc) { \
985 if(const ctype* csattr=dynamic_cast< const ctype * >(&rSrc)) { \
986 this->Clear(); this->DoAssign(*csattr);} \
988 cbase::Assign(rSrc);}; \
990 ctemp ctype& ctype::operator=(const ctype& rSrc) { this->Clear(); this->DoAssign(rSrc); return *this; } \
991 ctemp bool ctype::Equal(const Type& rOther) const { \
992 if(&rOther==this) return true; \
993 if(typeid(rOther) != typeid(*this)) return false; \
994 const ctype* csattr=dynamic_cast<const ctype*>(&rOther); \
995 if(!csattr) return false; \
996 if(!this->DoEqual(*csattr)) return false; \
998 ctemp bool ctype::operator==(const ctype& rOther) const { return this->DoEqual(rOther); } \
999 ctemp bool ctype::operator!=(const ctype& rOther) const { return !this->DoEqual(rOther); }
1036 using Type::operator=;
1037 using Type::operator==;
1038 using Type::operator!=;
1061 const std::string& Name( void) const;
1070 const std::string& PlugIn( void) const;
1078 const std::string& CType( void) const;
1084 const std::string& TextDoc( void) const;
1090 const std::string& HtmlDoc( void) const;
1096 const std::string& Keywords( void) const;
1108 std::string MatchKeyword( const std::string& rPattern) const;
1115 int KeywordsSize( void) const;
1123 std::string KeywordAt( int pos) const;
1134 bool AutoRegistered( void) const;
1142 bool ApplicationRegistered( void) const;
1156 virtual void MergeDocumentation( TokenReader& rTr);
1168 void Name( const std::string& name);
1176 void PlugIn( const std::string& plugin);
1184 void CType( const std::string& name);
1192 void TextDoc( const std::string& textdoc);
1202 void AutoRegistered( bool flag);
1212 void ApplicationRegistered( bool flag);
1220 void HtmlDoc( const std::string& fname);
1228 void AddKeyword( const std::string& rKeyword);
1266 virtual void DoRead( TokenReader& rTr, const std::string& rLabel = "", const Type* pContext=0);
1302 virtual void DoWrite( TokenWriter& rTw, const std::string& rLabel= "", const Type* pContext=0) const;
1339 static const char mDelim = ';';
1415 static TypeDefinition* Constructor( const std::string& rTypeName= "");
1461 const Type* Prototype( void) const;
1473 Type* NewObject( void) const;
1485 const std::string& XElementTag( void) const;
1493 void XElementTag( const std::string& rTag);
1534 virtual void Prototype( Type* pType);
1553 virtual void DoRead( TokenReader& rTr, const std::string& rLabel = "", const Type* pContext=0);
1585 virtual void DoWrite( TokenWriter& rTw, const std::string& rLabel= "", const Type* pContext=0) const;
1626 FD_DRTI( "TypeDefinition::Construct<" << typeid(T).name() << ">(" << rTypeName << ")");
1634 FD_DRTI( "TypeDefinition::FromFile<" << typeid(T).name() << ">()");
1638 td-> Read(rFileName);
#define FAUDES_TYPE_DECLARATION(ftype, ctype, cbase)
virtual ~Documentation(void)
bool mApplicationRegistered
virtual ~TypeDefinition(void)
static TypeDefinition * FromFile(const std::string &rFileName)
TypeDefinition(const TypeDefinition &rOther)
static TypeDefinition * Constructor(const std::string &rTypeName="")
void Read(const std::string &rFileName, const std::string &rLabel="", const Type *pContext=0)
static std::string msStringEmpty
static std::string msStringVoid
libFAUDES 2.33b
--- 2025.05.07
--- c++ api documentaion by doxygen
|