cisst-saw
Loading...
Searching...
No Matches
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 &) override
void Startup (void) override
void Run (void) override
void Cleanup (void) override
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) override
void Start (void) override
void Suspend (void) override
void Kill (void) override
virtual bool CreatesThread (void) const
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)
void Configure (const std::string &CMN_UNUSED(filename)="") override
void SetInitializationDelay (double delay)
void Create (void) override
double GetAveragePeriod (void) const
const std::string GetDefaultStateTableName (void) const
mtsStateTableGetDefaultStateTable (void)
mtsInterfaceRequiredAddInterfaceRequiredWithoutSystemEventHandlers (const std::string &interfaceRequiredName, mtsRequiredType required=MTS_REQUIRED) override
mtsInterfaceProvidedAddInterfaceProvidedWithoutSystemEvents (const std::string &newInterfaceName, mtsInterfaceQueueingPolicy queueingPolicy=MTS_COMPONENT_POLICY) override
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 AddTag (const std::string &tag)
const std::set< std::string > & GetTags (void) 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 mtsInterfaceProvidedAddProvidedInterface (const std::string &interfaceProvidedName)
virtual mtsInterfaceOutputAddInterfaceOutput (const std::string &interfaceOutputName)
std::vector< std::string > GetNamesOfInterfacesProvidedOrOutput (void) const
std::vector< std::string > GetNamesOfInterfacesProvided (void) const
std::vector< std::string > GetNamesOfInterfacesOutput (void) const
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)
mtsInterfaceRequiredAddInterfaceRequired (const std::string &interfaceRequiredName, mtsRequiredType isRequired=MTS_REQUIRED)
CISST_DEPRECATED mtsInterfaceRequiredAddRequiredInterface (const std::string &requiredInterfaceName)
virtual mtsInterfaceInputAddInterfaceInput (const std::string &interfaceInputName)
std::vector< std::string > GetNamesOfInterfacesRequiredOrInput (void) const
std::vector< std::string > GetNamesOfInterfacesRequired (void) const
std::vector< std::string > GetNamesOfInterfacesInput (void) const
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)
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 override
bool AreAllInterfacesRequiredConnected (const bool log=false)
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 override
bool SetReplayMode (void)
bool SetReplayData (const std::string &stateTableName, const std::string &fileName)
bool SetReplayTime (const double time)
Public Member Functions inherited from cmnGenericObject
virtual ~cmnGenericObject (void)
virtual const cmnClassServicesBaseServices (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 CISST_THROW(std
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< mtsInterfaceProvidedInterfacesProvidedMapType
typedef cmnNamedMap< mtsInterfaceOutputInterfacesOutputMapType
typedef cmnNamedMap< mtsInterfaceRequiredInterfacesRequiredMapType
typedef cmnNamedMap< mtsInterfaceInputInterfacesInputMapType
typedef cmnNamedMap< mtsStateTableStateTableMapType

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.
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
void * RunInternal (void *argument) override
virtual void StartInternal (void)
Protected Member Functions inherited from mtsTask
virtual const mtsManagerComponentServicesGetManagerComponentServices (void) const override
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) override
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.
bool AddInterfaceInternal (const bool useMangerComponentServices=false)
 Add internal interfaces.
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)

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
std::set< std::string > mTags
mtsInterfaceProvidedInterfaceProvidedToManager
bool UseSeparateLogFileFlag
cmnLogger::StreamBufTypeLoDMultiplexerStreambuf
std::ofstream * LogFile
InterfacesProvidedMapType InterfacesProvided
InterfacesOutputMapType InterfacesOutput
InterfacesRequiredMapType InterfacesRequired
InterfacesInputMapType InterfacesInput
StateTableMapType StateTables
mtsManagerComponentServicesManagerComponentServices
mtsFunctionWrite EventGeneratorChangeState
bool ReplayMode

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

◆ ClientMapType

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.

◆ EventGeneratorVoidProxyMapType

Typedef for event generator proxies

◆ EventGeneratorWriteProxyMapType

◆ FunctionQualifiedReadProxyMapType

typedef cmnNamedMap<FunctionQualifiedReadProxy> mtsSocketProxyServer::FunctionQualifiedReadProxyMapType
protected

◆ FunctionReadProxyMapType

typedef cmnNamedMap<FunctionReadProxy> mtsSocketProxyServer::FunctionReadProxyMapType
protected

◆ FunctionVoidProxyMapType

typedef cmnNamedMap<FunctionVoidProxy> mtsSocketProxyServer::FunctionVoidProxyMapType
protected

Typedef for function proxies

◆ FunctionVoidReturnProxyMapType

typedef cmnNamedMap<FunctionVoidReturnProxy> mtsSocketProxyServer::FunctionVoidReturnProxyMapType
protected

◆ FunctionWriteProxyMapType

typedef cmnNamedMap<FunctionWriteProxy> mtsSocketProxyServer::FunctionWriteProxyMapType
protected

◆ FunctionWriteReturnProxyMapType

