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

41 lines
988 B
C
Raw Normal View History

// 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.
2014-09-15 10:48:45 +00:00
#pragma once
#include <cstddef>
#include <cstdint>
2015-05-27 12:08:46 +00:00
#include <utility>
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);
std::size_t read(uint8_t* data, std::size_t size);
2015-05-27 12:08:46 +00:00
std::size_t write(const uint8_t* data, std::size_t size);
2015-07-30 15:22:07 +00:00
std::pair<Ipv4Address, uint16_t> getPeerAddressAndPort() const;
2014-09-15 10:48:45 +00:00
private:
friend class TcpConnector;
friend class TcpListener;
Dispatcher* dispatcher;
int connection;
void* readContext;
void* writeContext;
2015-05-27 12:08:46 +00:00
TcpConnection(Dispatcher& dispatcher, int socket);
2014-09-15 10:48:45 +00:00
};
}