/* */ #include "Socket.h" Socket::Socket() { core = new SocketCore(); } Socket::Socket(const Socket& s) { core = s.core; core->use++; } Socket::Socket(SocketCore* core) { this->core = core; } Socket::~Socket() { core->use--; if(core->use == 0) { delete core; } } Socket& Socket::operator=(const Socket& s) { if(this != &s) { core->use--; if(core->use == 0) { delete core; } core = s.core; core->use++; } return *this; } void Socket::beginListen(int32_t port) const { core->beginListen(port); } void Socket::getAddrInfo(pair& addrinfo) const { core->getAddrInfo(addrinfo); } void Socket::getPeerInfo(pair& peerinfo) const { core->getPeerInfo(peerinfo); } Socket* Socket::acceptConnection() const { return new Socket(core->acceptConnection()); } void Socket::establishConnection(const string& host, int32_t port) const { core->establishConnection(host, port); } void Socket::setBlockingMode() const { core->setBlockingMode(); } void Socket::closeConnection() const { core->closeConnection(); } bool Socket::isWritable(int32_t timeout) const { return core->isWritable(timeout); } bool Socket::isReadable(int32_t timeout) const { return core->isReadable(timeout); } void Socket::writeData(const char* data, int32_t len) const { core->writeData(data, len); } void Socket::writeData(const string& str) const { core->writeData(str.c_str(), str.size()); } void Socket::readData(char* data, int32_t& len) const { core->readData(data, len); } void Socket::peekData(char* data, int32_t& len) const { core->peekData(data, len); } void Socket::initiateSecureConnection() const { core->initiateSecureConnection(); }