SL_Variant.h

Go to the documentation of this file.
00001 //***************************************************************************************
00002 // File supervisor: Crosswalk team
00012 //***************************************************************************************
00013 
00014 #ifndef __VARIANT_H__
00015 #define __VARIANT_H__
00016 
00017 #include "SLTypes.h"
00018 //#include <memory.h>
00019 
00037 class XSIEXPORT CSLVariantProxy
00038 {
00039 public:
00042      enum EValueType
00043     {
00044         SI_SLVT_INVALID  = 0,
00045         SI_SLVT_BOOL,       
00046         SI_SLVT_BYTE,       
00047         SI_SLVT_UBYTE,      
00048         SI_SLVT_DOUBLE,     
00049         SI_SLVT_FLOAT,      
00050         SI_SLVT_INT,        
00051         SI_SLVT_LONG,       
00052         SI_SLVT_ULONG,      
00053         SI_SLVT_SHORT,      
00054         SI_SLVT_STRING      
00055     };
00056 
00065     union
00066     {
00067         CSLBoolProxy    *m_pBool;   
00068         CSLByteProxy    *m_pByte;   
00069         CSLUByteProxy   *m_pUByte;  
00070         CSLDoubleProxy  *m_pDouble; 
00071         CSLFloatProxy   *m_pFloat;  
00072         CSLIntProxy     *m_pInt;    
00073         CSLLongProxy    *m_pLong;   
00074         CSLULongProxy   *m_pULong;  
00075         CSLShortProxy   *m_pShort;  
00076         CSLStringProxy  *m_pString; 
00077     };
00078 
00083     CSLVariantProxy();
00084 
00086     ~CSLVariantProxy();
00087 
00094     SI_Error Connect( CdotXSITemplate *in_pTemplate, SI_Int in_nIndex );
00095 
00100     CSLVariantProxy( CdotXSITemplate *in_pTemplate, SI_Int in_nIndex );
00101 
00104     EValueType GetType() const;
00105 
00112     SI_Error GetValue( SI_TinyVariant &out_Variant ) const;
00113 
00121     SI_Error SetValue( const SI_TinyVariant &in_vVariant );
00122 
00130     SI_Error SetValue( const CSLVariantProxy &in_vVariant );
00131 
00138     static SI_Error TinyVarType2SLVarType( const SI_TinyVariant &in_TinyVariant, EValueType &out_Type );
00139 
00146     SI_Error GetTinyVarType( SI_Int &out_VariantType ) const;
00147 
00148 private:
00149     CSLVariantProxy(const CSLVariantProxy& );                   // @cmember  Disable Copy Constructor
00150     const CSLVariantProxy& operator=(const CSLVariantProxy );   //@cmember Disable Assignment operator
00151 
00152     void Clear();
00153     EValueType m_ValueType;
00154 };
00155 
00156 #endif //__VARIANT_H__