Doug Anson / mbedConnectorInterface

Dependents:   IoT_LED_demo ServoTest uWater_Project hackathon ... more

Committer:
sam_grove
Date:
Tue Jan 27 23:41:34 2015 +0000
Revision:
2:853f9ecc12df
Parent:
1:cabdd0350707
Child:
5:a929d65eb385
Use auto-format on code and add markup to render class documentation

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ansond 0:b438482ebbfc 1 /**
ansond 0:b438482ebbfc 2 * @file Endpoint.h
ansond 0:b438482ebbfc 3 * @brief mbed CoAP Endpoint base class
ansond 0:b438482ebbfc 4 * @author Doug Anson/Chris Paola
ansond 0:b438482ebbfc 5 * @version 1.0
sam_grove 2:853f9ecc12df 6 * @see
ansond 0:b438482ebbfc 7 *
ansond 0:b438482ebbfc 8 * Copyright (c) 2014
ansond 0:b438482ebbfc 9 *
ansond 0:b438482ebbfc 10 * Licensed under the Apache License, Version 2.0 (the "License");
ansond 0:b438482ebbfc 11 * you may not use this file except in compliance with the License.
ansond 0:b438482ebbfc 12 * You may obtain a copy of the License at
ansond 0:b438482ebbfc 13 *
ansond 0:b438482ebbfc 14 * http://www.apache.org/licenses/LICENSE-2.0
ansond 0:b438482ebbfc 15 *
ansond 0:b438482ebbfc 16 * Unless required by applicable law or agreed to in writing, software
ansond 0:b438482ebbfc 17 * distributed under the License is distributed on an "AS IS" BASIS,
ansond 0:b438482ebbfc 18 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
ansond 0:b438482ebbfc 19 * See the License for the specific language governing permissions and
ansond 0:b438482ebbfc 20 * limitations under the License.
ansond 0:b438482ebbfc 21 */
sam_grove 2:853f9ecc12df 22
sam_grove 2:853f9ecc12df 23 #ifndef __ENDPOINT_H__
sam_grove 2:853f9ecc12df 24 #define __ENDPOINT_H__
sam_grove 2:853f9ecc12df 25
sam_grove 2:853f9ecc12df 26 // Support for Logging/Debug output
sam_grove 2:853f9ecc12df 27 #include "Logger.h"
sam_grove 2:853f9ecc12df 28
sam_grove 2:853f9ecc12df 29 // Options support
sam_grove 2:853f9ecc12df 30 #include "Options.h"
sam_grove 2:853f9ecc12df 31
sam_grove 2:853f9ecc12df 32 // Connector namespace
sam_grove 2:853f9ecc12df 33 namespace Connector {
sam_grove 2:853f9ecc12df 34
sam_grove 2:853f9ecc12df 35 /** Endpoint class
sam_grove 2:853f9ecc12df 36 */
sam_grove 2:853f9ecc12df 37 class Endpoint
sam_grove 2:853f9ecc12df 38 {
sam_grove 2:853f9ecc12df 39
sam_grove 2:853f9ecc12df 40 public:
sam_grove 2:853f9ecc12df 41 /**
sam_grove 2:853f9ecc12df 42 Default Constructor
sam_grove 2:853f9ecc12df 43 */
sam_grove 2:853f9ecc12df 44 Endpoint(const Logger *logger,const Options *ob);
sam_grove 2:853f9ecc12df 45
sam_grove 2:853f9ecc12df 46 /**
sam_grove 2:853f9ecc12df 47 Copy Constructor
sam_grove 2:853f9ecc12df 48 @param ob input endpoint instance to deep copy
sam_grove 2:853f9ecc12df 49 */
sam_grove 2:853f9ecc12df 50 Endpoint(const Endpoint &ep);
sam_grove 2:853f9ecc12df 51
sam_grove 2:853f9ecc12df 52 /**
sam_grove 2:853f9ecc12df 53 Destructor
sam_grove 2:853f9ecc12df 54 */
sam_grove 2:853f9ecc12df 55 virtual ~Endpoint();
sam_grove 2:853f9ecc12df 56
sam_grove 2:853f9ecc12df 57 /**
sam_grove 2:853f9ecc12df 58 Plumb the underlying network
sam_grove 2:853f9ecc12df 59 @param canActAsRouterNode input boolean indicating whether this node can act as a router node or not.
sam_grove 2:853f9ecc12df 60 */
sam_grove 2:853f9ecc12df 61 static void plumbNetwork(bool canActAsRouterNode = false);
sam_grove 2:853f9ecc12df 62
sam_grove 2:853f9ecc12df 63 /**
sam_grove 2:853f9ecc12df 64 Initialize the endpoint
sam_grove 2:853f9ecc12df 65 */
sam_grove 2:853f9ecc12df 66 void initialize();
sam_grove 2:853f9ecc12df 67
sam_grove 2:853f9ecc12df 68 /**
sam_grove 2:853f9ecc12df 69 Finalize the endpoint's configuration and begin the endpoint's main even loop
sam_grove 2:853f9ecc12df 70 */
sam_grove 2:853f9ecc12df 71 static void start();
sam_grove 2:853f9ecc12df 72
sam_grove 2:853f9ecc12df 73 protected:
sam_grove 2:853f9ecc12df 74
sam_grove 2:853f9ecc12df 75 private:
sam_grove 2:853f9ecc12df 76 Logger *m_logger;
sam_grove 2:853f9ecc12df 77 Options *m_options;
sam_grove 2:853f9ecc12df 78
sam_grove 2:853f9ecc12df 79 // initialize the NSDL network
sam_grove 2:853f9ecc12df 80 void initNetwork();
sam_grove 2:853f9ecc12df 81
sam_grove 2:853f9ecc12df 82 // access the logger
sam_grove 2:853f9ecc12df 83 Logger *logger();
sam_grove 2:853f9ecc12df 84 };
sam_grove 2:853f9ecc12df 85
sam_grove 2:853f9ecc12df 86 } // namespace Connector
sam_grove 2:853f9ecc12df 87
sam_grove 2:853f9ecc12df 88 #endif // __ENDPOINT_H__