//
 // Summary:
 //     Monitors the events specified by mask and delays processing until one or
 //     more of the events occurs.
 //
 // Parameters:
 //   mask:
 //     Bit mask of GPIB events to wait for.
 //
 // Exceptions:
 //   NationalInstruments.NI4882.GpibException:
 //     The NI-488.2 driver returns an error as a result of calling this method.
 //
 //   System.ObjectDisposedException:
 //     This member is called after the NationalInstruments.NI4882.Device.Dispose()
 //     method has been called directly from your code or indirectly through a finalizer.
 //
 //   System.DllNotFoundException:
 //     The NI-488.2 driver library cannot be found.
 //
 //   System.EntryPointNotFoundException:
 //     A required operation in the NI-488.2 driver library cannot be found.
 //
 //   System.ArgumentException:
 //     A bit set in the mask is invalid.
 //
 //   System.InvalidOperationException:
 //      The inner exception is set to the NationalInstruments.NI4882.GpibException
 //     due to one of the following conditions:
 //     A different process owns a lock for the interface.
 //     -or-
 //     Method requires GPIB interface to be Controller-in-Charge (CIC).
 //     -or-
 //     Nonexistent GPIB interface.
 //     -or-
 //     GPIB bus error.
 //     -or-
 //     SRQ stuck in ON position.
 //     -or-
 //     NationalInstruments.NI4882.Device.Wait(NationalInstruments.NI4882.GpibStatusFlags)
 //     or NationalInstruments.NI4882.Device.GetCurrentStatus() is already in progress
 //     on the interface.
 //
 // Remarks:
 //     If mask is NationalInstruments.NI4882.GpibStatusFlags.None, NationalInstruments.NI4882.Board.Wait(NationalInstruments.NI4882.GpibStatusFlags)
 //     returns immediately with the updated status returned in NationalInstruments.NI4882.Board.LastStatus.
 //     This call is identical to NationalInstruments.NI4882.Board.GetCurrentStatus().
 //     If NationalInstruments.NI4882.GpibStatusFlags.Timeout is set in mask, and
 //     one or more of the other specified events have not already occurred, NationalInstruments.NI4882.Board.Wait(NationalInstruments.NI4882.GpibStatusFlags)
 //     returns when the NationalInstruments.NI4882.Board.IOTimeout period has elapsed.
 //     If NationalInstruments.NI4882.GpibStatusFlags.Timeout is not set in mask,
 //     the method waits indefinitely for one or more of the specified events to
 //     occur. You can configure the timeout period using the NationalInstruments.NI4882.Board.IOTimeout
 //     property. The only valid wait mask bits are NationalInstruments.NI4882.GpibStatusFlags.End,
 //     NationalInstruments.NI4882.GpibStatusFlags.DeviceServiceRequest, and NationalInstruments.NI4882.GpibStatusFlags.IOComplete.
 public void Wait(GpibStatusFlags mask);
 //
 // Summary:
 //     Notifies the user of one or more GPIB events by invoking the user callback.
 //
 // Parameters:
 //   mask:
 //     Bit mask of GPIB events to notice.
 //
 //   callback:
 //     Pointer to the delegate method NationalInstruments.NI4882.NotifyCallback.
 //
 //   userData:
 //     User-defined reference data for the callback.
 //
 // Exceptions:
 //   NationalInstruments.NI4882.GpibException:
 //     The NI-488.2 driver returns an error as a result of calling this method.
 //
 //   System.ObjectDisposedException:
 //     This member is called after the NationalInstruments.NI4882.Board.Dispose()
 //     method has been called directly from your code or indirectly through a finalizer.
 //
 //   System.DllNotFoundException:
 //     The NI-488.2 driver library cannot be found.
 //
 //   System.EntryPointNotFoundException:
 //     A required operation in the NI-488.2 driver library cannot be found.
 //
 //   System.ArgumentException:
 //      mask is invalid or nonzero.
 //     -or-
 //     callback is null.
 //
 //   System.InvalidOperationException:
 //      The inner exception is set to the NationalInstruments.NI4882.GpibException
 //     due to one of the following conditions:
 //     A different process owns a lock for the interface.
 //     -or-
 //     Nonexistent GPIB interface.
 //     -or-
 //     Asynchronous I/O operation in progress.
 //     -or-
 //     The current NI-488.2 driver cannot perform notification on one or more of
 //     the specified mask bits.
 //
 // Remarks:
 //     If mask is nonzero, NationalInstruments.NI4882.Device.Notify(NationalInstruments.NI4882.GpibStatusFlags,NationalInstruments.NI4882.NotifyCallback,System.Object)
 //     monitors the events specified by mask, and when one or more of the events
 //     is true, the callback is invoked. The only valid mask bits are NationalInstruments.NI4882.GpibStatusFlags.IOComplete,
 //     NationalInstruments.NI4882.GpibStatusFlags.Timeout, NationalInstruments.NI4882.GpibStatusFlags.End,
 //     and NationalInstruments.NI4882.GpibStatusFlags.DeviceServiceRequest. If NationalInstruments.NI4882.GpibStatusFlags.Timeout
 //     is set in the notify mask, and one or more of the other specified events
 //     has not already occurred, NationalInstruments.NI4882.Device.Notify(NationalInstruments.NI4882.GpibStatusFlags,NationalInstruments.NI4882.NotifyCallback,System.Object)
 //     calls the callback method when the NationalInstruments.NI4882.Board.IOTimeout
 //     period has elapsed. If NationalInstruments.NI4882.GpibStatusFlags.Timeout
 //     is not set in the Notify mask, the callback is not called until one or more
 //     of the specified events occur.
 //     Notification on NationalInstruments.NI4882.GpibStatusFlags.DeviceServiceRequest
 //     is not guaranteed to work if automatic serial polling is disabled. By default,
 //     automatic serial polling is enabled.
 //     A device can have only one outstanding NationalInstruments.NI4882.Device.Notify(NationalInstruments.NI4882.GpibStatusFlags,NationalInstruments.NI4882.NotifyCallback,System.Object)
 //     call at any one time. If a current NationalInstruments.NI4882.Device.Notify(NationalInstruments.NI4882.GpibStatusFlags,NationalInstruments.NI4882.NotifyCallback,System.Object)
 //     is in effect for the device, it is replaced by a subsequent NationalInstruments.NI4882.Device.Notify(NationalInstruments.NI4882.GpibStatusFlags,NationalInstruments.NI4882.NotifyCallback,System.Object)
 //     call. An outstanding NationalInstruments.NI4882.Device.Notify(NationalInstruments.NI4882.GpibStatusFlags,NationalInstruments.NI4882.NotifyCallback,System.Object)
 //     call for NationalInstruments.NI4882.Device.Notify(NationalInstruments.NI4882.GpibStatusFlags,NationalInstruments.NI4882.NotifyCallback,System.Object)
 //     can be canceled by a subsequent NationalInstruments.NI4882.Device.Notify(NationalInstruments.NI4882.GpibStatusFlags,NationalInstruments.NI4882.NotifyCallback,System.Object)
 //     call for a device that has a mask of zero.
 //     If a NationalInstruments.NI4882.Device.Notify(NationalInstruments.NI4882.GpibStatusFlags,NationalInstruments.NI4882.NotifyCallback,System.Object)
 //     call is outstanding and one or more of the GPIB events it is waiting on become
 //     true, the callback is invoked.
 //     Notification occurs when the state of one or more of the mask bits is true.
 //     Therefore, if a request is made to be notified when NationalInstruments.NI4882.GpibStatusFlags.IOComplete
 //     is true, and NationalInstruments.NI4882.GpibStatusFlags.IOComplete is currently
 //     true, the callback is invoked immediately.  In Measurement Studio Technology
 //     Preview 1, NationalInstruments.NI4882.NotifyData.SetReenableMask(NationalInstruments.NI4882.GpibStatusFlags)
 //     does not work correctly. To work around this problem, call NationalInstruments.NI4882.Device.Notify(NationalInstruments.NI4882.GpibStatusFlags,NationalInstruments.NI4882.NotifyCallback,System.Object)
 //     every time after the NationalInstruments.NI4882.NotifyCallback returns.
 public void Notify(GpibStatusFlags mask, NotifyCallback callback, object userData);