xsi_customoperator.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 __XSICUSTOMOPERATOR_H__
00018 #define __XSICUSTOMOPERATOR_H__
00019 
00020 #include <xsi_operator.h>
00021 
00022 namespace XSI {
00023 
00024 class ParamDef;
00025 class PortGroup;
00026 
00027 //*****************************************************************************
00034 //*****************************************************************************
00035 
00036 class SICPPSDKDECL CustomOperator : public Operator
00037 {
00038 public:
00040     CustomOperator();
00041 
00043     ~CustomOperator();
00044 
00048     CustomOperator(const CRef& in_ref);
00049 
00053     CustomOperator(const CustomOperator& in_obj);
00054 
00059     bool IsA( siClassID in_ClassID) const;
00060 
00064     siClassID GetClassID() const;
00065 
00071     CustomOperator& operator=(const CustomOperator& in_obj);
00072 
00078     CustomOperator& operator=(const CRef& in_ref);
00079 
00083     CString GetFileName(void) const;
00084 
00089     CStatus PutFileName(const CString& in_str);
00090 
00094     CString GetLanguage(void) const;
00095 
00101     CString GetCode(void) const;
00102 
00109     CStatus PutCode(const CString& code);
00110 
00114     LONG GetDebug(void) const;
00115 
00122     CStatus PutDebug(LONG debug);
00123 
00127     bool GetAlwaysEvaluate(void) const;
00128 
00134     CStatus PutAlwaysEvaluate(bool val);
00135 
00143     CStatus AddParameter(
00144         const CRef& in_paramdef,
00145         Parameter&  io_parameter );
00146 
00152     CStatus RemoveParameter( const Parameter& in_param );
00153 
00163     CRef AddInputPort( const CRef& obj, const CString& name=CString(), LONG group=-1, LONG insertat=-1, LONG flags=0, CStatus* pst = 0 );
00164 
00174     CRef AddOutputPort( const CRef& obj, const CString& name=CString(), LONG group=-1, LONG insertat=-1, LONG flags=0, CStatus* pst = 0 );
00175 
00185     CRefArray AddIOPort( const CRef& obj, const CString& name=CString(), LONG group=-1, LONG insertat=-1, LONG flags=0, CStatus* pst = 0 );
00186 
00199     CRef AddPortGroup( const CString& name, LONG groupmin=1, LONG groupmax=1, const CString& filterid=CString(), const CString& pickprompt=CString(), LONG flags=0, CStatus* pst = 0 );
00200 
00206     CStatus Validate();
00207 
00228     CRef AddInputPortByClassID( siClassID in_TargetClassID,
00229                                 const CString& in_strPortName=CString(),
00230                                 LONG in_PortGroup=-1,
00231                                 LONG in_InsertAt=0,
00232                                 LONG in_flags=0 );
00233 
00251     CRef AddOutputPortByClassID(siClassID in_TargetClassID,
00252                                 const CString& in_strPortName=CString(),
00253                                 LONG in_PortGroup=-1,
00254                                 LONG in_InsertAt=0,
00255                                 LONG in_flags=0 );
00256 
00271     CRefArray AddIOPortByClassID(siClassID in_TargetClassID,
00272                                 const CString& in_strPortName=CString(),
00273                                 LONG in_PortGroup=-1,
00274                                 LONG in_InsertAt=0,
00275                                 LONG in_flags=0 );
00276 
00277 
00278     private:
00279     CustomOperator * operator&() const;
00280     CustomOperator * operator&();
00281 
00282 };
00283 
00284 };
00285 
00286 #endif // __XSICUSTOMOPERATOR_H__