This group will serve as a focal point for discussions, examples, and projects intended to help people utilize the object-oriented language features which became available in OE10.1. The intention is to:
1) Develop established object-oriented design principles in a way that is consistent with a 4GL;
2) Provide OO-based contributions to OERA-compliant architectures; and
3) Assist in the utilization of OO techniques in the context of existing procedural code.
Contributions to this purpose will include white paper discussions, code fragments illustrating techniques, and complete model components to use in building applications.
how can i use VLC player in progress 4gl and is this possible to split 4 or 5 category, and play each and every individual play list?
Hi,
I'm using Progress 10.1c in Linux(ubuntu 10.04) which runs on a Windows machine via VM. The databases are running in Linux as local databases i.e. without specifying any port numbers. How can I access the DB's running on Linux from Windows.
Is i possible at all?
Regards,
Akshay
Following are the UML class diagrams for the proposed implementation.
Note that RelationAttrSetOps will not be included in the initial implementation, but its definition is provided here to indicate where these operations will be implemented when and if they are needed.
iSet Family (click for larger version)
See below for higher resolution PDF.
iAttrSet Family (click for larger version)
Java collection classes have been provided with a fairly rich set of properties and operators, presumably based on the idea that these classes can then be used for a richer range of rôles, just as there are many classes in that same hierarchy which are clearly not intended for relationships at all. In the present implementation, the decision was made to focus on the essentials of object relationships with the idea of creating efficient, low impact infrastructure for OO programming and then to consider later whether there are other classes with other functions which could also be created.
In the 2006 implementation, all collection classes were implemented using temp-tables based on the conclusion that temp-tables were a natural ABL language feature which provided a superset of capabilities needed for collection management. While this approach was effective and simple, since then concern has been raised about performance issues when the number of temp-tables in a session becomes large and about the excessive memory footprint and possibly instantiation penalty when a temp-table is used for a small and simple collection.
Most relationship collections will contain only a handful of elements, but it is possible for a relationship to contain a large number of elements. Therefore, we are concerned with both the memory footprint of a class when it contains a small number of elements and with the performance of that class when it contains a large number of elements. In particular, the 2006 implementation used temp-tables throughout.
In constructing a model hierarchy for these collection classes there are a couple of issues. One is that we want to have an interface for Iterator, which is used in many places, and then an interface which defines the base for each of the two basic types of relationship collections – those with simple elements and those with key/value pairs. If we had inheritance of interfaces (rumored to be coming in OE11.0) we would have the base interface for the type inherit from Iterator and that base interface could be implemented by any class in the hierarchy.
In any ordinary object relationships, one would never have duplicates because it simply makes no sense to have the same object twice on one end of a relationship. Some Java Collection objects enforce this rule and others don’t.
The most common form of relationship collection is ordered only by the order in which elements are added to the collection. The parent using the collection may have added the elements in some special order, but most commonly the order is of no significance because any operation performed on the collection will be performed on all members of the collection and it is thus order is of no significance.
In Object-Oriented programming one object interacts with another object via a relationship, i.e., a direct link between the two objects. When this relationship is one to one, then one object will simply have a reference to the other object. But, if the relationship is one to many, then there is a need for an intermediary structure to hold the references for the many end of the relationship.
While the primary focus of the OERA OSI is service components to implement OERA architectures, any framework also has a need for a library of basic, low level components on which to base other code. Thus, the OERA OSI will include a library of such low level components.
On a programmer mailing list, there was a question about how to call out to a class in C++ from the Progress ABL. The following gives an example of doing so.
First, here is a bit of C++ code that hopefully illustrates a wrapper on how to call out to a class from the Progress interface (explanation follows):
------------ 2.cpp -----------
extern "C" { int TestRoutine () ; } class A { private : int A1; public : int SetA1 (int V) { A1 = V; } int GetA1 () { return A1; } }; // class A int TestRoutine () {
Hi Folks,
I am creating(initiating) multiple threads using Unix/Progress.
What I want is some way to process each thread create some temp-table records and at the end of all the threads I have a master temp-table.
Problem is each thread is a seperate Progress session and kills the temp-table at the end of each session.
Details ......
One main program say xxxx0.P defines a new shared temp-table
And initiates 40 threads (each a different progress session).
It executes program xxxx1.p in each session
xxxx1.p has defines temp-table as shared.
I'm reading Martin Fowler's refactoring and will work out some of his methods (which also apply to building new software) in this blog. Read this to get some background info:
http://sourcemaking.com/refactoring/introduce-parameter-object
http://www.refactoring.com/catalog/introduceParameterObject.html
http://martinfowler.com/ap2/range.html
Below a simple daterangeparameter object, and therebelow a procedure using the daterange object.
This profiler identifies performancebottlenecks in your application by analysing the logfile you create with the log-manager.