OSDN Git Service

Enum-ify stack/include/gatt_api::tGATT_DISC_TYPE
authorChris Manton <cmanton@google.com>
Fri, 20 Nov 2020 03:06:01 +0000 (19:06 -0800)
committerChris Manton <cmanton@google.com>
Thu, 7 Jan 2021 00:56:34 +0000 (16:56 -0800)
Towards readable code

Bug: 163134718
Tag: #refactor
Test: gd/cert/run --host

Change-Id: I4ced3dce19de69bc700e6f1d1a79e64c7aeb11a2

bta/gatt/bta_gattc_cache.cc
bta/gatt/bta_gattc_int.h
btif/src/btif_gatt_test.cc
stack/gatt/gatt_attr.cc
stack/gatt/gatt_cl.cc
stack/gatt/gatt_utils.cc
stack/include/gatt_api.h

index 0da7d64..895d085 100644 (file)
@@ -133,7 +133,7 @@ const Service* bta_gattc_find_matching_service(
 /** Start primary service discovery */
 tGATT_STATUS bta_gattc_discover_pri_service(uint16_t conn_id,
                                             tBTA_GATTC_SERV* p_server_cb,
-                                            uint8_t disc_type) {
+                                            tGATT_DISC_TYPE disc_type) {
   tBTA_GATTC_CLCB* p_clcb = bta_gattc_find_clcb_by_conn_id(conn_id);
   if (!p_clcb) return GATT_ERROR;
 
@@ -446,6 +446,11 @@ void bta_gattc_disc_res_cback(uint16_t conn_id, tGATT_DISC_TYPE disc_type,
     case GATT_DISC_CHAR_DSCPT:
       p_srvc_cb->pending_discovery.AddDescriptor(p_data->handle, p_data->type);
       break;
+
+    case GATT_DISC_MAX:
+    default:
+      LOG_ERROR("Received illegal discovery item");
+      break;
   }
 }
 
@@ -492,6 +497,11 @@ void bta_gattc_disc_cmpl_cback(uint16_t conn_id, tGATT_DISC_TYPE disc_type,
       /* start discovering next characteristic for char descriptor */
       bta_gattc_start_disc_char_dscp(conn_id, p_srvc_cb);
       break;
+
+    case GATT_DISC_MAX:
+    default:
+      LOG_ERROR("Received illegal discovery item");
+      break;
   }
 }
 
index 9bf2704..cf1d69d 100644 (file)
@@ -428,7 +428,7 @@ extern void bta_gattc_disc_cmpl_cback(uint16_t conn_id,
                                       tGATT_STATUS status);
 extern tGATT_STATUS bta_gattc_discover_pri_service(uint16_t conn_id,
                                                    tBTA_GATTC_SERV* p_server_cb,
-                                                   uint8_t disc_type);
+                                                   tGATT_DISC_TYPE disc_type);
 extern void bta_gattc_search_service(tBTA_GATTC_CLCB* p_clcb,
                                      bluetooth::Uuid* p_uuid);
 extern const std::list<gatt::Service>* bta_gattc_get_services(uint16_t conn_id);
index 96e91d9..697c6ed 100644 (file)
@@ -143,6 +143,9 @@ static void btif_test_discovery_result_cback(UNUSED_ATTR uint16_t conn_id,
     case GATT_DISC_CHAR_DSCPT:
       LOG_INFO("       Descriptor UUID: %s", p_data->type.ToString().c_str());
       break;
+    case GATT_DISC_MAX:
+      LOG_ERROR("      Unknown discovery item");
+      break;
   }
 
   LOG_INFO("-----------------------------------------------------------");
@@ -220,8 +223,8 @@ bt_status_t btif_gattc_test_command_impl(int command,
       LOG_INFO("%s: DISCOVER (%s), conn_id=%d, uuid=%s, handles=0x%04x-0x%04x",
                __func__, disc_name[params->u1], test_cb.conn_id,
                params->uuid1->ToString().c_str(), params->u2, params->u3);
-      GATTC_Discover(test_cb.conn_id, params->u1, params->u2, params->u3,
-                     *params->uuid1);
+      GATTC_Discover(test_cb.conn_id, static_cast<tGATT_DISC_TYPE>(params->u1),
+                     params->u2, params->u3, *params->uuid1);
       break;
     }
 
index 0a90cbd..58bb14b 100644 (file)
@@ -449,6 +449,12 @@ static void gatt_disc_res_cback(uint16_t conn_id, tGATT_DISC_TYPE disc_type,
         p_clcb->ccc_result++;
       }
       break;
+
+    case GATT_DISC_SRVC_ALL:
+    case GATT_DISC_INC_SRVC:
+    case GATT_DISC_MAX:
+      LOG_ERROR("Illegal discovery item handled");
+      break;
   }
 }
 
index 7b7bab3..cfe0a50 100644 (file)
@@ -402,8 +402,9 @@ void gatt_process_find_type_value_rsp(UNUSED_ATTR tGATT_TCB& tcb,
     len -= 4;
 
     if (p_clcb->p_reg->app_cb.p_disc_res_cb)
-      (*p_clcb->p_reg->app_cb.p_disc_res_cb)(p_clcb->conn_id,
-                                             p_clcb->op_subtype, &result);
+      (*p_clcb->p_reg->app_cb.p_disc_res_cb)(
+          p_clcb->conn_id, static_cast<tGATT_DISC_TYPE>(p_clcb->op_subtype),
+          &result);
   }
 
   /* last handle  + 1 */
