mbed Connector Interface simplification API on top of mbed-client

Fork of mbedConnectorInterfaceV3 by Doug Anson

NOTE:

This repo has been replaced with https://github.com/ARMmbed/mbedConnectorInterface. No further updates will occur with this repo. Please use the github repo instead. Thanks!

Committer:
ansond
Date:
Tue Jun 14 20:18:30 2016 +0000
Revision:
38:bb6d2be4d54c
Parent:
34:a10d65907549
Child:
49:c603a22495bb
cleaned up compile warnings

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ansond 0:1f1f55e73248 1 /**
ansond 0:1f1f55e73248 2 * @file OptionsBuilder.cpp
ansond 0:1f1f55e73248 3 * @brief mbed CoAP OptionsBuilder class implementation
ansond 0:1f1f55e73248 4 * @author Doug Anson/Chris Paola
ansond 0:1f1f55e73248 5 * @version 1.0
ansond 0:1f1f55e73248 6 * @see
ansond 0:1f1f55e73248 7 *
ansond 0:1f1f55e73248 8 * Copyright (c) 2014
ansond 0:1f1f55e73248 9 *
ansond 0:1f1f55e73248 10 * Licensed under the Apache License, Version 2.0 (the "License");
ansond 0:1f1f55e73248 11 * you may not use this file except in compliance with the License.
ansond 0:1f1f55e73248 12 * You may obtain a copy of the License at
ansond 0:1f1f55e73248 13 *
ansond 0:1f1f55e73248 14 * http://www.apache.org/licenses/LICENSE-2.0
ansond 0:1f1f55e73248 15 *
ansond 0:1f1f55e73248 16 * Unless required by applicable law or agreed to in writing, software
ansond 0:1f1f55e73248 17 * distributed under the License is distributed on an "AS IS" BASIS,
ansond 0:1f1f55e73248 18 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
ansond 0:1f1f55e73248 19 * See the License for the specific language governing permissions and
ansond 0:1f1f55e73248 20 * limitations under the License.
ansond 0:1f1f55e73248 21 */
ansond 0:1f1f55e73248 22
ansond 33:1d0b855df5a5 23 // Class support
ansond 0:1f1f55e73248 24 #include "mbed-connector-interface/OptionsBuilder.h"
ansond 0:1f1f55e73248 25
ansond 0:1f1f55e73248 26 // external included configuration file for the endpoint...
ansond 0:1f1f55e73248 27 #include "mbed-connector-interface/configuration.h"
ansond 0:1f1f55e73248 28
ansond 33:1d0b855df5a5 29 // ResourceObserver support (enabled in configuration.h)
ansond 0:1f1f55e73248 30 #include "mbed-connector-interface/ThreadedResourceObserver.h"
ansond 0:1f1f55e73248 31 #include "mbed-connector-interface/TickerResourceObserver.h"
ansond 27:b8aaf7dc7023 32 #include "mbed-connector-interface/MinarResourceObserver.h"
ansond 0:1f1f55e73248 33
ansond 0:1f1f55e73248 34 // DEBUG
ansond 0:1f1f55e73248 35 #ifndef NDEBUG
ansond 0:1f1f55e73248 36 #define DEBUG_OUT(...) { printf(__VA_ARGS__); }
ansond 0:1f1f55e73248 37 #else
ansond 0:1f1f55e73248 38 #define DEBUG_OUT(...) /* nothing */
ansond 0:1f1f55e73248 39 #endif
ansond 0:1f1f55e73248 40
ansond 0:1f1f55e73248 41 // Connector namespace
ansond 0:1f1f55e73248 42 namespace Connector {
ansond 0:1f1f55e73248 43
ansond 0:1f1f55e73248 44 // Constructor
ansond 0:1f1f55e73248 45 OptionsBuilder::OptionsBuilder()
ansond 0:1f1f55e73248 46 {
ansond 27:b8aaf7dc7023 47 this->m_domain = NSP_DOMAIN;
ansond 27:b8aaf7dc7023 48 this->m_endpoint_type = NSP_ENDPOINT_TYPE;
ansond 27:b8aaf7dc7023 49 this->m_node_name = NODE_NAME;
ansond 27:b8aaf7dc7023 50 this->m_reg_update_period = REG_UPDATE_PERIOD_MS;
ansond 27:b8aaf7dc7023 51 this->m_lifetime = REG_LIFETIME_SEC;
ansond 27:b8aaf7dc7023 52 this->m_connector_url = string(CONNECTOR_URL);
ansond 27:b8aaf7dc7023 53 this->m_device_resources_object = NULL;
ansond 27:b8aaf7dc7023 54 this->m_firmware_resources_object = NULL;
ansond 0:1f1f55e73248 55 this->m_static_resources.clear();
ansond 0:1f1f55e73248 56 this->m_dynamic_resources.clear();
ansond 0:1f1f55e73248 57 this->m_resource_observers.clear();
ansond 0:1f1f55e73248 58 }
ansond 0:1f1f55e73248 59
ansond 0:1f1f55e73248 60 // Copy Constructor
ansond 0:1f1f55e73248 61 OptionsBuilder::OptionsBuilder(const OptionsBuilder &ob) : Options(ob)
ansond 0:1f1f55e73248 62 {
ansond 8:f950fb1b78c0 63 this->m_domain = ob.m_domain;
ansond 0:1f1f55e73248 64 this->m_endpoint_type = ob.m_endpoint_type;
ansond 8:f950fb1b78c0 65 this->m_node_name = ob.m_node_name;
ansond 8:f950fb1b78c0 66 this->m_reg_update_period = ob.m_reg_update_period;
ansond 8:f950fb1b78c0 67 this->m_lifetime = ob.m_lifetime;
ansond 8:f950fb1b78c0 68 this->m_connector_url = ob.m_connector_url;
ansond 27:b8aaf7dc7023 69 this->m_device_resources_object = ob.m_device_resources_object;
ansond 27:b8aaf7dc7023 70 this->m_firmware_resources_object = ob.m_firmware_resources_object;
ansond 0:1f1f55e73248 71 this->m_static_resources = ob.m_static_resources;
ansond 0:1f1f55e73248 72 this->m_dynamic_resources = ob.m_dynamic_resources;
ansond 0:1f1f55e73248 73 this->m_resource_observers = ob.m_resource_observers;
ansond 0:1f1f55e73248 74 }
ansond 0:1f1f55e73248 75
ansond 0:1f1f55e73248 76 // Destructor
ansond 0:1f1f55e73248 77 OptionsBuilder::~OptionsBuilder()
ansond 0:1f1f55e73248 78 {
ansond 38:bb6d2be4d54c 79 this->m_device_resources_object = NULL;
ansond 38:bb6d2be4d54c 80 this->m_firmware_resources_object = NULL;
ansond 0:1f1f55e73248 81 this->m_static_resources.clear();
ansond 0:1f1f55e73248 82 this->m_dynamic_resources.clear();
ansond 0:1f1f55e73248 83 this->m_resource_observers.clear();
ansond 0:1f1f55e73248 84 }
ansond 0:1f1f55e73248 85
ansond 0:1f1f55e73248 86 // set lifetime
ansond 0:1f1f55e73248 87 OptionsBuilder &OptionsBuilder::setLifetime(int lifetime)
ansond 0:1f1f55e73248 88 {
ansond 0:1f1f55e73248 89 this->m_lifetime = lifetime;
ansond 0:1f1f55e73248 90 return *this;
ansond 0:1f1f55e73248 91 }
ansond 0:1f1f55e73248 92
ansond 0:1f1f55e73248 93 // set domain
ansond 0:1f1f55e73248 94 OptionsBuilder &OptionsBuilder::setDomain(const char *domain)
ansond 0:1f1f55e73248 95 {
ansond 0:1f1f55e73248 96 this->m_domain = string(domain);
ansond 0:1f1f55e73248 97 return *this;
ansond 0:1f1f55e73248 98 }
ansond 0:1f1f55e73248 99
ansond 0:1f1f55e73248 100 // set endpoint nodename
ansond 0:1f1f55e73248 101 OptionsBuilder &OptionsBuilder::setEndpointNodename(const char *node_name)
ansond 0:1f1f55e73248 102 {
ansond 0:1f1f55e73248 103 this->m_node_name = string(node_name);
ansond 0:1f1f55e73248 104 return *this;
ansond 0:1f1f55e73248 105 }
ansond 0:1f1f55e73248 106
ansond 0:1f1f55e73248 107 // set lifetime
ansond 0:1f1f55e73248 108 OptionsBuilder &OptionsBuilder::setEndpointType(const char *endpoint_type)
ansond 0:1f1f55e73248 109 {
ansond 0:1f1f55e73248 110 this->m_endpoint_type = string(endpoint_type);
ansond 0:1f1f55e73248 111 return *this;
ansond 0:1f1f55e73248 112 }
ansond 0:1f1f55e73248 113
ansond 0:1f1f55e73248 114 // set mbed registration update period
ansond 0:1f1f55e73248 115 OptionsBuilder &OptionsBuilder::setRegUpdatePeriod(const int reg_update_period)
ansond 0:1f1f55e73248 116 {
ansond 0:1f1f55e73248 117 this->m_reg_update_period = reg_update_period;
ansond 0:1f1f55e73248 118 return *this;
ansond 0:1f1f55e73248 119 }
ansond 0:1f1f55e73248 120
ansond 0:1f1f55e73248 121 // set Connector URL
ansond 0:1f1f55e73248 122 OptionsBuilder &OptionsBuilder::setConnectorURL(const char *connector_url)
ansond 0:1f1f55e73248 123 {
ansond 0:1f1f55e73248 124 if (connector_url != NULL) {
ansond 0:1f1f55e73248 125 this->m_connector_url = string(connector_url);
ansond 0:1f1f55e73248 126 }
ansond 0:1f1f55e73248 127 return *this;
ansond 0:1f1f55e73248 128 }
ansond 0:1f1f55e73248 129
ansond 27:b8aaf7dc7023 130 // add the device resources object
ansond 27:b8aaf7dc7023 131 OptionsBuilder &OptionsBuilder::setDeviceResourcesObject(const void *device_resources_object)
ansond 27:b8aaf7dc7023 132 {
ansond 27:b8aaf7dc7023 133 if (device_resources_object != NULL) {
ansond 27:b8aaf7dc7023 134 this->m_device_resources_object = (void *)device_resources_object;
ansond 27:b8aaf7dc7023 135 }
ansond 27:b8aaf7dc7023 136 return *this;
ansond 27:b8aaf7dc7023 137 }
ansond 27:b8aaf7dc7023 138
ansond 27:b8aaf7dc7023 139 // add the firmware resources object
ansond 27:b8aaf7dc7023 140 OptionsBuilder &OptionsBuilder::setFirmwareResourcesObject(const void *firmware_resources_object)
ansond 27:b8aaf7dc7023 141 {
ansond 27:b8aaf7dc7023 142 if (firmware_resources_object != NULL) {
ansond 27:b8aaf7dc7023 143 this->m_firmware_resources_object = (void *)firmware_resources_object;
ansond 0:1f1f55e73248 144 }
ansond 0:1f1f55e73248 145 return *this;
ansond 0:1f1f55e73248 146 }
ansond 0:1f1f55e73248 147
ansond 0:1f1f55e73248 148 // add static resource
ansond 0:1f1f55e73248 149 OptionsBuilder &OptionsBuilder::addResource(const StaticResource *resource)
ansond 0:1f1f55e73248 150 {
ansond 0:1f1f55e73248 151 if (resource != NULL) {
ansond 0:1f1f55e73248 152 ((StaticResource *)resource)->setOptions(this);
ansond 0:1f1f55e73248 153 this->m_static_resources.push_back((StaticResource *)resource);
ansond 0:1f1f55e73248 154 }
ansond 0:1f1f55e73248 155 return *this;
ansond 0:1f1f55e73248 156 }
ansond 0:1f1f55e73248 157
ansond 0:1f1f55e73248 158 // add dynamic resource
ansond 0:1f1f55e73248 159 OptionsBuilder &OptionsBuilder::addResource(const DynamicResource *resource)
ansond 0:1f1f55e73248 160 {
ansond 0:1f1f55e73248 161 // ensure that the boolean isn't mistaken by the compiler for the obs period...
ansond 0:1f1f55e73248 162 return this->addResource(resource,OBS_PERIOD_MS,!(((DynamicResource *)resource)->implementsObservation()));
ansond 0:1f1f55e73248 163 }
ansond 0:1f1f55e73248 164
ansond 0:1f1f55e73248 165 // add dynamic resource
ansond 0:1f1f55e73248 166 OptionsBuilder &OptionsBuilder::addResource(const DynamicResource *resource,const int sleep_time)
ansond 0:1f1f55e73248 167 {
ansond 0:1f1f55e73248 168 // ensure that the boolean isn't mistaken by the compiler for the obs period...
ansond 0:1f1f55e73248 169 return this->addResource(resource,sleep_time,!(((DynamicResource *)resource)->implementsObservation()));
ansond 0:1f1f55e73248 170 }
ansond 0:1f1f55e73248 171
ansond 0:1f1f55e73248 172 // add dynamic resource
ansond 0:1f1f55e73248 173 OptionsBuilder &OptionsBuilder::addResource(const DynamicResource *resource,const bool use_observer)
ansond 0:1f1f55e73248 174 {
ansond 0:1f1f55e73248 175 // ensure that the boolean isn't mistaken by the compiler for the obs period...
ansond 0:1f1f55e73248 176 return this->addResource(resource,OBS_PERIOD_MS,use_observer);
ansond 0:1f1f55e73248 177 }
ansond 0:1f1f55e73248 178
ansond 0:1f1f55e73248 179 // add dynamic resource
ansond 0:1f1f55e73248 180 OptionsBuilder &OptionsBuilder::addResource(const DynamicResource *resource,const int sleep_time,const bool use_observer)
ansond 0:1f1f55e73248 181 {
ansond 0:1f1f55e73248 182 if (resource != NULL) {
ansond 0:1f1f55e73248 183 this->m_dynamic_resources.push_back((DynamicResource *)resource);
ansond 0:1f1f55e73248 184 ((DynamicResource *)resource)->setOptions(this);
ansond 17:defb680f8fce 185 ((DynamicResource *)resource)->setEndpoint((const void *)this->getEndpoint());
ansond 0:1f1f55e73248 186 if (((DynamicResource *)resource)->isObservable() == true && use_observer == true) {
ansond 34:a10d65907549 187 // Establish the appropriate ResourceObserver
ansond 27:b8aaf7dc7023 188 #if defined (MCI_MINAR_SCHEDULER)
ansond 34:a10d65907549 189 // Minar-based Scheduler ResourceObserver
ansond 27:b8aaf7dc7023 190 MinarResourceObserver *observer = new MinarResourceObserver((DynamicResource *)resource,(int)sleep_time);
ansond 27:b8aaf7dc7023 191 #else
ansond 27:b8aaf7dc7023 192 #ifdef CONNECTOR_USING_THREADS
ansond 34:a10d65907549 193 // mbedOS RTOS Thread ResourceObserver
ansond 0:1f1f55e73248 194 ThreadedResourceObserver *observer = new ThreadedResourceObserver((DynamicResource *)resource,(int)sleep_time);
ansond 34:a10d65907549 195 #endif
ansond 34:a10d65907549 196 #ifdef CONNECTOR_USING_TICKER
ansond 34:a10d65907549 197 // mbed Ticker ResourceObserver
ansond 0:1f1f55e73248 198 TickerResourceObserver *observer = new TickerResourceObserver((DynamicResource *)resource,(int)sleep_time);
ansond 27:b8aaf7dc7023 199 #endif
ansond 0:1f1f55e73248 200 #endif
ansond 34:a10d65907549 201 // If no observer type is set in mbed-connector-interface/configuration.h (EndpointNetwork lib), then "observer" will be unresolved
ansond 0:1f1f55e73248 202 this->m_resource_observers.push_back(observer);
ansond 0:1f1f55e73248 203
ansond 0:1f1f55e73248 204 // immedate observation enablement option
ansond 0:1f1f55e73248 205 if (this->immedateObservationEnabled()) {
ansond 0:1f1f55e73248 206 observer->beginObservation();
ansond 0:1f1f55e73248 207 }
ansond 0:1f1f55e73248 208 }
ansond 0:1f1f55e73248 209 }
ansond 0:1f1f55e73248 210 return *this;
ansond 0:1f1f55e73248 211 }
ansond 0:1f1f55e73248 212
ansond 0:1f1f55e73248 213 // set WiFi SSID
ansond 0:1f1f55e73248 214 OptionsBuilder &OptionsBuilder::setWiFiSSID(char *ssid)
ansond 0:1f1f55e73248 215 {
ansond 0:1f1f55e73248 216 this->m_wifi_ssid = string(ssid);
ansond 0:1f1f55e73248 217 return *this;
ansond 0:1f1f55e73248 218 }
ansond 0:1f1f55e73248 219
ansond 0:1f1f55e73248 220 // set WiFi AuthType
ansond 0:1f1f55e73248 221 OptionsBuilder &OptionsBuilder::setWiFiAuthType(WiFiAuthTypes auth_type)
ansond 0:1f1f55e73248 222 {
ansond 0:1f1f55e73248 223 this->m_wifi_auth_type = auth_type;
ansond 0:1f1f55e73248 224 return *this;
ansond 0:1f1f55e73248 225 }
ansond 0:1f1f55e73248 226
ansond 0:1f1f55e73248 227 // set WiFi AuthKey
ansond 0:1f1f55e73248 228 OptionsBuilder &OptionsBuilder::setWiFiAuthKey(char *auth_key)
ansond 0:1f1f55e73248 229 {
ansond 0:1f1f55e73248 230 this->m_wifi_auth_key = string(auth_key);
ansond 0:1f1f55e73248 231 return *this;
ansond 0:1f1f55e73248 232 }
ansond 0:1f1f55e73248 233
ansond 8:f950fb1b78c0 234 // set 802.15.4 Pre Shared Key
ansond 8:f950fb1b78c0 235 OptionsBuilder &OptionsBuilder::setPreSharedKey(unsigned char psk[16])
ansond 0:1f1f55e73248 236 {
ansond 8:f950fb1b78c0 237 memset(this->m_psk,0,16);
ansond 8:f950fb1b78c0 238 for(int i=0;i<16;++i) {
ansond 8:f950fb1b78c0 239 this->m_psk[i] = psk[i];
ansond 8:f950fb1b78c0 240 }
ansond 0:1f1f55e73248 241 return *this;
ansond 0:1f1f55e73248 242 }
ansond 0:1f1f55e73248 243
ansond 8:f950fb1b78c0 244 // set 802.15.4 Pre Shared Key Identity
ansond 8:f950fb1b78c0 245 OptionsBuilder &OptionsBuilder::setPreSharedKeyIdentity(unsigned char psk_identity[2])
ansond 0:1f1f55e73248 246 {
ansond 8:f950fb1b78c0 247 memset(this->m_psk_identity,0,2);
ansond 8:f950fb1b78c0 248 for(int i=0;i<2;++i) {
ansond 8:f950fb1b78c0 249 this->m_psk_identity[i] = psk_identity[i];
ansond 8:f950fb1b78c0 250 }
ansond 0:1f1f55e73248 251 return *this;
ansond 0:1f1f55e73248 252 }
ansond 0:1f1f55e73248 253
ansond 9:faa43faea4ca 254 // set 802.15.4 Mesh Type
ansond 9:faa43faea4ca 255 OptionsBuilder &OptionsBuilder::setMeshType(MeshTypes mesh_type)
ansond 9:faa43faea4ca 256 {
ansond 9:faa43faea4ca 257 this->m_mesh_type = mesh_type;
ansond 9:faa43faea4ca 258 return *this;
ansond 9:faa43faea4ca 259 }
ansond 9:faa43faea4ca 260
ansond 10:3f79b5e67c22 261 // set the CoAP Connection Type
ansond 10:3f79b5e67c22 262 OptionsBuilder &OptionsBuilder::setCoAPConnectionType(CoAPConnectionTypes coap_connection_type)
ansond 10:3f79b5e67c22 263 {
ansond 10:3f79b5e67c22 264 this->m_coap_connection_type = coap_connection_type;
ansond 10:3f79b5e67c22 265 return *this;
ansond 10:3f79b5e67c22 266 }
ansond 10:3f79b5e67c22 267
ansond 10:3f79b5e67c22 268 // set the IP Address Type
ansond 10:3f79b5e67c22 269 OptionsBuilder &OptionsBuilder::setIPAddressType(IPAddressTypes ip_address_type)
ansond 10:3f79b5e67c22 270 {
ansond 10:3f79b5e67c22 271 this->m_ip_address_type = ip_address_type;
ansond 10:3f79b5e67c22 272 return *this;
ansond 10:3f79b5e67c22 273 }
ansond 10:3f79b5e67c22 274
ansond 0:1f1f55e73248 275 // build out our immutable self
ansond 0:1f1f55e73248 276 Options *OptionsBuilder::build()
ansond 0:1f1f55e73248 277 {
ansond 0:1f1f55e73248 278 return (Options *)this;
ansond 0:1f1f55e73248 279 }
ansond 0:1f1f55e73248 280
ansond 0:1f1f55e73248 281 // Enable/Disable immediate observationing
ansond 0:1f1f55e73248 282 OptionsBuilder &OptionsBuilder::setImmedateObservationEnabled(bool enable) {
ansond 0:1f1f55e73248 283 this->m_enable_immediate_observation = enable;
ansond 0:1f1f55e73248 284 return *this;
ansond 0:1f1f55e73248 285 }
ansond 0:1f1f55e73248 286
ansond 0:1f1f55e73248 287 // Enable/Disable GET-based control of observations
ansond 0:1f1f55e73248 288 OptionsBuilder &OptionsBuilder::setEnableGETObservationControl(bool enable) {
ansond 0:1f1f55e73248 289 this->m_enable_get_obs_control = enable;
ansond 0:1f1f55e73248 290 return *this;
ansond 0:1f1f55e73248 291 }
ansond 0:1f1f55e73248 292
ansond 0:1f1f55e73248 293 // set the server certificate
ansond 0:1f1f55e73248 294 OptionsBuilder &OptionsBuilder::setServerCertificate(uint8_t cert[],int cert_size) {
ansond 0:1f1f55e73248 295 memset(this->m_server_cert,0,MAX_SERVER_CERT_LENGTH);
ansond 0:1f1f55e73248 296 int length = cert_size;
ansond 0:1f1f55e73248 297 if (length > MAX_SERVER_CERT_LENGTH) {
ansond 0:1f1f55e73248 298 length = MAX_SERVER_CERT_LENGTH;
ansond 0:1f1f55e73248 299 DEBUG_OUT("WARNING: Truncated Server Certificate: orig: %d bytes (trunc: %d bytes)\r\n",cert_size,length);
ansond 0:1f1f55e73248 300 }
ansond 0:1f1f55e73248 301 memcpy(this->m_server_cert,cert,length);
ansond 0:1f1f55e73248 302 this->m_server_cert_length = length;
ansond 0:1f1f55e73248 303 return *this;
ansond 0:1f1f55e73248 304 }
ansond 0:1f1f55e73248 305
ansond 0:1f1f55e73248 306 // set the client certificate
ansond 0:1f1f55e73248 307 OptionsBuilder &OptionsBuilder::setClientCertificate(uint8_t cert[],int cert_size) {
ansond 0:1f1f55e73248 308 memset(this->m_client_cert,0,MAX_CLIENT_CERT_LENGTH);
ansond 0:1f1f55e73248 309 int length = cert_size;
ansond 0:1f1f55e73248 310 if (length > MAX_CLIENT_CERT_LENGTH) {
ansond 0:1f1f55e73248 311 length = MAX_CLIENT_CERT_LENGTH;
ansond 0:1f1f55e73248 312 DEBUG_OUT("WARNING: Truncated Client Certificate: orig: %d bytes (trunc: %d bytes)\r\n",cert_size,length);
ansond 0:1f1f55e73248 313 }
ansond 0:1f1f55e73248 314 memcpy(this->m_client_cert,cert,length);
ansond 0:1f1f55e73248 315 this->m_client_cert_length = length;
ansond 0:1f1f55e73248 316 return *this;
ansond 0:1f1f55e73248 317 }
ansond 0:1f1f55e73248 318
ansond 0:1f1f55e73248 319 // set the client key
ansond 0:1f1f55e73248 320 OptionsBuilder &OptionsBuilder::setClientKey(uint8_t key[],int key_size) {
ansond 0:1f1f55e73248 321 memset(this->m_client_key,0,MAX_CLIENT_KEY_LENGTH);
ansond 0:1f1f55e73248 322 int length = key_size;
ansond 0:1f1f55e73248 323 if (length > MAX_CLIENT_KEY_LENGTH) {
ansond 0:1f1f55e73248 324 length = MAX_CLIENT_KEY_LENGTH;
ansond 0:1f1f55e73248 325 DEBUG_OUT("WARNING: Truncated Client Key: orig: %d bytes (trunc: %d bytes)\r\n",key_size,length);
ansond 0:1f1f55e73248 326 }
ansond 0:1f1f55e73248 327 memcpy(this->m_client_key,key,length);
ansond 0:1f1f55e73248 328 this->m_client_key_length = length;
ansond 0:1f1f55e73248 329 return *this;
ansond 0:1f1f55e73248 330 }
ansond 0:1f1f55e73248 331
ansond 22:68fcdc40b397 332 // set our endpoint
ansond 22:68fcdc40b397 333 void OptionsBuilder::setEndpoint(void *endpoint) {
ansond 22:68fcdc40b397 334 this->m_endpoint = endpoint;
ansond 22:68fcdc40b397 335 }
ansond 22:68fcdc40b397 336
ansond 0:1f1f55e73248 337 } // namespace Connector