Date   

Re: windows/*.h headers file missing in windows build.

Damian Maguire
 

In this instance I believe not - since the main windows folder contains a great large amount of source code, it may also eventually also contain some non-public headers, which wouldn't be considered for part of a release. Specifying each header in the SConscript ensures that a deliberate action is taken to expose the headers (and ensures that major changes aren't required if a non-public header is required later), and limits the possibility that things will fall out accidentally. The other folder being globbed is a different situation, since it should always only contain public headers.

Thanks, 

Damian


On Thu, Aug 28, 2014 at 12:43 PM, Benjamin Taieb <benjamin.taieb@...> wrote:

Hi Damian,

Looked at the diff, wouldn't you do

 

winheaders = Glob('windows/*.h')

 

to be sure to capture any further windows headers ?

Cheers,

Ben.

 

From: Damian Maguire [mailto:damian@...]
Sent: 28 August 2014 10:44
To: Benjamin Taieb
Cc: openmama-dev@...
Subject: Re: [Openmama-dev] windows/*.h headers file missing in windows build.

 

Hey Benjamin, 

 

Thanks for pointing that one out, it does look like a bug with the common SConscript.win. I've pushed out a fix for it into next, if you'd like to give it a look now.

 

Cheers, 

 

Damian

 

On Thu, Aug 28, 2014 at 7:45 AM, Benjamin Taieb <benjamin.taieb@...> wrote:

Hi list,

When comparing the  binaries release

http://www.openmama.org/sites/default/files/openmama_2.3.1_WIN32-dynamic.zip

and what I get through compiling from source, the windows headers file (mman.h anfd lock.h) are not included.

Further investigation show that common\c_cpp\src\c\SConscript.win is missing to install windows headers file.

 

Is that a bug for which I should submit a patch or these headers are not suppose to be in the distribution ?

 

Cheers,

Ben.


_______________________________________________
Openmama-dev mailing list
Openmama-dev@...
https://lists.openmama.org/mailman/listinfo/openmama-dev

 



Re: windows/*.h headers file missing in windows build.

Benjamin Taieb
 

Hi Damian,

Looked at the diff, wouldn't you do

 

winheaders = Glob('windows/*.h')

 

to be sure to capture any further windows headers ?

Cheers,

Ben.

 

From: Damian Maguire [mailto:damian@...]
Sent: 28 August 2014 10:44
To: Benjamin Taieb
Cc: openmama-dev@...
Subject: Re: [Openmama-dev] windows/*.h headers file missing in windows build.

 

Hey Benjamin, 

 

Thanks for pointing that one out, it does look like a bug with the common SConscript.win. I've pushed out a fix for it into next, if you'd like to give it a look now.

 

Cheers, 

 

Damian

 

On Thu, Aug 28, 2014 at 7:45 AM, Benjamin Taieb <benjamin.taieb@...> wrote:

Hi list,

When comparing the  binaries release

http://www.openmama.org/sites/default/files/openmama_2.3.1_WIN32-dynamic.zip

and what I get through compiling from source, the windows headers file (mman.h anfd lock.h) are not included.

Further investigation show that common\c_cpp\src\c\SConscript.win is missing to install windows headers file.

 

Is that a bug for which I should submit a patch or these headers are not suppose to be in the distribution ?

 

Cheers,

Ben.


_______________________________________________
Openmama-dev mailing list
Openmama-dev@...
https://lists.openmama.org/mailman/listinfo/openmama-dev

 


Re: windows/*.h headers file missing in windows build.

Damian Maguire
 

Hey Benjamin, 

Thanks for pointing that one out, it does look like a bug with the common SConscript.win. I've pushed out a fix for it into next, if you'd like to give it a look now.

Cheers, 

Damian


On Thu, Aug 28, 2014 at 7:45 AM, Benjamin Taieb <benjamin.taieb@...> wrote:

Hi list,

When comparing the  binaries release

http://www.openmama.org/sites/default/files/openmama_2.3.1_WIN32-dynamic.zip

and what I get through compiling from source, the windows headers file (mman.h anfd lock.h) are not included.

Further investigation show that common\c_cpp\src\c\SConscript.win is missing to install windows headers file.

 

Is that a bug for which I should submit a patch or these headers are not suppose to be in the distribution ?

 

Cheers,

Ben.


_______________________________________________
Openmama-dev mailing list
Openmama-dev@...
https://lists.openmama.org/mailman/listinfo/openmama-dev



windows/*.h headers file missing in windows build.

Benjamin Taieb
 

Hi list,

When comparing the  binaries release

http://www.openmama.org/sites/default/files/openmama_2.3.1_WIN32-dynamic.zip

and what I get through compiling from source, the windows headers file (mman.h anfd lock.h) are not included.

Further investigation show that common\c_cpp\src\c\SConscript.win is missing to install windows headers file.

 

Is that a bug for which I should submit a patch or these headers are not suppose to be in the distribution ?

 

Cheers,

Ben.


[PATCH] Modification to playbackFileparser.c

Adrienne Ambrose <AAmbrose@...>
 

TESTING:-

No middleware dependencies.

No O/S dependencies.

 

Problem:-

Currently this will create a msg using the default payload rather than the payload in the file.

To expose this create a file using qpid msg then try to load wih default payload set to avis msg.

 

The below patch will resolve this issue.

 

 

PATCH:- 0001-Modification-to-playbackFileParser.c

From 0c0938fd90243753feb8997f306545c7551c51b1 Mon Sep 17 00:00:00 2001

From: A Ambrose <aambrose@...>

Date: Mon, 25 Aug 2014 12:10:26 +0100

Subject: [PATCH] Modification to playbackFileParser.c

Currently this will create a msg using the default payload rather than the

payload in the file.

 

[OMAMA-283]

Signed-off-by: A Ambrose <aambrose@...>

---

mama/c_cpp/src/c/playback/playbackFileParser.c |    2 +-

1 files changed, 1 insertions(+), 1 deletions(-)

 

diff --git a/mama/c_cpp/src/c/playback/playbackFileParser.c b/mama/c_cpp/src/c/playback/playbackFileParser.c

index c8f1717..0f2849c 100644

--- a/mama/c_cpp/src/c/playback/playbackFileParser.c

+++ b/mama/c_cpp/src/c/playback/playbackFileParser.c

@@ -79,6 +79,7 @@ mama_status mamaPlaybackFileParser_init (mamaPlaybackFileParser

     impl->myMamaMsgLen  = 0;

     impl->myMaxMsgLen   = 0;

     impl->myMsgBuffer   = NULL;

+    impl->myMamaMsg    = NULL;

     return MAMA_STATUS_OK;

}

@@ -98,7 +99,6 @@ mamaPlaybackFileParser_allocate (mamaPlaybackFileParser* fileParser)

     {

         return MAMA_STATUS_NOMEM;

     }

-              mamaMsg_create(&impl->myMamaMsg);

     mamaPlaybackFileParser_init (impl);

     *fileParser = (mamaPlaybackFileParserImpl*)impl;

--

1.7.1

 


This message may contain confidential information and is intended for specific recipients unless explicitly noted otherwise. If you have reason to believe you are not an intended recipient of this message, please delete it and notify the sender. This message may not represent the opinion of Intercontinental Exchange, Inc. (ICE), Euronext or any of their subsidiaries or affiliates, and does not constitute a contract or guarantee. Unencrypted electronic mail is not secure and the recipient of this message is expected to provide safeguards from viruses and pursue alternate means of communication where privacy or a binding message is desired.


[PATCH] mama & mamda apps do not flush data to log

Adrienne Ambrose <AAmbrose@...>
 

TESTING:-

Not O/S or middleware specific. 
Checked  example apps, all languages & on different middlewares to confirm that data is now flushed when redirected to file.
Specifically:-

1. mamapublisherc / mamapublishercpp
2. mamasubscriberc / mamasubscribercpp
3. mamainboxc / mamainboxcpp
4. mamaftmemberc / mamaftmembercpp

 

PATCH:- 0003-Mama-Mamda-apps-do-not-flush-data-to-log

From 519e59b5d03f4782a6c134db68c4853620e1e13c Mon Sep 17 00:00:00 2001

From: A Ambrose <aambrose@...>

Date: Thu, 21 Aug 2014 14:06:51 +0100

Subject: [PATCH 3/3] Mama & Mamda apps do not flush data to log

 

Modification to the mama & mamda example applications to flush data when logged to file.

All languages, C, C++, C# & Java.

[OMAMA-278/OMAMA-279]

Signed-off-by: A Ambrose <aambrose@...>

---

mama/c_cpp/src/examples/c/mamaftmemberc.c          |    3 +++

mama/c_cpp/src/examples/c/mamainboxc.c             |    2 ++

mama/c_cpp/src/examples/c/mamaio.c                 |    2 ++

mama/c_cpp/src/examples/c/mamalistenc.c            |    1 +

mama/c_cpp/src/examples/c/mamalistencachedc.c      |    1 +

mama/c_cpp/src/examples/c/mamamultisubscriberc.c   |    2 ++

mama/c_cpp/src/examples/c/mamaproxyc.c             |    2 ++

mama/c_cpp/src/examples/c/mamapublisherc.c         |    2 ++

mama/c_cpp/src/examples/c/mamasubscriberc.c        |    2 ++

.../src/examples/c/mamasymbollistsubscriberc.c     |    1 +

mama/c_cpp/src/examples/cpp/mamaentitlecpp.cpp     |    1 +

mama/c_cpp/src/examples/cpp/mamaftmembercpp.cpp    |    2 ++

mama/c_cpp/src/examples/cpp/mamainboxcpp.cpp       |    2 ++

mama/c_cpp/src/examples/cpp/mamaiocpp.cpp          |    2 ++

.../c_cpp/src/examples/cpp/mamalistencachedcpp.cpp |    1 +

mama/c_cpp/src/examples/cpp/mamalistencpp.cpp      |    1 +

.../c_cpp/src/examples/cpp/mamamsgpublishercpp.cpp |    2 ++

mama/c_cpp/src/examples/cpp/mamaproxycpp.cpp       |    2 ++

mama/c_cpp/src/examples/cpp/mamapublishercpp.cpp   |    2 ++

mama/c_cpp/src/examples/cpp/mamasubscribercpp.cpp  |    2 ++

.../examples/cpp/mamasymbollistsubscribercpp.cpp   |    2 ++

.../MamaMultiSubscriber/MamaMultiSubscriberCS.cs   |    1 +

.../examples/MamaSubscriber/MamaSubscriberCS.cs    |    1 +

.../src/com/wombat/mama/examples/MamaListen.java   |    3 +++

.../wombat/mama/examples/MamaSubscriberJava.java   |    1 +

mamda/c_cpp/src/examples/auctionticker.cpp         |    2 ++

mamda/c_cpp/src/examples/comboticker.cpp           |    2 ++

mamda/c_cpp/src/examples/currencyticker.cpp        |    2 ++

mamda/c_cpp/src/examples/fundamentallisten.cpp     |    2 ++

mamda/c_cpp/src/examples/mamdalisten.cpp           |    2 ++

mamda/c_cpp/src/examples/mamdapublisher.cpp        |    1 +

mamda/c_cpp/src/examples/multipartticker.cpp       |    2 ++

mamda/c_cpp/src/examples/multisecurityticker.cpp   |    2 ++

mamda/c_cpp/src/examples/news/newsticker.cpp       |    2 ++

mamda/c_cpp/src/examples/optionchainer.cpp         |    2 ++

mamda/c_cpp/src/examples/optionview.cpp            |    2 ++

.../src/examples/orderbooks/atomicbookbuilder.cpp  |    2 ++

.../src/examples/orderbooks/atomicbookticker.cpp   |    3 ++-

mamda/c_cpp/src/examples/orderbooks/bookchurn.cpp  |    2 ++

.../src/examples/orderbooks/bookpublisher.cpp      |    1 +

mamda/c_cpp/src/examples/orderbooks/bookticker.cpp |    1 +

mamda/c_cpp/src/examples/orderbooks/bookviewer.cpp |    2 ++

.../examples/orderbooks/listenerBookPublisher.cpp  |    1 +

.../src/examples/orderbooks/test/bookiters.cpp     |    2 ++

.../src/examples/orderbooks/test/bookselftest.cpp  |    2 ++

.../src/examples/orderbooks/test/randomaccess.cpp  |    3 ++-

mamda/c_cpp/src/examples/orderimbalanceticker.cpp  |    2 ++

mamda/c_cpp/src/examples/quoteticker.cpp           |    2 ++

mamda/c_cpp/src/examples/secstatuslisten.cpp       |    2 ++

mamda/c_cpp/src/examples/tradeticker.cpp           |    2 ++

.../examples/MamdaBookTicker/MamdaBookTicker.cs    |    3 +++

.../MamdaExamplesCommon/CommandLineProcessor.cs    |    1 +

.../MamdaOptionChainExample.cs                     |    2 ++

.../mamda/examples/CommandLineProcessor.java       |    1 +

.../mamda/examples/MamdaAtomicBookBuilder.java     |    4 ++++

.../mamda/examples/MamdaAtomicBookTicker.java      |    1 +

.../com/wombat/mamda/examples/MamdaBookTicker.java |    6 ++++++

.../com/wombat/mamda/examples/MamdaListen.java     |    1 +

.../mamda/examples/MamdaOptionChainExample.java    |    2 ++

.../mamda/examples/MamdaOrderImbalanceTicker.java  |    1 +

60 files changed, 111 insertions(+), 2 deletions(-)

 

diff --git a/mama/c_cpp/src/examples/c/mamaftmemberc.c b/mama/c_cpp/src/examples/c/mamaftmemberc.c

index 40576ce..d5d6f1a 100644

--- a/mama/c_cpp/src/examples/c/mamaftmemberc.c

+++ b/mama/c_cpp/src/examples/c/mamaftmemberc.c

@@ -21,6 +21,7 @@

 #include "mama/mama.h"

#include "string.h"

+#include <stdio.h>

 static mamaTransport    gTransport     = NULL;

static mamaFtMember     gFtMember      = NULL;

@@ -72,6 +73,8 @@ static void MAMACALLTYPE onFtStateChangeCb (mamaFtMember  ftMember,

 int main (int argc, const char** argv)

{

+    setbuf (stdout, NULL);

+

     parseCommandLine (argc, argv);

     initializeMama ();

diff --git a/mama/c_cpp/src/examples/c/mamainboxc.c b/mama/c_cpp/src/examples/c/mamainboxc.c

index a1ebf99..4a1275e 100644

--- a/mama/c_cpp/src/examples/c/mamainboxc.c

+++ b/mama/c_cpp/src/examples/c/mamainboxc.c

@@ -22,6 +22,7 @@

#include "wombat/port.h"

#include "mama/mama.h"

#include "string.h"

+#include <stdio.h>

 static mamaTransport    gTransport    = NULL;

static mamaInbox        gInbox        = NULL;

@@ -94,6 +95,7 @@ static void createIntervalTimer (void)

 int main (int argc, const char** argv)

{

+    setbuf (stdout, NULL);

     parseCommandLine(argc, argv);

     initializeMama ();

diff --git a/mama/c_cpp/src/examples/c/mamaio.c b/mama/c_cpp/src/examples/c/mamaio.c

index 2f6a9d6..d092ad3 100644

--- a/mama/c_cpp/src/examples/c/mamaio.c

+++ b/mama/c_cpp/src/examples/c/mamaio.c

@@ -34,6 +34,7 @@

#include <sys/types.h>

#include <errno.h>

#include <string.h>

+#include <stdio.h>

 #include "mama/mama.h"

#include "mama/io.h"

@@ -57,6 +58,7 @@ ioCallback          (mamaIo io, mamaIoType ioType, void *closure);

 int main (int argc, const char **argv)

{

+    setbuf (stdout, NULL);

     parseCommandLine (argc, argv);

     initializeMama ();

diff --git a/mama/c_cpp/src/examples/c/mamalistenc.c b/mama/c_cpp/src/examples/c/mamalistenc.c

index 223746b..6e59e40 100644

--- a/mama/c_cpp/src/examples/c/mamalistenc.c

+++ b/mama/c_cpp/src/examples/c/mamalistenc.c

@@ -322,6 +322,7 @@ int main (int argc, const char **argv)

     gSubscriptionList = (mamaSubscription*)calloc (MAX_SUBSCRIPTIONS,

                                                    sizeof (mamaSubscription));

+    setbuf (stdout, NULL);

     parseCommandLine (argc, argv);

     if (gNumSymbols == 0 && !gPrintVersionAndExit)

diff --git a/mama/c_cpp/src/examples/c/mamalistencachedc.c b/mama/c_cpp/src/examples/c/mamalistencachedc.c

index 8d683b9..db6d3ee 100644

--- a/mama/c_cpp/src/examples/c/mamalistencachedc.c

+++ b/mama/c_cpp/src/examples/c/mamalistencachedc.c

@@ -323,6 +323,7 @@ int main (int argc, const char **argv)

     gSubscriptionList = (mamaSubscription*)calloc (MAX_SUBSCRIPTIONS,

                                                    sizeof (mamaSubscription));

+    setbuf (stdout, NULL);

     parseCommandLine (argc, argv);

     if (gNumSymbols == 0 && !gPrintVersionAndExit)

diff --git a/mama/c_cpp/src/examples/c/mamamultisubscriberc.c b/mama/c_cpp/src/examples/c/mamamultisubscriberc.c

index 8282650..85688f0 100644

--- a/mama/c_cpp/src/examples/c/mamamultisubscriberc.c

+++ b/mama/c_cpp/src/examples/c/mamamultisubscriberc.c

@@ -21,6 +21,7 @@

 #include "mama/mama.h"

#include "string.h"

+#include <stdio.h>

#define MAX_BRIDGES 10

 static const char *     gTopic              = "MAMA_TOPIC";

@@ -86,6 +87,7 @@ msgCb (mamaSubscription       subscription,

 int main (int argc, const char** argv)

{

+    setbuf (stdout, NULL);

     gMamaMiddlewares = (const char**)

                        calloc (MAX_BRIDGES, sizeof (char*));

     gMamaBridges     = (mamaBridge*)

diff --git a/mama/c_cpp/src/examples/c/mamaproxyc.c b/mama/c_cpp/src/examples/c/mamaproxyc.c

index 40ebbb5..988c96b 100644

--- a/mama/c_cpp/src/examples/c/mamaproxyc.c

+++ b/mama/c_cpp/src/examples/c/mamaproxyc.c

@@ -28,6 +28,7 @@

#include "mama/dqpublisher.h"

#include "mama/dqpublishermanager.h"

#include "string.h"

+#include <stdio.h>

 static const char *  gUsageString[] =

{

@@ -285,6 +286,7 @@ syncCallback (mamaTimer timer, void* closure)

int main (int argc, const char **argv)

{

+    setbuf (stdout, NULL);

     gSymbolList = (const char**)calloc (MAX_SUBSCRIPTIONS, sizeof (char*));

     parseCommandLine (argc, argv);

diff --git a/mama/c_cpp/src/examples/c/mamapublisherc.c b/mama/c_cpp/src/examples/c/mamapublisherc.c

index 87e4657..02128fa 100644

--- a/mama/c_cpp/src/examples/c/mamapublisherc.c

+++ b/mama/c_cpp/src/examples/c/mamapublisherc.c

@@ -23,6 +23,7 @@

 #include "mama/mama.h"

#include "string.h"

+#include <stdio.h>

 static mamaTransport    gTransport      = NULL;

static mamaTimer        gTimer          = NULL;

@@ -87,6 +88,7 @@ static void usage               (int exitStatus);

 int main (int argc, const char **argv)

{

+    setbuf (stdout, NULL);

     parseCommandLine (argc, argv);

     initializeMama ();

diff --git a/mama/c_cpp/src/examples/c/mamasubscriberc.c b/mama/c_cpp/src/examples/c/mamasubscriberc.c

index e41dfc7..dec55e2 100644

--- a/mama/c_cpp/src/examples/c/mamasubscriberc.c

+++ b/mama/c_cpp/src/examples/c/mamasubscriberc.c

@@ -21,6 +21,7 @@

 #include "mama/mama.h"

#include "string.h"

+#include <stdio.h>

 static mamaTransport    gTransport     = NULL;

static mamaSubscription gSubscription  = NULL;

@@ -95,6 +96,7 @@ static void usage (int  exitStatus);

 int main (int argc, const char** argv)

{

+    setbuf (stdout, NULL);

     parseCommandLine (argc, argv);

     initializeMama ();

diff --git a/mama/c_cpp/src/examples/c/mamasymbollistsubscriberc.c b/mama/c_cpp/src/examples/c/mamasymbollistsubscriberc.c

index 6067146..8ffbc60 100644

--- a/mama/c_cpp/src/examples/c/mamasymbollistsubscriberc.c

+++ b/mama/c_cpp/src/examples/c/mamasymbollistsubscriberc.c

@@ -158,6 +158,7 @@ int main (int argc, const char **argv)

                                                    sizeof (mamaSubscription));

 

+    setbuf (stdout, NULL);

     memset(&symbolListCallbacks, 0, sizeof(symbolListCallbacks));

     symbolListCallbacks.onMsg          = symbolListSubscriptionOnMsg;

     symbolListCallbacks.onCreate       = symbolListSubscriptionOnCreate;

diff --git a/mama/c_cpp/src/examples/cpp/mamaentitlecpp.cpp b/mama/c_cpp/src/examples/cpp/mamaentitlecpp.cpp

index 451d414..524492b 100644

--- a/mama/c_cpp/src/examples/cpp/mamaentitlecpp.cpp

+++ b/mama/c_cpp/src/examples/cpp/mamaentitlecpp.cpp

@@ -1009,6 +1009,7 @@ void MamaEntitle::unsubscribeFromSymbols (void)

int main (int argc, const char** argv)

{

     MamaEntitle  mMamaEntitle;

+    setbuf (stdout, NULL);

     mMamaEntitle.parseCommandLine (argc, argv);

     if (mMamaEntitle.hasSymbols ())

diff --git a/mama/c_cpp/src/examples/cpp/mamaftmembercpp.cpp b/mama/c_cpp/src/examples/cpp/mamaftmembercpp.cpp

index 498fbf2..9c9af9c 100644

--- a/mama/c_cpp/src/examples/cpp/mamaftmembercpp.cpp

+++ b/mama/c_cpp/src/examples/cpp/mamaftmembercpp.cpp

@@ -25,6 +25,7 @@

#include <mama/log.h>

#include <iostream>

#include <stdlib.h>

+#include <stdio.h>

 using namespace Wombat;

using namespace std;

@@ -77,6 +78,7 @@ private:

  *****************************************************************************/

