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

40 lines
958 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 <cstdint>
#include <string>
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);
size_t read(uint8_t* data, size_t size);
size_t write(const uint8_t* data, size_t size);
std::pair<Ipv4Address, uint16_t> getPeerAddressAndPort() const;
private:
friend class TcpConnector;
friend class TcpListener;
Dispatcher* dispatcher;
size_t connection;
void* readContext;
void* writeContext;
TcpConnection(Dispatcher& dispatcher, size_t connection);
};
}