[Opensim-dev] Dynamic attributes
Melanie
melanie at t-data.com
Thu Feb 7 02:11:03 UTC 2013
A word of caution:
Many people have scripts that would store copious amounts of data.
Some limits need to be placed on the overall storage given to a
script so it becomes unattractive to store lots of data in the
simulator. Scripts needing lots of storage should use a web server,
not sim resources.
Melanie
On 07/02/2013 02:59, Mic Bowman wrote:
> for discussion purposes...
>
> added the jsonstore connection to the dynamic attributes. here's an example
> of an LSL script that sets the attributes (create a notecard called
> JsonData with some json structure inside it)... you can interrogate the
> store through channel 30... eg "/30 jstoretest.test1.field"
>
> btw... i really think that hooking up the object store with a variant of
> llrezobject() would be very good. it would make passing more complex
> initialization parameters a LOT easier (better than the one integer you get
> right now). i'm doing this with a modified version that uses a global
> jsonstore...
>
> --mic
>
>
> integer iChannel = 30;
> string sInitCard = "JsonData";
> key kStoreID;
>
> InitializeObjectStore()
> {
> llOwnerSay("initializing the object store");
> JsonSetValueJson(kStoreID,"jstoretest","{'test1': {'field' : 22}}");
> JsonReadNotecard(kStoreID,"jstoretest", sInitCard);
> }
>
> default
> {
> state_entry()
> {
> kStoreID = JsonAttachObjectStore();
> if (JsonTestPathJson(kStoreID,"jstoretest") == 0)
> InitializeObjectStore();
>
> llOwnerSay("object store is " + JsonGetValueJson(kStoreID,"."));
>
> llListen(iChannel,"",llGetOwner(),"");
> }
>
> listen(integer ch, string name, key id, string msg)
> {
> if (ch == iChannel)
> {
> list tokens = llParseString2List(msg,[" "],[]);
> string path = JsonList2Path(tokens);
> string value = JsonGetValueJson(kStoreID,path);
> llOwnerSay(path + " == " + value);
> }
> }
> }
>
>
>
> On Wed, Feb 6, 2013 at 3:00 PM, Mic Bowman <cmickeyb at gmail.com> wrote:
>
>> one more thing... is there a strong reason for XML serialization as
>> opposed to json? (I assume the primary reason is for consistency with other
>> properties.) the OSDMap data structure corresponds fairly closely to JSON.
>> serializing works fine for either format though it is easy to provide an
>> xml document that will not deserialize into an OSDMap.
>>
>> --mic
>>
>>
>> On Wed, Feb 6, 2013 at 1:58 PM, Mic Bowman <cmickeyb at gmail.com> wrote:
>>
>>> Justin,
>>>
>>> I took a look at the DAMap data structure & have some questions. What's
>>> the value of explicit methods for the top level of the structure? It is
>>> still possible to have name space collisions since there is nothing that
>>> prevents one module from writing into another module's "name space". Also,
>>> whats your expectation for locking? The top level accessor locks the
>>> structure, but modules that share the rest of the structure will have to do
>>> their own locking anyway. I guess one value of controlling the top level is
>>> that *IF* modules are making exclusive access to the structure, the locking
>>> is minimized. Hard to control that, though.
>>>
>>> Did you get a chance to look at the JsonStore structure? The path-based
>>> accessors are very different than providing immediate access to the OSDMap.
>>> As we discussed, I made that decision to support the synchronization
>>> operations (take & read) and it removes the exposed OSDMap so that the data
>>> structure can be replaced. I think the path-based accessor is probably too
>>> heavyweight for DAMap... well... maybe... given that we dont have any
>>> examples yet its hard to tell. :-)
>>>
>>> --mic
>>>
>>>
>>> On Mon, Feb 4, 2013 at 5:09 PM, Justin Clark-Casey <
>>> jjustincc at googlemail.com> wrote:
>>>
>>>> Okay, I have now merged this branch (dynamic-attributes2) to master.
>>>> Please report any problems (or fix them :)
>>>>
>>>> As this is experimental functionality, if necessary it can be
>>>> changed/bug-fixed without any attempt to preserve existing data. Any code
>>>> using it should handle the 'expected data not found' case anyway.
>>>>
>>>> On 26/01/13 19:52, Adams, Robert wrote:
>>>>
>>>>> This implementation will work for physics. The physics engine cannot
>>>>> reference Scene (circular reference madness) so, on creation of the scene's
>>>>> physics instance, I will pass in the instance of DAMap (since it is defined
>>>>> in OpenSim.Framework) much the same way the asset request method instance
>>>>> is passed in.
>>>>>
>>>>> I am +2 on this branch's inclusion into master.
>>>>>
>>>>> -- ra
>>>>>
>>>>> -----Original Message-----
>>>>> From: opensim-dev-bounces at lists.**berlios.de<opensim-dev-bounces at lists.berlios.de>[mailto:
>>>>> opensim-dev-bounces@**lists.berlios.de<opensim-dev-bounces at lists.berlios.de>]
>>>>> On Behalf Of Justin Clark-Casey
>>>>> Sent: Friday, January 25, 2013 5:14 PM
>>>>> To: opensim-dev at lists.berlios.de
>>>>> Subject: Re: [Opensim-dev] Dynamic attributes
>>>>>
>>>>> On 25/01/13 08:40, Oren Hurvitz wrote:
>>>>>
>>>>>> Ok, great. I hope all goes well and this will be added to master soon.
>>>>>>
>>>>>> What do you mean by "put the code in for MSSQL"? The code already
>>>>>> supports MySQL, MSSQL and SQLite.
>>>>>>
>>>>>
>>>>> Apologies - my brain stored the assumption that only MySQL had been
>>>>> added since that's the only one I remembered seeing in the commit summaries
>>>>> but I see that the MSSQL code is there.
>>>>>
>>>>> --
>>>>> Justin Clark-Casey (justincc)
>>>>> OSVW Consulting
>>>>> http://justincc.org
>>>>> http://twitter.com/justincc
>>>>> ______________________________**_________________
>>>>> Opensim-dev mailing list
>>>>> Opensim-dev at lists.berlios.de
>>>>> https://lists.berlios.de/**mailman/listinfo/opensim-dev<https://lists.berlios.de/mailman/listinfo/opensim-dev>
>>>>> ______________________________**_________________
>>>>> Opensim-dev mailing list
>>>>> Opensim-dev at lists.berlios.de
>>>>> https://lists.berlios.de/**mailman/listinfo/opensim-dev<https://lists.berlios.de/mailman/listinfo/opensim-dev>
>>>>>
>>>>>
>>>>
>>>> --
>>>> Justin Clark-Casey (justincc)
>>>> OSVW Consulting
>>>> http://justincc.org
>>>> http://twitter.com/justincc
>>>> ______________________________**_________________
>>>> Opensim-dev mailing list
>>>> Opensim-dev at lists.berlios.de
>>>> https://lists.berlios.de/**mailman/listinfo/opensim-dev<https://lists.berlios.de/mailman/listinfo/opensim-dev>
>>>>
>>>
>>>
>>
>
>
>
> _______________________________________________
> Opensim-dev mailing list
> Opensim-dev at lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/opensim-dev
More information about the Opensim-dev
mailing list