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