PhoenixSocket  4.0.1
Library which integrates socket unix use in Phoenix
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
12namespace 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
20std::string daemonToString(PSendFlag::PSendFlag flag);
21PSendFlag::PSendFlag daemonSendFlagFromString(const std::string & str);
22
23namespace PSendStatus{
26 OK, //Everything is OK
27 SOCKET_NOT_AVAILABLE, //The socket is not available
28 NO_ROUTE_TO_RECEIVER, //The receiver cannot be reached, maybe caused by network problem
29 SIGNAL_INTERRUPTION, //The socket caught a signal
30 BROKEN_BACKEND, //The backend is broken
31 BROKEN_SOCKET, //The socket is broken and cannot longer be used
32 CANNOT_SERIALIZE_DATA //The data cannot be serialized in the message
33 };
34}
35
38
39namespace PRecvFlag{
42 BLOCK, //Normal usage of the Socket. Blocking until a message comes
43 NON_BLOCK //The Socket recv does not stop the execution of the program
44 };
45}
46
47std::string daemonToString(PRecvFlag::PRecvFlag flag);
48PRecvFlag::PRecvFlag daemonRecvFlagFromString(const std::string & str);
49
50namespace PRecvStatus{
53 OK, //Everything is OK
54 NO_MESSAGE_RECEIVED, //No message was received
55 INVALID_MESSAGE, //The received message is invalid
56 SOCKET_NOT_AVAILABLE, //The socket is not available
57 SIGNAL_INTERRUPTION, //The socket caught a signal
58 BROKEN_BACKEND, //The backend is broken
59 BROKEN_SOCKET, //The socket is broken and cannot longer be used
60 CANNOT_DESERIALIZE_DATA //Cannot deserialize data
61 };
62}
63
66
70 std::string hostname;
72 size_t port;
74 int recvTimeOut{-1};
76 int sendTimeOut{-1};
77};
78
80#define PHOENIX_ASSERT_EXCEPTION(X) {\
81 bool isWrongSend = false;\
82 try{\
83 X;\
84 }catch(...){\
85 isWrongSend = true;\
86 }\
87 data_stream_assert(isWrongSend);\
88}
89
90#endif
91
PRecvFlag::PRecvFlag daemonRecvFlagFromString(const std::string &str)
Convert a std::string into a PRecvFlag.
PSendFlag::PSendFlag daemonSendFlagFromString(const std::string &str)
Convert a std::string into a PSendFlag.
std::string daemonToString(PSendFlag::PSendFlag flag)
Convert a PSendFlag into a std::string.
PSendStatus::PSendStatus daemonSendStatusFromString(const std::string &str)
Convert a std::string into a PSendStatus.
PRecvStatus::PRecvStatus daemonRecvStatusFromString(const std::string &str)
Convert a std::string into a PRecvStatus.
PRecvFlag
describe the receiving flag of the Socket
Definition PSocketFlag.h:41
PRecvStatus
describe the result of the recv
Definition PSocketFlag.h:52
@ SIGNAL_INTERRUPTION
Definition PSocketFlag.h:57
@ CANNOT_DESERIALIZE_DATA
Definition PSocketFlag.h:60
@ NO_MESSAGE_RECEIVED
Definition PSocketFlag.h:54
@ SOCKET_NOT_AVAILABLE
Definition PSocketFlag.h:56
PSendFlag
describe the sending flag of the Socket
Definition PSocketFlag.h:14
PSendStatus
describe the result of the send
Definition PSocketFlag.h:25
@ SOCKET_NOT_AVAILABLE
Definition PSocketFlag.h:27
@ NO_ROUTE_TO_RECEIVER
Definition PSocketFlag.h:28
@ CANNOT_SERIALIZE_DATA
Definition PSocketFlag.h:32
@ SIGNAL_INTERRUPTION
Definition PSocketFlag.h:29
Parameters to create a socket.
Definition PSocketFlag.h:68
int sendTimeOut
Timeout of the send method.
Definition PSocketFlag.h:76
int recvTimeOut
Timeout of the recv method.
Definition PSocketFlag.h:74
std::string hostname
Name of the host to be connected to.
Definition PSocketFlag.h:70
size_t port
Port to be connected to.
Definition PSocketFlag.h:72