#include "connection.h" Connection::Connection(in_addr addr, std::string name, UINT64 id, UINT64 self_id, UINT64 team_id): m_addr(addr), m_id(id), m_sid(self_id), m_tid(team_id), m_name(name) { } Connection::~Connection() { } in_addr Connection::GetAddr() const { return m_addr; } UINT64 Connection::GetHash(bool self) const { return self? m_sid: m_id; } UINT64 Connection::GetTeamHash() const { return m_tid; } std::string Connection::GetName() const { return m_name; } void Connection::AddInput(Input in) { m_input_manifest.insert({in.timestamp, in}); } Output* Connection::getOutput(Timestamp time) { auto out = m_output_manifest.find(time); if (out != m_output_manifest.end()) return &out->second; return nullptr; } Sync Connection::getSync(Timestamp time) { Sync sync; auto out = m_output_manifest.find(time); if (out != m_output_manifest.end()) { sync.timestamp = out->second.timestamp; sync.position = out->second.position; sync.sid = m_sid; } return sync; } void Connection::CleanInputManifest(Timestamp time) { auto wat = m_input_manifest.find(time); while (wat != m_input_manifest.begin()) m_input_manifest.erase(wat--); }