Difference between revisions of "Framework/Article/Asynchronous Callback Service"

From Apache OpenOffice Wiki
Jump to: navigation, search
(Asynchronous callback service)
(Asynchronous callback service)
Line 3: Line 3:
 
UNO awt provides a GUI based uno API for OpenOffice.org developer. Sometimes it's necessary that an implementation is called by OpenOffice.org at a later time to do certain tasks. Sometimes this is also bound to GUI library actions which must be completed before another request can be processed. For example you want to do change something when a dialog is ready for user input.  
 
UNO awt provides a GUI based uno API for OpenOffice.org developer. Sometimes it's necessary that an implementation is called by OpenOffice.org at a later time to do certain tasks. Sometimes this is also bound to GUI library actions which must be completed before another request can be processed. For example you want to do change something when a dialog is ready for user input.  
  
''ATTENTION: The asynchronous callback service can only work when VCL has been correctly initialized by OpenOffice.org and the message loop is running.''
+
'''ATTENTION: The asynchronous callback service can only work when VCL has been correctly initialized by OpenOffice.org and the message loop is running.'''
  
 
<code>[cpp]
 
<code>[cpp]

Revision as of 10:44, 2 November 2007

Asynchronous callback service

UNO awt provides a GUI based uno API for OpenOffice.org developer. Sometimes it's necessary that an implementation is called by OpenOffice.org at a later time to do certain tasks. Sometimes this is also bound to GUI library actions which must be completed before another request can be processed. For example you want to do change something when a dialog is ready for user input.

ATTENTION: The asynchronous callback service can only work when VCL has been correctly initialized by OpenOffice.org and the message loop is running.

[cpp]

  1. ifndef __com_sun_star_awt_XCallback_idl__
  2. define __com_sun_star_awt_XCallback_idl__
  1. ifndef __com_sun_star_uno_XInterface_idl__
  2. include <com/sun/star/uno/XInterface.idl>
  3. endif

//=============================================================================

module com { module sun { module star { module awt {

//=============================================================================

/** specifices an interface which can be used to call back

   an implementation
*/

interface XCallback { //-------------------------------------------------------------------------

/** notifies the callback implementation

       @param aData

private data which was provided when the callback was requested. */

   void notify( [in] any aData );

};

//=============================================================================

}; }; }; };

  1. endif

[cpp]

  1. ifndef __com_sun_star_awt_XRequestCallback_idl__
  2. define __com_sun_star_awt_XRequestCallback_idl__
  1. ifndef __com_sun_star_awt_XCallback_idl__
  2. include <com/sun/star/awt/XCallback.idl>
  3. endif

//=============================================================================

module com { module sun { module star { module awt {

//=============================================================================

/** specifices an interface which can be used to call back

   an implementation
*/

interface XRequestCallback { //-------------------------------------------------------------------------

/** adds a callback request to the implementation

       @param aData

any private data which will be provided to the callback implementation.

       @param xCallback

a reference to the callback which should be called by the implementation

       of this interface.
   */
   void addCallback( [in] XCallback xCallback, [in] any aData );

};

//=============================================================================

}; }; }; };

  1. endif

[cpp]

  1. ifndef __com_sun_star_awt_AsyncCallback_idl__
  2. define __com_sun_star_awt_AsyncCallback_idl__
  1. ifndef __com_sun_star_awt_XRequestCallback_idl__
  2. include <com/sun/star/awt/XRequestCallback.idl>
  3. endif

module com { module sun { module star { module awt {

//============================================================================ /** An implementation which uses the message queue to call the

   callback implementation asynchronously.
   @see XRequestCallback
*/

service AsyncCallback: XRequestCallback;

}; }; }; };

  1. endif

Personal tools