Hi
I have a multiprocess program that each process connected to a client that put messages into a global queue then a sender process get a message from queue and route it to one of servers;
My message class has a "string Field(int num)" method. This method get the number of field and return its value.
Now I want to make a rule engine that has these features:
Rules define based on values of message's fileds or part of these values.
If rule engine is enabled then read rules from a file and based on rules discard or put messages into the global queue.
Rules can change in runtime.
Rule Engine performance must be high.
My problems:
How to put and active rules in a shared memory that affect all processes.
How to make a flexible rule language to define rules.
I search for a good solution and find these:
boost::inetrprocess for managed shared memory.
boost::proto and ANTLR for domain specific language and boost::spirit.
chaiscript, angelscript and other scripting libraries for scripting.
If high performance is needed which one is better solution; scripting or domain specific language? or other better solution that I don't know!
Thanks in advance.