mbed client lightswitch demo
Dependencies: mbed Socket lwip-eth lwip-sys lwip
Fork of mbed-client-classic-example-lwip by
mbed-client/mbed-client/m2mconnectionobserver.h
- Committer:
- mbedAustin
- Date:
- 2016-06-09
- Revision:
- 11:cada08fc8a70
File content as of revision 11:cada08fc8a70:
/*
* Copyright (c) 2015 ARM Limited. All rights reserved.
* SPDX-License-Identifier: Apache-2.0
* 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 M2M_CONNECTION_OBSERVER_H__
#define M2M_CONNECTION_OBSERVER_H__
#include "mbed-client/m2minterface.h"
/**
* @brief M2MConnectionObserver
* Observer class for informing socket activity to the state machine.
*/
class M2MConnectionObserver
{
public :
/**
* @enum ServerType, Defines the type of the
* server that the client wants to use.
*/
typedef enum {
Bootstrap,
LWM2MServer
}ServerType;
/**
* @brief The M2MSocketAddress struct.
* Unified container for holding socket address data
* across different platforms.
*/
struct SocketAddress{
M2MInterface::NetworkStack _stack;
void *_address;
uint8_t _length;
uint16_t _port;
};
/**
* @brief Indicates that data is available from socket.
* @param data, The data read from the socket.
* @param data_size, The length of the data read from the socket.
* @param address, Address of the server where the data is coming from.
*/
virtual void data_available(uint8_t* data,
uint16_t data_size,
const M2MConnectionObserver::SocketAddress &address) = 0;
/**
* @brief Indicates an error occured in socket.
* @param error_code, Error code from socket,
* it cannot be used any further.
*/
virtual void socket_error(uint8_t error_code) = 0;
/**
* @brief Indicates that the server address resolving is ready.
* @param address, Resolved socket address.
* @param server_type, Type of server.
* @param server_port, Port of the resolved server address.
*/
virtual void address_ready(const M2MConnectionObserver::SocketAddress &address,
M2MConnectionObserver::ServerType server_type,
const uint16_t server_port) = 0;
/**
* @brief Indicates that data has been sent successfully.
*/
virtual void data_sent() = 0;
};
#endif // M2M_CONNECTION_OBSERVER_H__
Austin Blackstone
