cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
mtsSocketProxyServer Class Reference

#include <mtsSocketProxyServer.h>

Inheritance diagram for mtsSocketProxyServer:
mtsTaskContinuous mtsTask mtsComponent cmnGenericObject

Public Member Functions

 mtsSocketProxyServer (const std::string &name, const std::string &componentName, const std::string &providedInterfaceName, unsigned short port)
 
 mtsSocketProxyServer (const mtsSocketProxyServerConstructorArg &arg)
 
virtual ~mtsSocketProxyServer ()
 
void Configure (const std::string &)
 
void Startup (void)
 
void Run (void)
 
void Cleanup (void)
 
mtsProxySerializer * GetSerializerForClient (const osaIPandPort &ip_port) const
 
mtsProxySerializer * GetSerializerForCurrentClient (void) const
 
mtsCommandWriteBaseAllocateFinishedEvent (const std::string &eventHandle)
 
- Public Member Functions inherited from mtsTaskContinuous
 mtsTaskContinuous (const std::string &name, unsigned int sizeStateTable=256, bool newThread=true)
 
 mtsTaskContinuous (const mtsTaskContinuousConstructorArg &arg)
 
virtual ~mtsTaskContinuous ()
 
void Create (void *data=0)
 
void Start (void)
 
void Suspend (void)
 
void Kill (void)
 
- Public Member Functions inherited from mtsTask
 mtsTask (const std::string &name, unsigned int sizeStateTable=256)
 
virtual ~mtsTask ()
 
virtual void OnStartupException (const std::exception &excp)
 
virtual void OnRunException (const std::exception &excp)
 
virtual void Configure (const std::string &CMN_UNUSED(filename)="")
 
void SetInitializationDelay (double delay)
 
void Create (void)
 
double GetAveragePeriod (void) const
 
const std::string GetDefaultStateTableName (void) const
 
mtsStateTableGetDefaultStateTable (void)
 
mtsInterfaceRequiredAddInterfaceRequiredWithoutSystemEventHandlers (const std::string &interfaceRequiredName, mtsRequiredType required=MTS_REQUIRED)
 
mtsInterfaceProvidedAddInterfaceProvidedWithoutSystemEvents (const std::string &newInterfaceName, mtsInterfaceQueueingPolicy queueingPolicy=MTS_COMPONENT_POLICY, bool isProxy=false)
 
virtual bool WaitToStart (double timeout)
 
virtual bool WaitToTerminate (double timeout)
 
virtual void WaitForWakeup (void)
 
virtual void Wakeup (void)
 
void ProcessManagerCommandsIfNotActive ()
 
bool CheckForOwnThread (void) const
 
virtual bool IsPeriodic (void) const
 
virtual bool IsOverranPeriod (void) const
 
virtual void ResetOverranPeriod (void)
 
- Public Member Functions inherited from mtsComponent
 mtsComponent (const std::string &deviceName)
 
virtual ~mtsComponent ()
 
const std::string & GetName (void) const
 
void GetName (std::string &placeHolder) const
 
void SetName (const std::string &componentName)
 
bool CreateAndWait (double timeoutInSeconds)
 
bool StartAndWait (double timeoutInSeconds)
 
bool KillAndWait (double timeoutInSeconds)
 
mtsInterfaceProvidedAddInterfaceProvided (const std::string &interfaceProvidedName, mtsInterfaceQueueingPolicy queueingPolicy=MTS_COMPONENT_POLICY)
 
CISST_DEPRECATED
mtsInterfaceProvided
AddProvidedInterface (const std::string &interfaceProvidedName)
 
virtual mtsInterfaceOutputAddInterfaceOutput (const std::string &interfaceOutputName)
 
bool InterfaceExists (const std::string &interfaceName, cmnLogLevel lod=CMN_LOG_LEVEL_INIT_VERBOSE) const
 
bool InterfaceProvidedOrOutputExists (const std::string &interfaceName, cmnLogLevel lod=CMN_LOG_LEVEL_INIT_VERBOSE) const
 
bool InterfaceRequiredOrInputExists (const std::string &interfaceName, cmnLogLevel lod=CMN_LOG_LEVEL_INIT_VERBOSE) const
 
mtsInterfaceProvidedGetInterfaceProvided (const std::string &interfaceProvidedName) const
 
mtsInterfaceOutputGetInterfaceOutput (const std::string &interfaceOutputName) const
 
size_t GetNumberOfInterfacesProvided (void) const
 
size_t GetNumberOfInterfacesOutput (void) const
 
