00001
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070 #ifndef INC_RVC_SERIALZE_H
00071 #define INC_RVC_SERIALZE_H
00072
00073 #ifndef INC_RVC_TEXT_H
00074 #include <rvc/textobj.h>
00075 #endif
00076
00077 #ifndef INC_RVC_DISPPARMUSAGE_H
00078 #include <rvc/dispparmusage.h>
00079 #endif
00080
00081 namespace RVC {
00082
00083 class SERIALIZE : public RVC::TEXTOBJ {
00084 public:
00085
00086 #ifndef GENERATING_DOXYGEN_OUTPUT
00087 class MAKEPARMS;
00088 class FILTER_USAGEFOROBJTYPE;
00089 #endif
00090
00092 SERIALIZE (
00093 );
00094
00096 SERIALIZE (
00097 const RVC::SERIALIZE& obj
00098 );
00099
00101 virtual ~SERIALIZE (
00102 );
00103
00105 RVC::SERIALIZE& operator= (
00106 const RVC::SERIALIZE& rhs
00107 );
00108
00111 DISPPARMUSAGE GetUsage (
00112 ) const;
00113
00116 UINT16 GetVersion (
00117 ) const;
00118
00121 RVC::OBJTYPE GetForObjectType (
00122 ) const;
00123
00126 static RVC::OBJTYPESET GetObjTypeSet (
00127 );
00128
00130 static bool IsSerialize (
00131 RVC::OBJTYPE ObjType
00132 );
00133
00135 ERRVALUE Make (
00136 const RVC::OBJECT& parent,
00137 const RVC::DESCRIPTOR& Descriptor,
00138 const MAKEPARMS& MakeParms,
00139 const CREDENTIALS* Credentials RVC_DEFAULT_CREDENTIALS
00140 );
00141
00143 ERRVALUE Make (
00144 RVC::OBJITEM& ObjItem,
00145 const MAKEPARMS& MakeParms,
00146 #ifdef RVC_CREDENTIALS_MANDATORY
00147 const char* Source,
00148 const CREDENTIALS* Credentials
00149 #else
00150 const char* Source = 0,
00151 const CREDENTIALS* Credentials = 0
00152 #endif
00153 );
00154
00155 private:
00156 #ifndef GENERATING_DOXYGEN_OUTPUT
00158 virtual OBJTYPE v_GetDftObjectType () const;
00159 virtual ERRVALUE v_OpenObject (OPENMODE OpenMode, MDLGPARENT parent, const CREDENTIALS* Credentials);
00160 virtual bool v_ValidateObjectType (const OBJTYPE otype) const;
00161 #endif // GENERATING_DOXYGEN_OUTPUT
00162
00163 };
00164
00165
00167 class SERIALIZE::MAKEPARMS : public TEXTOBJ::MAKEPARMS {
00168 public:
00169 MAKEPARMS (
00170 RVC::OBJTYPE ObjType,
00171 UINT16 Version = 1,
00172 OBJTYPE ForObjType = OBJTYPE_All,
00173 DISPPARMUSAGE Usage = DISPPARMUSAGE_Display
00174 );
00175
00178 DISPPARMUSAGE GetUsage (
00179 ) const;
00180
00183 UINT16 GetVersion (
00184 ) const;
00185
00188 RVC::OBJTYPE GetForObjectType (
00189 ) const;
00190
00192 void SetUsage (
00193 DISPPARMUSAGE usage
00194 );
00195
00197 void SetVersion (
00198 UINT16 version
00199 );
00200
00202 void SetForObjectType (
00203 RVC::OBJTYPE objtype
00204 );
00205
00206 };
00207
00208
00209 class SERIALIZE::FILTER_USAGEFOROBJTYPE : public RVC::OBJECT::FILTER {
00210 public:
00212 FILTER_USAGEFOROBJTYPE (
00213 DISPPARMUSAGE usage,
00214 OBJTYPE forobjtype = OBJTYPE_All
00215 ): m_usage(usage), m_forobjtype(forobjtype) { }
00217 void SetForObjType (
00218 OBJTYPE forobjtype
00219 ) { m_forobjtype = forobjtype; }
00221 void SetUsage (
00222 DISPPARMUSAGE usage
00223 ) { m_usage = usage; }
00224 private:
00225 #ifndef GENERATING_DOXYGEN_OUTPUT
00226 DISPPARMUSAGE m_usage;
00227 OBJTYPE m_forobjtype;
00228 virtual bool Filter (const RVC::OBJECT& obj);
00229 #endif
00230 };
00231
00232 }
00233
00234 #endif