mbed Connector Endpoint interface. This interface permits a mbed endpoint to easily setup MDS resources and emit those resources to an MDS server.

Dependents:   IoT_LED_demo ServoTest uWater_Project hackathon ... more

Revision:
0:b438482ebbfc
Child:
2:853f9ecc12df
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/api/OptionsBuilder.h	Tue Jan 27 22:23:51 2015 +0000
@@ -0,0 +1,136 @@
+/**
+ * @file    OptionsBuilder.h
+ * @brief   mbed CoAP OptionsBuilder class header
+ * @author  Doug Anson/Chris Paola
+ * @version 1.0
+ * @see     
+ *
+ * Copyright (c) 2014
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+ #ifndef __OPTIONS_BUILDER_H__
+ #define __OPTIONS_BUILDER_H__
+ 
+ // base class support
+ #include "Options.h"
+ 
+ // Connector namespace
+ namespace Connector { 
+     class OptionsBuilder : Options {
+        public:
+            /**
+            Default Constructor
+            */
+            OptionsBuilder();
+            
+            /**
+            Copy Constructor
+            @param ob input options builder instance to deep copy
+            */
+            OptionsBuilder(const OptionsBuilder &ob);
+            
+            /**
+            Destructor
+            */
+            virtual ~OptionsBuilder();
+            
+            /**
+            Set the NSDL Endpoint Lifetime
+            @param lifetime input the NSDL endpoint lifetime (seconds)
+            @return instance to ourself
+            */
+            OptionsBuilder &setLifetime(const char *lifetime);
+            
+            /**
+            Set the NSDL Domain
+            @param domain input the NSDL domain to set
+            @return instance to ourself
+            */
+            OptionsBuilder &setDomain(const char *domain);
+            
+            /**
+            Set the Endpoint Node Name
+            @param node_name input the node endpoint name
+            @return instance to ourself
+            */
+            OptionsBuilder &setEndpointNodename(const char *node_name);
+            
+            /**
+            Set the NSDL Endpoint Type
+            @param endpoint_type input the NSDL endpoint type
+            @return instance to ourself
+            */
+            OptionsBuilder &setEndpointType(const char *endpoint_type);
+            
+            /**
+            Set the NSDL Port Number
+            @param port_num input the NSDL port number
+            @return instance to ourself
+            */
+            OptionsBuilder &setNSPPortNumber(const int port_num);
+            
+            /**
+            Set the underlying radio stack channel list
+            @param channel_list input the radio channel list
+            @return instance to ourself
+            */
+            OptionsBuilder &setRadioChannelList(const uint32_t channel_list);
+            
+            /**
+            Set the NSDL Read Update Period
+            @param rd_update_period_ms input the NSDL read update period (in ms)
+            @return instance to ourself
+            */
+            OptionsBuilder &setReadUpdatePeriod(const int rd_update_period_ms);
+            
+            /**
+            Set the NSP IPv6 Address
+            @param nsp_address input the NSP IPv6 address
+            @param nsp_address_length input the length of the NSP IPv6 address buffer
+            @return instance to ourself
+            */
+            OptionsBuilder &setNSPAddress(const uint8_t *nsp_address,const int nsp_address_length);
+            
+            /**
+            Set the MAC address
+            @param mac_address input the MAC address buffer
+            @param mac_address_length input the MAC address buffer length
+            @return instance to ourself
+            */
+            OptionsBuilder &setMACAddress(const uint8_t *mac_address,const int mac_address_length);
+                     
+            /**
+            Add a NSDL endpoint resource (static)
+            @param static_resource input the NSDL static resource
+            @return instance to ourself
+            */
+            OptionsBuilder &addResource(const StaticResource *static_resource);
+              
+            /**
+            Add a NSDL endpoint resource (dynamic)
+            @param dynamic_resource input the NSDL dynamic resource
+            @return instance to ourself
+            */
+            OptionsBuilder &addResource(const DynamicResource *static_resource);
+            
+            /**
+            Build our our immutable self
+            */
+            Options *build();
+            
+     };
+ }
+ 
+ #endif // __OPTIONS_BUILDER_H__
\ No newline at end of file