danicoin/src/Platform/OSX/System/TcpConnection.h
2016-01-18 15:33:29 +00:00

41 lines
988 B
C++

// Copyright (c) 2011-2016 The Cryptonote developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#pragma once
#include <cstddef>
#include <cstdint>
#include <utility>
namespace System {
class Dispatcher;
class Ipv4Address;
class TcpConnection {
public:
TcpConnection();
TcpConnection(const TcpConnection&) = delete;
TcpConnection(TcpConnection&& other);
~TcpConnection();
TcpConnection& operator=(const TcpConnection&) = delete;
TcpConnection& operator=(TcpConnection&& other);
std::size_t read(uint8_t* data, std::size_t size);
std::size_t write(const uint8_t* data, std::size_t size);
std::pair<Ipv4Address, uint16_t> getPeerAddressAndPort() const;
private:
friend class TcpConnector;
friend class TcpListener;
Dispatcher* dispatcher;
int connection;
void* readContext;
void* writeContext;
TcpConnection(Dispatcher& dispatcher, int socket);
};
}