TorrentStatistics::TorrentStatistics(QBtSession* session, QObject* parent) : QObject(parent) , m_session(session) , m_sessionUL(0) , m_sessionDL(0) , m_lastWrite(0) , m_dirty(false) { loadStats(); connect(&m_timer, SIGNAL(timeout()), this, SLOT(gatherStats())); m_timer.start(60 * 1000); }
//main() int main (int argc, char *argv[]) { //Call syntax check if (argc != 3) { printf ("Usage: %s Genome_fasta_filename Minimum_gap_size\n", argv[0]); exit (1); } //Main variables int userSize; FILE *inFile; //Initialize main variables printf ("Opening files...\n"); createFile (&inFile, argv[1], 'r'); sscanf (argv[2], "%d", &userSize); //Build dynamic linked list of scaf data printf ("File found. Collecting stats...\n"); gatherStats (userSize, inFile); fclose (inFile); printf ("Done.\n"); return 0; }
void Logstalgia::readLog(int buffer_rows) { profile_start("readLog"); //change TZ to UTC putenv((char*)"TZ=UTC"); tzset(); int entries_read = 0; std::string linestr; BaseLog* baselog = getLog(); time_t read_timestamp = 0; while( baselog->getNextLine(linestr) ) { //trim whitespace if(linestr.size()>0) { size_t string_end = linestr.find_last_not_of(" \t\f\v\n\r"); if(string_end == std::string::npos) { linestr = ""; } else if(string_end != linestr.size()-1) { linestr = linestr.substr(0,string_end+1); } } LogEntry le; bool parsed_entry; //determine format if(accesslog==0) { //is this a recognized NCSA access log? NCSALog* ncsalog = new NCSALog(); if((parsed_entry = ncsalog->parseLine(linestr, le))) { accesslog = ncsalog; } else { delete ncsalog; } if(accesslog==0) { //is this a custom log? CustomAccessLog* customlog = new CustomAccessLog(); if((parsed_entry = customlog->parseLine(linestr, le))) { accesslog = customlog; } else { delete customlog; } } } else { if(!(parsed_entry = accesslog->parseLine(linestr, le))) { debugLog("error: could not read line %s\n", linestr.c_str()); } else gatherStats(le); } if(parsed_entry) { if(mintime == 0 || mintime <= le.timestamp) { queued_entries.push_back(new LogEntry(le)); total_entries++; entries_read++; //read at least the buffered row count if specified //otherwise read all entries with the same time if(buffer_rows) { if(entries_read > buffer_rows) break; } else { if(read_timestamp && read_timestamp < le.timestamp) break; } read_timestamp = le.timestamp; } } } profile_stop(); //reset TZ to previous value if(!old_tz.empty()) { putenv((char*)old_tz.c_str()); } else { #ifdef HAVE_UNSETENV unsetenv("TZ"); #else putenv("TZ="); #endif } tzset(); if(queued_entries.empty() && seeklog != 0) { if(total_entries==0) { logstalgia_quit("could not parse first entry"); } //no more entries end_reached = true; return; } if(seeklog != 0) { float percent = seeklog->getPercent(); if(percent > gStopPosition) { end_reached = true; return; } if(!gDisableProgress) slider.setPercent(percent); } //set start time if currently 0 if(starttime==0 && !queued_entries.empty()) { starttime = queued_entries.front()->timestamp; currtime = 0; } }