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

Reply via email to