A
Andreas Otto
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
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