]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
crimson/net: avoid warning about signed comparison with enum classes
authorSamuel Just <sjust@redhat.com>
Wed, 18 Sep 2019 19:17:25 +0000 (12:17 -0700)
committerKefu Chai <kchai@redhat.com>
Thu, 19 Sep 2019 07:16:23 +0000 (15:16 +0800)
Signed-off-by: Samuel Just <sjust@redhat.com>
src/crimson/net/Interceptor.h
src/crimson/net/Protocol.h

index 7bc07cc9b841ca453652b4aaf8684580214cc514..6bea23a39621b3d5a1be3b4e9a5fc7e89a811d6a 100644 (file)
@@ -12,7 +12,7 @@
 
 namespace ceph::net {
 
-enum class custom_bp_t {
+enum class custom_bp_t : uint8_t {
   BANNER_WRITE = 0,
   BANNER_READ,
   BANNER_PAYLOAD_READ,
@@ -20,13 +20,14 @@ enum class custom_bp_t {
   SOCKET_ACCEPTED
 };
 inline const char* get_bp_name(custom_bp_t bp) {
+  uint8_t index = static_cast<uint8_t>(bp);
   static const char *const bp_names[] = {"BANNER_WRITE",
                                          "BANNER_READ",
                                          "BANNER_PAYLOAD_READ",
                                          "SOCKET_CONNECTING",
                                          "SOCKET_ACCEPTED"};
-  assert(static_cast<int>(bp) < std::size(bp_names));
-  return bp_names[static_cast<int>(bp)];
+  assert(index < std::size(bp_names));
+  return bp_names[index];
 }
 
 enum class bp_type_t {
index 6287d198cfdcc6e20d70e368d35b34a3de7f6c81..ea7c5d0294921b1156972a50c76ee74c8b66f097 100644 (file)
@@ -76,7 +76,7 @@ class Protocol {
  protected:
   // write_state is changed with state atomically, indicating the write
   // behavior of the according state.
-  enum class write_state_t {
+  enum class write_state_t : uint8_t {
     none,
     delay,
     open,
@@ -84,12 +84,13 @@ class Protocol {
   };
 
   static const char* get_state_name(write_state_t state) {
+    uint8_t index = static_cast<uint8_t>(state);
     static const char *const state_names[] = {"none",
                                               "delay",
                                               "open",
                                               "drop"};
-    assert(static_cast<int>(state) < std::size(state_names));
-    return state_names[static_cast<int>(state)];
+    assert(index < std::size(state_names));
+    return state_names[index];
   }
 
   void set_write_state(const write_state_t& state) {