|
Just my opinion. Returning data structures with addresses of procedures seem
really ugly. Add a new procedure and new data structure.
Seems service program are designed to do exactly what you want. Expose
multiple procedures and I can add new procedures at anytime. I have the
QLEACTBNDPGM api in a service program so nothing to loading the procedure. I
am doing it all over the place.
/copy *libl/qsrcf,xvdynl_pr
d pptrCallProcedure...
d s Like(StdPrcPtr)
d CallProcedure...
d pr ExtProc(pptrCallProcedure)
d PR_DataString...
d 32767a Varying
d pptrTriggerProcedure...
d s Like(StdPrcPtr)
// If not loaded before, load the service program.
If Not ProgramLoaded;
pptrTriggerProcedure =
DYNL_LoadServiceProgramProcedure(ServiceProgramName :
ServiceProgramLibrary:
ServiceProcedure );
// Call the procedure to handle this message.
pptrCallProcedure = pptrTriggerProcedure;
Monitor;
CallProcedure(SendData);
On-Error;
On Wed, Apr 7, 2010 at 1:21 PM, Scott Klement<rpg400-l@xxxxxxxxxxxxxxxx>wrote:
Service programs can do the same thing -- though it's a little more
complex. I've used service programs as well.
But I don't know why you said they'd be "better". Remember, signature
checking isn't going to be done, since the service program library/name
isn't known at compile/bind time. So what does using a service program
gain you?
Using a *PGM means you don't have to resolve a system pointer (using MI
builtins) and call the QleActBndPgm/QleGetExp APIs. Other than
eliminating that bit of extra code, the work is the same...
On 4/7/2010 1:42 PM, Alan Campin wrote:
Sounds like service programs would work better.--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.
As an Amazon Associate we earn from qualifying purchases.
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.