Example

//-------------------------------------------------------------------
// ECLStartNotify class
//
// This sample demonstrates the use of:
//
// ECLStartNotify::NotifyEvent
// ECLStartNotify::NotifyError
// ECLStartNotify::NotifyStop
// ECLConnMgr::RegisterStartEvent
// ECLConnMgr::UnregisterStartEvent
//-------------------------------------------------------------------
 
//...................................................................
// Define a class derived from ECLStartNotify
//...................................................................
class MyStartNotify: public ECLStartNotify
{
public:
  // Define my own constructor to store instance data
  MyStartNotify(HANDLE DataHandle);
 
  // We have to implement this function
  void	NotifyEvent(ECLConnMgr *CMObj, long ConnHandle,
                    BOOL Started);
 
  // We will take the default behaviour for these so we
  // don't implement them in our class:
  // void NotifyError (ECLConnMgr *CMObj, long ConnHandle, ECLErr ErrObject);
  // void NotifyStop (ECLConnMgr *CMObj, int Reason);
 
private:
  // We will store our application data handle here
  HANDLE MyDataH;
};
 
 //...................................................................
MyStartNotify::MyStartNotify(HANDLE DataHandle)   // Constructor
//...................................................................
{
  MyDataH = DataHandle;  // Save data handle for later use
}
 
//...................................................................
void	MyStartNotify::NotifyEvent(ECLConnMgr *CMObj, long ConnHandle,
                    BOOL Started)
//...................................................................
{
  // This function is called whenever a connection start or stops.
 
  if (Started)
    printf("Connection %c started.\n", CMObj->ConvertHandle2ShortName(ConnHandle));
  else
    printf("Connection %c stopped.\n", CMObj->ConvertHandle2ShortName(ConnHandle));
 
  return;
}
 
 //...................................................................
// Create the class and begin start/stop monitoring.
//...................................................................
void Sample75() {
 
ECLConnMgr    CMgr;     // Connection manager object
MyStartNotify *Event;   // Ptr to my event handling object
HANDLE InstData;	    	// Handle to application data block (for example)
 
try {
  Event = new MyStartNotify(InstData);  // Create event handler
 
  CMgr.RegisterStartEvent(Event);       // Register to get events
 
  // At this point, any connection start/stops will cause the
  // MyStartEvent::NotifyEvent() function to execute.  For
  // this sample, we put this thread to sleep during this
  // time.
 
  printf("Monitoring connection start/stops for 60 seconds...\n");
  Sleep(60000);
 
  // Now stop event generation.
  CMgr.UnregisterStartEvent(Event);
  printf("Start/stop monitoring ended.\n");
 
  delete Event;  // Don't delete until after unregister!
}
catch (ECLErr Err) {
  printf("ECL Error: %s\n", Err.GetMsgText());
}
 
} // end sample