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 ;
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