cisst-saw
Loading...
Searching...
No Matches
mtsSocketProxyCommon.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 Author(s): Peter Kazanzides
6 Created on: 2013-09-08
7
8 (C) Copyright 2013-2023 Johns Hopkins University (JHU), All Rights Reserved.
9
10--- begin cisst license - do not edit ---
11
12This software is provided "as is" under an open source license, with
13no warranty. The complete license can be found in license.txt and
14http://www.cisst.org/cisst/license.txt.
15
16--- end cisst license ---
17*/
18
19
25
26#ifndef _mtsSocketProxyCommon_h
27#define _mtsSocketProxyCommon_h
28
29#include <string>
30
32
34
35class mtsFunctionRead;
38
39namespace mtsSocketProxy {
40
41 const unsigned int SOCKET_PROXY_VERSION = 0;
42 const unsigned int SOCKET_PROXY_PACKET_SIZE = 512;
43
44};
45
47 char cmdType; // V (Void), R (Read), W (Write), Q (Qualified Read),
48 // v (Void-blocking), r (VoidReturn), w (Write-blocking), q (WriteReturn)
49 // I (initialization)
50 long long int addr;
51
52 // Size of serialized version of the CommandHandle (space:1, cmdType:1, addr:8)
53 enum {COMMAND_HANDLE_STRING_SIZE = sizeof(long long int) + 2*sizeof(char) };
54
55 CommandHandle(char cmd, void *ptr);
56 CommandHandle(const char *str);
57 CommandHandle(const std::string &str);
59
60 static bool IsValidType(char cmd_type);
61 bool IsValid(void) const;
62
63 // Serializes the CommandHandle as a string. Returns number of bytes serialized
64 // (COMMAND_HANDLE_STRING_SIZE on success, 0 on failure). For the "char *" version,
65 // make sure the buffer is the correct size.
66 int ToString(char *str) const;
67 int ToString(std::string &str) const;
68
69 // Deserializes the CommandHandle from a string. Returns number of bytes deserialized
70 // (COMMAND_HANDLE_STRING_SIZE on success, 0 on failure).
71 int FromString(const char *str);
72 int FromString(const std::string &str);
73
74 bool operator == (const CommandHandle & other) const;
75 bool operator != (const CommandHandle & other) const;
76};
77
79{
81
82 unsigned int version;
83 unsigned int packetSize;
84 char getInterfaceDescription[CommandHandle::COMMAND_HANDLE_STRING_SIZE];
88 char getHandleQualifiedRead[CommandHandle::COMMAND_HANDLE_STRING_SIZE];
89 char getHandleVoidReturn[CommandHandle::COMMAND_HANDLE_STRING_SIZE];
90 char getHandleWriteReturn[CommandHandle::COMMAND_HANDLE_STRING_SIZE];
93
94public:
101
102 unsigned int InterfaceVersion(void) const { return version; }
103 unsigned int PacketSize(void) const { return packetSize; }
104 const char *GetInterfaceDescription(void) const { return getInterfaceDescription; }
105 const char *GetHandleVoid(void) const { return getHandleVoid; }
106 const char *GetHandleRead(void) const { return getHandleRead; }
107 const char *GetHandleWrite(void) const { return getHandleWrite; }
108 const char *GetHandleQualifiedRead(void) const { return getHandleQualifiedRead; }
109 const char *GetHandleVoidReturn(void) const { return getHandleVoidReturn; }
110 const char *GetHandleWriteReturn(void) const { return getHandleWriteReturn; }
111 const char *EventEnable(void) const { return eventEnable; }
112 const char *EventDisable(void) const { return eventDisable; }
113
114 void SerializeRaw(std::ostream & outputStream) const override;
115 void DeSerializeRaw(std::istream & inputStream) override;
116
117 void ToStream(std::ostream & outputStream) const override;
118
120 void ToStreamRaw(std::ostream & outputStream, const char delimiter = ' ',
121 bool headerOnly = false, const std::string & headerPrefix = "") const override;
122
125 bool FromStreamRaw(std::istream & inputStream, const char delimiter = ' ') override;
126};
127
129
130#endif // _mtsSocketProxyCommon_h
Definition mtsFunctionQualifiedRead.h:37
Definition mtsFunctionRead.h:37
Definition mtsFunctionWrite.h:37
mtsGenericObject(void)
Definition mtsGenericObject.h:77
Definition mtsSocketProxyCommon.h:79
void SerializeRaw(std::ostream &outputStream) const override
const char * GetHandleRead(void) const
Definition mtsSocketProxyCommon.h:106
unsigned int InterfaceVersion(void) const
Definition mtsSocketProxyCommon.h:102
void ToStream(std::ostream &outputStream) const override
void ToStreamRaw(std::ostream &outputStream, const char delimiter=' ', bool headerOnly=false, const std::string &headerPrefix="") const override
const char * GetHandleWrite(void) const
Definition mtsSocketProxyCommon.h:107
const char * GetHandleWriteReturn(void) const
Definition mtsSocketProxyCommon.h:110
const char * EventDisable(void) const
Definition mtsSocketProxyCommon.h:112
const char * EventEnable(void) const
Definition mtsSocketProxyCommon.h:111
unsigned int PacketSize(void) const
Definition mtsSocketProxyCommon.h:103
const char * GetInterfaceDescription(void) const
Definition mtsSocketProxyCommon.h:104
const char * GetHandleVoid(void) const
Definition mtsSocketProxyCommon.h:105
mtsSocketProxyInitData(unsigned int psize, mtsFunctionRead *gid, mtsFunctionQualifiedRead *ghv, mtsFunctionQualifiedRead *ghr, mtsFunctionQualifiedRead *ghw, mtsFunctionQualifiedRead *ghqr, mtsFunctionQualifiedRead *ghvr, mtsFunctionQualifiedRead *ghwr, mtsFunctionWrite *ee, mtsFunctionWrite *ed)
bool FromStreamRaw(std::istream &inputStream, const char delimiter=' ') override
const char * GetHandleVoidReturn(void) const
Definition mtsSocketProxyCommon.h:109
const char * GetHandleQualifiedRead(void) const
Definition mtsSocketProxyCommon.h:108
void DeSerializeRaw(std::istream &inputStream) override
~mtsSocketProxyInitData()
Definition mtsSocketProxyCommon.h:100
#define CMN_DECLARE_SERVICES_INSTANTIATION(className)
Definition cmnClassRegisterMacros.h:199
const int CMN_NO_DYNAMIC_CREATION
Definition cmnClassRegisterMacros.h:325
#define CISST_EXPORT
Definition cmnExportMacros.h:50
#define CMN_LOG_ALLOW_DEFAULT
Definition cmnLogLoD.h:76
Rules of exporting.
Defines mtsGenericObject.
Definition mtsSocketProxyCommon.h:39
const unsigned int SOCKET_PROXY_VERSION
Definition mtsSocketProxyCommon.h:41
const unsigned int SOCKET_PROXY_PACKET_SIZE
Definition mtsSocketProxyCommon.h:42
int FromString(const char *str)
~CommandHandle()
Definition mtsSocketProxyCommon.h:58
CommandHandle(const char *str)
CommandHandle(const std::string &str)
bool IsValid(void) const
int ToString(std::string &str) const
int ToString(char *str) const
@ COMMAND_HANDLE_STRING_SIZE
Definition mtsSocketProxyCommon.h:53
long long int addr
Definition mtsSocketProxyCommon.h:50
int FromString(const std::string &str)
static bool IsValidType(char cmd_type)
char cmdType
Definition mtsSocketProxyCommon.h:47
CommandHandle(char cmd, void *ptr)
bool operator==(const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix) const
Definition vctDynamicConstMatrixBase.h:715
bool operator!=(const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix) const
Definition vctDynamicConstMatrixBase.h:743