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__