- explicit posix_error(const std::string &msg,
- int errno_code,
- const char *file_name,
- const char *function_name,
- unsigned int line_number);
+ explicit posix_error(const std::string& msg,
+ int errno_code,
+ const char *file_name,
+ const char *function_name,
+ unsigned int line_number);
+};
+
+class communication_error : public runtime_error {
+public:
+ explicit communication_error(const std::string& msg,
+ const char *file_name,
+ const char *function_name,
+ unsigned int line_number);
+};
+
+class protocol_error : public communication_error {
+public:
+ explicit protocol_error(const std::string& msg,
+ const char *file_name,
+ const char *function_name,
+ unsigned int line_number);
+};
+
+class invalid_argument_error : public runtime_error {
+public:
+ explicit invalid_argument_error(const std::string& msg,
+ const char *file_name,
+ const char *function_name,
+ unsigned int line_number);