Ram Gandikota / Mbed OS ABCD
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers pal_network_stub.cpp Source File

pal_network_stub.cpp

00001 /*
00002  * Copyright (c) 2016 ARM Limited. All rights reserved.
00003  * SPDX-License-Identifier: Apache-2.0
00004  * Licensed under the Apache License, Version 2.0 (the License); you may
00005  * not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  * http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an AS IS BASIS, WITHOUT
00012  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 
00017 #include <string.h>
00018 #include "pal_network_stub.h"
00019 
00020 palStatus_t pal_network_stub::status;
00021 palStatus_t pal_network_stub::new_status;
00022 uint32_t pal_network_stub::change_status_count;
00023 
00024 palSocket_t pal_network_stub::socket;
00025 palSocketAddress_t pal_network_stub::socket_address;
00026 palIpV4Addr_t pal_network_stub::ipv4_address;
00027 palIpV6Addr_t pal_network_stub::ipv6_address;
00028 size_t pal_network_stub::size;
00029 uint32_t pal_network_stub::uint32_value;
00030 void *pal_network_stub::void_value;
00031 
00032 static palStatus_t get_pal_status(void)
00033 {
00034     palStatus_t status_to_return;
00035 
00036     status_to_return = pal_network_stub::status;
00037 
00038     if(pal_network_stub::change_status_count){
00039 
00040         pal_network_stub::change_status_count--;
00041 
00042         if(!pal_network_stub::change_status_count){
00043             pal_network_stub::status = pal_network_stub::new_status;
00044         }
00045     }
00046 
00047     return status_to_return;
00048 
00049 }
00050 
00051 palStatus_t pal_registerNetworkInterface(void* networkInterfaceContext, uint32_t* interfaceIndex)
00052 {
00053     *interfaceIndex = pal_network_stub::uint32_value;
00054     return get_pal_status();
00055 }
00056 
00057 palStatus_t pal_setSockAddrPort(palSocketAddress_t* address, uint16_t port)
00058 {
00059     return get_pal_status();
00060 }
00061 
00062 palStatus_t pal_setSockAddrIPV4Addr(palSocketAddress_t* address, palIpV4Addr_t ipV4Addr)
00063 {
00064     return get_pal_status();
00065 }
00066 
00067 palStatus_t pal_setSockAddrIPV6Addr(palSocketAddress_t* address, palIpV6Addr_t ipV6Addr)
00068 {
00069     return get_pal_status();
00070 }
00071 
00072 palStatus_t pal_getSockAddrIPV4Addr(const palSocketAddress_t* address, palIpV4Addr_t ipV4Addr)
00073 {
00074     memcpy(ipV4Addr, pal_network_stub::ipv4_address, sizeof(pal_network_stub::ipv4_address));
00075     return get_pal_status();
00076 }
00077 
00078 palStatus_t pal_getSockAddrIPV6Addr(const palSocketAddress_t* address, palIpV6Addr_t ipV6Addr)
00079 {
00080     memcpy(ipV6Addr, pal_network_stub::ipv6_address, sizeof(pal_network_stub::ipv6_address));
00081     return get_pal_status();
00082 }
00083 
00084 palStatus_t pal_getSockAddrPort(const palSocketAddress_t* address, uint16_t* port)
00085 {
00086     return get_pal_status();
00087 }
00088 
00089 palStatus_t pal_socket(palSocketDomain_t domain, palSocketType_t type, bool nonBlockingSocket, uint32_t interfaceNum, palSocket_t* socket)
00090 {
00091     memcpy(socket, pal_network_stub::socket, sizeof(pal_network_stub::socket));
00092     return get_pal_status();
00093 }
00094 
00095 palStatus_t pal_getSocketOptions(palSocket_t socket, palSocketOptionName_t optionName, void* optionValue, palSocketLength_t* optionLength)
00096 {
00097     return get_pal_status();
00098 }
00099 
00100 palStatus_t pal_setSocketOptions(palSocket_t socket, int optionName, const void* optionValue, palSocketLength_t optionLength)
00101 {
00102     return get_pal_status();
00103 }
00104 
00105 palStatus_t pal_bind(palSocket_t socket, palSocketAddress_t* myAddress, palSocketLength_t addressLength)
00106 {
00107     return get_pal_status();
00108 }
00109 
00110 palStatus_t pal_receiveFrom(palSocket_t socket, void* buffer, size_t length, palSocketAddress_t* from, palSocketLength_t* fromLength, size_t* bytesReceived)
00111 {
00112     if(pal_network_stub::void_value){
00113         memcpy(buffer, pal_network_stub::void_value, pal_network_stub::size);
00114     }
00115     *bytesReceived = pal_network_stub::size;
00116     return get_pal_status();
00117 }
00118 
00119 palStatus_t pal_sendTo(palSocket_t socket, const void* buffer, size_t length, const palSocketAddress_t* to, palSocketLength_t toLength, size_t* bytesSent)
00120 {
00121     *bytesSent = pal_network_stub::size;
00122     return get_pal_status();
00123 }
00124 
00125 palStatus_t pal_close(palSocket_t* socket)
00126 {
00127     return get_pal_status();
00128 }
00129 
00130 palStatus_t pal_getNumberOfNetInterfaces(uint32_t* numInterfaces)
00131 {
00132     *numInterfaces = pal_network_stub::uint32_value;
00133     return get_pal_status();
00134 }
00135 
00136 palStatus_t pal_getNetInterfaceInfo(uint32_t interfaceNum, palNetInterfaceInfo_t * interfaceInfo)
00137 {
00138     return get_pal_status();
00139 }
00140 
00141 palStatus_t pal_socketMiniSelect(const palSocket_t socketsToCheck[PAL_NET_SOCKET_SELECT_MAX_SOCKETS], uint32_t numberOfSockets, pal_timeVal_t* timeout,
00142                                 uint8_t palSocketStatus[PAL_NET_SOCKET_SELECT_MAX_SOCKETS], uint32_t* numberOfSocketsSet)
00143 {
00144     return get_pal_status();
00145 }
00146 
00147 palStatus_t pal_listen(palSocket_t socket, int backlog)
00148 {
00149     return get_pal_status();
00150 }
00151 
00152 palStatus_t pal_accept(palSocket_t socket, palSocketAddress_t* address, palSocketLength_t* addressLen, palSocket_t* acceptedSocket)
00153 {
00154     return get_pal_status();
00155 }
00156 
00157 palStatus_t pal_connect(palSocket_t socket, const palSocketAddress_t* address, palSocketLength_t addressLen)
00158 {
00159     return get_pal_status();
00160 }
00161 
00162 palStatus_t pal_recv(palSocket_t socket, void* buf, size_t len, size_t* recievedDataSize)
00163 {
00164     if(pal_network_stub::void_value){
00165         memcpy(buf, pal_network_stub::void_value, pal_network_stub::size);
00166     }
00167     *recievedDataSize = pal_network_stub::size;
00168     return get_pal_status();
00169 }
00170 
00171 palStatus_t pal_send(palSocket_t socket, const void* buf, size_t len, size_t* sentDataSize)
00172 {
00173     *sentDataSize = pal_network_stub::size;
00174     return get_pal_status();
00175 }
00176 
00177 palStatus_t pal_asynchronousSocket(palSocketDomain_t domain, palSocketType_t type, bool nonBlockingSocket, uint32_t interfaceNum, palAsyncSocketCallback_t callback, palSocket_t* socket)
00178 {
00179     //memcpy(socket, pal_network_stub::socket, sizeof(pal_network_stub::socket));
00180     callback();
00181     return get_pal_status();
00182 }
00183 
00184 palStatus_t pal_getAddressInfo(const char* url, palSocketAddress_t* address, palSocketLength_t* addressLength)
00185 {
00186     memcpy(address, &pal_network_stub::socket_address, sizeof(pal_network_stub::socket_address));
00187     *addressLength = sizeof(pal_network_stub::socket_address);
00188     return get_pal_status();
00189 }