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__