Difference between revisions of "LlReadKeyValue"
Jump to navigation
Jump to search
m |
Quartz Mole (talk | contribs) m (fixed broken lsl formatting) |
||
Line 17: | Line 17: | ||
*[[llKeyCountKeyValue]] | *[[llKeyCountKeyValue]] | ||
*[[llKeysKeyValue]] | *[[llKeysKeyValue]] | ||
|examples=< | |examples=<source lang="lsl2">key trans; | ||
default | default | ||
{ | { | ||
Line 42: | Line 42: | ||
} | } | ||
} | } | ||
}</ | }</source> | ||
|cat1=Experience | |cat1=Experience | ||
|cat2=Experience/Data | |cat2=Experience/Data | ||
|cat3=Dataserver | |cat3=Dataserver | ||
}} | }} |
Revision as of 06:36, 7 February 2015
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Summary
Function: key llReadKeyValue( string k );
Start an asynchronous transaction to read the value associated with the specified key and the specified experience.
Returns a handle (a key) that can be used to identify the corresponding dataserver event to determine if this command succeeded or failed and the results.
• string | k | – | The key for the key-value pair |
Specification
Dataserver
The dataserver callback parameters are:
- A key containing the handle returned from llReadKeyValue
- A string containing a comma-delimited list (cdl).
llDumpList2String([ integer success ] + components);
- components vary depending upon success or failure of request.
- Failure:
cdl = llDumpList2String([ 0, integer error],",")
- Success:
cdl = llDumpList2String([ 1, string value ],",")
String Components
• integer | success | – | A boolean specifying if the transaction succeeded (1) or not (0). | |
• integer | error | – | An XP_ERROR_* flag that describes why the operation failed. | |
• string | value | – | The value for the key-value pair. Maximum 2047 characters, or 4095 if using Mono. Note! This value may contain commas. |
Caveats
Examples
key trans;
default
{
state_entry()
{
trans = llReadKeyValue("FOO");
}
dataserver(key t, string value)
{
if (t == trans)
{
// our llReadKeyValue transaction is done
if (llGetSubString(value, 0, 0) == "1")
{
// the key-value pair was successfully read
llSay(0, "New key-value pair value: " + llGetSubString(value, 2, -1));
}
else
{
// the key-value pair failed to read
integer error = (integer)llGetSubString(value, 2, -1);
llSay(0, "Key-value failed to read: " + llGetExperienceErrorMessage(error));
}
}
}
}