bool RemoveInterfaceProvided (const std::string &interfaceProvidedName, const bool skipDisconnect=false)
 
mtsInterfaceRequiredAddInterfaceRequired (const std::string &interfaceRequiredName, mtsRequiredType isRequired=MTS_REQUIRED)
 
CISST_DEPRECATED
mtsInterfaceRequired
AddRequiredInterface (const std::string &requiredInterfaceName)
 
virtual mtsInterfaceInputAddInterfaceInput (const std::string &interfaceInputName)
 
const mtsInterfaceProvidedGetInterfaceProvidedFor (const std::string &interfaceRequiredName)
 
mtsInterfaceRequiredGetInterfaceRequired (const std::string &interfaceRequiredName)
 
mtsInterfaceInputGetInterfaceInput (const std::string &interfaceInputName) const
 
size_t GetNumberOfInterfacesRequired (void) const
 
size_t GetNumberOfInterfacesInput (void) const
 
bool RemoveInterfaceRequired (const std::string &interfaceRequiredName, const bool skipDisconnect=false)
 
const mtsManagerComponentServicesGetManagerComponentServices (void) const
 
mtsManagerComponentServicesGetManagerComponentServices (void)
 
mtsStateTableGetStateTable (const std::string &stateTableName)
 
bool AddStateTable (mtsStateTable *existingStateTable, bool addInterfaceProvided=true)
 
void UseSeparateLogFileDefault (bool forwardToLogger=true)
 
void UseSeparateLogFileDefaultWithDate (bool forwardToLogger=true)
 
void UseSeparateLogFile (const std::string &filename, bool forwardToLogger=true)
 
cmnLogger::StreamBufTypeGetLogMultiplexer (void) const
 
bool IsRunning (void) const
 
bool CISST_DEPRECATED Running (void) const
 
bool IsStarted (void) const
 
bool IsTerminated (void) const
 
bool IsEndTask (void) const
 
const mtsComponentStateGetState (void) const
 
void GetState (mtsComponentState &state) const
 
void ToStream (std::ostream &outputStream) const
 
bool SetReplayMode (void)
 
bool SetReplayData (const std::string &stateTableName, const std::string &fileName)
 
bool SetReplayTime (const double time)
 
std::vector< std::string > GetNamesOfInterfacesProvidedOrOutput (void) const
 
std::vector< std::string > GetNamesOfInterfacesProvided (void) const
 
std::vector< std::string > GetNamesOfInterfacesOutput (void) const
 
std::vector< std::string > GetNamesOfInterfacesRequiredOrInput (void) const
 
std::vector< std::string > GetNamesOfInterfacesRequired (void) const
 
std::vector< std::string > GetNamesOfInterfacesInput (void) const
 
- Public Member Functions inherited from cmnGenericObject
virtual ~cmnGenericObject (void)
 
virtual const
cmnClassServicesBase
Services (void) const =0
 
bool ReconstructFrom (const cmnGenericObject &other)
 
std::string ToString (void) const
 
virtual void ToStreamRaw (std::ostream &outputStream, const char delimiter= ' ', bool headerOnly=false, const std::string &headerPrefix="") const
 
virtual bool FromStreamRaw (std::istream &inputStream, const char delimiter= ' ')
 
virtual void SerializeRaw (std::ostream &outputStream) const
 
virtual void DeSerializeRaw (std::istream &inputStream)
 
virtual size_t ScalarNumber (void) const
 
virtual bool ScalarNumberIsFixed (void) const
 
virtual double Scalar (const size_t CMN_UNUSED(index)) const throw (std::out_of_range)
 
virtual std::string ScalarDescription (const size_t CMN_UNUSED(index), const std::string &CMN_UNUSED(userDescription)) const
 

Protected Types

typedef std::map< osaIPandPort,
mtsProxySerializer * > 
ClientMapType
 
typedef cmnNamedMap
< FunctionVoidProxy > 
FunctionVoidProxyMapType
 
typedef cmnNamedMap
< FunctionWriteProxy > 
FunctionWriteProxyMapType
 
typedef cmnNamedMap
< FunctionReadProxy > 
FunctionReadProxyMapType
 
typedef cmnNamedMap
< FunctionQualifiedReadProxy > 
FunctionQualifiedReadProxyMapType
 
typedef cmnNamedMap
< FunctionVoidReturnProxy > 
FunctionVoidReturnProxyMapType
 
typedef cmnNamedMap
< FunctionWriteReturnProxy > 
FunctionWriteReturnProxyMapType
 
typedef cmnNamedMap
< mtsEventSenderVoid > 
EventGeneratorVoidProxyMapType
 
