PhoenixSocket
6.4.0
Library which integrates socket use in Phoenix
Toggle main menu visibility
Loading...
Searching...
No Matches
PSocketFlag.h
Go to the documentation of this file.
1
/***************************************
2
Auteur : Pierre Aubert
3
Mail : pierre.aubert@lapp.in2p3.fr
4
Licence : CeCILL-C
5
****************************************/
6
7
#ifndef __PSOCKET_FLAG_H__
8
#define __PSOCKET_FLAG_H__
9
10
#include <string>
11
12
namespace
PSendFlag
{
14
enum
PSendFlag
{
15
BLOCK
,
//Normal usage of the Socket. Blocking until a message is sent
16
NON_BLOCK
//The Socket send does not stop the execution of the program
17
};
18
}
19
20
namespace
PSendStatus
{
22
enum
PSendStatus
{
23
OK
,
//Everything is OK
24
SOCKET_NOT_AVAILABLE
,
//The socket is not available
25
NO_ROUTE_TO_RECEIVER
,
//The receiver cannot be reached, maybe caused by network problem
26
SIGNAL_INTERRUPTION
,
//The socket caught a signal
27
BROKEN_BACKEND
,
//The backend is broken
28
BROKEN_SOCKET
,
//The socket is broken and cannot longer be used
29
CANNOT_SERIALIZE_DATA
//The data cannot be serialized in the message
30
};
31
}
32
33
namespace
PRecvFlag
{
35
enum
PRecvFlag
{
36
BLOCK
,
//Normal usage of the Socket. Blocking until a message comes
37
NON_BLOCK
//The Socket recv does not stop the execution of the program
38
};
39
}
40
41
namespace
PRecvStatus
{
43
enum
PRecvStatus
{
44
OK
,
//Everything is OK
45
NO_MESSAGE_RECEIVED
,
//No message was received
46
INVALID_MESSAGE
,
//The received message is invalid
47
SOCKET_NOT_AVAILABLE
,
//The socket is not available
48
SIGNAL_INTERRUPTION
,
//The socket caught a signal
49
BROKEN_BACKEND
,
//The backend is broken
50
BROKEN_SOCKET
,
//The socket is broken and cannot longer be used
51
CANNOT_DESERIALIZE_DATA
//Cannot deserialize data
52
};
53
}
54
56
struct
PSocketParam
{
58
std::string
hostname
;
60
size_t
port
;
62
int
recvTimeOut
{-1};
64
int
sendTimeOut
{-1};
65
};
66
67
//toString functions with overloading
68
std::string
toString
(
PSendFlag::PSendFlag
flag);
69
std::string
toString
(
PSendStatus::PSendStatus
status);
70
std::string
toString
(
PRecvFlag::PRecvFlag
flag);
71
std::string
toString
(
PRecvStatus::PRecvStatus
status);
72
73
//fromString template function with specializations
74
template
<
typename
T>
75
T
fromString
(
const
std::string& str);
76
77
template
<>
78
PSendFlag::PSendFlag
fromString<PSendFlag::PSendFlag>
(
const
std::string& str);
79
80
template
<>
81
PSendStatus::PSendStatus
fromString<PSendStatus::PSendStatus>
(
const
std::string& str);
82
83
template
<>
84
PRecvFlag::PRecvFlag
fromString<PRecvFlag::PRecvFlag>
(
const
std::string& str);
85
86
template
<>
87
PRecvStatus::PRecvStatus
fromString<PRecvStatus::PRecvStatus>
(
const
std::string& str);
88
89
91
#define PHOENIX_ASSERT_EXCEPTION(X) {\
92
bool isWrongSend = false;\
93
try{\
94
X;\
95
}catch(...){\
96
isWrongSend = true;\
97
}\
98
data_stream_assert(isWrongSend);\
99
}
100
101
#endif
102
fromString< PRecvFlag::PRecvFlag >
PRecvFlag::PRecvFlag fromString< PRecvFlag::PRecvFlag >(const std::string &str)
Convert a std::string into a PRecvFlag.
Definition
PSocketFlag.cpp:102
fromString< PRecvStatus::PRecvStatus >
PRecvStatus::PRecvStatus fromString< PRecvStatus::PRecvStatus >(const std::string &str)
Convert a std::string into a PRecvStatus.
Definition
PSocketFlag.cpp:113
fromString
T fromString(const std::string &str)
toString
std::string toString(PSendFlag::PSendFlag flag)
Convert a PSendFlag into a std::string.
Definition
PSocketFlag.cpp:14
fromString< PSendFlag::PSendFlag >
PSendFlag::PSendFlag fromString< PSendFlag::PSendFlag >(const std::string &str)
Convert a std::string into a PSendFlag.
Definition
PSocketFlag.cpp:75
fromString< PSendStatus::PSendStatus >
PSendStatus::PSendStatus fromString< PSendStatus::PSendStatus >(const std::string &str)
Convert a std::string into a PSendStatus.
Definition
PSocketFlag.cpp:86
PRecvFlag
Definition
PSocketFlag.h:33
PRecvFlag::PRecvFlag
PRecvFlag
describe the receiving flag of the Socket
Definition
PSocketFlag.h:35
PRecvFlag::NON_BLOCK
@ NON_BLOCK
Definition
PSocketFlag.h:37
PRecvFlag::BLOCK
@ BLOCK
Definition
PSocketFlag.h:36
PRecvStatus
Definition
PSocketFlag.h:41
PRecvStatus::PRecvStatus
PRecvStatus
describe the result of the recv
Definition
PSocketFlag.h:43
PRecvStatus::SIGNAL_INTERRUPTION
@ SIGNAL_INTERRUPTION
Definition
PSocketFlag.h:48
PRecvStatus::CANNOT_DESERIALIZE_DATA
@ CANNOT_DESERIALIZE_DATA
Definition
PSocketFlag.h:51
PRecvStatus::NO_MESSAGE_RECEIVED
@ NO_MESSAGE_RECEIVED
Definition
PSocketFlag.h:45
PRecvStatus::SOCKET_NOT_AVAILABLE
@ SOCKET_NOT_AVAILABLE
Definition
PSocketFlag.h:47
PRecvStatus::BROKEN_BACKEND
@ BROKEN_BACKEND
Definition
PSocketFlag.h:49
PRecvStatus::BROKEN_SOCKET
@ BROKEN_SOCKET
Definition
PSocketFlag.h:50
PRecvStatus::OK
@ OK
Definition
PSocketFlag.h:44
PRecvStatus::INVALID_MESSAGE
@ INVALID_MESSAGE
Definition
PSocketFlag.h:46
PSendFlag
Definition
PSocketFlag.h:12
PSendFlag::PSendFlag
PSendFlag
describe the sending flag of the Socket
Definition
PSocketFlag.h:14
PSendFlag::BLOCK
@ BLOCK
Definition
PSocketFlag.h:15
PSendFlag::NON_BLOCK
@ NON_BLOCK
Definition
PSocketFlag.h:16
PSendStatus
Definition
PSocketFlag.h:20
PSendStatus::PSendStatus
PSendStatus
describe the result of the send
Definition
PSocketFlag.h:22
PSendStatus::BROKEN_SOCKET
@ BROKEN_SOCKET
Definition
PSocketFlag.h:28
PSendStatus::SOCKET_NOT_AVAILABLE
@ SOCKET_NOT_AVAILABLE
Definition
PSocketFlag.h:24
PSendStatus::NO_ROUTE_TO_RECEIVER
@ NO_ROUTE_TO_RECEIVER
Definition
PSocketFlag.h:25
PSendStatus::CANNOT_SERIALIZE_DATA
@ CANNOT_SERIALIZE_DATA
Definition
PSocketFlag.h:29
PSendStatus::SIGNAL_INTERRUPTION
@ SIGNAL_INTERRUPTION
Definition
PSocketFlag.h:26
PSendStatus::OK
@ OK
Definition
PSocketFlag.h:23
PSendStatus::BROKEN_BACKEND
@ BROKEN_BACKEND
Definition
PSocketFlag.h:27
PSocketParam
Parameters to create a socket.
Definition
PSocketFlag.h:56
PSocketParam::sendTimeOut
int sendTimeOut
Timeout of the send method.
Definition
PSocketFlag.h:64
PSocketParam::recvTimeOut
int recvTimeOut
Timeout of the recv method.
Definition
PSocketFlag.h:62
PSocketParam::hostname
std::string hostname
Name of the host to be connected to.
Definition
PSocketFlag.h:58
PSocketParam::port
size_t port
Port to be connected to.
Definition
PSocketFlag.h:60
src
PSocketFlag.h
Generated by
1.17.0