PhoenixSocket  5.0.0
Library which integrates socket use in Phoenix
Loading...
Searching...
No Matches
PSocketFlag.cpp
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#include "PSocketFlag.h"
8#include <stdexcept>
9
11
15 switch(flag){
16 case PSendFlag::BLOCK: return "BLOCK"; break;
17 case PSendFlag::NON_BLOCK: return "NON_BLOCK"; break;
18 }
19 throw std::invalid_argument("Invalid PSendFlag flag");
20}
21
23
27 switch(status){
28 case PSendStatus::OK: return "OK"; break;
29 case PSendStatus::SOCKET_NOT_AVAILABLE: return "SOCKET_NOT_AVAILABLE"; break;
30 case PSendStatus::NO_ROUTE_TO_RECEIVER: return "NO_ROUTE_TO_RECEIVER"; break;
31 case PSendStatus::SIGNAL_INTERRUPTION: return "SIGNAL_INTERRUPTION"; break;
32 case PSendStatus::BROKEN_BACKEND: return "BROKEN_BACKEND"; break;
33 case PSendStatus::BROKEN_SOCKET: return "BROKEN_SOCKET"; break;
34 case PSendStatus::CANNOT_SERIALIZE_DATA: return "CANNOT_SERIALIZE_DATA"; break;
35 }
36 throw std::invalid_argument("Invalid PSendStatus flag");
37}
38
39
41
45 switch(flag){
46 case PRecvFlag::BLOCK: return "BLOCK"; break;
47 case PRecvFlag::NON_BLOCK: return "NON_BLOCK"; break;
48 }
49 throw std::invalid_argument("Invalid PRecvFlag flag");
50}
51
53
57 switch(status){
58 case PRecvStatus::OK: return "OK"; break;
59 case PRecvStatus::NO_MESSAGE_RECEIVED: return "NO_MESSAGE_RECEIVED"; break;
60 case PRecvStatus::INVALID_MESSAGE: return "INVALID_MESSAGE"; break;
61 case PRecvStatus::SOCKET_NOT_AVAILABLE: return "SOCKET_NOT_AVAILABLE"; break;
62 case PRecvStatus::SIGNAL_INTERRUPTION: return "SIGNAL_INTERRUPTION"; break;
63 case PRecvStatus::BROKEN_BACKEND: return "BROKEN_BACKEND"; break;
64 case PRecvStatus::BROKEN_SOCKET: return "BROKEN_SOCKET"; break;
65 case PRecvStatus::CANNOT_DESERIALIZE_DATA: return "CANNOT_DESERIALIZE_DATA"; break;
66 }
67 throw std::invalid_argument("Invalid PRecvStatus flag");
68}
69
71
74template<>
76 if(str == "BLOCK"){return PSendFlag::BLOCK;}
77 else if(str == "NON_BLOCK"){return PSendFlag::NON_BLOCK;}
78 throw std::invalid_argument("Invalid PSendFlag string: " + str);
79}
80
82
85template<>
87 if(str == "OK"){return PSendStatus::OK;}
88 else if(str == "SOCKET_NOT_AVAILABLE"){return PSendStatus::SOCKET_NOT_AVAILABLE;}
89 else if(str == "NO_ROUTE_TO_RECEIVER"){return PSendStatus::NO_ROUTE_TO_RECEIVER;}
90 else if(str == "SIGNAL_INTERRUPTION"){return PSendStatus::SIGNAL_INTERRUPTION;}
91 else if(str == "BROKEN_BACKEND"){return PSendStatus::BROKEN_BACKEND;}
92 else if(str == "BROKEN_SOCKET"){return PSendStatus::BROKEN_SOCKET;}
93 else if(str == "CANNOT_SERIALIZE_DATA"){return PSendStatus::CANNOT_SERIALIZE_DATA;}
94 throw std::invalid_argument("Invalid PSendStatus string: " + str);
95}
96
98
101template<>
103 if(str == "BLOCK"){return PRecvFlag::BLOCK;}
104 else if(str == "NON_BLOCK"){return PRecvFlag::NON_BLOCK;}
105 throw std::invalid_argument("Invalid PRecvFlag string: " + str);
106}
107
109
112template<>
114 if(str == "OK"){return PRecvStatus::OK;}
115 else if(str == "NO_MESSAGE_RECEIVED"){return PRecvStatus::NO_MESSAGE_RECEIVED;}
116 else if(str == "INVALID_MESSAGE"){return PRecvStatus::INVALID_MESSAGE;}
117 else if(str == "SOCKET_NOT_AVAILABLE"){return PRecvStatus::SOCKET_NOT_AVAILABLE;}
118 else if(str == "SIGNAL_INTERRUPTION"){return PRecvStatus::SIGNAL_INTERRUPTION;}
119 else if(str == "BROKEN_BACKEND"){return PRecvStatus::BROKEN_BACKEND;}
120 else if(str == "BROKEN_SOCKET"){return PRecvStatus::BROKEN_SOCKET;}
121 else if(str == "CANNOT_DESERIALIZE_DATA"){return PRecvStatus::CANNOT_DESERIALIZE_DATA;}
122 throw std::invalid_argument("Invalid PRecvStatus string: " + str);
123}
PRecvFlag::PRecvFlag fromString< PRecvFlag::PRecvFlag >(const std::string &str)
Convert a std::string into a PRecvFlag.
PRecvStatus::PRecvStatus fromString< PRecvStatus::PRecvStatus >(const std::string &str)
Convert a std::string into a PRecvStatus.
std::string toString(PSendFlag::PSendFlag flag)
Convert a PSendFlag into a std::string.
PSendFlag::PSendFlag fromString< PSendFlag::PSendFlag >(const std::string &str)
Convert a std::string into a PSendFlag.
PSendStatus::PSendStatus fromString< PSendStatus::PSendStatus >(const std::string &str)
Convert a std::string into a PSendStatus.
PRecvFlag
describe the receiving flag of the Socket
Definition PSocketFlag.h:35
PRecvStatus
describe the result of the recv
Definition PSocketFlag.h:43
@ SIGNAL_INTERRUPTION
Definition PSocketFlag.h:48
@ CANNOT_DESERIALIZE_DATA
Definition PSocketFlag.h:51
@ NO_MESSAGE_RECEIVED
Definition PSocketFlag.h:45
@ SOCKET_NOT_AVAILABLE
Definition PSocketFlag.h:47
PSendFlag
describe the sending flag of the Socket
Definition PSocketFlag.h:14
PSendStatus
describe the result of the send
Definition PSocketFlag.h:22
@ SOCKET_NOT_AVAILABLE
Definition PSocketFlag.h:24
@ NO_ROUTE_TO_RECEIVER
Definition PSocketFlag.h:25
@ CANNOT_SERIALIZE_DATA
Definition PSocketFlag.h:29
@ SIGNAL_INTERRUPTION
Definition PSocketFlag.h:26