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__