From 8319e46bcd488ad057d418c0d2794627af0b61fc Mon Sep 17 00:00:00 2001 From: Luca Marchesano Date: Tue, 27 Nov 2018 16:44:10 +0100 Subject: [PATCH] Delete ccallsignlist.cpp --- ccallsignlist.cpp | 244 ---------------------------------------------- 1 file changed, 244 deletions(-) delete mode 100644 ccallsignlist.cpp diff --git a/ccallsignlist.cpp b/ccallsignlist.cpp deleted file mode 100644 index cc9aaeb..0000000 --- a/ccallsignlist.cpp +++ /dev/null @@ -1,244 +0,0 @@ -// -// ccallsignlist.cpp -// xlxd -// -// Created by Jean-Luc Deltombe (LX3JL) on 30/12/2015. -// Copyright © 2015 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 -#include -#include -#include "main.h" -#include "ccallsignlist.h" - -//////////////////////////////////////////////////////////////////////////////////////// -// constructor - -CCallsignList::CCallsignList() -{ - m_Filename = NULL; - ::memset(&m_LastModTime, 0, sizeof(time_t)); -} - -//////////////////////////////////////////////////////////////////////////////////////// -// file io - -bool CCallsignList::LoadFromFile(const char *filename) -{ - bool ok = false; - char sz[256]; - char szStar[2] = "*"; - - // and load - std::ifstream file (filename); - if ( file.is_open() ) - { - Lock(); - - // empty list - clear(); - // fill with file content - while ( file.getline(sz, sizeof(sz)).good() ) - { - // remove leading & trailing spaces - char *szt = TrimWhiteSpaces(sz); - - // crack it - if ( (::strlen(szt) > 0) && (szt[0] != '#') ) - { - // 1st token is callsign - if ( (szt = ::strtok(szt, " ,\t")) != NULL ) - { - CCallsign callsign(szt); - // 2nd token is modules list - szt = ::strtok(NULL, " ,\t"); - // if token absent, use wildcard - if ( szt == NULL ) - { - szt = szStar; - } - // and add to list - push_back(CCallsignListItem(callsign, CIp(), szt)); - } - } - } - // close file - file.close(); - - // keep file path - m_Filename = filename; - - // update time - GetLastModTime(&m_LastModTime); - - // and done - Unlock(); - ok = true; - std::cout << "Gatekeeper loaded " << size() << " lines from " << filename << std::endl; - } - else - { - std::cout << "Gatekeeper cannot find " << filename << std::endl; - } - - return ok; -} - -bool CCallsignList::ReloadFromFile(void) -{ - bool ok = false; - - if ( m_Filename != NULL ) - { - ok = LoadFromFile(m_Filename); - } - return ok; -} - -bool CCallsignList::NeedReload(void) -{ - bool needReload = false; - - time_t time; - if ( GetLastModTime(&time) ) - { - needReload = time != m_LastModTime; - } - return needReload; -} - -//////////////////////////////////////////////////////////////////////////////////////// -// compare - -bool CCallsignList::IsCallsignListedWithWildcard(const CCallsign &callsign) const -{ - bool listed = false; - - for ( unsigned int i = 0; (i < size()) && !listed; i++ ) - { - listed = (data()[i]).HasSameCallsignWithWildcard(callsign); - } - - return listed; -} - -bool CCallsignList::IsCallsignListedWithWildcard(const CCallsign &callsign, char module) const -{ - bool listed = false; - - for ( unsigned int i = 0; (i < size()) && !listed; i++ ) - { - const CCallsignListItem *item = &(data()[i]); - listed = (item->HasSameCallsignWithWildcard(callsign) && - ((module == ' ') || item->HasModuleListed(module)) ); - - } - - return listed; -} - -bool CCallsignList::IsCallsignListed(const CCallsign &callsign, char module) const -{ - bool listed = false; - - for ( unsigned int i = 0; (i < size()) && !listed; i++ ) - { - const CCallsignListItem *item = &(data()[i]); - listed = (item->HasSameCallsign(callsign) && item->HasModuleListed(module)); - - } - - return listed; -} - -bool CCallsignList::IsCallsignListed(const CCallsign &callsign, char *modules) const -{ - bool listed = false; - - for ( unsigned int i = 0; (i < size()) && !listed; i++ ) - { - const CCallsignListItem *item = &(data()[i]); - listed = (item->HasSameCallsign(callsign) && item->CheckListedModules(modules)); - - } - - return listed; -} - -//////////////////////////////////////////////////////////////////////////////////////// -// find - -CCallsignListItem *CCallsignList::FindListItem(const CCallsign &Callsign) -{ - CCallsignListItem *item = NULL; - - // find client - for ( unsigned int i = 0; (i < size()) && (item == NULL); i++ ) - { - if ( (data()[i]).GetCallsign().HasSameCallsign(Callsign) ) - { - item = &(data()[i]); - } - } - - // done - return item; - -} - -//////////////////////////////////////////////////////////////////////////////////////// -// helpers - -char *CCallsignList::TrimWhiteSpaces(char *str) -{ - char *end; - - // Trim leading space & tabs - while((*str == ' ') || (*str == '\t')) str++; - - // All spaces? - if(*str == 0) - return str; - - // Trim trailing space, tab or lf - end = str + ::strlen(str) - 1; - while((end > str) && ((*end == ' ') || (*end == '\t') || (*end == '\r'))) end--; - - // Write new null terminator - *(end+1) = 0; - - return str; -} - -bool CCallsignList::GetLastModTime(time_t *time) -{ - bool ok = false; - - if ( m_Filename != NULL ) - { - struct stat fileStat; - if( ::stat(m_Filename, &fileStat) != -1 ) - { - *time = fileStat.st_mtime; - ok = true; - } - } - return ok; -}