Files
CppNet/net/Socket.cpp
2019-08-27 19:29:44 +08:00

86 lines
2.5 KiB
C++

#include "Socket.h"
#include "CppNetImpl.h"
int16_t cppnet::GetIpAddress(const Handle& handle, std::string& ip, uint16_t& port) {
auto socket = CCppNetImpl::Instance().GetSocket(handle);
if (socket) {
ip = socket->GetAddress();
port = socket->GetPort();
return cppnet::CEC_SUCCESS;
}
return cppnet::CEC_INVALID_HANDLE;
}
int16_t cppnet::SyncRead(const Handle& handle) {
auto socket = CCppNetImpl::Instance().GetSocket(handle);
if (socket) {
socket->SyncRead();
return cppnet::CEC_SUCCESS;
}
return cppnet::CEC_INVALID_HANDLE;
}
int16_t cppnet::SyncWrite(const Handle& handle, const char* src, int32_t len) {
auto socket = CCppNetImpl::Instance().GetSocket(handle);
if (socket) {
socket->SyncWrite(src, len);
return cppnet::CEC_SUCCESS;
}
return cppnet::CEC_INVALID_HANDLE;
}
int16_t cppnet::SyncRead(const Handle& handle, int32_t interval) {
auto socket = CCppNetImpl::Instance().GetSocket(handle);
if (socket) {
socket->SyncRead(interval);
return cppnet::CEC_SUCCESS;
}
return cppnet::CEC_INVALID_HANDLE;
}
int16_t cppnet::SyncWrite(const Handle& handle, int32_t interval, const char* src, int32_t len) {
auto socket = CCppNetImpl::Instance().GetSocket(handle);
if (socket) {
socket->SyncRead(interval);
return cppnet::CEC_SUCCESS;
}
return cppnet::CEC_INVALID_HANDLE;
}
int16_t cppnet::PostTask(std::function<void(void)>& func) {
return cppnet::CEC_INVALID_HANDLE;
}
#ifndef __linux__
// sync connection.
int16_t cppnet::SyncConnection(const std::string& ip, int16_t port, const char* buf, int32_t buf_len) {
if (CCppNetImpl::Instance().Connection(port, ip, buf, buf_len)) {
return cppnet::CEC_SUCCESS;
}
return cppnet::CEC_FAILED;
}
#endif
int16_t cppnet::SyncConnection(const std::string& ip, int16_t port) {
if (CCppNetImpl::Instance().Connection(port, ip)) {
return cppnet::CEC_SUCCESS;
}
return cppnet::CEC_FAILED;
}
int16_t cppnet::SyncDisconnection(const Handle& handle) {
auto socket = CCppNetImpl::Instance().GetSocket(handle);
if (socket) {
socket->SyncDisconnection();
return cppnet::CEC_SUCCESS;
}
return cppnet::CEC_INVALID_HANDLE;
}
int16_t cppnet::Close(const Handle& handle) {
if (CCppNetImpl::Instance().RemoveSocket(handle)) {
return cppnet::CEC_SUCCESS;
}
return cppnet::CEC_INVALID_HANDLE;
}