void BitwiseWeight::init( int num ) { delete_elements(); number_of_elements = num; elements = new ProbabilisticModelElement[num]; for( int i = 0; i < num; i++ ) elements[i].init( 2 ); }
void* AGDaemonID_local_timeout_thread (void* cls) { struct timespec request; struct timespec remain; while (true) { request.tv_sec = 30; request.tv_nsec = 0; remain.tv_sec = 0; remain.tv_nsec = 0; int rc = clock_nanosleep(CLOCK_MONOTONIC, 0, &request, &remain); if (rc < 0) perror("clock_nanosleep"); //Traverse the set... set<AGDaemonID_local*, AGDaemonID_comp>::reverse_iterator itr; fwd_itr fitr; for (itr = agd_set.rbegin(); itr != agd_set.rend(); itr++) { AGDaemonID_local *agdl = *itr; time_t current_time; time(¤t_time); if ((current_time - agdl->pulse_ts) >= agdl->freq * 2) { syslog(LOG_WARNING, "%s:%i Pulse rate lower than anticipated (%i)\n", agdl->addr.c_str(), agdl->port, agdl->freq); //ping PingResponse pr; thrift_connection *tc = thrift_connect(agdl->addr.c_str(), agdl->port, false); if (tc->is_connected) { tc->ag_client->ping(pr); if (pr.id != agdl->id) { syslog(LOG_CRIT, "%s:%i Returns an unexpected ID\n", agdl->addr.c_str(), agdl->port); del_set.insert(agdl); continue; } fitr = agd_set.find(*itr); agd_set.erase(fitr); time(&(agdl->pulse_ts)); agd_set.insert(agdl); } else { syslog(LOG_CRIT, "%s at %s:%i", tc->err, agdl->addr.c_str(), agdl->port); del_set.insert(agdl); } thrift_disconnect(tc); } else { break; } } delete_elements(); } return NULL; }
/** * Start of program. */ int main(int argc, char* argv[]) { init_elements(); g_window->setFramerateLimit(60); bool done = false; while (!done && g_window->isOpen()) { window_events(done); update_elements(); render_elements(); } delete_elements(); return 0; }
BitwiseWeight::~BitwiseWeight() { delete_elements(); }