× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



On Thu, 20 Feb 2003, Bartell, Aaron L. (TC) wrote:
>
> Could somebody point me to some documentation on how Call Backs work in the
> ILE environment?  I found references to it in the IBM Redbooks when they
> talk about qsort and other C API's but they didn't really layout how it all
> works under the covers.
>

I'm not really sure what type of answer you're looking for...   All it
does is call the procedure that you've passed as a parameter.

Here's sample code that demonstrates callbacks from both the APIs point
of view and your point of view...   it's really simple code, but maybe
will illustrate how they work:

     H DFTACTGRP(*NO)

     D DsplyNum        PR
     D    DspTxt                     50A   const
     D StatusNum       PR
     D    DspTxt                     50A   const
     D Counter         PR
     D    Callback                     *   value procptr

     c                   callp     Counter(%PADDR('DSPLYNUM'))
     c                   callp     Counter(%PADDR('STATUSNUM'))

     c                   eval      *inlr = *on
     c                   return


      *++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
      * This is a sample procedure to demonstate how you "call-back"
      * another procedure.
      *
      * All it does is count from 1-5, one count per second, and then
      * pass the text 'Count is XXXXXXXXXX' to the callback proc
      *
      *++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     P Counter         B
     D Counter         PI
     D    Callback                     *   value procptr
     D my_callback     PR                  ExtProc(Callback)
     D   text                        50A   const
     D qcmdexc         PR                  ExtPgm('QCMDEXC')
     D   cmd                        200A   const
     D   length                      15P 5 const
     D x               s             10I 0
     c                   for       x = 1 to 5
     c                   callp     qcmdexc('DLYJOB DLY(1)': 200)
     c                   callp     my_callback('Count is ' + %editc(x:'X'))
     c                   endfor
     P                 E


      *++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
      * This is a callback proc that just DSPLY's the message passed
      * to it.
      *++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     P DsplyNum        B
     D DsplyNum        PI
     D    DspTxt                     50A   const
     c     DspTxt        dsply
     P                 E


      *++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
      * This is a callback proc that displays the message passed to it
      * as a status message
      *++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     P StatusNum       B
     D StatusNum       PI
     D    MsgTxt                     50A   const

     D SndPgmMsg       PR                  ExtPgm('QMHSNDPM')
     D   MessageID                    7A   Const
     D   QualMsgF                    20A   Const
     D   MsgData                    256A   Const
     D   MsgDtaLen                   10I 0 Const
     D   MsgType                     10A   Const
     D   CallStkEnt                  10A   Const
     D   CallStkCnt                  10I 0 Const
     D   MessageKey                   4A
     D   ErrorCode                    1A

     D dsEC            DS
     D  dsECBytesP             1      4I 0 inz(0)

     D MsgKey          S              4A

     c                   callp     SndPgmMsg('CPF9897': 'QCPFMSG   *LIBL':
     c                               MsgTxt: %size(MsgTxt): '*STATUS':
     c                               '*EXT': 0: MsgKey: dsEC)

     P                 E


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.