Go to the
documentation of this file.
00001
00011
00012
00013 #if (_MSC_VER > 1000) || defined(SGI_COMPILER)
00014 #pragma once
00015 #endif
00016
00017 #ifndef __XSIBASE_H__
00018 #define __XSIBASE_H__
00019
00020 #include "sicppsdk.h"
00021 #include "xsi_decl.h"
00022 #include "xsi_ref.h"
00023 #include "xsi_status.h"
00024 #include "xsi_string.h"
00025
00026 namespace XSI {
00027
00028
00136
00137 class SICPPSDKDECL CBase
00138 {
00139 public:
00141 CBase();
00142
00144 virtual ~CBase();
00145
00149 CString GetClassIDName() const;
00150
00154 virtual siClassID GetClassID() const = 0;
00155
00160 virtual bool IsA( siClassID in_ClassID ) const;
00161
00166 bool IsA( const CRef& in_ref ) const;
00167
00173 CStatus SetObject( const CRef& in_obj );
00174
00178 bool IsValid() const;
00179
00180
00183 void ResetObject();
00184
00188 operator CRef&();
00189
00190
00196 bool operator == ( const CBase& in_obj ) const;
00197
00203 bool operator != ( const CBase& in_obj ) const;
00204
00208 const CRef& GetRef() const;
00209
00210 protected:
00211 void SetPtr( void* );
00212 void SetRef( const CRef& in_ref );
00213 void Clear();
00214 void* GetPtr(void) const;
00215
00216 private:
00217 CBase & operator=( const CBase & );
00218 CBase * operator&() const;
00219 CBase * operator&();
00220
00221 CRef m_ref;
00222 };
00223
00224 };
00225
00226 #endif // __XSIBASE_H__
00227
00228
00229
00230