Plugin loader for MAMA


Ian Bell <IBell@...>
 

Hi

 

I have been looking at adding a plugin loader functionality to MAMA.  The idea being that it would a simple standard interface to add extra functionality alongside MAMA.

The functionality is limited to a loadPlugin interface to MAMA which loads a library and calls an init function on the plugin library.

MAMA will then close the library on shutdown / mama_close.

 

Currently the init function just passes a void* but was intending to add a structure instead which could be queried on loaded plugins

 

eg

typedef struct mamaPlugin_

{

    const char* pluginName;

    const char* pluginVersion;

    HANDLE libHandle;

} mamaPlugin;

 

Further enhancement could involve loading for libraries in a specific location and automatically loading the plugins found there rather than explicit loading.

 

We have a simple usecase for this but wanted to see if anyone else would fine this useful and the interface would accommodate their needs.

I have attached a patch showing what it looks like currently.  This is not the final version or ready for submission, it’s just to aid discussion.

 

Thanks,

Ian


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 IntercontinentalExchange Group, Inc. (ICE), NYSE 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.


Sanjeev Wahi <wahi@...>
 

I think it is a very good idea. The current main focus of our business is to develop/migrate Financial Market-Data/Quant Value Add Applications using OpenMAMA Technologies & other Open Source Technologies.

 

Especially, while migrating/upgrading from other Market Data APIs if something missing, it can be added in a unified way(customized to various client requirements).

 

 

Also, not now, may be in distant future we may also use it for Pub/Sub sensor data applications. This feature would be handy for loading some sensor specific plugins (Acoustic sensor, Image sensor etc.)  

 

 

-Thanks,

Sanjeev

 

 

 

 

 

From: openmama-dev-bounces@... [mailto:openmama-dev-bounces@...] On Behalf Of Ian Bell
Sent: Monday, March 10, 2014 4:31 AM
To: openmama-dev@...
Subject: [Openmama-dev] Plugin loader for MAMA

 

Hi

 

I have been looking at adding a plugin loader functionality to MAMA.  The idea being that it would a simple standard interface to add extra functionality alongside MAMA.

The functionality is limited to a loadPlugin interface to MAMA which loads a library and calls an init function on the plugin library.

MAMA will then close the library on shutdown / mama_close.

 

Currently the init function just passes a void* but was intending to add a structure instead which could be queried on loaded plugins

 

eg

typedef struct mamaPlugin_

{

    const char* pluginName;

    const char* pluginVersion;

    HANDLE libHandle;

} mamaPlugin;

 

Further enhancement could involve loading for libraries in a specific location and automatically loading the plugins found there rather than explicit loading.

 

We have a simple usecase for this but wanted to see if anyone else would fine this useful and the interface would accommodate their needs.

I have attached a patch showing what it looks like currently.  This is not the final version or ready for submission, it’s just to aid discussion.

 

Thanks,

Ian


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 IntercontinentalExchange Group, Inc. (ICE), NYSE 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.



Damian Maguire <DMaguire@...>
 

Hey Ian, 

This has been raised to Bugzilla to help us track the progress on it. I've added you to the CC list, so you should be able to see when we have any comments on it.

Cheers, 

D

From: Ian Bell <IBell@...>
Date: Monday, March 10, 2014 8:31 AM
To: "openmama-dev@..." <openmama-dev@...>
Subject: [Openmama-dev] Plugin loader for MAMA

Hi

 

I have been looking at adding a plugin loader functionality to MAMA.  The idea being that it would a simple standard interface to add extra functionality alongside MAMA.

The functionality is limited to a loadPlugin interface to MAMA which loads a library and calls an init function on the plugin library.

MAMA will then close the library on shutdown / mama_close.

 

Currently the init function just passes a void* but was intending to add a structure instead which could be queried on loaded plugins

 

eg

typedef struct mamaPlugin_

{

    const char* pluginName;

    const char* pluginVersion;

    HANDLE libHandle;

} mamaPlugin;

 

Further enhancement could involve loading for libraries in a specific location and automatically loading the plugins found there rather than explicit loading.

 

We have a simple usecase for this but wanted to see if anyone else would fine this useful and the interface would accommodate their needs.

I have attached a patch showing what it looks like currently.  This is not the final version or ready for submission, it’s just to aid discussion.

 

Thanks,

Ian


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 IntercontinentalExchange Group, Inc. (ICE), NYSE 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 IntercontinentalExchange Group, Inc. (ICE), NYSE 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.