cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
mtsManagerGlobalInterface.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /* ex: set filetype=cpp softtabstop=4 shiftwidth=4 tabstop=4 cindent expandtab: */
3 
4 /*
5 
6  Author(s): Min Yang Jung
7  Created on: 2009-11-15
8 
9  (C) Copyright 2009-2011 Johns Hopkins University (JHU), All Rights
10  Reserved.
11 
12 --- begin cisst license - do not edit ---
13 
14 This software is provided "as is" under an open source license, with
15 no warranty. The complete license can be found in license.txt and
16 http://www.cisst.org/cisst/license.txt.
17 
18 --- end cisst license ---
19 */
20 
35 #ifndef _mtsManagerGlobalInterface_h
36 #define _mtsManagerGlobalInterface_h
37 
42 
44 {
46 
47 public:
48  //-------------------------------------------------------------------------
49  // Process Management
50  //-------------------------------------------------------------------------
53  virtual bool AddProcess(const std::string & processName) = 0;
54 
57  virtual bool FindProcess(const std::string & processName) const = 0;
58 
61  virtual bool RemoveProcess(const std::string & processName, const bool networkDisconnect) = 0;
62 
63  //-------------------------------------------------------------------------
64  // Component Management
65  //-------------------------------------------------------------------------
69  virtual bool AddComponent(const std::string & processName, const std::string & componentName) = 0;
70 
74  virtual bool FindComponent(const std::string & processName, const std::string & componentName) const = 0;
75 
79  virtual bool RemoveComponent(const std::string & processName, const std::string & componentName, const bool lock = true) = 0;
80 
81  //-------------------------------------------------------------------------
82  // Interface Management
83  //-------------------------------------------------------------------------
88  virtual bool AddInterfaceProvidedOrOutput(const std::string & processName, const std::string & componentName, const std::string & interfaceName) = 0;
89 
94  virtual bool AddInterfaceRequiredOrInput(const std::string & processName, const std::string & componentName, const std::string & interfaceName) = 0;
95 
100  virtual bool FindInterfaceProvidedOrOutput(const std::string & processName, const std::string & componentName,
101  const std::string & interfaceName) const = 0;
102 
107  virtual bool FindInterfaceRequiredOrInput(const std::string & processName, const std::string & componentName,
108  const std::string & interfaceName) const = 0;
109 
114  virtual bool RemoveInterfaceProvidedOrOutput(const std::string & processName, const std::string & componentName,
115  const std::string & interfaceName, const bool lock = true) = 0;
116 
121  virtual bool RemoveInterfaceRequiredOrInput(const std::string & processName, const std::string & componentName,
122  const std::string & interfaceName, const bool lock = true) = 0;
123 
124  //-------------------------------------------------------------------------
125  // Connection Management
126  //-------------------------------------------------------------------------
139  virtual ConnectionIDType Connect(const std::string & requestProcessName,
140  const std::string & clientProcessName, const std::string & clientComponentName, const std::string & clientInterfaceRequiredName,
141  const std::string & serverProcessName, const std::string & serverComponentName, const std::string & serverInterfaceProvidedName) = 0;
142 
146  virtual bool ConnectConfirm(const ConnectionIDType connectionID) = 0;
147 
151  virtual bool Disconnect(const ConnectionIDType connectionID) = 0;
152 
161  virtual bool Disconnect(
162  const std::string & clientProcessName, const std::string & clientComponentName, const std::string & clientInterfaceRequiredName,
163  const std::string & serverProcessName, const std::string & serverComponentName, const std::string & serverInterfaceProvidedName) = 0;
164 
172  virtual bool InitiateConnect(const ConnectionIDType connectionID) = 0;
173 
178  virtual bool ConnectServerSideInterfaceRequest(const ConnectionIDType connectionID) = 0;
179 
181  virtual void GetListOfConnections(std::vector<mtsDescriptionConnection> & list) const = 0;
182 
183  //-------------------------------------------------------------------------
184  // Networking
185  //-------------------------------------------------------------------------
192  virtual bool SetInterfaceProvidedProxyAccessInfo(const ConnectionIDType connectionID, const std::string & endpointInfo) = 0;
193 
197  virtual bool GetInterfaceProvidedProxyAccessInfo(const ConnectionIDType connectionID, std::string & endpointInfo) = 0;
198 
205  virtual bool GetInterfaceProvidedProxyAccessInfo(const std::string & clientProcessName,
206  const std::string & serverProcessName, const std::string & serverComponentName,
207  const std::string & serverInterfaceProvidedName, std::string & endpointInfo) = 0;
208 };
209 
211 
212 #endif // _mtsManagerGlobalInterface_h
#define CISST_EXPORT
Definition: cmnExportMacros.h:50
Definition: mtsManagerGlobalInterface.h:43
unsigned int ConnectionIDType
Definition: mtsForwardDeclarations.h:150
Base class for high level objects.
Definition: cmnGenericObject.h:51
Class register definitions and log macros.
#define CMN_DECLARE_SERVICES(hasDynamicCreation, lod)
Definition: cmnClassRegisterMacros.h:116
const int CMN_NO_DYNAMIC_CREATION
Definition: cmnClassRegisterMacros.h:328
#define CMN_DECLARE_SERVICES_INSTANTIATION(className)
Definition: cmnClassRegisterMacros.h:202
#define CMN_LOG_ALLOW_DEFAULT
Definition: cmnLogLoD.h:76