danicoin/src/Platform/Windows/System/TcpConnection.h

40 lines
958 B
C
Raw Normal View History

// Copyright (c) 2011-2015 The Cryptonote developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
2014-09-15 10:48:45 +00:00
#pragma once
#include <cstdint>
2015-05-27 12:08:46 +00:00
#include <string>
2014-09-15 10:48:45 +00:00
namespace System {
class Dispatcher;
2015-05-27 12:08:46 +00:00
class Ipv4Address;
2014-09-15 10:48:45 +00:00
class TcpConnection {
public:
TcpConnection();
TcpConnection(const TcpConnection&) = delete;
TcpConnection(TcpConnection&& other);
~TcpConnection();
TcpConnection& operator=(const TcpConnection&) = delete;
TcpConnection& operator=(TcpConnection&& other);
2015-07-30 15:22:07 +00:00
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;
2014-09-15 10:48:45 +00:00
private:
friend class TcpConnector;
friend class TcpListener;
Dispatcher* dispatcher;
2015-07-30 15:22:07 +00:00
size_t connection;
2015-05-27 12:08:46 +00:00
void* readContext;
void* writeContext;
2015-07-30 15:22:07 +00:00
TcpConnection(Dispatcher& dispatcher, size_t connection);
2014-09-15 10:48:45 +00:00
};
}