× 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.


  • Subject: RE: OO in RPG
  • From: Scott Klement <klemscot@xxxxxxxxxxxx>
  • Date: Mon, 4 Dec 2000 23:51:13 -0600 (CST)


The address of the procedure doesn't need to be known at compile time, 
it needs to be known at bind time. :)

The difference is subtle, but its useful.  In particular, I have service 
programs that get data and need to write it somewhere, but depending on
the application, where they write it can be different.  So I pass them
procedure pointers, and they call the given procedure to write the data.

If I want to write it to a stream file, for example, I can pass the
address of the IFS "write" procedure.  Similarly, I can provide my own
procedure, in the same format as "write", if I want to do something else
with it. 

I don't need these to be "truly dynamic", and I appreciate the speed
improvement that binding them gives me -- but at the same time, I don't
want to recompile the service program for every new application that uses
the routines -- and this is why its important that the addresses are
resolved at bind time.

Make sense?


On Tue, 5 Dec 2000, Peter Connell wrote:

> Jon has already alluded to the fact that the standard use procedure pointers
> only gives the illusion of dynamic procedure calls. In other words the
> procedure call is dynamic only in the sense that it points to a procedure
> whose address was resolved at compile time or when the program was activated
> in the case of a service pgm, unlike the old dynamic calls that are resolved
> only at runtime. It means that you can benefit by coding a call using a
> procedure pointer but you still have to include code that initializes all
> the pointers by assigning them the address of the corresponding procedure.
> So you are in effect still hard coding all the procedure calls.
> 
> To obtain a truly dynamic procedure call that is not known at compile time
> you must you the special API's that permit you to force the activation of a
> service pgm and provide access to the procedures within.
> 
> Cheers, Peter
> 

+---
| 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 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.