This class is only available in the RT environment. It has been derived from CIIntHandler to ease the creation of an interrupt handler that processes interrupts by sending a message to a low level mailbox. It must be used to derive an application specific mailbox interrupt handler class, or it can be used directly to control an interrupt handler object.
The class contains a static call that acts as an interrupt handler. When deriving from the CILLIntMbxHandler class and overruling the handler, care should be taken in obeying all rules on the contents of such a handler.
Constructor
Destructor
Create
Send
The following member variables are only available to the members of the class and its derived classes:
CILLMbx * m_pMbx;
All functions inherited from CIIntHandler can be used, although OnSignal implements the low level mailbox interface and is therefore essential. The Attach, Detach and Lookup functions cannot be used.
The constructor has no arguments. It does not install an interrupt handler yet.
The destructor removes the interrupt handler from the level, if one had been installed.
If a handler is currently installed, it is first removed. Then this call installs a new interrupt handler for the given level. Note that this call does not create any RT object and also does not catalog any name.
DWORD CILLIntMbxHandler::Create( WORD wLevel, CILLMbx * pMbx );
wLevel
pMbx
E_OK
E_PARAM
wLevel
has a bad value, or pMbx
does not point to an attached low-level mailbox.
E_CONTEXT
CILLIntMbxHandler::Send is called by the framework when an interrupt has occurred and a message must be sent; it should never be called explicitly. Inside this call scheduling has been stopped, so calls like sending to a low level mailbox are allowed; do not use the address of a local variable inside this call and do not call any call that uses such an address. CILLIntMbxHandler::Send sends a one byte message (containing a zero) to the low level mailbox. When overruling this call, there is no need to call the default call.
void CILLIntMbxHandler::Send(void);