xsi_operator.h Source File
 
 
 
xsi_operator.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 __XSIOPERATOR_H__
00018 #define __XSIOPERATOR_H__
00019 
00020 #include <xsi_projectitem.h>
00021 
00022 namespace XSI {
00023 
00024 class Port;
00025 
00026 //*****************************************************************************
00169 //*****************************************************************************
00170 
00171 class SICPPSDKDECL Operator : public ProjectItem
00172 {
00173 public:
00175         Operator();
00176 
00178         ~Operator();
00179 
00183         Operator(const CRef& in_ref);
00184 
00188         Operator(const Operator& in_obj);
00189 
00194         bool IsA( siClassID in_ClassID) const;
00195 
00199         siClassID GetClassID() const;
00200 
00206         Operator& operator=(const Operator& in_obj);
00207 
00213         Operator& operator=(const CRef& in_ref);
00214 
00222         Port GetPort
00223         (
00224                 const CString& in_portname,
00225                 const CString& in_groupname,
00226                 LONG in_instance = 0
00227         ) const;
00228 
00239         Port GetPortAt
00240         (
00241                 LONG in_port,
00242                 LONG in_group = 0,
00243                 LONG in_instance = 0
00244         ) const;
00245 
00249         CRefArray GetInputPorts() const;
00250 
00255         CRefArray GetOutputPorts() const;
00256 
00261         LONG GetNumPortGroups() const;
00262 
00268         LONG GetNumPortsInGroup(LONG in_index) const;
00269 
00275         LONG GetNumInstancesInGroup(LONG in_index) const;
00276 
00281         bool GetMute(void) const;
00282 
00290         CStatus PutMute(bool in_mute);
00291 
00300         CStatus Disconnect(bool in_force);
00301 
00311         CStatus Connect(siConstructionMode in_mode = siConstructionModeDefault);
00312 
00322         CStatus Connect(const CRef& in_obj,siConstructionMode in_mode = siConstructionModeDefault);
00323 
00333         CStatus Connect(const CRefArray& in_objs, siConstructionMode in_mode = siConstructionModeDefault);
00334 
00345         CStatus Connect(const CString& in_objs,siConstructionMode in_mode = siConstructionModeDefault);
00346 
00351         CRefArray GetPortGroups() const;
00352 
00357         bool IsConnected() const;
00358 
00365         bool SupportsBranchGroup(LONG group = -1, LONG port = -1 ) const;
00366 
00378         CStatus ConnectToGroup( LONG in_Group, CRef & in_obj, LONG & out_Instance );
00379 
00387         CStatus DisconnectGroup( LONG in_Group, LONG in_Instance, bool in_Force = false );
00388 
00397         CValue GetInputValue(   LONG in_port,
00398                                                         LONG in_group = 0,
00399                                                         LONG in_instance = 0 ) const;
00400 
00409         CValue GetInputValue(   const CString&  in_port,
00410                                                         const CString&  in_group = CString(),
00411                                                         LONG                    in_instance = 0 ) const;
00412 
00413         private:
00414         Operator * operator&() const;
00415         Operator * operator&();
00416 
00417 };
00418 
00419 };
00420 
00421 #endif // __XSIOPERATOR_H__