示例#1
0
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(&current_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;
}
示例#3
0
/**
 * 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;
}
示例#4
0
BitwiseWeight::~BitwiseWeight()
{
    delete_elements();
}