@ -11,10 +11,28 @@ static
TR_EventDone
TR_EventDone
testHandlerHeartbeat ( TR_EventHandler this , TR_Event event )
testHandlerHeartbeat ( TR_EventHandler this , TR_Event event )
{
{
printf ( " %zd beat(s) since last beat / handled: %llu/s \n " ,
double size = ( double ) ( ( TestHandler ) this ) - > size ;
double size_msg = ( ( TestHandler ) this ) - > size
? size / ( ( TestHandler ) this ) - > handled
: 0.0 ;
int div_count = 0 ;
while ( size > 1024. & & div_count ! = ' G ' ) {
size / = 1024. ;
switch ( div_count ) {
case 0 : div_count = ' K ' ; break ;
case ' K ' : div_count = ' M ' ; break ;
case ' M ' : div_count = ' G ' ; break ;
}
}
printf ( " %zd beat(s) since last beat / "
" handled: %llu msg/s %4.2lf %cBytes/s %4.0lf Bytes/msg \n " ,
( ( TR_EventDispatcher ) event - > subject ) - > n_beats ,
( ( TR_EventDispatcher ) event - > subject ) - > n_beats ,
( ( TestHandler ) this ) - > handled ) ;
( ( TestHandler ) this ) - > handled ,
size , div_count , size_msg ) ;
( ( TestHandler ) this ) - > handled = 0 ;
( ( TestHandler ) this ) - > handled = 0 ;
( ( TestHandler ) this ) - > size = 0 ;
return TR_EVENT_DONE ;
return TR_EVENT_DONE ;
}
}
@ -24,8 +42,10 @@ TR_EventDone
testHandlerNewMessage ( TR_EventHandler this , TR_Event event )
testHandlerNewMessage ( TR_EventHandler this , TR_Event event )
{
{
TR_Event _event ;
TR_Event _event ;
TR_ProtoMessageRaw message = event - > data ;
( ( TestHandler ) this ) - > handled + + ;
( ( TestHandler ) this ) - > handled + + ;
( ( TestHandler ) this ) - > size + = ( ( TR_SizedData ) message - > data ) - > size ;
_event = TR_eventSubjectEmit (
_event = TR_eventSubjectEmit (
event - > subject ,
event - > subject ,