xsi_iceattribute.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 __XSIICEATTRIBUTE_H__
00018 #define __XSIICEATTRIBUTE_H__
00019 
00020 #include <xsi_siobject.h>
00021 
00022 namespace XSI {
00023 
00024 class CBaseICEAttributeDataArray;
00025 
00026 //*****************************************************************************
00085 //*****************************************************************************
00086 
00087 class SICPPSDKDECL ICEAttribute : public SIObject
00088 {
00089 public:
00090     friend class CBaseICEAttributeDataArray;
00091 
00093     ICEAttribute();
00094 
00096     ~ICEAttribute();
00097 
00101     ICEAttribute(const CRef& in_ref);
00102 
00106     ICEAttribute(const ICEAttribute& in_obj);
00107 
00112     bool IsA( siClassID in_ClassID) const;
00113 
00117     siClassID GetClassID() const;
00118 
00124     ICEAttribute& operator=(const ICEAttribute& in_obj);
00125 
00131     ICEAttribute& operator=(const CRef& in_ref);
00132 
00139     bool IsDefined( ) const;
00140 
00144     bool IsConstant( ) const;
00145 
00149     bool IsReadonly( ) const;
00150 
00154     XSI::siICENodeDataType GetDataType( ) const;
00155 
00160     XSI::siICENodeStructureType GetStructureType( ) const;
00161 
00167     XSI::siICENodeContextType GetContextType( ) const;
00168 
00172     XSI::siICEAttributeCategory GetAttributeCategory( ) const;
00173 
00178     ULONG GetElementCount( ) const;
00179 
00366     CStatus GetDataArray( CBaseICEAttributeDataArray& io_dataArray ) const;
00367 
00510     CStatus GetDataArrayChunk( ULONG in_nOffset, ULONG in_nSize, CBaseICEAttributeDataArray& io_dataArray ) const;
00511 
00781     CStatus GetDataArray2D( CBaseICEAttributeDataArray& io_dataArray ) const;
00782 
01016     CStatus GetDataArray2DChunk( ULONG in_nOffset, ULONG in_nSize, CBaseICEAttributeDataArray& io_dataArray ) const;
01017 
01051     CStringArray GetCustomDataTypes( ) const;
01052 
01053     private:
01054     CStatus ReleaseDataArray( CBaseICEAttributeDataArray& in_dataArray );
01055     CStatus GetSubDataArray( CBaseICEAttributeDataArray& in_dataArray2D, ULONG in_index, CBaseICEAttributeDataArray& io_dataArray ) const;
01056     CStatus ResizeSubDataArray( CBaseICEAttributeDataArray& in_dataArray2D, ULONG in_index, ULONG in_ulSize, CBaseICEAttributeDataArray& io_dataArray );
01057 
01058     CStatus GetCustomTypeData( const CBaseICEAttributeDataArray& in_dataArray, ULONG in_nIndex, const unsigned char** out_ppData, ULONG& out_nSize ) const;
01059     CStatus GetCustomTypeData2D( const CBaseICEAttributeDataArray& in_dataArray, ULONG in_nIndex, const unsigned char** out_ppData, ULONG& out_nSize ) const;
01060 
01061     CStatus GetStringData( const CBaseICEAttributeDataArray& in_dataArray, ULONG in_nIndex, const wchar_t** out_ppData, ULONG& out_nSize ) const;
01062     CStatus GetStringData2D( const CBaseICEAttributeDataArray& in_dataArray, ULONG in_nIndex, const wchar_t** out_ppData, ULONG& out_nSize ) const;
01063     CStatus SetStringData( const CBaseICEAttributeDataArray& in_dataArray, ULONG in_nIndex, const wchar_t* in_pData, ULONG in_nSize );
01064 
01065     ICEAttribute * operator&() const;
01066     ICEAttribute * operator&();
01067 };
01068 
01069 };
01070 
01071 #endif // __XSIICEATTRIBUTE_H__