|
Hello Barbara,
I haven't yet made up my mind on this. I don't know any HLL that allows those
sorts of
related definitions. My view tends to be that since the API itself enforces
the
parameter requirements omitted parameters from a group will be caught during
Unit Test.
The purpose of the prototype is to ensure that IF a value is passed it is at
least of the
correct type and length. It is the programmer's responsibilty to ensure the
proper
parameters are actually passed. Although it's a good idea, perhaps what we
need is a
Parameter Group tag so we could code:
/if defined(LONG_PROC_NAMES)
QmhSndPgmMsg PR
/else
QMHSNDPM PR
/endif
EXTPGM('QMHSNDPM')
D reqGroup PG
msgId 7 CONST
qualMsgF 20 CONST
msgDta 32767 CONST OPTIONS(*VARSIZE)
msgDtaLen 10I 0 CONST
msgType 10 CONST
D callStkEnt 4102 CONST
D callStkCnt 10I 0 CONST
D msgKey 4
D errCode 1024 OPTIONS(*VARSIZE)
D optGroup1 PG OPTIONS(*NOPASS)
D callStkEntLen 10I 0 CONST
D callStkEntQual...
D 20 CONST
D dspPgmMsgTime 10I 0 CONST
D optGroup12 PG OPTIONS(*NOPASS)
D callStkEntType...
D 10 CONST
D msgDtaCCSID 10I 0 CONST
What say you all?
Regards,
Simon Coulter.
«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»
«» FlyByNight Software AS/400 Technical Specialists «»
«» Eclipse the competition - run your business on an IBM AS/400. «»
«» «»
«» Phone: +61 3 9419 0175 Mobile: +61 0411 091 400 «»
«» Fax: +61 3 9419 0175 mailto: shc@flybynight.com.au «»
«» «»
«» Windoze should not be open at Warp speed. «»
«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»
//--- forwarded letter -------------------------------------------------------
> Date: Tue, 18 Jul 2000 14:07:34 -0400
> From: bmorris@ca.ibm.com
> To: RPG400-L@midrange.com
> Reply-To: RPG400-L@midrange.com
> Subject: How to prototype CL modules
>
> > ...
> >Here is my prototype for the same function. I'd be interested in comments
> and
> >criticism:
> > ...
>
> Simon, since RPG doesn't allow you to group optional parameters (you can't
> code anything to indicate "if parm 10 is coded, parm 11 must be coded
> too"), then for APIs that have this type of optional parameter, I think you
> should create more than one prototype:
>
> D QMHSNDPM PR EXTPGM('QMHSNDPM')
> D msgid 7 CONST
> ... more basic parms
> D errCode 1024 OPTIONS(*VARSIZE)
>
> D QMHSNDPM_opt1 PR EXTPGM('QMHSNDPM')
> D msgid 7 CONST
> ... more basic parms
> D errCode 1024 OPTIONS(*VARSIZE)
> * optional parms group 2 begin here
> D callStkEntLen 10I 0 CONST
> D callStkEntQual...
> D
20 CONST
> D dspPgmMsgTime 10I 0 CONST
>
> D QMHSNDPM_opt2 PR EXTPGM('QMHSNDPM')
> D msgid 7 CONST
> ... more basic parms
> D errCode 1024 OPTIONS(*VARSIZE)
> * optional parms group 1 begin here
> D callStkEntLen 10I 0 CONST
> D callStkEntQual...
> D 20 CONST
> D dspPgmMsgTime 10I 0 CONST
> * optional parms group 2 begin here
> D callStkEntType...
> D 10 CONST
> D msgDtaCCSID 10I 0 CONST
>
> Barbara Morris
+---
| This is the RPG/400 Mailing List!
| To submit a new message, send your mail to RPG400-L@midrange.com.
| To subscribe to this list send email to RPG400-L-SUB@midrange.com.
| To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.