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