ANNOUNCE libmsgque 3.5, ANNOUNCE (P)rogramming (L)anguage (M)icro(K)ernel 1.0

Andreas Otto aotto1968 at
Fri Sep 25 17:14:06 CEST 2009

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 

  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 
  1.  In "C++" a constructor can not call a "virtual" method. This is the 
      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 "-
    -> This support the "Windows" binary design on Linux to create faster
- 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
- 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 
programming is done using the hosting programming language *only*.

       -> libmsgque is the first component of the PLMK framework <-


  read more at:
  get the software from:
  subversion archive:



More information about the Python-list mailing list