mirror of
https://github.com/obgm/libcoap.git
synced 2026-11-07 18:12:55 +03:00
include/coap2/coap_subscribe_internal.h and include/coap2/coap_session_internal.h contain the information not exposed to applications. This internal information was moved out of the respective include/coap2/subscribe.h and include/coap2/coap_session.h files comprising of the coap_subscription_t and coap_endpoint_t definitions. To ease inter .h file dependencies, a new file include/coap2/coap_forward_decls.h is added to include forward declarations for both libcoap and applications. Makefile.am: Include include/coap2/coap_*internal.h as files for distribution, but not installed for applications to use. Include include/coap2/coap_forward_decls.h, so it is installed for applications. include/coap2/coap.h.in: Include "coap_forward_decls.h" include/coap2/coap_forward_decls.h: (New) Forward declare structures and typedef the structures defined in coap_internal.h. include/coap2/coap_internal.h: (New) Includes all the required #include files that libcoap internally needs. include/coap2/coap_session_internal.h: (New) Include the coap_endpoint_t information taken from include/coap2/coap_session.h. include/coap2/coap_session.h: Remove coap_endpoint_t definition. include/coap2/lwippools.h: Add in coap_forward_decls.h and coap_internal.h to handle the LwIP memory allocations. include/coap2/resource.h: Add in "block.h" to allow things to build. include/coap2/coap_subscribe_internal.h: (New) Include the coap_subscription_t information taken from include/coap2/subscribe.h. include/coap2/subscribe.h: Remove coap_subscription_t definition. libcoap-2.map: libcoap-2.sym: Updated, removing coap_subscription_init(). src/address.c: src/asyn.c: src/block.c: src/coap_debug.c: src/coap_event.c: src/coap_gnutls.c: src/coap_hashkey.c: src/coap_io.c: src/coap_io_lwip.c: src/coap_notls.c: src/coap_openssl.c: src/coap_session.c: src/coap_time.c: src/coap_tinydtls.c: src/encode.c: src/mem.c: src/net.c: src/option.c: src/pdu.c: src/resource.c: src/str.c: src/subscribe.c: src/uri.c: Add in '#include "coap_internal.h"' to the source files. Remove other libcoap #include files. win32/libcoap.vcxproj: win32/libcoap.vcxproj.filters: Update for Windows build (not tested). examples/contiki/server.c: src/coap_io.c: Remove knowledge of endpoint from the server and update Contiki's version of coap_run_once() to do the work instead. ==== Other structures (plus some internal required #defines) will follow as separate PRs.
66 lines
2.2 KiB
C
66 lines
2.2 KiB
C
/*
|
|
* coap_subscribe_internal.h -- Structures, Enums & Functions that are not
|
|
* exposed to application programming
|
|
*
|
|
* Copyright (C) 2010-2019 Olaf Bergmann <bergmann@tzi.org>
|
|
*
|
|
* This file is part of the CoAP library libcoap. Please see README for terms
|
|
* of use.
|
|
*/
|
|
|
|
/**
|
|
* @file coap_subscribe_internal.h
|
|
* @brief COAP subscribe internal information
|
|
*/
|
|
|
|
#ifndef COAP_SUBSCRIBE_INTERNAL_H_
|
|
#define COAP_SUBSCRIBE_INTERNAL_H_
|
|
|
|
/**
|
|
* @defgroup subscribe_internal Subscribe (Internal)
|
|
* Structures, Enums and Functions that are not exposed to applications
|
|
* @{
|
|
*/
|
|
|
|
#ifndef COAP_OBS_MAX_NON
|
|
/**
|
|
* Number of notifications that may be sent non-confirmable before a confirmable
|
|
* message is sent to detect if observers are alive. The maximum allowed value
|
|
* here is @c 15.
|
|
*/
|
|
#define COAP_OBS_MAX_NON 5
|
|
#endif /* COAP_OBS_MAX_NON */
|
|
|
|
#ifndef COAP_OBS_MAX_FAIL
|
|
/**
|
|
* Number of confirmable notifications that may fail (i.e. time out without
|
|
* being ACKed) before an observer is removed. The maximum value for
|
|
* COAP_OBS_MAX_FAIL is @c 3.
|
|
*/
|
|
#define COAP_OBS_MAX_FAIL 3
|
|
#endif /* COAP_OBS_MAX_FAIL */
|
|
|
|
/** Subscriber information */
|
|
struct coap_subscription_t {
|
|
struct coap_subscription_t *next; /**< next element in linked list */
|
|
struct coap_session_t *session; /**< subscriber session */
|
|
|
|
unsigned int non_cnt:4; /**< up to 15 non-confirmable notifies allowed */
|
|
unsigned int fail_cnt:2; /**< up to 3 confirmable notifies can fail */
|
|
unsigned int dirty:1; /**< set if the notification temporarily could not be
|
|
* sent (in that case, the resource's partially
|
|
* dirty flag is set too) */
|
|
unsigned int has_block2:1; /**< GET request had Block2 definition */
|
|
uint16_t tid; /**< transaction id, if any, in regular host byte order */
|
|
coap_block_t block2; /**< GET request Block2 definition */
|
|
size_t token_length; /**< actual length of token */
|
|
unsigned char token[8]; /**< token used for subscription */
|
|
struct coap_string_t *query; /**< query string used for subscription, if any */
|
|
};
|
|
|
|
void coap_subscription_init(coap_subscription_t *);
|
|
|
|
/** @} */
|
|
|
|
#endif /* COAP_SUBSCRIBE_INTERNAL_H_ */
|