From b8dda6ecdfc747d561d170bd3d8512dc6914d238 Mon Sep 17 00:00:00 2001 From: fcolin Date: Mon, 3 Aug 1998 12:58:41 +0000 Subject: eclatement de bussocket pour permettre la creation de mainloop externe autre que XT et Interne buschannel.h devient l'interface avec la gestion MainLoop busxtloop.[ch] MainLoop Style XT busloop.[ch] MainLoop Interne basee sur select --- src/testbus.c | 50 +++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 41 insertions(+), 9 deletions(-) (limited to 'src/testbus.c') diff --git a/src/testbus.c b/src/testbus.c index db52985..ae10eea 100644 --- a/src/testbus.c +++ b/src/testbus.c @@ -1,11 +1,22 @@ #include +#include +#ifdef WIN32 +#include +#else #include #include +#endif +#ifdef XTMAINLOOP +#include "busxtloop.h" +#else +#include "busloop.h" +#endif #include "bussocket.h" #include "bus.h" #include "timer.h" #ifdef XTMAINLOOP #include +XtAppContext cntx; #endif int app_count = 0; @@ -19,7 +30,7 @@ void Callback( BusClientPtr app, void *user_data, int argc, char *argv[]) printf(" '%s'",argv[i]); printf("\n"); } -void HandleStdin( Channel channel, int fd, void *data) +void HandleStdin( Channel channel, HANDLE fd, void *data) { char buf[4096]; char *line; @@ -31,8 +42,12 @@ void HandleStdin( Channel channel, int fd, void *data) line = gets( buf); if ( !line ) { - ChannelClose( channel ); - ChannelStop(); +#ifdef XTMAINLOOP + BusXtChannelClose( channel ); +#else + BusLoopChannelClose( channel ); + BusLoopChannelStop(); +#endif return; } if ( *line == '.' ) @@ -144,7 +159,11 @@ void ApplicationCallback( BusClientPtr app, void *user_data, BusApplicationEvent printf("Application(%s): Receive '%s'\n",appname,*msgList++); printf("Application(%s): End Messages\n",appname); if ( app_count == wait_count ) - ChannelSetUp( 0, NULL, NULL, HandleStdin); +#ifdef XTMAINLOOP + BusXtChannelSetUp( 0, NULL, NULL, HandleStdin); +#else + BusLoopChannelSetUp( 0, NULL, NULL, HandleStdin); +#endif break; case BusApplicationDisconnected: app_count--; @@ -156,12 +175,14 @@ void ApplicationCallback( BusClientPtr app, void *user_data, BusApplicationEvent } } +#ifndef XTMAINLOOP void TimerCall(TimerId id, void *user_data, unsigned long delta) { printf("Timer callback: %d delta %lu ms\n", (int)user_data, delta ); SendMsg( "TEST TIMER %d", (int)user_data); /*if ( (int)user_data == 5 ) TimerModify( id, 2000 );*/ } +#endif int main(int argc, char *argv[]) { @@ -181,25 +202,36 @@ int main(int argc, char *argv[]) timer_test = 1; break; } + /* Mainloop management */ #ifdef XTMAINLOOP - XtToolkitInitialize(); - + /*XtToolkitInitialize();*/ + cntx = XtCreateApplicationContext(); + BusXtChannelAppContext( cntx ); + BusSetChannelManagement( BusXtChannelInit, BusXtChannelSetUp, BusXtChannelClose ); +#else + BusSetChannelManagement( BusLoopChannelInit, BusLoopChannelSetUp, BusLoopChannelClose ); #endif BusInit("TEST",bport,"TEST READY",ApplicationCallback,NULL,NULL,NULL); for ( ; optind < argc; optind++ ) BindMsg( Callback, NULL, argv[optind] ); if ( wait_count == 0 ) - ChannelSetUp( 0, NULL, NULL, HandleStdin); +#ifdef XTMAINLOOP + BusXtChannelSetUp( 0, NULL, NULL, HandleStdin); +#else + BusLoopChannelSetUp( 0, NULL, NULL, HandleStdin); +#endif BusStart( ); if ( timer_test ) { +#ifndef XTMAINLOOP TimerRepeatAfter( TIMER_LOOP, 1000, TimerCall, (void*)1 ); TimerRepeatAfter( 5, 5000, TimerCall, (void*)5 ); +#endif } #ifdef XTMAINLOOP - XtMainLoop(); + XtAppMainLoop(cntx); #else - BusLoop(); + BusLoopChannelMainLoop(NULL); #endif return 0; } -- cgit v1.1