HomePort
discovery.h
Go to the documentation of this file.
1 /*
2  * Copyright 2011 Aalborg University. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, are
5  * permitted provided that the following conditions are met:
6  *
7  * 1. Redistributions of source code must retain the above copyright notice, this list of
8  * conditions and the following disclaimer.
9  *
10  * 2. Redistributions in binary form must reproduce the above copyright notice, this list
11  * of conditions and the following disclaimer in the documentation and/or other materials
12  * provided with the distribution.
13  *
14  * THIS SOFTWARE IS PROVIDED BY Aalborg University ''AS IS'' AND ANY EXPRESS OR IMPLIED
15  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
16  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Aalborg University OR
17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
19  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
20  * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
21  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
22  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  *
24  * The views and conclusions contained in the software and documentation are those of the
25  * authors and should not be interpreted as representing official policies, either expressed
26  */
27 
28 #ifndef HOMEPORT_DISCOVERY_H
29 #define HOMEPORT_DISCOVERY_H
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
35 #include "hpd/hpd_types.h"
36 #include <stdarg.h>
37 
38 typedef struct hpd_adapter_id {
40  char *aid;
42 
43 typedef struct hpd_device_id {
45  char *did;
47 
48 typedef struct hpd_service_id {
50  char *sid;
52 
53 typedef struct hpd_parameter_id {
55  char *pid;
57 
59 hpd_error_t discovery_alloc_did(hpd_device_id_t **id, hpd_t *hpd, const char *aid, const char *did);
60 hpd_error_t discovery_alloc_sid(hpd_service_id_t **id, hpd_t *hpd, const char *aid, const char *did, const char *sid);
61 hpd_error_t discovery_alloc_pid(hpd_parameter_id_t **id, hpd_t *hpd, const char *aid, const char *did, const char *sid, const char *pid);
62 
67 
72 
74 hpd_error_t discovery_set_did(hpd_device_id_t *id, hpd_t *hpd, const char *aid, const char *did);
75 hpd_error_t discovery_set_sid(hpd_service_id_t *id, hpd_t *hpd, const char *aid, const char *did, const char *sid);
76 hpd_error_t discovery_set_pid(hpd_parameter_id_t *id, hpd_t *hpd, const char *aid, const char *did, const char *sid, const char *pid);
77 
82 
93 
94 hpd_error_t discovery_alloc_adapter(hpd_adapter_t **adapter, const char *id);
95 hpd_error_t discovery_alloc_device(hpd_device_t **device, const char *id);
96 hpd_error_t discovery_alloc_service(hpd_service_t **service, const char *id);
97 hpd_error_t discovery_alloc_parameter(hpd_parameter_t **parameter, const char *id);
98 
103 
108 
113 
115 hpd_error_t discovery_get_adapter_id(hpd_adapter_t *adapter, const char **id);
116 hpd_error_t discovery_get_adapter_attr(hpd_adapter_t *adapter, const char *key, const char **val);
119 hpd_error_t discovery_get_device_id(hpd_device_t *device, const char **id);
120 hpd_error_t discovery_get_device_attr(hpd_device_t *device, const char *key, const char **val);
123 hpd_error_t discovery_get_service_id(hpd_service_t *service, const char **id);
124 hpd_error_t discovery_get_service_attr(hpd_service_t *service, const char *key, const char **val);
126 hpd_error_t discovery_get_parameter_id(hpd_parameter_t *parameter, const char **id);
127 hpd_error_t discovery_get_parameter_attr(hpd_parameter_t *parameter, const char *key, const char **val);
130 
132 hpd_error_t discovery_set_adapter_attr(hpd_adapter_t *adapter, const char *key, const char *val);
135 hpd_error_t discovery_set_device_attr(hpd_device_t *device, const char *key, const char *val);
138 hpd_error_t discovery_set_service_attr(hpd_service_t *service, const char *key, const char *val);
142 hpd_error_t discovery_set_parameter_attr(hpd_parameter_t *parameter, const char *key, const char *val);
144 
157 
170 
175 
177 
178 #ifdef __cplusplus
179 }
180 #endif
181 
182 #endif //HOMEPORT_DISCOVERY_H
hpd_device_id_t device
Definition: discovery.h:49
hpd_error_t discovery_get_parameter_device(const hpd_parameter_id_t *pid, hpd_device_id_t **did)
Definition: discovery_id.c:307
void(* hpd_free_f)(void *data)
[hpd_action_f]
Definition: hpd_types.h:187
hpd_error_t discovery_set_aid(hpd_adapter_id_t *id, hpd_t *hpd, const char *aid)
HPD_E_ALLOC: id might be partially updated.
Definition: discovery_id.c:37
hpd_bool_t discovery_is_device_id_unique(hpd_adapter_t *adapter, hpd_device_t *device)
Definition: discovery.c:781
hpd_error_t discovery_first_parameter_attr(hpd_parameter_t *parameter, hpd_pair_t **pair)
Definition: discovery.c:580
struct hpd_service_id hpd_service_id_t
hpd_error_t discovery_find_service(const hpd_service_id_t *id, hpd_service_t **service)
Definition: discovery_id.c:251
hpd_error_t discovery_get_device_id(hpd_device_t *device, const char **id)
Definition: discovery.c:342
hpd_error_t discovery_next_service_parameter(hpd_parameter_t **parameter)
Definition: discovery.c:761
hpd_bool_t discovery_is_adapter_id_unique(hpd_t *hpd, hpd_adapter_t *adapter)
Definition: discovery.c:773
hpd_error_t discovery_detach_service(hpd_service_t *service)
Definition: discovery.c:302
hpd_error_t discovery_next_hpd_service(hpd_service_t **service)
Definition: discovery.c:704
hpd_error_t discovery_attach_adapter(hpd_t *hpd, hpd_adapter_t *adapter)
Definition: discovery.c:181
hpd_error_t discovery_get_adapter_hpd(const hpd_adapter_id_t *aid, hpd_t **hpd)
Definition: discovery_id.c:263
hpd_error_t discovery_copy_sid(hpd_service_id_t **dst, const hpd_service_id_t *src)
Definition: discovery_id.c:160
hpd_error_t discovery_set_device_data(hpd_device_t *device, void *data, hpd_free_f on_free)
Definition: discovery.c:446
hpd_error_t discovery_get_device_hpd(const hpd_device_id_t *did, hpd_t **hpd)
Definition: discovery_id.c:269
hpd_error_t discovery_set_service_attr(hpd_service_t *service, const char *key, const char *val)
Definition: discovery.c:472
hpd_error_t discovery_alloc_sid(hpd_service_id_t **id, hpd_t *hpd, const char *aid, const char *did, const char *sid)
Definition: discovery_id.c:119
hpd_error_t discovery_get_action_method(const hpd_action_t *action, hpd_method_t *method)
Definition: discovery.c:432
hpd_error_t discovery_first_service_attr(hpd_service_t *service, hpd_pair_t **pair)
Definition: discovery.c:575
hpd_service_id_t service
Definition: discovery.h:54
char * sid
Definition: discovery.h:50
Definition: map.c:34
hpd_error_t discovery_get_device_attrs_v(hpd_device_t *device, va_list vp)
Definition: discovery.c:393
hpd_error_t discovery_set_adapter_data(hpd_adapter_t *adapter, void *data, hpd_free_f on_free)
Definition: discovery.c:438
hpd_error_t discovery_set_service_attrs_v(hpd_service_t *service, va_list vp)
Definition: discovery.c:517
hpd_error_t discovery_get_device_adapter(const hpd_device_id_t *did, hpd_adapter_id_t **aid)
Definition: discovery_id.c:275
hpd_error_t discovery_get_adapter_data(hpd_adapter_t *adapter, void **data)
Definition: discovery.c:318
hpd_error_t discovery_set_adapter_attr(hpd_adapter_t *adapter, const char *key, const char *val)
Definition: discovery.c:462
hpd_error_t discovery_free_did(hpd_device_id_t *id)
Definition: discovery_id.c:178
hpd_t * hpd
Definition: discovery.h:39
hpd_bool_t discovery_has_service_action(hpd_service_t *service, const hpd_method_t method)
Definition: discovery.c:768
hpd_error_t discovery_next_parameter_attr(hpd_pair_t **pair)
Definition: discovery.c:677
hpd_error_t discovery_next_service_attr(hpd_pair_t **pair)
Definition: discovery.c:672
hpd_error_t discovery_detach_device(hpd_device_t *device)
Definition: discovery.c:288
hpd_error_t discovery_set_pid(hpd_parameter_id_t *id, hpd_t *hpd, const char *aid, const char *did, const char *sid, const char *pid)
HPD_E_ALLOC: id might be partially updated.
Definition: discovery_id.c:78
hpd_error_t discovery_attach_service(hpd_device_t *device, hpd_service_t *service)
Definition: discovery.c:235
hpd_error_t discovery_free_device(hpd_device_t *device)
Definition: discovery.c:137
hpd_error_t discovery_get_parameter_id(hpd_parameter_t *parameter, const char **id)
Definition: discovery.c:354
hpd_error_t discovery_attach_parameter(hpd_service_t *service, hpd_parameter_t *parameter)
Definition: discovery.c:259
hpd_error_t discovery_first_hpd_adapter(hpd_t *hpd, hpd_adapter_t **adapter)
Definition: discovery.c:585
hpd_error_t discovery_alloc_adapter(hpd_adapter_t **adapter, const char *id)
Definition: discovery.c:34
struct hpd_device_id hpd_device_id_t
char * aid
Definition: discovery.h:40
hpd_error_t discovery_first_adapter_attr(hpd_adapter_t *adapter, hpd_pair_t **pair)
Definition: discovery.c:565
hpd_error_t discovery_next_adapter_device(hpd_device_t **device)
Definition: discovery.c:733
hpd_error_t discovery_find_parameter(const hpd_parameter_id_t *id, hpd_parameter_t **parameter)
Definition: discovery_id.c:257
hpd_error_t discovery_attach_device(hpd_adapter_t *adapter, hpd_device_t *device)
Definition: discovery.c:208
hpd_error_t discovery_free_service(hpd_service_t *service)
Definition: discovery.c:154
hpd_error_t discovery_detach_adapter(hpd_adapter_t *adapter)
Definition: discovery.c:274
hpd_error_t discovery_get_service_attrs_v(hpd_service_t *service, va_list vp)
Definition: discovery.c:406
hpd_error_t discovery_get_device_attr(hpd_device_t *device, const char *key, const char **val)
Definition: discovery.c:365
hpd_error_t discovery_alloc_aid(hpd_adapter_id_t **id, hpd_t *hpd, const char *aid)
Definition: discovery_id.c:89
hpd_error_t discovery_get_parameter_adapter(const hpd_parameter_id_t *pid, hpd_adapter_id_t **aid)
Definition: discovery_id.c:302
hpd_error_t discovery_free_parameter(hpd_parameter_t *parameter)
Definition: discovery.c:172
hpd_error_t discovery_next_hpd_adapter(hpd_adapter_t **adapter)
Definition: discovery.c:682
hpd_error_t discovery_get_device_data(hpd_device_t *device, void **data)
Definition: discovery.c:324
hpd_error_t discovery_get_parameter_attr(hpd_parameter_t *parameter, const char *key, const char **val)
Definition: discovery.c:375
hpd_error_t discovery_get_service_hpd(const hpd_service_id_t *sid, hpd_t **hpd)
Definition: discovery_id.c:280
data key
hpd_error_t discovery_alloc_did(hpd_device_id_t **id, hpd_t *hpd, const char *aid, const char *did)
Definition: discovery_id.c:104
struct hpd_parameter_id hpd_parameter_id_t
hpd_error_t discovery_first_hpd_service(hpd_t *hpd, hpd_service_t **service)
Definition: discovery.c:603
hpd_error_t discovery_get_parameter_attrs_v(hpd_parameter_t *parameter, va_list vp)
Definition: discovery.c:419
hpd_error_t discovery_copy_did(hpd_device_id_t **dst, const hpd_device_id_t *src)
Definition: discovery_id.c:155
hpd_error_t discovery_alloc_parameter(hpd_parameter_t **parameter, const char *id)
Definition: discovery.c:101
hpd_error_t discovery_set_adapter_attrs_v(hpd_adapter_t *adapter, va_list vp)
Definition: discovery.c:491
enum hpd_error hpd_error_t
Definition: hpd_types.h:167
hpd_error_t discovery_set_sid(hpd_service_id_t *id, hpd_t *hpd, const char *aid, const char *did, const char *sid)
HPD_E_ALLOC: id might be partially updated.
Definition: discovery_id.c:64
hpd_error_t discovery_get_service_device(const hpd_service_id_t *sid, hpd_device_id_t **did)
Definition: discovery_id.c:291
hpd_error_t discovery_set_device_attrs_v(hpd_device_t *device, va_list vp)
Definition: discovery.c:504
hpd_error_t discovery_first_hpd_device(hpd_t *hpd, hpd_device_t **device)
Definition: discovery.c:591
char * did
Definition: discovery.h:45
hpd_error_t discovery_get_adapter_attr(hpd_adapter_t *adapter, const char *key, const char **val)
Definition: discovery.c:360
hpd_error_t discovery_get_parameter_hpd(const hpd_parameter_id_t *pid, hpd_t **hpd)
Definition: discovery_id.c:296
hpd_error_t discovery_find_device(const hpd_device_id_t *id, hpd_device_t **device)
Definition: discovery_id.c:245
hpd_error_t discovery_next_adapter_service(hpd_service_t **service)
Definition: discovery.c:739
char hpd_bool_t
Definition: hpd_types.h:35
hpd_error_t discovery_get_adapter_attrs_v(hpd_adapter_t *adapter, va_list vp)
Definition: discovery.c:380
Definition: daemon.h:50
struct hpd_adapter_id hpd_adapter_id_t
hpd_error_t discovery_find_adapter(const hpd_adapter_id_t *id, hpd_adapter_t **adapter)
Definition: discovery_id.c:239
hpd_error_t discovery_alloc_device(hpd_device_t **device, const char *id)
Definition: discovery.c:55
hpd_error_t discovery_next_device_attr(hpd_pair_t **pair)
Definition: discovery.c:667
hpd_error_t discovery_first_service_parameter(hpd_service_t *service, hpd_parameter_t **parameter)
Definition: discovery.c:642
hpd_status_t(* hpd_action_f)(void *data, hpd_request_t *req)
[hpd_module_def_t functions]
Definition: hpd_types.h:183
hpd_error_t discovery_get_parameter_service(const hpd_parameter_id_t *pid, hpd_service_id_t **sid)
Definition: discovery_id.c:312
hpd_error_t discovery_free_pid(hpd_parameter_id_t *id)
Definition: discovery_id.c:195
hpd_error_t discovery_copy_pid(hpd_parameter_id_t **dst, const hpd_parameter_id_t *src)
Definition: discovery_id.c:165
hpd_error_t discovery_free_aid(hpd_adapter_id_t *id)
Definition: discovery_id.c:171
hpd_error_t discovery_first_adapter_service(hpd_adapter_t *adapter, hpd_service_t **service)
Definition: discovery.c:624
hpd_error_t discovery_set_did(hpd_device_id_t *id, hpd_t *hpd, const char *aid, const char *did)
HPD_E_ALLOC: id might be partially updated.
Definition: discovery_id.c:50
hpd_error_t discovery_get_service_data(hpd_service_t *service, void **data)
Definition: discovery.c:330
hpd_error_t discovery_first_device_service(const hpd_device_t *device, hpd_service_t **service)
Definition: discovery.c:636
hpd_error_t discovery_alloc_pid(hpd_parameter_id_t **id, hpd_t *hpd, const char *aid, const char *did, const char *sid, const char *pid)
Definition: discovery_id.c:134
hpd_error_t discovery_set_service_data(hpd_service_t *service, void *data, hpd_free_f on_free)
Definition: discovery.c:454
hpd_error_t discovery_set_parameter_attrs_v(hpd_parameter_t *parameter, va_list vp)
Definition: discovery.c:530
hpd_error_t discovery_next_action_in_service(hpd_action_t **action)
Definition: discovery.c:648
hpd_error_t discovery_first_device_attr(hpd_device_t *device, hpd_pair_t **pair)
Definition: discovery.c:570
hpd_error_t discovery_next_hpd_device(hpd_device_t **device)
Definition: discovery.c:688
hpd_error_t discovery_free_sid(hpd_service_id_t *id)
Definition: discovery_id.c:186
hpd_error_t discovery_set_service_actions_v(hpd_service_t *service, va_list vp)
Definition: discovery.c:543
hpd_error_t discovery_free_adapter(hpd_adapter_t *adapter)
Definition: discovery.c:120
hpd_error_t discovery_next_adapter_attr(hpd_pair_t **pair)
Definition: discovery.c:662
hpd_error_t discovery_get_service_attr(hpd_service_t *service, const char *key, const char **val)
Definition: discovery.c:370
hpd_error_t discovery_set_device_attr(hpd_device_t *device, const char *key, const char *val)
Definition: discovery.c:467
hpd_error_t discovery_detach_parameter(hpd_parameter_t *parameter)
Definition: discovery.c:310
hpd_error_t discovery_copy_aid(hpd_adapter_id_t **dst, const hpd_adapter_id_t *src)
Definition: discovery_id.c:150
hpd_error_t discovery_set_parameter_attr(hpd_parameter_t *parameter, const char *key, const char *val)
Definition: discovery.c:477
hpd_adapter_id_t adapter
Definition: discovery.h:44
enum hpd_method hpd_method_t
[hpd_log_level_t]
Definition: hpd_types.h:166
hpd_error_t discovery_alloc_service(hpd_service_t **service, const char *id)
Definition: discovery.c:76
hpd_error_t discovery_first_adapter_device(hpd_adapter_t *adapter, hpd_device_t **device)
Definition: discovery.c:618
hpd_error_t discovery_get_adapter_id(hpd_adapter_t *adapter, const char **id)
Definition: discovery.c:336
hpd_bool_t discovery_is_service_id_unique(hpd_device_t *device, hpd_service_t *service)
Definition: discovery.c:789
hpd_error_t discovery_next_device_service(hpd_service_t **service)
Definition: discovery.c:755
hpd_error_t discovery_first_action_in_service(hpd_service_t *service, hpd_action_t **action)
Definition: discovery.c:559
hpd_error_t discovery_set_service_action(hpd_service_t *service, const hpd_method_t method, hpd_action_f action)
Definition: discovery.c:482
hpd_error_t discovery_get_service_id(hpd_service_t *service, const char **id)
Definition: discovery.c:348
hpd_error_t discovery_get_service_adapter(const hpd_service_id_t *sid, hpd_adapter_id_t **aid)
Definition: discovery_id.c:286
hpd_bool_t discovery_is_parameter_id_unique(hpd_service_t *service, hpd_parameter_t *parameter)
Definition: discovery.c:797