virtual void Increment(int server_id, V value) { auto found_item = std::find_if( pn_counter_.mutable_server_items()->begin(), pn_counter_.mutable_server_items()->end(), [&server_id] (const CRDT_PNCounter_ServerItem & server_item) { return server_item.server_id() == server_id; }); if (found_item == pn_counter_.server_items().end()) { CRDT_PNCounter_ServerItem * server_item = pn_counter_.add_server_items(); server_item->set_server_id(server_id); if (value > 0) { server_item->set_positive(&value, sizeof(V)); } else { server_item->set_negative(&value, sizeof(V)); } } else { if (value > 0) { found_item->set_positive(&value, sizeof(V)); } else { found_item->set_negative(&value, sizeof(V)); } } }
void sound_handler() { set_positive(SOUND_INDICATOR, &sensor_values->sound_indic, &sensor_values->sound_val, 0); }
void obstacle_r_handler() { set_positive(OBSTACLE_INDICATOR, &sensor_values->obstacle_indic, (char *) &sensor_values->obstacle_val, IDX_RIGHT); }
void impact_b_handler() { set_positive(IMPACT_INDICATOR, &sensor_values->impact_indic, (char *) &sensor_values->impact_val, IDX_BACK); }
void set_features( bool alive, bool positive, bool influential ) { set_alive( alive ); set_positive( positive ); set_influential( influential ); }