NetworkSocketAPI

Dependencies:   DnsQuery

Dependents:   HelloWizFi250Interface

Fork of NetworkSocketAPI by NetworkSocketAPI

Committer:
Christopher Haster
Date:
Thu Feb 18 13:19:47 2016 -0600
Branch:
api-changes
Revision:
28:163fbe3263f4
Parent:
27:d7ed39727306
Child:
32:2c5fc105fc50
Removed memory allocations for internal buffers

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Christopher Haster 21:35ed15069189 1 /* TCPSocket
Christopher Haster 21:35ed15069189 2 * Copyright (c) 2015 ARM Limited
Christopher Haster 21:35ed15069189 3 *
Christopher Haster 21:35ed15069189 4 * Licensed under the Apache License, Version 2.0 (the "License");
Christopher Haster 21:35ed15069189 5 * you may not use this file except in compliance with the License.
Christopher Haster 21:35ed15069189 6 * You may obtain a copy of the License at
Christopher Haster 21:35ed15069189 7 *
Christopher Haster 21:35ed15069189 8 * http://www.apache.org/licenses/LICENSE-2.0
Christopher Haster 21:35ed15069189 9 *
Christopher Haster 21:35ed15069189 10 * Unless required by applicable law or agreed to in writing, software
Christopher Haster 21:35ed15069189 11 * distributed under the License is distributed on an "AS IS" BASIS,
Christopher Haster 21:35ed15069189 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Christopher Haster 21:35ed15069189 13 * See the License for the specific language governing permissions and
Christopher Haster 21:35ed15069189 14 * limitations under the License.
Christopher Haster 21:35ed15069189 15 */
Christopher Haster 21:35ed15069189 16
Christopher Haster 21:35ed15069189 17 #ifndef TCP_SOCKET_H
Christopher Haster 21:35ed15069189 18 #define TCP_SOCKET_H
Christopher Haster 21:35ed15069189 19
Christopher Haster 25:ed7b2a52e8ac 20 #include "Socket.h"
Christopher Haster 21:35ed15069189 21
Christopher Haster 21:35ed15069189 22 /** TCPSocket class
Christopher Haster 21:35ed15069189 23 * API for handling TCP sockets. The implementation is determined
Christopher Haster 21:35ed15069189 24 * by the interface passed during construction.
Christopher Haster 21:35ed15069189 25 */
Christopher Haster 25:ed7b2a52e8ac 26 class TCPSocket : public Socket
Christopher Haster 21:35ed15069189 27 {
Christopher Haster 21:35ed15069189 28 public:
Christopher Haster 21:35ed15069189 29 /** Create a socket using the specified network interface
Christopher Haster 27:d7ed39727306 30 * No network operations are performed until the socket is actually used
Christopher Haster 21:35ed15069189 31 * @param iface The network interface to use
Christopher Haster 27:d7ed39727306 32 * @param url Optional URL to connect to, copied internally
Christopher Haster 21:35ed15069189 33 * @param port Optional port to connect to
Christopher Haster 21:35ed15069189 34 */
Christopher Haster 28:163fbe3263f4 35 TCPSocket(NetworkInterface *iface);
Christopher Haster 21:35ed15069189 36
Christopher Haster 21:35ed15069189 37
Christopher Haster 21:35ed15069189 38 /** Open a connection to the underlying address
Christopher Haster 21:35ed15069189 39 * @return 0 on success
Christopher Haster 21:35ed15069189 40 */
Christopher Haster 21:35ed15069189 41 int32_t open();
Christopher Haster 21:35ed15069189 42
Christopher Haster 21:35ed15069189 43 /** Close an open connection
Christopher Haster 21:35ed15069189 44 * @return 0 on success
Christopher Haster 21:35ed15069189 45 */
Christopher Haster 21:35ed15069189 46 int32_t close();
Christopher Haster 21:35ed15069189 47 };
Christopher Haster 21:35ed15069189 48
Christopher Haster 21:35ed15069189 49 #endif