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

api/OptionsBuilder.h

Committer:
ansond
Date:
2015-01-27
Revision:
0:b438482ebbfc
Child:
2:853f9ecc12df

File content as of revision 0:b438482ebbfc:

/**
 * @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__