xsi_argument.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 __XSIARGUMENT_H__
00018 #define __XSIARGUMENT_H__
00019 
00020 #include <xsi_siobject.h>
00021 #include <xsi_value.h>
00022 
00023 namespace XSI {
00024 
00025 class ArgumentArray ; // Forward declaration
00026 class ArgumentHandler ;
00027 
00028 //*****************************************************************************
00061 //*****************************************************************************
00062 class SICPPSDKDECL Argument : public SIObject
00063 {
00064 public:
00066     Argument();
00067 
00069     ~Argument();
00070 
00074     Argument(const CRef& in_ref);
00075 
00079     Argument(const Argument& in_obj);
00080 
00085     bool IsA( siClassID in_ClassID) const;
00086 
00090     siClassID GetClassID() const;
00091 
00097     Argument& operator=(const Argument& in_obj);
00098 
00104     Argument& operator=(const CRef& in_ref);
00105 
00111     CValue GetValue() const ;
00112 
00128     CStatus PutValue(const CValue&)  ;
00129 
00135     siArgumentFlags GetFlags() const ;
00136 
00144     ArgumentHandler GetHandler() const ;
00145 
00156     CStatus PutHandler( const CString & in_strHandler ) ;
00157 
00166     CStatus PutHandler( ArgumentHandler & in_Handler ) ;
00167 
00168     private:
00169     Argument * operator&() const;
00170     Argument * operator&();
00171 };
00172 
00173 //*****************************************************************************
00200 //*****************************************************************************
00201 class SICPPSDKDECL ArgumentArray : public CBase
00202 {
00203     public:
00205     ArgumentArray();
00206 
00208     ~ArgumentArray();
00209 
00213     ArgumentArray(const CRef& in_ref);
00214 
00218     ArgumentArray(const ArgumentArray& in_obj);
00219 
00224     bool IsA( siClassID in_ClassID) const;
00225 
00229     siClassID GetClassID() const;
00230 
00235     ArgumentArray& operator=(const ArgumentArray& in_obj);
00236 
00242     ArgumentArray& operator=(const CRef& in_ref);
00243 
00249     Argument GetItem( LONG in_index ) const;
00250 
00256     Argument GetItem( const CString& in_name ) const;
00257 
00263     Argument operator[]( LONG in_index );
00264 
00271     const Argument operator[]( LONG in_index ) const;
00272 
00276     LONG GetCount() const;
00277 
00296     Argument Add(
00297                 const CString& in_strName,
00298                 const CValue& in_dftValue = CValue() ) ;
00299 
00315     Argument AddObjectArgument(
00316                 const CString& in_strName ) ;
00317 
00331     Argument AddWithHandler(
00332                 const CString& in_strName,
00333                 const CString& in_strHandlerName,
00334                 const CString& in_Default = CString()) ;
00335 
00349     Argument AddWithHandler(
00350                 const CString& in_strName,
00351                 ArgumentHandler& in_Handler,
00352                 const CString& in_Default = CString()) ;
00353 
00362     Argument AddCopy( const Argument & in_src ) ;
00363 
00371     CStatus RemoveAll() ;
00372 
00381     CStatus Remove( LONG in_index ) ;
00382 
00391     CStatus Remove( const CString& in_strArgName ) ;
00392 } ;
00393 
00394 };
00395 
00396 #endif