T
Thomas Mercer-Hursh
Guest
.r files are run in the AVM - ABL Virtual Machine. This can happen any of several ways. And ABL client can start Progress and designate a starting program which then calls all other program. Similarly with a batch client. Or, one can be initiated in an AppServer agent, which is an AVM, by a call from any one of a number of client types, including OpenClient where the client process can be Java or .NET. As noted, both procedural .p files and object-oriented .cls files compile to .r. The .p is either just run (and can call other programs in turn) or it can be called persistently. If persistent, then the calling program can execute public (i.e., not private) internal procedures. There are two forms of persistent. The regular one require you to have a handle to the persistent procedure to reference in calling one of its internal procedure. A superprocedure you can just run the IP and it will find the appropriate persistent procedure up the call stack. There are some complicated ways of layering these, but I would avoid that. For a .r from a .cls, it has methods like most OO languages which are public, private, protected like other languages. For a normal class, you must instantiate it and reference those methods via the instance reference. For static methods, you can just reference the name and the instance will be created on the fly if needed, but that instance will never go away until the session holds, so use with caution.
Continue reading...
Continue reading...