xsi_iceattribute.h Source File
 
 
 
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 class CBitArray;
00026 
00027 //*****************************************************************************
00086 //*****************************************************************************
00087 
00088 class SICPPSDKDECL ICEAttribute : public SIObject
00089 {
00090 public:
00091         friend class CBaseICEAttributeDataArray;
00092 
00094         ICEAttribute();
00095 
00097         ~ICEAttribute();
00098 
00102         ICEAttribute(const CRef& in_ref);
00103 
00107         ICEAttribute(const ICEAttribute& in_obj);
00108 
00113         bool IsA( siClassID in_ClassID) const;
00114 
00118         siClassID GetClassID() const;
00119 
00125         ICEAttribute& operator=(const ICEAttribute& in_obj);
00126 
00132         ICEAttribute& operator=(const CRef& in_ref);
00133 
00140         bool IsDefined( ) const;
00141 
00145         bool IsConstant( ) const;
00146 
00150         bool IsReadonly( ) const;
00151 
00155         XSI::siICENodeDataType GetDataType( ) const;
00156 
00161         XSI::siICENodeStructureType GetStructureType( ) const;
00162 
00168         XSI::siICENodeContextType GetContextType( ) const;
00169 
00173         XSI::siICEAttributeCategory GetAttributeCategory( ) const;
00174 
00179         ULONG GetElementCount( ) const;
00180 
00367         CStatus GetDataArray( CBaseICEAttributeDataArray& io_dataArray ) const;
00368 
00511         CStatus GetDataArrayChunk( ULONG in_nOffset, ULONG in_nSize, CBaseICEAttributeDataArray& io_dataArray ) const;
00512 
00782         CStatus GetDataArray2D( CBaseICEAttributeDataArray& io_dataArray ) const;
00783 
01017         CStatus GetDataArray2DChunk( ULONG in_nOffset, ULONG in_nSize, CBaseICEAttributeDataArray& io_dataArray ) const;
01018 
01052         CStringArray GetCustomDataTypes( ) const;
01053 
01054 private:
01055 
01056         CStatus ReleaseDataArray( CBaseICEAttributeDataArray& in_dataArray );
01057         CStatus GetSubDataArray( CBaseICEAttributeDataArray& in_dataArray2D, ULONG in_index, CBaseICEAttributeDataArray& io_dataArray ) const;
01058         CStatus ResizeSubDataArray( CBaseICEAttributeDataArray& in_dataArray2D, ULONG in_index, ULONG in_nSize, CBaseICEAttributeDataArray& io_dataArray );
01059 
01060         CStatus GetCustomTypeData( const CBaseICEAttributeDataArray& in_dataArray, ULONG in_nIndex, const unsigned char** out_ppData, ULONG& out_nSize ) const;
01061         CStatus GetCustomTypeData2D( const CBaseICEAttributeDataArray& in_dataArray2D, ULONG in_nArrayIndex, ULONG in_nSubArrayIndex, const unsigned char** out_ppData, ULONG& out_nSize ) const;
01062         CStatus GetCustomTypeData2D( const CBaseICEAttributeDataArray& in_dataArray2D, ULONG in_nIndex, const unsigned char** out_ppData, ULONG& out_nSize ) const;
01063 
01064         CStatus GetStringData( const CBaseICEAttributeDataArray& in_dataArray, ULONG in_nIndex, const wchar_t** out_ppData, ULONG& out_nSize ) const;
01065         CStatus GetStringData2D( const CBaseICEAttributeDataArray& in_dataArray2D, ULONG in_nArrayIndex, ULONG in_nSubArrayIndex, const wchar_t** out_ppData, ULONG& out_nSize ) const;
01066 
01067         CStatus GetStringData2D( const CBaseICEAttributeDataArray& in_dataArray, ULONG in_nIndex, const wchar_t** out_ppData, ULONG& out_nSize ) const;
01068         CStatus SetStringData( const CBaseICEAttributeDataArray& in_dataArray, ULONG in_nIndex, const wchar_t* in_pData, ULONG in_nSize );
01069 
01070         CStatus SetStringData( CBaseICEAttributeDataArray& in_dataArray, ULONG in_nIndex, const wchar_t* in_pData, ULONG in_nSize );
01071         CStatus SetStringData2D( CBaseICEAttributeDataArray& in_dataArray2D, ULONG in_nArrayIndex, ULONG in_nSubArrayIndex, const wchar_t* in_pData, ULONG in_nSize );
01072 
01073         CStatus SetDataArrayInternal( CBaseICEAttributeDataArray& io_dataArray, CBaseICEAttributeDataArray* io_pSubDataArray, ULONG in_nOffset, const CValueArray& in_array, ULONG in_nNbElem, bool in_bIs2D );
01074         CStatus SetDataArrayInternal( CBaseICEAttributeDataArray& io_dataArray, CBaseICEAttributeDataArray* io_pSubDataArray, ULONG in_nOffset, void* in_array, ULONG in_nNbElem, ULONG* in_pSubArraySizes, bool in_bIs2D );
01075 
01076         CStatus SetCharDataArrayInternal( CBaseICEAttributeDataArray& io_dataArray, CBaseICEAttributeDataArray* io_pSubDataArray, ULONG in_nOffset, const CValueArray& in_array, const CValueArray& in_elemSizes, bool in_bIs2D );
01077         CStatus SetCharDataArrayInternal( CBaseICEAttributeDataArray& io_dataArray, CBaseICEAttributeDataArray* io_pSubDataArray, ULONG in_nOffset, void* in_pArray, ULONG in_nNbElem, ULONG* in_pSubArraySizes, void* in_ppElemSizes, ULONG in_nFixedElemSize, bool in_bIs2D );
01078 
01079         CStatus GetArrayElementInternal( const CBaseICEAttributeDataArray& in_dataArray, ULONG in_nArrayIndex, ULONG in_nSubArrayIndex, void** out_ppData, ULONG& out_ulSize ) const;
01080         CStatus SetArrayElementInternal( CBaseICEAttributeDataArray& in_dataArray, ULONG in_nArrayIndex, ULONG in_nSubArrayIndex, void* in_pData, ULONG in_nSize );
01081 
01082         CStatus GetDataArrayInternal(ULONG in_nOffset, ULONG in_nSize, CBaseICEAttributeDataArray& io_dataArray) const;
01083 
01084         CStatus SetSubDataArray( CBaseICEAttributeDataArray& io_dataArray2D, CBaseICEAttributeDataArray* io_pSubDataArray, ULONG in_nIndex, const CValueArray& in_array );
01085         CStatus SetSubDataArray( CBaseICEAttributeDataArray& io_dataArray2D, CBaseICEAttributeDataArray* io_pSubDataArray, ULONG in_nIndex, void* in_pArray, ULONG in_nCount );
01086         CStatus SetStringSubDataArray( CBaseICEAttributeDataArray& io_dataArray2D, CBaseICEAttributeDataArray* io_pSubDataArray, ULONG in_nIndex, const wchar_t** in_ppData, ULONG in_nCount );
01087 
01088         CStatus SetCustomTypeSubDataArray( CBaseICEAttributeDataArray& io_dataArray2D, CBaseICEAttributeDataArray* io_pSubDataArray, ULONG in_nIndex, const unsigned char** in_ppData, ULONG in_nCount, ULONG in_nFixedElemSize );
01089         CStatus SetCustomTypeSubDataArray( CBaseICEAttributeDataArray& io_dataArray2D, CBaseICEAttributeDataArray* io_pSubDataArray, ULONG in_nIndex, const unsigned char** in_ppData, ULONG in_nCount, ULONG* in_pElemSizes );
01090 
01091         CStatus SetBoolDataArray( CBaseICEAttributeDataArray& in_dataArray, ULONG in_nOffset, const XSI::CBitArray& in_array );
01092         CStatus SetBoolSubDataArray( CBaseICEAttributeDataArray& io_dataArray2D, CBaseICEAttributeDataArray* io_pSubDataArray, ULONG in_nOffset, const XSI::CBitArray& in_array );
01093 
01094         ICEAttribute * operator&() const;
01095         ICEAttribute * operator&();
01096 };
01097 
01098 };
01099 
01100 #endif // __XSIICEATTRIBUTE_H__