typedef cmnNamedMap<FunctionWriteReturnProxy> mtsSocketProxyServer::FunctionWriteReturnProxyMapType
protected

Constructor & Destructor Documentation

◆ mtsSocketProxyServer() [1/2]

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() [2/2]

mtsSocketProxyServer::mtsSocketProxyServer ( const mtsSocketProxyServerConstructorArg & arg)

◆ ~mtsSocketProxyServer()

virtual mtsSocketProxyServer::~mtsSocketProxyServer ( )
virtual

Destructor

Member Function Documentation

◆ AddSpecialCommands()

void mtsSocketProxyServer::AddSpecialCommands ( void )
protected

◆ AllocateFinishedEvent()

mtsCommandWriteBase * mtsSocketProxyServer::AllocateFinishedEvent ( const std::string & eventHandle)

◆ Cleanup()

void mtsSocketProxyServer::Cleanup ( void )
overridevirtual

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

Reimplemented from mtsComponent.

◆ Configure()

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

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

Reimplemented from mtsComponent.

◆ CreateServerProxy()

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

Create server proxy.

Returns
True if success, false otherwise

◆ EventDisable()

void mtsSocketProxyServer::EventDisable ( const std::string & eventHandleAndName)
protected

◆ EventEnable()

void mtsSocketProxyServer::EventEnable ( const std::string & eventHandleAndName)
protected

◆ GetHandleQualifiedRead()

bool mtsSocketProxyServer::GetHandleQualifiedRead ( const std::string & commandName,
std::string & handleString ) const
protected

◆ GetHandleRead()

bool mtsSocketProxyServer::GetHandleRead ( const std::string & commandName,
std::string & handleString ) const
protected

◆ GetHandleVoid()

bool mtsSocketProxyServer::GetHandleVoid ( const std::string & commandName,
std::string & handleString ) const
protected

◆ GetHandleVoidReturn()

bool mtsSocketProxyServer::GetHandleVoidReturn ( const std::string & commandName,
std::string & handleString ) const
protected

◆ GetHandleWrite()

bool mtsSocketProxyServer::GetHandleWrite ( const std::string & commandName,
std::string & handleString ) const
protected

◆ GetHandleWriteReturn()

bool mtsSocketProxyServer::GetHandleWriteReturn ( const std::string & commandName,
std::string & handleString ) const
protected

◆ GetInitData()

mtsExecutionResult mtsSocketProxyServer::GetInitData ( std::string & outputArgSerialized,
mtsProxySerializer * serializer ) const
protected

◆ GetInterfaceDescription()

bool mtsSocketProxyServer::GetInterfaceDescription ( mtsInterfaceProvidedDescription & desc) const
protected

◆ GetSerializerForClient()

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

◆ GetSerializerForCurrentClient()

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

◆ Init()

bool mtsSocketProxyServer::Init ( const std::string & componentName,
const std::string & providedInterfaceName )
protected

◆ Run()

void mtsSocketProxyServer::Run ( void )
overridevirtual

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

Implements mtsTask.

◆ Startup()

void mtsSocketProxyServer::Startup ( void )
overridevirtual

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

Reimplemented from mtsComponent.

Member Data Documentation

◆ ClientMap

ClientMapType mtsSocketProxyServer::ClientMap
protected

◆ EventGeneratorVoidProxyMap

EventGeneratorVoidProxyMapType mtsSocketProxyServer::EventGeneratorVoidProxyMap
protected

◆ EventGeneratorWriteProxyMap

EventGeneratorWriteProxyMapType mtsSocketProxyServer::EventGeneratorWriteProxyMap
protected

◆ FinishedEvents

FinishedEventList* mtsSocketProxyServer::FinishedEvents
protected

◆ FunctionQualifiedReadProxyMap

FunctionQualifiedReadProxyMapType mtsSocketProxyServer::FunctionQualifiedReadProxyMap
protected

◆ FunctionReadProxyMap

FunctionReadProxyMapType mtsSocketProxyServer::FunctionReadProxyMap
protected

◆ FunctionVoidProxyMap

FunctionVoidProxyMapType mtsSocketProxyServer::FunctionVoidProxyMap
protected

◆ FunctionVoidReturnProxyMap

FunctionVoidReturnProxyMapType mtsSocketProxyServer::FunctionVoidReturnProxyMap
protected

◆ FunctionWriteProxyMap

FunctionWriteProxyMapType mtsSocketProxyServer::FunctionWriteProxyMap
protected

◆ FunctionWriteReturnProxyMap

FunctionWriteReturnProxyMapType mtsSocketProxyServer::FunctionWriteReturnProxyMap
protected

◆ InterfaceDescription

mtsInterfaceProvidedDescription mtsSocketProxyServer::InterfaceDescription
protected

◆ Socket

osaSocket mtsSocketProxyServer::Socket
protected

◆ SpecialCommands

std::vector<mtsCommandBase *> mtsSocketProxyServer::SpecialCommands
protected

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