2022-01-01 23:50:23 +01:00

55 lines
1.2 KiB
C++

/*
* IXConnectionState.cpp
* Author: Benjamin Sergeant
* Copyright (c) 2019 Machine Zone, Inc. All rights reserved.
*/
#include "IXConnectionState.h"
namespace ix
{
std::atomic<uint64_t> ConnectionState::_globalId(0);
ConnectionState::ConnectionState() : _terminated(false) { computeId(); }
void ConnectionState::computeId() { _id = std::to_string(_globalId++); }
const std::string &ConnectionState::getId() const { return _id; }
std::shared_ptr<ConnectionState> ConnectionState::createConnectionState()
{
return std::make_shared<ConnectionState>();
}
void ConnectionState::setOnSetTerminatedCallback(
const OnSetTerminatedCallback &callback)
{
_onSetTerminatedCallback = callback;
}
bool ConnectionState::isTerminated() const { return _terminated; }
void ConnectionState::setTerminated()
{
_terminated = true;
if (_onSetTerminatedCallback) {
_onSetTerminatedCallback();
}
}
const std::string &ConnectionState::getRemoteIp() { return _remoteIp; }
int ConnectionState::getRemotePort() { return _remotePort; }
void ConnectionState::setRemoteIp(const std::string &remoteIp)
{
_remoteIp = remoteIp;
}
void ConnectionState::setRemotePort(int remotePort)
{
_remotePort = remotePort;
}
} // namespace ix