Loading...
Searching...
No Matches
lc.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2018 HAW Hamburg
3 *
4 * This file is subject to the terms and conditions of the GNU Lesser
5 * General Public License v2.1. See the file LICENSE in the top level
6 * directory for more details.
7 */
8
9#pragma once
10
50
51#include "net/sock/udp.h"
52#include "net/nanocoap.h"
53#include "clif.h"
54
55#ifdef __cplusplus
56extern "C" {
57#endif
58
62enum {
68};
69
73enum {
76};
77
81typedef struct {
83 char *res_lookif;
84 char *ep_lookif;
85 unsigned res_last_page;
86 unsigned ep_last_page;
88
97
100
109
125int cord_lc_rd_init(cord_lc_rd_t *rd, void *buf, size_t maxlen,
126 const sock_udp_ep_t *remote);
127
153ssize_t cord_lc_raw(const cord_lc_rd_t *rd, unsigned content_format,
154 unsigned lookup_type, cord_lc_filter_t *filters,
155 void *result, size_t maxlen);
156
181 cord_lc_filter_t *filters, void *buf, size_t maxlen,
182 unsigned type);
183
205static inline ssize_t cord_lc_res(cord_lc_rd_t *rd, cord_lc_res_t *resource,
206 cord_lc_filter_t *filters, void *buf,
207 size_t maxlen)
208{
209 return _lookup_result(rd, resource, filters, buf, maxlen, CORD_LC_RES);
210}
211
233static inline ssize_t cord_lc_ep(cord_lc_rd_t *rd, cord_lc_ep_t *endpoint,
234 cord_lc_filter_t *filters, void *buf,
235 size_t maxlen)
236{
237 return _lookup_result(rd, endpoint, filters, buf, maxlen, CORD_LC_EP);
238}
239
240#ifdef __cplusplus
241}
242#endif
243
CoRE Link Format encoding and decoding library public definitions.
ssize_t _lookup_result(cord_lc_rd_t *rd, cord_lc_res_t *result, cord_lc_filter_t *filters, void *buf, size_t maxlen, unsigned type)
Get one resource from RD server.
static ssize_t cord_lc_res(cord_lc_rd_t *rd, cord_lc_res_t *resource, cord_lc_filter_t *filters, void *buf, size_t maxlen)
Get one resource from RD server.
Definition lc.h:205
int cord_lc_rd_init(cord_lc_rd_t *rd, void *buf, size_t maxlen, const sock_udp_ep_t *remote)
Discover the lookup interfaces of a RD server.
ssize_t cord_lc_raw(const cord_lc_rd_t *rd, unsigned content_format, unsigned lookup_type, cord_lc_filter_t *filters, void *result, size_t maxlen)
Raw lookup for registered resources/endpoints at a RD server.
static ssize_t cord_lc_ep(cord_lc_rd_t *rd, cord_lc_ep_t *endpoint, cord_lc_filter_t *filters, void *buf, size_t maxlen)
Get one endpoint from RD server.
Definition lc.h:233
struct cord_lc_result cord_lc_res_t
Resource typedef.
Definition lc.h:98
struct cord_lc_filter cord_lc_filter_t
Filters to use for a lookup.
struct cord_lc_result cord_lc_ep_t
Endpoint typedef.
Definition lc.h:99
@ CORD_LC_RES
Resource lookup type.
Definition lc.h:74
@ CORD_LC_EP
Endpoint lookup type.
Definition lc.h:75
@ CORD_LC_TIMEOUT
no response from the network
Definition lc.h:64
@ CORD_LC_NORSC
lookup interface not found
Definition lc.h:67
@ CORD_LC_OVERFLOW
internal buffers can not handle input
Definition lc.h:66
@ CORD_LC_OK
everything went as expected
Definition lc.h:63
@ CORD_LC_ERR
internal error or invalid reply
Definition lc.h:65
struct _sock_tl_ep sock_udp_ep_t
An end point for a UDP sock object.
Definition udp.h:293
nanocoap API
UDP sock definitions.
Link format attribute descriptor.
Definition clif.h:136
Link format descriptor.
Definition clif.h:146
Filters to use for a lookup.
Definition lc.h:104
struct cord_lc_filter * next
Next set of filters.
Definition lc.h:107
size_t len
No.
Definition lc.h:106
clif_attr_t * array
Array of filter(s)
Definition lc.h:105
Information about RD server and its lookup interface resources.
Definition lc.h:81
unsigned res_last_page
Page of last resource lookup.
Definition lc.h:85
const sock_udp_ep_t * remote
Remote endpoint of RD server.
Definition lc.h:82
char * res_lookif
Resource lookup interface.
Definition lc.h:83
unsigned ep_last_page
Page of last endpoint lookup.
Definition lc.h:86
char * ep_lookif
Endpoint lookup interface.
Definition lc.h:84
Result of lookup.
Definition lc.h:92
size_t max_attrs
Max parameters at params.
Definition lc.h:95
clif_attr_t * attrs
Array of Link Format parameters.
Definition lc.h:94
clif_t link
Resource link.
Definition lc.h:93