Example #1
0
void Casan::check_observed_resources (Msg &out)
{
    Resource *res ;
    reslist *rl ;

    for (rl = reslist_ ; rl != NULL ; rl = rl->next)
    {
	res = rl->res ;
	if (res->check_trigger ())
	{
	    DBG1 (F (B_BLUE "Observed resource '")) ;
	    DBG1 (rl->res->name ()) ;
	    DBG1 (F ("' triggered" C_RESET)) ;
	    DBGLN0 () ;

	    out.reset () ;

	    out.set_type (COAP_TYPE_ACK) ;
	    out.set_token (res->get_token ()) ;
	    out.set_id (curid_++) ;
	    out.set_code (COAP_CODE_OK) ;

	    option obs (option::MO_Observe, res->next_serial ()) ;
	    out.push_option (obs) ;

	    request_resource (NULL, &out, res) ;

	    out.send (*master_) ;
	}
    }
}