Difference between revisions of "LlDataSizeKeyValue"

From Second Life Wiki
Jump to navigation Jump to search
(Created page with "Category:Experience Tools {{LSL_Function |func=llDataSizeKeyValue |func_desc=Start an asynchronous transaction to request the used and total amount of data allocated for the …")
 
m
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[Category:Experience Tools]]
[[Category:Experience Tools]]
{{LSL_Function
{{LSL_Function
|inject-2=
{{LSL Function/KeyValue|d2_type=integer|d2_name=used|d2_desc=Number of bytes used|d3_type=integer|d3_name=quota|d3_desc=Number of bytes the key-store can utilize}}
{{LSL Function/Experience|true}}
|func=llDataSizeKeyValue
|func=llDataSizeKeyValue
|func_desc=Start an asynchronous transaction to request the used and total amount of data allocated for the experience.
|func_desc=Start an asynchronous transaction to request the used and total amount of data allocated for the {{LSLGC|Experience}}.
|func_footnote=
|func_footnote=
The dataserver callback parameters are:
|return_type=key|return_subtype=handle
* A key containing the transaction ID returned from llDataSizeKeyValue
|return_text=that can be used to identify the corresponding [[dataserver]] event to determine if this command succeeded or failed and the results.
* A string containing a comma-delimited list.  The first item is a boolean specifying if the transaction succeeded (1) or not (0).  The second item is the amount in use, and the third value is the total.  All sizes are in bytes.
|return_type=key
|return_text=Returns the ID of the transaction.
|also_functions=
|also_functions=
*[[llGetExperienceErrorMessage]]
*[[llGetExperienceErrorMessage]]
Line 18: Line 18:
*[[llKeyCountKeyValue]]
*[[llKeyCountKeyValue]]
*[[llKeysKeyValue]]
*[[llKeysKeyValue]]
|examples=<lsl>key trans;
|examples=<source lang="lsl2">key trans;
 
default
default
{
{
     state_entry()
     state_entry()
     {
     {
         trans = llDataSizeKeyValue("FOO");
         trans = llDataSizeKeyValue();
     }
     }
}
 
    dataserver( key _t, string _value )
dataserver(key t, string value)
{
    if (t == trans)
     {
     {
        // our llDataSizeKeyValue transaction is done
         if ( _t == trans )
        list result = llCSV2List(value);
         if (llList2Integer(result, 0) == 1)
         {
         {
             // data size retrieved
             // our llDataSizeKeyValue transaction is done
            llSay(0, "Space in use: "+llList2String(result, 1)");
            list result = llCSV2List( _value );
            llSay(0, "Total space:  "+llList2String(result, 2)");
            if ( llList2Integer( result, 0 ) == 1 )
        }
            {
        else
                // data size retrieved
        {
                llSay( 0, "Space in use: " + llList2String( result, 1 ) );
            // data size check failed
                llSay( 0, "Total space:  " + llList2String( result, 2 ) );
            llSay(0, "Key-value failed to check size: " + llList2String(result, 1) );
            }
            else
            {
                // data size check failed
                llSay( 0, "Key-value failed to check size: " + llList2String( result, 1 ) );
            }
         }
         }
     }  
     }  
}</lsl>}}
}
</source>
|cat1=Experience
|cat2=Experience/Data
|cat3=Dataserver
}}

Latest revision as of 11:11, 5 May 2015

Summary

Function: key llDataSizeKeyValue( );

Start an asynchronous transaction to request the used and total amount of data allocated for the 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.

Specification

Dataserver

The dataserver callback parameters are:

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.
• integer used Number of bytes used
• integer quota Number of bytes the key-store can utilize

Caveats

  • If you recompile a script that was previously associated with an Experience but do so with a client that lacks the ability to compile scripts into an experience the script will lose the associated Experience.

Examples

key trans;

default
{
    state_entry()
    {
        trans = llDataSizeKeyValue();
    }
 
    dataserver( key _t, string _value )
    {
        if ( _t == trans )
        {
            // our llDataSizeKeyValue transaction is done
            list result = llCSV2List( _value );
            if ( llList2Integer( result, 0 ) == 1 )
            {
                // data size retrieved
                llSay( 0, "Space in use: " + llList2String( result, 1 ) );
                llSay( 0, "Total space:  " + llList2String( result, 2 ) );
            }
            else
            {
                // data size check failed
                llSay( 0, "Key-value failed to check size: " + llList2String( result, 1 ) );
            }
        }
    } 
}

Notes

Compiling

For a script to be associated with an Experience...

  • It must be compiled with a client that is Experience aware,
  • The "Use Experience" checkbox must be checked,
  • And one of the users Experience keys selected.
KBcaution.png Important: Not all TPVs have this functionality.

Deep Notes

Signature

function key llDataSizeKeyValue();