1 /* 2 * Copyright (c) 2020-2021 Huawei Device Co., Ltd. 3 * 4 * HDF is dual licensed: you can use it either under the terms of 5 * the GPL, or the BSD license, at your option. 6 * See the LICENSE file in the root of this repository for complete details. 7 */ 8 9 #ifndef HDF_SERVICE_SUBSCRIBER_H 10 #define HDF_SERVICE_SUBSCRIBER_H 11 12 #include "hdf_device.h" 13 #include "hdf_device_desc.h" 14 #include "hdf_slist.h" 15 16 struct HdfServiceSubscriber { 17 struct HdfSListNode entry; 18 uint32_t state; 19 uint32_t devId; 20 struct SubscriberCallback callback; 21 }; 22 23 enum { 24 HDF_SUBSCRIBER_STATE_PENDING, 25 HDF_SUBSCRIBER_STATE_READY 26 }; 27 28 struct HdfServiceSubscriber *HdfServiceSubscriberObtain(struct SubscriberCallback callback, devid_t devid); 29 void HdfServiceSubscriberRecycle(struct HdfServiceSubscriber *subscriber); 30 void HdfServiceSubscriberDelete(struct HdfSListNode *listEntry); 31 32 #endif /* HDF_SERVICE_SUBSCRIBER_H */ 33