posted on Thursday, October 21, 2010 - 05:20 pm
I'm trying to implement a DBMS to track all DDS traffic in a 24 hr window. The problem is I don't want to write the necessary SOL code for 20 data readers. I was wondering if it would be possible to extract the type information of a DDS topic so that i could auto generate the tables and the code used to insert the data into the database.
Currently i'm thinking i have to parse the idl to extract this information. Is there a better way?
No I'm not. I'm using RTIs stuff. I know that almost all the DDS Implementations have these, but since i don't want any proprietary stuff I'd rather do it on my own. I was just wondering if anyone had any insight on how i could obtain the type information. I can handle auto generating the tables and maintaining the DB on my own. Also I'm storying huge amounts of data (4GBs an hour).
I really only need access to the member names and member types to pull this off. I was wondering if anyone knew how to get that information.
The way in which the different DDS products maintain their meta-data is highly vendor specific and til this date not covered by the DDS nor the DDSI specifications.
So either you need to tailor your source code to use the proprietary meta-data API of the DDS product you are using, or you must build your own IDL compiler and extract the meta-data from there.
In any case I think that unless this is sort of a hobby-project, it might be cheaper to look at already exising solutions (like the DBMSConnect solution Hans mentioned before) than to write your own solution from scratch.
(Bare in mind that since meta-data API's are highly proprietary, they might change overnight: rendering any implementation that depends on them absolete. So the safe approach would be to use the IDL for this purpose, although that requires a static solution that is unable to deal with new types added at runtime....)