Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of mbedConnectorInterface by
Diff: api/DynamicResource.cpp
- Revision:
- 50:1a9e2184945e
- Parent:
- 48:4b9ee3e32f93
- Child:
- 51:b308658817e5
--- a/api/DynamicResource.cpp Tue Apr 14 00:06:46 2015 +0000 +++ b/api/DynamicResource.cpp Tue Apr 14 02:51:23 2015 +0000 @@ -34,6 +34,7 @@ // GET verb can Start/Stop Observations... #define START_OBS 0 #define STOP_OBS 1 +#define DEFAULT_MAXAGE 60 // default constructor DynamicResource::DynamicResource(const Logger *logger,const char *name,const char *res_type,uint8_t res_mask,const bool observable) : Resource<string>(logger,string(name),string("")) @@ -46,6 +47,7 @@ this->m_obs_token_len = 0; this->m_data_wrapper = NULL; this->m_observer = NULL; + this->m_maxage = (uint16_t)DEFAULT_MAXAGE; } // constructor (input initial value) @@ -59,6 +61,7 @@ this->m_obs_token_len = 0; this->m_data_wrapper = NULL; this->m_observer = NULL; + this->m_maxage = DEFAULT_MAXAGE; } // constructor (strings) @@ -72,6 +75,7 @@ this->m_obs_token_len = 0; this->m_data_wrapper = NULL; this->m_observer = NULL; + this->m_maxage = DEFAULT_MAXAGE; } // copy constructor @@ -85,6 +89,7 @@ this->m_obs_token_len = resource.m_obs_token_len; this->m_data_wrapper = resource.m_data_wrapper; this->m_observer = resource.m_observer; + this->m_maxage = resource.m_maxage; } // destructor @@ -154,6 +159,18 @@ coap_res_ptr->payload_ptr = (uint8_t *)value.c_str(); } + // max-age cache control + coap_res_ptr->options_list_ptr = (sn_coap_options_list_s*)nsdl_alloc(sizeof(sn_coap_options_list_s)); + if(!coap_res_ptr->options_list_ptr){ + this->logger()->log("Cant alloc option list\r\n"); + coap_res_ptr->options_list_ptr = NULL; + } + else{ + memset(coap_res_ptr->options_list_ptr, 0, sizeof(sn_coap_options_list_s)); + coap_res_ptr->options_list_ptr->max_age_ptr = &this->m_maxage; + coap_res_ptr->options_list_ptr->max_age_len = sizeof(this->m_maxage); + } + // Observation handling... if(received_coap_ptr->token_ptr) { if(this->m_obs_token_ptr) { @@ -202,6 +219,8 @@ // build out the response and send... sn_nsdl_send_coap_message(address,coap_res_ptr); + nsdl_free(coap_res_ptr->options_list_ptr); + coap_res_ptr->options_list_ptr = NULL; // // nullify note: