ControlTaskI.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069 #ifndef CONTROLTASKI_H_
00070 #define CONTROLTASKI_H_
00071
00072 #include "../rtt-config.h"
00073 #include "corba.h"
00074 #include "corba.h"
00075 #ifdef CORBA_IS_TAO
00076 #include "ControlTaskS.h"
00077 #else
00078 #include "ControlTaskC.h"
00079 #endif
00080
00081 #include "OperationInterfaceC.h"
00082 #include "AttributesC.h"
00083 #include "ScriptingAccessC.h"
00084 #include "ServicesC.h"
00085 #include "DataFlowC.h"
00086 #include "../TaskContext.hpp"
00087
00088 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00089 #pragma once
00090 #endif
00091
00092 class Orocos_ControlObject_i : public virtual POA_RTT::Corba::ControlObject, public virtual PortableServer::RefCountServantBase
00093 {
00094 protected:
00095 RTT::OperationInterface* mobj;
00096 ::RTT::Corba::AttributeInterface_var mAttrs;
00097 ::RTT::Corba::MethodInterface_var mMFact;
00098 ::RTT::Corba::CommandInterface_var mCFact;
00099 PortableServer::POA_var mpoa;
00100 typedef std::map<std::string, Orocos_ControlObject_i*> CTObjMap;
00101 CTObjMap ctobjmap;
00102
00103 public:
00104
00105 Orocos_ControlObject_i (RTT::OperationInterface* orig, PortableServer::POA_ptr the_poa);
00106
00107
00108 virtual ~Orocos_ControlObject_i (void);
00109
00110 PortableServer::POA_ptr _default_POA()
00111 {
00112 return PortableServer::POA::_duplicate(mpoa);
00113 }
00114
00115 virtual
00116 char * getName (
00117
00118 )
00119 ACE_THROW_SPEC ((
00120 CORBA::SystemException
00121 ));
00122
00123 virtual
00124 char * getDescription (
00125
00126 )
00127 ACE_THROW_SPEC ((
00128 CORBA::SystemException
00129 ));
00130
00131 virtual
00132 ::RTT::Corba::AttributeInterface_ptr attributes (
00133
00134 )
00135 ACE_THROW_SPEC ((
00136 CORBA::SystemException
00137 ));
00138
00139 virtual
00140 ::RTT::Corba::MethodInterface_ptr methods (
00141
00142 )
00143 ACE_THROW_SPEC ((
00144 CORBA::SystemException
00145 ));
00146
00147 virtual
00148 ::RTT::Corba::CommandInterface_ptr commands (
00149
00150 )
00151 ACE_THROW_SPEC ((
00152 CORBA::SystemException
00153 ));
00154
00155 virtual
00156 ::RTT::Corba::ObjectList* getObjectList()
00157 ACE_THROW_SPEC ((
00158 CORBA::SystemException
00159 ));
00160
00161 virtual
00162 ::RTT::Corba::ControlObject_ptr getObject(const char*)
00163 ACE_THROW_SPEC ((
00164 CORBA::SystemException
00165 ));
00166
00167 virtual
00168 CORBA::Boolean hasObject(const char*)
00169 ACE_THROW_SPEC ((
00170 CORBA::SystemException
00171 ));
00172
00173 };
00174
00175 class Orocos_ControlTask_i
00176 : public virtual POA_RTT::Corba::ControlTask, public virtual PortableServer::RefCountServantBase,
00177 public Orocos_ControlObject_i
00178 {
00179 protected:
00180 RTT::TaskContext* mtask;
00181
00182 ::RTT::Corba::ScriptingAccess_var mEEFact;
00183 ::RTT::Corba::ServiceInterface_var mService;
00184 ::RTT::Corba::DataFlowInterface_var mDataFlow;
00185 public:
00186
00187 Orocos_ControlTask_i (RTT::TaskContext* orig, PortableServer::POA_ptr the_poa);
00188
00189
00190 virtual ~Orocos_ControlTask_i (void);
00191
00192 void shutdownCORBA();
00193
00194 virtual
00195 ::RTT::Corba::TaskState getTaskState (
00196 )
00197 ACE_THROW_SPEC ((
00198 CORBA::SystemException
00199 ));
00200
00201 virtual
00202 CORBA::Boolean start (
00203 )
00204 ACE_THROW_SPEC ((
00205 CORBA::SystemException
00206 ));
00207
00208 virtual
00209 CORBA::Boolean stop (
00210 )
00211 ACE_THROW_SPEC ((
00212 CORBA::SystemException
00213 ));
00214
00215 virtual
00216 CORBA::Boolean isActive (
00217 )
00218 ACE_THROW_SPEC ((
00219 CORBA::SystemException
00220 ));
00221
00222 virtual
00223 CORBA::Boolean isRunning (
00224 )
00225 ACE_THROW_SPEC ((
00226 CORBA::SystemException
00227 ));
00228
00229 virtual
00230 CORBA::Boolean configure (
00231 )
00232 ACE_THROW_SPEC ((
00233 CORBA::SystemException
00234 ));
00235
00236 virtual
00237 CORBA::Boolean cleanup (
00238 )
00239 ACE_THROW_SPEC ((
00240 CORBA::SystemException
00241 ));
00242
00243 virtual
00244 CORBA::Boolean resetError (
00245 )
00246 ACE_THROW_SPEC ((
00247 CORBA::SystemException
00248 ));
00249
00250 virtual
00251 CORBA::Boolean activate (
00252 )
00253 ACE_THROW_SPEC ((
00254 CORBA::SystemException
00255 ));
00256
00257 virtual
00258 CORBA::Boolean isConfigured (
00259 )
00260 ACE_THROW_SPEC ((
00261 CORBA::SystemException
00262 ));
00263
00264 virtual
00265 CORBA::Boolean inFatalError (
00266 )
00267 ACE_THROW_SPEC ((
00268 CORBA::SystemException
00269 ));
00270
00271 virtual
00272 CORBA::Boolean inRunTimeWarning (
00273 )
00274 ACE_THROW_SPEC ((
00275 CORBA::SystemException
00276 ));
00277
00278 virtual
00279 CORBA::Boolean inRunTimeError (
00280 )
00281 ACE_THROW_SPEC ((
00282 CORBA::SystemException
00283 ));
00284
00285 virtual
00286 CORBA::Long getWarningCount (
00287 )
00288 ACE_THROW_SPEC ((
00289 CORBA::SystemException
00290 ));
00291
00292 virtual
00293 CORBA::Long getErrorCount (
00294 )
00295 ACE_THROW_SPEC ((
00296 CORBA::SystemException
00297 ));
00298
00299
00300 virtual
00301 ::RTT::Corba::ScriptingAccess_ptr scripting (
00302
00303 )
00304 ACE_THROW_SPEC ((
00305 CORBA::SystemException
00306 ));
00307
00308 virtual
00309 ::RTT::Corba::ServiceInterface_ptr services (
00310
00311 )
00312 ACE_THROW_SPEC ((
00313 CORBA::SystemException
00314 ));
00315
00316 virtual
00317 ::RTT::Corba::DataFlowInterface_ptr ports (
00318
00319 )
00320 ACE_THROW_SPEC ((
00321 CORBA::SystemException
00322 ));
00323
00324
00325 virtual
00326 ::RTT::Corba::ControlTask::ControlTaskNames * getPeerList (
00327
00328 )
00329 ACE_THROW_SPEC ((
00330 CORBA::SystemException
00331 ));
00332
00333 virtual
00334 ::RTT::Corba::ControlTask_ptr getPeer (
00335 const char * name
00336 )
00337 ACE_THROW_SPEC ((
00338 CORBA::SystemException
00339 ));
00340
00341 virtual
00342 CORBA::Boolean addPeer (
00343 ::RTT::Corba::ControlTask_ptr p,
00344 const char * alias
00345 )
00346 ACE_THROW_SPEC ((
00347 CORBA::SystemException
00348 ));
00349
00350 virtual
00351 CORBA::Boolean hasPeer (
00352 const char * name
00353 )
00354 ACE_THROW_SPEC ((
00355 CORBA::SystemException
00356 ));
00357
00358 virtual
00359 CORBA::Boolean removePeer (
00360 const char * name
00361 )
00362 ACE_THROW_SPEC ((
00363 CORBA::SystemException
00364 ));
00365
00366 virtual
00367 CORBA::Boolean connectPeers (
00368 ::RTT::Corba::ControlTask_ptr p
00369 )
00370 ACE_THROW_SPEC ((
00371 CORBA::SystemException
00372 ));
00373
00374 virtual
00375 CORBA::Boolean disconnectPeers (
00376 const char * name
00377 )
00378 ACE_THROW_SPEC ((
00379 CORBA::SystemException
00380 ));
00381
00382 virtual
00383 CORBA::Boolean connectPorts (
00384 ::RTT::Corba::ControlTask_ptr p
00385 )
00386 ACE_THROW_SPEC ((
00387 CORBA::SystemException
00388 ));
00389
00390 };
00391
00392
00393 #endif
00394