Modularizando o src
Dependencies: EALib EthernetInterface_vz mbed-rtos mbed
Fork of header_main_colinas_V0-20-09-14 by
Diff: call_box_manager.cpp
- Revision:
- 74:81c47fff88a5
- Child:
- 78:1353744f01e1
diff -r 3b4e282eeff7 -r 81c47fff88a5 call_box_manager.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/call_box_manager.cpp Mon Nov 24 16:43:16 2014 +0000 @@ -0,0 +1,34 @@ +#include "call_box_manager.h" + +Call_Box * __find_CB__( Vector * v_cb, int ext ){ + Call_Box * cb = NULL; + for( register int i = 0; i < v_cb->size(); i++ ){ + cb = ( Call_Box * )v_cb->get_element( i ); + if( cb->get_ext() == ext ) return( cb ); + } + return( NULL ); +} + +void registry_aging( Vector * v_cb, uint8_t * data, uint8_t * write_buffer ){ + Call_Box * cb = NULL; + if( v_cb && data && write_buffer ){ + for( register int i = 0; i < v_cb->size(); i++ ){ + cb = (Call_Box * )v_cb->get_element( i ); + if( cb->is_timeout() ){ + if( cb->reconfigure_timeout() == 0x00 ){ + if( debug_alive ) debug_msg("( ext %d removed )", cb->get_ext() ); + //cb->unregistry(); + v_cb->remove_element( i ); + delete( cb ); + break; + }else{ + if( debug_alive ) debug_msg("Ping Cbx %d", cb->get_ext() ); + cb->set_msg_id( ( ( cb->get_msg_id() ) + 1 ) & ( BIT7 ^ 0xff ) ); + send2callboxes( __build_cb_package__( cb->get_ext(), cb->get_port(), __REGISTRY__, + ( char * )data, cb->get_msg_id(), __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__, write_buffer ) ); + cb->registry(); + } + } + } + } +} \ No newline at end of file