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