Formatting got messed up, that should have looked like this: // returns true if the key was found and data was updated, otherwise false if a new key row was added bool AddOrUpdateKeyValue(string context, string key, string value);
// returns true if the key was found and deleted bool DeleteKeyValue(string context, string key); // returns the string value if the key was found, otherwise null string GetValue(string context, string key); -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Hurliman, John Sent: Monday, September 21, 2009 12:54 PM To: [email protected] Subject: [Opensim-dev] Thoughts on adding a generic key-value storage system to OpenSim? A lot of the work going into OpenSim recently has been modularizing the codebase and making it easy for third party developers to write plugins. One feature that I think would really complete the picture would be a (simple) generic data storage interface that leveraged the existing OpenSim storage framework. Most plugins I've seen (and wrote) currently tack on their own database tables, use a simple text file with a custom format, or use some other means of data storage that does not match up with the rest of OpenSim. Adding a new database table that had three columns: [context, key, value] would allow plugins to store key/value mappings (string to string) without worrying about data collisions between plugins or having to implement a custom data store every time. // returns true if the key was found and data was updated, otherwise false if a new key row was added bool AddOrUpdateKeyValue(string context, string key, string value); // returns true if the key was found and deleted bool DeleteKeyValue(string context, string key); // returns the string value if the key was found, otherwise null string GetValue(string context, string key); Although I've been writing extensions for the OpenSim codebase for quite a while, I'm still fairly new to the guts of the system. Does this seem like the correct solution? If so, where would this interface go? I'm happy to write the code to implement this, I just want feedback from the dev community first to see if I'm on track. John _______________________________________________ Opensim-dev mailing list [email protected] https://lists.berlios.de/mailman/listinfo/opensim-dev _______________________________________________ Opensim-dev mailing list [email protected] https://lists.berlios.de/mailman/listinfo/opensim-dev
