diff options
Diffstat (limited to '0.8/src/time/timr.cpp')
| -rw-r--r-- | 0.8/src/time/timr.cpp | 182 |
1 files changed, 0 insertions, 182 deletions
diff --git a/0.8/src/time/timr.cpp b/0.8/src/time/timr.cpp deleted file mode 100644 index 0d049c3..0000000 --- a/0.8/src/time/timr.cpp +++ /dev/null @@ -1,182 +0,0 @@ -/*:* - *: File: ./src/time/timr.cpp - *: - *: yChat; Homepage: ychat.buetow.org; Version 0.9.0-CURRENT - *: - *: Copyright (C) 2003 Paul C. Buetow, Volker Richter - *: Copyright (C) 2004 Paul C. Buetow - *: Copyright (C) 2005 EXA Digital Solutions GbR - *: Copyright (C) 2006, 2007 Paul C. Buetow - *: - *: 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. - *: - *: This program 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 this program; if not, write to the Free Software - *: Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - *:*/ - -#ifndef TIMR_CPP -#define TIMR_CPP - -#include <sys/time.h> -#include "timr.h" - -using namespace std; - -timr::timr() -{ - wrap::system_message( TIMERIN ); - b_timer_active = true; - - - i_time_offset = tool::string2int( wrap::CONF->get_elem("chat.timeoffset") ); - wrap::system_message( TIMEROF + tool::int2string( i_time_offset ) ); - - s_time = "00:00:00"; - s_uptime = "00:00:00"; -} - -timr::~timr() -{} - -bool -timr::get_timer_active() const -{ - return b_timer_active; -} - -int -timr::get_offset() -{ - int i_ret_val = i_time_offset; - return i_ret_val; -} - -void -timr::start( void *v_ptr ) -{ - wrap::system_message( TIMERTH ); - - time_t clock_start; - time_t clock_now; - - time( &clock_start ); - tm time_start = *localtime( &clock_start ); - tm time_now; - - while ( get_timer_active() ) - { - // sleep a second! - usleep( 1000000 ); - - // get the current time! - time( &clock_now ); - - time_now = *localtime( &clock_now ); - - // set the current time && the current ychat uptime! - set_time( difftime( clock_now, clock_start ), - time_now.tm_sec, time_now.tm_min, time_now.tm_hour ); - - // run every minute: - if ( time_now.tm_sec == 0 ) - { -#ifdef SERVMSG - cout << TIMERUP << get_uptime() << endl; -#endif - //<<* - int* p_timeout_settings = new int[3]; - p_timeout_settings[0] = tool::string2int(wrap::CONF->get_elem("chat.idle.timeout")); - p_timeout_settings[1] = tool::string2int(wrap::CONF->get_elem("chat.idle.awaytimeout")); - p_timeout_settings[2] = tool::string2int(wrap::CONF->get_elem("chat.idle.autoawaytimeout")); - wrap::CHAT->check_timeout( p_timeout_settings ); - delete p_timeout_settings; - - string s_ping = "<!-- PING! //-->\n"; - wrap::CHAT->msg_post( &s_ping ); - -#ifdef DATABASE - // Disconnecting idle database conenction - wrap::DATA->check_data_con_timeout(); -#endif - //*>> - // Run every ten minutes: - if ( time_now.tm_min % 10 == 0 ) - { - - wrap::SOCK->clean_ipcache(); - // Run every hour - if ( time_now.tm_min % 60 == 0 ) - { - wrap::GCOL->remove_garbage(); //<< - - // Run every day - if (time_now.tm_min == 0 || time_now.tm_min == 60 ) - if (time_now.tm_hour == 0 || time_now.tm_hour == 24) - wrap::STAT->update_rusage_history(); - } - } - } - } -} - -void -timr::set_time( double d_uptime, int i_cur_seconds, int i_cur_minutes, int i_cur_hours ) -{ - - int i_hours = (int) d_uptime / 3600; - int i_minutes = (int) d_uptime / 60; - - while ( i_minutes >= 60 ) - i_minutes -= 60; - - while ( d_uptime >= 60 ) - d_uptime -= 60; - - // Calculate offset time - i_cur_hours += get_offset(); - - for ( int i = 24-i_cur_hours; i < 0; i = 24-i_cur_hours ) - i_cur_hours =- i; - - if (i_cur_hours == 24) - i_cur_hours = 0; - - s_time = add_zero_to_front( tool::int2string( i_cur_hours ) ) + ":" + - add_zero_to_front( tool::int2string( i_cur_minutes ) ) + ":" + - add_zero_to_front( tool::int2string( i_cur_seconds ) ); - - s_uptime = add_zero_to_front( tool::int2string( i_hours ) ) + ":" + - add_zero_to_front( tool::int2string( i_minutes ) ) + ":" + - add_zero_to_front( tool::int2string( (int) d_uptime ) ); -} - -string -timr::add_zero_to_front( string s_time ) -{ - if ( s_time.length() == 1 ) - { - string s_new = "0" + s_time; - return s_new; - } - - return s_time; -} - -double -timr::get_time_diff( time_t &clock_diff ) -{ - time_t clock_now; - time( &clock_now ); - - return difftime(clock_now, clock_diff); -} -#endif |
