summaryrefslogtreecommitdiff
path: root/src/mongo/transport/message_compressor_base.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/transport/message_compressor_base.h')
-rw-r--r--src/mongo/transport/message_compressor_base.h16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/mongo/transport/message_compressor_base.h b/src/mongo/transport/message_compressor_base.h
index c0a2c14b72d..a2c05a6069e 100644
--- a/src/mongo/transport/message_compressor_base.h
+++ b/src/mongo/transport/message_compressor_base.h
@@ -33,8 +33,17 @@
#include "mongo/base/string_data.h"
#include "mongo/platform/atomic_word.h"
+#include <type_traits>
+
namespace mongo {
-using MessageCompressorId = uint8_t;
+enum class MessageCompressor : uint8_t {
+ kNoop = 0,
+ kSnappy = 1,
+ kExtended = 255,
+};
+
+StringData getMessageCompressorName(MessageCompressor id);
+using MessageCompressorId = std::underlying_type<MessageCompressor>::type;
class MessageCompressorBase {
MONGO_DISALLOW_COPYING(MessageCompressorBase);
@@ -109,8 +118,9 @@ protected:
/*
* This is called by sub-classes to intialize their ID/name fields.
*/
- MessageCompressorBase(MessageCompressorId id, StringData name)
- : _id{id}, _name{name.toString()} {}
+ MessageCompressorBase(MessageCompressor id)
+ : _id{static_cast<MessageCompressorId>(id)},
+ _name{getMessageCompressorName(id).toString()} {}
/*
* Called by sub-classes to bump their bytesIn/bytesOut counters for compression