typedef cmnNamedMap
< mtsEventSenderWrite > 
EventGeneratorWriteProxyMapType
 
- Protected Types inherited from mtsComponent
typedef cmnNamedMap
< mtsStateTable
StateTableMapType
 
typedef cmnNamedMap
< mtsInterfaceProvided
InterfacesProvidedMapType
 
typedef cmnNamedMap
< mtsInterfaceOutput
InterfacesOutputMapType
 
typedef cmnNamedMap
< mtsInterfaceRequired
InterfacesRequiredMapType
 
typedef cmnNamedMap
< mtsInterfaceInput
InterfacesInputMapType
 

Protected Member Functions

bool Init (const std::string &componentName, const std::string &providedInterfaceName)
 
bool CreateServerProxy (const std::string &requiredInterfaceName, size_t providedMailboxSize)
 Create server proxy. More...
 
bool GetInterfaceDescription (mtsInterfaceProvidedDescription &desc) const
 
bool GetHandleVoid (const std::string &commandName, std::string &handleString) const
 
bool GetHandleRead (const std::string &commandName, std::string &handleString) const
 
bool GetHandleWrite (const std::string &commandName, std::string &handleString) const
 
bool GetHandleQualifiedRead (const std::string &commandName, std::string &handleString) const
 
bool GetHandleVoidReturn (const std::string &commandName, std::string &handleString) const
 
bool GetHandleWriteReturn (const std::string &commandName, std::string &handleString) const
 
void EventEnable (const std::string &eventHandleAndName)
 
void EventDisable (const std::string &eventHandleAndName)
 
void AddSpecialCommands (void)
 
mtsExecutionResult GetInitData (std::string &outputArgSerialized, mtsProxySerializer *serializer) const
 
- Protected Member Functions inherited from mtsTaskContinuous
virtual void * RunInternal (void *argument)
 
virtual void StartInternal (void)
 
- Protected Member Functions inherited from mtsTask
void RunEventHandler (void)
 
void ChangeStateEventHandler (const mtsComponentState &newState)
 
mtsExecutionResult RunEvent (bool check=true)
 
void DoRunInternal (void)
 
virtual void StartupInternal (void)
 
virtual void CleanupInternal (void)
 
void Sleep (double timeInSeconds)
 
mtsStateIndex::TimeTicksType GetTick (void) const
 
virtual void SaveThreadStartData (void *data)
 
virtual void SetThreadReturnValue (void *returnValue)
 
void ChangeState (mtsComponentState::Enum newState)
 
bool WaitForState (mtsComponentState desiredState, double timeout)
 
- Protected Member Functions inherited from mtsComponent
 mtsComponent (void)
 
 mtsComponent (const mtsComponent &other)
 
void Initialize (void)
 
mtsInterfaceRequiredAddInterfaceRequiredExisting (const std::string &interfaceRequiredName, mtsInterfaceRequired *interfaceRequired)
 
mtsInterfaceRequiredAddInterfaceRequiredUsingMailbox (const std::string &interfaceRequiredName, mtsMailBox *mailBox, mtsRequiredType required)
 
mtsInterfaceProvidedAddInterfaceProvidedUsingMailbox (const std::string &interfaceProvidedName, mtsMailBox *mailBox)
 
mtsInterfaceInputAddInterfaceInputExisting (const std::string &interfaceInputName, mtsInterfaceInput *interfaceInput)
 
mtsInterfaceOutputAddInterfaceOutputExisting (const std::string &interfaceOutputName, mtsInterfaceOutput *interfaceOutput)
 
void KillSeparateLogFile (void)
 
size_t ProcessMailBoxes (InterfacesProvidedMapType &interfaces)
 
size_t ProcessQueuedCommands (void)
 
size_t ProcessQueuedEvents (void)
 
mtsInterfaceRequiredEnableDynamicComponentManagement (void)
 Enable support for dynamic component management services. More...
 
bool AddInterfaceInternal (const bool useMangerComponentServices=false)
 Add internal interfaces. More...
 
void InterfaceInternalCommands_GetEndUserInterface (const mtsEndUserInterfaceArg &argin, mtsEndUserInterfaceArg &argout)
 
void InterfaceInternalCommands_AddObserverList (const mtsEventHandlerList &argin, mtsEventHandlerList &argout)
 
void InterfaceInternalCommands_RemoveEndUserInterface (const mtsEndUserInterfaceArg &argin, mtsEndUserInterfaceArg &argout)
 
void InterfaceInternalCommands_RemoveObserverList (const mtsEventHandlerList &argin, mtsEventHandlerList &argout)
 
