public void MyEdirEventHandler(object source, EdirEventArgs objEventArgs) { Console.WriteLine("EdirEventsCallback::MyEdirEventHandler Event classification = {0}", objEventArgs.EventClassification); EdirEventIntermediateResponse objIR = objEventArgs.IntermediateResponse; if (null != objIR) { Console.WriteLine("EdirEventsCallback::MyEdirEventHandler EventType = {0}", objIR.EventType); // is there any data object associated with the event... BaseEdirEventData objResponseDataObject = objIR.EventResponseDataObject; if (null != objResponseDataObject) { Console.WriteLine("EdirEventsCallback::MyEdirEventHandler Type of data object = {0}", objResponseDataObject.EventDataType); } Console.WriteLine("EdirEventsCallback::MyEdirEventHandler EventResultType = {0}", objIR.EventResultType); // Now objResponseDataObject can be casted to appropriate type depending // upon the value of objResponseDataObject.EventDataType } Console.WriteLine(QUIT_PROMPT); }
/** * Check the queue for a response. If a response has been received, * print the response information. */ static private bool checkForAChange(LdapResponseQueue queue) { LdapMessage message; bool result = true; try { //check if a response has been received so we don't block //when calling getResponse() if (queue.isResponseReceived()) { message = queue.getResponse(); if (message != null) { // is the response a search result reference? if (message is MonitorEventResponse) { MonitorEventResponse eventerrorresponse = (MonitorEventResponse)message; Console.WriteLine("\nError in Registration ResultCode = " + eventerrorresponse.ResultCode); EdirEventSpecifier[] specifiers = eventerrorresponse.SpecifierList; for (int i = 0; i < specifiers.Length; i++) { Console.WriteLine("Specifier:" + "EventType = " + specifiers[i].EventType); } Environment.Exit(-1); } // is the response a event response ? else if (message is EdirEventIntermediateResponse) { Console.WriteLine("Edir Event Occured"); EdirEventIntermediateResponse eventresponse = (EdirEventIntermediateResponse)message; //process the eventresponse Data, depending on the // type of response processEventData(eventresponse.EventResponseDataObject, eventresponse.EventType); } // the message is a Unknown response else { Console.WriteLine("UnKnown Message =" + message); } } } } catch (LdapException e) { Console.WriteLine("Error: " + e.ToString()); result = false; } return(result); }