xsi_userdatamap.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 __XSIUSERDATAMAP_H__
    00018 #define __XSIUSERDATAMAP_H__
    00019
    00020 #include <xsi_property.h>
    00021 #include <xsi_value.h>
    00022 #include <xsi_status.h>
    00023 #include <xsi_customproperty.h>
    00024 #include <xsi_userdataarray.h>
    00025 #include <xsi_bitarray.h>
    00026
    00027 namespace XSI {
    00028
    00029 //*****************************************************************************
    00286 //*****************************************************************************
    00287
    00288 class SICPPSDKDECL UserDataMap : public Property
    00289 {
    00290 public:
    00292     UserDataMap();
    00293
    00295     ~UserDataMap();
    00296
    00300     UserDataMap(const CRef& in_ref);
    00301
    00305     UserDataMap(const UserDataMap& in_obj);
    00306
    00311     bool IsA( siClassID in_ClassID) const;
    00312
    00316     siClassID GetClassID() const;
    00317
    00323     UserDataMap& operator=(const UserDataMap& in_obj);
    00324
    00330     UserDataMap& operator=(const CRef& in_ref);
    00331
    00336     LONG GetCount() const ;
    00337
    00341     void Clear() ;
    00342
    00355     bool IsLittleEndian() const ;
    00356
    00360     void PutLittleEndian( bool in_bLittleEndian ) ;
    00361
    00376     CustomProperty  GetTemplate() const ;
    00377
    00383     CStatus PutTemplate( const CustomProperty& in_Template ) ;
    00384
    00411     CStatus GetItemValue( LONG in_Offset, const unsigned char *& out_buffer, UINT& out_size ) const ;
    00412
    00429     CStatus PutItemValue( LONG in_Offset, const unsigned char * in_buffer, UINT in_size ) ;
    00430
    00440     bool IsItemEmpty( LONG in_lOffset ) const ;
    00441
    00448     UINT GetItemSize( LONG in_lOffset ) const ;
    00449
    00455     void ClearItem( LONG in_Offset ) ;
    00456
    00466     CStatus GetValues( CUserDataArray& out_data ) const;
    00467
    00481     CStatus GetValues( CUserDataArray& out_data, CBitArray& out_elemIdx) const;
    00482
    00507     CStatus SetValues(
    00508         const unsigned char**   in_pValues,
    00509         const LONG*             in_pSizeArray,
    00510         LONG                    in_nValues,
    00511         LONG                    in_nOffset=0);
    00512
    00530     CStatus SetValues(
    00531         const LONG*             in_pElements,
    00532         const unsigned char**   in_pValues,
    00533         const LONG*             in_pSizeArray,
    00534         LONG                    in_nElements );
    00535
    00561     CStatus SetFixedSizeValues(
    00562         const unsigned char**   in_pValues,
    00563         LONG                    in_nValues,
    00564         LONG                    in_nSize,
    00565         LONG                    in_nOffset=0);
    00566
    00586     CStatus SetFixedSizeValues(
    00587         const LONG*             in_pElements,
    00588         const unsigned char**   in_pValues,
    00589         LONG                    in_nElements,
    00590         LONG                    in_nSize );
    00591
    00592     private:
    00593     UserDataMap * operator&() const;
    00594     UserDataMap * operator&();
    00595 };
    00596
    00597 };
    00598 #endif // __XSIUSERDATAMAP_H__