00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef INC_SML_CLASSARRAY_H
00022 #define INC_SML_CLASSARRAY_H
00023
00024 #ifndef INC_MI32_SIMPLEAR_H
00025 #include <mi32/simplear.h>
00026 #endif
00027
00028 #ifdef RVCSYSDLL
00029 #define RVCSYSLIBEXPORT MI_DLLEXPORT
00030 #define RVCSYSLIBCLASSEXPORT MI_DLLCLASSEXPORT
00031 #else
00032 #define RVCSYSLIBEXPORT MI_DLLIMPORT
00033 #define RVCSYSLIBCLASSEXPORT MI_DLLCLASSIMPORT
00034 #endif
00035
00036 namespace SML {
00037 class CLASS;
00038 class CONTEXT;
00039
00041 class RVCSYSLIBCLASSEXPORT CLASSARRAY {
00042 public:
00043 CLASSARRAY (
00044 CONTEXT* context,
00045 const CLASS* Class
00046 );
00047
00048 virtual ~CLASSARRAY();
00049
00050 INT32 GetNumItems() const;
00051
00053 void* GetItem(INT32 num);
00054
00055 ERRVALUE Resize(INT32 NumItems);
00056
00065 ERRVALUE SetItem(INT32 num, void* ptr, bool bTakePosession);
00066
00067 const CLASS* GetClass() const;
00068
00069 #ifndef GENERATING_DOXYGEN_OUTPUT
00070 private:
00071 CONTEXT* m_context;
00072 const CLASS* m_Class;
00073 INT32 m_ItemSize;
00074 SIMPLE_ARRAY<void*> m_array;
00075 SIMPLE_ARRAY<UINT8> m_buf;
00076
00077
00078
00079
00080
00081 void CallConstructor (
00082 void* data,
00083 const CLASS* Class
00084 );
00085
00086 void* CallCopyConstructor (
00087 void* dest,
00088 void* source,
00089 const CLASS* Class
00090 );
00091 #endif // doxygen
00092 };
00093
00094
00095 #undef RVCSYSLIBEXPORT
00096 #undef RVCSYSLIBCLASSEXPORT
00097
00098
00099 #if 0
00100
00101
00102
00103 class RVCSYSLIBCLASSEXPORT CONTAINER {
00104 public:
00105 enum INDEXTYPE {
00106 INDEXTYPE_Integer = 0,
00107 INDEXTYPE_String = 1
00108 };
00109
00110 CONTAINER (
00111 );
00112 virtual ~CONTAINER();
00113
00114 const CLASS* GetClass() const;
00115
00116 int GetNumItems (
00117 ) const;
00118
00121 INDEXTYPE GetBestIndexType (
00122 ) const;
00123
00124 private:
00125 virtual const LCLASS* v_GetClass() const = 0;
00126 virtual int v_GetNumItems() const = 0;
00127 virtual bool v_Exists(const MISTRING&) const = 0;
00128 virtual void v_Delete(const MISTRING&) = 0;
00129 virtual MISTRINGLIST* v_GetKeyList() const = 0;
00130 virtual INDEXTYPE v_GetBestIndexType() const = 0;
00131
00132 };
00133 #endif
00134
00135
00136 }
00137
00138 typedef SML::CLASSARRAY SMLCLASSARRAY;
00139
00140 #endif // INC_SML_CLASSARRAY_H
00141
00142