Provide synchronous event notification
int PhEventNext( void *buffer, unsigned size );
ph
This function provides a completely synchronous event-notification mechanism. It causes the application to become REPLY-blocked on the currently attached Photon channel until an event occurs.
For asynchronous event notification, see PhEventRead() and PhEventArm().
If the application's event queue contains an event when this call is made, Photon replies immediately with that event.
If your application uses widgets, don't try to write your own event-handling loop; use PtMainLoop() or PtProcessEvent() instead. |
#define EVENT_SIZE sizeof( PhEvent_t ) + 1000 main( int argc, char *argv[] ) { PhEvent_t *event; if( initialize() == -1 ) exit( EXIT_FAILURE ); if( NULL == ( event = malloc( EVENT_SIZE ) ) ) exit( EXIT_FAILURE ); while( 1 ) { switch( PhEventNext( event, EVENT_SIZE ) ) { case Ph_EVENT_MSG: PtEventHandler( event ); break; case -1: perror( "PhEventNext failed" ); break; } } }
Photon
Safety: | |
---|---|
Interrupt handler | No |
Signal handler | No |
Thread | No |
PhAttach(), PhEvent_t, PhEventPeek(), PhEventRead(), PhGetMsgSize(), PtEventHandler()
“Collecting events” in the Events chapter of the Photon Programmer's Guide