diff --git a/cpeer.cpp b/cpeer.cpp deleted file mode 100644 index 54ab1ad..0000000 --- a/cpeer.cpp +++ /dev/null @@ -1,175 +0,0 @@ -// -// cpeer.cpp -// xlxd -// -// Created by Jean-Luc Deltombe (LX3JL) on 10/12/2016. -// Copyright © 2016 Jean-Luc Deltombe (LX3JL). All rights reserved. -// -// ---------------------------------------------------------------------------- -// This file is part of xlxd. -// -// xlxd is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// xlxd is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with Foobar. If not, see . -// ---------------------------------------------------------------------------- - -#include "main.h" -#include -#include "creflector.h" -#include "cpeer.h" - - -//////////////////////////////////////////////////////////////////////////////////////// -// constructor - - -CPeer::CPeer() -{ - ::memset(m_ReflectorModules, 0, sizeof(m_ReflectorModules)); - m_Clients.reserve(100); - m_ConnectTime = std::time(NULL); - m_LastHeardTime = std::time(NULL); -} - -CPeer::CPeer(const CCallsign &callsign, const CIp &ip, char *modules, const CVersion &version) -{ - m_Callsign = callsign; - m_Ip = ip; - ::memset(m_ReflectorModules, 0, sizeof(m_ReflectorModules)); - ::strncpy(m_ReflectorModules, modules, sizeof(m_ReflectorModules)-1); - m_Version = version; - m_LastKeepaliveTime.Now(); - m_ConnectTime = std::time(NULL); - m_LastHeardTime = std::time(NULL); -} - -CPeer::CPeer(const CPeer &peer) -{ - m_Callsign = peer.m_Callsign; - m_Ip = peer.m_Ip; - ::memcpy(m_ReflectorModules, peer.m_ReflectorModules, sizeof(m_ReflectorModules)); - m_Version = peer.m_Version; - m_LastKeepaliveTime = peer.m_LastKeepaliveTime; - m_ConnectTime = peer.m_ConnectTime; - m_LastHeardTime = peer.m_LastHeardTime; -} - -//////////////////////////////////////////////////////////////////////////////////////// -// destructors - -CPeer::~CPeer() -{ - for ( unsigned int i = 0; i < m_Clients.size(); i++ ) - { - delete m_Clients[i]; - } - m_Clients.clear(); -} - -//////////////////////////////////////////////////////////////////////////////////////// -// operators - -bool CPeer::operator ==(const CPeer &peer) const -{ - bool same = true; - - same &= (peer.m_Callsign == m_Callsign); - same &= (peer.m_Ip == m_Ip); - same &= (peer.m_Version == m_Version); - for ( unsigned int i = 0; (i < m_Clients.size()) && same ; i++ ) - { - same &= (peer.m_Clients[i] == m_Clients[i]); - } - return same; -} - - -//////////////////////////////////////////////////////////////////////////////////////// -// status - -bool CPeer::IsAMaster(void) const -{ - bool master = false; - for ( unsigned int i = 0; (i < m_Clients.size()) && !master ; i++ ) - { - master |= m_Clients[i]->IsAMaster(); - } - return master; -} - -void CPeer::Alive(void) -{ - m_LastKeepaliveTime.Now();; - for ( unsigned int i = 0; i < m_Clients.size(); i++ ) - { - m_Clients[i]->Alive(); - } -} - -//////////////////////////////////////////////////////////////////////////////////////// -// manage clients - -CClient *CPeer::GetClient(int i) -{ - if ( (i >= 0) && ((unsigned int)i < m_Clients.size()) ) - { - return m_Clients[i]; - } - else - { - return NULL; - } -} - -//////////////////////////////////////////////////////////////////////////////////////// -// reporting - - -//////////////////////////////////////////////////////////////////////////////////////// -// reporting - -void CPeer::WriteXml(std::ofstream &xmlFile) -{ - xmlFile << "" << std::endl; - xmlFile << "\t" << m_Callsign << "" << std::endl; - xmlFile << "\t" << m_Ip << "" << std::endl; - xmlFile << "\t" << m_ReflectorModules << "" << std::endl; - xmlFile << "\t" << GetProtocolName() << "" << std::endl; - char mbstr[100]; - if (std::strftime(mbstr, sizeof(mbstr), "%A %c", std::localtime(&m_ConnectTime))) - { - xmlFile << "\t" << mbstr << "" << std::endl; - } - if (std::strftime(mbstr, sizeof(mbstr), "%A %c", std::localtime(&m_LastHeardTime))) - { - xmlFile << "\t" << mbstr << "" << std::endl; - } - xmlFile << "" << std::endl; -} - -void CPeer::GetJsonObject(char *Buffer) -{ - char sz[512]; - char mbstr[100]; - char cs[16]; - - if (std::strftime(mbstr, sizeof(mbstr), "%A %c", std::localtime(&m_LastHeardTime))) - { - m_Callsign.GetCallsignString(cs); - - ::sprintf(sz, "{\"callsign\":\"%s\",\"linkedto\":\"%s\",\"time\":\"%s\"}", - cs, - m_ReflectorModules, - mbstr); - ::strcat(Buffer, sz); - } -}