/*
- * Copyright 2016 Facebook, Inc.
+ * Copyright 2017 Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#pragma once
+#include <stdexcept>
+
#include <folly/Format.h>
#include <folly/io/async/DelayedDestruction.h>
class AsyncSocketException : public std::runtime_error {
public:
- enum AsyncSocketExceptionType
- { UNKNOWN = 0
- , NOT_OPEN = 1
- , ALREADY_OPEN = 2
- , TIMED_OUT = 3
- , END_OF_FILE = 4
- , INTERRUPTED = 5
- , BAD_ARGS = 6
- , CORRUPTED_DATA = 7
- , INTERNAL_ERROR = 8
- , NOT_SUPPORTED = 9
- , INVALID_STATE = 10
- , SSL_ERROR = 12
- , COULD_NOT_BIND = 13
- , SASL_HANDSHAKE_TIMEOUT = 14
+ enum AsyncSocketExceptionType {
+ UNKNOWN = 0,
+ NOT_OPEN = 1,
+ ALREADY_OPEN = 2,
+ TIMED_OUT = 3,
+ END_OF_FILE = 4,
+ INTERRUPTED = 5,
+ BAD_ARGS = 6,
+ CORRUPTED_DATA = 7,
+ INTERNAL_ERROR = 8,
+ NOT_SUPPORTED = 9,
+ INVALID_STATE = 10,
+ SSL_ERROR = 12,
+ COULD_NOT_BIND = 13,
+ SASL_HANDSHAKE_TIMEOUT = 14,
+ NETWORK_ERROR = 15
};
AsyncSocketException(AsyncSocketExceptionType type,
return "Could not bind";
case SASL_HANDSHAKE_TIMEOUT:
return "SASL handshake timeout";
+ case NETWORK_ERROR:
+ return "Network error";
default:
return "(Invalid exception type)";
}