int main (int argc, const char** argv)

{

+    setbuf (stdout, NULL);

     try

     {

         FtMemberDemo ftDemo;

diff --git a/mama/c_cpp/src/examples/cpp/mamainboxcpp.cpp b/mama/c_cpp/src/examples/cpp/mamainboxcpp.cpp

index c60c426..77d6c70 100644

--- a/mama/c_cpp/src/examples/cpp/mamainboxcpp.cpp

+++ b/mama/c_cpp/src/examples/cpp/mamainboxcpp.cpp

@@ -39,6 +39,7 @@ using std::cerr;

using std::cout;

using std::endl;

+#include <stdio.h>

#include "mama/mama.h"

#include "mama/mamacpp.h"

@@ -64,6 +65,7 @@ static void sendRequest         (void);

int main (int argc, const char **argv)

{

     int i = 0;

+    setbuf (stdout, NULL);

     parseCommandLine (argc, argv);

     initializeMama ();

diff --git a/mama/c_cpp/src/examples/cpp/mamaiocpp.cpp b/mama/c_cpp/src/examples/cpp/mamaiocpp.cpp

index 54cf14c..c38d141 100644

--- a/mama/c_cpp/src/examples/cpp/mamaiocpp.cpp

+++ b/mama/c_cpp/src/examples/cpp/mamaiocpp.cpp

@@ -37,6 +37,7 @@

#include "wombat/port.h"

#include <iostream>

#include <errno.h>

+#include <stdio.h>

 using std::cerr;

using std::cout;

@@ -65,6 +66,7 @@ static void createIOHandlers    (void);

 int main (int argc, const char **argv)

{

+    setbuf (stdout, NULL);

     parseCommandLine (argc, argv);

     initializeMama ();

diff --git a/mama/c_cpp/src/examples/cpp/mamalistencachedcpp.cpp b/mama/c_cpp/src/examples/cpp/mamalistencachedcpp.cpp

index b7bd615..23e94b8 100644

--- a/mama/c_cpp/src/examples/cpp/mamalistencachedcpp.cpp

+++ b/mama/c_cpp/src/examples/cpp/mamalistencachedcpp.cpp

@@ -2020,6 +2020,7 @@ void MamaListen::usage (int exitStatus)

int main (int argc, const char** argv)

{

     MamaListen  mMamaListen;

+    setbuf (stdout, NULL);

     mMamaListen.parseCommandLine (argc, argv);

     if (mMamaListen.hasSymbols ())

diff --git a/mama/c_cpp/src/examples/cpp/mamalistencpp.cpp b/mama/c_cpp/src/examples/cpp/mamalistencpp.cpp

index 69c0035..082d00a 100644

--- a/mama/c_cpp/src/examples/cpp/mamalistencpp.cpp

+++ b/mama/c_cpp/src/examples/cpp/mamalistencpp.cpp

@@ -1610,6 +1610,7 @@ void MamaListen::usage (int exitStatus)

int main (int argc, const char** argv)

{

     MamaListen  mMamaListen;

+    setbuf (stdout, NULL);

     try

     {

diff --git a/mama/c_cpp/src/examples/cpp/mamamsgpublishercpp.cpp b/mama/c_cpp/src/examples/cpp/mamamsgpublishercpp.cpp

index 7de86f5..c1a7ae0 100644

--- a/mama/c_cpp/src/examples/cpp/mamamsgpublishercpp.cpp

+++ b/mama/c_cpp/src/examples/cpp/mamamsgpublishercpp.cpp

@@ -19,6 +19,7 @@

  * 02110-1301 USA

  */

+#include <stdio.h>

#include <iostream>

 using std::cerr;

@@ -121,6 +122,7 @@ public:

 int main (int argc, const char **argv)

{

+    setbuf (stdout, NULL);

     parseCommandLine (argc, argv);

     gBridge = Mama::loadBridge (gMiddleware);

     Mama::open ();

diff --git a/mama/c_cpp/src/examples/cpp/mamaproxycpp.cpp b/mama/c_cpp/src/examples/cpp/mamaproxycpp.cpp

index 283382a..bbb311e 100644

--- a/mama/c_cpp/src/examples/cpp/mamaproxycpp.cpp

+++ b/mama/c_cpp/src/examples/cpp/mamaproxycpp.cpp

@@ -40,6 +40,7 @@

 #include "wombat/port.h"

#include <iostream>

+#include <stdio.h>

 #include "mama/mama.h"

#include "mama/mamacpp.h"

@@ -530,6 +531,7 @@ void MamaProxy::shutdownMama ()

int main (int argc, const char **argv)

{

     MamaProxy  mMamaProxy;

+    setbuf (stdout, NULL);

     mMamaProxy.parseCommandLine (argc, argv);

    

     try

diff --git a/mama/c_cpp/src/examples/cpp/mamapublishercpp.cpp b/mama/c_cpp/src/examples/cpp/mamapublishercpp.cpp

index 3d3f29a..c180f2b 100644

--- a/mama/c_cpp/src/examples/cpp/mamapublishercpp.cpp

+++ b/mama/c_cpp/src/examples/cpp/mamapublishercpp.cpp

@@ -39,6 +39,7 @@

  *---------------------------------------------------------------------------*/

 #include <iostream>

+#include <stdio.h>

 #include "mama/mama.h"

#include "mama/mamacpp.h"

@@ -113,6 +114,7 @@ public:

 int main (int argc, const char **argv)

{

+    setbuf (stdout, NULL);

     parseCommandLine (argc, argv);

     gBridge = Mama::loadBridge (gMiddleware);

diff --git a/mama/c_cpp/src/examples/cpp/mamasubscribercpp.cpp b/mama/c_cpp/src/examples/cpp/mamasubscribercpp.cpp

index dda7f97..ef768e4 100644

--- a/mama/c_cpp/src/examples/cpp/mamasubscribercpp.cpp

+++ b/mama/c_cpp/src/examples/cpp/mamasubscribercpp.cpp

@@ -35,6 +35,7 @@

  *---------------------------------------------------------------------------*/

 #include <iostream>

+#include <stdio.h>

 #include "mama/mama.h"

#include "mama/mamacpp.h"

@@ -85,6 +86,7 @@ static void usage                       (int exitStatus);

 int main (int argc, const char**  argv)

{

+    setbuf (stdout, NULL);

     parseCommandLine (argc, argv);

    

     initializeMama ();

diff --git a/mama/c_cpp/src/examples/cpp/mamasymbollistsubscribercpp.cpp b/mama/c_cpp/src/examples/cpp/mamasymbollistsubscribercpp.cpp

index 75ce0e5..774a28c 100644

--- a/mama/c_cpp/src/examples/cpp/mamasymbollistsubscribercpp.cpp

+++ b/mama/c_cpp/src/examples/cpp/mamasymbollistsubscribercpp.cpp

@@ -23,6 +23,7 @@

#include <iostream>

#include <list>

#include <string.h>

+#include <stdio.h>

 #include <mama/mamacpp.h>

@@ -370,6 +371,7 @@ void MamaSymbolListSubscriber::usage (int exitStatus)

int main (int argc, const char** argv)

{

     MamaSymbolListSubscriber mMamaSymbolListSubscriber;

+    setbuf (stdout, NULL);

     mMamaSymbolListSubscriber.parseCommandLine (argc, argv);

    

     try

diff --git a/mama/dotnet/src/examples/MamaMultiSubscriber/MamaMultiSubscriberCS.cs b/mama/dotnet/src/examples/MamaMultiSubscriber/MamaMultiSubscriberCS.cs

index c4f5606..d0a62a5 100644

--- a/mama/dotnet/src/examples/MamaMultiSubscriber/MamaMultiSubscriberCS.cs

+++ b/mama/dotnet/src/examples/MamaMultiSubscriber/MamaMultiSubscriberCS.cs

@@ -238,6 +238,7 @@ namespace Wombat

                                                                                                  Console.WriteLine(String.Format("{0,20}",field.getAsString()));

                                                                                                  break;

                                                                  }

+                   Console.Out.Flush();

                                                  }

        

                                private void displayAllFields(MamaMsg msg)

diff --git a/mama/dotnet/src/examples/MamaSubscriber/MamaSubscriberCS.cs b/mama/dotnet/src/examples/MamaSubscriber/MamaSubscriberCS.cs

index 39c6956..a4d0939 100644

--- a/mama/dotnet/src/examples/MamaSubscriber/MamaSubscriberCS.cs

+++ b/mama/dotnet/src/examples/MamaSubscriber/MamaSubscriberCS.cs

@@ -200,6 +200,7 @@ namespace Wombat

                     Console.WriteLine(String.Format("{0,20}",field.getAsString()));

                     break;

             }

+            Console.Out.Flush();

         }

         

         private void displayAllFields(MamaMsg msg)

diff --git a/mama/jni/src/com/wombat/mama/examples/MamaListen.java b/mama/jni/src/com/wombat/mama/examples/MamaListen.java

index c6aeb7a..e3b0c47 100644

--- a/mama/jni/src/com/wombat/mama/examples/MamaListen.java

+++ b/mama/jni/src/com/wombat/mama/examples/MamaListen.java

@@ -555,6 +555,7 @@ public class MamaListen

             System.err.println ("No subjects specified");

             System.exit (1);

         }

+        System.out.flush();

     }

     private static void print (final String what, final int width)

@@ -573,6 +574,7 @@ public class MamaListen

            

             System.out.print (sb.toString());

         }

+        System.out.flush();

     }

     private static void parseCommandLine (final String[] args)

@@ -1070,6 +1072,7 @@ public class MamaListen

                     System.out.println ("Field not found in message.");

                 }

             }

+            System.out.flush();

         }

         private synchronized void displayAllFields(

diff --git a/mama/jni/src/com/wombat/mama/examples/MamaSubscriberJava.java b/mama/jni/src/com/wombat/mama/examples/MamaSubscriberJava.java

index ad5a3c6..96609af 100644

--- a/mama/jni/src/com/wombat/mama/examples/MamaSubscriberJava.java

+++ b/mama/jni/src/com/wombat/mama/examples/MamaSubscriberJava.java

@@ -340,6 +340,7 @@ public class MamaSubscriberJava

             sb.append(" ");

        

         System.out.print(sb.toString());

+        System.out.flush();

     }

    

     private static class SubscriptionCallback

diff --git a/mamda/c_cpp/src/examples/auctionticker.cpp b/mamda/c_cpp/src/examples/auctionticker.cpp

index 3b0aaa9..d6cff60 100644

--- a/mamda/c_cpp/src/examples/auctionticker.cpp

+++ b/mamda/c_cpp/src/examples/auctionticker.cpp

@@ -32,6 +32,7 @@

#include <iostream>

#include <stdexcept>

#include <vector>

+#include <stdio.h>

#include "parsecmd.h"

#include "mama/MamaQueueGroup.h"

#include "dictrequester.h"

@@ -119,6 +120,7 @@ public:

 int main (int argc, const char **argv)

{

+    setbuf (stdout, NULL);

     try

     {

         CommonCommandLineParser     cmdLine (argc, argv);

diff --git a/mamda/c_cpp/src/examples/comboticker.cpp b/mamda/c_cpp/src/examples/comboticker.cpp

index d6ded8f..399338c 100644

--- a/mamda/c_cpp/src/examples/comboticker.cpp

+++ b/mamda/c_cpp/src/examples/comboticker.cpp

@@ -37,6 +37,7 @@

#include <iostream>

#include <stdexcept>

#include <vector>

+#include <stdio.h>

#include "parsecmd.h"

#include "dictrequester.h"

#include <mama/MamaQueueGroup.h>

@@ -351,6 +352,7 @@ private:

 int main (int argc, const char **argv)

{

+    setbuf (stdout, NULL);

     try

     {

        

diff --git a/mamda/c_cpp/src/examples/currencyticker.cpp b/mamda/c_cpp/src/examples/currencyticker.cpp

index 88534d1..8f98682 100644

--- a/mamda/c_cpp/src/examples/currencyticker.cpp

+++ b/mamda/c_cpp/src/examples/currencyticker.cpp

@@ -31,6 +31,7 @@

#include <iostream>

#include <stdexcept>

#include <vector>

+#include <stdio.h>

#include "parsecmd.h"

#include "mama/MamaQueueGroup.h"

#include "dictrequester.h"

@@ -110,6 +111,7 @@ public:

 int main (int argc, const char **argv)

{

+    setbuf (stdout, NULL);

     try

     {

         CommonCommandLineParser     cmdLine (argc, argv);

diff --git a/mamda/c_cpp/src/examples/fundamentallisten.cpp b/mamda/c_cpp/src/examples/fundamentallisten.cpp

index a7bb02b..27fb3fe 100644

--- a/mamda/c_cpp/src/examples/fundamentallisten.cpp

+++ b/mamda/c_cpp/src/examples/fundamentallisten.cpp

@@ -29,6 +29,7 @@

#include <iostream>

#include <vector>

#include <stdexcept>

+#include <stdio.h>

#include "parsecmd.h"

#include "dictrequester.h"

#include "mama/MamaQueueGroup.h"

@@ -63,6 +64,7 @@ public:

 int main (int argc, const char **argv)

{

+    setbuf (stdout, NULL);

     try

     {

         // Process some command line arguments:

diff --git a/mamda/c_cpp/src/examples/mamdalisten.cpp b/mamda/c_cpp/src/examples/mamdalisten.cpp

index 943e82a..b8b301d 100644

--- a/mamda/c_cpp/src/examples/mamdalisten.cpp

+++ b/mamda/c_cpp/src/examples/mamdalisten.cpp

@@ -27,6 +27,7 @@

#include <iostream>

#include <stdexcept>

#include <vector>

+#include <stdio.h>

#include "parsecmd.h"

#include "mama/MamaQueueGroup.h"

#include "dictrequester.h"

@@ -82,6 +83,7 @@ private:

 int main (int argc, const char **argv)

{

+    setbuf (stdout, NULL);

     try

     {

         CommonCommandLineParser     cmdLine (argc, argv);

diff --git a/mamda/c_cpp/src/examples/mamdapublisher.cpp b/mamda/c_cpp/src/examples/mamdapublisher.cpp

index 64f80b5..4e90e6b 100644

--- a/mamda/c_cpp/src/examples/mamdapublisher.cpp

+++ b/mamda/c_cpp/src/examples/mamdapublisher.cpp

@@ -162,6 +162,7 @@ private:

 int main (int argc, const char **argv)

{

+    setbuf (stdout, NULL);

     try

     {

         MamdaPublisher* mMamdaPublisher = new MamdaPublisher;

diff --git a/mamda/c_cpp/src/examples/multipartticker.cpp b/mamda/c_cpp/src/examples/multipartticker.cpp

index 3086feb..5be33e1 100644

--- a/mamda/c_cpp/src/examples/multipartticker.cpp

+++ b/mamda/c_cpp/src/examples/multipartticker.cpp

@@ -34,6 +34,7 @@

#include <iostream>

#include <stdexcept>

#include <vector>

+#include <stdio.h>

#include "parsecmd.h"

#include "dictrequester.h"

#include "mama/MamaQueueGroup.h"

@@ -337,6 +338,7 @@ public:

 int main (int argc, const char* argv[])

{

+    setbuf (stdout, NULL);

     try

     {

         CommonCommandLineParser     cmdLine (argc, argv);

diff --git a/mamda/c_cpp/src/examples/multisecurityticker.cpp b/mamda/c_cpp/src/examples/multisecurityticker.cpp

index 0a0fd46..d8f6068 100644

--- a/mamda/c_cpp/src/examples/multisecurityticker.cpp

+++ b/mamda/c_cpp/src/examples/multisecurityticker.cpp

@@ -34,6 +34,7 @@

#include <iostream>

#include <stdexcept>

#include <vector>

+#include <stdio.h>

#include "parsecmd.h"

#include "dictrequester.h"

#include "mama/MamaQueueGroup.h"

@@ -317,6 +318,7 @@ public:

 int main (int argc, const char* argv[])

{

+    setbuf (stdout, NULL);

     try

     {

         // Process some command line arguments:

diff --git a/mamda/c_cpp/src/examples/news/newsticker.cpp b/mamda/c_cpp/src/examples/news/newsticker.cpp

index 3d3ae42..85fd097 100644

--- a/mamda/c_cpp/src/examples/news/newsticker.cpp

+++ b/mamda/c_cpp/src/examples/news/newsticker.cpp

@@ -28,6 +28,7 @@

#include <stdexcept>

#include <iostream>

#include <vector>

+#include <stdio.h>

#include <mama/MamaQueueGroup.h>

#include <mama/MamaSource.h>

#include "../parsecmd.h"

@@ -244,6 +245,7 @@ int main (int argc, const char **argv)

         NewsTicker*         aTicker        = new NewsTicker;

         mamaBridge          bridge         = NULL;

+        setbuf (stdout, NULL);

         CommonCommandLineParser     cmdLine (argc, argv);

        

         bridge = cmdLine.getBridge();

diff --git a/mamda/c_cpp/src/examples/optionchainer.cpp b/mamda/c_cpp/src/examples/optionchainer.cpp

index 1fbf3ad..9afca04 100644

--- a/mamda/c_cpp/src/examples/optionchainer.cpp

+++ b/mamda/c_cpp/src/examples/optionchainer.cpp

@@ -51,6 +51,7 @@

#include <stdexcept>

#include <iostream>

#include <vector>

+#include <stdio.h>

#include "parsecmd.h"

#include "dictrequester.h"

#include "mama/MamaQueueGroup.h"

@@ -569,6 +570,7 @@ private:

 int main (int argc, const char **argv)

{

+    setbuf (stdout, NULL);

     try

     {

         CommonCommandLineParser     cmdLine (argc, argv);

diff --git a/mamda/c_cpp/src/examples/optionview.cpp b/mamda/c_cpp/src/examples/optionview.cpp

index 7bf7085..3295f6f 100644

--- a/mamda/c_cpp/src/examples/optionview.cpp

+++ b/mamda/c_cpp/src/examples/optionview.cpp

@@ -56,6 +56,7 @@

#include <stdexcept>

#include <iostream>

#include <vector>

+#include <stdio.h>

#include "parsecmd.h"

#include "dictrequester.h"

#include "mama/MamaQueueGroup.h"

@@ -553,6 +554,7 @@ private:

 int main (int argc, const char** argv)

{

+    setbuf (stdout, NULL);

     try

     {

         // Process some command line arguments:

diff --git a/mamda/c_cpp/src/examples/orderbooks/atomicbookbuilder.cpp b/mamda/c_cpp/src/examples/orderbooks/atomicbookbuilder.cpp

index af39747..75b6cbb 100644

--- a/mamda/c_cpp/src/examples/orderbooks/atomicbookbuilder.cpp

+++ b/mamda/c_cpp/src/examples/orderbooks/atomicbookbuilder.cpp

@@ -39,6 +39,7 @@

#include <vector>

#include <stdexcept>

#include <iomanip>

+#include <stdio.h>

 #include <mamda/MamdaOrderBook.h>

#include <mamda/MamdaOrderBookPriceLevel.h>

@@ -854,6 +855,7 @@ int main (int argc, const char** argv)

{

     MamaQueueGroup*             queues = NULL;

     mamaBridge                  bridge = NULL;

+    setbuf (stdout, NULL);

     try

     {

         // Initialize the MAMA API

diff --git a/mamda/c_cpp/src/examples/orderbooks/atomicbookticker.cpp b/mamda/c_cpp/src/examples/orderbooks/atomicbookticker.cpp

index 1aac0ab..287712d 100644

--- a/mamda/c_cpp/src/examples/orderbooks/atomicbookticker.cpp

+++ b/mamda/c_cpp/src/examples/orderbooks/atomicbookticker.cpp

@@ -39,7 +39,7 @@

#include <vector>

#include <stdexcept>

#include <iomanip>

-

+#include <stdio.h>

 using  std::endl;

using  std::vector;

@@ -226,6 +226,7 @@ int main (int argc, const char** argv)

{

     MamaQueueGroup*             queues = NULL;

     mamaBridge                  bridge = NULL;

+    setbuf (stdout, NULL);

     try

     {

         // Initialize the MAMA API

diff --git a/mamda/c_cpp/src/examples/orderbooks/bookchurn.cpp b/mamda/c_cpp/src/examples/orderbooks/bookchurn.cpp

index c4b0013..a8aa5ad 100644

--- a/mamda/c_cpp/src/examples/orderbooks/bookchurn.cpp

+++ b/mamda/c_cpp/src/examples/orderbooks/bookchurn.cpp

@@ -35,6 +35,7 @@

#include "../dictrequester.h"

#include <list>

#include <fstream>

+#include <stdio.h>

 using std::exception;

using std::endl;

@@ -257,6 +258,7 @@ class StatsTimerCallback : public MamaTimerCallback

 int main (int argc, const char **argv)

{

+    setbuf (stdout, NULL);

     try

     {

         CommonCommandLineParser     cmdLine (argc, argv);

diff --git a/mamda/c_cpp/src/examples/orderbooks/bookpublisher.cpp b/mamda/c_cpp/src/examples/orderbooks/bookpublisher.cpp

index 4bf1757..5528eb7 100644

--- a/mamda/c_cpp/src/examples/orderbooks/bookpublisher.cpp

+++ b/mamda/c_cpp/src/examples/orderbooks/bookpublisher.cpp

@@ -255,6 +255,7 @@ private:

 int main (int argc, const char **argv)

{

+    setbuf (stdout, NULL);

     try

     {

         BookPublisher* mBookPublisher = new BookPublisher;

diff --git a/mamda/c_cpp/src/examples/orderbooks/bookticker.cpp b/mamda/c_cpp/src/examples/orderbooks/bookticker.cpp

index 17150ba..a25ccc5 100644

--- a/mamda/c_cpp/src/examples/orderbooks/bookticker.cpp

+++ b/mamda/c_cpp/src/examples/orderbooks/bookticker.cpp

@@ -479,6 +479,7 @@ private:

 int main (int argc, const char **argv)

{

+    setbuf (stdout, NULL);

     try

     {

         CommonCommandLineParser  cmdLine (argc, argv);

diff --git a/mamda/c_cpp/src/examples/orderbooks/bookviewer.cpp b/mamda/c_cpp/src/examples/orderbooks/bookviewer.cpp

index 95c3888..d3bcc95 100644

--- a/mamda/c_cpp/src/examples/orderbooks/bookviewer.cpp

+++ b/mamda/c_cpp/src/examples/orderbooks/bookviewer.cpp

@@ -35,6 +35,7 @@

#include <vector>

#include <stdexcept>

#include <ncurses.h>

+#include <stdio.h>

 #include <signal.h>

#include <unistd.h>

@@ -135,6 +136,7 @@ private:

 int main (int argc, const char **argv)

{

+    setbuf (stdout, NULL);

     try

     {

         CommonCommandLineParser     cmdLine (argc, argv);

diff --git a/mamda/c_cpp/src/examples/orderbooks/listenerBookPublisher.cpp b/mamda/c_cpp/src/examples/orderbooks/listenerBookPublisher.cpp

index 919db57..b0602d4 100644

--- a/mamda/c_cpp/src/examples/orderbooks/listenerBookPublisher.cpp

+++ b/mamda/c_cpp/src/examples/orderbooks/listenerBookPublisher.cpp

@@ -269,6 +269,7 @@ private:

 int main (int argc, const char **argv)

{

+    setbuf (stdout, NULL);

     try

     {

         BookPublisher* mBookPublisher = new BookPublisher;

diff --git a/mamda/c_cpp/src/examples/orderbooks/test/bookiters.cpp b/mamda/c_cpp/src/examples/orderbooks/test/bookiters.cpp

index 27590db..e955af3 100644

--- a/mamda/c_cpp/src/examples/orderbooks/test/bookiters.cpp

+++ b/mamda/c_cpp/src/examples/orderbooks/test/bookiters.cpp

@@ -22,6 +22,7 @@

#include <mamda/MamdaOrderBook.h>

#include <mamda/MamdaOrderBookEntry.h>

#include <assert.h>

+#include <stdio.h>

 using namespace Wombat;

@@ -33,6 +34,7 @@ int main (int argc, const char** argv)

{

     MamaDateTime now;

     MamdaOrderBook  book;

+    setbuf (stdout, NULL);

     book.setSymbol (symbol);

     now.setToNow();

diff --git a/mamda/c_cpp/src/examples/orderbooks/test/bookselftest.cpp b/mamda/c_cpp/src/examples/orderbooks/test/bookselftest.cpp

index 55ab0da..65b7d4c 100644

--- a/mamda/c_cpp/src/examples/orderbooks/test/bookselftest.cpp

+++ b/mamda/c_cpp/src/examples/orderbooks/test/bookselftest.cpp

@@ -37,6 +37,7 @@

#include <iostream>

#include <vector>

#include <stdexcept>

+#include <stdio.h>

#include "parsecmd.h"

#include "dictrequester.h"

@@ -99,6 +100,7 @@ public:

 int main (int argc, const char** argv)

{

+    setbuf (stdout, NULL);

     try

     {

         CommonCommandLineParser     cmdLine (argc, argv);

diff --git a/mamda/c_cpp/src/examples/orderbooks/test/randomaccess.cpp b/mamda/c_cpp/src/examples/orderbooks/test/randomaccess.cpp

index e706cbe..8d976df 100644

--- a/mamda/c_cpp/src/examples/orderbooks/test/randomaccess.cpp

+++ b/mamda/c_cpp/src/examples/orderbooks/test/randomaccess.cpp

@@ -18,7 +18,7 @@

  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA

  * 02110-1301 USA

  */

-

+#include <stdio.h>

#include <mamda/MamdaOrderBook.h>

using namespace Wombat;

@@ -29,6 +29,7 @@ const char* symbol = "MSFT";

int main (int argc, const char** argv)

{

     MamdaOrderBook  book;

+    setbuf (stdout, NULL);

     book.setSymbol (symbol);

     // Populate an order book with N price levels ranging from 50.00

diff --git a/mamda/c_cpp/src/examples/orderimbalanceticker.cpp b/mamda/c_cpp/src/examples/orderimbalanceticker.cpp

index 5c7b206..ee37a9d 100644

--- a/mamda/c_cpp/src/examples/orderimbalanceticker.cpp

+++ b/mamda/c_cpp/src/examples/orderimbalanceticker.cpp

@@ -33,6 +33,7 @@

#include <iostream>

#include <stdexcept>

#include <vector>

+#include <stdio.h>

#include "parsecmd.h"

#include "mama/MamaQueueGroup.h"

#include "dictrequester.h"

@@ -128,6 +129,7 @@ public:

 int main (int argc, const char **argv)

{

+    setbuf (stdout, NULL);

     try

     {

         CommonCommandLineParser     cmdLine (argc, argv);

diff --git a/mamda/c_cpp/src/examples/quoteticker.cpp b/mamda/c_cpp/src/examples/quoteticker.cpp

index 5cd4b5a..bc119fd 100644

--- a/mamda/c_cpp/src/examples/quoteticker.cpp

+++ b/mamda/c_cpp/src/examples/quoteticker.cpp

@@ -30,6 +30,7 @@

#include <stdexcept>

#include <iostream>

#include <vector>

+#include <stdio.h>

#include "parsecmd.h"

#include "dictrequester.h"

#include "mama/MamaQueueGroup.h"

@@ -170,6 +171,7 @@ public:

 int main (int argc, const char **argv)

{

+    setbuf (stdout, NULL);

     try

     {

         CommonCommandLineParser     cmdLine (argc, argv);

diff --git a/mamda/c_cpp/src/examples/secstatuslisten.cpp b/mamda/c_cpp/src/examples/secstatuslisten.cpp

index bb31e62..ed0c187 100644

--- a/mamda/c_cpp/src/examples/secstatuslisten.cpp

+++ b/mamda/c_cpp/src/examples/secstatuslisten.cpp

@@ -28,6 +28,7 @@

#include <iostream>

#include <vector>

#include <stdexcept>

+#include <stdio.h>

#include "parsecmd.h"

#include "dictrequester.h"

#include "mama/MamaQueueGroup.h"

@@ -75,6 +76,7 @@ public:

 int main (int argc, const char **argv)

{

+    setbuf (stdout, NULL);

     try

     {

         // Process some command line arguments:

diff --git a/mamda/c_cpp/src/examples/tradeticker.cpp b/mamda/c_cpp/src/examples/tradeticker.cpp

index 21da990..0fa00d0 100644

--- a/mamda/c_cpp/src/examples/tradeticker.cpp

+++ b/mamda/c_cpp/src/examples/tradeticker.cpp

@@ -30,6 +30,7 @@

#include <iostream>

#include <vector>

#include <stdexcept>

+#include <stdio.h>

#include "parsecmd.h"

#include "dictrequester.h"

#include "mama/MamaQueueGroup.h"

@@ -202,6 +203,7 @@ public:

 int main (int argc, const char **argv)

{

+    setbuf (stdout, NULL);

     try

     {

         CommonCommandLineParser     cmdLine (argc, argv);

diff --git a/mamda/dotnet/src/examples/MamdaBookTicker/MamdaBookTicker.cs b/mamda/dotnet/src/examples/MamdaBookTicker/MamdaBookTicker.cs

index b60e2cb..00dfb02 100644

--- a/mamda/dotnet/src/examples/MamdaBookTicker/MamdaBookTicker.cs

+++ b/mamda/dotnet/src/examples/MamdaBookTicker/MamdaBookTicker.cs

@@ -299,6 +299,7 @@ namespace Wombat.Mamda.Examples

                                                               {

                                                                               Console.WriteLine("");

                                                               }

+                Console.Out.Flush();

                                               }

                                                public void prettyPrintEntries(MamdaOrderBook book)

@@ -345,6 +346,7 @@ namespace Wombat.Mamda.Examples

                                                                                               }

                                                                               }

                                                               }

+                Console.Out.Flush();

                                               }

                                                private void paddedPrint(object val, int padLen, bool padAfter)

@@ -388,6 +390,7 @@ namespace Wombat.Mamda.Examples

                                                                                               Console.Write (val);

                                                                               }

                                                               }

+                Console.Out.Flush();

                                               }

                               }

diff --git a/mamda/dotnet/src/examples/MamdaExamplesCommon/CommandLineProcessor.cs b/mamda/dotnet/src/examples/MamdaExamplesCommon/CommandLineProcessor.cs

index f426101..95e7ff0 100644

--- a/mamda/dotnet/src/examples/MamdaExamplesCommon/CommandLineProcessor.cs

+++ b/mamda/dotnet/src/examples/MamdaExamplesCommon/CommandLineProcessor.cs

@@ -305,6 +305,7 @@ namespace Wombat.Mamda.Examples

                                                               Console.Error.WriteLine(e.ToString());

                                                               Environment.Exit(0);

                                               }

+            Console.Out.Flush();

                               }

                                private string                                                     mSource         = "WOMBAT";

diff --git a/mamda/dotnet/src/examples/MamdaOptionChainExample/MamdaOptionChainExample.cs b/mamda/dotnet/src/examples/MamdaOptionChainExample/MamdaOptionChainExample.cs

index b26a6ae..6ec799a 100644

--- a/mamda/dotnet/src/examples/MamdaOptionChainExample/MamdaOptionChainExample.cs

+++ b/mamda/dotnet/src/examples/MamdaOptionChainExample/MamdaOptionChainExample.cs

@@ -279,6 +279,7 @@ namespace Wombat.Mamda.Examples

                                                                               Console.WriteLine();

                                                                               ++i;

                                                               }

+                Console.Out.Flush();

                                               }

                                                public void printContract(MamdaOptionContract  contract)

@@ -300,6 +301,7 @@ namespace Wombat.Mamda.Examples

                                                                               symbol + " " + exchange + ")  | " +

                                                                               lastPrice + " | " + bidPrice + " | " +

                                                                               askPrice + " | " + accVolume);

+                Console.Out.Flush();

                                               }

                                                public void printlnContract(MamdaOptionContract  contract)

diff --git a/mamda/java/com/wombat/mamda/examples/CommandLineProcessor.java b/mamda/java/com/wombat/mamda/examples/CommandLineProcessor.java

index 9a559bf..048b7ee 100644

--- a/mamda/java/com/wombat/mamda/examples/CommandLineProcessor.java

+++ b/mamda/java/com/wombat/mamda/examples/CommandLineProcessor.java

@@ -370,5 +370,6 @@ class CommandLineProcessor

             e.printStackTrace();

                 System.exit (0);

         }

+        System.out.flush();

     }

}

diff --git a/mamda/java/com/wombat/mamda/examples/MamdaAtomicBookBuilder.java b/mamda/java/com/wombat/mamda/examples/MamdaAtomicBookBuilder.java

index d62ab29..812e477 100644

--- a/mamda/java/com/wombat/mamda/examples/MamdaAtomicBookBuilder.java

+++ b/mamda/java/com/wombat/mamda/examples/MamdaAtomicBookBuilder.java

@@ -425,6 +425,7 @@ public class MamdaAtomicBookBuilder

                 mEntry      = null;

                 mPriceLevel = null;

             }

+            System.out.flush();

         }

         public AtomicBookBuilder(

@@ -884,6 +885,7 @@ public class MamdaAtomicBookBuilder

             if (mQuietModeLevel<1)

                 System.out.println ("");

+            System.out.flush();

         }

         /*

@@ -984,6 +986,7 @@ public class MamdaAtomicBookBuilder

                     System.out.println ("");

                 }

             }

+            System.out.flush();

         }

 

@@ -1030,6 +1033,7 @@ public class MamdaAtomicBookBuilder

                     System.out.print (val);

                 }

             }

+            System.out.flush();

         }

     }

}

diff --git a/mamda/java/com/wombat/mamda/examples/MamdaAtomicBookTicker.java b/mamda/java/com/wombat/mamda/examples/MamdaAtomicBookTicker.java

index 95ff821..6b8c551 100644

--- a/mamda/java/com/wombat/mamda/examples/MamdaAtomicBookTicker.java

+++ b/mamda/java/com/wombat/mamda/examples/MamdaAtomicBookTicker.java

@@ -280,6 +280,7 @@ public class MamdaAtomicBookTicker

                 }

                 System.out.print ("\n");

             }

+            System.out.flush();

         }

    

         public void onBookAtomicLevelEntryRecap (

diff --git a/mamda/java/com/wombat/mamda/examples/MamdaBookTicker.java b/mamda/java/com/wombat/mamda/examples/MamdaBookTicker.java

index a8a27d5..13a27c4 100644

--- a/mamda/java/com/wombat/mamda/examples/MamdaBookTicker.java

+++ b/mamda/java/com/wombat/mamda/examples/MamdaBookTicker.java

@@ -252,6 +252,7 @@ public class MamdaBookTicker

                 prettyPrint (delta);

             }

             prettyPrint (book);

+            System.out.flush();

         }

         public void onBookComplexDelta (MamdaSubscription          subscription,

@@ -319,6 +320,7 @@ public class MamdaBookTicker

                 System.out.print ("RECAP!!!  (seq# " + seqNum + ")\n");

             }

             prettyPrint (book);

+            System.out.flush();

         }

 

@@ -395,6 +397,7 @@ public class MamdaBookTicker

                 System.out.print (action);

                 System.out.print ("  \n");

             }

+            System.out.flush();

         }

         public void prettyPrintLevels (final MamdaOrderBook  book)

@@ -530,6 +533,7 @@ public class MamdaBookTicker

                

             if (mQuietModeLevel<1)

                 System.out.println ("");

+            System.out.flush();

         }

         public void prettyPrintEntries (final MamdaOrderBook book)

@@ -625,6 +629,7 @@ public class MamdaBookTicker

                     System.out.println ("");

                 }

             }

+            System.out.flush();

         }

         private static final String [] sPadding = new String[128];

@@ -668,6 +673,7 @@ public class MamdaBookTicker

                     System.out.print (val);

                 }

             }

+            System.out.flush();

         }

     }

}

diff --git a/mamda/java/com/wombat/mamda/examples/MamdaListen.java b/mamda/java/com/wombat/mamda/examples/MamdaListen.java

index b79efdd..2463bb0 100644

--- a/mamda/java/com/wombat/mamda/examples/MamdaListen.java

+++ b/mamda/java/com/wombat/mamda/examples/MamdaListen.java

@@ -249,6 +249,7 @@ public class MamdaListen

             }

             System.out.print ("|");

             System.out.print (field.toString()+" \n");

+            System.out.flush();

         }

         public void  setDictionary (

diff --git a/mamda/java/com/wombat/mamda/examples/MamdaOptionChainExample.java b/mamda/java/com/wombat/mamda/examples/MamdaOptionChainExample.java

index 64683d4..6b17439 100644

--- a/mamda/java/com/wombat/mamda/examples/MamdaOptionChainExample.java

+++ b/mamda/java/com/wombat/mamda/examples/MamdaOptionChainExample.java

@@ -336,6 +336,7 @@ public class MamdaOptionChainExample

                 System.out.println ();

                 ++i;

             }

+            System.out.flush();

         }

         public void printContract (MamdaOptionContract  contract)

@@ -369,6 +370,7 @@ public class MamdaOptionChainExample

                                   lastPrice + " | "   + bidPrice    + " | "   +

                                   askPrice  + " | "   + accVolume);

             }

+            System.out.flush();

         }

         public void printlnContract (MamdaOptionContract  contract)

diff --git a/mamda/java/com/wombat/mamda/examples/MamdaOrderImbalanceTicker.java b/mamda/java/com/wombat/mamda/examples/MamdaOrderImbalanceTicker.java

index 28f8fc4..cc0946e 100644

--- a/mamda/java/com/wombat/mamda/examples/MamdaOrderImbalanceTicker.java

+++ b/mamda/java/com/wombat/mamda/examples/MamdaOrderImbalanceTicker.java

@@ -240,5 +240,6 @@ public class MamdaOrderImbalanceTicker

         {

             System.out.println ("Error (" + subscription.getSymbol() + ")");

         }

+        System.out.flush();

     }

}

--

1.7.1

 


This message may contain confidential information and is intended for specific recipients unless explicitly noted otherwise. If you have reason to believe you are not an intended recipient of this message, please delete it and notify the sender. This message may not represent the opinion of Intercontinental Exchange, Inc. (ICE), Euronext or any of their subsidiaries or affiliates, and does not constitute a contract or guarantee. Unencrypted electronic mail is not secure and the recipient of this message is expected to provide safeguards from viruses and pursue alternate means of communication where privacy or a binding message is desired.


[PATCH] C# MamaFtMember bridged mode is not working

Adrienne Ambrose <AAmbrose@...>
 

TESTING:-

**Windows only** 
No middleware dependencies. 

Will need to run MamaFtMember c# in bridge mode, both before & after the fix.

Before the fix the previous version will hang,  after the addition of the of the incremented argument pointer it should run as expected.

 

PATCH:- 0002-C-MamaFtMember-bridged-mode-is-not-working

From 0240f6890c1bf511091a085c7077e31294b98d35 Mon Sep 17 00:00:00 2001

From: A Ambrose <aambrose@...>

Date: Thu, 21 Aug 2014 11:38:11 +0100

Subject: [PATCH 2/3] C# MamaFtMember bridged mode is not working

 

Modification to the MamaFtMember C# example application to fix bridged mode

as it previously did not work. The argument pointer was not being incremented.

[OMAMA-282]

 

Signed-off-by: A Ambrose <aambrose@...>

---

.../src/examples/MamaFtMember/MamaFtMemberCS.cs    |    1 +

1 files changed, 1 insertions(+), 0 deletions(-)

 

diff --git a/mama/dotnet/src/examples/MamaFtMember/MamaFtMemberCS.cs b/mama/dotnet/src/examples/MamaFtMember/MamaFtMemberCS.cs

index 6f96127..d318732 100644

--- a/mama/dotnet/src/examples/MamaFtMember/MamaFtMemberCS.cs

+++ b/mama/dotnet/src/examples/MamaFtMember/MamaFtMemberCS.cs

@@ -150,6 +150,7 @@ namespace Wombat

                                                               if (args[i].CompareTo ("-b") == 0)

                                                               {

                                                                               ft_type = (uint)mamaFtType.MAMA_FT_TYPE_BRIDGE;

+                                                                             i++;

                                                                               continue;

                                                               }

--

1.7.1

 


This message may contain confidential information and is intended for specific recipients unless explicitly noted otherwise. If you have reason to believe you are not an intended recipient of this message, please delete it and notify the sender. This message may not represent the opinion of Intercontinental Exchange, Inc. (ICE), Euronext or any of their subsidiaries or affiliates, and does not constitute a contract or guarantee. Unencrypted electronic mail is not secure and the recipient of this message is expected to provide safeguards from viruses and pursue alternate means of communication where privacy or a binding message is desired.


[PATCH] Reservedfieldsimpl.h missing declaration in openmama.

Adrienne Ambrose <AAmbrose@...>
 

TESTING:-

Again from list discussed with Damien -

Reservedfieldsimpl.h missing declaration in openmama.

 

This was a simple addition of missing declaration for cleanupReservedFields within reservedfieldsimpl.h

 

 

PATCH:- 0001-Addition-of-missing-declaration-for-cleanupReservedF

From ef5367a122a439e8f0a77eb16f6f7ae4cb24b6a8 Mon Sep 17 00:00:00 2001

From: A Ambrose <aambrose@...>

Date: Thu, 21 Aug 2014 11:33:21 +0100

Subject: [PATCH 1/3] Addition of missing declaration for cleanupReservedFields within rservedfieldsimpl.h

[OMAMA-281]

Signed-off-by: A Ambrose <aambrose@...>

 

---

mama/c_cpp/src/c/reservedfieldsimpl.h |    2 ++

1 files changed, 2 insertions(+), 0 deletions(-)

 

diff --git a/mama/c_cpp/src/c/reservedfieldsimpl.h b/mama/c_cpp/src/c/reservedfieldsimpl.h

index 5ee48ba..5dba8ab 100644

--- a/mama/c_cpp/src/c/reservedfieldsimpl.h

+++ b/mama/c_cpp/src/c/reservedfieldsimpl.h

@@ -30,6 +30,8 @@ extern "C" {

   API*/   

 extern void initReservedFields (void);

+extern void cleanupReservedFields (void);

+

#if defined(__cplusplus)

}

#endif

--

1.7.1

 


This message may contain confidential information and is intended for specific recipients unless explicitly noted otherwise. If you have reason to believe you are not an intended recipient of this message, please delete it and notify the sender. This message may not represent the opinion of Intercontinental Exchange, Inc. (ICE), Euronext or any of their subsidiaries or affiliates, and does not constitute a contract or guarantee. Unencrypted electronic mail is not secure and the recipient of this message is expected to provide safeguards from viruses and pursue alternate means of communication where privacy or a binding message is desired.


[PATCH] priceimpl improvements

Adrienne Ambrose <AAmbrose@...>
 

TESTING:-

Again from list discussed with Damien -

15) Priceimpl.c - lld? Looks wrong in openmama.  

  • snprintf (buf, bufMaxLen, "%lld", integer);

Luckily, every version of VS since 2005 seems to support '%lld', but now changed to the PRIi64 Macro.

 

 

PATCH:- 0002-Correct-the-printing-of-64bit-integers

From fca1911f42012cd72628648895c24d05c4b8e268 Mon Sep 17 00:00:00 2001

From: Gary Molloy <gmolloy@...>

Date: Thu, 7 Aug 2014 15:58:18 +0100

Subject: [PATCH 2/4] Correct the printing of 64bit integers

[OMAMA-280]

 

Signed-off-by: Gary Molloy <gmolloy@...>

---

mama/c_cpp/src/c/priceimpl.c | 8 ++++----

1 file changed, 4 insertions(+), 4 deletions(-)

 

diff --git a/mama/c_cpp/src/c/priceimpl.c b/mama/c_cpp/src/c/priceimpl.c

index 58c3095..86d2ebd 100644

--- a/mama/c_cpp/src/c/priceimpl.c

+++ b/mama/c_cpp/src/c/priceimpl.c

@@ -103,7 +103,7 @@ void mamaPriceImpl_getAsStringInteger (double     value,

                                  mama_size_t     bufMaxLen)

{

     int64_t  integer    = (int64_t)value;

-    snprintf (buf, bufMaxLen, "%lld", integer);

+    snprintf (buf, bufMaxLen, "%"PRIi64, integer);

}

 

@@ -117,18 +117,18 @@ void mamaPriceImpl_getAsStringFraction (double    value,

     int64_t  numer    = (int64_t)((double)denom * fraction);

     if (numer == 0)

     {

-        snprintf (buf, bufMaxLen, "%lld", integer);

+        snprintf (buf, bufMaxLen, "%"PRIi64, integer);

     }

     else if (integer == 0)

     {

                                        char formatSpecifier[20] = "";

-                                       sprintf(formatSpecifier, "%s/%s", "%lld", "%ld");

+                                      sprintf(formatSpecifier, "%s/%s", "%"PRIi64, "%ld");

         snprintf (buf, bufMaxLen, formatSpecifier, numer, denom);

     }

     else

     {

                                        char formatSpecifier[20] = "";

-                                       sprintf(formatSpecifier, "%s %s/%s", "%lld", "%lld", "%ld");

+                                      sprintf(formatSpecifier, "%s %s/%s", "%"PRIi64, "%"PRIi64, "%ld");

         if (integer < 0)

                                        {

             numer = -numer;

--

1.8.3.1

 


This message may contain confidential information and is intended for specific recipients unless explicitly noted otherwise. If you have reason to believe you are not an intended recipient of this message, please delete it and notify the sender. This message may not represent the opinion of Intercontinental Exchange, Inc. (ICE), Euronext or any of their subsidiaries or affiliates, and does not constitute a contract or guarantee. Unencrypted electronic mail is not secure and the recipient of this message is expected to provide safeguards from viruses and pursue alternate means of communication where privacy or a binding message is desired.


[PATCH] Log level not being published.

Adrienne Ambrose <AAmbrose@...>
 

TESTING:-

 

This was requested for submission by Damian from the list of differences between openmama & the enterprise versions. 

forcevalog patch needed sent out, which is used to add a custom prefix to the start of the line being logged.

 

 

PATCH:- 0001-Used-to-add-a-custom-prefix-to-the-start-of-the-line

From 4bb74689f23c25bc14c43515d24e7342a56a6be1 Mon Sep 17 00:00:00 2001

From: A Ambrose <aambrose@...>

Date: Wed, 30 Jul 2014 11:47:20 +0100

Subject: [PATCH] Used to add a custom prefix to the start of the line being logged

log lines now indicate the log level. Log levels include

[Init/Warning/Verbose/Debug/Info/Error]

[OMAMA-277]

Signed-off-by: A Ambrose <aambrose@...>

 

---

mama/c_cpp/src/c/log.c      |   35 +++++++++++++++++++++++++++++++++++

mama/c_cpp/src/c/mama/log.h |    8 ++++++++

2 files changed, 43 insertions(+), 0 deletions(-)

 

diff --git a/mama/c_cpp/src/c/log.c b/mama/c_cpp/src/c/log.c

index b8ed3dd..ab4ae91 100644

--- a/mama/c_cpp/src/c/log.c

+++ b/mama/c_cpp/src/c/log.c

@@ -1059,6 +1059,41 @@ mama_forceLogVa(const char   *format,

     logFunction(currentLevel, format, args);

}

+void

+mama_forceLogVaWithPrefix (const char* prefix,

+                           const char* format,

+                           va_list     args)

+{

+    MRSW_RESULT al = mamaLog_acquireLock(1);

+    if(MRSW_S_OK == al)

+    {

+        char    ts[MAMALOG_TIME_BUFFER_LENGTH] = "";

+        FILE*   f;

+

+        if (loggingToFile)

+        {

+            mamaLog_logLimitReached ();

+            f = gMamaControlledLogFile;

+        }

+        else

+        {

+            f = (gMamaLogFile == NULL) ? stderr : gMamaLogFile;

+        }

+

+        /* Format the current time */

+        mamaLog_getTime(ts, MAMALOG_TIME_BUFFER_LENGTH);

+

+        fprintf (f, "%s", ts);

+        fprintf (f, "(%x) : ", (unsigned int)wGetCurrentThreadId());

+        fprintf (f, "%s: ", prefix);

+        vfprintf (f, format, args);

+        fprintf (f, "\n");

+        fflush (f);

+

+        /* Release the read lock. */

+        MRSWLock_release(g_lock, 1);

+    }

+}

 void

mama_forceLog (MamaLogLevel level, const char *format, ...)

diff --git a/mama/c_cpp/src/c/mama/log.h b/mama/c_cpp/src/c/mama/log.h

index b988a6c..58fb0b5 100644

--- a/mama/c_cpp/src/c/mama/log.h

+++ b/mama/c_cpp/src/c/mama/log.h

@@ -145,6 +145,14 @@ mama_logVa (MamaLogLevel level, const char *format, va_list args);

MAMAExpDLL

extern void

mama_forceLogVa(const char   *format, va_list  args);

+

+/** Used to add a custom prefix to the start of the line being loggedf */

+MAMAExpDLL

+extern void

+mama_forceLogVaWithPrefix (const char* level,

+                           const char* format,

+                           va_list     args);

+

MAMAExpDLL

extern void

mama_forceLog (MamaLogLevel level, const char *format, ...);

--

1.7.1

 


This message may contain confidential information and is intended for specific recipients unless explicitly noted otherwise. If you have reason to believe you are not an intended recipient of this message, please delete it and notify the sender. This message may not represent the opinion of Intercontinental Exchange, Inc. (ICE), Euronext or any of their subsidiaries or affiliates, and does not constitute a contract or guarantee. Unencrypted electronic mail is not secure and the recipient of this message is expected to provide safeguards from viruses and pursue alternate means of communication where privacy or a binding message is desired.


[PATCH] FieldCache Improvments

Adrienne Ambrose <AAmbrose@...>
 

Testing :-

 

This is not OS dependent 
This is not middleware dependent 

 

The below patches were as discussed with Damian to remove all the commented out sections of dead code from the fieldcache files in both c and cpp directories.

Also to change the way we throw exceptions to be more standardised - i.e. throw a MamaStatus

 

 

Build and run up a mamalistencachedc for example. Everything should work as before.

 

Also Unittests ran :-

MamaFieldCacheFieldTypesTest unittests:

 

[ RUN      ] MamaFieldCacheFieldTypesTest.testI8Vector
[       OK ] MamaFieldCacheFieldTypesTest.testI8Vector (0 ms)
[ RUN      ] MamaFieldCacheFieldTypesTest.testU8Vector
[       OK ] MamaFieldCacheFieldTypesTest.testU8Vector (0 ms)
[ RUN      ] MamaFieldCacheFieldTypesTest.testI16Vector
[       OK ] MamaFieldCacheFieldTypesTest.testI16Vector (0 ms)
[ RUN      ] MamaFieldCacheFieldTypesTest.testU16Vector
[       OK ] MamaFieldCacheFieldTypesTest.testU16Vector (0 ms)
[ RUN      ] MamaFieldCacheFieldTypesTest.testI32Vector
[       OK ] MamaFieldCacheFieldTypesTest.testI32Vector (0 ms)
[ RUN      ] MamaFieldCacheFieldTypesTest.testU32Vector
[       OK ] MamaFieldCacheFieldTypesTest.testU32Vector (0 ms)
[ RUN      ] MamaFieldCacheFieldTypesTest.testI64Vector
[       OK ] MamaFieldCacheFieldTypesTest.testI64Vector (0 ms)
[ RUN      ] MamaFieldCacheFieldTypesTest.testU64Vector
[       OK ] MamaFieldCacheFieldTypesTest.testU64Vector (0 ms)
[ RUN      ] MamaFieldCacheFieldTypesTest.testF32Vector
[       OK ] MamaFieldCacheFieldTypesTest.testF32Vector (0 ms)
[ RUN      ] MamaFieldCacheFieldTypesTest.testF64Vector
[       OK ] MamaFieldCacheFieldTypesTest.testF64Vector (0 ms)
[ RUN      ] MamaFieldCacheFieldTypesTest.testStringVector
[       OK ] MamaFieldCacheFieldTypesTest.testStringVector (0 ms)
[ RUN      ] MamaFieldCacheFieldTypesTest.testPriceVector
[       OK ] MamaFieldCacheFieldTypesTest.testPriceVector (0 ms)
[ RUN      ] MamaFieldCacheFieldTypesTest.testDateTimeVector
[       OK ] MamaFieldCacheFieldTypesTest.testDateTimeVector (0 ms)

 

 

PATCH:-    0003-FieldCache-Improvments-Fix-exception-throwing

From a7e9a75152239e9769dae728d460b964ac1fea25 Mon Sep 17 00:00:00 2001

From: Gary Molloy <gmolloy@...>

Date: Fri, 8 Aug 2014 11:27:31 +0100

Subject: [PATCH 3/4] FieldCache Improvments - Fix exception throwing

 

The throwing of exceptions in MamaFieldCacheFieldTypes was not in line with the rest of MAMA

[OMAMA-275 / OMAMA-276]

 

Signed-off-by: Gary Molloy <gmolloy@...>

---

.../cpp/fieldcache/MamaFieldCacheFieldTypes.cpp    | 32 ++++++------

.../fieldcache/MamaFieldCacheFieldTypesTest.cpp    | 57 +++++++++++++++-------

2 files changed, 54 insertions(+), 35 deletions(-)

 

diff --git a/mama/c_cpp/src/cpp/fieldcache/MamaFieldCacheFieldTypes.cpp b/mama/c_cpp/src/cpp/fieldcache/MamaFieldCacheFieldTypes.cpp

index fa6e554..0a02613 100644

--- a/mama/c_cpp/src/cpp/fieldcache/MamaFieldCacheFieldTypes.cpp

+++ b/mama/c_cpp/src/cpp/fieldcache/MamaFieldCacheFieldTypes.cpp

@@ -300,7 +300,7 @@ const mama_i8_t& MamaFieldCacheFieldI8Vector::get(const MamaFieldCacheField& fie

     mamaFieldCacheField_getI8Vector(field.getCValue(), &values, &size);

     if (index < size)

         return values[index];

-    throw std::out_of_range("MamaFieldCacheFieldI8Vector::get");

+    throw MamaStatus(MAMA_STATUS_INVALID_ARG);

}

 // MAMA_FIELD_TYPE_VECTOR_U8

@@ -329,7 +329,7 @@ const mama_u8_t& MamaFieldCacheFieldU8Vector::get(const MamaFieldCacheField& fie

     mamaFieldCacheField_getU8Vector(field.getCValue(), &values, &size);

     if (index < size)

         return values[index];

-    throw std::out_of_range("MamaFieldCacheFieldU8Vector::get");

+    throw MamaStatus(MAMA_STATUS_INVALID_ARG);

}

 // MAMA_FIELD_TYPE_VECTOR_I16

@@ -359,7 +359,7 @@ const mama_i16_t& MamaFieldCacheFieldI16Vector::get(const MamaFieldCacheField& f

     mamaFieldCacheField_getI16Vector(field.getCValue(), &values, &size);

     if (index < size)

         return values[index];

-    throw std::out_of_range("MamaFieldCacheFieldI16Vector::get");

+    throw MamaStatus(MAMA_STATUS_INVALID_ARG);

}

 // MAMA_FIELD_TYPE_VECTOR_U16

@@ -389,7 +389,7 @@ const mama_u16_t& MamaFieldCacheFieldU16Vector::get(const MamaFieldCacheField& f

     mamaFieldCacheField_getU16Vector(field.getCValue(), &values, &size);

     if (index < size)

         return values[index];

-    throw std::out_of_range("MamaFieldCacheFieldU16Vector::get");

+    throw MamaStatus(MAMA_STATUS_INVALID_ARG);

}

 // MAMA_FIELD_TYPE_VECTOR_I32

@@ -419,7 +419,7 @@ const mama_i32_t& MamaFieldCacheFieldI32Vector::get(const MamaFieldCacheField& f

     mamaFieldCacheField_getI32Vector(field.getCValue(), &values, &size);

     if (index < size)

         return values[index];

-    throw std::out_of_range("MamaFieldCacheFieldI32Vector::get");

+    throw MamaStatus(MAMA_STATUS_INVALID_ARG);

}

 // MAMA_FIELD_TYPE_VECTOR_U32

@@ -449,7 +449,7 @@ const mama_u32_t& MamaFieldCacheFieldU32Vector::get(const MamaFieldCacheField& f

     mamaFieldCacheField_getU32Vector(field.getCValue(), &values, &size);

     if (index < size)

         return values[index];

-    throw std::out_of_range("MamaFieldCacheFieldU32Vector::get");

+    throw MamaStatus(MAMA_STATUS_INVALID_ARG);

}

 // MAMA_FIELD_TYPE_VECTOR_I64

@@ -478,7 +478,7 @@ const mama_i64_t& MamaFieldCacheFieldI64Vector::get(const MamaFieldCacheField& f

     mamaFieldCacheField_getI64Vector(field.getCValue(), &values, &size);

     if (index < size)

         return values[index];

-    throw std::out_of_range("MamaFieldCacheFieldI64Vector::get");

+    throw MamaStatus(MAMA_STATUS_INVALID_ARG);

}

 // MAMA_FIELD_TYPE_VECTOR_U64

@@ -508,7 +508,7 @@ const mama_u64_t& MamaFieldCacheFieldU64Vector::get(const MamaFieldCacheField& f

     mamaFieldCacheField_getU64Vector(field.getCValue(), &values, &size);

     if (index < size)

         return values[index];

-    throw std::out_of_range("MamaFieldCacheFieldU64Vector::get");

+    throw MamaStatus(MAMA_STATUS_INVALID_ARG);

}

 // MAMA_FIELD_TYPE_VECTOR_F32

@@ -538,7 +538,7 @@ const mama_f32_t& MamaFieldCacheFieldF32Vector::get(const MamaFieldCacheField& f

     mamaFieldCacheField_getF32Vector(field.getCValue(), &values, &size);

     if (index < size)

         return values[index];

-    throw std::out_of_range("MamaFieldCacheFieldF32Vector::get");

+    throw MamaStatus(MAMA_STATUS_INVALID_ARG);

}

 // MAMA_FIELD_TYPE_VECTOR_F64

@@ -568,7 +568,7 @@ const mama_f64_t& MamaFieldCacheFieldF64Vector::get(const MamaFieldCacheField& f

     mamaFieldCacheField_getF64Vector(field.getCValue(), &values, &size);

     if (index < size)

         return values[index];

-    throw std::out_of_range("MamaFieldCacheFieldF64Vector::get");

+    throw MamaStatus(MAMA_STATUS_INVALID_ARG);

}

 // MAMA_FIELD_TYPE_VECTOR_STRING

@@ -594,10 +594,8 @@ const char* MamaFieldCacheFieldStringVector::get(const MamaFieldCacheField& fiel

     mama_size_t size = 0;

     mamaFieldCacheField_getStringVector(field.getCValue(), &values, &size);

     if (index < size)

-    {

         return values[index];

-    }

-    return NULL;

+    throw MamaStatus(MAMA_STATUS_INVALID_ARG);

}

 // MAMA_FIELD_TYPE_VECTOR_PRICE

@@ -642,7 +640,7 @@ const MamaPrice* MamaFieldCacheFieldPriceVector::get(const MamaFieldCacheField&

         mamaPrice_copy(mValue.getCValue(), values[index]);

         return &mValue;

     }

-    return NULL;

+    throw MamaStatus(MAMA_STATUS_INVALID_ARG);

}

 // MAMA_FIELD_TYPE_VECTOR_TIME

@@ -687,7 +685,7 @@ const MamaDateTime* MamaFieldCacheFieldDateTimeVector::get(const MamaFieldCacheF

         mamaDateTime_copy(mValue.getCValue(), values[index]);

         return &mValue;

     }

-    return NULL;

+    throw MamaStatus(MAMA_STATUS_INVALID_ARG);

}

 

@@ -741,7 +739,7 @@ void getFieldValue(const MamaFieldCacheField& field,

{

//    MamaFieldCacheFieldPriceVector getField;

//    getField.get(field, values, size);

-    throw "getFieldValue for MamaPrice vector not implemented";

+    throw MamaStatus(MAMA_STATUS_NOT_IMPLEMENTED);

}

 void getFieldValue(const MamaFieldCacheField& field,

@@ -750,7 +748,7 @@ void getFieldValue(const MamaFieldCacheField& field,

{

//    MamaFieldCacheFieldDateTimeVector getField;

//    getField.get(field, values, size);

-    throw "getFieldValue for MamaDateTime vector not implemented";

+    throw MamaStatus(MAMA_STATUS_NOT_IMPLEMENTED);

}

 

diff --git a/mama/c_cpp/src/gunittest/cpp/fieldcache/MamaFieldCacheFieldTypesTest.cpp b/mama/c_cpp/src/gunittest/cpp/fieldcache/MamaFieldCacheFieldTypesTest.cpp

index e72b0fb..ee4c6b1 100644

--- a/mama/c_cpp/src/gunittest/cpp/fieldcache/MamaFieldCacheFieldTypesTest.cpp

+++ b/mama/c_cpp/src/gunittest/cpp/fieldcache/MamaFieldCacheFieldTypesTest.cpp

@@ -537,6 +537,9 @@ TEST_F(MamaFieldCacheFieldTypesTest, testI8Vector)

     ASSERT_EQ(2, field.get(fieldBase, 2));

     ASSERT_EQ(3, field.get(fieldBase, 3));

     ASSERT_EQ(4, field.get(fieldBase, 4));

+

+    size = 9;

+    ASSERT_THROW (field.get(fieldBase, size), MamaStatus);

}

 TEST_F(MamaFieldCacheFieldTypesTest, testU8Vector)

@@ -577,6 +580,9 @@ TEST_F(MamaFieldCacheFieldTypesTest, testU8Vector)

     ASSERT_EQ(2, field.get(fieldBase, 2));

     ASSERT_EQ(3, field.get(fieldBase, 3));

     ASSERT_EQ(4, field.get(fieldBase, 4));

+

+    size = 9;

+    ASSERT_THROW (field.get(fieldBase, size), MamaStatus);

}

 TEST_F(MamaFieldCacheFieldTypesTest, testI16Vector)

@@ -617,6 +623,9 @@ TEST_F(MamaFieldCacheFieldTypesTest, testI16Vector)

     ASSERT_EQ(2, field.get(fieldBase, 2));

     ASSERT_EQ(3, field.get(fieldBase, 3));

     ASSERT_EQ(4, field.get(fieldBase, 4));

+

+    size = 9;

+    ASSERT_THROW (field.get(fieldBase, size), MamaStatus);

}

 TEST_F(MamaFieldCacheFieldTypesTest, testU16Vector)

@@ -657,6 +666,9 @@ TEST_F(MamaFieldCacheFieldTypesTest, testU16Vector)

     ASSERT_EQ(2, field.get(fieldBase, 2));

     ASSERT_EQ(3, field.get(fieldBase, 3));

     ASSERT_EQ(4, field.get(fieldBase, 4));

+

+    size = 9;

+    ASSERT_THROW (field.get(fieldBase, size), MamaStatus);

}

 TEST_F(MamaFieldCacheFieldTypesTest, testI32Vector)

@@ -697,6 +709,9 @@ TEST_F(MamaFieldCacheFieldTypesTest, testI32Vector)

     ASSERT_EQ(2, field.get(fieldBase, 2));

     ASSERT_EQ(3, field.get(fieldBase, 3));

     ASSERT_EQ(4, field.get(fieldBase, 4));

+

+    size = 9;

+    ASSERT_THROW (field.get(fieldBase, size), MamaStatus);

}

 TEST_F(MamaFieldCacheFieldTypesTest, testU32Vector)

@@ -737,6 +752,9 @@ TEST_F(MamaFieldCacheFieldTypesTest, testU32Vector)

     ASSERT_EQ(2, field.get(fieldBase, 2));

     ASSERT_EQ(3, field.get(fieldBase, 3));

     ASSERT_EQ(4, field.get(fieldBase, 4));

+

+    size = 9;

+    ASSERT_THROW (field.get(fieldBase, size), MamaStatus);

}

 TEST_F(MamaFieldCacheFieldTypesTest, testI64Vector)

@@ -777,6 +795,9 @@ TEST_F(MamaFieldCacheFieldTypesTest, testI64Vector)

     ASSERT_EQ(2, field.get(fieldBase, 2));

     ASSERT_EQ(3, field.get(fieldBase, 3));

     ASSERT_EQ(4, field.get(fieldBase, 4));

+

+    size = 9;

+    ASSERT_THROW (field.get(fieldBase, size), MamaStatus);

}

 TEST_F(MamaFieldCacheFieldTypesTest, testU64Vector)

@@ -817,6 +838,9 @@ TEST_F(MamaFieldCacheFieldTypesTest, testU64Vector)

     ASSERT_EQ(2, field.get(fieldBase, 2));

     ASSERT_EQ(3, field.get(fieldBase, 3));

     ASSERT_EQ(4, field.get(fieldBase, 4));

+

+    size = 9;

+    ASSERT_THROW (field.get(fieldBase, size), MamaStatus);

}

 TEST_F(MamaFieldCacheFieldTypesTest, testF32Vector)

@@ -858,6 +882,9 @@ TEST_F(MamaFieldCacheFieldTypesTest, testF32Vector)

     ASSERT_FLOAT_EQ(2.5, field.get(fieldBase, 2));

     ASSERT_FLOAT_EQ(3, field.get(fieldBase, 3));

     ASSERT_FLOAT_EQ(4.1, field.get(fieldBase, 4));

+

+    size = 9;

+    ASSERT_THROW (field.get(fieldBase, size), MamaStatus);

}

 TEST_F(MamaFieldCacheFieldTypesTest, testF64Vector)

@@ -899,6 +926,9 @@ TEST_F(MamaFieldCacheFieldTypesTest, testF64Vector)

     ASSERT_DOUBLE_EQ(2.5, field.get(fieldBase, 2));

     ASSERT_DOUBLE_EQ(3, field.get(fieldBase, 3));

     ASSERT_DOUBLE_EQ(4.1, field.get(fieldBase, 4));

+

+    size = 9;

+    ASSERT_THROW (field.get(fieldBase, size), MamaStatus);

}

 TEST_F(MamaFieldCacheFieldTypesTest, testStringVector)

@@ -940,6 +970,9 @@ TEST_F(MamaFieldCacheFieldTypesTest, testStringVector)

     ASSERT_STREQ("2.5 modified", field.get(fieldBase, 2));

     ASSERT_STREQ("hello", field.get(fieldBase, 3));

     ASSERT_STREQ("4.1", field.get(fieldBase, 4));

+

+    size = 9;

+    ASSERT_THROW (field.get(fieldBase, size), MamaStatus);

}

 TEST_F(MamaFieldCacheFieldTypesTest, testPriceVector)

@@ -961,7 +994,6 @@ TEST_F(MamaFieldCacheFieldTypesTest, testPriceVector)

     ASSERT_DOUBLE_EQ(-2, field.get(fieldBase, 2)->getValue());

     ASSERT_DOUBLE_EQ(3, field.get(fieldBase, 3)->getValue());

     ASSERT_DOUBLE_EQ(4.1, field.get(fieldBase, 4)->getValue());

-    ASSERT_FALSE(field.get(fieldBase, 10));

    

     const MamaPrice* result = NULL;

     std::size_t size = 0;

@@ -973,14 +1005,6 @@ TEST_F(MamaFieldCacheFieldTypesTest, testPriceVector)

     ASSERT_DOUBLE_EQ(-2, result[2].getValue());

     ASSERT_DOUBLE_EQ(3, result[3].getValue());

     ASSERT_DOUBLE_EQ(4.1, result[4].getValue());

-//    getFieldValue(fieldBase, result, size);

-//    ASSERT_TRUE(result);

-//    ASSERT_EQ(5, size);

-//    ASSERT_DOUBLE_EQ(0.1, result[0].getValue());

-//    ASSERT_DOUBLE_EQ(1, result[1].getValue());

-//    ASSERT_DOUBLE_EQ(-2, result[2].getValue());

-//    ASSERT_DOUBLE_EQ(3, result[3].getValue());

-//    ASSERT_DOUBLE_EQ(4.1, result[4].getValue());

    

     values[2].setValue(55.5);

     setFieldValue(fieldBase, values, 5);

@@ -992,6 +1016,9 @@ TEST_F(MamaFieldCacheFieldTypesTest, testPriceVector)

     ASSERT_DOUBLE_EQ(55.5, result[2].getValue());

     ASSERT_DOUBLE_EQ(3, result[3].getValue());

     ASSERT_DOUBLE_EQ(4.1, result[4].getValue());

+

+    size = 9;

+    ASSERT_THROW (field.get(fieldBase, size), MamaStatus);

}

 TEST_F(MamaFieldCacheFieldTypesTest, testDateTimeVector)

@@ -1013,7 +1040,6 @@ TEST_F(MamaFieldCacheFieldTypesTest, testDateTimeVector)

     ASSERT_DOUBLE_EQ(3000, field.get(fieldBase, 2)->getEpochTimeSeconds());

     ASSERT_DOUBLE_EQ(4000, field.get(fieldBase, 3)->getEpochTimeSeconds());

     ASSERT_DOUBLE_EQ(5000, field.get(fieldBase, 4)->getEpochTimeSeconds());

-    ASSERT_FALSE(field.get(fieldBase, 10));

    

     const MamaDateTime* result = NULL;

     std::size_t size = 0;

@@ -1025,14 +1051,6 @@ TEST_F(MamaFieldCacheFieldTypesTest, testDateTimeVector)

     ASSERT_DOUBLE_EQ(3000, result[2].getEpochTimeSeconds());

     ASSERT_DOUBLE_EQ(4000, result[3].getEpochTimeSeconds());

     ASSERT_DOUBLE_EQ(5000, result[4].getEpochTimeSeconds());

-//    getFieldValue(fieldBase, result, size);

-//    ASSERT_TRUE(result);

-//    ASSERT_EQ(5, size);

-//    ASSERT_DOUBLE_EQ(1000, result[0].getEpochTimeSeconds());

-//    ASSERT_DOUBLE_EQ(2000, result[1].getEpochTimeSeconds());

-//    ASSERT_DOUBLE_EQ(3000, result[2].getEpochTimeSeconds());

-//    ASSERT_DOUBLE_EQ(4000, result[3].getEpochTimeSeconds());

-//    ASSERT_DOUBLE_EQ(5000, result[4].getEpochTimeSeconds());

    

     values[2].setEpochTimeF64(6000);

     setFieldValue(fieldBase, values, 5);

@@ -1045,6 +1063,9 @@ TEST_F(MamaFieldCacheFieldTypesTest, testDateTimeVector)

     ASSERT_DOUBLE_EQ(6000, result[2].getEpochTimeSeconds());

     ASSERT_DOUBLE_EQ(4000, result[3].getEpochTimeSeconds());

     ASSERT_DOUBLE_EQ(5000, result[4].getEpochTimeSeconds());

+

+    size = 9;

+    ASSERT_THROW (field.get(fieldBase, size), MamaStatus);

}

 TEST_F(MamaFieldCacheFieldTypesTest, testFromString)

--

1.8.3.1

 

PATCH:-   0004-Genereal-FieldCache-Improvements

From 92bb414af9ac0d7a9d6d4dd71e731aa9389925a0 Mon Sep 17 00:00:00 2001

From: Gary Molloy <gmolloy@...>

Date: Fri, 8 Aug 2014 12:07:11 +0100

Subject: [PATCH 4/4] Genereal FieldCache Improvements

 

General improvements to the fieldcache including the removal of dead code, spelling mistakes, white space, tabs etc...

[OMAMA-275 / OMAMA-276]

 

Signed-off-by: Gary Molloy <gmolloy@...>

---

mama/c_cpp/src/c/Makefile.am                       |  2 -

mama/c_cpp/src/c/SConscript                        |  2 -

mama/c_cpp/src/c/fieldcache/fieldcache.c           | 27 ++++----

mama/c_cpp/src/c/fieldcache/fieldcachefield.c      | 12 ++--

mama/c_cpp/src/c/fieldcache/fieldcachefieldimpl.c  | 18 +----

mama/c_cpp/src/c/fieldcache/fieldcachefieldimpl.h  | 20 ++----

mama/c_cpp/src/c/fieldcache/fieldcacheimpl.c       | 14 +---

mama/c_cpp/src/c/fieldcache/fieldcachelist.h       |  4 +-

mama/c_cpp/src/c/fieldcache/fieldcachemap.c        | 15 ----

mama/c_cpp/src/c/fieldcache/fieldcachemap.h        |  3 +-

mama/c_cpp/src/c/fieldcache/fieldcachemapbinary.c  | 79 ----------------------

mama/c_cpp/src/c/fieldcache/fieldcachemapbinary.h  | 72 --------------------

mama/c_cpp/src/c/fieldcache/fieldcachemapmonitor.c | 74 --------------------

mama/c_cpp/src/c/fieldcache/fieldcachemapmonitor.h | 64 ------------------

mama/c_cpp/src/c/mamac.vcproj                      | 16 -----

.../cpp/mama/fieldcache/MamaFieldCacheFieldTypes.h |  8 ---

16 files changed, 30 insertions(+), 400 deletions(-)

delete mode 100644 mama/c_cpp/src/c/fieldcache/fieldcachemapbinary.c

delete mode 100644 mama/c_cpp/src/c/fieldcache/fieldcachemapbinary.h

delete mode 100644 mama/c_cpp/src/c/fieldcache/fieldcachemapmonitor.c

delete mode 100644 mama/c_cpp/src/c/fieldcache/fieldcachemapmonitor.h

 

diff --git a/mama/c_cpp/src/c/Makefile.am b/mama/c_cpp/src/c/Makefile.am

index ab8b9ca..c831ce4 100644

--- a/mama/c_cpp/src/c/Makefile.am

+++ b/mama/c_cpp/src/c/Makefile.am

@@ -183,8 +183,6 @@ libmama_la_SOURCES = \

     fieldcache/fieldcachelist.c \

     fieldcache/fieldcachemap.c \

     fieldcache/fieldcachemaparray.c \

-    fieldcache/fieldcachemapbinary.c \

-    fieldcache/fieldcachemapmonitor.c \

     fieldcache/fieldcacheiterator.c \

     fieldcache/fieldcachefieldimpl.c \

     fieldcache/fieldcachefield.c \

diff --git a/mama/c_cpp/src/c/SConscript b/mama/c_cpp/src/c/SConscript

index 342bf9c..4362f50 100644

--- a/mama/c_cpp/src/c/SConscript

+++ b/mama/c_cpp/src/c/SConscript

@@ -156,8 +156,6 @@ libmama_sources = \

     fieldcache/fieldcachefield.c

     fieldcache/fieldcacheimpl.c

     fieldcache/fieldcachelist.c

-    fieldcache/fieldcachemapbinary.c

-    fieldcache/fieldcachemapmonitor.c

     fieldcache/fieldcachevector.c

""")

diff --git a/mama/c_cpp/src/c/fieldcache/fieldcache.c b/mama/c_cpp/src/c/fieldcache/fieldcache.c

index cc263cc..6374767 100644

--- a/mama/c_cpp/src/c/fieldcache/fieldcache.c

+++ b/mama/c_cpp/src/c/fieldcache/fieldcache.c

@@ -47,13 +47,13 @@ mama_status mamaFieldCache_create(mamaFieldCache* fieldCache)

     {

         return MAMA_STATUS_NULL_ARG;

     }

-   

+

     localCache = (mamaFieldCache)calloc(1, sizeof(mamaFieldCacheImpl));

     if(!localCache)

     {

         return MAMA_STATUS_NOMEM;

     }

-   

+

     localCache->mLock = wlock_create();

     propstring = properties_Get (mamaInternal_getProperties (), "mama.fieldcache.type");

@@ -275,13 +275,12 @@ mama_status mamaFieldCache_applyMessage(

     {

         if (!fieldCache->mCacheMsg)

         {

-                                              ret=mamaMsg_copy(message, &fieldCache->mCacheMsg);

+            ret=mamaMsg_copy(message, &fieldCache->mCacheMsg);

+        }

+        else

+        {

+            ret=mamaMsg_applyMsg(fieldCache->mCacheMsg, message);

         }

-                              else

-                              {

-              ret=mamaMsg_applyMsg(fieldCache->mCacheMsg, message);

-                             

-                              }             

         return ret;

     }

@@ -364,7 +363,7 @@ mama_status mamaFieldCache_getFullMessage(

     }

     mamaMsg_getNumFields(message, &numFields);

-    mamaFieldCacheIterator_create(&iterator, fieldCache);   

+    mamaFieldCacheIterator_create(&iterator, fieldCache);

     FIELD_CACHE_LOCK(fieldCache);

     while (mamaFieldCacheIterator_hasNext(iterator))

     {

@@ -377,7 +376,7 @@ mama_status mamaFieldCache_getFullMessage(

     }

     FIELD_CACHE_UNLOCK(fieldCache);

     mamaFieldCacheIterator_destroy(iterator);

-   

+

     return MAMA_STATUS_OK;

}

@@ -467,15 +466,15 @@ mama_status mamaFieldCache_setTrackModified(

     {

         return MAMA_STATUS_NULL_ARG;

     }

-              if (!fieldCache->mCachePayload)

+    if (!fieldCache->mCachePayload)

     {

-              fieldCache->mTrackModified = trackModified;

+        fieldCache->mTrackModified = trackModified;

     }

-              return MAMA_STATUS_OK;

+    return MAMA_STATUS_OK;

}

 mama_status mamaFieldCache_getTrackModified(

-    mamaFieldCache fieldCache,

+    mamaFieldCache fieldCache,

     mama_bool_t* trackModified)

{

     if (!fieldCache || !trackModified)

diff --git a/mama/c_cpp/src/c/fieldcache/fieldcachefield.c b/mama/c_cpp/src/c/fieldcache/fieldcachefield.c

index 62c7f11..43a3c05 100644

--- a/mama/c_cpp/src/c/fieldcache/fieldcachefield.c

+++ b/mama/c_cpp/src/c/fieldcache/fieldcachefield.c

@@ -124,11 +124,11 @@ mama_status mamaFieldCacheField_destroy(mamaFieldCacheField field)

                         (mamaFieldCacheVector)field->mData.data);

             }

             break;

-        default: /* something is wrong here */

+        default:

             break;

         }

     }

+

     free(field);

     return MAMA_STATUS_OK;

@@ -1178,7 +1178,7 @@ mama_status mamaFieldCacheField_setPrice(const mamaFieldCacheField field,

{

     mamaPrice price = NULL;

     void* old = NULL;

-   

+

     if (!field || !value)

     {

         return MAMA_STATUS_NULL_ARG;

@@ -1194,7 +1194,7 @@ mama_status mamaFieldCacheField_setPrice(const mamaFieldCacheField field,

         mamaFieldCacheField_setDataPointer(field, (void*)price, &old);

     }

     mamaPrice_copy((mamaPrice)field->mData.data, value);

-   

+

     return MAMA_STATUS_OK;

}

@@ -1203,7 +1203,7 @@ mama_status mamaFieldCacheField_setDateTime(const mamaFieldCacheField field,

{

     mamaDateTime dateTime = NULL;

     void* old = NULL;

-   

+

     if (!field || !value)

     {

         return MAMA_STATUS_NULL_ARG;

@@ -1219,7 +1219,7 @@ mama_status mamaFieldCacheField_setDateTime(const mamaFieldCacheField field,

         mamaFieldCacheField_setDataPointer(field, (void*)dateTime, &old);

     }

     mamaDateTime_copy((mamaDateTime)field->mData.data, value);

-   

+

     return MAMA_STATUS_OK;

}

diff --git a/mama/c_cpp/src/c/fieldcache/fieldcachefieldimpl.c b/mama/c_cpp/src/c/fieldcache/fieldcachefieldimpl.c

index d28d7c6..03a3412 100644

--- a/mama/c_cpp/src/c/fieldcache/fieldcachefieldimpl.c

+++ b/mama/c_cpp/src/c/fieldcache/fieldcachefieldimpl.c

@@ -25,23 +25,7 @@

#include <string.h> /* For memcpy */

 /* Private functions - not exposed through the API interface */

-/*

-mama_status mamaFieldCacheField_getData(

-        const mamaFieldCacheField field,

-        void** data,

-        mama_u32_t* size)

-{

-    if (!field)

-    {

-        return MAMA_STATUS_NULL_ARG;

-    }

-   

-    *data = field->mData;

-    *size = field->mDataSize;

-   

-    return MAMA_STATUS_OK;

-}

-*/

+

mama_status mamaFieldCacheField_setDataValue(mamaFieldCacheField field,

                                              const void* data,

                                              mama_size_t size)

diff --git a/mama/c_cpp/src/c/fieldcache/fieldcachefieldimpl.h b/mama/c_cpp/src/c/fieldcache/fieldcachefieldimpl.h

index f950802..80d65ac 100644

--- a/mama/c_cpp/src/c/fieldcache/fieldcachefieldimpl.h

+++ b/mama/c_cpp/src/c/fieldcache/fieldcachefieldimpl.h

@@ -57,17 +57,15 @@ typedef union cacheData_

 typedef struct mamaFieldCacheFieldImpl_

{

-    /* DO NOT CHANGE THE ORDER - IT CAN BREAK THE MEMORY ALIGNMENT */

-

     /* Field identification */

     mamaFieldType mType;  /* 4 bytes */

     mama_fid_t mFid;      /* 2 bytes */

     /* This flag specifies if the field must never be published (0) or can be

      * published (1)

-     */   

+     */

     mama_bool_t mPublish; /* 1 byte */

-   

+

    /* This flag specifies if the field should be checked for modifications (1)

      * to decide if it must be published

      */

@@ -84,25 +82,17 @@ typedef struct mamaFieldCacheFieldImpl_

      * If the type is an opaque then it will contain the number of bytes.

      */

     mama_size_t mVectorSize;

-   

+

     /* Pointer to a field descriptor - NO COPY */

     mamaFieldDescriptor mDescriptor;

     /* Explicit field name - overrides the field descriptor name */

     const char* mName;

-   

+

     /* The current modification state of the field. */

     mama_bool_t mIsModified; /* 1 byte */

} mamaFieldCacheFieldImpl;

-/* Get the pointer to the internal data and the size of the memory allocated */

-/*

-mama_status

-mamaFieldCacheField_getData(

-    const mamaFieldCacheField field,

-    void** data,

-    mama_u32_t* size);

-*/

/* Copy size byte starting at pointer data to field to the internal field data.

  * New memory is allocated with malloc and old one is freed with free (if needed).

  */

@@ -135,4 +125,4 @@ mamaFieldCacheField_destroyDateTimeVector(mamaFieldCacheVector dateTimeVector);

}

#endif

-#endif /* MamaFieldCacheFieldImplH__ */

+#endif  /* MamaFieldCacheFieldImplH__ */

diff --git a/mama/c_cpp/src/c/fieldcache/fieldcacheimpl.c b/mama/c_cpp/src/c/fieldcache/fieldcacheimpl.c

index 5d42b6d..48cbf20 100644

--- a/mama/c_cpp/src/c/fieldcache/fieldcacheimpl.c

+++ b/mama/c_cpp/src/c/fieldcache/fieldcacheimpl.c

@@ -274,20 +274,12 @@ mama_status mamaFieldCache_updateCacheFromMsgField(mamaFieldCache fieldCache,

         case MAMA_FIELD_TYPE_VECTOR_PRICE:

         {

             /* TODO: mamaMsgField does not provide methods to get price vector

-            const mamaPrice* values = NULL;

-            mama_size_t size;

-            mamaMsgField_getVectorPrice(messageField, &values, &size);

-            mamaFieldCacheField_setPriceVector(field, values, size);

              */

             break;

         }

         case MAMA_FIELD_TYPE_VECTOR_TIME:

         {

             /* TODO: mamaMsgField does not provide methods to get time vector

-            const mamaDateTime* values = NULL;

-            mama_size_t size;

-            mamaMsgField_getVectorDateTime(messageField, &values, &size);

-            mamaFieldCacheField_setDateTimeVector(field, values, size);

              */

             break;

         }

@@ -662,8 +654,7 @@ mama_status mamaFieldCache_updateMsgField(mamaFieldCache fieldCache,

             {

                 return MAMA_STATUS_INVALID_ARG;

             }

-            status = /*useUpdate ? mamaMsg_updateVectorPrice(message, name, fid, values, size)

-                               : */mamaMsg_addVectorPrice(message, name, fid, values, size);

+            status = mamaMsg_addVectorPrice(message, name, fid, values, size);

             break;

         }

         case MAMA_FIELD_TYPE_VECTOR_TIME:

@@ -675,8 +666,7 @@ mama_status mamaFieldCache_updateMsgField(mamaFieldCache fieldCache,

             {

                 return MAMA_STATUS_INVALID_ARG;

             }

-            status = /*useUpdate ? mamaMsg_updateVectorTime(message, name, fid, values, size)

-                               : */mamaMsg_addVectorDateTime(message, name, fid, values, size);

+            status = mamaMsg_addVectorDateTime(message, name, fid, values, size);

             break;

         }

         default:

diff --git a/mama/c_cpp/src/c/fieldcache/fieldcachelist.h b/mama/c_cpp/src/c/fieldcache/fieldcachelist.h

index b5950f8..8a270df 100644

--- a/mama/c_cpp/src/c/fieldcache/fieldcachelist.h

+++ b/mama/c_cpp/src/c/fieldcache/fieldcachelist.h

@@ -46,7 +46,7 @@ typedef mamaFieldCacheListImpl* mamaFieldCacheList;

/**

  * Create a generic list.

  *

- * @param lsit (out) The list to create.

+ * @param list (out) The list to create.

  * @return Result of the operation.

  */

mama_status

@@ -132,4 +132,4 @@ mamaFieldCacheList_getSize(mamaFieldCacheList list, mama_size_t* size);

}

#endif

-#endif /* MamaFieldCacheListH__ */

+#endif  /* MamaFieldCacheListH__ */

diff --git a/mama/c_cpp/src/c/fieldcache/fieldcachemap.c b/mama/c_cpp/src/c/fieldcache/fieldcachemap.c

index 0a399fd..2407ceb 100644

--- a/mama/c_cpp/src/c/fieldcache/fieldcachemap.c

+++ b/mama/c_cpp/src/c/fieldcache/fieldcachemap.c

@@ -21,17 +21,13 @@

 #include "fieldcachemap.h"

#include "fieldcachemaparray.h"

-#include "fieldcachemapbinary.h"

-#include "fieldcachemapmonitor.h"

#include <assert.h>

 const mamaFieldCacheMapType gMamaFieldCacheMapType = MAMAFIELDCACHE_MAP_MODE_ARRAY;

-const mama_bool_t gUseMamaFieldCacheMapMonitor = 0;

 mama_status mamaFieldCacheMap_create(mamaFieldCacheMap* map)

{

     mamaFieldCacheMap localMap = NULL;

-    mamaFieldCacheMap monitorMap = NULL;

     mama_status ret = MAMA_STATUS_NULL_ARG;

     assert(map);

@@ -42,22 +38,11 @@ mama_status mamaFieldCacheMap_create(mamaFieldCacheMap* map)

             ret = mamaFieldCacheMapArray_create(&localMap);

             break;

         case MAMAFIELDCACHE_MAP_MODE_BINARY:

-            ret = mamaFieldCacheMapBinary_create(&localMap);

             break;

         default:

             break;

     }

-    if(ret == MAMA_STATUS_OK && gUseMamaFieldCacheMapMonitor)

-    {

-        ret = mamaFieldCacheMapMonitor_create(&monitorMap, localMap);

-        if(ret == MAMA_STATUS_OK)

-        {

-            localMap = monitorMap;

-        }

-        /* If something went wrong, go on without the monitor */

-    }

-

     /* Return the map. */

     *map = localMap;

diff --git a/mama/c_cpp/src/c/fieldcache/fieldcachemap.h b/mama/c_cpp/src/c/fieldcache/fieldcachemap.h

index 286e781..16be477 100644

--- a/mama/c_cpp/src/c/fieldcache/fieldcachemap.h

+++ b/mama/c_cpp/src/c/fieldcache/fieldcachemap.h

@@ -83,8 +83,7 @@ typedef enum

} mamaFieldCacheMapType;

 extern const mamaFieldCacheMapType gMamaFieldCacheMapType;

-extern const mama_bool_t gUseMamaFieldCacheMapMonitor;

-       

+

mama_status

mamaFieldCacheMap_create(mamaFieldCacheMap* map);

diff --git a/mama/c_cpp/src/c/fieldcache/fieldcachemapbinary.c b/mama/c_cpp/src/c/fieldcache/fieldcachemapbinary.c

deleted file mode 100644

index 8014312..0000000

--- a/mama/c_cpp/src/c/fieldcache/fieldcachemapbinary.c

+++ /dev/null

@@ -1,79 +0,0 @@

-/* $Id$

- *

- * OpenMAMA: The open middleware agnostic messaging API

- * Copyright (C) 2011 NYSE Technologies, Inc.

- *

- * This library is free software; you can redistribute it and/or

- * modify it under the terms of the GNU Lesser General Public

- * License as published by the Free Software Foundation; either

- * version 2.1 of the License, or (at your option) any later version.

- *

- * This library is distributed in the hope that it will be useful,

- * but WITHOUT ANY WARRANTY; without even the implied warranty of

- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU

- * Lesser General Public License for more details.

- *

- * You should have received a copy of the GNU Lesser General Public

- * License along with this library; if not, write to the Free Software

- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA

- * 02110-1301 USA

- */

-

-#include "fieldcachemapbinary.h"

-

-mama_status mamaFieldCacheMapBinary_create(mamaFieldCacheMap* map)

-{

-    return MAMA_STATUS_NOT_IMPLEMENTED;

-}

-

-mama_status mamaFieldCacheMapBinary_destroy(mamaFieldCacheMap map)

-{

-    return MAMA_STATUS_NOT_IMPLEMENTED;

-}

-

-mama_status mamaFieldCacheMapBinary_add(mamaFieldCacheMap map,

-                                        mamaFieldCacheField field)

-{

-    return MAMA_STATUS_NOT_IMPLEMENTED;

-}

-

-mama_status mamaFieldCacheMapBinary_find(mamaFieldCacheMap map,

-                                         mama_fid_t fid,

-                                         mamaFieldType type,

-                                         const char* name,

-                                         mamaFieldCacheField* field)

-{

-    return MAMA_STATUS_NOT_IMPLEMENTED;

-}

-

-mama_status mamaFieldCacheMapBinary_clear(mamaFieldCacheMap map)

-{

-    return MAMA_STATUS_NOT_IMPLEMENTED;

-}

-

-/* Iterator */

-mama_status mamaFieldCacheMapIteratorBinary_create(mamaFieldCacheIterator* iterator,

-                                                   mamaFieldCacheMap map)

-{

-    return MAMA_STATUS_NOT_IMPLEMENTED;

-}

-

-mama_status mamaFieldCacheMapIteratorBinary_destroy(mamaFieldCacheIterator iterator)

-{

-    return MAMA_STATUS_NOT_IMPLEMENTED;

-}

-

-mamaFieldCacheField mamaFieldCacheMapIteratorBinary_next(mamaFieldCacheIterator iterator)

-{

-    return NULL;

-}

-

-mama_bool_t mamaFieldCacheMapIteratorBinary_hasNext(mamaFieldCacheIterator iterator)

-{

-    return MAMA_STATUS_NOT_IMPLEMENTED;

-}

-

-mamaFieldCacheField mamaFieldCacheMapIteratorBinary_begin(mamaFieldCacheIterator iterator)

-{

-    return NULL;

-}

diff --git a/mama/c_cpp/src/c/fieldcache/fieldcachemapbinary.h b/mama/c_cpp/src/c/fieldcache/fieldcachemapbinary.h

deleted file mode 100644

index f91a9d6..0000000

--- a/mama/c_cpp/src/c/fieldcache/fieldcachemapbinary.h

+++ /dev/null

@@ -1,72 +0,0 @@

-/* $Id$

- *

- * OpenMAMA: The open middleware agnostic messaging API

- * Copyright (C) 2011 NYSE Technologies, Inc.

- *

- * This library is free software; you can redistribute it and/or

- * modify it under the terms of the GNU Lesser General Public

- * License as published by the Free Software Foundation; either

- * version 2.1 of the License, or (at your option) any later version.

- *

- * This library is distributed in the hope that it will be useful,

- * but WITHOUT ANY WARRANTY; without even the implied warranty of

- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU

- * Lesser General Public License for more details.

- *

- * You should have received a copy of the GNU Lesser General Public

- * License along with this library; if not, write to the Free Software

- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA

- * 02110-1301 USA

- */

-

-#ifndef MamaFieldCacheMapBinaryH__

-#define MamaFieldCacheMapBinaryH__

-

-#include "fieldcachemap.h"

-

-#if defined( __cplusplus )

-extern "C" {

-#endif /* defined( __cplusplus ) */

-

-typedef struct mamaFieldCacheMapBinaryImpl_

-{

-    /* The base structure must appear first. */

-    mamaFieldCacheMapImpl mBaseMap;

-

-} mamaFieldCacheMapBinaryImpl;

-

-typedef struct mamaFieldCacheMapBinaryImpl_* mamaFieldCacheMapBinary;

-

-/* Map */

-mama_status mamaFieldCacheMapBinary_create(mamaFieldCacheMap* map);

-

-mama_status mamaFieldCacheMapBinary_destroy(mamaFieldCacheMap map);

-

-mama_status mamaFieldCacheMapBinary_add(mamaFieldCacheMap map,

-                                        mamaFieldCacheField field);

-

-mama_status mamaFieldCacheMapBinary_find(mamaFieldCacheMap map,

-                                         mama_fid_t fid,

-                                         mamaFieldType type,

-                                         const char* name,

-                                         mamaFieldCacheField* field);

-

-mama_status mamaFieldCacheMapBinary_clear(mamaFieldCacheMap map);

-

-/* Iterator */

-mama_status mamaFieldCacheMapIteratorBinary_create(mamaFieldCacheIterator* iterator,

-                                                   mamaFieldCacheMap map);

-

-mama_status mamaFieldCacheMapIteratorBinary_destroy(mamaFieldCacheIterator iterator);

-

-mamaFieldCacheField mamaFieldCacheMapIteratorBinary_next(mamaFieldCacheIterator iterator);

-

-mama_bool_t mamaFieldCacheMapIteratorBinary_hasNext(mamaFieldCacheIterator iterator);

-

-mamaFieldCacheField mamaFieldCacheMapIteratorBinary_begin(mamaFieldCacheIterator iterator);

-

-#if defined( __cplusplus )

-}

-#endif /* defined( __cplusplus ) */

-

-#endif /* MamaFieldCacheMapBinaryH__ */

diff --git a/mama/c_cpp/src/c/fieldcache/fieldcachemapmonitor.c b/mama/c_cpp/src/c/fieldcache/fieldcachemapmonitor.c

deleted file mode 100644

index 5c942a2..0000000

--- a/mama/c_cpp/src/c/fieldcache/fieldcachemapmonitor.c

+++ /dev/null

@@ -1,74 +0,0 @@

-/* $Id$

- *

- * OpenMAMA: The open middleware agnostic messaging API

- * Copyright (C) 2011 NYSE Technologies, Inc.

- *

- * This library is free software; you can redistribute it and/or

- * modify it under the terms of the GNU Lesser General Public

- * License as published by the Free Software Foundation; either

- * version 2.1 of the License, or (at your option) any later version.

- *

- * This library is distributed in the hope that it will be useful,

- * but WITHOUT ANY WARRANTY; without even the implied warranty of

- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU

- * Lesser General Public License for more details.

- *

- * You should have received a copy of the GNU Lesser General Public

- * License along with this library; if not, write to the Free Software

- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA

- * 02110-1301 USA

- */

-

-#include "fieldcachemapmonitor.h"

-

-mama_status mamaFieldCacheMapMonitor_create(mamaFieldCacheMap* map,

-                                            mamaFieldCacheMap originalMap)

-{

-    mamaFieldCacheMapMonitor mapMonitor =

-             (mamaFieldCacheMapMonitor)calloc(1, sizeof(mamaFieldCacheMapMonitorImpl));

-

-              if(map == NULL)

-    {

-        return MAMA_STATUS_INVALID_ARG;

-    }

-             

-    if(mapMonitor == NULL)

-    {

-        return MAMA_STATUS_NOMEM;

-    }

-

-    mapMonitor->mOriginalMap = originalMap;

-    *map = (mamaFieldCacheMap)mapMonitor;

-    return MAMA_STATUS_OK;

-}

-

-mama_status mamaFieldCacheMapMonitor_destroy(mamaFieldCacheMap map)

-{

-    mamaFieldCacheMapMonitor mapMonitor = (mamaFieldCacheMapMonitor)map;

-    mamaFieldCacheMap_destroy(mapMonitor->mOriginalMap);

-    free(mapMonitor);

-    return MAMA_STATUS_OK;

-}

-

-mama_status mamaFieldCacheMapMonitor_clear(mamaFieldCacheMap map)

-{

-    mamaFieldCacheMapMonitor mapMonitor = (mamaFieldCacheMapMonitor)map;

-    return mamaFieldCacheMap_clear(mapMonitor->mOriginalMap);

-}

-

-mama_status mamaFieldCacheMapMonitor_add(mamaFieldCacheMap map,

-                                         mamaFieldCacheField field)

-{

-    mamaFieldCacheMapMonitor mapMonitor = (mamaFieldCacheMapMonitor)map;

-    return mamaFieldCacheMap_add(mapMonitor->mOriginalMap, field);

-}

-

-mama_status mamaFieldCacheMapMonitor_find(mamaFieldCacheMap map,

-                                          mama_fid_t fid,

-                                          mamaFieldType type,

-                                          const char* name,

-                                          mamaFieldCacheField* field)

-{

-    mamaFieldCacheMapMonitor mapMonitor = (mamaFieldCacheMapMonitor)map;

-    return mamaFieldCacheMap_find(mapMonitor->mOriginalMap, fid, type, name, field);

-}

diff --git a/mama/c_cpp/src/c/fieldcache/fieldcachemapmonitor.h b/mama/c_cpp/src/c/fieldcache/fieldcachemapmonitor.h

deleted file mode 100644

index 62e152f..0000000

--- a/mama/c_cpp/src/c/fieldcache/fieldcachemapmonitor.h

+++ /dev/null

@@ -1,64 +0,0 @@

-/* $Id$

- *

- * OpenMAMA: The open middleware agnostic messaging API

- * Copyright (C) 2011 NYSE Technologies, Inc.

- *

- * This library is free software; you can redistribute it and/or

- * modify it under the terms of the GNU Lesser General Public

- * License as published by the Free Software Foundation; either

- * version 2.1 of the License, or (at your option) any later version.

- *

- * This library is distributed in the hope that it will be useful,

- * but WITHOUT ANY WARRANTY; without even the implied warranty of

- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU

- * Lesser General Public License for more details.

- *

- * You should have received a copy of the GNU Lesser General Public

- * License along with this library; if not, write to the Free Software

- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA

- * 02110-1301 USA

- */

-

-#ifndef MamaFieldCacheMapMonitorH__

-#define MamaFieldCacheMapMonitorH__

-

-#include "fieldcachemap.h"

-

-#if defined( __cplusplus )

-extern "C" {

-#endif /* defined( __cplusplus ) */

-

-typedef struct mamaFieldCacheMapMonitorImpl_

-{

-    /* The base structure must appear first. */

-    mamaFieldCacheMapImpl mBaseMap;

-    mamaFieldCacheMap mOriginalMap;

-} mamaFieldCacheMapMonitorImpl;

-

-typedef struct mamaFieldCacheMapMonitorImpl_* mamaFieldCacheMapMonitor;

-

-/* map will take ownership of originalMap; it will be destroyed when calling

- * mamaFieldCacheMapMonitor_destroy

- */

-mama_status mamaFieldCacheMapMonitor_create(mamaFieldCacheMap* map,

-                                            mamaFieldCacheMap originalMap);

-

-/* This function will also destroy the original map */

-mama_status mamaFieldCacheMapMonitor_destroy(mamaFieldCacheMap map);

-

-mama_status mamaFieldCacheMapMonitor_clear(mamaFieldCacheMap map);

-

-mama_status mamaFieldCacheMapMonitor_add(mamaFieldCacheMap map,

-                                         mamaFieldCacheField field);

-

-mama_status mamaFieldCacheMapMonitor_find(mamaFieldCacheMap map,

-                                          mama_fid_t fid,

-                                          mamaFieldType type,

-                                          const char* name,

-                                          mamaFieldCacheField* field);

-

-#if defined( __cplusplus )

-}

-#endif /* defined( __cplusplus ) */

-

-#endif /* MamaFieldCacheMapMonitorH__ */

diff --git a/mama/c_cpp/src/c/mamac.vcproj b/mama/c_cpp/src/c/mamac.vcproj

index f92aff0..3958967 100644

--- a/mama/c_cpp/src/c/mamac.vcproj

+++ b/mama/c_cpp/src/c/mamac.vcproj

@@ -398,18 +398,10 @@

                                                               >

                                               </File>

                                               <File

-                                                              RelativePath=".\fieldcache\fieldcachemapbinary.c"

-                                                              >

-                                              </File>

-                                              <File

                                                               RelativePath=".\fieldcache\fieldcachemap.c"

                                                               >

                                               </File>

                                               <File

-                                                              RelativePath=".\fieldcache\fieldcachemapmonitor.c"

-                                                              >

-                                              </File>

-                                              <File

                                                               RelativePath=".\fieldcache\fieldcacherecord.c"

                                                               >

                                               </File>

@@ -728,14 +720,6 @@

                                                               >

                                               </File>

                                               <File

-                                                              RelativePath=".\fieldcache\fieldcachemapmonitor.h"

-                                                              >

-                                              </File>

-                                              <File

-                                                              RelativePath=".\fieldcache\fieldcachemapbinary.h"

-                                                              >

-                                              </File>

-                                              <File

                                                               RelativePath=".\fieldcache\fieldcachemaparray.h"

                                                               >

                                               </File>

diff --git a/mama/c_cpp/src/cpp/mama/fieldcache/MamaFieldCacheFieldTypes.h b/mama/c_cpp/src/cpp/mama/fieldcache/MamaFieldCacheFieldTypes.h

index 30242f7..79c8713 100644

--- a/mama/c_cpp/src/cpp/mama/fieldcache/MamaFieldCacheFieldTypes.h

+++ b/mama/c_cpp/src/cpp/mama/fieldcache/MamaFieldCacheFieldTypes.h

@@ -535,14 +535,6 @@ void setFieldValue(MamaFieldCacheField& field, const MamaPrice& value);

  */

void setFieldValue(MamaFieldCacheField& field, const MamaDateTime& value);

-/*

-template <class Field, class Value>

-void setFieldValue(MamaFieldCacheField& field, const Value& value)

-{

-    Field setField;

-    setField.set(field, value);

-}

-*/

 template <mamaFieldType fieldType>

class Type

--

1.8.3.1

 


This message may contain confidential information and is intended for specific recipients unless explicitly noted otherwise. If you have reason to believe you are not an intended recipient of this message, please delete it and notify the sender. This message may not represent the opinion of Intercontinental Exchange, Inc. (ICE), Euronext or any of their subsidiaries or affiliates, and does not constitute a contract or guarantee. Unencrypted electronic mail is not secure and the recipient of this message is expected to provide safeguards from viruses and pursue alternate means of communication where privacy or a binding message is desired.


Re: Bug#745099: openmama: FTBFS with Java 8: class MamdaLock is public, should be declared in a file named MamdaLock.java

Damian Maguire <DMaguire@...>
 

Cheers for that Emmanuel, and Daniel for forwarding it on. We'll take a look and get this merged into upstream as soon as possible.

Thanks, 

Damian

From: Daniel Pocock <daniel@...>
Date: Friday, August 8, 2014 2:48 PM
To: "'openmama-dev@...'" <openmama-dev@...>, "745099@..." <745099@...>, Emmanuel Bourg <ebourg@...>
Subject: [Openmama-dev] Fwd: Re: Bug#745099: openmama: FTBFS with Java 8: class MamdaLock is public, should be declared in a file named MamdaLock.java



Emmanuel, thanks for this fix, I'm sending it to the OpenMAMA developers for inclusion upstream


-------- Original Message --------
Subject: Re: Bug#745099: openmama: FTBFS with Java 8: class MamdaLock is public, should be declared in a file named MamdaLock.java
Date: Fri, 08 Aug 2014 15:38:05 +0200
From: Emmanuel Bourg <ebourg@...>
To: 745099@..., Daniel Pocock <daniel@...>


Control: tags -1 patch

Here is a patch fixing this issue. Java 8 was simply not recognized as
Java 5 or later by the Ant build, this skipped the logic to rename
MamdaLock15.java into MamdaLock.java and triggered a compiler error.

Emmanuel Bourg





This message may contain confidential information and is intended for specific recipients unless explicitly noted otherwise. If you have reason to believe you are not an intended recipient of this message, please delete it and notify the sender. This message may not represent the opinion of Intercontinental Exchange, Inc. (ICE), Euronext or any of their subsidiaries or affiliates, and does not constitute a contract or guarantee. Unencrypted electronic mail is not secure and the recipient of this message is expected to provide safeguards from viruses and pursue alternate means of communication where privacy or a binding message is desired.


Re: Bug#745099: openmama: FTBFS with Java 8: class MamdaLock is public, should be declared in a file named MamdaLock.java

Daniel Pocock
 



Emmanuel, thanks for this fix, I'm sending it to the OpenMAMA developers for inclusion upstream


-------- Original Message --------
Subject: Re: Bug#745099: openmama: FTBFS with Java 8: class MamdaLock is public, should be declared in a file named MamdaLock.java
Date: Fri, 08 Aug 2014 15:38:05 +0200
From: Emmanuel Bourg <ebourg@...>
To: 745099@..., Daniel Pocock <daniel@...>


Control: tags -1 patch

Here is a patch fixing this issue. Java 8 was simply not recognized as
Java 5 or later by the Ant build, this skipped the logic to rename
MamdaLock15.java into MamdaLock.java and triggered a compiler error.

Emmanuel Bourg





Re: Question about openWithProperties

Damian Maguire
 

Hey Tom, 

Thanks for raising that, it definitely looks like a bug to me, and the fix seems straight forward. We'd be happy to accept a patch fixing the issue, or you can raise it in Bugzilla and we'll track getting a fix in there.

Cheers, 

Damian


On Thu, Aug 7, 2014 at 10:26 AM, Tom Doust <tom.doust@...> wrote:

Hi

 

We have just come across this little oddity and wonder if anyone can throw any light on what is supposed to be happening

 

I notice from the source to the C# implementation of Open Mama 2.3.0, that the following code:

        public static void open ()
        {       
            initGetVersionWrapper();
            MamaWrapper.CheckResultCode(NativeMethods.mama_open());
            Interlocked.Increment(ref mMamaopen);
        }

increments the mMamaopen flag, whereas the code:

        public static void openWithProperties (string path, string filename)
        {
            initGetVersionWrapper();
            MamaWrapper.CheckResultCode (NativeMethods.mama_openWithProperties (path, filename));
        }

does not. The transport's destroy() method does nothing unless mMamaopen is non-zero, and that is causing me problems when I try to shutdown an application that uses openWithProperties.  Making an additional call to open() gets round the problem but doesn’t really seem to be the right thing to do. Assuming it is necessary should I expect to call open() before or after openWithProperties()


Has anyone come across this issue?

 

Tom

TOM DOUST | Head of Consultancy                                                                                                         


TICK42

P: +44 (0) 1628 477444 | M: +44 (0) 7710 479924 | E: tom.doust@... | skype:  tom.doust |  http://www.tick42.com  


 

 


_______________________________________________
Openmama-dev mailing list
Openmama-dev@...
https://lists.openmama.org/mailman/listinfo/openmama-dev



Question about openWithProperties

Tom Doust
 

Hi

 

We have just come across this little oddity and wonder if anyone can throw any light on what is supposed to be happening

 

I notice from the source to the C# implementation of Open Mama 2.3.0, that the following code:

        public static void open ()
        {       
            initGetVersionWrapper();
            MamaWrapper.CheckResultCode(NativeMethods.mama_open());
            Interlocked.Increment(ref mMamaopen);
        }

increments the mMamaopen flag, whereas the code:

        public static void openWithProperties (string path, string filename)
        {
            initGetVersionWrapper();
            MamaWrapper.CheckResultCode (NativeMethods.mama_openWithProperties (path, filename));
        }

does not. The transport's destroy() method does nothing unless mMamaopen is non-zero, and that is causing me problems when I try to shutdown an application that uses openWithProperties.  Making an additional call to open() gets round the problem but doesn’t really seem to be the right thing to do. Assuming it is necessary should I expect to call open() before or after openWithProperties()


Has anyone come across this issue?

 

Tom

TOM DOUST | Head of Consultancy                                                                                                         


TICK42

P: +44 (0) 1628 477444 | M: +44 (0) 7710 479924 | E: tom.doust@... | skype:  tom.doust |  http://www.tick42.com  


 

 


Re: [PATCH] MAMA: Made logging more accurate in MAMA Ft

Damian Maguire <DMaguire@...>
 

Cheers Frank, 

Raised this as BZ155. Simple change, so it should hit next shortly.

Cheers, 

D

From: Frank Quinn <fquinn@...>
Date: Tuesday, July 29, 2014 9:41 AM
To: "openmama-dev@..." <openmama-dev@...>
Subject: [Openmama-dev] [PATCH] MAMA: Made logging more accurate in MAMA Ft

In some MAMA FT Timers, the timer callback always reports that it is a

"multicast" FT type, when in fact that code is shared for all FT types.

This is misleading to the MAMA application developer who is trying to

troubleshoot FT issues, so this patch will make the logging a little

more clear.

 

Signed-off-by: Frank Quinn <fquinn@...>

---

mama/c_cpp/src/c/ft.c | 4 ++--

1 file changed, 2 insertions(+), 2 deletions(-)

 

diff --git a/mama/c_cpp/src/c/ft.c b/mama/c_cpp/src/c/ft.c

index c5b2c85..dca288b 100644

--- a/mama/c_cpp/src/c/ft.c

+++ b/mama/c_cpp/src/c/ft.c

@@ -628,7 +628,7 @@ ftHeartbeatTimerCb (mamaTimer          timer,

                          void*              closure)

{

     mamaFtMemberImpl* impl = (mamaFtMemberImpl*)closure;

-    mama_log (MAMA_LOG_LEVEL_FINEST, "MAMA multicast FT: heartbeat timer has fired");

+    mama_log (MAMA_LOG_LEVEL_FINEST, "MAMA FT: heartbeat timer has fired");

     impl->myHeartbeatTick++;

     impl->ftSendHeartbeat (impl);

}

@@ -639,7 +639,7 @@ ftTimeoutTimerCb (mamaTimer          timer,

{

     mamaFtMemberImpl* impl = (mamaFtMemberImpl*)closure;

     mama_log (MAMA_LOG_LEVEL_FINE,

-              "MAMA multicast FT: timeout timer has fired; Going Active");

+              "MAMA FT: timeout timer has fired; Going Active");

     foundheartbeat=0;

--

1.9.3

 


This message may contain confidential information and is intended for specific recipients unless explicitly noted otherwise. If you have reason to believe you are not an intended recipient of this message, please delete it and notify the sender. This message may not represent the opinion of Intercontinental Exchange, Inc. (ICE), Euronext or any of their subsidiaries or affiliates, and does not constitute a contract or guarantee. Unencrypted electronic mail is not secure and the recipient of this message is expected to provide safeguards from viruses and pursue alternate means of communication where privacy or a binding message is desired.

This message may contain confidential information and is intended for specific recipients unless explicitly noted otherwise. If you have reason to believe you are not an intended recipient of this message, please delete it and notify the sender. This message may not represent the opinion of Intercontinental Exchange, Inc. (ICE), Euronext or any of their subsidiaries or affiliates, and does not constitute a contract or guarantee. Unencrypted electronic mail is not secure and the recipient of this message is expected to provide safeguards from viruses and pursue alternate means of communication where privacy or a binding message is desired.


[PATCH] MAMA: Made logging more accurate in MAMA Ft

Frank Quinn <fquinn@...>
 

In some MAMA FT Timers, the timer callback always reports that it is a

"multicast" FT type, when in fact that code is shared for all FT types.

This is misleading to the MAMA application developer who is trying to

troubleshoot FT issues, so this patch will make the logging a little

more clear.

 

Signed-off-by: Frank Quinn <fquinn@...>

---

mama/c_cpp/src/c/ft.c | 4 ++--

1 file changed, 2 insertions(+), 2 deletions(-)

 

diff --git a/mama/c_cpp/src/c/ft.c b/mama/c_cpp/src/c/ft.c

index c5b2c85..dca288b 100644

--- a/mama/c_cpp/src/c/ft.c

+++ b/mama/c_cpp/src/c/ft.c

@@ -628,7 +628,7 @@ ftHeartbeatTimerCb (mamaTimer          timer,

                          void*              closure)

{

     mamaFtMemberImpl* impl = (mamaFtMemberImpl*)closure;

-    mama_log (MAMA_LOG_LEVEL_FINEST, "MAMA multicast FT: heartbeat timer has fired");

+    mama_log (MAMA_LOG_LEVEL_FINEST, "MAMA FT: heartbeat timer has fired");

     impl->myHeartbeatTick++;

     impl->ftSendHeartbeat (impl);

}

@@ -639,7 +639,7 @@ ftTimeoutTimerCb (mamaTimer          timer,

{

     mamaFtMemberImpl* impl = (mamaFtMemberImpl*)closure;

     mama_log (MAMA_LOG_LEVEL_FINE,

-              "MAMA multicast FT: timeout timer has fired; Going Active");

+              "MAMA FT: timeout timer has fired; Going Active");

     foundheartbeat=0;

--

1.9.3

 


This message may contain confidential information and is intended for specific recipients unless explicitly noted otherwise. If you have reason to believe you are not an intended recipient of this message, please delete it and notify the sender. This message may not represent the opinion of Intercontinental Exchange, Inc. (ICE), Euronext or any of their subsidiaries or affiliates, and does not constitute a contract or guarantee. Unencrypted electronic mail is not secure and the recipient of this message is expected to provide safeguards from viruses and pursue alternate means of communication where privacy or a binding message is desired.


Re: OpenMAMA Contribution Ideas

Damian Maguire <DMaguire@...>
 

Just a couple of additional ideas that have filtered in for implementation:

Easy:
  • Add support for an "Application ID" entitlement property.
Medium:
  • Implement the DQPublisher in the C# wrapper

Cheers, 

D

From: Damian Maguire <dmaguire@...>
Date: Thursday, July 17, 2014 10:20 AM
To: "openmama-dev@..." <openmama-dev@...>
Subject: [Openmama-dev] OpenMAMA Contribution Ideas

Morning all, 

I'm aware there's a few of you out there who would be interested in contributing further to OpenMAMA, but who aren't really sure of where to start. As such, we've started to pull together a list of some of the outstanding tasks which interested contributors could tackle. This list is going to be maintained going forward on the OpenMAMA Wiki here, and I'll be sending regular updates as various tasks are added and completed. 

I've tried to break up the tasks into the level of effort associated with each – easy tasks should require at most a couple of hours, medium tasks will likely take a little more effort, potentially into the days, or have a higher level of technical difficulty, and hard tasks are either going to require extended work, or provide a large technical challenge.

Easy
  • Adapt existing code to follow the OpenMAMA Coding Standards.
  • Tidy up the formatting of the output of the mamasubscriber example applications.
  • Port the mamamultisubscriber app to C++, Java and C#
Medium 
  • Implement a standard MAMA level toString
  • Implement support for DESTDIR in Scons
  • Check support for Java 1.8
  • Implement a generic command line parser, which handles common arguments for example applications.
  • Fix issues raised by static analysis tools (Clang scan build, Asan etc).
  • Fix compiler warnings.
Hard
  • Reimplement the CaptureReplayC application.
  • Add support for addition of SONAME to SCons Shared Library builds:
  • Implement a common timer reset method:
  • Provide a common implementation for MAMAIO

This is certainly not everything that needs done in OpenMAMA, but should provide something interesting for most contributors. If you can think of something that would fit on the list, feel free to drop me a mail (and ensure it's been raised in Bugzilla). If you're interested in taking on some of these tasks, assign them to yourself on Bugzilla, and send a mail to the rest of the list. We can then provide any help that's required either on the ticket, or through on list comments.

As always, any questions let me know.

Cheers, 

D

Damian Maguire – Senior R&D and OpenMAMA Specialist
IntercontinentalExchange | NYSE Technologies
24-26 Adelaide Exchange | Belfast, BT2 8GD
Tel: +44 2890 822 282 (ext: 452161) | Mob: +44 7540 204 077

This message may contain confidential information and is intended for specific recipients unless explicitly noted otherwise. If you have reason to believe you are not an intended recipient of this message, please delete it and notify the sender. This message may not represent the opinion of Intercontinental Exchange, Inc. (ICE), Euronext or any of their subsidiaries or affiliates, and does not constitute a contract or guarantee. Unencrypted electronic mail is not secure and the recipient of this message is expected to provide safeguards from viruses and pursue alternate means of communication where privacy or a binding message is desired.

This message may contain confidential information and is intended for specific recipients unless explicitly noted otherwise. If you have reason to believe you are not an intended recipient of this message, please delete it and notify the sender. This message may not represent the opinion of Intercontinental Exchange, Inc. (ICE), Euronext or any of their subsidiaries or affiliates, and does not constitute a contract or guarantee. Unencrypted electronic mail is not secure and the recipient of this message is expected to provide safeguards from viruses and pursue alternate means of communication where privacy or a binding message is desired.


OpenMAMA Contribution Ideas

Damian Maguire <DMaguire@...>
 

Morning all, 

I'm aware there's a few of you out there who would be interested in contributing further to OpenMAMA, but who aren't really sure of where to start. As such, we've started to pull together a list of some of the outstanding tasks which interested contributors could tackle. This list is going to be maintained going forward on the OpenMAMA Wiki here, and I'll be sending regular updates as various tasks are added and completed. 

I've tried to break up the tasks into the level of effort associated with each – easy tasks should require at most a couple of hours, medium tasks will likely take a little more effort, potentially into the days, or have a higher level of technical difficulty, and hard tasks are either going to require extended work, or provide a large technical challenge.

Easy
  • Adapt existing code to follow the OpenMAMA Coding Standards.
  • Tidy up the formatting of the output of the mamasubscriber example applications.
  • Port the mamamultisubscriber app to C++, Java and C#
Medium 
  • Implement a standard MAMA level toString
  • Implement support for DESTDIR in Scons
  • Check support for Java 1.8
  • Implement a generic command line parser, which handles common arguments for example applications.
  • Fix issues raised by static analysis tools (Clang scan build, Asan etc).
  • Fix compiler warnings.
Hard
  • Reimplement the CaptureReplayC application.
  • Add support for addition of SONAME to SCons Shared Library builds:
  • Implement a common timer reset method:
  • Provide a common implementation for MAMAIO

This is certainly not everything that needs done in OpenMAMA, but should provide something interesting for most contributors. If you can think of something that would fit on the list, feel free to drop me a mail (and ensure it's been raised in Bugzilla). If you're interested in taking on some of these tasks, assign them to yourself on Bugzilla, and send a mail to the rest of the list. We can then provide any help that's required either on the ticket, or through on list comments.

As always, any questions let me know.

Cheers, 

D

Damian Maguire – Senior R&D and OpenMAMA Specialist
IntercontinentalExchange | NYSE Technologies
24-26 Adelaide Exchange | Belfast, BT2 8GD
Tel: +44 2890 822 282 (ext: 452161) | Mob: +44 7540 204 077

This message may contain confidential information and is intended for specific recipients unless explicitly noted otherwise. If you have reason to believe you are not an intended recipient of this message, please delete it and notify the sender. This message may not represent the opinion of Intercontinental Exchange, Inc. (ICE), Euronext or any of their subsidiaries or affiliates, and does not constitute a contract or guarantee. Unencrypted electronic mail is not secure and the recipient of this message is expected to provide safeguards from viruses and pursue alternate means of communication where privacy or a binding message is desired.


OpenMAMA Library Manager - Second Draft (0.2) Release

Lee Skillen <lskillen@...>
 

[Note: This is a cross-post from the Library Manager Working Group - If you're not familiar with the goals of the working group or the library manager project, please refer to the links within the release documentation below.]

Working Group,

Continuing on the from 0.1 release, Ross (Geddis) has been diligently working through the to-do list that we identified and has now produced a draft 0.2 release for review.  The release documentation, which details the changes between 0.1 and 0.2, is available via Google Docs at: http://goo.gl/ka94dK

As usual, all work is hosted within the feature-librarymanager branch of our github-based OpenMAMA fork, located at:

https://github.com/vulcanft/openmama/releases (tags that can be retrieved as source distributions)

Thank you to those that have contributed feedback to the project so far - Continued feedback and assistance is genuinely appreciated.

Cheers,
Lee

--
Lee Skillen

Vulcan Financial Technologies
1st Floor, 47 Malone Road, Belfast, BT9 6RY

Office:  +44 (0)28 95 817888
Web:     www.vulcanft.com 

1001 - 1020 of 2305