void InterfaceInternalCommands_ComponentCreate (const mtsDescriptionComponent &componentDescription, bool &result)
 
void InterfaceInternalCommands_ComponentStartOther (const mtsComponentStatusControl &arg)
 

Protected Attributes

osaSocket Socket
 
mtsInterfaceProvidedDescription InterfaceDescription
 
FunctionVoidProxyMapType FunctionVoidProxyMap
 
FunctionWriteProxyMapType FunctionWriteProxyMap
 
FunctionReadProxyMapType FunctionReadProxyMap
 
FunctionQualifiedReadProxyMapType FunctionQualifiedReadProxyMap
 
FunctionVoidReturnProxyMapType FunctionVoidReturnProxyMap
 
FunctionWriteReturnProxyMapType FunctionWriteReturnProxyMap
 
EventGeneratorVoidProxyMapType EventGeneratorVoidProxyMap
 
EventGeneratorWriteProxyMapType EventGeneratorWriteProxyMap
 
ClientMapType ClientMap
 
FinishedEventList * FinishedEvents
 
std::vector< mtsCommandBase * > SpecialCommands
 
- Protected Attributes inherited from mtsTaskContinuous
bool NewThread
 
bool CaptureThread
 
- Protected Attributes inherited from mtsTask
osaThread Thread
 
double InitializationDelay
 
osaMutex StateChange
 
osaThreadSignal StateChangeSignal
 
mtsStateTable StateTable
 
bool OverranPeriod
 
void * ThreadStartData
 
void * ReturnValue
 
mtsCallableVoidBaseInterfaceProvidedToManagerCallable
 
mtsInterfaceRequiredExecIn
 
mtsInterfaceProvidedExecOut
 
mtsFunctionVoid RunEventInternal
 
bool RunEventCalled
 
mtsFunctionWrite ChangeStateEvent
 
- Protected Attributes inherited from mtsComponent
std::string Name
 
mtsComponentState State
 
mtsInterfaceProvidedInterfaceProvidedToManager
 
bool UseSeparateLogFileFlag
 
cmnLogger::StreamBufTypeLoDMultiplexerStreambuf
 
std::ofstream * LogFile
 
StateTableMapType StateTables
 
mtsManagerComponentServicesManagerComponentServices
 
mtsFunctionWrite EventGeneratorChangeState
 
bool ReplayMode
 
InterfacesProvidedMapType InterfacesProvided
 
InterfacesOutputMapType InterfacesOutput
 
InterfacesRequiredMapType InterfacesRequired
 
InterfacesInputMapType InterfacesInput
 

Additional Inherited Members

- Public Types inherited from mtsTaskContinuous
typedef mtsTask BaseType
 
- Public Types inherited from mtsTask
typedef mtsComponent BaseType
 
- Public Types inherited from mtsComponent
typedef mtsComponent ThisType
 
- Static Public Attributes inherited from mtsTask
static std::runtime_error UnknownException
 

Member Typedef Documentation

typedef std::map<osaIPandPort, mtsProxySerializer *> mtsSocketProxyServer::ClientMapType
protected

Typedef for client connections. The current design of the cisst serializer only sends the class services the first time an instance of the class is serialized; thus we need a separate serializer for each client.

Typedef for event generator proxies

typedef cmnNamedMap<FunctionQualifiedReadProxy> mtsSocketProxyServer::FunctionQualifiedReadProxyMapType
protected
typedef cmnNamedMap<FunctionReadProxy> mtsSocketProxyServer::FunctionReadProxyMapType
protected
typedef cmnNamedMap<FunctionVoidProxy> mtsSocketProxyServer::FunctionVoidProxyMapType
protected

Typedef for function proxies

typedef cmnNamedMap<FunctionVoidReturnProxy> mtsSocketProxyServer::FunctionVoidReturnProxyMapType
protected
typedef cmnNamedMap<FunctionWriteProxy> mtsSocketProxyServer::FunctionWriteProxyMapType
protected
typedef cmnNamedMap<FunctionWriteReturnProxy> mtsSocketProxyServer::FunctionWriteReturnProxyMapType
protected

Constructor & Destructor Documentation

mtsSocketProxyServer::mtsSocketProxyServer ( const std::string &  name,
const std::string &  componentName,
const std::string &  providedInterfaceName,
unsigned short  port 
)

Constructor

Parameters
nameName of the proxy component
componentNameName of the component for which proxy is being created
providedInterfaceNameName of the provided interface (from componentName) for which proxy is being created
portPort to use for socket (UDP)
mtsSocketProxyServer::mtsSocketProxyServer ( const mtsSocketProxyServerConstructorArg arg)
virtual mtsSocketProxyServer::~mtsSocketProxyServer ( )
virtual

