xsi_base.h Source File
 
 
 
xsi_base.h
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