+
+ switch(noti_id) {
+ case ZBLIB_SERVICE_NOTI_FORM_NETWORK_DONE: {
+ ZigbeeServiceServiceFormNetworkDone_t *panid_t =
+ (ZigbeeServiceServiceFormNetworkDone_t*)noti_data;
+
+ Z_LOGD("form_network_done : [0x%X]", panid_t->pan_id);
+
+ zigbee_service_emit_form_network_done(service_object, panid_t->pan_id);
+ }
+ break;
+ case ZBLIB_SERVICE_NOTI_CHILD_JOINED: {
+ zigbee_service_emit_child_joined(service_object, (GVariant *)noti_data);
+ }
+ break;
+ case ZBLIB_SERVICE_NOTI_CHILD_REJOINED: {
+ ZigbeeServiceServiceChildRejoined_t ieee_addr_t;
+ memcpy(&ieee_addr_t, noti_data, noti_data_len);
+ zigbee_service_emit_child_rejoined(service_object, ieee_addr_t.eui64);
+ }
+ break;
+ case ZBLIB_SERVICE_NOTI_CHILD_LEFT: {
+ ZigbeeServiceServiceChildLeft_t child_left_t;
+ memcpy(&child_left_t, noti_data, noti_data_len);
+ zigbee_service_emit_child_left(service_object, child_left_t.eui64, child_left_t.status);
+ }
+ break;
+ case ZBLIB_SERVICE_NOTI_LEAVE_NETWORK_DONE: {
+ ZigbeeServiceServiceLeaveNetworkDone_t leave_net_t;
+ memcpy(&leave_net_t, noti_data, noti_data_len);
+ zigbee_service_emit_leave_network_done(service_object, leave_net_t.pan_id);
+ }
+ break;
+ default:
+ Z_LOGE("Unexpected notification [%x]", noti_id);
+ break;
+ }
+
+ /* ZigbeeService should be dereferenced */
+ g_object_unref(service_object);