Destructor

Member Function Documentation

void mtsSocketProxyServer::AddSpecialCommands ( void  )
protected
mtsCommandWriteBase* mtsSocketProxyServer::AllocateFinishedEvent ( const std::string &  eventHandle)
void mtsSocketProxyServer::Cleanup ( void  )
virtual

Virtual method that gets overloaded, and is run after the component gets killed using Kill() method.

Reimplemented from mtsComponent.

void mtsSocketProxyServer::Configure ( const std::string &  filename)
inlinevirtual

The virtual method so that the interface or tasks can configure themselves

Reimplemented from mtsComponent.

bool mtsSocketProxyServer::CreateServerProxy ( const std::string &  requiredInterfaceName,
size_t  providedMailboxSize 
)
protected

Create server proxy.

Returns
True if success, false otherwise
void mtsSocketProxyServer::EventDisable ( const std::string &  eventHandleAndName)
protected
void mtsSocketProxyServer::EventEnable ( const std::string &  eventHandleAndName)
protected
bool mtsSocketProxyServer::GetHandleQualifiedRead ( const std::string &  commandName,
std::string &  handleString 
) const
protected
bool mtsSocketProxyServer::GetHandleRead ( const std::string &  commandName,
std::string &  handleString 
) const
protected
bool mtsSocketProxyServer::GetHandleVoid ( const std::string &  commandName,
std::string &  handleString 
) const
protected
bool mtsSocketProxyServer::GetHandleVoidReturn ( const std::string &  commandName,
std::string &  handleString 
) const
protected
bool mtsSocketProxyServer::GetHandleWrite ( const std::string &  commandName,
std::string &  handleString 
) const
protected
bool mtsSocketProxyServer::GetHandleWriteReturn ( const std::string &  commandName,
std::string &  handleString 
) const
protected
mtsExecutionResult mtsSocketProxyServer::GetInitData ( std::string &  outputArgSerialized,
mtsProxySerializer *  serializer 
) const
protected
bool mtsSocketProxyServer::GetInterfaceDescription ( mtsInterfaceProvidedDescription desc) const
protected
mtsProxySerializer* mtsSocketProxyServer::GetSerializerForClient ( const osaIPandPort ip_port) const

Return serializer for client identified by ip_port; if serializer does not exist, create it.

Parameters
ip_portIP address and port number of client
Returns
Pointer to serializer
mtsProxySerializer* mtsSocketProxyServer::GetSerializerForCurrentClient ( void  ) const

Return serializer for current client (last one to send a message); if serializer does not exist, create it.

Returns
Pointer to serializer
bool mtsSocketProxyServer::Init ( const std::string &  componentName,
const std::string &  providedInterfaceName 
)
protected
void mtsSocketProxyServer::Run ( void  )
virtual

Pure virtual method that gets overloaded to run the actual task.

Implements mtsTask.

void mtsSocketProxyServer::Startup ( void  )
virtual

Virtual method that gets overloaded, and is run before the component is started.

Reimplemented from mtsComponent.

Member Data Documentation

ClientMapType mtsSocketProxyServer::ClientMap
protected
EventGeneratorVoidProxyMapType mtsSocketProxyServer::EventGeneratorVoidProxyMap
protected
EventGeneratorWriteProxyMapType mtsSocketProxyServer::EventGeneratorWriteProxyMap
protected
FinishedEventList* mtsSocketProxyServer::FinishedEvents
protected
FunctionQualifiedReadProxyMapType mtsSocketProxyServer::FunctionQualifiedReadProxyMap
protected
FunctionReadProxyMapType mtsSocketProxyServer::FunctionReadProxyMap
protected
FunctionVoidProxyMapType mtsSocketProxyServer::FunctionVoidProxyMap
protected
FunctionVoidReturnProxyMapType mtsSocketProxyServer::FunctionVoidReturnProxyMap
protected
FunctionWriteProxyMapType mtsSocketProxyServer::FunctionWriteProxyMap
protected
FunctionWriteReturnProxyMapType mtsSocketProxyServer::FunctionWriteReturnProxyMap
protected
mtsInterfaceProvidedDescription mtsSocketProxyServer::InterfaceDescription
protected
osaSocket mtsSocketProxyServer::Socket
protected
std::vector<mtsCommandBase *> mtsSocketProxyServer::SpecialCommands
protected

The documentation for this class was generated from the following file: