Dear Users;
this is the ANNOUNCEMENT of: libmsgque 3.5 and the *first* public ANNOUNCEMENT of the: (P)rogramming (L)anguage (M)icro(K)ernel 1.0 libmsgque 3.5 ============= LibMsgque is an OS independent, programming language independent, and hardware independent solution to link applications together to act like a single application. In other words, LibMsgque is an application-server toolkit. changes from libmsgque 3.5 ======================= - Add new programming language "C++" : The new language is added if the "--enable-cxx" configure switch is used. - C++ add a new design pattern to libmsgque based on the language requirements: 1. In "C++" a constructor can not call a "virtual" method. This is the main difference between "C++" and "C#" or "JAVA". This require that "Object" creation/deletion and "Link" creation/deletion have to be separated into two different tasks. The former (C# and JAVA) implementation was to use a "feature-rich" constructor to setup a "Link" during object creation. This was changed. A new methods "LinkCreate(..)" and "LinkCreateChild(..)" were introduced for "Link" setup as counterpart for the "LinkDelete()" method. A new method "ConfigGetIsConnected()" return the "Link-Status" of the Object-Instance. With the new "Pattern" it is now possible to "reuse" a object-instance. 2. In "C++" a RTTI based Object-Creation is not possible. This task was shifted into a "Factory" pattern. A "virtual" method called: "virtual MqC* Factory() const" is used to return a new object instance of the top-most class. The "Factory" pattern was used as "default" design pattern because of: - far more easy as the RTTI design pattern - available for every programming language - change the default visibility for GCC functions to hidden "- fvisibility=hidden". -> This support the "Windows" binary design on Linux to create faster code. - redesign of the main "struct MqS" and delete many of the data pointers -> create smarter and faster code -> only *one* pointer is used to used the entire API - the "Filter" mode was redesigned and is using the "Master/Slave" pattern -> code cleanup and standardization -> the IFilterFTR / IFilterEOF does now support a "pipelining" as "default" - the "Error" handling was redesigned and moved into an independent "object" or "class". This was necessary to "transport" an "error" through the error stack of the "embedded" programming language. (P)rogramming (L)anguage (M)icro(K)ernel 1.0 ==================================== JAVA says: "YOU can do whatever YOU want on every os YOU require but YOU have to use JAVA" C# says: "YOU can do whatever YOU want on every os YOU require but YOU have to have to use a CLR compatible language" I say: "YOU can do whatever YOU want on every os YOU require using the programming language YOU like most but YOU have to use the PLMK design pattern" The PLMK is an afford to shift the design responsible away from the very heteros group of language designers to a free open and mature framework called PLMK. This framework is available for C, C++, C#, JAVA, PYTHON and TCL and was designed as C/C++ shared library. The library is able to plugin into the hosting programming language to take-over the responsibly for the application design. PLMK is *not* a programming language, the software programming is done using the hosting programming language *only*. -> libmsgque is the first component of the PLMK framework <- GET IT ======== read more at: http://libmsgque.sourceforge.net/ get the software from: http://sourceforge.net/projects/libmsgque/ subversion archive: https://libmsgque.svn.sourceforge.net/svnroot/ /libmsgque/tags/libmsgque-3.5/ mfg aotto1968 -- http://mail.python.org/mailman/listinfo/python-list