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 DEVSVC_MANAGER_IF_H 10 #define DEVSVC_MANAGER_IF_H 11 12 #include "devsvc_listener_holder.h" 13 #include "hdf_device_desc.h" 14 #include "hdf_object.h" 15 16 struct IDevSvcManager { 17 struct HdfObject object; 18 int (*StartService)(struct IDevSvcManager *); 19 int (*AddService)(struct IDevSvcManager *, const char *, uint16_t, struct HdfDeviceObject *, const char *); 20 int (*UpdateService)(struct IDevSvcManager *, const char *, uint16_t, struct HdfDeviceObject *, const char *); 21 int (*SubscribeService)(struct IDevSvcManager *, const char *, struct SubscriberCallback); 22 int (*UnsubscribeService)(struct IDevSvcManager *, const char *); 23 struct HdfObject *(*GetService)(struct IDevSvcManager *, const char *); 24 struct HdfDeviceObject *(*GetObject)(struct IDevSvcManager *, const char *); 25 void (*RemoveService)(struct IDevSvcManager *, const char *); 26 int (*RegsterServListener)(struct IDevSvcManager *, struct ServStatListenerHolder *); 27 void (*UnregsterServListener)(struct IDevSvcManager *, struct ServStatListenerHolder *); 28 }; 29 30 #endif /* DEVSVC_MANAGER_IF_H */ 31