@@ -459,8 +460,9 @@ void gatt_process_read_info_rsp(UNUSED_ATTR tGATT_TCB& tcb, tGATT_CLCB* p_clcb,
     len -= (uuid_len + 2);
 
     if (p_clcb->p_reg->app_cb.p_disc_res_cb)
-      (*p_clcb->p_reg->app_cb.p_disc_res_cb)(p_clcb->conn_id,
-                                             p_clcb->op_subtype, &result);
+      (*p_clcb->p_reg->app_cb.p_disc_res_cb)(
+          p_clcb->conn_id, static_cast<tGATT_DISC_TYPE>(p_clcb->op_subtype),
+          &result);
   }
 
   p_clcb->s_handle = (result.handle == 0) ? 0 : (result.handle + 1);
@@ -911,8 +913,9 @@ void gatt_process_read_by_type_rsp(tGATT_TCB& tcb, tGATT_CLCB* p_clcb,
     /* send callback if is discover procedure */
     if (p_clcb->operation == GATTC_OPTYPE_DISCOVERY &&
         p_clcb->p_reg->app_cb.p_disc_res_cb)
-      (*p_clcb->p_reg->app_cb.p_disc_res_cb)(p_clcb->conn_id,
-                                             p_clcb->op_subtype, &result);
+      (*p_clcb->p_reg->app_cb.p_disc_res_cb)(
+          p_clcb->conn_id, static_cast<tGATT_DISC_TYPE>(p_clcb->op_subtype),
+          &result);
   }
 
   p_clcb->s_handle = (handle == 0) ? 0 : (handle + 1);
@@ -1001,9 +1004,9 @@ void gatt_process_read_rsp(tGATT_TCB& tcb, tGATT_CLCB* p_clcb,
         p_clcb->read_uuid128.result.value.incl_service.service_type =
             bluetooth::Uuid::From128BitLE(p);
         if (p_clcb->p_reg->app_cb.p_disc_res_cb)
-          (*p_clcb->p_reg->app_cb.p_disc_res_cb)(p_clcb->conn_id,
-                                                 p_clcb->op_subtype,
-                                                 &p_clcb->read_uuid128.result);
+          (*p_clcb->p_reg->app_cb.p_disc_res_cb)(
+              p_clcb->conn_id, static_cast<tGATT_DISC_TYPE>(p_clcb->op_subtype),
+              &p_clcb->read_uuid128.result);
         gatt_act_discovery(p_clcb);
       } else {
         gatt_end_operation(p_clcb, GATT_INVALID_PDU, (void*)p);
index ee44762..e8f2ef2 100644 (file)
@@ -1479,7 +1479,8 @@ void gatt_end_operation(tGATT_CLCB* p_clcb, tGATT_STATUS status, void* p_data) {
   tGATT_CL_COMPLETE cb_data;
   tGATT_CMPL_CBACK* p_cmpl_cb =
       (p_clcb->p_reg) ? p_clcb->p_reg->app_cb.p_cmpl_cb : NULL;
-  uint8_t op = p_clcb->operation, disc_type = GATT_DISC_MAX;
+  uint8_t op = p_clcb->operation;
+  tGATT_DISC_TYPE disc_type = GATT_DISC_MAX;
   tGATT_DISC_CMPL_CB* p_disc_cmpl_cb =
       (p_clcb->p_reg) ? p_clcb->p_reg->app_cb.p_disc_cmpl_cb : NULL;
   uint16_t conn_id;
@@ -1515,7 +1516,7 @@ void gatt_end_operation(tGATT_CLCB* p_clcb, tGATT_STATUS status, void* p_data) {
       cb_data.mtu = p_clcb->p_tcb->payload_size;
 
     if (p_clcb->operation == GATTC_OPTYPE_DISCOVERY) {
-      disc_type = p_clcb->op_subtype;
+      disc_type = static_cast<tGATT_DISC_TYPE>(p_clcb->op_subtype);
     }
   }
 
index 6d32c08..c238993 100644 (file)
@@ -470,7 +470,7 @@ typedef uint8_t tGATTS_REQ_TYPE;
 /* Client Used Data Structure
 */
 /* definition of different discovery types */
-enum {
+typedef enum : uint8_t {
   GATT_DISC_SRVC_ALL = 1, /* discover all services */
   GATT_DISC_SRVC_BY_UUID, /* discover service of a special type */
   GATT_DISC_INC_SRVC,     /* discover the included service within a service */
@@ -478,8 +478,7 @@ enum {
                      requirement */
   GATT_DISC_CHAR_DSCPT, /* discover characteristic descriptors of a character */
   GATT_DISC_MAX         /* maximnun discover type */
-};
-typedef uint8_t tGATT_DISC_TYPE;
+} tGATT_DISC_TYPE;
 
 /* GATT read type enumeration
 */