Skip to content
Snippets Groups Projects
Select Git revision
  • dailybuild_linux-x64
  • dailybuild_win32
  • master default protected
  • sqlite
  • rip_abstraction
  • dailybuild_macos-armv8
  • dd_file_lister_filanem_in_desc_color
  • mode7
  • dd_msg_reader_are_you_there_warning_improvement
  • c23-playing
  • syncterm-1.3
  • syncterm-1.2
  • test-build
  • hide_remote_connection_with_telgate
  • 638-can-t-control-c-during-a-file-search
  • add_body_to_pager_email
  • mingw32-build
  • cryptlib-3.4.7
  • ree/mastermind
  • new_user_dat
  • sbbs320d
  • syncterm-1.6
  • syncterm-1.5
  • syncterm-1.4
  • sbbs320b
  • syncterm-1.3
  • syncterm-1.2
  • syncterm-1.2rc6
  • syncterm-1.2rc5
  • push
  • syncterm-1.2rc4
  • syncterm-1.2rc2
  • syncterm-1.2rc1
  • sbbs319b
  • sbbs318b
  • goodbuild_linux-x64_Sep-01-2020
  • goodbuild_win32_Sep-01-2020
  • goodbuild_linux-x64_Aug-31-2020
  • goodbuild_win32_Aug-31-2020
  • goodbuild_win32_Aug-30-2020
40 results

StatsLogFormUnit.cpp

Blame
  • StatsLogFormUnit.cpp 3.24 KiB
    /* Synchronet Control Panel (GUI Borland C++ Builder Project for Win32) */
    
    /****************************************************************************
     * @format.tab-size 4		(Plain Text/Source Code File Header)			*
     * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
     *																			*
     * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
     *																			*
     * This program 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 2			*
     * of the License, or (at your option) any later version.					*
     * See the GNU General Public License for more details: gpl.txt or			*
     * http://www.fsf.org/copyleft/gpl.html										*
     *																			*
     * For Synchronet coding style and modification guidelines, see				*
     * http://www.synchro.net/source.html										*
     *																			*
     * Note: If this box doesn't appear square, then you need to fix your tabs.	*
     ****************************************************************************/
    
    //---------------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    
    #include <stdio.h>		// sprintf()
    #include <time.h>		// time_t
    #include <share.h>
    #include "MainFormUnit.h"
    #include "StatsLogFormUnit.h"
    #include "getstats.h"
    #include "dat_file.h"
    #include "xpdatetime.h"
    
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TStatsLogForm *StatsLogForm;
    //---------------------------------------------------------------------------
    __fastcall TStatsLogForm::TStatsLogForm(TComponent* Owner)
    	: TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TStatsLogForm::FormShow(TObject *Sender)
    {
    	char str[256],path[256],*p;
    	char ulbytes[32];
    	char dlbytes[32];
    	FILE* fp;
        time_t timestamp;
        struct tm* tm;
    	stats_t stats = {0};
    
        SAFEPRINTF(path, "%scsts.tab", MainForm->global.ctrl_dir);
        if((fp = _fsopen(path, "rb", SH_DENYNO)) ==  NULL) {
            SAFEPRINTF(str, "!Error opening %s", path);
            Log->Lines->Add(AnsiString(str));
            return;
        }
    	str_list_t columns = NULL;
    	Screen->Cursor=crHourGlass;
    	str_list_t* records = tabReadFile(fp, &columns);
    	fclose(fp);
    	long l;
    	COUNT_LIST_ITEMS(records, l);
    	for(--l; l >= 0; --l) {
    		parse_cstats(records[l], &stats);
    		timestamp=isoDateTime_to_time(strtoul(records[l][CSTATS_DATE], NULL, 10), 0);
            timestamp-=(24*60*60); /* 1 day less than stamp */
            tm=localtime(&timestamp);
            sprintf(str,"%u/%2.2d/%2.2d T:%5lu   L:%3lu   P:%3lu   "
                "E:%3lu   F:%3lu   U:%5s %5lu  D:%5s %5lu  N:%3lu"
                ,1900 + tm->tm_year,tm->tm_mon+1,tm->tm_mday
    			,stats.ttoday,stats.ltoday,stats.ptoday,stats.etoday
                ,stats.ftoday
    			,byte_estimate_to_str(stats.ulb, ulbytes, sizeof(ulbytes), 1, 0), stats.uls
    			,byte_estimate_to_str(stats.dlb, dlbytes, sizeof(dlbytes), 1, 0), stats.dls
    			,stats.nusers
    			);
            Log->Lines->Add(AnsiString(str));
        }
    	tabListFree(records);
    	strListFree(&columns);
    	Screen->Cursor=crDefault;
    }
    //---------------------------------------------------------------------------