xsi_userdatamap.h Source File
 
 
 
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__