From 134f86e8d5c414409631b25b8c6f0ee45fbd8631 Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Thu, 3 Nov 2016 21:44:39 +1000 Subject: Initial update to OpenSim 0.8.2.1 source code. --- bin/BulletXNA.dll | Bin 614400 -> 618496 bytes bin/BulletXNA.pdb | Bin 1875456 -> 1889792 bytes bin/Community.CsharpSqlite.Sqlite.pdb | Bin 124416 -> 0 bytes bin/Community.CsharpSqlite.pdb | Bin 1447424 -> 0 bytes bin/HttpServer_OpenSim.dll | Bin 115712 -> 116224 bytes bin/HttpServer_OpenSim.pdb | Bin 413184 -> 355840 bytes bin/HttpServer_OpenSim.xml | 6495 +-- bin/Mono.Addins.CecilReflector.dll | Bin 290816 -> 225280 bytes bin/Mono.Addins.Setup.dll | Bin 135168 -> 126464 bytes bin/Mono.Addins.Setup.xml | 1140 + bin/Mono.Addins.dll | Bin 233472 -> 232960 bytes bin/Mono.Addins.xml | 6120 +++ bin/Npgsql.xml | 4120 ++ bin/OpenMetaverse.Http.XML | 57 - bin/OpenMetaverse.Rendering.Meshmerizer.dll | Bin 24576 -> 24576 bytes bin/OpenMetaverse.StructuredData.XML | 304 +- bin/OpenMetaverse.StructuredData.dll | Bin 102400 -> 102400 bytes bin/OpenMetaverse.XML | 44548 ++++++++++++------- bin/OpenMetaverse.dll | Bin 1765376 -> 2195456 bytes bin/OpenMetaverse.dll.config | 8 +- bin/OpenMetaverseTypes.XML | 3446 +- bin/OpenMetaverseTypes.dll | Bin 114688 -> 110592 bytes bin/OpenSim.32BitLaunch.exe | Bin 5632 -> 0 bytes bin/OpenSim.32BitLaunch.exe.config | 45 +- bin/OpenSim.ConsoleClient.exe.config | 1 + ...OpenSim.Region.PhysicsModule.BulletS.dll.config | 8 + bin/OpenSim.Services.exe.config | 33 - bin/OpenSim.addin.xml | 20 - bin/OpenSim.exe.config | 37 +- bin/OpenSim.ini.example | 562 +- bin/OpenSimDefaults.ini | 822 +- bin/OpenSimExport.exe.config | 28 - ...OpenSim.Region.Physics.BulletSPlugin.dll.config | 6 - bin/Prebuild.exe | Bin 224768 -> 234496 bytes bin/Regions/.keep | 0 bin/Regions/Regions.ini.example | 47 - bin/Robust.32BitLaunch.exe | Bin 5632 -> 0 bytes bin/Robust.32BitLaunch.exe.config | 33 +- bin/Robust.HG.ini.example | 546 +- bin/Robust.Tests.dll.config | 43 + bin/Robust.exe.config | 34 +- bin/Robust.ini.example | 364 +- bin/SimpleApp.exe.config | 28 - bin/addon-modules/README | 1 - bin/assets/ScriptsAssetSet/ScriptsAssetSet.xml | 6 +- bin/assets/TexturesAssetSet/IMG_BLOOM1.jp2 | Bin 0 -> 11276 bytes bin/assets/TexturesAssetSet/TexturesAssetSet.xml | 18 + bin/assets/TexturesAssetSet/femalehair.jp2 | Bin 0 -> 131038 bytes bin/config-include/Grid.ini | 66 +- bin/config-include/GridCommon.ini.example | 144 +- bin/config-include/GridHypergrid.ini | 80 +- bin/config-include/HyperSimianGrid.ini | 9 +- bin/config-include/SimianGrid.ini | 8 +- bin/config-include/Standalone.ini | 18 +- bin/config-include/StandaloneCommon.ini.example | 273 +- bin/config-include/StandaloneHypergrid.ini | 148 +- bin/config-include/osslEnable.ini | 230 + bin/data/LICENSE-README-IMPORTANT.txt | 2 +- bin/data/sim.css | 85 + bin/data/sim.html | 291 + .../AnimationsLibrary/AnimationsLibraryItems.xml | 11 + .../BodyPartsLibrary/BodyPartsLibraryItems.xml | 20 + .../ClothingLibrary/ClothingLibraryItems.xml | 15 + .../GesturesLibrary/GesturesLibraryItems.xml | 12 + .../LandmarksLibrary/LandmarksLibraryItems.xml | 12 + .../NotecardsLibrary/NotecardsLibraryItems.xml | 12 + .../ObjectsLibrary/ObjectsLibraryItems.xml | 12 + bin/inventory/PhotosLibrary/PhotosLibraryItems.xml | 12 + .../ScriptsLibrary/ScriptsLibraryItems.xml | 14 +- bin/inventory/SoundsLibrary/SoundsLibraryItems.xml | 12 + .../TexturesLibrary/TexturesLibraryItems.xml | 12 + bin/lib32/BulletSim.dll | Bin 551936 -> 1338880 bytes bin/lib32/libBulletSim.dylib | Bin 0 -> 1439996 bytes bin/lib32/libBulletSim.so | Bin 1719480 -> 2312132 bytes bin/lib64/BulletSim.dll | Bin 700928 -> 1547264 bytes bin/lib64/libBulletSim.so | Bin 1857745 -> 2475617 bytes bin/libopenjpeg-dotnet-2-1.5.0-dotnet-1-i686.so | Bin 0 -> 140028 bytes bin/libopenjpeg-dotnet-2-1.5.0-dotnet-1-x86_64.so | Bin 0 -> 149368 bytes bin/libopenjpeg-dotnet-2-1.5.0-dotnet-1.dylib | Bin 0 -> 130560 bytes bin/pCampBot.exe.config | 26 +- bin/pCampBot.ini.example | 19 + 81 files changed, 47567 insertions(+), 22896 deletions(-) mode change 100644 => 100755 bin/BulletXNA.dll delete mode 100644 bin/Community.CsharpSqlite.Sqlite.pdb delete mode 100644 bin/Community.CsharpSqlite.pdb create mode 100644 bin/Mono.Addins.Setup.xml create mode 100644 bin/Mono.Addins.xml create mode 100644 bin/Npgsql.xml delete mode 100644 bin/OpenMetaverse.Http.XML delete mode 100755 bin/OpenSim.32BitLaunch.exe create mode 100755 bin/OpenSim.Region.PhysicsModule.BulletS.dll.config delete mode 100644 bin/OpenSim.Services.exe.config delete mode 100644 bin/OpenSim.addin.xml delete mode 100644 bin/OpenSimExport.exe.config delete mode 100755 bin/Physics/OpenSim.Region.Physics.BulletSPlugin.dll.config delete mode 100644 bin/Regions/.keep delete mode 100644 bin/Regions/Regions.ini.example delete mode 100644 bin/Robust.32BitLaunch.exe create mode 100644 bin/Robust.Tests.dll.config delete mode 100644 bin/SimpleApp.exe.config delete mode 100644 bin/addon-modules/README create mode 100644 bin/assets/TexturesAssetSet/IMG_BLOOM1.jp2 create mode 100644 bin/assets/TexturesAssetSet/femalehair.jp2 create mode 100644 bin/config-include/osslEnable.ini create mode 100644 bin/data/sim.css create mode 100644 bin/data/sim.html create mode 100755 bin/lib32/libBulletSim.dylib create mode 100644 bin/libopenjpeg-dotnet-2-1.5.0-dotnet-1-i686.so create mode 100644 bin/libopenjpeg-dotnet-2-1.5.0-dotnet-1-x86_64.so create mode 100644 bin/libopenjpeg-dotnet-2-1.5.0-dotnet-1.dylib create mode 100644 bin/pCampBot.ini.example (limited to 'bin') diff --git a/bin/BulletXNA.dll b/bin/BulletXNA.dll old mode 100644 new mode 100755 index 1e3f042..b3ddc32 Binary files a/bin/BulletXNA.dll and b/bin/BulletXNA.dll differ diff --git a/bin/BulletXNA.pdb b/bin/BulletXNA.pdb index 4b83b83..ed3baad 100644 Binary files a/bin/BulletXNA.pdb and b/bin/BulletXNA.pdb differ diff --git a/bin/Community.CsharpSqlite.Sqlite.pdb b/bin/Community.CsharpSqlite.Sqlite.pdb deleted file mode 100644 index 3920d80..0000000 Binary files a/bin/Community.CsharpSqlite.Sqlite.pdb and /dev/null differ diff --git a/bin/Community.CsharpSqlite.pdb b/bin/Community.CsharpSqlite.pdb deleted file mode 100644 index bb8c4e5..0000000 Binary files a/bin/Community.CsharpSqlite.pdb and /dev/null differ diff --git a/bin/HttpServer_OpenSim.dll b/bin/HttpServer_OpenSim.dll index d910bb9..38a4cb7 100755 Binary files a/bin/HttpServer_OpenSim.dll and b/bin/HttpServer_OpenSim.dll differ diff --git a/bin/HttpServer_OpenSim.pdb b/bin/HttpServer_OpenSim.pdb index b9161e1..cfff9a7 100644 Binary files a/bin/HttpServer_OpenSim.pdb and b/bin/HttpServer_OpenSim.pdb differ diff --git a/bin/HttpServer_OpenSim.xml b/bin/HttpServer_OpenSim.xml index d31bcca..61c3ad8 100644 --- a/bin/HttpServer_OpenSim.xml +++ b/bin/HttpServer_OpenSim.xml @@ -4,547 +4,659 @@ HttpServer_OpenSim - - - A session store is used to store and load sessions on a media. - The default implementation () saves/retrieves sessions from memory. - - - + - Creates a new http session with a generated id. + Delegate used to find a realm/domain. - A object + + + + Realms are used during HTTP Authentication + + + - + - Creates a new http session with a specific id + A complete HTTP server, you need to add a module to it to be able to handle incoming requests. - Id used to identify the new cookie.. - A object. - - Id should be generated by the store implementation if it's null or . - + + + // this small example will add two web site modules, thus handling + // two different sites. In reality you should add Controller modules or something + // two the website modules to be able to handle different requests. + HttpServer server = new HttpServer(); + server.Add(new WebSiteModule("www.gauffin.com", "Gauffin Telecom AB")); + server.Add(new WebSiteModule("www.vapadi.se", "Remote PBX")); + + // start regular http + server.Start(IPAddress.Any, 80); + + // start https + server.Start(IPAddress.Any, 443, myCertificate); + + + + + - + - Load an existing session. + Initializes a new instance of the class. - Session id (usually retrieved from a client side cookie). - A session if found; otherwise null. + Used to get all components used in the server.. - + - Save an updated session to the store. + Initializes a new instance of the class. - Session id (usually retrieved from a client side cookie). - If Id property have not been specified. - + - We use the flyweight pattern which reuses small objects - instead of creating new each time. + Initializes a new instance of the class. - Unused session that should be reused next time Create is called. + Form decoders are used to convert different types of posted data to the object types. + + - + - Remove expired sessions + Initializes a new instance of the class. + A session store is used to save and retrieve sessions + - + - Remove a session + Initializes a new instance of the class. - id of the session. + The log writer. + - + - Load a session from the store + Initializes a new instance of the class. - - null if session is not found. + Form decoders are used to convert different types of posted data to the object types. + The log writer. + + + - + - Number of minutes before a session expires. + Initializes a new instance of the class. - Default time is 20 minutes. + Form decoders are used to convert different types of posted data to the object types. + A session store is used to save and retrieve sessions + The log writer. + + + + - + - Contains server side HTTP request information. + Adds the specified rule. + The rule. - + - Called during parsing of a . + Add a to the server. - Name of the header, should not be URL encoded - Value of the header, should not be URL encoded - If a header is incorrect. + mode to add - + - Add bytes to the body + Decodes the request body. - buffer to read bytes from - where to start read - number of bytes to read - Number of bytes actually read (same as length unless we got all body bytes). - If body is not writable - bytes is null. - offset is out of range. + The request. + Failed to decode form data. - + - Clear everything in the request + Generate a HTTP error page (that will be added to the response body). + response status code is also set. + Response that the page will be generated in. + . + response body contents. - + - Decode body into a form. + Generate a HTTP error page (that will be added to the response body). + response status code is also set. - A list with form decoders. - If body contents is not valid for the chosen decoder. - If body is still being transferred. + Response that the page will be generated in. + exception. - + - Sets the cookies. + Realms are used by the s. - The cookies. + HTTP request + domain/realm. - + - Create a response object. + Process an incoming request. - Context for the connected client. - A new . + connection to client + request information + response that should be filled + session information - + - Gets kind of types accepted by the client. + Can be overloaded to implement stuff when a client have been connected. + + Default implementation does nothing. + + client that disconnected + disconnect reason - + - Gets or sets body stream. + Handle authentication + + + + true if request can be handled; false if not. + Invalid authorization header - + - Gets whether the body is complete. + Will request authentication. + + Sends respond to client, nothing else can be done with the response after this. + + + + - + - Gets or sets kind of connection used for the session. + Received from a when a request have been parsed successfully. + that received the request. + The request. - + - Gets or sets number of bytes in the body. + To be able to track request count. + + - + - Gets cookies that was sent with the request. + Start the web server using regular HTTP. + IP Address to listen on, use IpAddress.Any to accept connections on all IP addresses/network cards. + Port to listen on. 80 can be a good idea =) + address is null. + Port must be a positive number. - + - Gets form parameters. + Accept secure connections. + IP Address to listen on, use to accept connections on all IP Addresses / network cards. + Port to listen on. 80 can be a good idea =) + Certificate to use + address is null. + Port must be a positive number. - + - Gets headers sent by the client. + shut down the server and listeners - + - Gets or sets version of HTTP protocol that's used. + write an entry to the log file - - Probably or . - - + importance of the message + log message - + - Gets whether the request was made by Ajax (Asynchronous JavaScript) + write an entry to the log file + object that wrote the message + importance of the message + log message - + - Gets or sets requested method. + Server that is handling the current request. - Will always be in upper case. + Will be set as soon as a request arrives to the object. - - + - Gets parameter from or . - - - - - Gets variables sent in the query string + Modules used for authentication. The module that is is added first is used as + the default authentication module. + Use the corresponding property + in the if you are using multiple websites. - + - Gets or sets requested URI. + Form decoder providers are used to decode request body (which normally contains form data). - + - Gets URI absolute path divided into parts. + Server name sent in HTTP responses. - - // URI is: http://gauffin.com/code/tiny/ - Console.WriteLine(request.UriParts[0]); // result: code - Console.WriteLine(request.UriParts[1]); // result: tiny - - If you're using controllers than the first part is controller name, - the second part is method name and the third part is Id property. + Do NOT include version in name, since it makes it + easier for hackers. - - + - Gets or sets path and query. + Name of cookie where session id is stored. - - - Are only used during request parsing. Cannot be set after "Host" header have been - added. - - + - Class that receives Requests from a . + Specified where logging should go. + + + - + - Client have been disconnected. + Number of connections that can wait to be accepted by the server. - Client that was disconnected. - Reason - + Default is 10. - + - Invoked when a client context have received a new HTTP request + Gets or sets maximum number of allowed simultaneous requests. - Client that received the request. - Request that was received. - + + + This property is useful in busy systems. The HTTP server + will start queuing new requests if this limit is hit, instead + of trying to process all incoming requests directly. + + + The default number if allowed simultaneous requests are 10. + + - + - Delegate used by to populate select options. + Gets or sets maximum number of requests queuing to be handled. - current object (for instance a User). - Text that should be displayed in the value part of a <optiongt;-tag. - Text shown in the select list. - - // Class that is going to be used in a SELECT-tag. - public class User - { - private readonly string _realName; - private readonly int _id; - public User(int id, string realName) - { - _id = id; - _realName = realName; - } - public string RealName - { - get { return _realName; } - } - - public int Id - { - get { return _id; } - } - } - - // Using an inline delegate to generate the select list - public void UserInlineDelegate() - { - List<User> items = new List<User>(); - items.Add(new User(1, "adam")); - items.Add(new User(2, "bertial")); - items.Add(new User(3, "david")); - string htmlSelect = Select("users", "users", items, delegate(object o, out object id, out object value) - { - User user = (User)o; - id = user.Id; - value = user.RealName; - }, 2, true); - } - - // Using an method as delegate to generate the select list. - public void UseExternalDelegate() - { - List<User> items = new List<User>(); - items.Add(new User(1, "adam")); - items.Add(new User(2, "bertial")); - items.Add(new User(3, "david")); - string htmlSelect = Select("users", "users", items, UserOptions, 1, true); - } - - // delegate returning id and title - public static void UserOptions(object o, out object id, out object title) - { - User user = (User)o; - id = user.Id; - value = user.RealName; - } /// + + + The WebServer will start turning requests away if response code + to indicate that the server + is too busy to be able to handle the request. + + - + - The server understood the request, but is refusing to fulfill it. - Authorization will not help and the request SHOULD NOT be repeated. - If the request method was not HEAD and the server wishes to make public why the request has not been fulfilled, - it SHOULD describe the reason for the refusal in the entity. If the server does not wish to make this information - available to the client, the status code 404 (Not Found) can be used instead. - - Text taken from: http://www.submissionchamber.com/help-guides/error-codes.php + Realms are used during HTTP authentication. + Default realm is same as server name. - + - All HTTP based exceptions will derive this class. + Let's to receive unhandled exceptions from the threads. + + Exceptions will be thrown during debug mode if this event is not used, + exceptions will be printed to console and suppressed during release mode. + - + - Create a new HttpException + Serves files that are stored in embedded resources. - http status code (sent in the response) - error description - + - Create a new HttpException + A HttpModule can be used to serve Uri's. The module itself + decides if it should serve a Uri or not. In this way, you can + get a very flexible http application since you can let multiple modules + serve almost similar urls. - http status code (sent in the response) - error description - inner exception + + Throw if you are using a and want to prompt for user name/password. + - + - status code to use in the response. + Method that process the url + Information sent by the browser about the request + Information that is being sent back to the client. + Session used to + true if this module handled the request. - + - Initializes a new instance of the class. + Set the log writer to use. - error message + logwriter to use. - + - A session stored in memory. + Log something. + importance of log message + message - + - Interface for sessions + If true specifies that the module doesn't consume the processing of a request so that subsequent modules + can continue processing afterwards. Default is false. - + - Remove everything from the session + Initializes a new instance of the class. + Runs to make sure the basic mime types are available, they can be cleared later + through the use of if desired. - + - Remove everything from the session + Initializes a new instance of the class. + Runs to make sure the basic mime types are available, they can be cleared later + through the use of if desired. - True if the session is cleared due to expiration + The log writer to use when logging events - + - Session id + Mimtypes that this class can handle per default - + - Should + Loads resources from a namespace in the given assembly to an uri - Name of the session variable - null if it's not set - If the object cant be serialized. + The uri to map the resources to + The assembly in which the resources reside + The namespace from which to load the resources + + resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views"); + + will make ie the resource MyLib.Models.User.Views.stylesheet.css accessible via /user/stylesheet.css + + The amount of loaded files, giving you the possibility of making sure the resources needed gets loaded - + - When the session was last accessed. - This property is touched by the http server each time the - session is requested. + Returns true if the module can handle the request - + - Number of session variables. + Method that process the url + Information sent by the browser about the request + Information that is being sent back to the client. + Session used to + true if this module handled the request. - + - Event triggered upon clearing the session + List with all mime-type that are allowed. + All other mime types will result in a Forbidden http status code. - + - + Contains some kind of input from the browser/client. + can be QueryString, form data or any other request body content. - A unique id used by the sessions store to identify the session - + - Id + Base class for request data containers - - + - Remove everything from the session + Adds a parameter mapped to the presented name + The name to map the parameter to + The parameter value - + - Clears the specified expire. + Returns true if the container contains the requested parameter - True if the session is cleared due to expiration + Parameter id + True if parameter exists - + - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + Returns a request parameter - 2 + The name associated with the parameter + - + + Representation of a non-initialized class instance + + + Variable telling the class that it is non-initialized + + - Session id + Initializes a new instance of the class. + form name. - + - Should + Initializes a new instance of the class. - Name of the session variable - null if it's not set + form name. + if set to true all changes will be ignored. + this constructor should only be used by Empty - + + Creates a deep copy of the HttpInput class + The object to copy + The function makes a deep copy of quite a lot which can be slow + + - when the session was last accessed. + Add a new element. Form array elements are parsed + and added in a correct hierarchy. - - Used to determine when the session should be removed. - + Name is converted to lower case. + + name is null. + Cannot add stuff to . - + - Number of values in the session + Returns true if the class contains a with the corresponding name. + The field/query string name + True if the value exists - + - Flag to indicate that the session have been changed - and should be saved into the session store. + Parses an item and returns it. + This function is primarily used to parse array items as in user[name]. + + + - + + Outputs the instance representing all its values joined together + + + + Returns all items as an unescaped query string. + + + - Event triggered upon clearing the session + Extracts one parameter from an array + Containing the string array + All but the first value + + string test1 = ExtractOne("system[user][extension][id]"); + string test2 = ExtractOne(test1); + string test3 = ExtractOne(test2); + // test1 = user[extension][id] + // test2 = extension[id] + // test3 = id + - + + Resets all data contained by class + + - cookie being sent back to the browser. + Returns an enumerator that iterates through the collection. - + + + A that can be used to iterate through the collection. + + 1 - + - cookie sent by the client/browser + Returns an enumerator that iterates through a collection. - + + + An object that can be used to iterate through the collection. + + 2 - + - Constructor. + Form name as lower case - cookie identifier - cookie content - id or content is null - id is empty - + - Gets the cookie HTML representation. + Get a form item. - cookie string + + Returns if item was not found. - + - Gets the cookie identifier. + The server understood the request, but is refusing to fulfill it. + Authorization will not help and the request SHOULD NOT be repeated. + If the request method was not HEAD and the server wishes to make public why the request has not been fulfilled, + it SHOULD describe the reason for the refusal in the entity. If the server does not wish to make this information + available to the client, the status code 404 (Not Found) can be used instead. + + Text taken from: http://www.submissionchamber.com/help-guides/error-codes.php - + - Cookie value. Set to null to remove cookie. + All HTTP based exceptions will derive this class. - + - Constructor. + Create a new HttpException - cookie identifier - cookie content - cookie expiration date. Use DateTime.MinValue for session cookie. - id or content is null - id is empty + http status code (sent in the response) + error description - + - Create a new cookie + Create a new HttpException - name identifying the cookie - cookie value - when the cookie expires. Setting DateTime.MinValue will delete the cookie when the session is closed. - Path to where the cookie is valid - Domain that the cookie is valid for. + http status code (sent in the response) + error description + inner exception - + - Create a new cookie + status code to use in the response. - Name and value will be used - when the cookie expires. - + - Gets the cookie HTML representation. + Initializes a new instance of the class. - cookie string + error message - + - When the cookie expires. - DateTime.MinValue means that the cookie expires when the session do so. + This class is created as a wrapper, since there are two different cookie types in .Net (Cookie and HttpCookie). + The framework might switch class in the future and we dont want to have to replace all instances - + - Cookie is only valid under this path. + Let's copy all the cookies. + + value from cookie header. + + + + Adds a cookie in the collection. + + cookie to add + cookie is null + + + + Gets a collection enumerator on the cookie list. + + collection enumerator + + + + Remove all cookies. + + + + + Returns an enumerator that iterates through the collection. + + + + A that can be used to iterate through the collection. + + 1 + + + + Remove a cookie from the collection. + + Name of cookie. + + + + Gets the count of cookies in the collection. + + + + + Gets the cookie of a given identifier (null if not existing). @@ -660,102 +772,130 @@ Gets received request. - + - Contains a listener that doesn't do anything with the connections. + Returns item either from a form or a query string (checks them in that order) - + + Representation of a non-initialized HttpParam + + + Initialises the class to hold a value either from a post request or a querystring request + + - Listen for regular HTTP connections + The add method is not availible for HttpParam + since HttpParam checks both Request.Form and Request.QueryString - IP Address to accept connections on - TCP Port to listen on, default HTTP port is 80. - Factory used to create es. - address is null. - Port must be a positive number. + name identifying the value + value to add + - + - Initializes a new instance of the class. + Checks whether the form or querystring has the specified value - IP Address to accept connections on - TCP Port to listen on, default HTTPS port is 443 - Factory used to create es. - Certificate to use + Name, case sensitive + true if found; otherwise false. - + - Initializes a new instance of the class. + Returns an enumerator that iterates through the collection. - IP Address to accept connections on - TCP Port to listen on, default HTTPS port is 443 - Factory used to create es. - Certificate to use - which HTTPS protocol to use, default is TLS. + + + A that can be used to iterate through the collection. + + 1 - - Exception. + + + Returns an enumerator that iterates through a collection. + + + + An object that can be used to iterate through the collection. + + 2 - + - Will try to accept connections one more time. + Fetch an item from the form or querystring (in that order). - If any exceptions is thrown. + + Item if found; otherwise HttpInputItem.EmptyLanguageNode - + - Can be used to create filtering of new connections. + Container class for posted files - Accepted socket - true if connection can be accepted; otherwise false. - + - Start listen for new connections + Creates a container for a posted file - Number of connections that can stand in a queue to be accepted. - Listener have already been started. + The identifier of the post field + The file path + The content type of the file + The name of the file uploaded + If any parameter is null or empty - + - Stop the listener + Creates a container for a posted file - + If any parameter is null or empty - + + Destructor disposing the file + + - Gives you a change to receive log entries for all internals of the HTTP library. + Deletes the temporary file - - You may not switch log writer after starting the listener. - + True if manual dispose - + - True if we should turn on trace logs. + Disposing interface, cleans up managed resources (the temporary file) and suppresses finalization - + - Catch exceptions not handled by the listener. + The name/id of the file - - Exceptions will be thrown during debug mode if this event is not used, - exceptions will be printed to console and suppressed during release mode. - - + - A request have been received from a . + The full file path - + - + The name of the uploaded file + + + + + The type of file + + + + + This decoder converts XML documents to form items. + Each element becomes a subitem in the form, and each attribute becomes an item. + + // xml: somethingdata + // result: + // form["hello"].Value = "something" + // form["hello"]["id"].Value = 1 + // form["hello"]["world]["id"].Value = 1 + // form["hello"]["world"].Value = "data" + - http://www.faqs.org/rfcs/rfc1867.html + The original xml document is stored in form["__xml__"].Value. @@ -780,257 +920,237 @@ Content type (with any additional info like boundry). Content type is always supplied in lower case. True if the decoder can parse the specified content type - - - multipart/form-data - - - - - form-data - - - + Stream containing the content Content type (with any additional info like boundry). Content type is always supplied in lower case - Stream enconding + Stream encoding + Note: contentType and encoding are not used? A http form, or null if content could not be parsed. - If contents in the stream is not valid input data. - If any parameter is null + - + + + Recursive function that will go through an xml element and store it's content + to the form item. + + (parent) Item in form that content should be added to. + Node that should be parsed. + + Checks if the decoder can handle the mime type Content type (with any additional info like boundry). Content type is always supplied in lower case. True if the decoder can parse the specified content type - + - The requested resource was not found in the web server. + The object form class takes an object and creates form items for it. - + - Create a new exception + Initializes a new instance of the class. - message describing the error - inner exception + + form name *and* id. + action to do when form is posted. + - + - Create a new exception + Initializes a new instance of the class. - message describing the error + form name *and* id. + action to do when form is posted. + object to get values from - + - Delegate used to let authentication modules authenticate the user name and password. + Initializes a new instance of the class. - Realm that the user want to authenticate in - User name specified by client - Can either be user password or implementation specific token. - object that will be stored in a session variable called if authentication was successful. - throw forbidden exception if too many attempts have been made. - - - Use to specify that the token is a HA1 token. (MD5 generated - string from realm, user name and password); Md5String(userName + ":" + realm + ":" + password); - - + form action. + object to get values from. - + - Let's you decide on a system level if authentication is required. + write out the FORM-tag. - HTTP request from client - true if user should be authenticated. - throw if no more attempts are allowed. - If no more attempts are allowed + generated html code - + - Authentication modules are used to implement different - kind of HTTP authentication. + Writeout the form tag + form should be posted through ajax. + generated html code - + - Tag used for authentication. + Generates a text box. + + + generated html code - + - Initializes a new instance of the class. + password box - Delegate used to provide information used during authentication. - Delegate used to determine if authentication is required (may be null). + + + generated html code - + - Initializes a new instance of the class. + Hiddens the specified property name. - Delegate used to provide information used during authentication. + Name of the property. + The options. + generated html code - + - Create a response that can be sent in the WWW-Authenticate header. + Labels the specified property name. - Realm that the user should authenticate in - Array with optional options. - A correct authentication request. - If realm is empty or null. + property in object. + caption + generated html code - + - An authentication response have been received from the web browser. - Check if it's correct + Generate a checkbox - Contents from the Authorization header - Realm that should be authenticated - GET/POST/PUT/DELETE etc. - options to specific implementations - Authentication object that is stored for the request. A user class or something like that. - if is invalid - If any of the parameters is empty or null. - - + property in object + checkbox value + additional html attributes. + generated html code + + - Used to invoke the authentication delegate that is used to lookup the user name/realm. + Write a html select tag - Realm (domain) that user want to authenticate in - User name - Password used for validation. Some implementations got password in clear text, they are then sent to client. - object that will be stored in the request to help you identify the user if authentication was successful. - true if authentication was successful + object property. + id column + The title column. + The options. + - + - Determines if authentication is required. + Selects the specified property name. - HTTP request from browser - true if user should be authenticated. - throw from your delegate if no more attempts are allowed. - If no more attempts are allowed + Name of the property. + The items. + The id column. + The title column. + The options. + - + - name used in HTTP request. + Write a submit tag. + button caption + html submit tag - + - Contains some kind of input from the browser/client. - can be QueryString, form data or any other request body content. + html end form tag + html - + - Base class for request data containers + + + http://www.faqs.org/rfcs/rfc1867.html + - + - Adds a parameter mapped to the presented name + multipart/form-data - The name to map the parameter to - The parameter value - + - Returns true if the container contains the requested parameter + form-data - Parameter id - True if parameter exists - + - Returns a request parameter + - The name associated with the parameter - - - - Representation of a non-initialized class instance - - - Variable telling the class that it is non-initialized + Stream containing the content + Content type (with any additional info like boundry). Content type is always supplied in lower case + Stream enconding + A http form, or null if content could not be parsed. + If contents in the stream is not valid input data. + If any parameter is null - + - Initializes a new instance of the class. + Checks if the decoder can handle the mime type - form name. + Content type (with any additional info like boundry). Content type is always supplied in lower case. + True if the decoder can parse the specified content type - + - Initializes a new instance of the class. + The request could not be understood by the server due to malformed syntax. + The client SHOULD NOT repeat the request without modifications. + + Text taken from: http://www.submissionchamber.com/help-guides/error-codes.php - form name. - if set to true all changes will be ignored. - this constructor should only be used by Empty - - - Creates a deep copy of the HttpInput class - The object to copy - The function makes a deep copy of quite a lot which can be slow - + - Add a new element. Form array elements are parsed - and added in a correct hierarchy. + Create a new bad request exception. - Name is converted to lower case. - - name is null. - Cannot add stuff to . + reason to why the request was bad. - + - Returns true if the class contains a with the corresponding name. + Create a new bad request exception. - The field/query string name - True if the value exists + reason to why the request was bad. + inner exception - + - Parses an item and returns it. - This function is primarily used to parse array items as in user[name]. + Cookies that should be set. - - - - - Outputs the instance representing all its values joined together - + + + Adds a cookie in the collection. + + cookie to add + cookie is null - - Returns all items as an unescaped query string. - + + + Copy a request cookie + + + When the cookie should expire - + - Extracts one parameter from an array + Gets a collection enumerator on the cookie list. - Containing the string array - All but the first value - - string test1 = ExtractOne("system[user][extension][id]"); - string test2 = ExtractOne(test1); - string test3 = ExtractOne(test2); - // test1 = user[extension][id] - // test2 = extension[id] - // test3 = id - + collection enumerator - - Resets all data contained by class + + + Remove all cookies + - + Returns an enumerator that iterates through the collection. @@ -1040,3532 +1160,3517 @@ 1 - + - Returns an enumerator that iterates through a collection. + Gets the count of cookies in the collection. - - - An object that can be used to iterate through the collection. - - 2 - + - Form name as lower case + Gets the cookie of a given identifier (null if not existing). - + - Get a form item. + cookie being sent back to the browser. - - Returns if item was not found. + - + - Small design by contract implementation. + cookie sent by the client/browser + - + - Check whether a parameter is empty. + Constructor. - Parameter value - Parameter name, or error description. - value is empty. + cookie identifier + cookie content + id or content is null + id is empty - + - Checks whether a parameter is null. + Gets the cookie HTML representation. - Parameter value - Parameter name, or error description. - value is null. + cookie string - + - Checks whether a parameter is null. + Gets the cookie identifier. - - Parameter value - Parameter name, or error description. - value is null. - + - Contains all HTTP Methods (according to the HTTP 1.1 specification) - - See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html - + Cookie value. Set to null to remove cookie. - + - The DELETE method requests that the origin server delete the resource identified by the Request-URI. + Constructor. - - - This method MAY be overridden by human intervention (or other means) on the origin server. - The client cannot be guaranteed that the operation has been carried out, even if the status code - returned from the origin server indicates that the action has been completed successfully. - - - However, the server SHOULD NOT indicate success unless, at the time the response is given, - it intends to delete the resource or move it to an inaccessible location. - - - A successful response SHOULD be 200 (OK) if the response includes an entity describing the status, - 202 (Accepted) if the action has not yet been enacted, - or 204 (No Content) if the action has been enacted but the response does not include an entity. - - - If the request passes through a cache and the Request-URI identifies one or more currently cached entities, - those entries SHOULD be treated as stale. Responses to this method are not cacheable. - - - - - - The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI. + cookie identifier + cookie content + cookie expiration date. Use DateTime.MinValue for session cookie. + id or content is null + id is empty + + + + Create a new cookie - - - If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the - entity in the response and not the source text of the process, unless that text happens to be the output of the process. - - - The semantics of the GET method change to a "conditional GET" if the request message includes an - If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, or If-Range header field. - A conditional GET method requests that the entity be transferred only under the circumstances described - by the conditional header field(s). The conditional GET method is intended to reduce unnecessary network - usage by allowing cached entities to be refreshed without requiring multiple requests or transferring - data already held by the client. - - + name identifying the cookie + cookie value + when the cookie expires. Setting DateTime.MinValue will delete the cookie when the session is closed. + Path to where the cookie is valid + Domain that the cookie is valid for. - + - The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response. + Create a new cookie - - The meta information contained in the HTTP headers in response to a HEAD request SHOULD be identical to the - information sent in response to a GET request. This method can be used for obtaining meta information about - the entity implied by the request without transferring the entity-body itself. - - This method is often used for testing hypertext links for validity, accessibility, and recent modification. - + Name and value will be used + when the cookie expires. - + - The OPTIONS method represents a request for information about the communication options available on the request/response chain identified by the Request-URI. + Gets the cookie HTML representation. - - This method allows the client to determine the options and/or requirements associated with a resource, or the capabilities of a server, without implying a resource action or initiating a resource retrieval. - + cookie string - + - The POST method is used to request that the origin server accept the entity enclosed - in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line. + When the cookie expires. + DateTime.MinValue means that the cookie expires when the session do so. - - POST is designed to allow a uniform method to cover the following functions: - - - Annotation of existing resources; - - Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles; - - Providing a block of data, such as the result of submitting a form, to a data-handling process; - - Extending a database through an append operation. - - - - If a resource has been created on the origin server, the response SHOULD be 201 (Created) and - contain an entity which describes the status of the request and refers to the new resource, and a - Location header (see section 14.30). - - - The action performed by the POST method might not result in a resource that can be identified by a URI. - In this case, either 200 (OK) or 204 (No Content) is the appropriate response status, depending on - whether or not the response includes an entity that describes the result. - - Responses to this method are not cacheable, unless the response includes appropriate Cache-Control - or Expires header fields. However, the 303 (See Other) response can be used to direct the user agent - to retrieve a cacheable resource. - - - + - The PUT method requests that the enclosed entity be stored under the supplied Request-URI. + Cookie is only valid under this path. + + + + + Inversion of control interface. + + + + + Add a component instance + + Interface type + Instance to add + + + + Get a component. + Interface type + Component if registered, otherwise null. - - - If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a - modified version of the one residing on the origin server. - - If the Request-URI does not point to an existing resource, and that URI is capable of being defined as a new - resource by the requesting user agent, the origin server can create the resource with that URI. - - If a new resource is created, the origin server MUST inform the user agent via the 201 (Created) response. - - If an existing resource is modified, either the 200 (OK) or 204 (No Content) response codes SHOULD be sent to - indicate successful completion of the request. - - If the resource could not be created or modified with the Request-URI, an appropriate error response SHOULD be - given that reflects the nature of the problem. - - - - The recipient of the entity MUST NOT ignore any Content-* (e.g. Content-Range) headers that it does not - understand or implement and MUST return a 501 (Not Implemented) response in such cases. - + Component will get created if needed. - + - The TRACE method is used to invoke a remote, application-layer loop- back of the request message. + Checks if the specified component interface have been added. + + true if found; otherwise false. - + - Contains all HTTP Methods (according to the HTTP 1.1 specification) - - See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html - + Add a component. + Type being requested. + Type being created. - + - The DELETE method requests that the origin server delete the resource identified by the Request-URI. + Contains a listener that doesn't do anything with the connections. + + + + + Listen for regular HTTP connections + + IP Address to accept connections on + TCP Port to listen on, default HTTP port is 80. + Factory used to create es. + address is null. + Port must be a positive number. + + + + Initializes a new instance of the class. + + IP Address to accept connections on + TCP Port to listen on, default HTTPS port is 443 + Factory used to create es. + Certificate to use + + + + Initializes a new instance of the class. + + IP Address to accept connections on + TCP Port to listen on, default HTTPS port is 443 + Factory used to create es. + Certificate to use + which HTTPS protocol to use, default is TLS. + + + Exception. + + + + Will try to accept connections one more time. + + If any exceptions is thrown. + + + + Can be used to create filtering of new connections. + + Accepted socket + true if connection can be accepted; otherwise false. + + + + Start listen for new connections + + Number of connections that can stand in a queue to be accepted. + Listener have already been started. + + + + Stop the listener + + + + + + Gives you a change to receive log entries for all internals of the HTTP library. - - This method MAY be overridden by human intervention (or other means) on the origin server. - The client cannot be guaranteed that the operation has been carried out, even if the status code - returned from the origin server indicates that the action has been completed successfully. - - - However, the server SHOULD NOT indicate success unless, at the time the response is given, - it intends to delete the resource or move it to an inaccessible location. - - - A successful response SHOULD be 200 (OK) if the response includes an entity describing the status, - 202 (Accepted) if the action has not yet been enacted, - or 204 (No Content) if the action has been enacted but the response does not include an entity. - - - If the request passes through a cache and the Request-URI identifies one or more currently cached entities, - those entries SHOULD be treated as stale. Responses to this method are not cacheable. - + You may not switch log writer after starting the listener. - + - The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI. + True if we should turn on trace logs. + + + + + Catch exceptions not handled by the listener. - - If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the - entity in the response and not the source text of the process, unless that text happens to be the output of the process. - - - The semantics of the GET method change to a "conditional GET" if the request message includes an - If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, or If-Range header field. - A conditional GET method requests that the entity be transferred only under the circumstances described - by the conditional header field(s). The conditional GET method is intended to reduce unnecessary network - usage by allowing cached entities to be refreshed without requiring multiple requests or transferring - data already held by the client. - + Exceptions will be thrown during debug mode if this event is not used, + exceptions will be printed to console and suppressed during release mode. + + + + + A request have been received from a . + + + + + New implementation of the HTTP listener. + + + Use the Create methods to create a default listener. - + + + Initializes a new instance of the class. + + IP Address to accept connections on + TCP Port to listen on, default HTTP port is 80. + Factory used to create es. + address is null. + Port must be a positive number. + + + + Initializes a new instance of the class. + + The address. + The port. + The factory. + The certificate. + + - The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response. + Initializes a new instance of the class. - - The meta information contained in the HTTP headers in response to a HEAD request SHOULD be identical to the - information sent in response to a GET request. This method can be used for obtaining meta information about - the entity implied by the request without transferring the entity-body itself. - - This method is often used for testing hypertext links for validity, accessibility, and recent modification. - + The address. + The port. + The factory. + The certificate. + The protocol. - + - The OPTIONS method represents a request for information about the communication options available on the request/response chain identified by the Request-URI. + Creates a new instance with default factories. - - This method allows the client to determine the options and/or requirements associated with a resource, or the capabilities of a server, without implying a resource action or initiating a resource retrieval. - + Address that the listener should accept connections on. + Port that listener should accept connections on. + Created HTTP listener. - + - The POST method is used to request that the origin server accept the entity enclosed - in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line. + Creates a new instance with default factories. - - POST is designed to allow a uniform method to cover the following functions: - - - Annotation of existing resources; - - Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles; - - Providing a block of data, such as the result of submitting a form, to a data-handling process; - - Extending a database through an append operation. - - - - If a resource has been created on the origin server, the response SHOULD be 201 (Created) and - contain an entity which describes the status of the request and refers to the new resource, and a - Location header (see section 14.30). - - - The action performed by the POST method might not result in a resource that can be identified by a URI. - In this case, either 200 (OK) or 204 (No Content) is the appropriate response status, depending on - whether or not the response includes an entity that describes the result. - - Responses to this method are not cacheable, unless the response includes appropriate Cache-Control - or Expires header fields. However, the 303 (See Other) response can be used to direct the user agent - to retrieve a cacheable resource. - - + Address that the listener should accept connections on. + Port that listener should accept connections on. + Certificate to use + Created HTTP listener. - + - The PUT method requests that the enclosed entity be stored under the supplied Request-URI. + Creates a new instance with default factories. - - - - If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a - modified version of the one residing on the origin server. - - If the Request-URI does not point to an existing resource, and that URI is capable of being defined as a new - resource by the requesting user agent, the origin server can create the resource with that URI. - - If a new resource is created, the origin server MUST inform the user agent via the 201 (Created) response. - - If an existing resource is modified, either the 200 (OK) or 204 (No Content) response codes SHOULD be sent to - indicate successful completion of the request. - - If the resource could not be created or modified with the Request-URI, an appropriate error response SHOULD be - given that reflects the nature of the problem. - - - - The recipient of the entity MUST NOT ignore any Content-* (e.g. Content-Range) headers that it does not - understand or implement and MUST return a 501 (Not Implemented) response in such cases. - - + Address that the listener should accept connections on. + Port that listener should accept connections on. + Certificate to use + which HTTPS protocol to use, default is TLS. + Created HTTP listener. - + - The TRACE method is used to invoke a remote, application-layer loop- back of the request message. + Can be used to create filtering of new connections. + Accepted socket + + true if connection can be accepted; otherwise false. + - + - Priority for log entries + A client have been accepted, but not handled, by the listener. - - + - Very detailed logs to be able to follow the flow of the program. + redirects from one URL to another. - + - Logs to help debug errors in the application + Rules are used to perform operations before a request is being handled. + Rules can be used to create routing etc. - + - Information to be able to keep track of state changes etc. + Process the incoming request. + + incoming HTTP request + outgoing HTTP response + true if response should be sent to the browser directly (no other rules or modules will be processed). + + returning true means that no modules will get the request. Returning true is typically being done + for redirects. + + If request or response is null. + + + + Initializes a new instance of the class. + Absolute path (no server name) + Absolute path (no server name) + + server.Add(new RedirectRule("/", "/user/index")); + - + - Something did not go as we expected, but it's no problem. + Initializes a new instance of the class. + Absolute path (no server name) + Absolute path (no server name) + true if request should be redirected, false if the request URI should be replaced. + + server.Add(new RedirectRule("/", "/user/index")); + - + - Something that should not fail failed, but we can still keep - on going. + Process the incoming request. + incoming HTTP request + outgoing HTTP response + true if response should be sent to the browser directly (no other rules or modules will be processed). + + returning true means that no modules will get the request. Returning true is typically being done + for redirects. + - + - Something failed, and we cannot handle it properly. + Gets string to match request URI with. + Is compared to request.Uri.AbsolutePath - + - Interface used to write to log files. + Gets where to redirect. - + - Write an entry to the log file. + Gets whether server should redirect client. - object that is writing to the log - importance of the log message - the message + + false means that the rule will replace + the current request URI with the new one from this class. + true means that a redirect response is sent to the client. + - + - This class writes to the console. It colors the output depending on the logprio and includes a 3-level stacktrace (in debug mode) + Parses a HTTP request directly from a stream - - + - The actual instance of this class. + Event driven parser used to parse incoming HTTP requests. + + The parser supports partial messages and keeps the states between + each parsed buffer. It's therefore important that the parser gets + ed if a client disconnects. + - + - Logwriters the specified source. + Parse partial or complete message. - object that wrote the logentry. - Importance of the log message - The message. + buffer containing incoming bytes + where in buffer that parsing should start + number of bytes to parse + Unparsed bytes left in buffer. + BadRequestException. - + - Get color for the specified logprio + Clear parser state. - prio for the log entry - A for the prio - + - Default log writer, writes everything to null (nowhere). + Current state in parser. - - + - The logging instance. + A request have been successfully parsed. - + - Writes everything to null + More body bytes have been received. - object that wrote the log entry. - Importance of the log message - The message. - + - Inversion of control interface. + Request line have been received. - + - Add a component instance + A header have been received. - Interface type - Instance to add - + - Get a component. + Gets or sets the log writer. - Interface type - Component if registered, otherwise null. - - Component will get created if needed. - - + - Checks if the specified component interface have been added. + Create a new request parser - - true if found; otherwise false. + delegate receiving log entries. - + - Add a component. + Add a number of bytes to the body - Type being requested. - Type being created. + buffer containing more body bytes. + starting offset in buffer + number of bytes, from offset, to read. + offset to continue from. - + - Returns item either from a form or a query string (checks them in that order) + Remove all state information for the request. - - Representation of a non-initialized HttpParam - - - Initialises the class to hold a value either from a post request or a querystring request - - + - The add method is not availible for HttpParam - since HttpParam checks both Request.Form and Request.QueryString + Parse request line - name identifying the value - value to add - + + If line is incorrect + Expects the following format: "Method SP Request-URI SP HTTP-Version CRLF" - + - Checks whether the form or querystring has the specified value + We've parsed a new header. - Name, case sensitive - true if found; otherwise false. + Name in lower case + Value, unmodified. + If content length cannot be parsed. - + - Returns an enumerator that iterates through the collection. + Parse a message - - - A that can be used to iterate through the collection. - - 1 + bytes to parse. + where in buffer that parsing should start + number of bytes to parse, starting on . + offset (where to start parsing next). + BadRequestException. - + - Returns an enumerator that iterates through a collection. + Gets or sets the log writer. - - - An object that can be used to iterate through the collection. - - 2 - + - Fetch an item from the form or querystring (in that order). + Current state in parser. - - Item if found; otherwise HttpInputItem.EmptyLanguageNode - - - Container for posted form data - - Instance to help mark a non-initialized form - - - Initializes a form container with the specified name - - + - Makes a deep copy of the input + A request have been successfully parsed. - The input to copy - + - Adds a file to the collection of posted files + More body bytes have been received. - The file to add - If the file is already added - If file is null - If the instance is HttpForm.EmptyForm which cannot be modified - + - Checks if the form contains a specified file + Request line have been received. - Field name of the file parameter - True if the file exists - If the instance is HttpForm.EmptyForm which cannot be modified - + - Retrieves a file held by by the form + A header have been received. - The identifier of the file - The requested file or null if the file was not found - If name is null or empty - If the instance is HttpForm.EmptyForm which cannot be modified - - - Disposes all held HttpFile's and resets values - + - Retrieves the number of files added to the + A thread-safe lockless queue that supports multiple readers and + multiple writers - 0 if no files are added - + + Queue head + + + Queue tail + + + Queue item count + + - The object form class takes an object and creates form items for it. + Constructor - + - Initializes a new instance of the class. + Enqueue an item - - form name *and* id. - action to do when form is posted. - + Item to enqeue - + - Initializes a new instance of the class. + Try to dequeue an item - form name *and* id. - action to do when form is posted. - object to get values from + Dequeued item if the dequeue was successful + True if an item was successfully deqeued, otherwise false - + + Gets the current number of items in the queue. Since this + is a lockless collection this value should be treated as a close + estimate + + - Initializes a new instance of the class. + Provides a node container for data in a singly linked list - form action. - object to get values from. - + + Pointer to the next node in list + + + The data contained by the node + + - write out the FORM-tag. + Constructor - generated html code - + - Writeout the form tag + Constructor - form should be posted through ajax. - generated html code - + - Generates a text box. + Contains server side HTTP request information. - - - generated html code - + - password box + Called during parsing of a . - - - generated html code + Name of the header, should not be URL encoded + Value of the header, should not be URL encoded + If a header is incorrect. - + - Hiddens the specified property name. + Add bytes to the body - Name of the property. - The options. - generated html code + buffer to read bytes from + where to start read + number of bytes to read + Number of bytes actually read (same as length unless we got all body bytes). + If body is not writable + bytes is null. + offset is out of range. - + - Labels the specified property name. + Clear everything in the request - property in object. - caption - generated html code - + - Generate a checkbox + Decode body into a form. - property in object - checkbox value - additional html attributes. - generated html code + A list with form decoders. + If body contents is not valid for the chosen decoder. + If body is still being transferred. - + - Write a html select tag + Sets the cookies. - object property. - id column - The title column. - The options. - + The cookies. - + - Selects the specified property name. + Create a response object. - Name of the property. - The items. - The id column. - The title column. - The options. - + Context for the connected client. + A new . - + - Write a submit tag. + Gets kind of types accepted by the client. - button caption - html submit tag - + - html end form tag + Gets or sets body stream. - html - + - This provider is used to let us implement any type of form decoding we want without - having to rewrite anything else in the server. + Gets whether the body is complete. - + - + Gets or sets kind of connection used for the session. - Should contain boundary and type, as in: multipart/form-data; boundary=---------------------------230051238959 - Stream containing form data. - Encoding used when decoding the stream - if no parser was found. - If stream is null or not readable. - If stream contents cannot be decoded properly. - + - Add a decoder. + Gets or sets number of bytes in the body. - - - + - Number of added decoders. + Gets cookies that was sent with the request. - + - Use with care. + Gets form parameters. - + - Decoder used for unknown content types. + Gets headers sent by the client. - + - We dont want to let the server to die due to exceptions thrown in worker threads. - therefore we use this delegate to give you a change to handle uncaught exceptions. + Gets or sets version of HTTP protocol that's used. - Class that the exception was thrown in. - Exception - Server will throw a InternalServerException in release version if you dont - handle this delegate. + Probably or . + - + - Contains a connection to a browser/client. + Gets whether the request was made by Ajax (Asynchronous JavaScript) + + + + + Gets or sets requested method. - Remember to after you have hooked the event. + Will always be in upper case. - TODO: Maybe this class should be broken up into HttpClientChannel and HttpClientContext? + - + - Initializes a new instance of the class. + Gets parameter from or . - true if the connection is secured (SSL/TLS) - client that connected. - Stream used for communication - Used to create a . - Size of buffer to use when reading data. Must be at least 4096 bytes. - If fails - Stream must be writable and readable. - + - Process incoming body bytes. + Gets variables sent in the query string - - Bytes - + - + Gets or sets requested URI. - - - + - Start reading content. + Gets URI absolute path divided into parts. + + // URI is: http://gauffin.com/code/tiny/ + Console.WriteLine(request.UriParts[0]); // result: code + Console.WriteLine(request.UriParts[1]); // result: tiny + - Make sure to call base.Start() if you override this method. + If you're using controllers than the first part is controller name, + the second part is method name and the third part is Id property. + - + - Clean up context. + Gets or sets path and query. + - Make sure to call base.Cleanup() if you override the method. + Are only used during request parsing. Cannot be set after "Host" header have been + added. - - - Disconnect from client - - error to report in the event. - - - - Send a response. - - Either or - HTTP status code - reason for the status code. - HTML body contents, can be null or empty. - A content type to return the body as, i.e. 'text/html' or 'text/plain', defaults to 'text/html' if null or empty - If is invalid. - - + - Send a response. + PrototypeJS implementation of the javascript functions. - Either or - HTTP status code - reason for the status code. - + - Send a response. + Purpose of this class is to create a javascript toolkit independent javascript helper. - - + - send a whole buffer + Generates a list with JS options. - buffer to send - + StringBuilder that the options should be added to. + the javascript options. name, value pairs. each string value should be escaped by YOU! + true if we should start with a comma. - + - Send data using the stream + Removes any javascript parameters from an array of parameters - Contains data to send - Start position in buffer - number of bytes to send - - + The array of parameters to remove javascript params from + An array of html parameters - + - This context have been cleaned, which means that it can be reused. + javascript action that should be added to the "onsubmit" event in the form tag. + + All javascript option names should end with colon. + + + JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);"); + + - + - Context have been started (a new client have connected) + Requests a url through ajax + url to fetch + optional options in format "key, value, key, value", used in JS request object. + a link tag + All javascript option names should end with colon. + + + JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);"); + + - + - Overload to specify own type. + Ajax requests that updates an element with + the fetched content - - Must be specified before the context is being used. - + Url to fetch content from + element to update + optional options in format "key, value, key, value", used in JS updater object. + A link tag. + All javascript option names should end with colon. + + + JSHelper.AjaxUpdater("/user/show/1", "userInfo", "onsuccess:", "alert('Successful!');"); + + - + - Using SSL or other encryption method. + A link that pop ups a Dialog (overlay div) + url to contents of dialog + link title + A "a"-tag that popups a dialog when clicked + name/value of html attributes + + WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');"); + - + - Using SSL or other encryption method. + Close a javascript dialog window/div. + javascript for closing a dialog. + - + - Specify which logger to use. + Creates a new modal dialog window + url to open in window. + window title (may not be supported by all js implementations) + + - + - Gets or sets the network stream. + Requests a url through ajax + url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself. + optional options in format "key, value, key, value", used in JS request object. All keys should end with colon. + a link tag + onclick attribute is used by this method. + + + // plain text + JSHelper.AjaxRequest("'/user/show/1'"); + + // ajax request using this.href + string link = "<a href=\"/user/call/1\" onclick=\"" + JSHelper.AjaxRequest("this.href") + "/<call user</a>"; + + - + - Gets or sets IP address that the client connected from. + Determins if a list of strings contains a specific value + options to check in + value to find + true if value was found + case insensitive - + - Gets or sets port that the client connected from. + Ajax requests that updates an element with + the fetched content + URL to fetch. URL is NOT enclosed in quotes by the implementation. You need to do that yourself. + element to update + options in format "key, value, key, value". All keys should end with colon. + A link tag. + + + JSHelper.AjaxUpdater("'/user/show/1'", "user", "onsuccess:", "alert('hello');", "asynchronous:", "true"); + + - + - The context have been disconnected. + A link that pop ups a Dialog (overlay div) - - Event can be used to clean up a context, or to reuse it. + URL to contents of dialog + link title + name, value, name, value + + A "a"-tag that popups a dialog when clicked + + Requires Control.Modal found here: http://livepipe.net/projects/control_modal/ + And the following JavaScript (load it in application.js): + + Event.observe(window, 'load', + function() { + document.getElementsByClassName('modal').each(function(link){ new Control.Modal(link); }); + } + ); + + + WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');"); + - + - A request have been received in the context. + create a modal dialog (usually using DIVs) + url to fetch + dialog title + javascript/html attributes. javascript options ends with colon ':'. + - + - Helpers to make XML handling easier + Close a javascript dialog window/div. + javascript for closing a dialog. + - + - Serializes object to XML. + javascript action that should be added to the "onsubmit" event in the form tag. - object to serialize. - XML - - Removes name spaces and adds indentation - + remember to encapsulate strings in '' + + All javascript option names should end with colon. + + + JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);"); + + - + - Create an object from a XML string + Helpers making it easier to work with forms. - Type of object - XML string - object + - + - Can handle application/x-www-form-urlencoded + Used to let the website use different JavaScript libraries. + Default is - + + Create a <form> tag. - Stream containing the content - Content type (with any additional info like boundry). Content type is always supplied in lower case - Stream encoding - - A HTTP form, or null if content could not be parsed. - - If contents in the stream is not valid input data. + name of form + action to invoke on submit + form should be posted as Ajax + HTML code + + + // without options + WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax); + + // with options + WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax, "style", "display:inline", "class", "greenForm"); + + + HTML attributes or JavaScript options. + Method will ALWAYS be POST. + options must consist of name, value, name, value - + - Checks if the decoder can handle the mime type + Creates a select list with the values in a collection. - Content type (with any additional info like boundry). Content type is always supplied in lower case. - True if the decoder can parse the specified content type + Name of the SELECT-tag + collection used to generate options. + delegate used to return id and title from objects. + value that should be marked as selected. + First row should contain an empty value. + string containing a SELECT-tag. + - + - Invoked when a client have been accepted by the + Creates a select list with the values in a collection. - - Can be used to revoke incoming connections - + Name of the SELECT-tag + Id of the SELECT-tag + collection used to generate options. + delegate used to return id and title from objects. + value that should be marked as selected. + First row should contain an empty value. + string containing a SELECT-tag. + + + + // Class that is going to be used in a SELECT-tag. + public class User + { + private readonly string _realName; + private readonly int _id; + public User(int id, string realName) + { + _id = id; + _realName = realName; + } + public string RealName + { + get { return _realName; } + } + + public int Id + { + get { return _id; } + } + } + + // Using an inline delegate to generate the select list + public void UserInlineDelegate() + { + List<User> items = new List<User>(); + items.Add(new User(1, "adam")); + items.Add(new User(2, "bertial")); + items.Add(new User(3, "david")); + string htmlSelect = Select("users", "users", items, delegate(object o, out object id, out object value) + { + User user = (User)o; + id = user.Id; + value = user.RealName; + }, 2, true); + } + + // Using an method as delegate to generate the select list. + public void UseExternalDelegate() + { + List<User> items = new List<User>(); + items.Add(new User(1, "adam")); + items.Add(new User(2, "bertial")); + items.Add(new User(3, "david")); + string htmlSelect = Select("users", "users", items, UserOptions, 1, true); + } + + // delegate returning id and title + public static void UserOptions(object o, out object id, out object title) + { + User user = (User)o; + id = user.Id; + value = user.RealName; + } + + + name, id, collection or getIdTitle is null. - + - Initializes a new instance of the class. + Creates a select list with the values in a collection. - The socket. + Name of the SELECT-tag + Id of the SELECT-tag + collection used to generate options. + delegate used to return id and title from objects. + value that should be marked as selected. + First row should contain an empty value. + name, value collection of extra HTML attributes. + string containing a SELECT-tag. + + name, id, collection or getIdTitle is null. + Invalid HTML attribute list. - + - Client may not be handled. + Generate a list of HTML options + collection used to generate options. + delegate used to return id and title from objects. + value that should be marked as selected. + First row should contain an empty value. + + collection or getIdTitle is null. - - - Accepted socket. - + + sb is null. - + - Client should be revoked. + Creates a check box. + element name + element value + determines if the check box is selected or not. This is done differently depending on the + type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if + the box is checked or not. + a list with additional attributes (name, value, name, value). + a generated radio button - + - Arguments sent when a is cleared + Creates a check box. + element name + element id + element value + determines if the check box is selected or not. This is done differently depending on the + type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if + the box is checked or not. + a list with additional attributes (name, value, name, value). + a generated radio button + + value in your business object. (check box will be selected if it matches the element value) + - + - Instantiates the arguments for the event + Creates a check box. - True if the session is cleared due to expiration + element name + element id + determines if the check box is selected or not. This is done differently depending on the + type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if + the box is checked or not. + a list with additional attributes (name, value, name, value). + a generated radio button + will set value to "1". - + - Returns true if the session is cleared due to expiration + Creates a RadioButton. + element name + element value + determines if the radio button is selected or not. This is done differently depending on the + type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if + the box is checked or not. + a list with additional attributes (name, value, name, value). + a generated radio button - + - Delegate for when a IHttpSession is cleared + Creates a RadioButton. - this is being cleared. - Arguments for the clearing + element name + element id + element value + determines if the radio button is selected or not. This is done differently depending on the + type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if + the box is checked or not. + a list with additional attributes (name, value, name, value). + a generated radio button - + - Event arguments used when a new header have been parsed. + form close tag + - + - Initializes a new instance of the class. + We dont want to let the server to die due to exceptions thrown in worker threads. + therefore we use this delegate to give you a change to handle uncaught exceptions. - Name of header. - Header value. + Class that the exception was thrown in. + Exception + + Server will throw a InternalServerException in release version if you dont + handle this delegate. + - + - Initializes a new instance of the class. + Implements HTTP Digest authentication. It's more secure than Basic auth since password is + encrypted with a "key" from the server. + + Keep in mind that the password is encrypted with MD5. Use a combination of SSL and digest auth to be secure. + - + - Gets or sets header name. + Authentication modules are used to implement different + kind of HTTP authentication. - + - Gets or sets header value. + Tag used for authentication. - - Class to handle loading of resource files - - + - Initializes a new instance of the class. + Initializes a new instance of the class. + Delegate used to provide information used during authentication. + Delegate used to determine if authentication is required (may be null). - + - Initializes a new instance of the class. + Initializes a new instance of the class. - logger. + Delegate used to provide information used during authentication. - + - Loads resources from a namespace in the given assembly to an URI + Create a response that can be sent in the WWW-Authenticate header. - The URI to map the resources to - The assembly in which the resources reside - The namespace from which to load the resources - - - resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views"); - - Will make the resource MyLib.Models.User.Views.list.Haml accessible via /user/list.haml or /user/list/ - - The amount of loaded files, giving you the possibility of making sure the resources needed gets loaded - If a resource has already been mapped to an uri + Realm that the user should authenticate in + Array with optional options. + A correct authentication request. + If realm is empty or null. - + - Retrieves a stream for the specified resource path if loaded otherwise null + An authentication response have been received from the web browser. + Check if it's correct - Path to the resource to retrieve a stream for - A stream or null if the resource couldn't be found + Contents from the Authorization header + Realm that should be authenticated + GET/POST/PUT/DELETE etc. + options to specific implementations + Authentication object that is stored for the request. A user class or something like that. + if is invalid + If any of the parameters is empty or null. - + - Fetch all files from the resource that matches the specified arguments. + Used to invoke the authentication delegate that is used to lookup the user name/realm. - The path to the resource to extract - - a list of files if found; or an empty array if no files are found. - - Search path must end with an asterisk for finding arbitrary files + Realm (domain) that user want to authenticate in + User name + Password used for validation. Some implementations got password in clear text, they are then sent to client. + object that will be stored in the request to help you identify the user if authentication was successful. + true if authentication was successful - + - Fetch all files from the resource that matches the specified arguments. + Determines if authentication is required. - Where the file should reside. - Files to check - - a list of files if found; or an empty array if no files are found. - + HTTP request from browser + true if user should be authenticated. + throw from your delegate if no more attempts are allowed. + If no more attempts are allowed - + - Returns whether or not the loader has an instance of the file requested + name used in HTTP request. - The name of the template/file - True if the loader can provide the file - + - redirects from one URL to another. + Initializes a new instance of the class. + Delegate used to provide information used during authentication. + Delegate used to determine if authentication is required (may be null). - + - Rules are used to perform operations before a request is being handled. - Rules can be used to create routing etc. + Initializes a new instance of the class. + Delegate used to provide information used during authentication. - + - Process the incoming request. + Used by test classes to be able to use hardcoded values - incoming HTTP request - outgoing HTTP response - true if response should be sent to the browser directly (no other rules or modules will be processed). - - returning true means that no modules will get the request. Returning true is typically being done - for redirects. - - If request or response is null. - + - Initializes a new instance of the class. + An authentication response have been received from the web browser. + Check if it's correct - Absolute path (no server name) - Absolute path (no server name) - - server.Add(new RedirectRule("/", "/user/index")); - + Contents from the Authorization header + Realm that should be authenticated + GET/POST/PUT/DELETE etc. + First option: true if username/password is correct but not cnonce + + Authentication object that is stored for the request. A user class or something like that. + + if authenticationHeader is invalid + If any of the paramters is empty or null. - + - Initializes a new instance of the class. + Encrypts parameters into a Digest string - Absolute path (no server name) - Absolute path (no server name) - true if request should be redirected, false if the request URI should be replaced. - - server.Add(new RedirectRule("/", "/user/index")); - + Realm that the user want to log into. + User logging in + Users password. + HTTP method. + Uri/domain that generated the login prompt. + Quality of Protection. + "Number used ONCE" + Hexadecimal request counter. + "Client Number used ONCE" + Digest encrypted string - + - Process the incoming request. + - incoming HTTP request - outgoing HTTP response - true if response should be sent to the browser directly (no other rules or modules will be processed). - - returning true means that no modules will get the request. Returning true is typically being done - for redirects. - + Md5 hex encoded "userName:realm:password", without the quotes. + Md5 hex encoded "method:uri", without the quotes + Quality of Protection + "Number used ONCE" + Hexadecimal request counter. + Client number used once + - + - Gets string to match request URI with. + Create a response that can be sent in the WWW-Authenticate header. - Is compared to request.Uri.AbsolutePath + Realm that the user should authenticate in + First options specifies if true if username/password is correct but not cnonce. + A correct auth request. + If realm is empty or null. - + - Gets where to redirect. + Decodes authorization header value + header value + Encoding that the buffer is in + All headers and their values if successful; otherwise null + + NameValueCollection header = DigestAuthentication.Decode("response=\"6629fae49393a05397450978507c4ef1\",\r\nc=00001", Encoding.ASCII); + + Can handle lots of whitespaces and new lines without failing. - + - Gets whether server should redirect client. + Gets the current nonce. - - false means that the rule will replace - the current request URI with the new one from this class. - true means that a redirect response is sent to the client. - + - + - Used to queue incoming requests. + Gets the Md5 hash bin hex2. + To be hashed. + - + - Initializes a new instance of the class. + determines if the nonce is valid or has expired. - Called when a request should be processed. + nonce value (check wikipedia for info) + true if the nonce has not expired. - + - Used to process queued requests. + name used in http request. - + - Gets or sets maximum number of allowed simultaneous requests. + Gets or sets whether the token supplied in is a + HA1 generated string. - + - Gets or sets maximum number of requests queuing to be handled. + Generic helper functions for HTTP - + - Specifies how many requests the HTTP server is currently processing. + Version string for HTTP v1.0 - + - Used two queue incoming requests to avoid - thread starvation. + Version string for HTTP v1.1 - + - Method used to process a queued request + An empty URI - Context that the request was received from. - Request to process. - + - Parses a HTTP request directly from a stream + Parses a query string. + Query string (URI encoded) + A object if successful; otherwise + queryString is null. + If string cannot be parsed. - + - Event driven parser used to parse incoming HTTP requests. + Delegate used to let authentication modules authenticate the user name and password. + Realm that the user want to authenticate in + User name specified by client + Can either be user password or implementation specific token. + object that will be stored in a session variable called if authentication was successful. + throw forbidden exception if too many attempts have been made. - The parser supports partial messages and keeps the states between - each parsed buffer. It's therefore important that the parser gets - ed if a client disconnects. + + Use to specify that the token is a HA1 token. (MD5 generated + string from realm, user name and password); Md5String(userName + ":" + realm + ":" + password); + - - - Parse partial or complete message. - - buffer containing incoming bytes - where in buffer that parsing should start - number of bytes to parse - Unparsed bytes left in buffer. - BadRequestException. - - + - Clear parser state. + Let's you decide on a system level if authentication is required. + HTTP request from client + true if user should be authenticated. + throw if no more attempts are allowed. + If no more attempts are allowed - + - Current state in parser. + Arguments used when more body bytes have come. - + - A request have been successfully parsed. + Initializes a new instance of the class. + buffer that contains the received bytes. + offset in buffer where to start processing. + number of bytes from that should be parsed. - + - More body bytes have been received. + Initializes a new instance of the class. - + - Request line have been received. + Gets or sets buffer that contains the received bytes. - + - A header have been received. + Gets or sets number of bytes from that should be parsed. - + - Gets or sets the log writer. + Gets or sets offset in buffer where to start processing. - + - Create a new request parser + Contains all HTTP Methods (according to the HTTP 1.1 specification) + + See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html + - delegate receiving log entries. - + - Add a number of bytes to the body + The DELETE method requests that the origin server delete the resource identified by the Request-URI. - buffer containing more body bytes. - starting offset in buffer - number of bytes, from offset, to read. - offset to continue from. + + + This method MAY be overridden by human intervention (or other means) on the origin server. + The client cannot be guaranteed that the operation has been carried out, even if the status code + returned from the origin server indicates that the action has been completed successfully. + + + However, the server SHOULD NOT indicate success unless, at the time the response is given, + it intends to delete the resource or move it to an inaccessible location. + + + A successful response SHOULD be 200 (OK) if the response includes an entity describing the status, + 202 (Accepted) if the action has not yet been enacted, + or 204 (No Content) if the action has been enacted but the response does not include an entity. + + + If the request passes through a cache and the Request-URI identifies one or more currently cached entities, + those entries SHOULD be treated as stale. Responses to this method are not cacheable. + + - + - Remove all state information for the request. + The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI. + + + If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the + entity in the response and not the source text of the process, unless that text happens to be the output of the process. + + + The semantics of the GET method change to a "conditional GET" if the request message includes an + If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, or If-Range header field. + A conditional GET method requests that the entity be transferred only under the circumstances described + by the conditional header field(s). The conditional GET method is intended to reduce unnecessary network + usage by allowing cached entities to be refreshed without requiring multiple requests or transferring + data already held by the client. + + - + - Parse request line + The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response. - - If line is incorrect - Expects the following format: "Method SP Request-URI SP HTTP-Version CRLF" + + The meta information contained in the HTTP headers in response to a HEAD request SHOULD be identical to the + information sent in response to a GET request. This method can be used for obtaining meta information about + the entity implied by the request without transferring the entity-body itself. + + This method is often used for testing hypertext links for validity, accessibility, and recent modification. + - + - We've parsed a new header. + The OPTIONS method represents a request for information about the communication options available on the request/response chain identified by the Request-URI. - Name in lower case - Value, unmodified. - If content length cannot be parsed. + + This method allows the client to determine the options and/or requirements associated with a resource, or the capabilities of a server, without implying a resource action or initiating a resource retrieval. + - + - Parse a message + The POST method is used to request that the origin server accept the entity enclosed + in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line. - bytes to parse. - where in buffer that parsing should start - number of bytes to parse, starting on . - offset (where to start parsing next). - BadRequestException. + + POST is designed to allow a uniform method to cover the following functions: + + + Annotation of existing resources; + + Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles; + + Providing a block of data, such as the result of submitting a form, to a data-handling process; + + Extending a database through an append operation. + + + + If a resource has been created on the origin server, the response SHOULD be 201 (Created) and + contain an entity which describes the status of the request and refers to the new resource, and a + Location header (see section 14.30). + + + The action performed by the POST method might not result in a resource that can be identified by a URI. + In this case, either 200 (OK) or 204 (No Content) is the appropriate response status, depending on + whether or not the response includes an entity that describes the result. + + Responses to this method are not cacheable, unless the response includes appropriate Cache-Control + or Expires header fields. However, the 303 (See Other) response can be used to direct the user agent + to retrieve a cacheable resource. + + - + - Gets or sets the log writer. + The PUT method requests that the enclosed entity be stored under the supplied Request-URI. + + + + If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a + modified version of the one residing on the origin server. + + If the Request-URI does not point to an existing resource, and that URI is capable of being defined as a new + resource by the requesting user agent, the origin server can create the resource with that URI. + + If a new resource is created, the origin server MUST inform the user agent via the 201 (Created) response. + + If an existing resource is modified, either the 200 (OK) or 204 (No Content) response codes SHOULD be sent to + indicate successful completion of the request. + + If the resource could not be created or modified with the Request-URI, an appropriate error response SHOULD be + given that reflects the nature of the problem. + + + + The recipient of the entity MUST NOT ignore any Content-* (e.g. Content-Range) headers that it does not + understand or implement and MUST return a 501 (Not Implemented) response in such cases. + + - + - Current state in parser. + The TRACE method is used to invoke a remote, application-layer loop- back of the request message. - + - A request have been successfully parsed. + Contains all HTTP Methods (according to the HTTP 1.1 specification) + + See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html + - + - More body bytes have been received. + The DELETE method requests that the origin server delete the resource identified by the Request-URI. + + + This method MAY be overridden by human intervention (or other means) on the origin server. + The client cannot be guaranteed that the operation has been carried out, even if the status code + returned from the origin server indicates that the action has been completed successfully. + + + However, the server SHOULD NOT indicate success unless, at the time the response is given, + it intends to delete the resource or move it to an inaccessible location. + + + A successful response SHOULD be 200 (OK) if the response includes an entity describing the status, + 202 (Accepted) if the action has not yet been enacted, + or 204 (No Content) if the action has been enacted but the response does not include an entity. + + + If the request passes through a cache and the Request-URI identifies one or more currently cached entities, + those entries SHOULD be treated as stale. Responses to this method are not cacheable. + + - + - Request line have been received. + The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI. + + + If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the + entity in the response and not the source text of the process, unless that text happens to be the output of the process. + + + The semantics of the GET method change to a "conditional GET" if the request message includes an + If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, or If-Range header field. + A conditional GET method requests that the entity be transferred only under the circumstances described + by the conditional header field(s). The conditional GET method is intended to reduce unnecessary network + usage by allowing cached entities to be refreshed without requiring multiple requests or transferring + data already held by the client. + + - + - A header have been received. + The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response. - - - - Response that is sent back to the web browser / client. - - A response can be sent if different ways. The easiest one is - to just fill the Body stream with content, everything else - will then be taken care of by the framework. The default content-type - is text/html, you should change it if you send anything else. + + The meta information contained in the HTTP headers in response to a HEAD request SHOULD be identical to the + information sent in response to a GET request. This method can be used for obtaining meta information about + the entity implied by the request without transferring the entity-body itself. - The second and slighty more complex way is to send the response - as parts. Start with sending the header using the SendHeaders method and - then you can send the body using SendBody method, but do not forget - to set ContentType and ContentLength before doing so. - - - public void MyHandler(IHttpRequest request, IHttpResponse response) - { - - } - + This method is often used for testing hypertext links for validity, accessibility, and recent modification. + - + - Add another header to the document. + The OPTIONS method represents a request for information about the communication options available on the request/response chain identified by the Request-URI. - Name of the header, case sensitive, use lower cases. - Header values can span over multiple lines as long as each line starts with a white space. New line chars should be \r\n - If headers already been sent. - If value conditions have not been met. - Adding any header will override the default ones and those specified by properties. + + This method allows the client to determine the options and/or requirements associated with a resource, or the capabilities of a server, without implying a resource action or initiating a resource retrieval. + - + - Send headers and body to the browser. + The POST method is used to request that the origin server accept the entity enclosed + in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line. - If content have already been sent. + + POST is designed to allow a uniform method to cover the following functions: + + + Annotation of existing resources; + + Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles; + + Providing a block of data, such as the result of submitting a form, to a data-handling process; + + Extending a database through an append operation. + + + + If a resource has been created on the origin server, the response SHOULD be 201 (Created) and + contain an entity which describes the status of the request and refers to the new resource, and a + Location header (see section 14.30). + + + The action performed by the POST method might not result in a resource that can be identified by a URI. + In this case, either 200 (OK) or 204 (No Content) is the appropriate response status, depending on + whether or not the response includes an entity that describes the result. + + Responses to this method are not cacheable, unless the response includes appropriate Cache-Control + or Expires header fields. However, the 303 (See Other) response can be used to direct the user agent + to retrieve a cacheable resource. + + - + - Make sure that you have specified ContentLength and sent the headers first. + The PUT method requests that the enclosed entity be stored under the supplied Request-URI. - - If headers have not been sent. - - offest of first byte to send - number of bytes to send. - - - This method can be used if you want to send body contents without caching them first. This - is recommended for larger files to keep the memory usage low. + + + + If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a + modified version of the one residing on the origin server. + + If the Request-URI does not point to an existing resource, and that URI is capable of being defined as a new + resource by the requesting user agent, the origin server can create the resource with that URI. + + If a new resource is created, the origin server MUST inform the user agent via the 201 (Created) response. + + If an existing resource is modified, either the 200 (OK) or 204 (No Content) response codes SHOULD be sent to + indicate successful completion of the request. + + If the resource could not be created or modified with the Request-URI, an appropriate error response SHOULD be + given that reflects the nature of the problem. + + + + The recipient of the entity MUST NOT ignore any Content-* (e.g. Content-Range) headers that it does not + understand or implement and MUST return a 501 (Not Implemented) response in such cases. + + - + - Make sure that you have specified ContentLength and sent the headers first. + The TRACE method is used to invoke a remote, application-layer loop- back of the request message. - - If headers have not been sent. - - - - This method can be used if you want to send body contents without caching them first. This - is recommended for larger files to keep the memory usage low. - + - Send headers to the client. + Used to create and reuse contexts. - If headers already been sent. - - - - + - Redirect client to somewhere else using the 302 status code. + Used to create es. - Destination of the redirect - If headers already been sent. - You can not do anything more with the request when a redirect have been done. This should be your last - action. - + - redirect to somewhere + Creates a that handles a connected client. - where the redirect should go - - No body are allowed when doing redirects. - + Client socket (accepted by the ). + A creates . - + - The body stream is used to cache the body contents - before sending everything to the client. It's the simplest - way to serve documents. + Create a secure . + Client socket (accepted by the ). + HTTPS certificate to use. + Kind of HTTPS protocol. Usually TLS or SSL. + A created . - + - Defines the version of the HTTP Response for applications where it's required - for this to be forced. + Server is shutting down so shut down the factory - + - The chunked encoding modifies the body of a message in order to - transfer it as a series of chunks, each with its own size indicator, - followed by an OPTIONAL trailer containing entity-header fields. This - allows dynamically produced content to be transferred along with the - information necessary for the recipient to verify that it has - received the full message. + A request have been received from one of the contexts. - + - Kind of connection + Initializes a new instance of the class. + The writer. + Amount of bytes to read from the incoming socket stream. + Used to create a request parser. - + - Encoding to use when sending stuff to the client. + Create a new context. - Default is UTF8 + true if socket is running HTTPS. + Client that connected + Network/SSL stream. + A context. - + - Number of seconds to keep connection alive + Create a new context. - Only used if Connection property is set to ConnectionType.KeepAlive + true if HTTPS is used. + Remote client + Network stream, uses . + A new context (always). - + - Status code that is sent to the client. + Create a secure . - Default is HttpStatusCode.Ok + Client socket (accepted by the ). + HTTPS certificate to use. + Kind of HTTPS protocol. Usually TLS or SSL. + + A created . + - + - Information about why a specific status code was used. + Creates a that handles a connected client. + Client socket (accepted by the ). + + A creates . + - + - Size of the body. MUST be specified before sending the header, - unless property Chunked is set to true. + Server is shutting down so shut down the factory - + - Kind of content in the body + True if detailed trace logs should be written. - Default is text/html - + - Headers have been sent to the client- + A request have been received from one of the contexts. - You can not send any additional headers if they have already been sent. - + - The whole response have been sent. + Custom network stream to mark sockets as reusable when disposing the stream. - + - Cookies that should be created/changed. + Creates a new instance of the class for the specified . + + The that the will use to send and receive data. + + + The parameter is null. + + + The parameter is not connected. + -or- + The property of the parameter is not . + -or- + The parameter is in a nonblocking state. + - + - Type of HTTP connection + Initializes a new instance of the class for the specified with the specified ownership. + + The that the will use to send and receive data. + + + Set to true to indicate that the will take ownership of the ; otherwise, false. + + + The parameter is null. + + + The parameter is not connected. + -or- + the value of the property of the parameter is not . + -or- + the parameter is in a nonblocking state. + - + - Connection is closed after each request-response + Creates a new instance of the class for the specified with the specified access rights. + + The that the will use to send and receive data. + + + A bitwise combination of the values that specify the type of access given to the over the provided . + + + The parameter is null. + + + The parameter is not connected. + -or- + the property of the parameter is not . + -or- + the parameter is in a nonblocking state. + - + - Connection is kept alive for X seconds (unless another request have been made) + Creates a new instance of the class for the specified with the specified access rights and the specified ownership. + + The that the will use to send and receive data. + + + A bitwise combination of the values that specifies the type of access given to the over the provided . + + + Set to true to indicate that the will take ownership of the ; otherwise, false. + + + The parameter is null. + + + The parameter is not connected. + -or- + The property of the parameter is not . + -or- + The parameter is in a nonblocking state. + - + - Response that is sent back to the web browser / client. + Closes the current stream and releases any resources (such as sockets and file handles) associated with the current stream. - - - A response can be sent if different ways. The easiest one is - to just fill the Body stream with content, everything else - will then be taken care of by the framework. The default content-type - is text/html, you should change it if you send anything else. - - The second and slightly more complex way is to send the response - as parts. Start with sending the header using the SendHeaders method and - then you can send the body using SendBody method, but do not forget - to set and before doing so. - - - - - // Example using response body. - class MyModule : HttpModule - { - public override bool Process(IHttpRequest request, IHttpResponse response, IHttpSession session) - { - StreamWriter writer = new StreamWriter(response.Body); - writer.WriteLine("Hello dear World!"); - writer.Flush(); - - // return true to tell webserver that we've handled the url - return true; - } - } - - - todo: add two examples, using SendHeaders/SendBody and just the Body stream. - + - Initializes a new instance of the class. + Releases the unmanaged resources used by the and optionally releases the managed resources. - Client that send the . - Contains information of what the client want to receive. - cannot be empty. + true to release both managed and unmanaged resources; false to release only unmanaged resources. - + - Initializes a new instance of the class. + Invoked when a client have been accepted by the - Client that send the . - Version of HTTP protocol that the client uses. - Type of HTTP connection used. + + Can be used to revoke incoming connections + - + - Add another header to the document. + Initializes a new instance of the class. - Name of the header, case sensitive, use lower cases. - Header values can span over multiple lines as long as each line starts with a white space. New line chars should be \r\n - If headers already been sent. - If value conditions have not been met. - Adding any header will override the default ones and those specified by properties. + The socket. - + - Send headers and body to the browser. + Client may not be handled. - If content have already been sent. - + - Make sure that you have specified and sent the headers first. + Accepted socket. - - If headers have not been sent. - - offset of first byte to send - number of bytes to send. - - - This method can be used if you want to send body contents without caching them first. This - is recommended for larger files to keep the memory usage low. - + - Make sure that you have specified and sent the headers first. + Client should be revoked. - - If headers have not been sent. - - - - This method can be used if you want to send body contents without caching them first. This - is recommended for larger files to keep the memory usage low. - + - Send headers to the client. + A session stored in memory. - If headers already been sent. - - - - + - Redirect client to somewhere else using the 302 status code. + Interface for sessions - Destination of the redirect - If headers already been sent. - You can not do anything more with the request when a redirect have been done. This should be your last - action. - + - redirect to somewhere + Remove everything from the session - where the redirect should go - - No body are allowed when doing redirects. - - + - The body stream is used to cache the body contents - before sending everything to the client. It's the simplest - way to serve documents. + Remove everything from the session + True if the session is cleared due to expiration - + - The chunked encoding modifies the body of a message in order to - transfer it as a series of chunks, each with its own size indicator, - followed by an OPTIONAL trailer containing entity-header fields. This - allows dynamically produced content to be transferred along with the - information necessary for the recipient to verify that it has - received the full message. + Session id - + - Defines the version of the HTTP Response for applications where it's required - for this to be forced. + Should + Name of the session variable + null if it's not set + If the object cant be serialized. - + - Kind of connection + When the session was last accessed. + This property is touched by the http server each time the + session is requested. - + - Encoding to use when sending stuff to the client. + Number of session variables. - Default is UTF8 - + - Number of seconds to keep connection alive + Event triggered upon clearing the session - Only used if Connection property is set to . - + - Status code that is sent to the client. + - Default is + A unique id used by the sessions store to identify the session - + - Information about why a specific status code was used. + Id + - + - Size of the body. MUST be specified before sending the header, - unless property Chunked is set to true. + Remove everything from the session - + - Kind of content in the body + Clears the specified expire. - Default type is "text/html" + True if the session is cleared due to expiration - + - Headers have been sent to the client- + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - You can not send any additional headers if they have already been sent. + 2 - + - The whole response have been sent. + Session id - + - Cookies that should be created/changed. + Should + Name of the session variable + null if it's not set - + - represents a HTTP input item. Each item can have multiple sub items, a sub item - is made in a HTML form by using square brackets + when the session was last accessed. - - // becomes: - Console.WriteLine("Value: {0}", form["user"]["FirstName"].Value); - - All names in a form SHOULD be in lowercase. + Used to determine when the session should be removed. - - Representation of a non-initialized . - - + - Initializes an input item setting its name/identifier and value + Number of values in the session - Parameter name/id - Parameter value - - - Creates a deep copy of the item specified - The item to copy - The function makes a deep copy of quite a lot which can be slow - + - Add another value to this item + Flag to indicate that the session have been changed + and should be saved into the session store. - Value to add. - Cannot add stuff to . - + - checks if a sub-item exists (and has a value). + Event triggered upon clearing the session - name in lower case - true if the sub-item exists and has a value; otherwise false. - - - Returns a formatted representation of the instance with the values of all contained parameters - + - Outputs the string in a formatted manner + A reverse proxy are used to act as a bridge between local (protected/hidden) websites + and public clients. + + A typical usage is to allow web servers on non standard ports to still be available + to the public clients, or allow web servers on private ips to be available. - A prefix to append, used internally - produce a query string - + - Add a sub item. + - Can contain array formatting, the item is then parsed and added in multiple levels - Value to add. - Argument is null. - Cannot add stuff to . + Base url requested from browser + Base url on private web server + + // this will return contents from http://192.168.1.128/view/jonas when client requests http://www.gauffin.com/user/view/jonas + _server.Add(new ReverseProxyModule("http://www.gauffin.com/user/", "http://192.168.1.128/"); + - + - Returns an enumerator that iterates through the collection. + Method that determines if an url should be handled or not by the module - - - A that can be used to iterate through the collection. - - 1 + Url requested by the client. + true if module should handle the url. - + - Returns an enumerator that iterates through a collection. + Method that process the url - - - An object that can be used to iterate through the collection. - - 2 + Information sent by the browser about the request + Information that is being sent back to the client. + Session used to - + - Outputs the string in a formatted manner + Can handle application/x-www-form-urlencoded - A prefix to append, used internally - - + - Number of values + Stream containing the content + Content type (with any additional info like boundry). Content type is always supplied in lower case + Stream encoding + + A HTTP form, or null if content could not be parsed. + + If contents in the stream is not valid input data. - + - Get a sub item + Checks if the decoder can handle the mime type - name in lower case. - if no item was found. + Content type (with any additional info like boundry). Content type is always supplied in lower case. + True if the decoder can parse the specified content type - + - Name of item (in lower case). + This provider is used to let us implement any type of form decoding we want without + having to rewrite anything else in the server. - + - Returns the first value, or null if no value exist. + + Should contain boundary and type, as in: multipart/form-data; boundary=---------------------------230051238959 + Stream containing form data. + Encoding used when decoding the stream + if no parser was found. + If stream is null or not readable. + If stream contents cannot be decoded properly. - + - Returns the last value, or null if no value exist. + Add a decoder. + + - + - Returns the list with values. + Number of added decoders. - + - + Use with care. - name in lower case - - + - Helpers making it easier to work with forms. + Decoder used for unknown content types. - - + - Used to let the website use different JavaScript libraries. - Default is + The server encountered an unexpected condition which prevented it from fulfilling the request. - + - Create a <form> tag. + Initializes a new instance of the class. - name of form - action to invoke on submit - form should be posted as Ajax - HTML code - - - // without options - WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax); - - // with options - WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax, "style", "display:inline", "class", "greenForm"); - - - HTML attributes or JavaScript options. - Method will ALWAYS be POST. - options must consist of name, value, name, value - + - Creates a select list with the values in a collection. + Initializes a new instance of the class. - Name of the SELECT-tag - collection used to generate options. - delegate used to return id and title from objects. - value that should be marked as selected. - First row should contain an empty value. - string containing a SELECT-tag. - + error message. - + - Creates a select list with the values in a collection. + Initializes a new instance of the class. - Name of the SELECT-tag - Id of the SELECT-tag - collection used to generate options. - delegate used to return id and title from objects. - value that should be marked as selected. - First row should contain an empty value. - string containing a SELECT-tag. - - - - // Class that is going to be used in a SELECT-tag. - public class User - { - private readonly string _realName; - private readonly int _id; - public User(int id, string realName) - { - _id = id; - _realName = realName; - } - public string RealName - { - get { return _realName; } - } - - public int Id - { - get { return _id; } - } - } - - // Using an inline delegate to generate the select list - public void UserInlineDelegate() - { - List<User> items = new List<User>(); - items.Add(new User(1, "adam")); - items.Add(new User(2, "bertial")); - items.Add(new User(3, "david")); - string htmlSelect = Select("users", "users", items, delegate(object o, out object id, out object value) - { - User user = (User)o; - id = user.Id; - value = user.RealName; - }, 2, true); - } + error message. + inner exception. + + + + Response that is sent back to the web browser / client. - // Using an method as delegate to generate the select list. - public void UseExternalDelegate() - { - List<User> items = new List<User>(); - items.Add(new User(1, "adam")); - items.Add(new User(2, "bertial")); - items.Add(new User(3, "david")); - string htmlSelect = Select("users", "users", items, UserOptions, 1, true); - } + A response can be sent if different ways. The easiest one is + to just fill the Body stream with content, everything else + will then be taken care of by the framework. The default content-type + is text/html, you should change it if you send anything else. - // delegate returning id and title - public static void UserOptions(object o, out object id, out object title) + The second and slighty more complex way is to send the response + as parts. Start with sending the header using the SendHeaders method and + then you can send the body using SendBody method, but do not forget + to set ContentType and ContentLength before doing so. + + + public void MyHandler(IHttpRequest request, IHttpResponse response) { - User user = (User)o; - id = user.Id; - value = user.RealName; + } - - name, id, collection or getIdTitle is null. - + - Creates a select list with the values in a collection. + Add another header to the document. - Name of the SELECT-tag - Id of the SELECT-tag - collection used to generate options. - delegate used to return id and title from objects. - value that should be marked as selected. - First row should contain an empty value. - name, value collection of extra HTML attributes. - string containing a SELECT-tag. - - name, id, collection or getIdTitle is null. - Invalid HTML attribute list. + Name of the header, case sensitive, use lower cases. + Header values can span over multiple lines as long as each line starts with a white space. New line chars should be \r\n + If headers already been sent. + If value conditions have not been met. + Adding any header will override the default ones and those specified by properties. - + - Generate a list of HTML options + Send headers and body to the browser. - collection used to generate options. - delegate used to return id and title from objects. - value that should be marked as selected. - First row should contain an empty value. - - collection or getIdTitle is null. + If content have already been sent. - - sb is null. + + + Make sure that you have specified ContentLength and sent the headers first. + + + If headers have not been sent. + + offest of first byte to send + number of bytes to send. + + + This method can be used if you want to send body contents without caching them first. This + is recommended for larger files to keep the memory usage low. - + - Creates a check box. + Make sure that you have specified ContentLength and sent the headers first. - element name - element value - determines if the check box is selected or not. This is done differently depending on the - type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if - the box is checked or not. - a list with additional attributes (name, value, name, value). - a generated radio button + + If headers have not been sent. + + + + This method can be used if you want to send body contents without caching them first. This + is recommended for larger files to keep the memory usage low. - + - Creates a check box. + Send headers to the client. - element name - element id - element value - determines if the check box is selected or not. This is done differently depending on the - type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if - the box is checked or not. - a list with additional attributes (name, value, name, value). - a generated radio button - - value in your business object. (check box will be selected if it matches the element value) - + If headers already been sent. + + + - + - Creates a check box. + Redirect client to somewhere else using the 302 status code. - element name - element id - determines if the check box is selected or not. This is done differently depending on the - type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if - the box is checked or not. - a list with additional attributes (name, value, name, value). - a generated radio button - will set value to "1". + Destination of the redirect + If headers already been sent. + You can not do anything more with the request when a redirect have been done. This should be your last + action. - + - Creates a RadioButton. + redirect to somewhere - element name - element value - determines if the radio button is selected or not. This is done differently depending on the - type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if - the box is checked or not. - a list with additional attributes (name, value, name, value). - a generated radio button + where the redirect should go + + No body are allowed when doing redirects. + - + - Creates a RadioButton. + The body stream is used to cache the body contents + before sending everything to the client. It's the simplest + way to serve documents. - element name - element id - element value - determines if the radio button is selected or not. This is done differently depending on the - type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if - the box is checked or not. - a list with additional attributes (name, value, name, value). - a generated radio button - + - form close tag + Defines the version of the HTTP Response for applications where it's required + for this to be forced. - - + - Add a component instance + The chunked encoding modifies the body of a message in order to + transfer it as a series of chunks, each with its own size indicator, + followed by an OPTIONAL trailer containing entity-header fields. This + allows dynamically produced content to be transferred along with the + information necessary for the recipient to verify that it has + received the full message. - Interface type - Instance to add - + - Get a component. + Kind of connection - Interface type - Component if registered, otherwise null. - - Component will get created if needed. - - - If instance cannot be created. + + + Encoding to use when sending stuff to the client. + + Default is UTF8 - + - Checks if the specified component interface have been added. + Number of seconds to keep connection alive - - true if found; otherwise false. + Only used if Connection property is set to ConnectionType.KeepAlive - + - Add a component. + Status code that is sent to the client. - Type being requested. - Type being created. - Type have already been mapped. + Default is HttpStatusCode.Ok - + - Arguments used when more body bytes have come. + Information about why a specific status code was used. - + - Initializes a new instance of the class. + Size of the body. MUST be specified before sending the header, + unless property Chunked is set to true. - buffer that contains the received bytes. - offset in buffer where to start processing. - number of bytes from that should be parsed. - + - Initializes a new instance of the class. + Kind of content in the body + Default is text/html - + - Gets or sets buffer that contains the received bytes. + Headers have been sent to the client- + You can not send any additional headers if they have already been sent. - + - Gets or sets number of bytes from that should be parsed. + The whole response have been sent. - + - Gets or sets offset in buffer where to start processing. + Cookies that should be created/changed. - + - Used to create and reuse contexts. + Type of HTTP connection - + - Used to create es. + Connection is closed after each request-response - + - Creates a that handles a connected client. + Connection is kept alive for X seconds (unless another request have been made) - Client socket (accepted by the ). - A creates . - + - Create a secure . + The website module let's you handle multiple websites in the same server. + It uses the "Host" header to check which site you want. - Client socket (accepted by the ). - HTTPS certificate to use. - Kind of HTTPS protocol. Usually TLS or SSL. - A created . + It's recommended that you do not + add any other modules to HttpServer if you are using the website module. Instead, + add all wanted modules to each website. - + - A request have been received from one of the contexts. + + domain name that should be handled. + - + - Initializes a new instance of the class. + Method that process the url - The writer. - Amount of bytes to read from the incoming socket stream. - Used to create a request parser. + Information sent by the browser about the request + Information that is being sent back to the client. + Session used to - + - Create a new context. + Name of site. - true if socket is running HTTPS. - Client that connected - Network/SSL stream. - A context. - + - Create a new context. + Used to inform http server that - true if HTTPS is used. - Remote client - Network stream, uses . - A new context (always). - + - Create a secure . + Eventarguments used when an exception is thrown by a module - Client socket (accepted by the ). - HTTPS certificate to use. - Kind of HTTPS protocol. Usually TLS or SSL. - - A created . - + the exception - + - Creates a that handles a connected client. + Exception thrown in a module - Client socket (accepted by the ). - - A creates . - - + - True if detailed trace logs should be written. + represents a HTTP input item. Each item can have multiple sub items, a sub item + is made in a HTML form by using square brackets + + // becomes: + Console.WriteLine("Value: {0}", form["user"]["FirstName"].Value); + + + All names in a form SHOULD be in lowercase. + - + + Representation of a non-initialized . + + - A request have been received from one of the contexts. + Initializes an input item setting its name/identifier and value + Parameter name/id + Parameter value - + + Creates a deep copy of the item specified + The item to copy + The function makes a deep copy of quite a lot which can be slow + + - Custom network stream to mark sockets as reusable when disposing the stream. + Add another value to this item + Value to add. + Cannot add stuff to . - + - Creates a new instance of the class for the specified . + checks if a sub-item exists (and has a value). - - The that the will use to send and receive data. - - - The parameter is null. - - - The parameter is not connected. - -or- - The property of the parameter is not . - -or- - The parameter is in a nonblocking state. - + name in lower case + true if the sub-item exists and has a value; otherwise false. - + + Returns a formatted representation of the instance with the values of all contained parameters + + - Initializes a new instance of the class for the specified with the specified ownership. + Outputs the string in a formatted manner - - The that the will use to send and receive data. - - - Set to true to indicate that the will take ownership of the ; otherwise, false. - - - The parameter is null. - - - The parameter is not connected. - -or- - the value of the property of the parameter is not . - -or- - the parameter is in a nonblocking state. - + A prefix to append, used internally + produce a query string - + - Creates a new instance of the class for the specified with the specified access rights. + Add a sub item. - - The that the will use to send and receive data. - - - A bitwise combination of the values that specify the type of access given to the over the provided . - - - The parameter is null. - - - The parameter is not connected. - -or- - the property of the parameter is not . - -or- - the parameter is in a nonblocking state. - + Can contain array formatting, the item is then parsed and added in multiple levels + Value to add. + Argument is null. + Cannot add stuff to . - + - Creates a new instance of the class for the specified with the specified access rights and the specified ownership. + Returns an enumerator that iterates through the collection. - - The that the will use to send and receive data. - - - A bitwise combination of the values that specifies the type of access given to the over the provided . - - - Set to true to indicate that the will take ownership of the ; otherwise, false. - - - The parameter is null. - - - The parameter is not connected. - -or- - The property of the parameter is not . - -or- - The parameter is in a nonblocking state. - + + + A that can be used to iterate through the collection. + + 1 - + - Closes the current stream and releases any resources (such as sockets and file handles) associated with the current stream. + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + 2 - + - Releases the unmanaged resources used by the and optionally releases the managed resources. + Outputs the string in a formatted manner - true to release both managed and unmanaged resources; false to release only unmanaged resources. + A prefix to append, used internally + - + - Serves files that are stored in embedded resources. + Number of values - + - A HttpModule can be used to serve Uri's. The module itself - decides if it should serve a Uri or not. In this way, you can - get a very flexible http application since you can let multiple modules - serve almost similar urls. + Get a sub item - - Throw if you are using a and want to prompt for user name/password. - + name in lower case. + if no item was found. - + - Method that process the url + Name of item (in lower case). - Information sent by the browser about the request - Information that is being sent back to the client. - Session used to - true if this module handled the request. - + - Set the log writer to use. + Returns the first value, or null if no value exist. - logwriter to use. - + - Log something. + Returns the last value, or null if no value exist. - importance of log message - message - + - If true specifies that the module doesn't consume the processing of a request so that subsequent modules - can continue processing afterwards. Default is false. + Returns the list with values. - + - Initializes a new instance of the class. - Runs to make sure the basic mime types are available, they can be cleared later - through the use of if desired. + + name in lower case + - + + Class to handle loading of resource files + + - Initializes a new instance of the class. - Runs to make sure the basic mime types are available, they can be cleared later - through the use of if desired. + Initializes a new instance of the class. - The log writer to use when logging events - + - Mimtypes that this class can handle per default + Initializes a new instance of the class. + logger. - + - Loads resources from a namespace in the given assembly to an uri + Loads resources from a namespace in the given assembly to an URI - The uri to map the resources to + The URI to map the resources to The assembly in which the resources reside The namespace from which to load the resources + resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views"); - - will make ie the resource MyLib.Models.User.Views.stylesheet.css accessible via /user/stylesheet.css + + Will make the resource MyLib.Models.User.Views.list.Haml accessible via /user/list.haml or /user/list/ The amount of loaded files, giving you the possibility of making sure the resources needed gets loaded + If a resource has already been mapped to an uri - + - Returns true if the module can handle the request + Retrieves a stream for the specified resource path if loaded otherwise null + Path to the resource to retrieve a stream for + A stream or null if the resource couldn't be found - + - Method that process the url + Fetch all files from the resource that matches the specified arguments. - Information sent by the browser about the request - Information that is being sent back to the client. - Session used to - true if this module handled the request. + The path to the resource to extract + + a list of files if found; or an empty array if no files are found. + + Search path must end with an asterisk for finding arbitrary files - + - List with all mime-type that are allowed. + Fetch all files from the resource that matches the specified arguments. - All other mime types will result in a Forbidden http status code. + Where the file should reside. + Files to check + + a list of files if found; or an empty array if no files are found. + - + - The purpose of this module is to serve files. + Returns whether or not the loader has an instance of the file requested + The name of the template/file + True if the loader can provide the file - + - Initializes a new instance of the class. + Used when the request line have been successfully parsed. - Uri to serve, for instance "/files/" - Path on hard drive where we should start looking for files - If true a Last-Modifed header will be sent upon requests urging web browser to cache files - + - Initializes a new instance of the class. + Initializes a new instance of the class. - Uri to serve, for instance "/files/" - Path on hard drive where we should start looking for files + The HTTP method. + The URI path. + The HTTP version. - + - Mimtypes that this class can handle per default + Initializes a new instance of the class. - + - Determines if the request should be handled by this module. - Invoked by the + Gets or sets http method. - - true if this module should handle it. - - - Illegal path + + Should be one of the methods declared in . + - + - check if source contains any of the chars. + Gets or sets the version of the HTTP protocol that the client want to use. - - - - + - Method that process the Uri. + Gets or sets requested URI path. - Information sent by the browser about the request - Information that is being sent back to the client. - Session used to - Failed to find file extension - File type is forbidden. - + - return a file extension from an absolute Uri path (or plain filename) + Class that receives Requests from a . - - - + - List with all mime-type that are allowed. + Client have been disconnected. - All other mime types will result in a Forbidden http status code. + Client that was disconnected. + Reason + - + - characters that may not exist in a path. + Invoked when a client context have received a new HTTP request - - fileMod.ForbiddenChars = new string[]{ "\\", "..", ":" }; - + Client that received the request. + Request that was received. + - - - The server encountered an unexpected condition which prevented it from fulfilling the request. - + + Container for posted form data - - - Initializes a new instance of the class. - + + Instance to help mark a non-initialized form - - - Initializes a new instance of the class. - - error message. + + Initializes a form container with the specified name - + - Initializes a new instance of the class. + Makes a deep copy of the input - error message. - inner exception. + The input to copy - + - Class to make dynamic binding of redirects. Instead of having to specify a number of similar redirect rules - a regular expression can be used to identify redirect URLs and their targets. + Adds a file to the collection of posted files - - [a-z0-9]+)", "/users/${target}?find=true", RegexOptions.IgnoreCase) - ]]> - + The file to add + If the file is already added + If file is null + If the instance is HttpForm.EmptyForm which cannot be modified - + - Initializes a new instance of the class. + Checks if the form contains a specified file - Expression to match URL - Expression to generate URL - - [a-zA-Z0-9]+)", "/user/${first}")); - Result of ie. /employee1 will then be /user/employee1 - ]]> - + Field name of the file parameter + True if the file exists + If the instance is HttpForm.EmptyForm which cannot be modified - + - Initializes a new instance of the class. + Retrieves a file held by by the form - Expression to match URL - Expression to generate URL - Regular expression options to use, can be null - - [a-zA-Z0-9]+)", "/user/{first}", RegexOptions.IgnoreCase)); - Result of ie. /employee1 will then be /user/employee1 - ]]> - + The identifier of the file + The requested file or null if the file was not found + If name is null or empty + If the instance is HttpForm.EmptyForm which cannot be modified - + + Disposes all held HttpFile's and resets values + + - Initializes a new instance of the class. + Retrieves the number of files added to the - Expression to match URL - Expression to generate URL - Regular expression options to apply - true if request should be redirected, false if the request URI should be replaced. - - [a-zA-Z0-9]+)", "/user/${first}", RegexOptions.None)); - Result of ie. /employee1 will then be /user/employee1 - ]]> - - Argument is null. - + 0 if no files are added - + - Process the incoming request. + Contains a connection to a browser/client. - incoming HTTP request - outgoing HTTP response - true if response should be sent to the browser directly (no other rules or modules will be processed). - returning true means that no modules will get the request. Returning true is typically being done - for redirects. + Remember to after you have hooked the event. - If request or response is null + TODO: Maybe this class should be broken up into HttpClientChannel and HttpClientContext? - + - Used when the request line have been successfully parsed. + Initializes a new instance of the class. + + true if the connection is secured (SSL/TLS) + client that connected. + Stream used for communication + Used to create a . + Size of buffer to use when reading data. Must be at least 4096 bytes. + If fails + Stream must be writable and readable. + + + + Process incoming body bytes. + + Bytes - + - Initializes a new instance of the class. + - The HTTP method. - The URI path. - The HTTP version. + + - + - Initializes a new instance of the class. + Start reading content. + + Make sure to call base.Start() if you override this method. + - + - Gets or sets http method. + Clean up context. - Should be one of the methods declared in . + Make sure to call base.Cleanup() if you override the method. - + - Gets or sets the version of the HTTP protocol that the client want to use. + Disconnect from client + error to report in the event. - + - Gets or sets requested URI path. + Send a response. + Either or + HTTP status code + reason for the status code. + HTML body contents, can be null or empty. + A content type to return the body as, i.e. 'text/html' or 'text/plain', defaults to 'text/html' if null or empty + If is invalid. - + - Delegate used to find a realm/domain. + Send a response. - - - - Realms are used during HTTP Authentication - - - + Either or + HTTP status code + reason for the status code. - + - A complete HTTP server, you need to add a module to it to be able to handle incoming requests. + Send a response. - - - // this small example will add two web site modules, thus handling - // two different sites. In reality you should add Controller modules or something - // two the website modules to be able to handle different requests. - HttpServer server = new HttpServer(); - server.Add(new WebSiteModule("www.gauffin.com", "Gauffin Telecom AB")); - server.Add(new WebSiteModule("www.vapadi.se", "Remote PBX")); - - // start regular http - server.Start(IPAddress.Any, 80); - - // start https - server.Start(IPAddress.Any, 443, myCertificate); - - - - - + - + - Initializes a new instance of the class. + send a whole buffer - Used to get all components used in the server.. + buffer to send + - + - Initializes a new instance of the class. + Send data using the stream + Contains data to send + Start position in buffer + number of bytes to send + + - + - Initializes a new instance of the class. + This context have been cleaned, which means that it can be reused. - Form decoders are used to convert different types of posted data to the object types. - - - + - Initializes a new instance of the class. + Context have been started (a new client have connected) - A session store is used to save and retrieve sessions - - + - Initializes a new instance of the class. + Overload to specify own type. - The log writer. - + + Must be specified before the context is being used. + - + - Initializes a new instance of the class. + Using SSL or other encryption method. - Form decoders are used to convert different types of posted data to the object types. - The log writer. - - - - + - Initializes a new instance of the class. + Using SSL or other encryption method. - Form decoders are used to convert different types of posted data to the object types. - A session store is used to save and retrieve sessions - The log writer. - - - - - + - Adds the specified rule. + Specify which logger to use. - The rule. - + - Add a to the server. + Gets or sets the network stream. - mode to add - + - Decodes the request body. + Gets or sets IP address that the client connected from. - The request. - Failed to decode form data. - + - Generate a HTTP error page (that will be added to the response body). - response status code is also set. + Gets or sets port that the client connected from. - Response that the page will be generated in. - . - response body contents. - + - Generate a HTTP error page (that will be added to the response body). - response status code is also set. + The context have been disconnected. - Response that the page will be generated in. - exception. + + Event can be used to clean up a context, or to reuse it. + - + - Realms are used by the s. + A request have been received in the context. - HTTP request - domain/realm. - + - Process an incoming request. + Helpers to make XML handling easier - connection to client - request information - response that should be filled - session information - + - Can be overloaded to implement stuff when a client have been connected. + Serializes object to XML. + object to serialize. + XML - Default implementation does nothing. + Removes name spaces and adds indentation - client that disconnected - disconnect reason - + - Handle authentication + Create an object from a XML string - - - - true if request can be handled; false if not. - Invalid authorization header + Type of object + XML string + object - + - Will request authentication. + - - Sends respond to client, nothing else can be done with the response after this. - - - - + + + - + + Represents a field in a multipart form + + - Received from a when a request have been parsed successfully. + Small design by contract implementation. - that received the request. - The request. - + - To be able to track request count. + Check whether a parameter is empty. - - + Parameter value + Parameter name, or error description. + value is empty. - + - Start the web server using regular HTTP. + Checks whether a parameter is null. - IP Address to listen on, use IpAddress.Any to accept connections on all IP addresses/network cards. - Port to listen on. 80 can be a good idea =) - address is null. - Port must be a positive number. + Parameter value + Parameter name, or error description. + value is null. - + - Accept secure connections. + Checks whether a parameter is null. - IP Address to listen on, use to accept connections on all IP Addresses / network cards. - Port to listen on. 80 can be a good idea =) - Certificate to use - address is null. - Port must be a positive number. + + Parameter value + Parameter name, or error description. + value is null. - + - shut down the server and listeners + Priority for log entries + - + - write an entry to the log file + Very detailed logs to be able to follow the flow of the program. - importance of the message - log message - + - write an entry to the log file - - object that wrote the message - importance of the message - log message + Logs to help debug errors in the application + - + - Server that is handling the current request. + Information to be able to keep track of state changes etc. - - Will be set as soon as a request arrives to the object. - - + - Modules used for authentication. The module that is is added first is used as - the default authentication module. + Something did not go as we expected, but it's no problem. - Use the corresponding property - in the if you are using multiple websites. - + - Form decoder providers are used to decode request body (which normally contains form data). + Something that should not fail failed, but we can still keep + on going. - + - Server name sent in HTTP responses. + Something failed, and we cannot handle it properly. - - Do NOT include version in name, since it makes it - easier for hackers. - - + - Name of cookie where session id is stored. + Interface used to write to log files. - + - Specified where logging should go. + Write an entry to the log file. - - - + object that is writing to the log + importance of the log message + the message - + - Number of connections that can wait to be accepted by the server. + This class writes to the console. It colors the output depending on the logprio and includes a 3-level stacktrace (in debug mode) - Default is 10. + - + - Gets or sets maximum number of allowed simultaneous requests. + The actual instance of this class. - - - This property is useful in busy systems. The HTTP server - will start queuing new requests if this limit is hit, instead - of trying to process all incoming requests directly. - - - The default number if allowed simultaneous requests are 10. - - - + - Gets or sets maximum number of requests queuing to be handled. + Logwriters the specified source. - - - The WebServer will start turning requests away if response code - to indicate that the server - is too busy to be able to handle the request. - - + object that wrote the logentry. + Importance of the log message + The message. - + - Realms are used during HTTP authentication. - Default realm is same as server name. + Get color for the specified logprio + prio for the log entry + A for the prio - + - Let's to receive unhandled exceptions from the threads. + Default log writer, writes everything to null (nowhere). - - Exceptions will be thrown during debug mode if this event is not used, - exceptions will be printed to console and suppressed during release mode. - + - + - The request requires user authentication. The response MUST include a - WWW-Authenticate header field (section 14.47) containing a challenge - applicable to the requested resource. - - The client MAY repeat the request with a suitable Authorization header - field (section 14.8). If the request already included Authorization - credentials, then the 401 response indicates that authorization has been - refused for those credentials. If the 401 response contains the same challenge - as the prior response, and the user agent has already attempted authentication - at least once, then the user SHOULD be presented the entity that was given in the response, - since that entity might include relevant diagnostic information. - - HTTP access authentication is explained in rfc2617: - http://www.ietf.org/rfc/rfc2617.txt - - (description is taken from - http://www.submissionchamber.com/help-guides/error-codes.php#sec10.4.2) + The logging instance. - + - Create a new unauhtorized exception. + Writes everything to null - + object that wrote the log entry. + Importance of the log message + The message. - + - Create a new unauhtorized exception. + Response that is sent back to the web browser / client. - reason to why the request was unauthorized. - inner exception + + + A response can be sent if different ways. The easiest one is + to just fill the Body stream with content, everything else + will then be taken care of by the framework. The default content-type + is text/html, you should change it if you send anything else. + + The second and slightly more complex way is to send the response + as parts. Start with sending the header using the SendHeaders method and + then you can send the body using SendBody method, but do not forget + to set and before doing so. + + + + + // Example using response body. + class MyModule : HttpModule + { + public override bool Process(IHttpRequest request, IHttpResponse response, IHttpSession session) + { + StreamWriter writer = new StreamWriter(response.Body); + writer.WriteLine("Hello dear World!"); + writer.Flush(); + + // return true to tell webserver that we've handled the url + return true; + } + } + + + todo: add two examples, using SendHeaders/SendBody and just the Body stream. - + - Create a new unauhtorized exception. + Initializes a new instance of the class. - reason to why the request was unauthorized. + Client that send the . + Contains information of what the client want to receive. + cannot be empty. - + - Lists content type mime types. + Initializes a new instance of the class. + Client that send the . + Version of HTTP protocol that the client uses. + Type of HTTP connection used. - + - text/plain + Add another header to the document. + Name of the header, case sensitive, use lower cases. + Header values can span over multiple lines as long as each line starts with a white space. New line chars should be \r\n + If headers already been sent. + If value conditions have not been met. + Adding any header will override the default ones and those specified by properties. - + - text/haml + Send headers and body to the browser. + If content have already been sent. - + - content type for javascript documents = application/javascript + Make sure that you have specified and sent the headers first. - - - RFC 4329 states that text/javascript have been superseeded by - application/javascript. You might still want to check browser versions - since older ones do not support application/javascript. - - Browser support: http://krijnhoetmer.nl/stuff/javascript/mime-types/ - + + If headers have not been sent. + + offset of first byte to send + number of bytes to send. + + + This method can be used if you want to send body contents without caching them first. This + is recommended for larger files to keep the memory usage low. - + - text/xml + Make sure that you have specified and sent the headers first. + + If headers have not been sent. + + + + This method can be used if you want to send body contents without caching them first. This + is recommended for larger files to keep the memory usage low. - + - A list of content types + Send headers to the client. + If headers already been sent. + + + - + - + Redirect client to somewhere else using the 302 status code. - Semicolon separated content types. + Destination of the redirect + If headers already been sent. + You can not do anything more with the request when a redirect have been done. This should be your last + action. - + - Returns an enumerator that iterates through a collection. + redirect to somewhere - - An object that can be used to iterate through the collection. - + where the redirect should go + + No body are allowed when doing redirects. + - + - Searches for the specified type + The body stream is used to cache the body contents + before sending everything to the client. It's the simplest + way to serve documents. - Can also be a part of a type (searching for "xml" would return true for "application/xml"). - true if type was found. - + - Get this first content type. + The chunked encoding modifies the body of a message in order to + transfer it as a series of chunks, each with its own size indicator, + followed by an OPTIONAL trailer containing entity-header fields. This + allows dynamically produced content to be transferred along with the + information necessary for the recipient to verify that it has + received the full message. - + - Fetch a content type + Defines the version of the HTTP Response for applications where it's required + for this to be forced. - Part of type ("xml" would return "application/xml") - - All content types are in lower case. - + - Session store using memory for each session. + Kind of connection - + - Initializes the class setting the expirationtimer to clean the session every minute + Encoding to use when sending stuff to the client. + Default is UTF8 - + - Delegate for the cleanup timer + Number of seconds to keep connection alive + Only used if Connection property is set to . - + - Creates a new http session + Status code that is sent to the client. - + Default is - + - Creates a new http session with a specific id + Information about why a specific status code was used. - Id used to identify the new cookie.. - A object. - - Id should be generated by the store implementation if it's null or . - - + - Load an existing session. + Size of the body. MUST be specified before sending the header, + unless property Chunked is set to true. - - - + - Save an updated session to the store. + Kind of content in the body - + Default type is "text/html" - + - We use the flyweight pattern which reuses small objects - instead of creating new each time. + Headers have been sent to the client- - EmptyLanguageNode (unused) session that should be reused next time Create is called. + You can not send any additional headers if they have already been sent. - + - Remove expired sessions + The whole response have been sent. - + - Remove a session + Cookies that should be created/changed. - id of the session. - + - Load a session from the store + The requested resource was not found in the web server. - - null if session is not found. - + - Number of minutes before a session expires. - Default is 20 minutes. + Create a new exception + message describing the error + inner exception - + - Webhelper provides helpers for common tasks in HTML. + Create a new exception + message describing the error - + - Used to let the website use different javascript libraries. - Default is + Timeout Manager. Checks for dead clients. Clients with open connections that are not doing anything. Closes sessions opened with keepalive. - + - Creates a link that invokes through ajax. + Causes the watcher to immediately check the connections. - url to fetch - link title - - optional options in format "key, value, key, value". - Javascript options starts with ':'. - - a link tag - - WebHelper.AjaxRequest("/users/add/", "Add user", "method:", "post", "onclick", "validate('this');"); - - + - Builds a link that updates an element with the fetched ajax content. + Environment.TickCount is an int but it counts all 32 bits so it goes positive + and negative every 24.9 days. This trims down TickCount so it doesn't wrap + for the callers. + This trims it to a 12 day interval so don't let your frame time get too long. - Url to fetch content from - link title - html element to update with the results of the ajax request. - optional options in format "key, value, key, value" - A link tag. + - + - A link that pop ups a Dialog (overlay div) + Environment.TickCount is an int but it counts all 32 bits so it goes positive + and negative every 24.9 days. Subtracts the passed value (previously fetched by + 'EnvironmentTickCount()') and accounts for any wrapping. - url to contents of dialog - link title - name/value of html attributes. - A "a"-tag that popups a dialog when clicked - - WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');"); - + + + subtraction of passed prevValue from current Environment.TickCount - + - Create/Open a dialog box using ajax + Environment.TickCount is an int but it counts all 32 bits so it goes positive + and negative every 24.9 days. Subtracts the passed value (previously fetched by + 'EnvironmentTickCount()') and accounts for any wrapping. - - - - + + + subtraction of passed prevValue from current Environment.TickCount - + - Close a javascript dialog window/div. + Environment.TickCount is an int but it counts all 32 bits so it goes positive + and negative every 24.9 days. Subtracts the passed value (previously fetched by + 'EnvironmentTickCount()') and accounts for any wrapping. - javascript for closing a dialog. - + subtraction of passed prevValue from current Environment.TickCount - + - Create a <form> tag. + Use a Thread or a Timer to monitor the ugly - name of form - action to invoke on submit - form should be posted as ajax - html code - - WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax); - - + - Create a link tag. + Session store using memory for each session. - url to go to - link title (text that is displayed) - html attributes, name, value, name, value - html code - - WebHelper.Link("/user/show/1", "Show user", "id", "showUser", "onclick", "return confirm('Are you shure?');"); - - + - Build a link + A session store is used to store and load sessions on a media. + The default implementation () saves/retrieves sessions from memory. - url to go to. - title of link (displayed text) - extra html attributes. - a complete link - + - Build a link + Creates a new http session with a generated id. - url to go to. - title of link (displayed text) - extra html attributes. - a complete link - more options + A object - + - Obsolete + Creates a new http session with a specific id - Obsolete - Obsolete - Obsolete - Obsolete - Obsolete - Obsolete + Id used to identify the new cookie.. + A object. + + Id should be generated by the store implementation if it's null or . + - + - Obsolete + Load an existing session. - Obsolete - Obsolete - Obsolete - Obsolete - Obsolete - Obsolete - Obsolete + Session id (usually retrieved from a client side cookie). + A session if found; otherwise null. - + - Render errors into a UL with class "errors" + Save an updated session to the store. - class used by UL-tag. - items to list - an unordered html list. + Session id (usually retrieved from a client side cookie). + If Id property have not been specified. - + - Render errors into a UL with class "errors" + We use the flyweight pattern which reuses small objects + instead of creating new each time. - class used by UL-tag. - items to list - an unordered html list. + Unused session that should be reused next time Create is called. - + - Render errors into a UL with class "errors" + Remove expired sessions - - - + - Generates a list with html attributes. + Remove a session - StringBuilder that the options should be added to. - attributes set by user. - attributes set by any of the helper classes. + id of the session. - + - Generates a list with html attributes. + Load a session from the store - StringBuilder that the options should be added to. - + + null if session is not found. - + - Purpose of this class is to create a javascript toolkit independent javascript helper. + Number of minutes before a session expires. + Default time is 20 minutes. - + - Generates a list with JS options. + Initializes the class setting the expirationtimer to clean the session every minute - StringBuilder that the options should be added to. - the javascript options. name, value pairs. each string value should be escaped by YOU! - true if we should start with a comma. - + - Removes any javascript parameters from an array of parameters + Delegate for the cleanup timer - The array of parameters to remove javascript params from - An array of html parameters - + - javascript action that should be added to the "onsubmit" event in the form tag. + Creates a new http session - All javascript option names should end with colon. - - - JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);"); - - - + - Requests a url through ajax + Creates a new http session with a specific id - url to fetch - optional options in format "key, value, key, value", used in JS request object. - a link tag - All javascript option names should end with colon. - - - JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);"); - - + Id used to identify the new cookie.. + A object. + + Id should be generated by the store implementation if it's null or . + - + - Ajax requests that updates an element with - the fetched content + Load an existing session. - Url to fetch content from - element to update - optional options in format "key, value, key, value", used in JS updater object. - A link tag. - All javascript option names should end with colon. - - - JSHelper.AjaxUpdater("/user/show/1", "userInfo", "onsuccess:", "alert('Successful!');"); - - + + - + - A link that pop ups a Dialog (overlay div) + Save an updated session to the store. - url to contents of dialog - link title - A "a"-tag that popups a dialog when clicked - name/value of html attributes - - WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');"); - + - + - Close a javascript dialog window/div. + We use the flyweight pattern which reuses small objects + instead of creating new each time. - javascript for closing a dialog. - + EmptyLanguageNode (unused) session that should be reused next time Create is called. - + - Creates a new modal dialog window + Remove expired sessions - url to open in window. - window title (may not be supported by all js implementations) - - - + - + Remove a session - - - + id of the session. - - Represents a field in a multipart form + + + Load a session from the store + + + null if session is not found. - + - The request could not be understood by the server due to malformed syntax. - The client SHOULD NOT repeat the request without modifications. - - Text taken from: http://www.submissionchamber.com/help-guides/error-codes.php + Number of minutes before a session expires. + Default is 20 minutes. - + - Create a new bad request exception. + Arguments sent when a is cleared - reason to why the request was bad. - + - Create a new bad request exception. + Instantiates the arguments for the event - reason to why the request was bad. - inner exception + True if the session is cleared due to expiration - + - Container class for posted files + Returns true if the session is cleared due to expiration - + - Creates a container for a posted file + Delegate for when a IHttpSession is cleared - The identifier of the post field - The file path - The content type of the file - The name of the file uploaded - If any parameter is null or empty + this is being cleared. + Arguments for the clearing - + - Creates a container for a posted file + Used to queue incoming requests. - If any parameter is null or empty - - Destructor disposing the file + + + Initializes a new instance of the class. + + Called when a request should be processed. - + - Deletes the temporary file + Used to process queued requests. - True if manual dispose - + - Disposing interface, cleans up managed resources (the temporary file) and suppresses finalization + Gets or sets maximum number of allowed simultaneous requests. - + - The name/id of the file + Gets or sets maximum number of requests queuing to be handled. - + - The full file path + Specifies how many requests the HTTP server is currently processing. - + - The name of the uploaded file + Used two queue incoming requests to avoid + thread starvation. - + - The type of file + Method used to process a queued request + Context that the request was received from. + Request to process. - + - Will contain helper functions for javascript. + Event arguments used when a new header have been parsed. - + - Requests a url through ajax + Initializes a new instance of the class. - url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself. - optional options in format "key, value, key, value", used in JS request object. All keys should end with colon. - a link tag - onclick attribute is used by this method. - - - // plain text - JSHelper.AjaxRequest("'/user/show/1'"); - - // ajax request using this.href - string link = "<a href=\"/user/call/1\" onclick=\"" + JSHelper.AjaxRequest("this.href") + "/<call user</a>"; - - + Name of header. + Header value. - + - Ajax requests that updates an element with - the fetched content + Initializes a new instance of the class. - url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself. - element to update - options in format "key, value, key, value". All keys should end with colon. - A link tag. - - - JSHelper.AjaxUpdater("'/user/show/1'", "user", "onsuccess:", "alert('hello');", "asynchronous:", "true"); - - - + - Opens contents in a dialog window. + Gets or sets header name. - url to contents of dialog - link title - name, value, name, value, all parameter names should end with colon. - + - Close a javascript dialog window/div. + Gets or sets header value. - javascript for closing a dialog. - @@ -4738,39 +4843,113 @@ Gets whether the request was made by Ajax (Asynchronous JavaScript) - + + + Gets cookies that was sent with the request. + + + + + Add a component instance + + Interface type + Instance to add + + + + Get a component. + + Interface type + Component if registered, otherwise null. + + Component will get created if needed. + + + + If instance cannot be created. + + + + Checks if the specified component interface have been added. + + + true if found; otherwise false. + + + + Add a component. + + Type being requested. + Type being created. + Type have already been mapped. + + - Gets cookies that was sent with the request. + Class to make dynamic binding of redirects. Instead of having to specify a number of similar redirect rules + a regular expression can be used to identify redirect URLs and their targets. + + [a-z0-9]+)", "/users/${target}?find=true", RegexOptions.IgnoreCase) + ]]> + - + - The website module let's you handle multiple websites in the same server. - It uses the "Host" header to check which site you want. + Initializes a new instance of the class. - It's recommended that you do not - add any other modules to HttpServer if you are using the website module. Instead, - add all wanted modules to each website. + Expression to match URL + Expression to generate URL + + [a-zA-Z0-9]+)", "/user/${first}")); + Result of ie. /employee1 will then be /user/employee1 + ]]> + - + - + Initializes a new instance of the class. - domain name that should be handled. - + Expression to match URL + Expression to generate URL + Regular expression options to use, can be null + + [a-zA-Z0-9]+)", "/user/{first}", RegexOptions.IgnoreCase)); + Result of ie. /employee1 will then be /user/employee1 + ]]> + - + - Method that process the url + Initializes a new instance of the class. - Information sent by the browser about the request - Information that is being sent back to the client. - Session used to + Expression to match URL + Expression to generate URL + Regular expression options to apply + true if request should be redirected, false if the request URI should be replaced. + + [a-zA-Z0-9]+)", "/user/${first}", RegexOptions.None)); + Result of ie. /employee1 will then be /user/employee1 + ]]> + + Argument is null. + - + - Name of site. + Process the incoming request. + incoming HTTP request + outgoing HTTP response + true if response should be sent to the browser directly (no other rules or modules will be processed). + + returning true means that no modules will get the request. Returning true is typically being done + for redirects. + + If request or response is null @@ -4812,30 +4991,6 @@ Retrieves the full path name to the resource file - - - Creates request parsers when needed. - - - - - Creates request parsers when needed. - - - - - Create a new request parser. - - Used when logging should be enabled. - A new request parser. - - - - Create a new request parser. - - Used when logging should be enabled. - A new request parser. - The "basic" authentication scheme is based on the model that the @@ -4921,533 +5076,499 @@ Adding bytes to body - - - This decoder converts XML documents to form items. - Each element becomes a subitem in the form, and each attribute becomes an item. - - - // xml: somethingdata - // result: - // form["hello"].Value = "something" - // form["hello"]["id"].Value = 1 - // form["hello"]["world]["id"].Value = 1 - // form["hello"]["world"].Value = "data" - - - The original xml document is stored in form["__xml__"].Value. - - - - - - - Stream containing the content - Content type (with any additional info like boundry). Content type is always supplied in lower case - Stream encoding - Note: contentType and encoding are not used? - A http form, or null if content could not be parsed. - - - - - Recursive function that will go through an xml element and store it's content - to the form item. - - (parent) Item in form that content should be added to. - Node that should be parsed. - - - - Checks if the decoder can handle the mime type - - Content type (with any additional info like boundry). Content type is always supplied in lower case. - True if the decoder can parse the specified content type - - - - Cookies that should be set. - - - - - Adds a cookie in the collection. - - cookie to add - cookie is null - - - - Copy a request cookie - - - When the cookie should expire - - - - Gets a collection enumerator on the cookie list. - - collection enumerator - - + - Remove all cookies + Will contain helper functions for javascript. - + - Returns an enumerator that iterates through the collection. + Requests a url through ajax + url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself. + optional options in format "key, value, key, value", used in JS request object. All keys should end with colon. + a link tag + onclick attribute is used by this method. + + + // plain text + JSHelper.AjaxRequest("'/user/show/1'"); - - A that can be used to iterate through the collection. - - 1 + // ajax request using this.href + string link = "<a href=\"/user/call/1\" onclick=\"" + JSHelper.AjaxRequest("this.href") + "/<call user</a>"; + + - + - Gets the count of cookies in the collection. + Ajax requests that updates an element with + the fetched content + url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself. + element to update + options in format "key, value, key, value". All keys should end with colon. + A link tag. + + + JSHelper.AjaxUpdater("'/user/show/1'", "user", "onsuccess:", "alert('hello');", "asynchronous:", "true"); + + - + - Gets the cookie of a given identifier (null if not existing). + Opens contents in a dialog window. + url to contents of dialog + link title + name, value, name, value, all parameter names should end with colon. - + - This class is created as a wrapper, since there are two different cookie types in .Net (Cookie and HttpCookie). - The framework might switch class in the future and we dont want to have to replace all instances + Close a javascript dialog window/div. + javascript for closing a dialog. + - + - Let's copy all the cookies. + Lists content type mime types. - value from cookie header. - + - Adds a cookie in the collection. + text/plain - cookie to add - cookie is null - + - Gets a collection enumerator on the cookie list. + text/haml - collection enumerator - + - Remove all cookies. + content type for javascript documents = application/javascript + + + RFC 4329 states that text/javascript have been superseeded by + application/javascript. You might still want to check browser versions + since older ones do not support application/javascript. + + Browser support: http://krijnhoetmer.nl/stuff/javascript/mime-types/ + - + - Returns an enumerator that iterates through the collection. + text/xml - - - A that can be used to iterate through the collection. - - 1 - + - Remove a cookie from the collection. + A list of content types - Name of cookie. - + - Gets the count of cookies in the collection. + + Semicolon separated content types. - + - Gets the cookie of a given identifier (null if not existing). + Returns an enumerator that iterates through a collection. + + An object that can be used to iterate through the collection. + - + - New implementation of the HTTP listener. + Searches for the specified type - - Use the Create methods to create a default listener. - + Can also be a part of a type (searching for "xml" would return true for "application/xml"). + true if type was found. - + - Initializes a new instance of the class. + Get this first content type. - IP Address to accept connections on - TCP Port to listen on, default HTTP port is 80. - Factory used to create es. - address is null. - Port must be a positive number. - + - Initializes a new instance of the class. + Fetch a content type - The address. - The port. - The factory. - The certificate. + Part of type ("xml" would return "application/xml") + + All content types are in lower case. - + - Initializes a new instance of the class. + Creates request parsers when needed. - The address. - The port. - The factory. - The certificate. - The protocol. - + - Creates a new instance with default factories. + Creates request parsers when needed. - Address that the listener should accept connections on. - Port that listener should accept connections on. - Created HTTP listener. - + - Creates a new instance with default factories. + Create a new request parser. - Address that the listener should accept connections on. - Port that listener should accept connections on. - Certificate to use - Created HTTP listener. + Used when logging should be enabled. + A new request parser. - + - Creates a new instance with default factories. + Create a new request parser. - Address that the listener should accept connections on. - Port that listener should accept connections on. - Certificate to use - which HTTPS protocol to use, default is TLS. - Created HTTP listener. + Used when logging should be enabled. + A new request parser. - + - Can be used to create filtering of new connections. + The request requires user authentication. The response MUST include a + WWW-Authenticate header field (section 14.47) containing a challenge + applicable to the requested resource. + + The client MAY repeat the request with a suitable Authorization header + field (section 14.8). If the request already included Authorization + credentials, then the 401 response indicates that authorization has been + refused for those credentials. If the 401 response contains the same challenge + as the prior response, and the user agent has already attempted authentication + at least once, then the user SHOULD be presented the entity that was given in the response, + since that entity might include relevant diagnostic information. + + HTTP access authentication is explained in rfc2617: + http://www.ietf.org/rfc/rfc2617.txt + + (description is taken from + http://www.submissionchamber.com/help-guides/error-codes.php#sec10.4.2) - Accepted socket - - true if connection can be accepted; otherwise false. - - + - A client have been accepted, but not handled, by the listener. + Create a new unauhtorized exception. + - + - Generic helper functions for HTTP + Create a new unauhtorized exception. + reason to why the request was unauthorized. + inner exception - + - Version string for HTTP v1.0 + Create a new unauhtorized exception. + reason to why the request was unauthorized. - + - Version string for HTTP v1.1 + The purpose of this module is to serve files. - + - An empty URI + Initializes a new instance of the class. + Uri to serve, for instance "/files/" + Path on hard drive where we should start looking for files + If true a Last-Modifed header will be sent upon requests urging web browser to cache files - + - Parses a query string. + Initializes a new instance of the class. - Query string (URI encoded) - A object if successful; otherwise - queryString is null. - If string cannot be parsed. + Uri to serve, for instance "/files/" + Path on hard drive where we should start looking for files - + - A reverse proxy are used to act as a bridge between local (protected/hidden) websites - and public clients. - - A typical usage is to allow web servers on non standard ports to still be available - to the public clients, or allow web servers on private ips to be available. + Mimtypes that this class can handle per default - + - + Determines if the request should be handled by this module. + Invoked by the - Base url requested from browser - Base url on private web server - - // this will return contents from http://192.168.1.128/view/jonas when client requests http://www.gauffin.com/user/view/jonas - _server.Add(new ReverseProxyModule("http://www.gauffin.com/user/", "http://192.168.1.128/"); - + + true if this module should handle it. - + + Illegal path + + - Method that determines if an url should be handled or not by the module + check if source contains any of the chars. - Url requested by the client. - true if module should handle the url. + + + - + - Method that process the url + Method that process the Uri. Information sent by the browser about the request Information that is being sent back to the client. Session used to + Failed to find file extension + File type is forbidden. - + - Used to inform http server that + return a file extension from an absolute Uri path (or plain filename) + + - + - Eventarguments used when an exception is thrown by a module + List with all mime-type that are allowed. - the exception + All other mime types will result in a Forbidden http status code. - + - Exception thrown in a module + characters that may not exist in a path. + + fileMod.ForbiddenChars = new string[]{ "\\", "..", ":" }; + - + - PrototypeJS implementation of the javascript functions. + Webhelper provides helpers for common tasks in HTML. - + - Requests a url through ajax + Used to let the website use different javascript libraries. + Default is - url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself. - optional options in format "key, value, key, value", used in JS request object. All keys should end with colon. - a link tag - onclick attribute is used by this method. - - - // plain text - JSHelper.AjaxRequest("'/user/show/1'"); - - // ajax request using this.href - string link = "<a href=\"/user/call/1\" onclick=\"" + JSHelper.AjaxRequest("this.href") + "/<call user</a>"; - - - + - Determins if a list of strings contains a specific value + Creates a link that invokes through ajax. - options to check in - value to find - true if value was found - case insensitive + url to fetch + link title + + optional options in format "key, value, key, value". + Javascript options starts with ':'. + + a link tag + + WebHelper.AjaxRequest("/users/add/", "Add user", "method:", "post", "onclick", "validate('this');"); + - + - Ajax requests that updates an element with - the fetched content + Builds a link that updates an element with the fetched ajax content. - URL to fetch. URL is NOT enclosed in quotes by the implementation. You need to do that yourself. - element to update - options in format "key, value, key, value". All keys should end with colon. + Url to fetch content from + link title + html element to update with the results of the ajax request. + optional options in format "key, value, key, value" A link tag. - - - JSHelper.AjaxUpdater("'/user/show/1'", "user", "onsuccess:", "alert('hello');", "asynchronous:", "true"); - - - + A link that pop ups a Dialog (overlay div) - URL to contents of dialog + url to contents of dialog link title - name, value, name, value - - A "a"-tag that popups a dialog when clicked - - Requires Control.Modal found here: http://livepipe.net/projects/control_modal/ - And the following JavaScript (load it in application.js): - - Event.observe(window, 'load', - function() { - document.getElementsByClassName('modal').each(function(link){ new Control.Modal(link); }); - } - ); - - + name/value of html attributes. + A "a"-tag that popups a dialog when clicked WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');"); - + - create a modal dialog (usually using DIVs) + Create/Open a dialog box using ajax - url to fetch - dialog title - javascript/html attributes. javascript options ends with colon ':'. + + + - + Close a javascript dialog window/div. javascript for closing a dialog. - + - + - javascript action that should be added to the "onsubmit" event in the form tag. + Create a <form> tag. - remember to encapsulate strings in '' - - All javascript option names should end with colon. + name of form + action to invoke on submit + form should be posted as ajax + html code - - JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);"); - + WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax); - - - Implements HTTP Digest authentication. It's more secure than Basic auth since password is - encrypted with a "key" from the server. - - - Keep in mind that the password is encrypted with MD5. Use a combination of SSL and digest auth to be secure. - - - - - Initializes a new instance of the class. - - Delegate used to provide information used during authentication. - Delegate used to determine if authentication is required (may be null). - - - - Initializes a new instance of the class. - - Delegate used to provide information used during authentication. - - + - Used by test classes to be able to use hardcoded values + Create a link tag. + url to go to + link title (text that is displayed) + html attributes, name, value, name, value + html code + + WebHelper.Link("/user/show/1", "Show user", "id", "showUser", "onclick", "return confirm('Are you shure?');"); + - + - An authentication response have been received from the web browser. - Check if it's correct + Build a link - Contents from the Authorization header - Realm that should be authenticated - GET/POST/PUT/DELETE etc. - First option: true if username/password is correct but not cnonce - - Authentication object that is stored for the request. A user class or something like that. - - if authenticationHeader is invalid - If any of the paramters is empty or null. + url to go to. + title of link (displayed text) + extra html attributes. + a complete link - + - Encrypts parameters into a Digest string + Build a link - Realm that the user want to log into. - User logging in - Users password. - HTTP method. - Uri/domain that generated the login prompt. - Quality of Protection. - "Number used ONCE" - Hexadecimal request counter. - "Client Number used ONCE" - Digest encrypted string + url to go to. + title of link (displayed text) + extra html attributes. + a complete link + more options - + - + Obsolete - Md5 hex encoded "userName:realm:password", without the quotes. - Md5 hex encoded "method:uri", without the quotes - Quality of Protection - "Number used ONCE" - Hexadecimal request counter. - Client number used once - + Obsolete + Obsolete + Obsolete + Obsolete + Obsolete + Obsolete - + - Create a response that can be sent in the WWW-Authenticate header. + Obsolete - Realm that the user should authenticate in - First options specifies if true if username/password is correct but not cnonce. - A correct auth request. - If realm is empty or null. + Obsolete + Obsolete + Obsolete + Obsolete + Obsolete + Obsolete + Obsolete - + - Decodes authorization header value + Render errors into a UL with class "errors" - header value - Encoding that the buffer is in - All headers and their values if successful; otherwise null - - NameValueCollection header = DigestAuthentication.Decode("response=\"6629fae49393a05397450978507c4ef1\",\r\nc=00001", Encoding.ASCII); - - Can handle lots of whitespaces and new lines without failing. + class used by UL-tag. + items to list + an unordered html list. - + - Gets the current nonce. + Render errors into a UL with class "errors" - + class used by UL-tag. + items to list + an unordered html list. - + - Gets the Md5 hash bin hex2. + Render errors into a UL with class "errors" - To be hashed. + - + - determines if the nonce is valid or has expired. + Generates a list with html attributes. - nonce value (check wikipedia for info) - true if the nonce has not expired. + StringBuilder that the options should be added to. + attributes set by user. + attributes set by any of the helper classes. - + - name used in http request. + Generates a list with html attributes. + StringBuilder that the options should be added to. + - + - Gets or sets whether the token supplied in is a - HA1 generated string. + Delegate used by to populate select options. + current object (for instance a User). + Text that should be displayed in the value part of a <optiongt;-tag. + Text shown in the select list. + + // Class that is going to be used in a SELECT-tag. + public class User + { + private readonly string _realName; + private readonly int _id; + public User(int id, string realName) + { + _id = id; + _realName = realName; + } + public string RealName + { + get { return _realName; } + } + + public int Id + { + get { return _id; } + } + } + + // Using an inline delegate to generate the select list + public void UserInlineDelegate() + { + List<User> items = new List<User>(); + items.Add(new User(1, "adam")); + items.Add(new User(2, "bertial")); + items.Add(new User(3, "david")); + string htmlSelect = Select("users", "users", items, delegate(object o, out object id, out object value) + { + User user = (User)o; + id = user.Id; + value = user.RealName; + }, 2, true); + } + + // Using an method as delegate to generate the select list. + public void UseExternalDelegate() + { + List<User> items = new List<User>(); + items.Add(new User(1, "adam")); + items.Add(new User(2, "bertial")); + items.Add(new User(3, "david")); + string htmlSelect = Select("users", "users", items, UserOptions, 1, true); + } + + // delegate returning id and title + public static void UserOptions(object o, out object id, out object title) + { + User user = (User)o; + id = user.Id; + value = user.RealName; + } /// diff --git a/bin/Mono.Addins.CecilReflector.dll b/bin/Mono.Addins.CecilReflector.dll index 9ca4631..bbda91d 100755 Binary files a/bin/Mono.Addins.CecilReflector.dll and b/bin/Mono.Addins.CecilReflector.dll differ diff --git a/bin/Mono.Addins.Setup.dll b/bin/Mono.Addins.Setup.dll index 75773aa..68c3121 100755 Binary files a/bin/Mono.Addins.Setup.dll and b/bin/Mono.Addins.Setup.dll differ diff --git a/bin/Mono.Addins.Setup.xml b/bin/Mono.Addins.Setup.xml new file mode 100644 index 0000000..f5ce70a --- /dev/null +++ b/bin/Mono.Addins.Setup.xml @@ -0,0 +1,1140 @@ + + + + Mono.Addins.Setup + + + + + An IAddinInstaller implementation which interacts with the user through the console + + + + + Initializes a new instance of the class. + + + + + Gets or sets whether the installer can ask questions to the user + + + + + Log level (0:normal, 1+:verbose); + + + + + An add-in package + + + + + Creates a package object for an add-in available in an on-line repository + + + An add-in reference + + + The package + + + + + Creates a package object for a local package file + + + Package file path + + + The package + + + + + Name of the package + + + + + Returns true if the package will be installed in the shared directory, + false if it will be installed in the user directory. + + + + + A reference to an add-in available in an on-line repository + + + + + Begins downloading a support file + + + Result of the asynchronous operation, to be used when calling EndDownloadSupportFile to + get the download result. + + + Name of the file. + + + Callback to be called when the download operation ends. + + + Custom state object provided by the caller. + + + This method can be used to get the contents of a support file of an add-in. + A support file is a file referenced in the custom properties of an add-in. + + + + + Gets the result of the asynchronous download of a file + + + The downloaded file. + + + The async result object returned by BeginDownloadSupportFile. + + + + + Add-in information + + + + + Url to the add-in package + + + + + The URL of the repository + + + + + Name of the repository + + + + + An installation exception + + + + + Initializes the exception + + + Error message + + + + + Initializes the exception + + + Error message + + + Inner exception + + + + + A command line add-in manager. + + + This class can be used to provide an add-in management command line tool to applications. + + + + + Creates a new instance + + + Add-in registry to manage. + + + + + Runs the command line tool. + + + Array that contains the command line arguments + + + Index of the arguments array that has the first argument for the management tool + + + 0 if it succeeds. != 0 otherwise + + + + + Runs the command line tool. + + + Command line arguments + + + 0 if it succeeds. != 0 otherwise + + + + + Adds a custom command to the add-in manager + + + Category under which the command has to be shown in the help text + + + Name of the command + + + Short name of the command (it's an alias of the normal name) + + + Formal description of the arguments that the command accepts. For example: "[addin-id|addin-file] [--xml] [--all] [--full] [--namespace <namespace>]" + + + Short description of the command + + + Long description of the command + + + Delegate to be invoked to run the command + + + + + Prints help about the add-in management tool, or about a specific command + + + Optional command name and arguments + + + + + Display name of the host application + + + + + Default add-in namespace of the application (optional). If set, only add-ins that belong to that namespace + will be shown in add-in lists. + + + + + Enables or disables verbose output + + + + + Sets or gets the verbose output level (0: normal output, 1:verbose, 2+:extra verbose) + + + + + A command handler + + + + + A collection of packages + + + + + Initializes a new instance of the class. + + + + + Copy constructor + + + Collection where to copy from + + + + + Adds a package + + + A package + + + + + Checks if a package is present in the collection + + + The package + + + True if the package is preent + + + + + Adds a list of packages to the collection + + + The list of packages to add + + + + + Gets a package + + + Package index + + + + + Basic add-in information + + + + + Compares the versions of two add-ins + + + Another add-in + + + Result of comparison + + + + + Full identifier of the add-in + + + + + Display name of the add-in + + + + + Namespace of the add-in + + + + + Version of the add-in + + + + + Version with which this add-in is compatible + + + + + Add-in author + + + + + Add-in copyright + + + + + Web page URL with more information about the add-in + + + + + Description of the add-in + + + + + Category of the add-in + + + + + Dependencies of the add-in + + + + + Optional dependencies of the add-in + + + + + Custom properties specified in the add-in header + + + + + A registry of on-line repositories + + + This class can be used to manage on-line repository subscriptions. + + + + + Subscribes to an on-line repository + + + Progress monitor where to show progress status and log + + + URL of the repository + + + A repository reference + + + The repository index is not downloaded by default. It can be downloaded + by calling UpdateRepository. + + + + + Subscribes to an on-line repository + + + Progress monitor where to show progress status and log + + + URL of the repository + + + When set to True, the repository index will be downloaded. + + + A repository reference + + + + + Removes an on-line repository subscription. + + + URL of the repository. + + + + + Enables or disables a repository + + + URL of the repository + + + 'true' if the repository has to be enabled. + + + Disabled repositories are ignored when calling UpdateAllRepositories. + + + + + Checks if a repository is already subscribed. + + + URL of the repository + + + True if the repository is already subscribed. + + + + + Gets a list of subscribed repositories + + + A list of repositories. + + + + + Updates the add-in index of all subscribed repositories. + + + Progress monitor where to show progress status and log + + + + + Updates the add-in index of the provided repository + + + Progress monitor where to show progress status and log + + + URL of the repository + + + + + Gets a list of available add-in updates. + + + A list of add-in references. + + + The list is generated by looking at the add-ins currently installed and checking if there is any + add-in with a newer version number in any of the subscribed repositories. This method uses cached + information from on-line repositories. Make sure you call UpdateRepository or UpdateAllRepositories + before using this method to ensure that the latest information is available. + + + + + Gets a list of available add-in updates. + + + Search flags + + + A list of add-in references. + + + The list is generated by looking at the add-ins currently installed and checking if there is any + add-in with a newer version number in any of the subscribed repositories. This method uses cached + information from on-line repositories. Make sure you call UpdateRepository or UpdateAllRepositories + before using this method to ensure that the latest information is available. + + + + + Gets a list of available add-in updates in a specific repository. + + + The repository URL + + + A list of add-in references. + + + The list is generated by looking at the add-ins currently installed and checking if there is any + add-in with a newer version number in the provided repository. This method uses cached + information from on-line repositories. Make sure you call UpdateRepository or UpdateAllRepositories + before using this method to ensure that the latest information is available. + + + + + Gets a list of available updates for an add-in. + + + Identifier of the add-in. + + + List of updates for the specified add-in. + + + The list is generated by checking if there is any + add-in with a newer version number in any of the subscribed repositories. This method uses cached + information from on-line repositories. Make sure you call UpdateRepository or UpdateAllRepositories + before using this method to ensure that the latest information is available. + + + + + Gets a list of available updates for an add-in. + + + Identifier of the add-in. + + + Search flags. + + + List of updates for the specified add-in. + + + The list is generated by checking if there is any + add-in with a newer version number in any of the subscribed repositories. This method uses cached + information from on-line repositories. Make sure you call UpdateRepository or UpdateAllRepositories + before using this method to ensure that the latest information is available. + + + + + Gets a list of available updates for an add-in in a specific repository + + + Identifier of the add-in. + + + Identifier of the add-in. + + + List of updates for the specified add-in. + + + The list is generated by checking if there is any + add-in with a newer version number in the provided repository. This method uses cached + information from on-line repositories. Make sure you call UpdateRepository or UpdateAllRepositories + before using this method to ensure that the latest information is available. + + + + + Gets a list of available updates for an add-in in a specific repository + + + Identifier of the add-in. + + + Identifier of the add-in. + + + Search flags. + + + List of updates for the specified add-in. + + + The list is generated by checking if there is any + add-in with a newer version number in the provided repository. This method uses cached + information from on-line repositories. Make sure you call UpdateRepository or UpdateAllRepositories + before using this method to ensure that the latest information is available. + + + + + Gets a list of all available add-ins + + + A list of add-ins + + + This method uses cached + information from on-line repositories. Make sure you call UpdateRepository or UpdateAllRepositories + before using this method to ensure that the latest information is available. + + + + + Gets a list of all available add-ins + + + The available addins. + + + Search flags. + + + This method uses cached + information from on-line repositories. Make sure you call UpdateRepository or UpdateAllRepositories + before using this method to ensure that the latest information is available. + + + + + Gets a list of all available add-ins in a repository + + + A repository URL + + + A list of add-ins + + + This method uses cached + information from on-line repositories. Make sure you call UpdateRepository or UpdateAllRepositories + before using this method to ensure that the latest information is available. + + + + + Gets a list of all available add-ins in a repository + + + A repository URL + + + Search flags. + + + A list of add-ins + + + This method uses cached + information from on-line repositories. Make sure you call UpdateRepository or UpdateAllRepositories + before using this method to ensure that the latest information is available. + + + + + Checks if an add-in is available to be installed + + + Identifier of the add-in + + + Version of the add-in (optional, it can be null) + + + A list of add-ins + + + List of references to add-ins available in on-line repositories. This method uses cached + information from on-line repositories. Make sure you call UpdateRepository or UpdateAllRepositories + before using this method to ensure that the latest information is available. + + + + + Checks if an add-in is available to be installed from a repository + + + A repository URL + + + Identifier of the add-in + + + Version of the add-in (optional, it can be null) + + + A list of add-ins + + + List of references to add-ins available in the repository. This method uses cached + information from on-line repositories. Make sure you call UpdateRepository or UpdateAllRepositories + before using this method to ensure that the latest information is available. + + + + + Repository search flags. + + + + + No special search options + + + + + Only the latest version of every add-in is included in the search + + + + + An on-line add-in repository + + + + + Path to the cached add-in repository file + + + + + Url of the repository + + + + + Do not use. Use Title instead. + + + + + Title of the repository + + + + + Last change timestamp + + + + + Gets a value indicating whether this is enabled. + + + true if enabled; otherwise, false. + + + + + Helper for making web requests with support for authenticated proxies. + + + + + Sets a custom request handler that can handle requests for authenticated proxy servers. + + The custom request handler. + + + + Gets the web response, using the request handler to handle proxy authentication + if necessary. + + The response. + Callback for creating the request. + Callback for preparing the request, e.g. writing the request stream. + Cancellation token. + + Keeps sending requests until a response code that doesn't require authentication happens or if the request + requires authentication and the user has stopped trying to enter them (i.e. they hit cancel when they are prompted). + + + + + Gets the web response, using the request handler to handle proxy authentication + if necessary. + + The response. + Callback for creating the request. + Callback for preparing the request, e.g. writing the request stream. + Cancellation token. + + Keeps sending requests until a response code that doesn't require authentication happens or if the request + requires authentication and the user has stopped trying to enter them (i.e. they hit cancel when they are prompted). + + + + + Determines whether an error code is likely to have been caused by internet reachability problems. + + + + + Provides tools for managing add-ins + + + This class can be used to manage the add-ins of an application. It allows installing and uninstalling + add-ins, taking into account add-in dependencies. It provides methods for installing add-ins from on-line + repositories and tools for generating those repositories. + + + + + Initializes a new instance + + + If the add-in manager is initialized (AddinManager.Initialize has been called), then this instance + will manage the add-in registry of the initialized engine. + + + + + Initializes a new instance + + + Add-in registry to manage + + + + + Resolves add-in dependencies. + + + Progress monitor where to show progress status + + + List of add-ins to check + + + Packages that need to be installed. + + + Packages that need to be uninstalled. + + + Add-in dependencies that could not be resolved. + + + True if all dependencies could be resolved. + + + This method can be used to get a list of all packages that have to be installed in order to install + an add-in or set of add-ins. The list of packages to install will include the package that provides the + add-in, and all packages that provide the add-in dependencies. In some cases, packages may need to + be installed (for example, when an installed add-in needs to be upgraded). + + + + + Resolves add-in dependencies. + + + Progress monitor where to show progress status + + + Packages that need to be installed. + + + Packages that need to be uninstalled. + + + Add-in dependencies that could not be resolved. + + + True if all dependencies could be resolved. + + + This method can be used to get a list of all packages that have to be installed in order to satisfy + the dependencies of a package or set of packages. The 'packages' argument must have the list of packages + to be resolved. When resolving dependencies, if there is any additional package that needs to be installed, + it will be added to the same 'packages' collection. In some cases, packages may need to + be installed (for example, when an installed add-in needs to be upgraded). Those packages will be added + to the 'toUninstall' collection. Packages that could not be resolved are added to the 'unresolved' + collection. + + + + + Installs add-in packages + + + Progress monitor where to show progress status + + + Paths to the packages to install + + + True if the installation succeeded + + + + + Installs add-in packages from on-line repositories + + + Progress monitor where to show progress status + + + References to the add-ins to be installed + + + True if the installation succeeded + + + + + Installs add-in packages + + + Progress monitor where to show progress status + + + Packages to install + + + True if the installation succeeded + + + + + Uninstalls an add-in. + + + Progress monitor where to show progress status + + + Full identifier of the add-in to uninstall. + + + + + Uninstalls a set of add-ins + + + Progress monitor where to show progress status + + + Full identifiers of the add-ins to uninstall. + + + + + Gets information about an add-in + + + The add-in + + + Add-in header data + + + + + Gets a list of add-ins which depend on an add-in + + + Full identifier of an add-in. + + + When set to True, dependencies will be gathered recursivelly + + + List of dependent add-ins. + + + This methods returns a list of add-ins which have the add-in identified by 'id' as a direct + (or indirect if recursive=True) dependency. + + + + + Packages an add-in + + + Progress monitor where to show progress status + + + Directory where to generate the package + + + Paths to the add-ins to be packaged. Paths can be either the main assembly of an add-in, or an add-in + manifest (.addin or .addin.xml). + + + This method can be used to create a package for an add-in, which can then be pushed to an on-line + repository. The package will include the main assembly or manifest of the add-in and any external + file declared in the add-in metadata. + + + + + Generates an on-line repository + + + Progress monitor where to show progress status + + + Path to the directory that contains the add-ins and that is going to be published + + + This method generates the index files required to publish a directory as an online repository + of add-ins. + + + + + Gets a reference to an extensible application + + + Name of the application + + + The Application object. Null if not found. + + + + + Gets a reference to an extensible application + + + Name of the application + + + Custom paths where to look for the application. + + + The Application object. Null if not found. + + + + + Gets a lis of all known extensible applications + + + A list of applications. + + + + + Gets a lis of all known extensible applications + + + Custom paths where to look for applications. + + + A list of applications. + + + + + The add-in registry being managed + + + + + Default add-in namespace of the application (optional). If set, only add-ins that belong to that namespace + will be shown in add-in lists. + + + + + Directory where to install add-ins. If not specified, the 'addins' subdirectory of the + registry location is used. + + + + + Returns a RepositoryRegistry which can be used to manage on-line repository references + + + + + A registered extensible application + + + + + Add-in registry of the application + + + + + Description of the application + + + + + Name of the application + + + + + Path to the add-in registry + + + + + Path to the directory that contains the main executable assembly of the application + + + + + Command to be used to execute the application in add-in development mode. + + + + + Path to the default add-ins directory for the aplpication + + + + + Path to the add-in cache for the application + + + + diff --git a/bin/Mono.Addins.dll b/bin/Mono.Addins.dll index 326ed1d..969909e 100755 Binary files a/bin/Mono.Addins.dll and b/bin/Mono.Addins.dll differ diff --git a/bin/Mono.Addins.xml b/bin/Mono.Addins.xml new file mode 100644 index 0000000..b9bdd4c --- /dev/null +++ b/bin/Mono.Addins.xml @@ -0,0 +1,6120 @@ + + + + Mono.Addins + + + + + An add-in localizer. + + + Add-in localizers which want to provide support for localization of plural forms + can additionally implement . + + + + + Gets a localized message. + + + The localized message. + + + The message identifier. + + + + + A collection of extension nodes + + + + + Base class for add-in description collections. + + + + + Base class for add-in description collections. + + + + + Initializes a new instance of the class. + + + + + Add an object. + + + The object. + + + + + Adds a collection of objects. + + + The objects to add. + + + + + Insert an object. + + + Insertion index. + + + The object. + + + + + Removes an object. + + + Object to remove. + + + + + Checks if an object is present in the collection. + + + Objecect to check. + + + + + A collection of NodeElement objects + + + + + Gets the at the specified index + + + Index + + + + + Initializes a new instance of the class. + + + + + Gets the at the specified index. + + + The index. + + + + + Gets the with the specified identifier. + + + Identifier. + + + + + Declares an extension point. + + + + + Initializes a new instance + + + + + Initializes a new instance + + + Extension path that identifies the extension point + + + + + Initializes a new instance + + + Extension path that identifies the extension point + + + Type of the extension node to be created for extensions + + + + + Initializes a new instance + + + Extension path that identifies the extension point + + + Element name to be used when defining an extension in an XML manifest. + + + Type of the extension node to be created for extensions + + + + + Extension path that identifies the extension point + + + + + Long description of the extension point. + + + + + Type of the extension node to be created for extensions + + + + + Expected extension object type (when nodes are of type TypeExtensionNode) + + + + + Element name to be used when defining an extension in an XML manifest. The default name is "Type". + + + + + Display name of the extension point. + + + + + Type of the custom attribute to be used to specify metadata for the extension point + + + + + Addin URL attribute. + + + + + Initializes the attribute + + + Url of the add-in + + + + + Url of the add-in + + + + + Declares allowed children of an extension node type. + + + This attribute allows declaring the type of children that an extension node can have. + + + + + Initializes a new instance + + + Name of the allowed child extension node. + + + + + Initializes a new instance + + + Type of the allowed child extension node. + + + + + Initializes a new instance + + + Type of the allowed child extension node. + + + Name of the allowed child extension node. + + + + + Name of the allowed child extension node. + + + + + Type of the allowed child extension node. + + + + + Provides access to add-in and extension model management operations. + + + + + Initializes the add-in engine. + + + The add-in engine needs to be initialized before doing any add-in operation. + When initialized with this method, it will look for add-ins in the global add-in registry. + + + + + Initializes the add-in engine. + + + Location of the add-in registry. + + + The add-in engine needs to be initialized before doing any add-in operation. + Configuration information about the add-in registry will be stored in the + provided location. The add-in engine will look for add-ins in an 'addins' + subdirectory of the provided directory. + + When specifying a path, it is possible to use a special folder name as root. + For example: [Personal]/.config/MyApp. In this case, [Personal] will be replaced + by the location of the Environment.SpecialFolder.Personal folder. Any value + of the Environment.SpecialFolder enumeration can be used (always between square + brackets) + + + + + Initializes the add-in engine. + + + Location of the add-in registry. + + + Add-ins directory. If the path is relative, it is considered to be relative + to the configDir directory. + + + The add-in engine needs to be initialized before doing any add-in operation. + Configuration information about the add-in registry will be stored in the + provided location. The add-in engine will look for add-ins in the provided + 'addinsDir' directory. + + When specifying a path, it is possible to use a special folder name as root. + For example: [Personal]/.config/MyApp. In this case, [Personal] will be replaced + by the location of the Environment.SpecialFolder.Personal folder. Any value + of the Environment.SpecialFolder enumeration can be used (always between square + brackets) + + + + + Initializes the add-in engine. + + + Location of the add-in registry. + + + Add-ins directory. If the path is relative, it is considered to be relative + to the configDir directory. + + + Location of the add-in database. If the path is relative, it is considered to be relative + to the configDir directory. + + + The add-in engine needs to be initialized before doing any add-in operation. + Configuration information about the add-in registry will be stored in the + provided location. The add-in engine will look for add-ins in the provided + 'addinsDir' directory. Cached information about add-ins will be stored in + the 'databaseDir' directory. + + When specifying a path, it is possible to use a special folder name as root. + For example: [Personal]/.config/MyApp. In this case, [Personal] will be replaced + by the location of the Environment.SpecialFolder.Personal folder. Any value + of the Environment.SpecialFolder enumeration can be used (always between square + brackets) + + + + + Finalizes an add-in engine. + + + + + Sets the default localizer to be used for this add-in engine + + + The add-in localizer + + + + + Checks if the provided add-ins are installed, and requests the installation of those + which aren't. + + + Message to show to the user when new add-ins have to be installed. + + + List of IDs of the add-ins to be checked. + + + This method checks if the specified add-ins are installed. + If some of the add-ins are not installed, it will use + the installer assigned to the DefaultAddinInstaller property + to install them. If the installation fails, or if DefaultAddinInstaller + is not set, an exception will be thrown. + + + + + Checks if an add-in has been loaded. + + + Full identifier of the add-in. + + + True if the add-in is loaded. + + + + + Forces the loading of an add-in. + + + Status monitor to keep track of the loading process. + + + Full identifier of the add-in to load. + + + This method loads all assemblies that belong to an add-in in memory. + All add-ins on which the specified add-in depends will also be loaded. + Notice that in general add-ins don't need to be explicitely loaded using + this method, since the add-in engine will load them on demand. + + + + + Creates a new extension context. + + + The new extension context. + + + Extension contexts can be used to query the extension model using particular condition values. + + + + + Returns the extension node in a path + + + Location of the node. + + + The node, or null if not found. + + + + + Returns the extension node in a path + + + Location of the node. + + + The node, or null if not found. + + + + + Gets extension nodes registered in a path. + + + An extension path.> + + + All nodes registered in the provided path. + + + + + Gets extension nodes registered in a path. + + + An extension path. + + + Expected node type. + + + A list of nodes + + + This method returns all nodes registered under the provided path. + It will throw a InvalidOperationException if the type of one of + the registered nodes is not assignable to the provided type. + + + + + Gets extension nodes registered in a path. + + + An extension path. + + + A list of nodes + + + This method returns all nodes registered under the provided path. + It will throw a InvalidOperationException if the type of one of + the registered nodes is not assignable to the provided type. + + + + + Gets extension nodes for a type extension point + + + Type defining the extension point + + + A list of nodes + + + This method returns all extension nodes bound to the provided type. + + + + + Gets extension nodes for a type extension point + + + Type defining the extension point + + + Expected extension node type + + + A list of nodes + + + This method returns all nodes registered for the provided type. + It will throw a InvalidOperationException if the type of one of + the registered nodes is not assignable to the provided node type. + + + + + Gets extension nodes for a type extension point + + + Type defining the extension point + + + A list of nodes + + + This method returns all nodes registered for the provided type. + It will throw a InvalidOperationException if the type of one of + the registered nodes is not assignable to the specified node type argument. + + + + + Gets extension objects registered for a type extension point. + + + Type defining the extension point + + + A list of objects + + + + + Gets extension objects registered for a type extension point. + + + A list of objects + + + The type argument of this generic method is the type that defines + the extension point. + + + + + Gets extension objects registered for a type extension point. + + + Type defining the extension point + + + When set to True, it will return instances created in previous calls. + + + A list of extension objects. + + + + + Gets extension objects registered for a type extension point. + + + When set to True, it will return instances created in previous calls. + + + A list of extension objects. + + + The type argument of this generic method is the type that defines + the extension point. + + + + + Gets extension objects registered in a path + + + An extension path. + + + An array of objects registered in the path. + + + This method can only be used if all nodes in the provided extension path + are of type Mono.Addins.TypeExtensionNode. The returned array is composed + by all objects created by calling the TypeExtensionNode.CreateInstance() + method for each node. + + + + + Gets extension objects registered in a path. + + + An extension path. + + + When set to True, it will return instances created in previous calls. + + + An array of objects registered in the path. + + + This method can only be used if all nodes in the provided extension path + are of type Mono.Addins.TypeExtensionNode. The returned array is composed + by all objects created by calling the TypeExtensionNode.CreateInstance() + method for each node (or TypeExtensionNode.GetInstance() if + reuseCachedInstance is set to true) + + + + + Gets extension objects registered in a path. + + + An extension path. + + + Type of the return array elements. + + + An array of objects registered in the path. + + + This method can only be used if all nodes in the provided extension path + are of type Mono.Addins.TypeExtensionNode. The returned array is composed + by all objects created by calling the TypeExtensionNode.CreateInstance() + method for each node. + + An InvalidOperationException exception is thrown if one of the found + objects is not a subclass of the provided type. + + + + + Gets extension objects registered in a path. + + + An extension path. + + + An array of objects registered in the path. + + + This method can only be used if all nodes in the provided extension path + are of type Mono.Addins.TypeExtensionNode. The returned array is composed + by all objects created by calling the TypeExtensionNode.CreateInstance() + method for each node. + + An InvalidOperationException exception is thrown if one of the found + objects is not a subclass of the provided type. + + + + + Gets extension objects registered in a path. + + + An extension path. + + + Type of the return array elements. + + + When set to True, it will return instances created in previous calls. + + + An array of objects registered in the path. + + + This method can only be used if all nodes in the provided extension path + are of type Mono.Addins.TypeExtensionNode. The returned array is composed + by all objects created by calling the TypeExtensionNode.CreateInstance() + method for each node (or TypeExtensionNode.GetInstance() if + reuseCachedInstance is set to true). + + An InvalidOperationException exception is thrown if one of the found + objects is not a subclass of the provided type. + + + + + Gets extension objects registered in a path. + + + An extension path. + + + When set to True, it will return instances created in previous calls. + + + An array of objects registered in the path. + + + This method can only be used if all nodes in the provided extension path + are of type Mono.Addins.TypeExtensionNode. The returned array is composed + by all objects created by calling the TypeExtensionNode.CreateInstance() + method for each node (or TypeExtensionNode.GetInstance() if + reuseCachedInstance is set to true). + + An InvalidOperationException exception is thrown if one of the found + objects is not a subclass of the provided type. + + + + + Register a listener of extension node changes. + + + Path of the node. + + + A handler method. + + + Hosts can call this method to be subscribed to an extension change + event for a specific path. The event will be fired once for every + individual node change. The event arguments include the change type + (Add or Remove) and the extension node added or removed. + + NOTE: The handler will be called for all nodes existing in the path at the moment of registration. + + + + + Unregister a listener of extension node changes. + + + Path of the node. + + + A handler method. + + + This method unregisters a delegate from the node change event of a path. + + + + + Register a listener of extension node changes. + + + Type defining the extension point + + + A handler method. + + + Hosts can call this method to be subscribed to an extension change + event for a specific type extension point. The event will be fired once for every + individual node change. The event arguments include the change type + (Add or Remove) and the extension node added or removed. + + NOTE: The handler will be called for all nodes existing in the path at the moment of registration. + + + + + Unregister a listener of extension node changes. + + + Type defining the extension point + + + A handler method. + + + + + Gets whether the add-in engine has been initialized. + + + + + Gets the default add-in installer + + + The default installer is used by the CheckInstalled method to request + the installation of missing add-ins. + + + + + Gets the default localizer for this add-in engine + + + + + Gets the localizer for the add-in that is invoking this property + + + + + Gets a reference to the RuntimeAddin object for the add-in that is invoking this property + + + + + Gets the default add-in engine + + + + + Gets the add-in registry bound to the default add-in engine + + + + + Extension change event. + + + This event is fired when any extension point in the add-in system changes. + The event args object provides the path of the changed extension, although + it does not provide information about what changed. Hosts subscribing to + this event should get the new list of nodes using a query method such as + AddinManager.GetExtensionNodes() and then update whatever needs to be updated. + + + + + Add-in loading error event. + + + This event is fired when there is an error when loading the extension + of an add-in, or any other kind of error that may happen when querying extension points. + + + + + Add-in loaded event. + + + Fired after loading an add-in in memory. + + + + + Add-in unload event. + + + Fired when an add-in is unloaded from memory. It may happen an add-in is disabled or uninstalled. + + + + + An extension node definition. + + + + + Base class for add-in description definitions. + + + + + Gets the parent object. + + + The parent object. + + + + + Gets the parent add-in description. + + + The parent add-in description. + + + + + An extension node element. + + + A raw representation of an extension node. Contains the basic information + needed to create ExtensionNode instances. + + + + + Gets element attributes. + + + Name of the attribute + + + The value of the attribute + + + + + Name of the node element. + + + + + Gets all attributes defined in the element. + + + + + Gets child nodes of this node + + + + + Initializes a new instance of the class. + + + Node name. + + + + + Gets the type of the node. + + + The node type. + + + This method only works when the add-in description to which the node belongs has been + loaded from an add-in registry. + + + + + Gets the extension path under which this node is registered + + + The parent path. + + + For example, if the id of the node is 'ThisNode', and the node is a child of another node with id 'ParentNode', and + that parent node is defined in an extension with the path '/Core/MainExtension', then the parent path is 'Core/MainExtension/ParentNode'. + + + + + Gets the value of an attribute. + + + The value of the attribute, or an empty string if the attribute is not defined. + + + Name of the attribute. + + + + + Sets the value of an attribute. + + + Name of the attribute + + + The value. + + + + + Removes an attribute. + + + Name of the attribute to remove. + + + + + Gets or sets the name of the node. + + + The name of the node. + + + + + Gets or sets the identifier of the node. + + + The identifier. + + + + + Gets or sets the identifier of the node after which this node has to be inserted + + + The identifier of the reference node + + + + + Gets or sets the identifier of the node before which this node has to be inserted + + + The identifier of the reference node + + + + + Gets a value indicating whether this node is a condition. + + + true if this node is a condition; otherwise, false. + + + + + Gets the attributes of the node. + + + The attributes. + + + + + Gets the child nodes. + + + The child nodes. + + + + + An extension node type definition. + + + + + An extension node set definition. + + + Node sets allow grouping a set of extension node declarations and give an identifier to that group + (the node set). Once a node set is declared, it can be referenced from several extension points + which use the same extension node structure. Extension node sets also allow declaring recursive + extension nodes, that is, extension nodes with a tree structure. + + + + + Copies data from another node set + + + Node set from which to copy + + + + + Initializes a new instance of the class. + + + + + Gets all the allowed node types. + + + The allowed node types. + + + Gets all allowed node types, including those defined in included node sets. + This method only works for descriptions loaded from a registry. + + + + + Gets or sets the identifier of the node set. + + + The identifier. + + + + + Gets the node types allowed in this node set. + + + The node types. + + + + + Gets a list of other node sets included in this node set. + + + The node sets. + + + + + Initializes a new instance of the class. + + + + + Copies data from another node set + + + + + Type that implements the extension node. + + + The full name of the type. + + + + + Element name to be used when defining an extension in an XML manifest. The default name is "Type". + + + The name of the node. + + + + + Type of the object that the extension creates (only valid for TypeNodeExtension). + + + + + Name of the custom attribute that can be used to declare nodes of this type + + + + + Long description of the node type + + + + + Attributes supported by the extension node type. + + + + + An add-in description + + + This class represent an add-in manifest. It has properties for getting + all information, and methods for loading and saving files. + + + + + Adds an extension point. + + + The extension point. + + + Path that identifies the new extension point. + + + + + Saves the add-in description. + + + File name where to save this instance + + + Saves the add-in description to the specified file and sets the FileName property. + + + + + Saves the add-in description. + + + It is thrown if FileName is not set + + + The description is saved to the file specified in the FileName property. + + + + + Generates an XML representation of the add-in description + + + An XML manifest. + + + + + Load an add-in description from a file + + + The file. + + + + + Load an add-in description from a stream + + + The stream + + + The path to be used to resolve relative file paths. + + + + + Load an add-in description from a text reader + + + The text reader + + + The path to be used to resolve relative file paths. + + + + + Verify this instance. + + + This method checks all the definitions in the description and returns a list of errors. + If the returned list is empty, it means that the description is valid. + + + + + Gets or sets the path to the main addin file. + + + The addin file. + + + The add-in file can be either the main assembly of an add-in or an xml manifest. + + + + + Gets the addin identifier. + + + The addin identifier. + + + + + Gets or sets the local identifier. + + + The local identifier. + + + + + Gets or sets the namespace. + + + The namespace. + + + + + Gets or sets the display name of the add-in. + + + The name. + + + + + Gets or sets the version. + + + The version. + + + + + Gets or sets the version of the add-in with which this add-in is backwards compatible. + + + The compat version. + + + + + Gets or sets the author. + + + The author. + + + + + Gets or sets the Url where more information about the add-in can be found. + + + The URL. + + + + + Gets or sets the copyright. + + + The copyright. + + + + + Gets or sets the description of the add-in. + + + The description. + + + + + Gets or sets the category of the add-in. + + + The category. + + + + + Gets the base path for locating external files relative to the add-in. + + + The base path. + + + + + Gets or sets a value indicating whether this instance is an add-in root. + + + true if this instance is an add-in root; otherwise, false. + + + + + Gets or sets a value indicating whether this add-in is enabled by default. + + + true if enabled by default; otherwise, false. + + + + + Gets or sets the add-in flags. + + + The flags. + + + + + Gets a value indicating whether this add-in can be disabled. + + + true if this add-in can be disabled; otherwise, false. + + + + + Gets a value indicating whether this add-in can be uninstalled. + + + true if this instance can be uninstalled; otherwise, false. + + + + + Gets a value indicating whether this add-in is hidden. + + + true if this add-in is hidden; otherwise, false. + + + + + Gets all external files + + + All files. + + + External files are data files and assemblies explicitly referenced in the Runtime section of the add-in manifest. + + + + + Gets all paths to be ignored by the add-in scanner. + + + All paths to be ignored. + + + + + Gets the main module. + + + The main module. + + + + + Gets the optional modules. + + + The optional modules. + + + Optional modules can be used to declare extensions which will be registered only if some specified + add-in dependencies can be satisfied. Dependencies specified in optional modules are 'soft dependencies', + which means that they don't need to be satisfied in order to load the add-in. + + + + + Gets all modules (including the main module and all optional modules) + + + All modules. + + + + + Gets the extension node sets. + + + The extension node sets. + + + + + Gets the extension points. + + + The extension points. + + + + + Gets the condition types. + + + The condition types. + + + + + Gets or sets the add-in localizer. + + + The description of the add-in localizer for this add-in. + + + + + Custom properties specified in the add-in header + + + + + Gets or sets file where this description is stored + + + The file path. + + + + + Addin flags attribute. + + + + + Initializes the attribute + + + Add-in flags + + + + + Add-in flags + + + + + Delegate to be used in add-in engine events + + + + + Provides information about an add-in engine event. + + + + + Initializes a new instance of the class. + + + Add-in identifier. + + + + + Identifier of the add-in that generated the event. + + + + + Attribute of a NodeElement. + + + + + Name of the attribute. + + + + + Value of the attribute. + + + + + Allows finding assemblies in the file system + + + + + Locates an assembly + + + The full path to the assembly, or null if not found + + + Full name of the assembly + + + + + An add-in property. + + + + + Name of the property + + + + + Locale of the property. It is null if the property is not localized. + + + + + Value of the property. + + + + + A localizer factory. + + + + + Creates a localizer for an add-in. + + + The localizer. + + + The add-in for which to create the localizer. + + + Localizer parameters. + + + + + Definition of an add-in dependency. + + + + + Gets the display name of the dependency. + + + The name. + + + + + A collection of node sets. + + + + + Initializes a new instance of the class. + + + + + Gets the at the specified index. + + + The index. + + + + + Gets the with the specified id. + + + Identifier. + + + + + An add-in engine. + + + This class allows hosting several independent add-in engines in a single application domain. + In general, applications use the AddinManager class to query and manage extensions. This class is static, + so the API is easily accessible. However, some kind applications may need to use several isolated + add-in engines, and in this case the AddinManager class can't be used, because it is bound to a single + add-in engine. Those applications can instead create several instances of the AddinEngine class. Each + add-in engine can be independently initialized with different add-in registries and extension models. + + + + + An extension context. + + + Extension contexts can be used to query the extension tree + using particular condition values. Extension points which + declare the availability of a condition type can only be + queryed using an extension context which provides an + evaluator for that condition. + + + + + Registers a new condition in the extension context. + + + Identifier of the condition. + + + Condition evaluator. + + + The registered condition will be particular to this extension context. + Any event that might be fired as a result of changes in the condition will + only be fired in this context. + + + + + Registers a new condition in the extension context. + + + Identifier of the condition. + + + Type of the condition evaluator. Must be a subclass of Mono.Addins.ConditionType. + + + The registered condition will be particular to this extension context. Any event + that might be fired as a result of changes in the condition will only be fired in this context. + + + + + Returns the extension node in a path + + + Location of the node. + + + The node, or null if not found. + + + + + Returns the extension node in a path + + + Location of the node. + + + The node, or null if not found. + + + + + Gets extension nodes registered in a path. + + + An extension path.> + + + All nodes registered in the provided path. + + + + + Gets extension nodes registered in a path. + + + An extension path. + + + A list of nodes + + + This method returns all nodes registered under the provided path. + It will throw a InvalidOperationException if the type of one of + the registered nodes is not assignable to the provided type. + + + + + Gets extension nodes for a type extension point + + + Type defining the extension point + + + A list of nodes + + + This method returns all extension nodes bound to the provided type. + + + + + Gets extension nodes for a type extension point + + + Type defining the extension point + + + Expected extension node type + + + A list of nodes + + + This method returns all nodes registered for the provided type. + It will throw a InvalidOperationException if the type of one of + the registered nodes is not assignable to the provided node type. + + + + + Gets extension nodes for a type extension point + + + Type defining the extension point + + + A list of nodes + + + This method returns all nodes registered for the provided type. + It will throw a InvalidOperationException if the type of one of + the registered nodes is not assignable to the specified node type argument. + + + + + Gets extension nodes registered in a path. + + + An extension path. + + + Expected node type. + + + A list of nodes + + + This method returns all nodes registered under the provided path. + It will throw a InvalidOperationException if the type of one of + the registered nodes is not assignable to the provided type. + + + + + Gets extension objects registered for a type extension point. + + + Type defining the extension point + + + A list of objects + + + + + Gets extension objects registered for a type extension point. + + + A list of objects + + + The type argument of this generic method is the type that defines + the extension point. + + + + + Gets extension objects registered for a type extension point. + + + Type defining the extension point + + + When set to True, it will return instances created in previous calls. + + + A list of extension objects. + + + + + Gets extension objects registered for a type extension point. + + + When set to True, it will return instances created in previous calls. + + + A list of extension objects. + + + The type argument of this generic method is the type that defines + the extension point. + + + + + Gets extension objects registered in a path + + + An extension path. + + + An array of objects registered in the path. + + + This method can only be used if all nodes in the provided extension path + are of type Mono.Addins.TypeExtensionNode. The returned array is composed + by all objects created by calling the TypeExtensionNode.CreateInstance() + method for each node. + + + + + Gets extension objects registered in a path. + + + An extension path. + + + When set to True, it will return instances created in previous calls. + + + An array of objects registered in the path. + + + This method can only be used if all nodes in the provided extension path + are of type Mono.Addins.TypeExtensionNode. The returned array is composed + by all objects created by calling the TypeExtensionNode.CreateInstance() + method for each node (or TypeExtensionNode.GetInstance() if + reuseCachedInstance is set to true) + + + + + Gets extension objects registered in a path. + + + An extension path. + + + Type of the return array elements. + + + An array of objects registered in the path. + + + This method can only be used if all nodes in the provided extension path + are of type Mono.Addins.TypeExtensionNode. The returned array is composed + by all objects created by calling the TypeExtensionNode.CreateInstance() + method for each node. + + An InvalidOperationException exception is thrown if one of the found + objects is not a subclass of the provided type. + + + + + Gets extension objects registered in a path. + + + An extension path. + + + An array of objects registered in the path. + + + This method can only be used if all nodes in the provided extension path + are of type Mono.Addins.TypeExtensionNode. The returned array is composed + by all objects created by calling the TypeExtensionNode.CreateInstance() + method for each node. + + An InvalidOperationException exception is thrown if one of the found + objects is not a subclass of the provided type. + + + + + Gets extension objects registered in a path. + + + An extension path. + + + When set to True, it will return instances created in previous calls. + + + An array of objects registered in the path. + + + This method can only be used if all nodes in the provided extension path + are of type Mono.Addins.TypeExtensionNode. The returned array is composed + by all objects created by calling the TypeExtensionNode.CreateInstance() + method for each node (or TypeExtensionNode.GetInstance() if + reuseCachedInstance is set to true). + + An InvalidOperationException exception is thrown if one of the found + objects is not a subclass of the provided type. + + + + + Gets extension objects registered in a path. + + + An extension path. + + + Type of the return array elements. + + + When set to True, it will return instances created in previous calls. + + + An array of objects registered in the path. + + + This method can only be used if all nodes in the provided extension path + are of type Mono.Addins.TypeExtensionNode. The returned array is composed + by all objects created by calling the TypeExtensionNode.CreateInstance() + method for each node (or TypeExtensionNode.GetInstance() if + reuseCachedInstance is set to true). + + An InvalidOperationException exception is thrown if one of the found + objects is not a subclass of the provided type. + + + + + Register a listener of extension node changes. + + + Path of the node. + + + A handler method. + + + Hosts can call this method to be subscribed to an extension change + event for a specific path. The event will be fired once for every + individual node change. The event arguments include the change type + (Add or Remove) and the extension node added or removed. + + NOTE: The handler will be called for all nodes existing in the path at the moment of registration. + + + + + Unregister a listener of extension node changes. + + + Path of the node. + + + A handler method. + + + This method unregisters a delegate from the node change event of a path. + + + + + Register a listener of extension node changes. + + + Type defining the extension point + + + A handler method. + + + Hosts can call this method to be subscribed to an extension change + event for a specific type extension point. The event will be fired once for every + individual node change. The event arguments include the change type + (Add or Remove) and the extension node added or removed. + + NOTE: The handler will be called for all nodes existing in the path at the moment of registration. + + + + + Unregister a listener of extension node changes. + + + Type defining the extension point + + + A handler method. + + + + + Extension change event. + + + This event is fired when any extension point in the add-in system changes. + The event args object provides the path of the changed extension, although + it does not provide information about what changed. Hosts subscribing to + this event should get the new list of nodes using a query method such as + AddinManager.GetExtensionNodes() and then update whatever needs to be updated. + + + + + Initializes a new instance of the class. + + + + + Initializes the add-in engine + + + Location of the add-in registry. + + The add-in engine needs to be initialized before doing any add-in operation. + When initialized with this method, it will look for add-in in the add-in registry + located in the specified path. + + + + + Initializes the add-in engine. + + + Location of the add-in registry. + + + Add-ins directory. If the path is relative, it is considered to be relative + to the configDir directory. + + + The add-in engine needs to be initialized before doing any add-in operation. + Configuration information about the add-in registry will be stored in the + provided location. The add-in engine will look for add-ins in the provided + 'addinsDir' directory. + + When specifying a path, it is possible to use a special folder name as root. + For example: [Personal]/.config/MyApp. In this case, [Personal] will be replaced + by the location of the Environment.SpecialFolder.Personal folder. Any value + of the Environment.SpecialFolder enumeration can be used (always between square + brackets) + + + + + Initializes the add-in engine. + + + Location of the add-in registry. + + + Add-ins directory. If the path is relative, it is considered to be relative + to the configDir directory. + + + Location of the add-in database. If the path is relative, it is considered to be relative + to the configDir directory. + + + The add-in engine needs to be initialized before doing any add-in operation. + Configuration information about the add-in registry will be stored in the + provided location. The add-in engine will look for add-ins in the provided + 'addinsDir' directory. Cached information about add-ins will be stored in + the 'databaseDir' directory. + + When specifying a path, it is possible to use a special folder name as root. + For example: [Personal]/.config/MyApp. In this case, [Personal] will be replaced + by the location of the Environment.SpecialFolder.Personal folder. Any value + of the Environment.SpecialFolder enumeration can be used (always between square + brackets) + + + + + Finalizes the add-in engine. + + + + + Sets the default localizer to be used for this add-in engine + + + The add-in localizer + + + + + Checks if the provided add-ins are installed, and requests the installation of those + which aren't. + + + Message to show to the user when new add-ins have to be installed. + + + List of IDs of the add-ins to be checked. + + + This method checks if the specified add-ins are installed. + If some of the add-ins are not installed, it will use + the installer assigned to the DefaultAddinInstaller property + to install them. If the installation fails, or if DefaultAddinInstaller + is not set, an exception will be thrown. + + + + + Checks if an add-in has been loaded. + + + Full identifier of the add-in. + + + True if the add-in is loaded. + + + + + Forces the loading of an add-in. + + + Status monitor to keep track of the loading process. + + + Full identifier of the add-in to load. + + + This method loads all assemblies that belong to an add-in in memory. + All add-ins on which the specified add-in depends will also be loaded. + Notice that in general add-ins don't need to be explicitely loaded using + this method, since the add-in engine will load them on demand. + + + + + Creates a new extension context. + + + The new extension context. + + + Extension contexts can be used to query the extension model using particular condition values. + + + + + Raised when there is an error while loading an add-in + + + + + Raised when an add-in is loaded + + + + + Raised when an add-in is unloaded + + + + + Gets whether the add-in engine has been initialized. + + + + + Gets the default add-in installer + + + The default installer is used by the CheckInstalled method to request + the installation of missing add-ins. + + + + + Gets the default localizer for this add-in engine + + + + + Gets the localizer for the add-in that is invoking this property + + + + + Gets a reference to the RuntimeAddin object for the add-in that is invoking this property + + + + + Gets the add-in registry bound to this add-in engine + + + + + An assembly reflector + + + This interface can be implemented to provide a custom method for getting information about assemblies. + + + + + Called to initialize the assembly reflector + + + IAssemblyLocator instance which can be used to locate referenced assemblies. + + + + + Gets a list of custom attributes + + + The custom attributes. + + + An assembly, class or class member + + + Type of the attribute to be returned. It will always be one of the attribute types + defined in Mono.Addins. + + + 'true' if inherited attributes must be returned + + + + + Gets a list of custom attributes + + + The attributes. + + + An assembly, class or class member + + + Base type of the attribute to be returned + + + 'true' if inherited attributes must be returned + + + + + Loads an assembly. + + + The loaded assembly + + + Path of the assembly. + + + + + Loads the assembly specified in an assembly reference + + + The assembly + + + An assembly reference + + + + + Gets the names of all resources embedded in an assembly + + + The names of the resources + + + An assembly + + + + + Gets the data stream of a resource + + + The stream. + + + An assembly + + + The name of a resource + + + + + Gets all types defined in an assembly + + + The types + + + An assembly + + + + + Gets all assembly references of an assembly + + + A list of assembly references + + + An assembly + + + + + Looks for a type in an assembly + + + The type. + + + An assembly + + + Name of the type + + + + + Gets a custom attribute + + + The custom attribute. + + + An assembly, class or class member + + + Base type of the attribute to be returned. It will always be one of the attribute types + defined in Mono.Addins. + + + 'true' if inherited attributes must be returned + + + + + Gets the name of a type (not including namespace) + + + The type name. + + + A type + + + + + Gets the full name of a type (including namespace) + + + The full name of the type + + + A type + + + + + Gets the assembly qualified name of a type + + + The assembly qualified type name + + + A type + + + + + Gets a list of all base types (including interfaces) of a type + + + An enumeration of the full name of all base types of the type + + + A type + + + + + Checks if a type is assignable to another type + + + 'true' if the type is assignable + + + Expected base type. + + + A type. + + + + + Gets the fields of a type + + + The fields. + + + A type + + + + + Gets the name of a field. + + + The field name. + + + A field. + + + + + Gets the full name of the type of a field + + + The full type name + + + A field. + + + + + A custom attribute + + + + + Full name of the type of the custom attribute + + + + + Declares an extension point bound to a type + + + + + Initializes a new instance + + + + + Initializes a new instance + + + Path that identifies the extension point + + + + + Path that identifies the extension point + + + + + Description of the extension point. + + + + + Element name to be used when defining an extension in an XML manifest. The default name is "Type". + + + + + Display name of the extension point. + + + + + Type of the extension node to be created for extensions + + + + + Type of the custom attribute to be used to specify metadata for the extension point + + + + + Add-in flags + + + + + No flags + + + + + The add-in can't be uninstalled + + + + + The add-in can't be disabled + + + + + The add-in is not visible to end users + + + + + A collection of extensions + + + + + Initializes a new instance of the class. + + + + + Gets the at the specified index. + + + The index. + + + + + Base class for extension nodes which create extension objects + + + + + A node of the extension model. + + + An extension node is an element registered by an add-in in an extension point. + A host can get nodes registered in an extension point using methods such as + AddinManager.GetExtensionNodes(string), which returns a collection of ExtensionNode objects. + + ExtensionNode will normally be used as a base class of more complex extension point types. + The most common subclass is Mono.Addins.TypeExtensionNode, which allows registering a class + implemented in an add-in. + + + + + Returns the child objects of a node. + + + An array of child objects. + + + This method only works if all children of this node are of type Mono.Addins.TypeExtensionNode. + The returned array is composed by all objects created by calling the + TypeExtensionNode.GetInstance() method for each node. + + + + + Returns the child objects of a node. + + + True if the method can reuse instances created in previous calls. + + + An array of child objects. + + + This method only works if all children of this node are of type Mono.Addins.TypeExtensionNode. + The returned array is composed by all objects created by calling the TypeExtensionNode.CreateInstance() + method for each node (or TypeExtensionNode.GetInstance() if reuseCachedInstance is set to true). + + + + + Returns the child objects of a node (with type check). + + + Type of the return array elements. + + + An array of child objects. + + + This method only works if all children of this node are of type Mono.Addins.TypeExtensionNode. + The returned array is composed by all objects created by calling the + TypeExtensionNode.GetInstance(Type) method for each node. + + An InvalidOperationException exception is thrown if one of the found child objects is not a + subclass of the provided type. + + + + + Returns the child objects of a node (casting to the specified type) + + + An array of child objects. + + + This method only works if all children of this node are of type Mono.Addins.TypeExtensionNode. + The returned array is composed by all objects created by calling the + TypeExtensionNode.GetInstance() method for each node. + + + + + Returns the child objects of a node (with type check). + + + Type of the return array elements. + + + True if the method can reuse instances created in previous calls. + + + An array of child objects. + + + This method only works if all children of this node are of type Mono.Addins.TypeExtensionNode. + The returned array is composed by all objects created by calling the TypeExtensionNode.CreateInstance(Type) + method for each node (or TypeExtensionNode.GetInstance(Type) if reuseCachedInstance is set to true). + + An InvalidOperationException exception will be thrown if one of the found child objects is not a subclass + of the provided type. + + + + + Returns the child objects of a node (casting to the specified type). + + + True if the method can reuse instances created in previous calls. + + + An array of child objects. + + + This method only works if all children of this node are of type Mono.Addins.TypeExtensionNode. + The returned array is composed by all objects created by calling the TypeExtensionNode.CreateInstance() + method for each node (or TypeExtensionNode.GetInstance() if reuseCachedInstance is set to true). + + + + + Reads the extension node data + + + The element containing the extension data + + + This method can be overriden to provide a custom method for reading extension node data from an element. + The default implementation reads the attributes if the element and assigns the values to the fields + and properties of the extension node that have the corresponding [NodeAttribute] decoration. + + + + + Called when the add-in that defined this extension node is actually loaded in memory. + + + + + Called when the add-in that defined this extension node is being + unloaded from memory. + + + + + Called when the children list of this node has changed. It may be due to add-ins + being loaded/unloaded, or to conditions being changed. + + + + + Called when a child node is added + + + Added node. + + + + + Called when a child node is removed + + + Removed node. + + + + + Identifier of the node. + + + It is not mandatory to specify an 'id' for a node. When none is provided, + the add-in manager will automatically generate an unique id for the node. + The ExtensionNode.HasId property can be used to know if the 'id' has been + specified by the developer or not. + + + + + Location of this node in the extension tree. + + + The node path is composed by the path of the extension point where it is defined, + the identifiers of its parent nodes, and its own identifier. + + + + + Parent node of this node. + + + + + Extension context to which this node belongs + + + + + Specifies whether the extension node has as an Id or not. + + + It is not mandatory to specify an 'id' for a node. When none is provided, + the add-in manager will automatically generate an unique id for the node. + This property will return true if an 'id' was provided for the node, and + false if the id was assigned by the add-in manager. + + + + + The add-in that registered this extension node. + + + This property provides access to the resources and types of the add-in that created this extension node. + + + + + Notifies that a child node of this node has been added or removed. + + + The first time the event is subscribed, the handler will be called for each existing node. + + + + + Child nodes of this extension node. + + + + + Gets the extension object declared by this node + + + Expected object type. An exception will be thrown if the object is not an instance of the specified type. + + + The extension object + + + The extension object is cached and the same instance will be returned at every call. + + + + + Gets the extension object declared by this node + + + The extension object + + + The extension object is cached and the same instance will be returned at every call. + + + + + Creates a new extension object + + + Expected object type. An exception will be thrown if the object is not an instance of the specified type. + + + The extension object + + + + + Creates a new extension object + + + The extension object + + + + + Declares a dependency on an add-in or add-in host + + + + + Initializes the attribute + + + Identifier of the add-in + + + Version of the add-in + + + + + Identifier of the add-in + + + + + Version of the add-in + + + + + An extension node with custom metadata + + + This is the default type for extension nodes bound to a custom extension attribute. + + + + + An extension node with custom metadata provided by an attribute + + + This interface is implemented by ExtensionNode<T> to provide non-generic access to the attribute instance. + + + + + The custom attribute containing the extension metadata + + + + + The custom attribute containing the extension metadata + + + + + Defines an add-in property + + + + + Initializes a new instance of the class. + + + Name of the property + + + Value of the property + + + + + Initializes a new instance of the class. + + + Name of the property + + + Locale of the property. It can be null if the property is not bound to a locale. + + + Value of the property + + + + + Name of the property + + + + + Locale of the property. It can be null if the property is not bound to a locale. + + + + + Value of the property + + + + + Base class for custon extension attributes. + + + Custom extension attributes can be used to declare extensions with custom metadata. + All custom extension attributes must subclass CustomExtensionAttribute. + + + + + Identifier of the node + + + + + Identifier of the node before which this node has to be placed + + + + + Identifier of the node after which this node has to be placed + + + + + Path of the extension point being extended. + + + This property is optional and useful only when there are several extension points which allow + using this custom attribute to define extensions. + + + + + The extension node bound to this attribute + + + + + The add-in that registered this extension node. + + + This property provides access to the resources and types of the add-in that created this extension node. + + + + + A localizer that supports localization of plural forms. + + + This interface can be implemented by add-in localizers which want to provide + support plural forms. + + + + + Gets a localized message which may contain plural forms. + + + The localized message. + + + Message identifier to use when the specified count is 1. + + + Default message identifier to use when the specified count is not 1. + + + The count that determines which plural form to use. + + + + + Converts message identifiers to localized messages. + + + + + Gets a localized message + + + Message identifier + + + The localized message + + + + + Gets a formatted and localized message + + + Message identifier (can contain string format placeholders) + + + Arguments for the string format operation + + + The formatted and localized string + + + + + Gets a formatted and localized message + + + Message identifier (can contain string format placeholders) + + + Arguments for the string format operation + + + The formatted and localized string + + + + + Gets a localized plural form for a message identifier + + + Message identifier for the singular form + + + Default result message for the plural form + + + Value count. Determines wether to use singular or plural form. + + + The localized message + + + + + Gets a localized and formatted plural form for a message identifier + + + Message identifier for the singular form (can contain string format placeholders) + + + Default result message for the plural form (can contain string format placeholders) + + + Value count. Determines whether to use singular or plural form. + + + Arguments for the string format operation + + + The localized message + + + + + Gets a localized and formatted plural form for a message identifier + + + Message identifier for the singular form (can contain string format placeholders) + + + Default result message for the plural form (can contain string format placeholders) + + + Value count. Determines whether to use singular or plural form. + + + Arguments for the string format operation + + + The localized message + + + + + A collection of extension point definitions. + + + + + Initializes a new instance of the class. + + + + + Gets the at the specified index. + + + The index. + + + + + Gets the with the specified path. + + + Path. + + + + + Declares a Gettext-based localizer for an add-in + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + Name of the catalog which contains the strings. + + + + + Initializes a new instance of the class. + + + Name of the catalog which contains the strings. + + + Relative path to the location of the catalog. This path must be relative to the add-in location. + + + The location path must contain a directory structure like this: + + {language-id}/LC_MESSAGES/{Catalog}.mo + + For example, the catalog for spanish strings would be located at: + + locale/es/LC_MESSAGES/some-addin.mo + + + + + Name of the catalog which contains the strings. + + + + + Relative path to the location of the catalog. This path must be relative to the add-in location. + + + When not specified, the default value of this property is 'locale'. + The location path must contain a directory structure like this: + + {language-id}/LC_MESSAGES/{Catalog}.mo + + For example, the catalog for spanish strings would be located at: + + locale/es/LC_MESSAGES/some-addin.mo + + + + + Declares an author of the add-in + + + + + Initializes the attribute + + + Name of the author + + + + + Author name + + + + + A condition type definition. + + + + + Initializes a new instance of the class. + + + + + Copies data from another condition type definition + + + Condition from which to copy + + + + + Gets or sets the identifier of the condition type + + + The identifier. + + + + + Gets or sets the name of the type that implements the condition + + + The name of the type. + + + + + Gets or sets the description of the condition. + + + The description. + + + + + An extension point definition. + + + + + Initializes a new instance of the class. + + + + + Copies another extension point. + + + Extension point from which to copy. + + + + + Adds an extension node type. + + + The extension node type. + + + Name of the node + + + Name of the type that implements the extension node. + + + This method can be used to register a new allowed node type for the extension point. + + + + + Gets or sets the path that identifies the extension point. + + + The path. + + + + + Gets or sets the display name of the extension point. + + + The name. + + + + + Gets or sets the description of the extension point. + + + The description. + + + + + Gets a list of add-ins that extend this extension point. + + + This value is only available when the add-in description is loaded from an add-in registry. + + + + + A node set which specifies the node types allowed in this extension point. + + + The node set. + + + + + Gets the conditions available in this node set. + + + The conditions. + + + + + A condition evaluator. + + + Add-ins may use conditions to register nodes in an extension point which + are only visible under some contexts. For example, an add-in registering + a custom menu option to the main menu of a sample text editor might want + to make that option visible only for some kind of files. To allow add-ins + to do this kind of check, the host application needs to define a new condition. + + + + + Evaluates the condition. + + + Condition node information. + + + 'true' if the condition is satisfied. + + + + + Notifies that the condition has changed, and that it has to be re-evaluated. + + This method must be called when there is a change in the state that determines + the result of the evaluation. When this method is called, all node conditions + depending on it are reevaluated and the corresponding events for adding or + removing extension nodes are fired. + + + + + + A list of extension nodes. + + + + + Gets an enumerator which enumerates all nodes in the list + + + + + Copies all nodes to an array + + + The target array + + + Initial index where to copy to + + + + + Returns the node in the specified index. + + + The index. + + + + + Returns the node with the specified ID. + + + An id. + + + + + Number of nodes of the collection. + + + + + A list of extension nodes. + + + + + Gets an enumerator which enumerates all nodes in the list + + + + + Copies all nodes to an array + + + The target array + + + Initial index where to copy to + + + + + Returns the node in the specified index. + + + The index. + + + + + Returns the node with the specified ID. + + + An id. + + + + + Number of nodes of the collection. + + + + + Exception thrown when the add-in engine can't find a required add-in dependency + + + + + An extension node which specifies a type. + + + This class is a kind of Mono.Addins.ExtensionNode which can be used to register + types in an extension point. This is a very common case: a host application + defines an interface, and add-ins create classes that implement that interface. + The host will define an extension point which will use TypeExtensionNode as nodetext + type. Add-ins will register the classes they implement in that extension point. + + When the nodes of an extension point are of type TypeExtensionNode it is then + possible to use query methods such as AddinManager.GetExtensionObjects(string), + which will get all nodes in the provided extension path and will create an object + for each node. + + When declaring extension nodes in an add-in manifest, the class names can be + specified using the 'class' or 'type' attribute. If none of those attributes is + provided, the class name will be taken from the 'id' attribute. + + TypeExtensionNode is the default extension type used when no type is provided + in the definition of an extension point. + + + + + Reads the extension node data + + + The element containing the extension data + + + This method can be overriden to provide a custom method for reading extension node data from an element. + The default implementation reads the attributes if the element and assigns the values to the fields + and properties of the extension node that have the corresponding [NodeAttribute] decoration. + + + + + Creates a new extension object + + + The extension object + + + + + Type of the object that this node creates + + + + + Name of the type of the object that this node creates + + The name of the type. + + + + An extension node which specifies a type with custom extension metadata + + + This is the default type for type extension nodes bound to a custom extension attribute. + + + + + The custom attribute containing the extension metadata + + + + + Describes the purpose of an add-in or add-in root + + + + + Initializes a new instance of the class. + + + Description of the add-in + + + + + Initializes a new instance of the class. + + + Description of the add-in + + + Locale of the description (for example, 'en-US', or 'en') + + + + + Description of the add-in + + + + + Locale of the description (for example, 'en-US', or 'en') + + + + + Marks an assembly as being an add-in root. + + + An add-in root is an assemly which can be extended by add-ins. + + + + + Marks an assembly as being an add-in. + + + + + Initializes an add-in marker attribute + + + + + Initializes an add-in marker attribute + + + Identifier of the add-in + + + + + Initializes an add-in marker attribute + + + Identifier of the add-in + + + Version of the add-in + + + + + Identifier of the add-in. + + + + + Version of the add-in. + + + + + Version of the add-in with which this add-in is backwards compatible. + + + + + Namespace of the add-in + + + + + Category of the add-in + + + + + Url to a web page with more information about the add-in + + + + + When set to True, the add-in will be automatically enabled after installing. + It's True by default. + + + + + Add-in flags + + + + + Initializes a new instance + + + + + Initializes a new instance + + + Identifier of the add-in root + + + + + Initializes a new instance + + + Identifier of the add-in root + + + Version of the add-in root + + + + + An extension definition. + + + An Extension is a collection of nodes which have to be registered in an extension point. + The target extension point is specified in the .Path property. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + Path that identifies the extension point being extended + + + + + Gets the object extended by this extension + + + The extended object can be an or + an . + + + This method only works when the add-in description to which the extension belongs has been + loaded from an add-in registry. + + + + + Gets the node types allowed in this extension. + + + The allowed node types. + + + This method only works when the add-in description to which the extension belongs has been + loaded from an add-in registry. + + + + + Initializes a new instance of the class. + + + XML that describes the extension. + + + + + Gets or sets the path that identifies the extension point being extended. + + + The path. + + + + + Gets the extension nodes. + + + The extension nodes. + + + + + Delegate to be used in extension point subscriptions + + + + + Delegate to be used in extension point subscriptions + + + + + Arguments for extension events. + + + + + Creates a new instance. + + + Path of the extension node that has changed. + + + + + Checks if a path has changed. + + + An extension path. + + + 'true' if the path is affected by the extension change event. + + + Checks if the specified path or any of its children paths is affected by the extension change event. + + + + + Path of the extension node that has changed. + + + + + Arguments for extension node events. + + + + + Creates a new instance + + + Type of change. + + + Node that has been added or removed. + + + + + Path of the extension that changed. + + + + + Type of change. + + + + + Node that has been added or removed. + + + + + Extension object that has been added or removed. + + + + + Type of change in an extension change event. + + + + + An extension node has been added. + + + + + An extension node has been removed. + + + + + Sets the display name of an add-in + + + + + Initializes a new instance of the class. + + + Name of the add-in + + + + + Initializes a new instance of the class. + + + Name of the add-in + + + Locale of the name (for example, 'en-US', or 'en') + + + + + Name of the add-in + + + + + Locale of the name (for example, 'en-US', or 'en') + + + + + Type of the content of a string extension node attribute + + + + + Plain text + + + + + A class name + + + + + A resource name + + + + + A file name + + + + + An add-in file system extension. + + + File system extensions can override the behavior of the add-in scanner and provide custom rules for + locating and scanning assemblies. + + + + + Called when the add-in scan is about to start + + + + + Called when the add-in scan has finished + + + + + Checks if a directory exists + + + 'true' if the directory exists + + + Directory path + + + + + Checks if a file exists + + + 'true' if the file exists + + + Path to the file + + + + + Gets the files in a directory + + + The full path of the files in the directory + + + Directory path + + + + + Gets the subdirectories of a directory + + + The subdirectories. + + + The directory + + + + + Gets the last write time of a file + + + The last write time. + + + File path. + + + + + Opens a text file + + + The text file stream + + + File path. + + + + + Opens a file. + + + The file stream. + + + The file path. + + + + + Gets an assembly reflector for a file. + + + The reflector for the file. + + + An assembly locator + + + A file path + + + + + Gets a value indicating whether this needs to be isolated from the main execution process + + + true if requires isolation; otherwise, false. + + + + + Assigns an attribute value to an extension + + + This attribute can be used together with the [Extenion] attribute to specify + a value for an attribute of the extension. + + + + + Initializes a new instance of the class. + + + Name of the attribute + + + Value of the attribute + + + + + Initializes a new instance of the class. + + + Type of the extension for which the attribute value is being set + + + Name of the attribute + + + Value of the attribute + + + + + Initializes a new instance of the class. + + + Path of the extension for which the attribute value is being set + + + Name of the attribute + + + Value of the attribute + + + + + Name of the attribute + + + + + Value of the attribute + + + + + Path of the extension for which the attribute value is being set + + + + + Type of the extension for which the attribute value is being set + + + + + An add-in installation handler + + + + + Installs a set of add-ins + + + Registry where to install + + + Message to show to the user when new add-ins have to be installed. + + + List of IDs of the add-ins to be installed. + + + + + This attribute can be applied to an ExtensionNode subclass to specify the default name and description. + + + This information will be used when an extension point does not define a name or description for a node type. + + + + + Initializes the attribute + + + + + Initializes the attribute + + + Name of the node + + + + + Initializes the attribute + + + Name of the node + + + Description of the node + + + + + Default name of the extension node + + + + + Default description of the extension node type + + + + + Type of a custom attribute which can be used to specify metadata for this extension node type + + + + + A collection of dependency definitions. + + + + + Initializes a new instance of the class. + + + + + Adds a dependency to the collection + + + The dependency to add. + + + + + Remove the specified dependency. + + + Dependency to remove. + + + + + Gets the at the specified index. + + + The idnex. + + + + + Declares a type extension. + + + When applied to a class, specifies that the class is an extension + class to be registered in a matching extension point. + + + + + Initializes a new instance of the ExtensionAttribute class. + + + + + Initializes a new instance + + + Path of the extension point. + + The path is only required if there are several extension points defined for the same type. + + + + Initializes a new instance + + + Type defining the extension point being extended + + + This constructor can be used to explicitly specify the type that defines the extension point + to be extended. By default, Mono.Addins will try to find any extension point defined in any + of the base classes or interfaces. The type parameter can be used when there is more than one + base type providing an extension point. + + + + + Path of the extension point being extended + + + The path is only required if there are several extension points defined for the same type. + + + + + Name of the extension node + + + Extension points may require extensions to use a specific node name. + This is needed when an extension point may contain several different types of nodes. + + + + + Identifier of the extension node. + + + The ExtensionAttribute.InsertAfter and ExtensionAttribute.InsertBefore + properties can be used to specify the relative location of a node. The nodes + referenced in those properties must be defined either in the add-in host + being extended, or in any add-in on which this add-in depends. + + + + + Identifier of the extension node before which this node has to be added in the extension point. + + + The ExtensionAttribute.InsertAfter and ExtensionAttribute.InsertBefore + properties can be used to specify the relative location of a node. The nodes + referenced in those properties must be defined either in the add-in host + being extended, or in any add-in on which this add-in depends. + + + + + Identifier of the extension node after which this node has to be added in the extension point. + + + + + Type defining the extension point being extended + + + This property can be used to explicitly specify the type that defines the extension point + to be extended. By default, Mono.Addins will try to find any extension point defined in any + of the base classes or interfaces. This property can be used when there is more than one + base type providing an extension point. + + + + + Run-time representation of an add-in. + + + + + Returns a string that represents the current RuntimeAddin. + + + A string that represents the current RuntimeAddin. + + + + + Gets a resource string + + + Name of the resource + + + The value of the resource string, or null if the resource can't be found. + + + The add-in engine will look for resources in the main add-in assembly and in all included add-in assemblies. + + + + + Gets a resource string + + + Name of the resource + + + When set to true, an exception will be thrown if the resource is not found. + + + The value of the resource string + + + The add-in engine will look for resources in the main add-in assembly and in all included add-in assemblies. + + + + + Gets a resource string + + + Name of the resource + + + When set to true, an exception will be thrown if the resource is not found. + + + Culture of the resource + + + The value of the resource string + + + The add-in engine will look for resources in the main add-in assembly and in all included add-in assemblies. + + + + + Gets a resource object + + + Name of the resource + + + Value of the resource + + + The add-in engine will look for resources in the main add-in assembly and in all included add-in assemblies. + + + + + Gets a resource object + + + Name of the resource + + + When set to true, an exception will be thrown if the resource is not found. + + + Value of the resource + + + The add-in engine will look for resources in the main add-in assembly and in all included add-in assemblies. + + + + + Gets a resource object + + + Name of the resource + + + When set to true, an exception will be thrown if the resource is not found. + + + Culture of the resource + + + Value of the resource + + + The add-in engine will look for resources in the main add-in assembly and in all included add-in assemblies. + + + + + Gets a type defined in the add-in + + + Full name of the type + + + A type. + + + The type will be looked up in the assemblies that implement the add-in, + and recursivelly in all add-ins on which it depends. + + This method throws an InvalidOperationException if the type can't be found. + + + + + Gets a type defined in the add-in + + + Full name of the type + + + Indicates whether the method should throw an exception if the type can't be found. + + + A + + + The type will be looked up in the assemblies that implement the add-in, + and recursivelly in all add-ins on which it depends. + + If the type can't be found, this method throw a InvalidOperationException if + 'throwIfNotFound' is 'true', or 'null' otherwise. + + + + + Creates an instance of a type defined in the add-in + + + Name of the type. + + + A new instance of the type + + + The type will be looked up in the assemblies that implement the add-in, + and recursivelly in all add-ins on which it depends. + + This method throws an InvalidOperationException if the type can't be found. + + The specified type must have a default constructor. + + + + + Creates an instance of a type defined in the add-in + + + Name of the type. + + + Indicates whether the method should throw an exception if the type can't be found. + + + A new instance of the type + + + The type will be looked up in the assemblies that implement the add-in, + and recursivelly in all add-ins on which it depends. + + If the type can't be found, this method throw a InvalidOperationException if + 'throwIfNotFound' is 'true', or 'null' otherwise. + + The specified type must have a default constructor. + + + + + Gets the path of an add-in file + + + Relative path of the file + + + Full path of the file + + + This method can be used to get the full path of a data file deployed together with the add-in. + + + + + Gets the path of an add-in file + + + Components of the file path + + + Full path of the file + + + This method can be used to get the full path of a data file deployed together with the add-in. + + + + + Gets the content of a resource + + + Name of the resource + + + Content of the resource, or null if not found + + + The add-in engine will look for resources in the main add-in assembly and in all included add-in assemblies. + + + + + Gets the content of a resource + + + Name of the resource + + + When set to true, an exception will be thrown if the resource is not found. + + + Content of the resource. + + + The add-in engine will look for resources in the main add-in assembly and in all included add-in assemblies. + + + + + Identifier of the add-in. + + + + + Version of the add-in. + + + + + Path to a directory where add-ins can store private configuration or status data + + + + + Localizer which can be used to localize strings defined in this add-in + + + + + Declares an add-in assembly import + + + An add-in may be composed by several assemblies and data files. + Assemblies must be declared in the main assembly using this attribute, or in the XML manifest. + + It is important to properly declare all files used by an add-in. + For example, when a type from the add-in is required (e.g. an ICommand implementation), + only properly declared assemblies will be checked. + This information is also used by setup tools to know exactly what needs to be packaged when creating + an add-in package, or to know what needs to be deleted when removing an add-in. + + + + + Initializes a new instance + + + Path to the assembly. Must be relative to the assembly declaring this attribute. + + + + + Path to the assembly. Must be relative to the assembly declaring this attribute. + + + + + When set to true (the default), the included assembly will be scanned + looking for extension point declarations. + + + + + Delegate to be used in add-in error subscriptions + + + + + Provides information about an add-in loading error. + + + + + Initializes a new instance of the class. + + + Error message + + + Add-in identifier. + + + Exception that caused the error. + + + + + Exception that caused the error. + + + + + Error message + + + + + An add-in. + + + + + Checks version compatibility. + + + An add-in version. + + + True if the provided version is compatible with this add-in. + + + This method checks the CompatVersion property to know if the provided version is compatible with the version of this add-in. + + + + + Returns a that represents the current . + + + A that represents the current . + + + + + Compares two add-in versions + + + -1 if v1 is greater than v2, 0 if v1 == v2, 1 if v1 less than v2 + + + A version + + + A version + + + + + Returns the identifier of an add-in + + + The full identifier. + + + Namespace of the add-in + + + Name of the add-in + + + Version of the add-in + + + + + Given a full add-in identifier, returns the namespace and name of the add-in (it removes the version number) + + + Add-in identifier. + + + + + Given a full add-in identifier, returns the version the add-in + + + The version. + + + + + Splits a full add-in identifier in name and version + + + Add-in identifier. + + + The resulting name + + + The resulting version + + + + + Full identifier of the add-in, including namespace and version. + + + + + Namespace of the add-in. + + + + + Identifier of the add-in (without namespace) + + + + + Version of the add-in + + + + + Display name of the add-in + + + + + Custom properties specified in the add-in header + + + + + Gets or sets the enabled status of the add-in. + + + This property can be used to enable or disable an add-in. + The enabled status of an add-in is stored in the add-in registry, + so when an add-in is disabled, it will be disabled for all applications + sharing the same registry. + When an add-in is enabled or disabled, the extension points currently loaded + in memory will be properly updated to include or exclude extensions from the add-in. + + + + + Returns 'true' if the add-in is installed in the user's personal folder + + + + + Path to the add-in file (it can be an assembly or a standalone XML manifest) + + + + + Description of the add-in + + + + + A collection of condition types + + + + + Initializes a new instance of the class. + + + + + Gets the at the specified index. + + + Index. + + + The condition. + + + + + A collection of module descriptions + + + + + Initializes a new instance of the class. + + + + + Gets the at the specified index. + + + The index. + + + + + A collection of node attributes + + + + + Initializes a new instance of the class. + + + + + Gets the at the specified index. + + + The index. + + + + + Definition of a dependency of an add-in on an assembly. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the full name of the assembly + + + The full name of the assembly. + + + + + Gets or sets the name of the package that provides the assembly. + + + The name of the package that provides the assembly. + + + + + Display name of the dependency + + + The name. + + + + + Declares an optional add-in module + + + + + Initializes the instance. + + + Relative path to the assembly that implements the optional module + + + + + Relative path to the assembly that implements the optional module + + + + + An add-in registry. + + + An add-in registry is a data structure used by the add-in engine to locate add-ins to load. + + A registry can be configured to look for add-ins in several directories. However, add-ins + copied to those directories won't be detected until an explicit add-in scan is requested. + The registry can be updated by an application by calling Registry.Update(), or by a user by + running the 'mautil' add-in setup tool. + + The registry has information about the location of every add-in and a timestamp of the last + check, so the Update method will only scan new or modified add-ins. An application can + add a call to Registry.Update() in the Main method to detect all new add-ins every time the + app is started. + + Every add-in added to the registry is parsed and validated, and if there is any error it + will be rejected. The registry is also in charge of scanning the add-in assemblies and look + for extensions and other information declared using custom attributes. That information is + merged with the manifest information (if there is one) to create a complete add-in + description ready to be used at run-time. + + Mono.Addins allows sharing an add-in registry among several applications. In this context, + all applications sharing the registry share the same extension point model, and it is + possible to implement add-ins which extend several hosts. + + + + + Initializes a new instance. + + + Location of the add-in registry. + + + Creates a new add-in registry located in the provided path. + The add-in registry will look for add-ins in an 'addins' + subdirectory of the provided registryPath. + + When specifying a path, it is possible to use a special folder name as root. + For example: [Personal]/.config/MyApp. In this case, [Personal] will be replaced + by the location of the Environment.SpecialFolder.Personal folder. Any value + of the Environment.SpecialFolder enumeration can be used (always between square + brackets) + + + + + Initializes a new instance. + + + Location of the add-in registry. + + + Location of the application. + + + Creates a new add-in registry located in the provided path. + The add-in registry will look for add-ins in an 'addins' + subdirectory of the provided registryPath. + + When specifying a path, it is possible to use a special folder name as root. + For example: [Personal]/.config/MyApp. In this case, [Personal] will be replaced + by the location of the Environment.SpecialFolder.Personal folder. Any value + of the Environment.SpecialFolder enumeration can be used (always between square + brackets) + + + + + Initializes a new instance of the class. + + + Location of the add-in registry. + + + Location of the application. + + + Add-ins directory. If the path is relative, it is considered to be relative + to the configDir directory. + + + Creates a new add-in registry located in the provided path. + Configuration information about the add-in registry will be stored in + 'registryPath'. The add-in registry will look for add-ins in the provided + 'addinsDir' directory. + + When specifying a path, it is possible to use a special folder name as root. + For example: [Personal]/.config/MyApp. In this case, [Personal] will be replaced + by the location of the Environment.SpecialFolder.Personal folder. Any value + of the Environment.SpecialFolder enumeration can be used (always between square + brackets) + + + + + Initializes a new instance of the class. + + + Location of the add-in registry. + + + Location of the application. + + + Add-ins directory. If the path is relative, it is considered to be relative + to the configDir directory. + + + Location of the add-in database. If the path is relative, it is considered to be relative + to the configDir directory. + + + Creates a new add-in registry located in the provided path. + Configuration information about the add-in registry will be stored in + 'registryPath'. The add-in registry will look for add-ins in the provided + 'addinsDir' directory. Cached information about add-ins will be stored in + the 'databaseDir' directory. + + When specifying a path, it is possible to use a special folder name as root. + For example: [Personal]/.config/MyApp. In this case, [Personal] will be replaced + by the location of the Environment.SpecialFolder.Personal folder. Any value + of the Environment.SpecialFolder enumeration can be used (always between square + brackets) + + + + + Gets the global registry. + + + The global registry + + + The global add-in registry is created in "~/.config/mono.addins", + and it is the default registry used when none is specified. + + + + + Disposes the add-in engine. + + + + + Returns an add-in from the registry. + + + Identifier of the add-in. + + + The add-in, or 'null' if not found. + + + The add-in identifier may optionally include a version number, for example: "TextEditor.Xml,1.2" + + + + + Returns an add-in from the registry. + + + Identifier of the add-in. + + + 'true' if the exact add-in version must be found. + + + The add-in, or 'null' if not found. + + + The add-in identifier may optionally include a version number, for example: "TextEditor.Xml,1.2". + In this case, if the exact version is not found and exactVersionMatch is 'false', it will + return one than is compatible with the required version. + + + + + Gets all add-ins or add-in roots registered in the registry. + + + The addins. + + + Flags. + + + + + Gets all add-ins registered in the registry. + + + Add-ins registered in the registry. + + + + + Gets all add-in roots registered in the registry. + + + Descriptions of all add-in roots. + + + + + Loads an add-in description + + + Progress tracker. + + + Name of the file to load + + + An add-in description + + + This method loads an add-in description from a file. The file can be an XML manifest or an + assembly that implements an add-in. + + + + + Reads an XML add-in manifest + + + Path to the XML file + + + An add-in description + + + + + Reads an XML add-in manifest + + + Reader that contains the XML + + + Base path to use to discover add-in files + + + An add-in description + + + + + Checks whether an add-in is enabled. + + + Identifier of the add-in. + + + 'true' if the add-in is enabled. + + + + + Enables an add-in. + + + Identifier of the add-in + + + If the enabled add-in depends on other add-ins which are disabled, + those will automatically be enabled too. + + + + + Disables an add-in. + + + Identifier of the add-in. + + + When an add-in is disabled, all extension points it defines will be ignored + by the add-in engine. Other add-ins which depend on the disabled add-in will + also automatically be disabled. + + + + + Registers a set of add-ins for uninstallation. + + + Identifier of the add-in + + + Files to be uninstalled + + + This method can be used to instruct the add-in manager to uninstall + an add-in the next time the registry is updated. This is useful + when an add-in manager can't delete an add-in because if it is + loaded. + + + + + Determines whether an add-in is registered for uninstallation + + + true if the add-in is registered for uninstallation + + + Identifier of the add-in + + + + + Internal use only + + + + + Resets the configuration files of the registry + + + + + Updates the add-in registry. + + + This method must be called after modifying, installing or uninstalling add-ins. + + When calling Update, every add-in added to the registry is parsed and validated, + and if there is any error it will be rejected. It will also cache add-in information + needed at run-time. + + If during the update operation the registry finds new add-ins or detects that some + add-ins have been deleted, the loaded extension points will be updated to include + or exclude extension nodes from those add-ins. + + + + + Updates the add-in registry. + + + Progress monitor to keep track of the update operation. + + + This method must be called after modifying, installing or uninstalling add-ins. + + When calling Update, every add-in added to the registry is parsed and validated, + and if there is any error it will be rejected. It will also cache add-in information + needed at run-time. + + If during the update operation the registry finds new add-ins or detects that some + add-ins have been deleted, the loaded extension points will be updated to include + or exclude extension nodes from those add-ins. + + + + + Regenerates the cached data of the add-in registry. + + + Progress monitor to keep track of the rebuild operation. + + + + + Registers an extension. Only AddinFileSystemExtension extensions are supported right now. + + + The extension to register + + + + + Unregisters an extension. + + + The extension to unregister + + + + + Location of the add-in registry. + + + + + Gets a value indicating whether there are pending add-ins to be uninstalled installed + + + + + Gets the default add-ins folder of the registry. + + + For every add-in registry there is an add-in folder where the registry will look for add-ins by default. + This folder is an "addins" subdirectory of the directory where the repository is located. In most cases, + this folder will only contain .addins files referencing other more convenient locations for add-ins. + + + + + Addin search flags. + + + + + Add-ins are included in the search + + + + + Add-in roots are included in the search + + + + + Both add-in and add-in roots are included in the search + + + + + Only the latest version of every add-in or add-in root is included in the search + + + + + An IProgressStatus class which writes output to the console. + + + + + Progress status listener. + + + + + Sets the description of the current operation. + + + A message + + + This method is called by the add-in engine to show a description of the operation being monitorized. + + + + + Sets the progress of the operation. + + + A number between 0 and 1. 0 means no progress, 1 means operation completed. + + + This method is called by the add-in engine to show the progress of the operation being monitorized. + + + + + Writes text to the log. + + + Message to write + + + + + Reports a warning. + + + Warning message + + + This method is called by the add-in engine to report a warning in the operation being monitorized. + + + + + Reports an error. + + + Error message + + + Exception that caused the error. It can be null. + + + This method is called by the add-in engine to report an error occurred while executing the operation being monitorized. + + + + + Cancels the operation being montorized. + + + + + Log level requested by the user: 0: no log, 1: normal log, >1 verbose log + + + + + Returns True when the user requested to cancel this operation + + + + + Initializes a new instance + + + Set to true to enabled verbose log + + + + + Initializes a new instance + + + Verbosity level. 0: not verbose, 1: normal, >1 extra verbose + + + + + Sets the description of the current operation. + + + A message + + + This method is called by the add-in engine to show a description of the operation being monitorized. + + + + + Sets the progress of the operation. + + + A number between 0 and 1. 0 means no progress, 1 means operation completed. + + + This method is called by the add-in engine to show the progress of the operation being monitorized. + + + + + Writes text to the log. + + + Message to write + + + + + Reports a warning. + + + Warning message + + + This method is called by the add-in engine to report a warning in the operation being monitorized. + + + + + Reports an error. + + + Error message + + + Exception that caused the error. It can be null. + + + This method is called by the add-in engine to report an error occurred while executing the operation being monitorized. + + + + + Cancels the operation being montorized. + + + + + Returns True when the user requested to cancel this operation + + + + + Log level requested by the user: 0: no log, 1: normal log, >1 verbose log + + + + + Definition of a dependency of an add-in on another add-in. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + Full identifier of the add-in (includes version) + + + + + Initializes a new instance of the class. + + + Identifier of the add-in. + + + Version of the add-in. + + + + + Gets the full addin identifier. + + + The full addin identifier. + + + Includes namespace and version number. For example: MonoDevelop.TextEditor,1.0 + + + + + Gets or sets the addin identifier. + + + The addin identifier. + + + + + Gets or sets the version. + + + The version. + + + + + Display name of the dependency. + + + The name. + + + + + Indicates that a field or property is bound to a node attribute + + + + + Initializes a new instance + + + + + Initializes a new instance + + + XML name of the attribute. + + + + + Initializes a new instance + + + XML name of the attribute. + + + Description of the attribute. + + + + + Initializes a new instance + + + XML name of the attribute. + + + Indicates whether the attribute is required or not. + + + + + Initializes a new instance + + + XML name of the attribute. + + + Indicates whether the attribute is required or not. + + + Description of the attribute. + + + + + Initializes a new instance + + + XML name of the attribute. + + + Type of the extension node attribute. + + + The type of the attribute is only required when applying this attribute at class level. + It is not required when it is applied to a field, since the attribute type will be the type of the field. + + + + + Initializes a new instance + + + XML name of the attribute. + + + Type of the extension node attribute. + + + Description of the attribute. + + + The type of the attribute is only required when applying this attribute at class level. + It is not required when it is applied to a field, since the attribute type will be the type of the field. + + + + + Initializes a new instance + + + XML name of the attribute. + + + Type of the extension node attribute. + + + Indicates whether the attribute is required or not. + + + The type of the attribute is only required when applying this attribute at class level. + It is not required when it is applied to a field, since the attribute type will be the type of the field. + + + + + Initializes a new instance + + + XML name of the attribute. + + + Type of the extension node attribute. + + + Indicates whether the attribute is required or not. + + + Description of the attribute. + + + The type of the attribute is only required when applying this attribute at class level. + It is not required when it is applied to a field, since the attribute type will be the type of the field. + + + + + XML name of the attribute. + + + If the name is not specified, the field name to which the [NodeAttribute] + is applied will be used as name. Providing a name is mandatory when applying + [NodeAttribute] at class level. + + + + + Indicates whether the attribute is required or not. + + + + + Type of the extension node attribute. + + + To be used only when applying [NodeAttribute] at class level. It is not required when it + is applied to a field, since the attribute type will be the type of the field. + + + + + Description of the attribute. + + + To be used in the extension point documentation. + + + + + When set to True, the value of the field or property is expected to be a string id which + will be localized by the add-in engine + + + + + Gets or sets the type of the content. + + + Allows specifying the type of the content of a string attribute. + This value is for documentation purposes only. + + + + + A collection of add-in properties + + + + + Gets the value of a property + + + The property value. + + + Name of the property. + + + If the property is localized, it will return the value for the current language if exists, or the + default value if it doesn't. + + + + + Gets the value of a property + + + The property value. + + + Name of the property. + + + Locale for which the value must be returned. + + + + + Sets the value of a property + + + Name of the property + + + New value. + + + + + Sets the value of a property for a specific locale + + + Name of the property. + + + New value. + + + Locale of the property to be set. + + + + + Removes a property. + + + Name of the property. + + + This method only removes properties which have no locale set. + + + + + Removes a property with a specified locale + + + Name of the property + + + Locale of the property + + + + + Declares an add-in file import + + + An add-in may be composed by several assemblies and data files. + Data files must be declared in the main assembly using this attribute, or in the XML manifest. + + It is important to properly declare all files used by an add-in. + This information is used by setup tools to know exactly what needs to be packaged when creating + an add-in package, or to know what needs to be deleted when removing an add-in. + + + + + Initializes a new instance + + + Path to the file. Must be relative to the assembly declaring this attribute. + + + + + Path to the file. Must be relative to the assembly declaring this attribute. + + + + + A collection of node set identifiers + + + + + Gets the collection enumerator. + + + The enumerator. + + + + + Add the specified node set identifier. + + + Node set identifier. + + + + + Remove a node set identifier + + + Node set identifier. + + + + + Clears the collection + + + + + Checks if the specified identifier is present in the collection + + + true if the node set identifier is present. + + + + + Returns the index of the specified node set identifier + + + The index. + + + A node set identifier. + + + + + Gets the node set identifier at the specified index. + + + An index. + + + + + Gets the item count. + + + The count. + + + + + A module definition. + + + Optional modules can be used to declare extensions which will be registered only if some + specified add-in dependencies can be satisfied. + + + + + Initializes a new instance of the class. + + + + + Checks if this module depends on the specified add-in. + + + true if there is a dependency. + + + Identifier of the add-in + + + + + Adds an extension node to the module. + + + The extension node. + + + Path that identifies the extension point. + + + Node name. + + + This method creates a new Extension object for the provided path if none exist. + + + + + Gets an extension instance. + + + The extension instance. + + + Path that identifies the extension point that the extension extends. + + + This method creates a new Extension object for the provided path if none exist. + + + + + Adds an add-in reference (there is a typo in the method name) + + + Identifier of the add-in. + + + Version of the add-in. + + + + + Gets the list of paths to be ignored by the add-in scanner. + + + + + Gets all external files + + + All files. + + + External files are data files and assemblies explicitly referenced in the Runtime section of the add-in manifest. + + + + + Gets the list of external assemblies used by this module. + + + + + Gets the list of external data files used by this module + + + + + Gets the dependencies of this module + + + + + Gets the extensions of this module + + + + + Addin category attribute. + + + + + Initializes the attribute + + + The category to which the add-in belongs + + + + + The category to which the add-in belongs + + + + + A collection of node types. + + + + + Initializes a new instance of the class. + + + + + Gets the at the specified index. + + + The index. + + + + + Gets the with the specified id. + + + Identifier. + + + + + Description of the attribute of a node type. + + + + + Initializes a new instance of the class. + + + + + Copies data from another node attribute. + + + The attribute from which to copy. + + + + + Gets or sets the name of the attribute. + + + The name. + + + + + Gets or sets a value indicating whether this is required. + + + true if required; otherwise, false. + + + + + Gets or sets a value indicating whether this is localizable. + + + true if localizable; otherwise, false. + + + + + Gets or sets the type of the attribute. + + + The type. + + + + + Gets or sets the description of the attribute. + + + The description. + + + + + Gets or sets the type of the content. + + + Allows specifying the type of the content of a string attribute. + The value of this property is only informative, and it doesn't + have any effect on how add-ins are packaged or loaded. + + + + diff --git a/bin/Npgsql.xml b/bin/Npgsql.xml new file mode 100644 index 0000000..a51252d --- /dev/null +++ b/bin/Npgsql.xml @@ -0,0 +1,4120 @@ + + + + Npgsql + + + + + This class represents a parameter to a command that will be sent to server + + + + + Initializes a new instance of the NpgsqlParameter class. + + + + + Initializes a new instance of the NpgsqlParameter + class with the parameter m_Name and a value of the new NpgsqlParameter. + + The m_Name of the parameter to map. + An Object that is the value of the NpgsqlParameter. + +

When you specify an Object + in the value parameter, the DbType is + inferred from the .NET Framework type of the Object.

+

When using this constructor, you must be aware of a possible misuse of the constructor which takes a DbType parameter. + This happens when calling this constructor passing an int 0 and the compiler thinks you are passing a value of DbType. + Use Convert.ToInt32(value) for example to have compiler calling the correct constructor.

+
+
+ + + Initializes a new instance of the NpgsqlParameter + class with the parameter m_Name and the data type. + + The m_Name of the parameter to map. + One of the DbType values. + + + + Initializes a new instance of the NpgsqlParameter + class with the parameter m_Name, the DbType, and the size. + + The m_Name of the parameter to map. + One of the DbType values. + The length of the parameter. + + + + Initializes a new instance of the NpgsqlParameter + class with the parameter m_Name, the DbType, the size, + and the source column m_Name. + + The m_Name of the parameter to map. + One of the DbType values. + The length of the parameter. + The m_Name of the source column. + + + + Initializes a new instance of the NpgsqlParameter + class with the parameter m_Name, the DbType, the size, + the source column m_Name, a ParameterDirection, + the precision of the parameter, the scale of the parameter, a + DataRowVersion to use, and the + value of the parameter. + + The m_Name of the parameter to map. + One of the DbType values. + The length of the parameter. + The m_Name of the source column. + One of the ParameterDirection values. + true if the value of the field can be null, otherwise false. + The total number of digits to the left and right of the decimal point to which + Value is resolved. + The total number of decimal places to which + Value is resolved. + One of the DataRowVersion values. + An Object that is the value + of the NpgsqlParameter. + + + + Creates a new NpgsqlParameter that + is a copy of the current instance. + + A new NpgsqlParameter that is a copy of this instance. + + + + Gets or sets the maximum number of digits used to represent the + Value property. + + The maximum number of digits used to represent the + Value property. + The default value is 0, which indicates that the data provider + sets the precision for Value. + + + + Gets or sets the number of decimal places to which + Value is resolved. + + The number of decimal places to which + Value is resolved. The default is 0. + + + + Gets or sets the maximum size, in bytes, of the data within the column. + + The maximum size, in bytes, of the data within the column. + The default value is inferred from the parameter value. + + + + Gets or sets the DbType of the parameter. + + One of the DbType values. The default is String. + + + + Gets or sets the DbType of the parameter. + + One of the DbType values. The default is String. + + + + Gets or sets a value indicating whether the parameter is input-only, + output-only, bidirectional, or a stored procedure return value parameter. + + One of the ParameterDirection + values. The default is Input. + + + + Gets or sets a value indicating whether the parameter accepts null values. + + true if null values are accepted; otherwise, false. The default is false. + + + + Gets or sets the m_Name of the NpgsqlParameter. + + The m_Name of the NpgsqlParameter. + The default is an empty string. + + + + The m_Name scrubbed of any optional marker + + + + + Gets or sets the m_Name of the source column that is mapped to the + DataSet and used for loading or + returning the Value. + + The m_Name of the source column that is mapped to the + DataSet. The default is an empty string. + + + + Gets or sets the DataRowVersion + to use when loading Value. + + One of the DataRowVersion values. + The default is Current. + + + + Gets or sets the value of the parameter. + + An Object that is the value of the parameter. + The default value is null. + + + + Gets or sets the value of the parameter. + + An Object that is the value of the parameter. + The default value is null. + + + + This class represents the Parse message sent to PostgreSQL + server. + + + + + + For classes representing messages sent from the client to the server. + + + + + Writes given objects into a stream for PostgreSQL COPY in default copy format (not CSV or BINARY). + + + + + Return an exact copy of this NpgsqlConnectionString. + + + + + This function will set value for known key, both private member and base[key]. + + + + + + + The function will modify private member only, not base[key]. + + + + + + + Clear the member and assign them to the default value. + + + + + Compatibilty version. When possible, behaviour caused by breaking changes will be preserved + if this version is less than that where the breaking change was introduced. + + + + + Case insensative accessor for indivual connection string values. + + + + + Common base class for all derived MD5 implementations. + + + + + Called from constructor of derived class. + + + + + Finalizer for HashAlgorithm + + + + + Computes the entire hash of all the bytes in the byte array. + + + + + When overridden in a derived class, drives the hashing function. + + + + + + + + When overridden in a derived class, this pads and hashes whatever data might be left in the buffers and then returns the hash created. + + + + + When overridden in a derived class, initializes the object to prepare for hashing. + + + + + Used for stream chaining. Computes hash as data passes through it. + + The buffer from which to grab the data to be copied. + The offset into the input buffer to start reading at. + The number of bytes to be copied. + The buffer to write the copied data to. + At what point in the outputBuffer to write the data at. + + + + Used for stream chaining. Computes hash as data passes through it. Finishes off the hash. + + The buffer from which to grab the data to be copied. + The offset into the input buffer to start reading at. + The number of bytes to be copied. + + + + Get whether or not the hash can transform multiple blocks at a time. + Note: MUST be overriden if descendant can transform multiple block + on a single call! + + + + + Gets the previously computed hash. + + + + + Returns the size in bits of the hash. + + + + + Must be overriden if not 1 + + + + + Must be overriden if not 1 + + + + + Called from constructor of derived class. + + + + + Creates the default derived class. + + + + + Given a join expression and a projection, fetch all columns in the projection + that reference columns in the join. + + + + + Given an InputExpression append all from names (including nested joins) to the list. + + + + + Get new ColumnExpression that will be used in projection that had it's existing columns moved. + These should be simple references to the inner column + + + + + Every property accessed in the list of columns must be adjusted for a new scope + + + + + This class provides many util methods to handle + reading and writing of PostgreSQL protocol messages. + + + + + This method takes a ProtocolVersion and returns an integer + version number that the Postgres backend will recognize in a + startup packet. + + + + + This method takes a version string as returned by SELECT VERSION() and returns + a valid version string ("7.2.2" for example). + This is only needed when running protocol version 2. + This does not do any validity checks. + + + + + This method gets a C NULL terminated string from the network stream. + It keeps reading a byte in each time until a NULL byte is returned. + It returns the resultant string of bytes read. + This string is sent from backend. + + + + + Reads requested number of bytes from stream with retries until Stream.Read returns 0 or count is reached. + + Stream to read + byte buffer to fill + starting position to fill the buffer + number of bytes to read + The number of bytes read. May be less than count if no more bytes are available. + + + + This method writes a C NULL terminated string to the network stream. + It appends a NULL terminator to the end of the String. + + + This method writes a C NULL terminated string to the network stream. + It appends a NULL terminator to the end of the String. + + + + + This method writes a set of bytes to the stream. It also enables logging of them. + + + + + This method writes a C NULL terminated string limited in length to the + backend server. + It pads the string with null bytes to the size specified. + + + + + Write a 32-bit integer to the given stream in the correct byte order. + + + + + Read a 32-bit integer from the given stream in the correct byte order. + + + + + Write a 16-bit integer to the given stream in the correct byte order. + + + + + Read a 16-bit integer from the given stream in the correct byte order. + + + + + Represent the frontend/backend protocol version. + + + + + Represent the backend server version. + As this class offers no functionality beyond that offered by it has been + deprecated in favour of that class. + + + + + + Returns the string representation of this version in three place dot notation (Major.Minor.Patch). + + + + + Server version major number. + + + + + Server version minor number. + + + + + Server version patch level number. + + + + + Represents a PostgreSQL COPY TO STDOUT operation with a corresponding SQL statement + to execute against a PostgreSQL database + and an associated stream used to write results to (if provided by user) + or for reading the results (when generated by driver). + Eg. new NpgsqlCopyOut("COPY (SELECT * FROM mytable) TO STDOUT", connection, streamToWrite).Start(); + + + + + Creates NpgsqlCommand to run given query upon Start(), after which CopyStream provides data from database as requested in the query. + + + + + Given command is run upon Start(), after which CopyStream provides data from database as requested in the query. + + + + + Given command is executed upon Start() and all requested copy data is written to toStream immediately. + + + + + Returns true if this operation is currently active and field at given location is in binary format. + + + + + Command specified upon creation is executed as a non-query. + If CopyStream is set upon creation, all copy data from server will be written to it, and operation will be finished immediately. + Otherwise the CopyStream member can be used for reading copy data from server until no more data is available. + + + + + Flush generated CopyStream at once. Effectively reads and discard all the rest of copy data from server. + + + + + Returns true if the connection is currently reserved for this operation. + + + + + The stream provided by user or generated upon Start() + + + + + The Command used to execute this copy operation. + + + + + Returns true if this operation is currently active and in binary format. + + + + + Returns number of fields if this operation is currently active, otherwise -1 + + + + + Faster alternative to using the generated CopyStream. + + + + + This class manages all connector objects, pooled AND non-pooled. + + + + Unique static instance of the connector pool + mamager. + + + Map of index to unused pooled connectors, avaliable to the + next RequestConnector() call. + This hashmap will be indexed by connection string. + This key will hold a list of queues of pooled connectors available to be used. + + + Timer for tracking unused connections in pools. + + + + Searches the shared and pooled connector lists for a + matching connector object or creates a new one. + + The NpgsqlConnection that is requesting + the connector. Its ConnectionString will be used to search the + pool for available connectors. + A connector object. + + + + Find a pooled connector. Handle locking and timeout here. + + + + + Find a pooled connector. Handle shared/non-shared here. + + + + + Releases a connector, possibly back to the pool for future use. + + + Pooled connectors will be put back into the pool if there is room. + Shared connectors should just have their use count decremented + since they always stay in the shared pool. + + The connector to release. + + + + Release a pooled connector. Handle locking here. + + + + + Release a pooled connector. Handle shared/non-shared here. + + + + + Create a connector without any pooling functionality. + + + + + Find an available pooled connector in the non-shared pool, or create + a new one if none found. + + + + + This method is only called when NpgsqlConnection.Dispose(false) is called which means a + finalization. This also means, an NpgsqlConnection was leak. We clear pool count so that + client doesn't end running out of connections from pool. When the connection is finalized, its underlying + socket is closed. + + + + + Close the connector. + + + Connector to release + + + + Put a pooled connector into the pool queue. + + Connector to pool + + + + A queue with an extra Int32 for keeping track of busy connections. + + + + + Connections available to the end user + + + + + Connections currently in use + + + + + This class represents a BackEndKeyData message received + from PostgreSQL + + + + + Used when a connection is closed + + + + + Summary description for NpgsqlQuery + + + + + Represents the method that handles the Notice events. + + A NpgsqlNoticeEventArgs that contains the event data. + + + + Represents the method that handles the Notification events. + + The source of the event. + A NpgsqlNotificationEventArgs that contains the event data. + + + + This class represents a connection to a + PostgreSQL server. + + + + + Initializes a new instance of the + NpgsqlConnection class. + + + + + Initializes a new instance of the + NpgsqlConnection class + and sets the ConnectionString. + + The connection used to open the PostgreSQL database. + + + + Begins a database transaction with the specified isolation level. + + The isolation level under which the transaction should run. + An DbTransaction + object representing the new transaction. + + Currently the IsolationLevel ReadCommitted and Serializable are supported by the PostgreSQL backend. + There's no support for nested transactions. + + + + + Begins a database transaction. + + A NpgsqlTransaction + object representing the new transaction. + + Currently there's no support for nested transactions. + + + + + Begins a database transaction with the specified isolation level. + + The isolation level under which the transaction should run. + A NpgsqlTransaction + object representing the new transaction. + + Currently the IsolationLevel ReadCommitted and Serializable are supported by the PostgreSQL backend. + There's no support for nested transactions. + + + + + Opens a database connection with the property settings specified by the + ConnectionString. + + + + + This method changes the current database by disconnecting from the actual + database and connecting to the specified. + + The name of the database to use in place of the current database. + + + + Releases the connection to the database. If the connection is pooled, it will be + made available for re-use. If it is non-pooled, the actual connection will be shutdown. + + + + + Creates and returns a DbCommand + object associated with the IDbConnection. + + A DbCommand object. + + + + Creates and returns a NpgsqlCommand + object associated with the NpgsqlConnection. + + A NpgsqlCommand object. + + + + Releases all resources used by the + NpgsqlConnection. + + true when called from Dispose(); + false when being called from the finalizer. + + + + Create a new connection based on this one. + + A new NpgsqlConnection object. + + + + Create a new connection based on this one. + + A new NpgsqlConnection object. + + + + Default SSL CertificateSelectionCallback implementation. + + + + + Default SSL CertificateValidationCallback implementation. + + + + + Default SSL PrivateKeySelectionCallback implementation. + + + + + Default SSL ProvideClientCertificatesCallback implementation. + + + + + Write each key/value pair in the connection string to the log. + + + + + Returns the supported collections + + + + + Returns the schema collection specified by the collection name. + + The collection name. + The collection specified. + + + + Returns the schema collection specified by the collection name filtered by the restrictions. + + The collection name. + + The restriction values to filter the results. A description of the restrictions is contained + in the Restrictions collection. + + The collection specified. + + + + Occurs on NoticeResponses from the PostgreSQL backend. + + + + + Occurs on NotificationResponses from the PostgreSQL backend. + + + + + Called to provide client certificates for SSL handshake. + + + + + Mono.Security.Protocol.Tls.CertificateSelectionCallback delegate. + + + + + Mono.Security.Protocol.Tls.CertificateValidationCallback delegate. + + + + + Mono.Security.Protocol.Tls.PrivateKeySelectionCallback delegate. + + + + + Gets or sets the string used to connect to a PostgreSQL database. + Valid values are: +
    +
  • + Server: Address/Name of Postgresql Server; +
  • +
  • + Port: Port to connect to; +
  • +
  • + Protocol: Protocol version to use, instead of automatic; Integer 2 or 3; +
  • +
  • + Database: Database name. Defaults to user name if not specified; +
  • +
  • + User Id: User name; +
  • +
  • + Password: Password for clear text authentication; +
  • +
  • + SSL: True or False. Controls whether to attempt a secure connection. Default = False; +
  • +
  • + Pooling: True or False. Controls whether connection pooling is used. Default = True; +
  • +
  • + MinPoolSize: Min size of connection pool; +
  • +
  • + MaxPoolSize: Max size of connection pool; +
  • +
  • + Timeout: Time to wait for connection open in seconds. Default is 15. +
  • +
  • + CommandTimeout: Time to wait for command to finish execution before throw an exception. In seconds. Default is 20. +
  • +
  • + Sslmode: Mode for ssl connection control. Can be Prefer, Require, Allow or Disable. Default is Disable. Check user manual for explanation of values. +
  • +
  • + ConnectionLifeTime: Time to wait before closing unused connections in the pool in seconds. Default is 15. +
  • +
  • + SyncNotification: Specifies if Npgsql should use synchronous notifications. +
  • +
  • + SearchPath: Changes search path to specified and public schemas. +
  • +
+
+ The connection string that includes the server name, + the database name, and other parameters needed to establish + the initial connection. The default value is an empty string. + +
+ + + Backend server host name. + + + + + Backend server port. + + + + + If true, the connection will attempt to use SSL. + + + + + Gets the time to wait while trying to establish a connection + before terminating the attempt and generating an error. + + The time (in seconds) to wait for a connection to open. The default value is 15 seconds. + + + + Gets the time to wait while trying to execute a command + before terminating the attempt and generating an error. + + The time (in seconds) to wait for a command to complete. The default value is 20 seconds. + + + + Gets the time to wait before closing unused connections in the pool if the count + of all connections exeeds MinPoolSize. + + + If connection pool contains unused connections for ConnectionLifeTime seconds, + the half of them will be closed. If there will be unused connections in a second + later then again the half of them will be closed and so on. + This strategy provide smooth change of connection count in the pool. + + The time (in seconds) to wait. The default value is 15 seconds. + + + + Gets the name of the current database or the database to be used after a connection is opened. + + The name of the current database or the name of the database to be + used after a connection is opened. The default value is the empty string. + + + + Whether datareaders are loaded in their entirety (for compatibility with earlier code). + + + + + Gets the database server name. + + + + + Gets flag indicating if we are using Synchronous notification or not. + The default value is false. + + + + + Gets the current state of the connection. + + A bitwise combination of the ConnectionState values. The default is Closed. + + + + Gets whether the current state of the connection is Open or Closed + + ConnectionState.Open or ConnectionState.Closed + + + + Version of the PostgreSQL backend. + This can only be called when there is an active connection. + + + + + Protocol version in use. + This can only be called when there is an active connection. + + + + + Process id of backend server. + This can only be called when there is an active connection. + + + + + The connector object connected to the backend. + + + + + Gets the NpgsqlConnectionStringBuilder containing the parsed connection string values. + + + + + User name. + + + + + Password. + + + + + Determine if connection pooling will be used for this connection. + + + + + This class represents the CancelRequest message sent to PostgreSQL + server. + + + + + + + + + + + + + + + + + + + A time period expressed in 100ns units. + + + A time period expressed in a + + + Number of 100ns units. + + + Number of seconds. + + + Number of milliseconds. + + + Number of milliseconds. + + + Number of milliseconds. + + + A d with the given number of ticks. + + + A d with the given number of microseconds. + + + A d with the given number of milliseconds. + + + A d with the given number of seconds. + + + A d with the given number of minutes. + + + A d with the given number of hours. + + + A d with the given number of days. + + + A d with the given number of months. + + + An whose values are the sums of the two instances. + + + An whose values are the differences of the two instances. + + + An whose value is the negated value of this instance. + + + An whose value is the absolute value of this instance. + + + + An based on this one, but with any days converted to multiples of ±24hours. + + + + An based on this one, but with any months converted to multiples of ±30days. + + + + An based on this one, but with any months converted to multiples of ±30days and then any days converted to multiples of ±24hours; + + + + An eqivalent, canonical, . + + + An equivalent . + + + + + + An signed integer. + + + + The argument is not an . + + + The string was not in a format that could be parsed to produce an . + + + true if the parsing succeeded, false otherwise. + + + The representation. + + + An whose values are the sum of the arguments. + + + An whose values are the difference of the arguments + + + true if the two arguments are exactly the same, false otherwise. + + + false if the two arguments are exactly the same, true otherwise. + + + true if the first is less than second, false otherwise. + + + true if the first is less than or equivalent to second, false otherwise. + + + true if the first is greater than second, false otherwise. + + + true if the first is greater than or equivalent to the second, false otherwise. + + + The argument. + + + The negation of the argument. + + + + + + + + + + + + + + + + + + + + This time, normalised + + + + + + + + + This time, normalised + + + An integer which is 0 if they are equal, < 0 if this is the smaller and > 0 if this is the larger. + + + + + + + + + A class to handle everything associated with SSPI authentication + + + + + Simplified SecBufferDesc struct with only one SecBuffer + + + + + This class represents the Parse message sent to PostgreSQL + server. + + + + + + EventArgs class to send Notice parameters, which are just NpgsqlError's in a lighter context. + + + + + Notice information. + + + + + This class represents the ErrorResponse and NoticeResponse + message sent from PostgreSQL server. + + + + + Return a string representation of this error object. + + + + + Severity code. All versions. + + + + + Error code. PostgreSQL 7.4 and up. + + + + + Terse error message. All versions. + + + + + Detailed error message. PostgreSQL 7.4 and up. + + + + + Suggestion to help resolve the error. PostgreSQL 7.4 and up. + + + + + Position (one based) within the query string where the error was encounterd. PostgreSQL 7.4 and up. + + + + + Position (one based) within the query string where the error was encounterd. This position refers to an internal command executed for example inside a PL/pgSQL function. PostgreSQL 7.4 and up. + + + + + Internal query string where the error was encounterd. This position refers to an internal command executed for example inside a PL/pgSQL function. PostgreSQL 7.4 and up. + + + + + Trace back information. PostgreSQL 7.4 and up. + + + + + Source file (in backend) reporting the error. PostgreSQL 7.4 and up. + + + + + Source file line number (in backend) reporting the error. PostgreSQL 7.4 and up. + + + + + Source routine (in backend) reporting the error. PostgreSQL 7.4 and up. + + + + + String containing the sql sent which produced this error. + + + + + Backend protocol version in use. + + + + + Represents an ongoing COPY TO STDOUT operation. + Provides methods to read data from server or end the operation. + + + + This class represents the base class for the state pattern design pattern + implementation. + + + + + + This method is used by the states to change the state of the context. + + + + + This method is responsible to handle all protocol messages sent from the backend. + It holds all the logic to do it. + To exchange data, it uses a Mediator object from which it reads/writes information + to handle backend requests. + + + + + + This method is responsible to handle all protocol messages sent from the backend. + It holds all the logic to do it. + To exchange data, it uses a Mediator object from which it reads/writes information + to handle backend requests. + + + + + + Called from NpgsqlState.ProcessBackendResponses upon CopyOutResponse. + If CopyStream is already set, it is used to write data received from server, after which the copy ends. + Otherwise CopyStream is set to a readable NpgsqlCopyOutStream that receives data from server. + + + + + Called from NpgsqlOutStream.Read to read copy data from server. + + + + + Copy format information returned from server. + + + + + Handles serialisation of .NET array or IEnumeration to pg format. + Arrays of arrays, enumerations of enumerations, arrays of enumerations etc. + are treated as multi-dimensional arrays (in much the same manner as an array of arrays + is used to emulate multi-dimensional arrays in languages that lack native support for them). + If such an enumeration of enumerations is "jagged" (as opposed to rectangular, cuboid, + hypercuboid, hyperhypercuboid, etc) then this class will "correctly" serialise it, but pg + will raise an error as it doesn't allow jagged arrays. + + + + + Create an ArrayNativeToBackendTypeConverter with the element converter passed + + The that would be used to serialise the element type. + + + + Serialise the enumeration or array. + + + + + Handles parsing of pg arrays into .NET arrays. + + + + + Takes a string representation of a pg 1-dimensional array + (or a 1-dimensional row within an n-dimensional array) + and allows enumeration of the string represenations of each items. + + + + + Takes a string representation of a pg n-dimensional array + and allows enumeration of the string represenations of the next + lower level of rows (which in turn can be taken as (n-1)-dimensional arrays. + + + + + Takes an ArrayList which may be an ArrayList of ArrayLists, an ArrayList of ArrayLists of ArrayLists + and so on and enumerates the items that aren't ArrayLists (the leaf nodes if we think of the ArrayList + passed as a tree). Simply uses the ArrayLists' own IEnumerators to get that of the next, + pushing them onto a stack until we hit something that isn't an ArrayList. + ArrayList to enumerate + IEnumerable + + + + + Create a new ArrayBackendToNativeTypeConverter + + for the element type. + + + + Creates an array from pg representation. + + + + + Creates an array list from pg represenation of an array. + Multidimensional arrays are treated as ArrayLists of ArrayLists + + + + + Creates an n-dimensional array from an ArrayList of ArrayLists or + a 1-dimensional array from something else. + + to convert + produced. + + + + Takes an array of ints and treats them like the limits of a set of counters. + Retains a matching set of ints that is set to all zeros on the first ++ + On a ++ it increments the "right-most" int. If that int reaches it's + limit it is set to zero and the one before it is incremented, and so on. + + Making this a more general purpose class is pretty straight-forward, but we'll just put what we need here. + + + + + This class represents the ParameterStatus message sent from PostgreSQL + server. + + + + + + This class is responsible for serving as bridge between the backend + protocol handling and the core classes. It is used as the mediator for + exchanging data generated/sent from/to backend. + + + + + + This class is responsible to create database commands for automatic insert, update and delete operations. + + + + + + This method is reponsible to derive the command parameter list with values obtained from function definition. + It clears the Parameters collection of command. Also, if there is any parameter type which is not supported by Npgsql, an InvalidOperationException will be thrown. + Parameters name will be parameter1, parameter2, ... + For while, only parameter name and NpgsqlDbType are obtained. + + NpgsqlCommand whose function parameters will be obtained. + + + + Represents a completed response message. + + + + + + Marker interface which identifies a class which may take possession of a stream for the duration of + it's lifetime (possibly temporarily giving that possession to another class for part of that time. + + It inherits from IDisposable, since any such class must make sure it leaves the stream in a valid state. + + The most important such class is that compiler-generated from ProcessBackendResponsesEnum. Of course + we can't make that inherit from this interface, alas. + + + + + The exception that is thrown when the PostgreSQL backend reports errors. + + + + + Construct a backend error exception based on a list of one or more + backend errors. The basic Exception.Message will be built from the + first (usually the only) error in the list. + + + + + Format a .NET style exception string. + Include all errors in the list, including any hints. + + + + + Append a line to the given Stream, first checking for zero-length. + + + + + Provide access to the entire list of errors provided by the PostgreSQL backend. + + + + + Severity code. All versions. + + + + + Error code. PostgreSQL 7.4 and up. + + + + + Basic error message. All versions. + + + + + Detailed error message. PostgreSQL 7.4 and up. + + + + + Suggestion to help resolve the error. PostgreSQL 7.4 and up. + + + + + Position (one based) within the query string where the error was encounterd. PostgreSQL 7.4 and up. + + + + + Trace back information. PostgreSQL 7.4 and up. + + + + + Source file (in backend) reporting the error. PostgreSQL 7.4 and up. + + + + + Source file line number (in backend) reporting the error. PostgreSQL 7.4 and up. + + + + + Source routine (in backend) reporting the error. PostgreSQL 7.4 and up. + + + + + String containing the sql sent which produced this error. + + + + + Returns the entire list of errors provided by the PostgreSQL backend. + + + + + The level of verbosity of the NpgsqlEventLog + + + + + Don't log at all + + + + + Only log the most common issues + + + + + Log everything + + + + + This class handles all the Npgsql event and debug logging + + + + + Writes a string to the Npgsql event log if msglevel is bigger then NpgsqlEventLog.Level + + + This method is obsolete and should no longer be used. + It is likely to be removed in future versions of Npgsql + + The message to write to the event log + The minimum LogLevel for which this message should be logged. + + + + Writes a string to the Npgsql event log if msglevel is bigger then NpgsqlEventLog.Level + + The ResourceManager to get the localized resources + The name of the resource that should be fetched by the ResourceManager + The minimum LogLevel for which this message should be logged. + The additional parameters that shall be included into the log-message (must be compatible with the string in the resource): + + + + Writes the default log-message for the action of calling the Get-part of an Indexer to the log file. + + The minimum LogLevel for which this message should be logged. + The name of the class that contains the Indexer + The parameter given to the Indexer + + + + Writes the default log-message for the action of calling the Set-part of an Indexer to the logfile. + + The minimum LogLevel for which this message should be logged. + The name of the class that contains the Indexer + The parameter given to the Indexer + The value the Indexer is set to + + + + Writes the default log-message for the action of calling the Get-part of a Property to the logfile. + + The minimum LogLevel for which this message should be logged. + The name of the class that contains the Property + The name of the Property + + + + Writes the default log-message for the action of calling the Set-part of a Property to the logfile. + + The minimum LogLevel for which this message should be logged. + The name of the class that contains the Property + The name of the Property + The value the Property is set to + + + + Writes the default log-message for the action of calling a Method without Arguments to the logfile. + + The minimum LogLevel for which this message should be logged. + The name of the class that contains the Method + The name of the Method + + + + Writes the default log-message for the action of calling a Method with one Argument to the logfile. + + The minimum LogLevel for which this message should be logged. + The name of the class that contains the Method + The name of the Method + The value of the Argument of the Method + + + + Writes the default log-message for the action of calling a Method with two Arguments to the logfile. + + The minimum LogLevel for which this message should be logged. + The name of the class that contains the Method + The name of the Method + The value of the first Argument of the Method + The value of the second Argument of the Method + + + + Writes the default log-message for the action of calling a Method with three Arguments to the logfile. + + The minimum LogLevel for which this message should be logged. + The name of the class that contains the Method + The name of the Method + The value of the first Argument of the Method + The value of the second Argument of the Method + The value of the third Argument of the Method + + + + Writes the default log-message for the action of calling a Method with more than three Arguments to the logfile. + + The minimum LogLevel for which this message should be logged. + The name of the class that contains the Method + The name of the Method + A Object-Array with zero or more Ojects that are Arguments of the Method. + + + + Sets/Returns the level of information to log to the logfile. + + The current LogLevel + + + + Sets/Returns the filename to use for logging. + + The filename of the current Log file. + + + + Sets/Returns whether Log messages should be echoed to the console + + true if Log messages are echoed to the console, otherwise false + + + + This class represents the Parse message sent to PostgreSQL + server. + + + + + + Represents a PostgreSQL COPY FROM STDIN operation with a corresponding SQL statement + to execute against a PostgreSQL database + and an associated stream used to read data from (if provided by user) + or for writing it (when generated by driver). + Eg. new NpgsqlCopyIn("COPY mytable FROM STDIN", connection, streamToRead).Start(); + + + + + Creates NpgsqlCommand to run given query upon Start(). Data for the requested COPY IN operation can then be written to CopyData stream followed by a call to End() or Cancel(). + + + + + Given command is run upon Start(). Data for the requested COPY IN operation can then be written to CopyData stream followed by a call to End() or Cancel(). + + + + + Given command is executed upon Start() and all data from fromStream is passed to it as copy data. + + + + + Returns true if this operation is currently active and field at given location is in binary format. + + + + + Command specified upon creation is executed as a non-query. + If CopyStream is set upon creation, it will be flushed to server as copy data, and operation will be finished immediately. + Otherwise the CopyStream member can be used for writing copy data to server and operation finished with a call to End() or Cancel(). + + + + + Called after writing all data to CopyStream to successfully complete this copy operation. + + + + + Withdraws an already started copy operation. The operation will fail with given error message. + Will do nothing if current operation is not active. + + + + + Returns true if the connection is currently reserved for this operation. + + + + + The stream provided by user or generated upon Start(). + User may provide a stream to constructor; it is used to pass to server all data read from it. + Otherwise, call to Start() sets this to a writable NpgsqlCopyInStream that passes all data written to it to server. + In latter case this is only available while the copy operation is active and null otherwise. + + + + + Returns true if this operation is currently active and in binary format. + + + + + Returns number of fields expected on each input row if this operation is currently active, otherwise -1 + + + + + The Command used to execute this copy operation. + + + + + Set before a COPY IN query to define size of internal buffer for reading from given CopyStream. + + + + + Represents information about COPY operation data transfer format as returned by server. + + + + + Only created when a CopyInResponse or CopyOutResponse is received by NpgsqlState.ProcessBackendResponses() + + + + + Returns true if this operation is currently active and field at given location is in binary format. + + + + + Returns true if this operation is currently active and in binary format. + + + + + Returns number of fields if this operation is currently active, otherwise -1 + + + + + + + + + Provide event handlers to convert all native supported basic data types from their backend + text representation to a .NET object. + + + + + Binary data. + + + + + Convert a postgresql boolean to a System.Boolean. + + + + + Convert a postgresql bit to a System.Boolean. + + + + + Convert a postgresql datetime to a System.DateTime. + + + + + Convert a postgresql date to a System.DateTime. + + + + + Convert a postgresql time to a System.DateTime. + + + + + Convert a postgresql money to a System.Decimal. + + + + + Provide event handlers to convert the basic native supported data types from + native form to backend representation. + + + + + Binary data. + + + + + Convert to a postgresql boolean. + + + + + Convert to a postgresql bit. + + + + + Convert to a postgresql timestamp. + + + + + Convert to a postgresql date. + + + + + Convert to a postgresql time. + + + + + Convert to a postgres money. + + + + + Convert to a postgres double with maximum precision. + + + + + Provide event handlers to convert extended native supported data types from their backend + text representation to a .NET object. + + + + + Convert a postgresql point to a System.NpgsqlPoint. + + + + + Convert a postgresql point to a System.RectangleF. + + + + + LDeg. + + + + + Path. + + + + + Polygon. + + + + + Circle. + + + + + Inet. + + + + + MAC Address. + + + + + interval + + + + + Provide event handlers to convert extended native supported data types from + native form to backend representation. + + + + + Point. + + + + + Box. + + + + + LSeg. + + + + + Open path. + + + + + Polygon. + + + + + Convert to a postgres MAC Address. + + + + + Circle. + + + + + Convert to a postgres inet. + + + + + Convert to a postgres interval + + + + + EventArgs class to send Notification parameters. + + + + + Process ID of the PostgreSQL backend that sent this notification. + + + + + Condition that triggered that notification. + + + + + Additional Information From Notifiying Process (for future use, currently postgres always sets this to an empty string) + + + + + Resolve a host name or IP address. + This is needed because if you call Dns.Resolve() with an IP address, it will attempt + to resolve it as a host name, when it should just convert it to an IP address. + + + + + + This class represents a RowDescription message sent from + the PostgreSQL. + + + + + + This struct represents the internal data of the RowDescription message. + + + + + This class represents the Parse message sent to PostgreSQL + server. + + + + + + A factory to create instances of various Npgsql objects. + + + + + Creates an NpgsqlCommand object. + + + + + This class represents the Parse message sent to PostgreSQL + server. + + + + + + Represents the method that handles the RowUpdated events. + + The source of the event. + A NpgsqlRowUpdatedEventArgs that contains the event data. + + + + Represents the method that handles the RowUpdating events. + + The source of the event. + A NpgsqlRowUpdatingEventArgs that contains the event data. + + + + This class represents an adapter from many commands: select, update, insert and delete to fill Datasets. + + + + + Stream for reading data from a table or select on a PostgreSQL version 7.4 or newer database during an active COPY TO STDOUT operation. + Passes data exactly as provided by the server. + + + + + Created only by NpgsqlCopyOutState.StartCopy() + + + + + Discards copy data as long as server pushes it. Returns after operation is finished. + Does nothing if this stream is not the active copy operation reader. + + + + + Not writable. + + + + + Not flushable. + + + + + Copies data read from server to given byte buffer. + Since server returns data row by row, length will differ each time, but it is only zero once the operation ends. + Can be mixed with calls to the more efficient NpgsqlCopyOutStream.Read() : byte[] though that would not make much sense. + + + + + Not seekable + + + + + Not supported + + + + + Returns a whole row of data from server without extra work. + If standard Stream.Read(...) has been called before, it's internal buffers remains are returned. + + + + + True while this stream can be used to read copy data from server + + + + + True + + + + + False + + + + + False + + + + + Number of bytes read so far + + + + + Number of bytes read so far; can not be set. + + + + + This class represents the Bind message sent to PostgreSQL + server. + + + + + + Summary description for LargeObjectManager. + + + + + Represents a transaction to be made in a PostgreSQL database. This class cannot be inherited. + + + + + Commits the database transaction. + + + + + Rolls back a transaction from a pending state. + + + + + Rolls back a transaction from a pending savepoint state. + + + + + Creates a transaction save point. + + + + + Cancel the transaction without telling the backend about it. This is + used to make the transaction go away when closing a connection. + + + + + Gets the NpgsqlConnection + object associated with the transaction, or a null reference if the + transaction is no longer valid. + + The NpgsqlConnection + object associated with the transaction. + + + + Specifies the IsolationLevel for this transaction. + + The IsolationLevel for this transaction. + The default is ReadCommitted. + + + + This class represents a StartupPacket message of PostgreSQL + protocol. + + + + + + Provides a means of reading a forward-only stream of rows from a PostgreSQL backend. This class cannot be inherited. + + + + + Return the data type name of the column at index . + + + + + Return the data type of the column at index . + + + + + Return the Npgsql specific data type of the column at requested ordinal. + + column position + Appropriate Npgsql type for column. + + + + Return the column name of the column at index . + + + + + Return the data type OID of the column at index . + + FIXME: Why this method returns String? + + + + Return the column name of the column named . + + + + + Return the data DbType of the column at index . + + + + + Return the data NpgsqlDbType of the column at index . + + + + + Get the value of a column as a . + If the differences between and + in handling of days and months is not important to your application, use + instead. + + Index of the field to find. + value of the field. + + + + Gets the value of a column converted to a Guid. + + + + + Gets the value of a column as Int16. + + + + + Gets the value of a column as Int32. + + + + + Gets the value of a column as Int64. + + + + + Gets the value of a column as Single. + + + + + Gets the value of a column as Double. + + + + + Gets the value of a column as String. + + + + + Gets the value of a column as Decimal. + + + + + Gets the value of a column as TimeSpan. + + + + + Copy values from each column in the current row into . + + The number of column values copied. + + + + Copy values from each column in the current row into . + + An array appropriately sized to store values from all columns. + The number of column values copied. + + + + Gets the value of a column as Boolean. + + + + + Gets the value of a column as Byte. Not implemented. + + + + + Gets the value of a column as Char. + + + + + Gets the value of a column as DateTime. + + + + + Returns a System.Data.DataTable that describes the column metadata of the DataReader. + + + + + This methods parses the command text and tries to get the tablename + from it. + + + + + Is raised whenever Close() is called. + + + + + Gets the number of columns in the current row. + + + + + Gets the value of a column in its native format. + + + + + Gets the value of a column in its native format. + + + + + Gets a value indicating the depth of nesting for the current row. Always returns zero. + + + + + Gets a value indicating whether the data reader is closed. + + + + + Contains the column names as the keys + + + + + Contains all unique columns + + + + + This is the primary implementation of NpgsqlDataReader. It is the one used in normal cases (where the + preload-reader option is not set in the connection string to resolve some potential backwards-compatibility + issues), the only implementation used internally, and in cases where CachingDataReader is used, it is still + used to do the actual "leg-work" of turning a response stream from the server into a datareader-style + object - with CachingDataReader then filling it's cache from here. + + + + + Iterate through the objects returned through from the server. + If it's a CompletedResponse the rowsaffected count is updated appropriately, + and we iterate again, otherwise we return it (perhaps updating our cache of pending + rows if appropriate). + + The next we will deal with. + + + + Advances the data reader to the next result, when multiple result sets were returned by the PostgreSQL backend. + + True if the reader was advanced, otherwise false. + + + + Releases the resources used by the NpgsqlCommand. + + + + + Closes the data reader object. + + + + + Advances the data reader to the next result, when multiple result sets were returned by the PostgreSQL backend. + + True if the reader was advanced, otherwise false. + + + + Advances the data reader to the next row. + + True if the reader was advanced, otherwise false. + + + + Return the value of the column at index . + + + + + Gets raw data from a column. + + + + + Gets raw data from a column. + + + + + Report whether the value in a column is DBNull. + + + + + Gets the number of rows changed, inserted, or deleted by execution of the SQL statement. + + + + + Indicates if NpgsqlDatareader has rows to be read. + + + + + Provides an implementation of NpgsqlDataReader in which all data is pre-loaded into memory. + This operates by first creating a ForwardsOnlyDataReader as usual, and then loading all of it's + Rows into memory. There is a general principle that when there is a trade-off between a class design that + is more efficient and/or scalable on the one hand and one that is less efficient but has more functionality + (in this case the internal-only functionality of caching results) that one can build the less efficent class + from the most efficient without significant extra loss in efficiency, but not the other way around. The relationship + between ForwardsOnlyDataReader and CachingDataReader is an example of this). + Since the interface presented to the user is still forwards-only, queues are used to + store this information, so that dequeueing as we go we give the garbage collector the best opportunity + possible to reclaim any memory that is no longer in use. + ForwardsOnlyDataReader being used to actually + obtain the information from the server means that the "leg-work" is still only done (and need only be + maintained) in one place. + This class exists to allow for certain potential backwards-compatibility issues to be resolved + with little effort on the part of affected users. It is considerably less efficient than ForwardsOnlyDataReader + and hence never used internally. + + + + + Represents the method that allows the application to provide a certificate collection to be used for SSL clien authentication + + A X509CertificateCollection to be filled with one or more client certificates. + + + + !!! Helper class, for compilation only. + Connector implements the logic for the Connection Objects to + access the physical connection to the database, and isolate + the application developer from connection pooling internals. + + + + + Constructor. + + Controls whether the connector can be shared. + + + + This method checks if the connector is still ok. + We try to send a simple query text, select 1 as ConnectionTest; + + + + + This method is responsible for releasing all resources associated with this Connector. + + + + + This method is responsible to release all portals used by this Connector. + + + + + Default SSL CertificateSelectionCallback implementation. + + + + + Default SSL CertificateValidationCallback implementation. + + + + + Default SSL PrivateKeySelectionCallback implementation. + + + + + Default SSL ProvideClientCertificatesCallback implementation. + + + + + This method is required to set all the version dependent features flags. + SupportsPrepare means the server can use prepared query plans (7.3+) + + + + + Opens the physical connection to the server. + + Usually called by the RequestConnector + Method of the connection pool manager. + + + + Closes the physical connection to the server. + + + + + Returns next portal index. + + + + + Returns next plan index. + + + + + Occurs on NoticeResponses from the PostgreSQL backend. + + + + + Occurs on NotificationResponses from the PostgreSQL backend. + + + + + Called to provide client certificates for SSL handshake. + + + + + Mono.Security.Protocol.Tls.CertificateSelectionCallback delegate. + + + + + Mono.Security.Protocol.Tls.CertificateValidationCallback delegate. + + + + + Mono.Security.Protocol.Tls.PrivateKeySelectionCallback delegate. + + + + + Gets the current state of the connection. + + + + + Return Connection String. + + + + + Version of backend server this connector is connected to. + + + + + Backend protocol version in use by this connector. + + + + + The physical connection stream to the backend. + + + + + The physical connection socket to the backend. + + + + + Reports if this connector is fully connected. + + + + + The connection mediator. + + + + + Report if the connection is in a transaction. + + + + + Report whether the current connection can support prepare functionality. + + + + + This class contains helper methods for type conversion between + the .Net type system and postgresql. + + + + + A cache of basic datatype mappings keyed by server version. This way we don't + have to load the basic type mappings for every connection. + + + + + Find a NpgsqlNativeTypeInfo in the default types map that can handle objects + of the given NpgsqlDbType. + + + + + Find a NpgsqlNativeTypeInfo in the default types map that can handle objects + of the given NpgsqlDbType. + + + + + Find a NpgsqlNativeTypeInfo in the default types map that can handle objects + of the given DbType. + + + + + Find a NpgsqlNativeTypeInfo in the default types map that can handle objects + of the given System.Type. + + + + + This method is responsible to convert the string received from the backend + to the corresponding NpgsqlType. + The given TypeInfo is called upon to do the conversion. + If no TypeInfo object is provided, no conversion is performed. + + + + + Create the one and only native to backend type map. + This map is used when formatting native data + types to backend representations. + + + + + This method creates (or retrieves from cache) a mapping between type and OID + of all natively supported postgresql data types. + This is needed as from one version to another, this mapping can be changed and + so we avoid hardcoding them. + + NpgsqlTypeMapping containing all known data types. The mapping must be + cloned before it is modified because it is cached; changes made by one connection may + effect another connection. + + + + Attempt to map types by issuing a query against pg_type. + This function takes a list of NpgsqlTypeInfo and attempts to resolve the OID field + of each by querying pg_type. If the mapping is found, the type info object is + updated (OID) and added to the provided NpgsqlTypeMapping object. + + NpgsqlConnector to send query through. + Mapping object to add types too. + List of types that need to have OID's mapped. + + + + Delegate called to convert the given backend data to its native representation. + + + + + Delegate called to convert the given native data to its backand representation. + + + + + Represents a backend data type. + This class can be called upon to convert a backend field representation to a native object. + + + + + Construct a new NpgsqlTypeInfo with the given attributes and conversion handlers. + + Type OID provided by the backend server. + Type name provided by the backend server. + NpgsqlDbType + System type to convert fields of this type to. + Data conversion handler. + + + + Perform a data conversion from a backend representation to + a native object. + + Data sent from the backend. + Type modifier field sent from the backend. + + + + Type OID provided by the backend server. + + + + + Type name provided by the backend server. + + + + + NpgsqlDbType. + + + + + NpgsqlDbType. + + + + + Provider type to convert fields of this type to. + + + + + System type to convert fields of this type to. + + + + + Represents a backend data type. + This class can be called upon to convert a native object to its backend field representation, + + + + + Returns an NpgsqlNativeTypeInfo for an array where the elements are of the type + described by the NpgsqlNativeTypeInfo supplied. + + + + + Construct a new NpgsqlTypeInfo with the given attributes and conversion handlers. + + Type name provided by the backend server. + NpgsqlDbType + Data conversion handler. + + + + Perform a data conversion from a native object to + a backend representation. + DBNull and null values are handled differently depending if a plain query is used + When + + Native .NET object to be converted. + Flag indicating if the conversion has to be done for + plain queries or extended queries + + + + Type name provided by the backend server. + + + + + NpgsqlDbType. + + + + + DbType. + + + + + Apply quoting. + + + + + Use parameter size information. + + + + + Provide mapping between type OID, type name, and a NpgsqlBackendTypeInfo object that represents it. + + + + + Construct an empty mapping. + + + + + Copy constuctor. + + + + + Add the given NpgsqlBackendTypeInfo to this mapping. + + + + + Add a new NpgsqlBackendTypeInfo with the given attributes and conversion handlers to this mapping. + + Type OID provided by the backend server. + Type name provided by the backend server. + NpgsqlDbType + System type to convert fields of this type to. + Data conversion handler. + + + + Make a shallow copy of this type mapping. + + + + + Determine if a NpgsqlBackendTypeInfo with the given backend type OID exists in this mapping. + + + + + Determine if a NpgsqlBackendTypeInfo with the given backend type name exists in this mapping. + + + + + Get the number of type infos held. + + + + + Retrieve the NpgsqlBackendTypeInfo with the given backend type OID, or null if none found. + + + + + Retrieve the NpgsqlBackendTypeInfo with the given backend type name, or null if none found. + + + + + Provide mapping between type Type, NpgsqlDbType and a NpgsqlNativeTypeInfo object that represents it. + + + + + Add the given NpgsqlNativeTypeInfo to this mapping. + + + + + Add a new NpgsqlNativeTypeInfo with the given attributes and conversion handlers to this mapping. + + Type name provided by the backend server. + NpgsqlDbType + Data conversion handler. + + + + Retrieve the NpgsqlNativeTypeInfo with the given NpgsqlDbType. + + + + + Retrieve the NpgsqlNativeTypeInfo with the given DbType. + + + + + Retrieve the NpgsqlNativeTypeInfo with the given Type. + + + + + Determine if a NpgsqlNativeTypeInfo with the given backend type name exists in this mapping. + + + + + Determine if a NpgsqlNativeTypeInfo with the given NpgsqlDbType exists in this mapping. + + + + + Determine if a NpgsqlNativeTypeInfo with the given Type name exists in this mapping. + + + + + Get the number of type infos held. + + + + + Implements for version 3 of the protocol. + + + + + Reads a row, field by field, allowing a DataRow to be built appropriately. + + + + + Reads part of a field, as needed (for + and + + + + + Adds further functionality to stream that is dependant upon the type of data read. + + + + + Completes the implementation of Streamer for char data. + + + + + Completes the implementation of Streamer for byte data. + + + + + Implements for version 2 of the protocol. + + + + + Encapsulates the null mapping bytes sent at the start of a version 2 + datarow message, and the process of identifying the nullity of the data + at a particular index + + + + + Provides the underlying mechanism for reading schema information. + + + + + Creates an NpgsqlSchema that can read schema information from the database. + + An open database connection for reading metadata. + + + + Returns the MetaDataCollections that lists all possible collections. + + The MetaDataCollections + + + + Returns the Restrictions that contains the meaning and position of the values in the restrictions array. + + The Restrictions + + + + Returns the Databases that contains a list of all accessable databases. + + The restrictions to filter the collection. + The Databases + + + + Returns the Tables that contains table and view names and the database and schema they come from. + + The restrictions to filter the collection. + The Tables + + + + Returns the Columns that contains information about columns in tables. + + The restrictions to filter the collection. + The Columns. + + + + Returns the Views that contains view names and the database and schema they come from. + + The restrictions to filter the collection. + The Views + + + + Returns the Users containing user names and the sysid of those users. + + The restrictions to filter the collection. + The Users. + + + + This is the abstract base class for NpgsqlAsciiRow and NpgsqlBinaryRow. + + + + + Implements a bit string; a collection of zero or more bits which can each be 1 or 0. + BitString's behave as a list of bools, though like most strings and unlike most collections the position + tends to be of as much significance as the value. + BitStrings are often used as masks, and are commonly cast to and from other values. + + + + + Represents the empty string. + + + + + Create a BitString from an enumeration of boolean values. The BitString will contain + those booleans in the order they came in. + + The boolean values. + + + + Creates a BitString filled with a given number of true or false values. + + The value to fill the string with. + The number of bits to fill. + + + + Creats a bitstring from a string. + The string to copy from. + + + + + + Creates a single-bit element from a boolean value. + + The bool value which determines whether + the bit is 1 or 0. + + + + Creates a bitstring from an unsigned integer value. The string will be the shortest required to + contain the integer (e.g. 1 bit for 0 or 1, 2 for 2 or 3, 3 for 4-7, and so on). + + The integer. + This method is not CLS Compliant, and may not be available to some languages. + + + + Creates a bitstring from an integer value. The string will be the shortest required to + contain the integer (e.g. 1 bit for 0 or 1, 2 for 2 or 3, 3 for 4-7, and so on). + + The integer. + + + + Finds the first instance of a given value + + The value - whether true or false - to search for. + The index of the value found, or -1 if none are present. + + + + True if there is at least one bit with the value looked for. + + The value - true or false - to detect. + True if at least one bit was the same as item, false otherwise. + + + + Copies the bitstring to an array of bools. + + The boolean array to copy to. + The index in the array to start copying from. + + + + Returns an enumerator that enumerates through the string. + + The enumerator. + + + + Creats a bitstring by concatenating another onto this one. + + The string to append to this one. + The combined strings. + + + + Returns a substring of this string. + + The position to start from, must be between 0 and the length of the string. + The length of the string to return, must be greater than zero, and may not be + so large that the start + length exceeds the bounds of this instance. + The Bitstring identified + + + + Returns a substring of this string. + + The position to start from, must be between 0 and the length of the string, + the rest of the string is returned. + The Bitstring identified + + + + A logical and between this string and another. The two strings must be the same length. + + Another BitString to AND with this one. + A bitstring with 1 where both BitStrings had 1 and 0 otherwise. + + + + A logical or between this string and another. The two strings must be the same length. + + Another BitString to OR with this one. + A bitstring with 1 where either BitString had 1 and 0 otherwise. + + + + A logical xor between this string and another. The two strings must be the same length. + + Another BitString to XOR with this one. + A bitstring with 1 where one BitStrings and the other had 0, + and 0 where they both had 1 or both had 0. + + + + A bitstring that is the logical inverse of this one. + + A bitstring of the same length as this with 1 where this has 0 and vice-versa. + + + + Shifts the string operand bits to the left, filling with zeros to produce a + string of the same length. + + The number of bits to shift to the left. + A left-shifted bitstring. + The behaviour of LShift is closer to what one would expect from dealing + with PostgreSQL bit-strings than in using the same operations on integers in .NET + In particular, negative operands result in a right-shift, and operands greater than + the length of the string will shift it entirely, resulting in a zero-filled string. + + + + + Shifts the string operand bits to the right, filling with zeros to produce a + string of the same length. + + The number of bits to shift to the right. + A right-shifted bitstring. + The behaviour of RShift is closer to what one would expect from dealing + with PostgreSQL bit-strings than in using the same operations on integers in .NET + In particular, negative operands result in a left-shift, and operands greater than + the length of the string will shift it entirely, resulting in a zero-filled string. It also performs + a logical shift, rather than an arithmetic shift, so it always sets the vacated bit positions to zero + (like PostgreSQL and like .NET for unsigned integers but not for signed integers). + + + + + Returns true if the this string is identical to the argument passed. + + + + + Compares two strings. Strings are compared as strings, so while 0 being less than 1 will + mean a comparison between two strings of the same size is the same as treating them as numbers, + in the case of two strings of differing lengths the comparison starts at the right-most (most significant) + bit, and if all bits of the shorter string are exhausted without finding a comparison, then the larger + string is deemed to be greater than the shorter (0010 is greater than 0001 but less than 00100). + + Another string to compare with this one. + A value if the two strings are identical, an integer less + than zero if this is less than the argument, and an integer greater + than zero otherwise. + + + + Compares the string with another object. + + The object to compare with. + If the object is null then this string is considered greater. If the object is another BitString + then they are compared as in the explicit comparison for BitStrings + in any other case a is thrown. + + + + Compares this BitString with an object for equality. + + + + + Returns a code for use in hashing operations. + + + + + Returns a string representation of the BitString. + + + A string which can contain a letter and optionally a number which sets a minimum size for the string + returned. In each case using the lower-case form of the letter will result in a lower-case string + being returned. + + + B + A string of 1s and 0s. + + + X + An hexadecimal string (will result in an error unless the string's length is divisible by 4). + + + G + A string of 1s and 0s in single-quotes preceded by 'B' (Postgres bit string literal syntax). + + Y + An hexadecimal string in single-quotes preceded by 'X' (Postgres bit literal syntax, will result in an error unless the string's length is divisible by 4. + + C + The format produced by format-string "Y" if legal, otherwise that produced by format-string "G". + E + The most compact safe representation for Postgres. If single bit will be either a 0 or a 1. Otherwise if it + can be that produce by format string "Y" it will, otherwise if there are less than 9bits in length it will be that + produced by format-string "G". For longer strings that cannot be represented in hexadecimal it will be a string + representing the first part of the string in format "Y" followed by the PostgreSQL concatenation operator, followed + by the final bits in the format "G". E.g. "X'13DCE'||B'110'" + If format is empty or null, it is treated as if "B" had been passed (the default repreesentation, and that + generally used by PostgreSQL for display). + + The formatted string. + + + + Returns a string representation for the Bitstring + + A string containing '0' and '1' characters. + + + + Returns the same string as . formatProvider is ignored. + + + + + Parses a string to produce a BitString. Most formats that can be produced by + can be accepted, but hexadecimal + can be interpreted with the preceding X' to mark the following characters as + being hexadecimal rather than binary. + + + + + Performs a logical AND on the two operands. + + + + + Performs a logcial OR on the two operands. + + + + + Perofrms a logical EXCLUSIVE-OR on the two operands + + + + + Performs a logical NOT on the operand. + + + + + Concatenates the operands. + + + + + Left-shifts the string BitString. + + + + + Right-shifts the string BitString. + + + + + Compares the two operands. + + + + + Compares the two operands. + + + + + Compares the two operands. + + + + + Compares the two operands. + + + + + Compares the two operands. + + + + + Compares the two operands. + + + + + Interprets the bitstring as a series of bits in an encoded character string, + encoded according to the Encoding passed, and returns that string. + The bitstring must contain a whole number of octets(bytes) and also be + valid according to the Encoding passed. + + The to use in producing the string. + The string that was encoded in the BitString. + + + + Interprets the bitstring as a series of octets (bytes) and returns those octets. Fails + if the Bitstring does not contain a whole number of octets (its length is not evenly + divisible by 8). + + + + + Interprets the bitstring as a series of signed octets (bytes) and returns those octets. Fails + if the Bitstring does not contain a whole number of octets (its length is not evenly + divisible by 8). + This method is not CLS-Compliant and may not be available to languages that cannot + handle signed bytes. + + + + + Interprets the bitstring as a series of unsigned 16-bit integers and returns those integers. + Fails if the Bitstring's length is not evenly divisible by 16. + This method is not CLS-Compliant and may not be available to languages that cannot + handle unsigned integers. + + + + + Interprets the bitstring as a series of 16-bit integers and returns those integers. + Fails if the Bitstring's length is not evenly divisible by 16. + + + + + Interprets the bitstring as a series of unsigned 32-bit integers and returns those integers. + Fails if the Bitstring's length is not evenly divisible by 32. + This method is not CLS-Compliant and may not be available to languages that cannot + handle unsigned integers. + + + + + Interprets the bitstring as a series of signed 32-bit integers and returns those integers. + Fails if the Bitstring's length is not evenly divisible by 32. + + + + + Interprets the bitstring as a series of unsigned 64-bit integers and returns those integers. + Fails if the Bitstring's length is not evenly divisible by 64. + This method is not CLS-Compliant and may not be available to languages that cannot + handle unsigned integers. + + + + + Interprets the bitstring as a series of signed 64-bit integers and returns those integers. + Fails if the Bitstring's length is not evenly divisible by 64. + + + + + The length of the string. + + + + + Retrieves the value of the bit at the given index. + + + + + C# implementation of the MD5 cryptographic hash function. + + + + + Creates a new MD5CryptoServiceProvider. + + + + + Drives the hashing function. + + Byte array containing the data to hash. + Where in the input buffer to start. + Size in bytes of the data in the buffer to hash. + + + + This finalizes the hash. Takes the data from the chaining variables and returns it. + + + + + Resets the class after use. Called automatically after hashing is done. + + + + + This is the meat of the hash function. It is what processes each block one at a time. + + Byte array to process data from. + Where in the byte array to start processing. + + + + Pads and then processes the final block. + + Buffer to grab data from. + Position in buffer in bytes to get data from. + How much data in bytes in the buffer to use. + + + + Stream for writing data to a table on a PostgreSQL version 7.4 or newer database during an active COPY FROM STDIN operation. + Passes data exactly as is and when given, so see to it that you use server encoding, correct format and reasonably sized writes! + + + + + Created only by NpgsqlCopyInState.StartCopy() + + + + + Successfully completes copying data to server. Returns after operation is finished. + Does nothing if this stream is not the active copy operation writer. + + + + + Withdraws an already started copy operation. The operation will fail with given error message. + Does nothing if this stream is not the active copy operation writer. + + + + + Writes given bytes to server. + Fails if this stream is not the active copy operation writer. + + + + + Flushes stream contents to server. + Fails if this stream is not the active copy operation writer. + + + + + Not readable + + + + + Not seekable + + + + + Not supported + + + + + True while this stream can be used to write copy data to server + + + + + False + + + + + True + + + + + False + + + + + Number of bytes written so far + + + + + Number of bytes written so far; not settable + + + + + Represents a SQL statement or function (stored procedure) to execute + against a PostgreSQL database. This class cannot be inherited. + + + + + Initializes a new instance of the NpgsqlCommand class. + + + + + Initializes a new instance of the NpgsqlCommand class with the text of the query. + + The text of the query. + + + + Initializes a new instance of the NpgsqlCommand class with the text of the query and a NpgsqlConnection. + + The text of the query. + A NpgsqlConnection that represents the connection to a PostgreSQL server. + + + + Initializes a new instance of the NpgsqlCommand class with the text of the query, a NpgsqlConnection, and the NpgsqlTransaction. + + The text of the query. + A NpgsqlConnection that represents the connection to a PostgreSQL server. + The NpgsqlTransaction in which the NpgsqlCommand executes. + + + + Used to execute internal commands. + + + + + Attempts to cancel the execution of a NpgsqlCommand. + + This Method isn't implemented yet. + + + + Create a new command based on this one. + + A new NpgsqlCommand object. + + + + Create a new command based on this one. + + A new NpgsqlCommand object. + + + + Creates a new instance of an DbParameter object. + + An DbParameter object. + + + + Creates a new instance of a NpgsqlParameter object. + + A NpgsqlParameter object. + + + + Slightly optimised version of ExecuteNonQuery() for internal ues in cases where the number + of affected rows is of no interest. + + + + + Executes a SQL statement against the connection and returns the number of rows affected. + + The number of rows affected if known; -1 otherwise. + + + + Sends the CommandText to + the Connection and builds a + NpgsqlDataReader + using one of the CommandBehavior values. + + One of the CommandBehavior values. + A NpgsqlDataReader object. + + + + Sends the CommandText to + the Connection and builds a + NpgsqlDataReader. + + A NpgsqlDataReader object. + + + + Sends the CommandText to + the Connection and builds a + NpgsqlDataReader + using one of the CommandBehavior values. + + One of the CommandBehavior values. + A NpgsqlDataReader object. + Currently the CommandBehavior parameter is ignored. + + + + This method binds the parameters from parameters collection to the bind + message. + + + + + Executes the query, and returns the first column of the first row + in the result set returned by the query. Extra columns or rows are ignored. + + The first column of the first row in the result set, + or a null reference if the result set is empty. + + + + Creates a prepared version of the command on a PostgreSQL server. + + + + + This method checks the connection state to see if the connection + is set or it is open. If one of this conditions is not met, throws + an InvalidOperationException + + + + + This method substitutes the Parameters, if exist, in the command + to their actual values. + The parameter name format is :ParameterName. + + A version of CommandText with the Parameters inserted. + + + + Gets or sets the SQL statement or function (stored procedure) to execute at the data source. + + The Transact-SQL statement or stored procedure to execute. The default is an empty string. + + + + Gets or sets the wait time before terminating the attempt + to execute a command and generating an error. + + The time (in seconds) to wait for the command to execute. + The default is 20 seconds. + + + + Gets or sets a value indicating how the + CommandText property is to be interpreted. + + One of the CommandType values. The default is CommandType.Text. + + + + Gets or sets the NpgsqlConnection + used by this instance of the NpgsqlCommand. + + The connection to a data source. The default value is a null reference. + + + + Gets the NpgsqlParameterCollection. + + The parameters of the SQL statement or function (stored procedure). The default is an empty collection. + + + + Gets or sets the NpgsqlTransaction + within which the NpgsqlCommand executes. + + The NpgsqlTransaction. + The default value is a null reference. + + + + Gets or sets how command results are applied to the DataRow + when used by the Update + method of the DbDataAdapter. + + One of the UpdateRowSource values. + + + + Returns oid of inserted row. This is only updated when using executenonQuery and when command inserts just a single row. If table is created without oids, this will always be 0. + + + + + Represents a collection of parameters relevant to a NpgsqlCommand + as well as their respective mappings to columns in a DataSet. + This class cannot be inherited. + + + + + Initializes a new instance of the NpgsqlParameterCollection class. + + + + + Adds the specified NpgsqlParameter object to the NpgsqlParameterCollection. + + The NpgsqlParameter to add to the collection. + The index of the new NpgsqlParameter object. + + + + Adds a NpgsqlParameter to the NpgsqlParameterCollection given the specified parameter name and value. + + The name of the NpgsqlParameter. + The Value of the NpgsqlParameter to add to the collection. + The index of the new NpgsqlParameter object. + + Use caution when using this overload of the + Add method to specify integer parameter values. + Because this overload takes a value of type Object, + you must convert the integral value to an Object + type when the value is zero, as the following C# example demonstrates. + parameters.Add(":pname", Convert.ToInt32(0)); + If you do not perform this conversion, the compiler will assume you + are attempting to call the NpgsqlParameterCollection.Add(string, DbType) overload. + + + + + Adds a NpgsqlParameter to the NpgsqlParameterCollection given the parameter name and the data type. + + The name of the parameter. + One of the DbType values. + The index of the new NpgsqlParameter object. + + + + Adds a NpgsqlParameter to the NpgsqlParameterCollection with the parameter name, the data type, and the column length. + + The name of the parameter. + One of the DbType values. + The length of the column. + The index of the new NpgsqlParameter object. + + + + Adds a NpgsqlParameter to the NpgsqlParameterCollection with the parameter name, the data type, the column length, and the source column name. + + The name of the parameter. + One of the DbType values. + The length of the column. + The name of the source column. + The index of the new NpgsqlParameter object. + + + + Removes the specified NpgsqlParameter from the collection using the parameter name. + + The name of the NpgsqlParameter object to retrieve. + + + + Gets a value indicating whether a NpgsqlParameter with the specified parameter name exists in the collection. + + The name of the NpgsqlParameter object to find. + true if the collection contains the parameter; otherwise, false. + + + + Gets the location of the NpgsqlParameter in the collection with a specific parameter name. + + The name of the NpgsqlParameter object to find. + The zero-based location of the NpgsqlParameter in the collection. + + + + Removes the specified NpgsqlParameter from the collection using a specific index. + + The zero-based index of the parameter. + + + + Inserts a NpgsqlParameter into the collection at the specified index. + + The zero-based index where the parameter is to be inserted within the collection. + The NpgsqlParameter to add to the collection. + + + + Removes the specified NpgsqlParameter from the collection. + + The NpgsqlParameter to remove from the collection. + + + + Gets a value indicating whether a NpgsqlParameter exists in the collection. + + The value of the NpgsqlParameter object to find. + true if the collection contains the NpgsqlParameter object; otherwise, false. + + + + Gets a value indicating whether a NpgsqlParameter with the specified parameter name exists in the collection. + + The name of the NpgsqlParameter object to find. + A reference to the requested parameter is returned in this out param if it is found in the list. This value is null if the parameter is not found. + true if the collection contains the parameter and param will contain the parameter; otherwise, false. + + + + Removes all items from the collection. + + + + + Gets the location of a NpgsqlParameter in the collection. + + The value of the NpgsqlParameter object to find. + The zero-based index of the NpgsqlParameter object in the collection. + + + + Adds the specified NpgsqlParameter object to the NpgsqlParameterCollection. + + The NpgsqlParameter to add to the collection. + The zero-based index of the new NpgsqlParameter object. + + + + Copies NpgsqlParameter objects from the NpgsqlParameterCollection to the specified array. + + An Array to which to copy the NpgsqlParameter objects in the collection. + The starting index of the array. + + + + Returns an enumerator that can iterate through the collection. + + An IEnumerator that can be used to iterate through the collection. + + + + In methods taking an object as argument this method is used to verify + that the argument has the type NpgsqlParameter + + The object to verify + + + + Gets the NpgsqlParameter with the specified name. + + The name of the NpgsqlParameter to retrieve. + The NpgsqlParameter with the specified name, or a null reference if the parameter is not found. + + + + Gets the NpgsqlParameter at the specified index. + + The zero-based index of the NpgsqlParameter to retrieve. + The NpgsqlParameter at the specified index. + + + + Gets the number of NpgsqlParameter objects in the collection. + + The number of NpgsqlParameter objects in the collection. + + + + Represents an ongoing COPY FROM STDIN operation. + Provides methods to push data to server and end or cancel the operation. + + + + + Called from NpgsqlState.ProcessBackendResponses upon CopyInResponse. + If CopyStream is already set, it is used to read data to push to server, after which the copy is completed. + Otherwise CopyStream is set to a writable NpgsqlCopyInStream that calls SendCopyData each time it is written to. + + + + + Sends given packet to server as a CopyData message. + Does not check for notifications! Use another thread for that. + + + + + Sends CopyDone message to server. Handles responses, ie. may throw an exception. + + + + + Sends CopyFail message to server. Handles responses, ie. should always throw an exception: + in CopyIn state the server responds to CopyFail with an error response; + outside of a CopyIn state the server responds to CopyFail with an error response; + without network connection or whatever, there's going to eventually be a failure, timeout or user intervention. + + + + + Copy format information returned from server. + + + + + Represents a PostgreSQL Point type + + + + + Represents a PostgreSQL Line Segment type. + + + + + Represents a PostgreSQL Path type. + + + + + Represents a PostgreSQL Polygon type. + + + + + Represents a PostgreSQL Circle type. + + + + + Represents a PostgreSQL inet type. + + + + + Represents a PostgreSQL MacAddress type. + + + + + + + The macAddr parameter must contain a string that can only consist of numbers + and upper-case letters as hexadecimal digits. (See PhysicalAddress.Parse method on MSDN) + + + + This class represents a PasswordPacket message sent to backend + PostgreSQL. + + +
+
diff --git a/bin/OpenMetaverse.Http.XML b/bin/OpenMetaverse.Http.XML deleted file mode 100644 index 23173ae..0000000 --- a/bin/OpenMetaverse.Http.XML +++ /dev/null @@ -1,57 +0,0 @@ - - - - OpenMetaverse.Http - - - - The number of milliseconds to wait before the connection times out - and an empty response is sent to the client. This value should be higher - than BATCH_WAIT_INTERVAL for the timeout to function properly - - - This interval defines the amount of time to wait, in milliseconds, - for new events to show up on the queue before sending a response to the - client and completing the HTTP request. The interval also specifies the - maximum time that can pass before the queue shuts down after Stop() or the - class destructor is called - - - Since multiple events can be batched together and sent in the same - response, this prevents the event queue thread from infinitely dequeueing - events and never sending a response if there is a constant stream of new - events - - - - Singleton logging class for the entire library - - - - log4net logging engine - - - - Singleton instance of this class - - - - - Delegate for handling incoming HTTP requests through a capability - - Client context - HTTP request - HTTP response - User-defined state object - - - = - - - Number of times we've received an unknown CAPS exception in series. - - - For exponential backoff on error. - - - diff --git a/bin/OpenMetaverse.Rendering.Meshmerizer.dll b/bin/OpenMetaverse.Rendering.Meshmerizer.dll index 30b9c7b..4f55376 100755 Binary files a/bin/OpenMetaverse.Rendering.Meshmerizer.dll and b/bin/OpenMetaverse.Rendering.Meshmerizer.dll differ diff --git a/bin/OpenMetaverse.StructuredData.XML b/bin/OpenMetaverse.StructuredData.XML index 897a330..8f0dd81 100644 --- a/bin/OpenMetaverse.StructuredData.XML +++ b/bin/OpenMetaverse.StructuredData.XML @@ -4,153 +4,229 @@ OpenMetaverse.StructuredData - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - Deserializes binary LLSD + Uses reflection to create an SDMap from all of the SD + serializable types in an object - Serialized data - OSD containting deserialized data + Class or struct containing serializable types + An SDMap holding the serialized values from the + container object - + - Deserializes binary LLSD + Uses reflection to deserialize member variables in an object from + an SDMap - Stream to read the data from - OSD containting deserialized data + Reference to an object to fill with deserialized + values + Serialized values to put in the target + object - + - - - + - - - + - - + - - - - + - - - - + - - - - + - - - + - - - + - - - + - - - + + + + + + + - - - + + + Deserializes binary LLSD + + Serialized data + OSD containting deserialized data + + + + Deserializes binary LLSD + + Stream to read the data from + OSD containting deserialized data + + + + Serializes OSD to binary format. It does no prepend header + + OSD to serialize + Serialized data + + + + Serializes OSD to binary format + + OSD to serialize + + Serialized data + + + + Serializes OSD to binary format. It does no prepend header + + OSD to serialize + Serialized data + + + + Serializes OSD to binary format + + OSD to serialize + + Serialized data + + - - + - + - + + - + - + + - + - - + + + - + - - + - + - + + + + + + + + @@ -212,122 +288,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Uses reflection to create an SDMap from all of the SD - serializable types in an object - - Class or struct containing serializable types - An SDMap holding the serialized values from the - container object - - - - Uses reflection to deserialize member variables in an object from - an SDMap - - Reference to an object to fill with deserialized - values - Serialized values to put in the target - object - - - - - - - - - - - - + + + - + + + - + + + - + + + - + + + - + + + - + + + + - + + + diff --git a/bin/OpenMetaverse.StructuredData.dll b/bin/OpenMetaverse.StructuredData.dll index 5c0b3c6..8c72174 100755 Binary files a/bin/OpenMetaverse.StructuredData.dll and b/bin/OpenMetaverse.StructuredData.dll differ diff --git a/bin/OpenMetaverse.XML b/bin/OpenMetaverse.XML index 6e57fed..36e5b92 100644 --- a/bin/OpenMetaverse.XML +++ b/bin/OpenMetaverse.XML @@ -4,9836 +4,9682 @@ OpenMetaverse - - = + + + Permission request flags, asked when a script wants to control an Avatar + - - Number of times we've received an unknown CAPS exception in series. + + Placeholder for empty values, shouldn't ever see this - - For exponential backoff on error. + + Script wants ability to take money from you - - - Add a custom decoder callback - - The key of the field to decode - The custom decode handler + + Script wants to take camera controls for you - - - Remove a custom decoder callback - - The key of the field to decode - The custom decode handler + + Script wants to remap avatars controls - - - Creates a formatted string containing the values of a Packet - - The Packet - A formatted string of values of the nested items in the Packet object + + Script wants to trigger avatar animations + This function is not implemented on the grid - - - Decode an IMessage object into a beautifully formatted string - - The IMessage object - Recursion level (used for indenting) - A formatted string containing the names and values of the source object + + Script wants to attach or detach the prim or primset to your avatar - - - A custom decoder callback - - The key of the object - the data to decode - A string represending the fieldData + + Script wants permission to release ownership + This function is not implemented on the grid + The concept of "public" objects does not exist anymore. - + + Script wants ability to link/delink with other prims + + + Script wants permission to change joints + This function is not implemented on the grid + + + Script wants permissions to change permissions + This function is not implemented on the grid + + + Script wants to track avatars camera position and rotation + + + Script wants to control your camera + + + Script wants the ability to teleport you + + - Access to the data server which allows searching for land, events, people, etc + Special commands used in Instant Messages - - The event subscribers. null if no subcribers + + Indicates a regular IM from another agent - - Raises the EventInfoReply event - An EventInfoReplyEventArgs object containing the - data returned from the data server + + Simple notification box with an OK button - - Thread sync lock object + + You've been invited to join a group. - - The event subscribers. null if no subcribers + + Inventory offer - - Raises the DirEventsReply event - An DirEventsReplyEventArgs object containing the - data returned from the data server + + Accepted inventory offer - - Thread sync lock object + + Declined inventory offer - - The event subscribers. null if no subcribers + + Group vote - - Raises the PlacesReply event - A PlacesReplyEventArgs object containing the - data returned from the data server + + An object is offering its inventory - - Thread sync lock object + + Accept an inventory offer from an object - - The event subscribers. null if no subcribers + + Decline an inventory offer from an object - - Raises the DirPlacesReply event - A DirPlacesReplyEventArgs object containing the - data returned from the data server + + Unknown - - Thread sync lock object + + Start a session, or add users to a session - - The event subscribers. null if no subcribers + + Start a session, but don't prune offline users - - Raises the DirClassifiedsReply event - A DirClassifiedsReplyEventArgs object containing the - data returned from the data server + + Start a session with your group - - Thread sync lock object + + Start a session without a calling card (finder or objects) - - The event subscribers. null if no subcribers + + Send a message to a session - - Raises the DirGroupsReply event - A DirGroupsReplyEventArgs object containing the - data returned from the data server + + Leave a session - - Thread sync lock object + + Indicates that the IM is from an object - - The event subscribers. null if no subcribers + + Sent an IM to a busy user, this is the auto response - - Raises the DirPeopleReply event - A DirPeopleReplyEventArgs object containing the - data returned from the data server + + Shows the message in the console and chat history - - Thread sync lock object + + Send a teleport lure - - The event subscribers. null if no subcribers + + Response sent to the agent which inititiated a teleport invitation - - Raises the DirLandReply event - A DirLandReplyEventArgs object containing the - data returned from the data server + + Response sent to the agent which inititiated a teleport invitation - - Thread sync lock object + + Only useful if you have Linden permissions - - - Constructs a new instance of the DirectoryManager class - - An instance of GridClient + + Request a teleport lure - - - Query the data server for a list of classified ads containing the specified string. - Defaults to searching for classified placed in any category, and includes PG, Adult and Mature - results. - - Responses are sent 16 per response packet, there is no way to know how many results a query reply will contain however assuming - the reply packets arrived ordered, a response with less than 16 entries would indicate all results have been received - - The event is raised when a response is received from the simulator - - A string containing a list of keywords to search for - A UUID to correlate the results when the event is raised + + IM to tell the user to go to an URL - - - Query the data server for a list of classified ads which contain specified keywords (Overload) - - The event is raised when a response is received from the simulator - - A string containing a list of keywords to search for - The category to search - A set of flags which can be ORed to modify query options - such as classified maturity rating. - A UUID to correlate the results when the event is raised - - Search classified ads containing the key words "foo" and "bar" in the "Any" category that are either PG or Mature - - UUID searchID = StartClassifiedSearch("foo bar", ClassifiedCategories.Any, ClassifiedQueryFlags.PG | ClassifiedQueryFlags.Mature); - - - - Responses are sent 16 at a time, there is no way to know how many results a query reply will contain however assuming - the reply packets arrived ordered, a response with less than 16 entries would indicate all results have been received - + + IM for help - - - Starts search for places (Overloaded) - - The event is raised when a response is received from the simulator - - Search text - Each request is limited to 100 places - being returned. To get the first 100 result entries of a request use 0, - from 100-199 use 1, 200-299 use 2, etc. - A UUID to correlate the results when the event is raised + + IM sent automatically on call for help, sends a lure + to each Helper reached - - - Queries the dataserver for parcels of land which are flagged to be shown in search - - The event is raised when a response is received from the simulator - - A string containing a list of keywords to search for separated by a space character - A set of flags which can be ORed to modify query options - such as classified maturity rating. - The category to search - Each request is limited to 100 places - being returned. To get the first 100 result entries of a request use 0, - from 100-199 use 1, 200-299 use 2, etc. - A UUID to correlate the results when the event is raised - - Search places containing the key words "foo" and "bar" in the "Any" category that are either PG or Adult - - UUID searchID = StartDirPlacesSearch("foo bar", DirFindFlags.DwellSort | DirFindFlags.IncludePG | DirFindFlags.IncludeAdult, ParcelCategory.Any, 0); - - - - Additional information on the results can be obtained by using the ParcelManager.InfoRequest method - + + Like an IM but won't go to email - - - Starts a search for land sales using the directory - - The event is raised when a response is received from the simulator - - What type of land to search for. Auction, - estate, mainland, "first land", etc - The OnDirLandReply event handler must be registered before - calling this function. There is no way to determine how many - results will be returned, or how many times the callback will be - fired other than you won't get more than 100 total parcels from - each query. + + IM from a group officer to all group members - - - Starts a search for land sales using the directory - - The event is raised when a response is received from the simulator - - What type of land to search for. Auction, - estate, mainland, "first land", etc - Maximum price to search for - Maximum area to search for - Each request is limited to 100 parcels - being returned. To get the first 100 parcels of a request use 0, - from 100-199 use 1, 200-299 use 2, etc. - The OnDirLandReply event handler must be registered before - calling this function. There is no way to determine how many - results will be returned, or how many times the callback will be - fired other than you won't get more than 100 total parcels from - each query. + + Unknown - - - Send a request to the data server for land sales listings - - - Flags sent to specify query options - - Available flags: - Specify the parcel rating with one or more of the following: - IncludePG IncludeMature IncludeAdult - - Specify the field to pre sort the results with ONLY ONE of the following: - PerMeterSort NameSort AreaSort PricesSort - - Specify the order the results are returned in, if not specified the results are pre sorted in a Descending Order - SortAsc - - Specify additional filters to limit the results with one or both of the following: - LimitByPrice LimitByArea - - Flags can be combined by separating them with the | (pipe) character - - Additional details can be found in - - What type of land to search for. Auction, - Estate or Mainland - Maximum price to search for when the - DirFindFlags.LimitByPrice flag is specified in findFlags - Maximum area to search for when the - DirFindFlags.LimitByArea flag is specified in findFlags - Each request is limited to 100 parcels - being returned. To get the first 100 parcels of a request use 0, - from 100-199 use 100, 200-299 use 200, etc. - The event will be raised with the response from the simulator - - There is no way to determine how many results will be returned, or how many times the callback will be - fired other than you won't get more than 100 total parcels from - each reply. - - Any land set for sale to either anybody or specific to the connected agent will be included in the - results if the land is included in the query - - - // request all mainland, any maturity rating that is larger than 512 sq.m - StartLandSearch(DirFindFlags.SortAsc | DirFindFlags.PerMeterSort | DirFindFlags.LimitByArea | DirFindFlags.IncludePG | DirFindFlags.IncludeMature | DirFindFlags.IncludeAdult, SearchTypeFlags.Mainland, 0, 512, 0); - + + Unknown - - - Search for Groups - - The name or portion of the name of the group you wish to search for - Start from the match number - + + Accept a group invitation - - - Search for Groups - - The name or portion of the name of the group you wish to search for - Start from the match number - Search flags - + + Decline a group invitation - - - Search the People directory for other avatars - - The name or portion of the name of the avatar you wish to search for - - + + Unknown - - - Search Places for parcels of land you personally own - + + An avatar is offering you friendship - - - Searches Places for land owned by the specified group - - ID of the group you want to recieve land list for (You must be a member of the group) - Transaction (Query) ID which can be associated with results from your request. + + An avatar has accepted your friendship offer - - - Search the Places directory for parcels that are listed in search and contain the specified keywords - - A string containing the keywords to search for - Transaction (Query) ID which can be associated with results from your request. + + An avatar has declined your friendship offer - - - Search Places - All Options - - One of the Values from the DirFindFlags struct, ie: AgentOwned, GroupOwned, etc. - One of the values from the SearchCategory Struct, ie: Any, Linden, Newcomer - A string containing a list of keywords to search for separated by a space character - String Simulator Name to search in - LLUID of group you want to recieve results for - Transaction (Query) ID which can be associated with results from your request. - Transaction (Query) ID which can be associated with results from your request. + + Indicates that a user has started typing - + + Indicates that a user has stopped typing + + - Search All Events with specifid searchText in all categories, includes PG, Mature and Adult + Flag in Instant Messages, whether the IM should be delivered to + offline avatars as well - A string containing a list of keywords to search for separated by a space character - Each request is limited to 100 entries - being returned. To get the first group of entries of a request use 0, - from 100-199 use 100, 200-299 use 200, etc. - UUID of query to correlate results in callback. - + + Only deliver to online avatars + + + If the avatar is offline the message will be held until + they login next, and possibly forwarded to their e-mail account + + - Search Events + Conversion type to denote Chat Packet types in an easier-to-understand format - A string containing a list of keywords to search for separated by a space character - One or more of the following flags: DateEvents, IncludePG, IncludeMature, IncludeAdult - from the Enum - - Multiple flags can be combined by separating the flags with the | (pipe) character - "u" for in-progress and upcoming events, -or- number of days since/until event is scheduled - For example "0" = Today, "1" = tomorrow, "2" = following day, "-1" = yesterday, etc. - Each request is limited to 100 entries - being returned. To get the first group of entries of a request use 0, - from 100-199 use 100, 200-299 use 200, etc. - EventCategory event is listed under. - UUID of query to correlate results in callback. - - - Requests Event Details - ID of Event returned from the method - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Whisper (5m radius) - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Normal chat (10/20m radius), what the official viewer typically sends - - Process an incoming event message - The Unique Capabilities Key - The event message containing the data - The simulator the message originated from + + Shouting! (100m radius) - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Event message when an Avatar has begun to type - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Event message when an Avatar has stopped typing - - Process an incoming event message - The Unique Capabilities Key - The event message containing the data - The simulator the message originated from + + Send the message to the debug channel - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Event message when an object uses llOwnerSay - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Special value to support llRegionSay, never sent to the client - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Raised when the data server responds to a request. + + + Identifies the source of a chat message + - - Raised when the data server responds to a request. + + Chat from the grid or simulator - - Raised when the data server responds to a request. + + Chat from another avatar - - Raised when the data server responds to a request. + + Chat from an object - - Raised when the data server responds to a request. + + + + - - Raised when the data server responds to a request. + + - - Raised when the data server responds to a request. + + - - Raised when the data server responds to a request. + + - - Classified Ad categories + + + Effect type used in ViewerEffect packets + - - Classified is listed in the Any category + + - - Classified is shopping related + + - - Classified is + + - + - + - + - + - + + Project a beam from a source to a destination, such as + the one used when editing an object + + - + - + - - Event Categories + + Create a swirl of particles around an object - + - + - + + Cause an avatar to look at an object + + + Cause an avatar to point at an object + + + + The action an avatar is doing when looking at something, used in + ViewerEffect packets for the LookAt effect + + + - + - + - + - + - + - + + Deprecated + + - + - + - + - + - Query Flags used in many of the DirectoryManager methods to specify which query to execute and how to return the results. - - Flags can be combined using the | (pipe) character, not all flags are available in all queries + The action an avatar is doing when pointing at something, used in + ViewerEffect packets for the PointAt effect - - Query the People database - - + - + - - Query the Groups database + + - - Query the Events database + + - - Query the land holdings database for land owned by the currently connected agent + + + Money transaction types + - + - - Query the land holdings database for land which is owned by a Group + + - - Specifies the query should pre sort the results based upon traffic - when searching the Places database + + - + - + - + - + - - Specifies the query should pre sort the results in an ascending order when searching the land sales database. - This flag is only used when searching the land sales database + + - - Specifies the query should pre sort the results using the SalePrice field when searching the land sales database. - This flag is only used when searching the land sales database + + - - Specifies the query should pre sort the results by calculating the average price/sq.m (SalePrice / Area) when searching the land sales database. - This flag is only used when searching the land sales database + + - - Specifies the query should pre sort the results using the ParcelSize field when searching the land sales database. - This flag is only used when searching the land sales database + + - - Specifies the query should pre sort the results using the Name field when searching the land sales database. - This flag is only used when searching the land sales database + + - - When set, only parcels less than the specified Price will be included when searching the land sales database. - This flag is only used when searching the land sales database + + - - When set, only parcels greater than the specified Size will be included when searching the land sales database. - This flag is only used when searching the land sales database + + - + - + - - Include PG land in results. This flag is used when searching both the Groups, Events and Land sales databases + + - - Include Mature land in results. This flag is used when searching both the Groups, Events and Land sales databases + + - - Include Adult land in results. This flag is used when searching both the Groups, Events and Land sales databases + + - + - - - Land types to search dataserver for - + + - - Search Auction, Mainland and Estate + + - - Land which is currently up for auction + + - - Parcels which are on the mainland (Linden owned) continents + + - - Parcels which are on privately owned simulators + + - - - The content rating of the event - + + - - Event is PG + + - - Event is Mature - - - Event is Adult + + - - - Classified Ad Options - - There appear to be two formats the flags are packed in. - This set of flags is for the newer style + + - + - + - + - + - + - - - Classified ad query options - + + - - Include all ads in results + + - - Include PG ads in results + + - - Include Mature ads in results + + - - Include Adult ads in results + + - - - The For Sale flag in PlacesReplyData - + + - - Parcel is not listed for sale + + - - Parcel is For Sale + + - - - A classified ad on the grid - + + - - UUID for this ad, useful for looking up detailed - information about it + + - - The title of this classified ad + + - - Flags that show certain options applied to the classified + + - - Creation date of the ad + + - - Expiration date of the ad + + - - Price that was paid for this ad + + - - Print the struct data as a string - A string containing the field name, and field value + + - + - A parcel retrieved from the dataserver such as results from the - "For-Sale" listings or "Places" Search + - - The unique dataserver parcel ID - This id is used to obtain additional information from the entry - by using the method - - - A string containing the name of the parcel - - - The size of the parcel - This field is not returned for Places searches + + - - The price of the parcel - This field is not returned for Places searches + + - - If True, this parcel is flagged to be auctioned + + - - If true, this parcel is currently set for sale + + - - Parcel traffic + + - - Print the struct data as a string - A string containing the field name, and field value + + - + - An Avatar returned from the dataserver + - - Online status of agent - This field appears to be obsolete and always returns false + + - - The agents first name + + - - The agents last name + + - - The agents + + - - Print the struct data as a string - A string containing the field name, and field value + + - + + + + - Response to a "Groups" Search + Flags sent when a script takes or releases a control + NOTE: (need to verify) These might be a subset of the ControlFlags enum in Movement, - - The Group ID + + No Flags set - - The name of the group + + Forward (W or up Arrow) - - The current number of members + + Back (S or down arrow) - - Print the struct data as a string - A string containing the field name, and field value + + Move left (shift+A or left arrow) - - - Parcel information returned from a request - - Represents one of the following: - A parcel of land on the grid that has its Show In Search flag set - A parcel of land owned by the agent making the request - A parcel of land owned by a group the agent making the request is a member of - - - In a request for Group Land, the First record will contain an empty record - - Note: This is not the same as searching the land for sale data source - + + Move right (shift+D or right arrow) - - The ID of the Agent of Group that owns the parcel + + Up (E or PgUp) - - The name + + Down (C or PgDown) - - The description + + Rotate left (A or left arrow) - - The Size of the parcel + + Rotate right (D or right arrow) - - The billable Size of the parcel, for mainland - parcels this will match the ActualArea field. For Group owned land this will be 10 percent smaller - than the ActualArea. For Estate land this will always be 0 + + Left Mouse Button - - Indicates the ForSale status of the parcel + + Left Mouse button in MouseLook - - The Gridwide X position + + + Currently only used to hide your group title + - - The Gridwide Y position + + No flags set - - The Z position of the parcel, or 0 if no landing point set + + Hide your group title - - The name of the Region the parcel is located in + + + Action state of the avatar, which can currently be typing and + editing + - - The Asset ID of the parcels Snapshot texture + + - - The calculated visitor traffic - - - The billing product SKU - Known values are: - - 023Mainland / Full Region - 024Estate / Full Region - 027Estate / Openspace - 029Estate / Homestead - 129Mainland / Homestead (Linden Owned) - - - - - No longer used, will always be 0 - - - Get a SL URL for the parcel - A string, containing a standard SLURL + + - - Print the struct data as a string - A string containing the field name, and field value + + - + - An "Event" Listing summary + Current teleport status - - The ID of the event creator - - - The name of the event + + Unknown status - - The events ID + + Teleport initialized - - A string containing the short date/time the event will begin + + Teleport in progress - - The event start time in Unixtime (seconds since epoch) + + Teleport failed - - The events maturity rating + + Teleport completed - - Print the struct data as a string - A string containing the field name, and field value + + Teleport cancelled - + - The details of an "Event" + - - The events ID - - - The ID of the event creator - - - The name of the event + + No flags set, or teleport failed - - The category + + Set when newbie leaves help island for first time - - The events description + + - - The short date/time the event will begin + + Via Lure - - The event start time in Unixtime (seconds since epoch) UTC adjusted + + Via Landmark - - The length of the event in minutes + + Via Location - - 0 if no cover charge applies + + Via Home - - The cover charge amount in L$ if applicable + + Via Telehub - - The name of the region where the event is being held + + Via Login - - The gridwide location of the event + + Linden Summoned - - The maturity rating + + Linden Forced me - - Get a SL URL for the parcel where the event is hosted - A string, containing a standard SLURL + + - - Print the struct data as a string - A string containing the field name, and field value + + Agent Teleported Home via Script - - Contains the Event data returned from the data server from an EventInfoRequest + + - - Construct a new instance of the EventInfoReplyEventArgs class - A single EventInfo object containing the details of an event + + - - - A single EventInfo object containing the details of an event - + + - - Contains the "Event" detail data returned from the data server + + forced to new location for example when avatar is banned or ejected - - Construct a new instance of the DirEventsReplyEventArgs class - The ID of the query returned by the data server. - This will correlate to the ID returned by the method - A list containing the "Events" returned by the search query + + Teleport Finished via a Lure - - The ID returned by + + Finished, Sim Changed - - A list of "Events" returned by the data server + + Finished, Same Sim - - Contains the "Event" list data returned from the data server + + + + - - Construct a new instance of PlacesReplyEventArgs class - The ID of the query returned by the data server. - This will correlate to the ID returned by the method - A list containing the "Places" returned by the data server query + + - - The ID returned by + + - - A list of "Places" returned by the data server + + - - Contains the places data returned from the data server + + + + - - Construct a new instance of the DirPlacesReplyEventArgs class - The ID of the query returned by the data server. - This will correlate to the ID returned by the method - A list containing land data returned by the data server + + - - The ID returned by + + - - A list containing Places data returned by the data server + + - - Contains the classified data returned from the data server + + - - Construct a new instance of the DirClassifiedsReplyEventArgs class - A list of classified ad data returned from the data server + + + Type of mute entry + - - A list containing Classified Ads returned by the data server + + Object muted by name - - Contains the group data returned from the data server + + Muted residet - - Construct a new instance of the DirGroupsReplyEventArgs class - The ID of the query returned by the data server. - This will correlate to the ID returned by the method - A list of groups data returned by the data server + + Object muted by UUID - - The ID returned by + + Muted group - - A list containing Groups data returned by the data server + + Muted external entry - - Contains the people data returned from the data server + + + Flags of mute entry + - - Construct a new instance of the DirPeopleReplyEventArgs class - The ID of the query returned by the data server. - This will correlate to the ID returned by the method - A list of people data returned by the data server + + No exceptions - - The ID returned by + + Don't mute text chat - - A list containing People data returned by the data server + + Don't mute voice chat - - Contains the land sales data returned from the data server + + Don't mute particles - - Construct a new instance of the DirLandReplyEventArgs class - A list of parcels for sale returned by the data server + + Don't mute sounds - - A list containing land forsale data returned by the data server + + Don't mute - + - Sent to the client to indicate a teleport request has completed + Instant Message - - - Interface requirements for Messaging system - + + Key of sender - - The of the agent + + Name of sender - - + + Key of destination avatar - - The simulators handle the agent teleported to + + ID of originating estate - - A Uri which contains a list of Capabilities the simulator supports + + Key of originating region - - Indicates the level of access required - to access the simulator, or the content rating, or the simulators - map status + + Coordinates in originating region - - The IP Address of the simulator + + Instant message type - - The UDP Port the simulator will listen for UDP traffic on + + Group IM session toggle - - Status flags indicating the state of the Agent upon arrival, Flying, etc. + + Key of IM session, for Group Messages, the groups UUID - - - Serialize the object - - An containing the objects data + + Timestamp of the instant message - - - Deserialize the message - - An containing the data + + Instant message text - - - Sent to the viewer when a neighboring simulator is requesting the agent make a connection to it. - + + Whether this message is held for offline avatars - - - Serialize the object - - An containing the objects data + + Context specific packed data - - - Deserialize the message - - An containing the data + + Print the struct data as a string + A string containing the field name, and field value - - - Serialize the object - - An containing the objects data + + Represents muted object or resident - - - Deserialize the message - - An containing the data + + Type of the mute entry - - - Serialize the object - - An containing the objects data + + UUID of the mute etnry - - - Deserialize the message - - An containing the data + + Mute entry name - - - A message sent to the client which indicates a teleport request has failed - and contains some information on why it failed - + + Mute flags - - + + Transaction detail sent with MoneyBalanceReply message - - A string key of the reason the teleport failed e.g. CouldntTPCloser - Which could be used to look up a value in a dictionary or enum + + Type of the transaction - - The of the Agent + + UUID of the transaction source - - A string human readable message containing the reason - An example: Could not teleport closer to destination + + Is the transaction source a group - - - Serialize the object - - An containing the objects data + + UUID of the transaction destination - - - Deserialize the message - - An containing the data + + Is transaction destination a group - - - Serialize the object - - An containing the objects data + + Transaction amount - - - Deserialize the message - - An containing the data + + Transaction description - + - Contains a list of prim owner information for a specific parcel in a simulator + Manager class for our own avatar - - A Simulator will always return at least 1 entry - If agent does not have proper permission the OwnerID will be UUID.Zero - If agent does not have proper permission OR there are no primitives on parcel - the DataBlocksExtended map will not be sent from the simulator - - - - An Array of objects - - - Serialize the object - - An containing the objects data + + The event subscribers. null if no subcribers - - - Deserialize the message - - An containing the data + + Raises the ChatFromSimulator event + A ChatEventArgs object containing the + data returned from the data server - - - Prim ownership information for a specified owner on a single parcel - + + Thread sync lock object - - The of the prim owner, - UUID.Zero if agent has no permission to view prim owner information + + The event subscribers. null if no subcribers - - The total number of prims + + Raises the ScriptDialog event + A SctriptDialogEventArgs object containing the + data returned from the data server - - True if the OwnerID is a + + Thread sync lock object - - True if the owner is online - This is no longer used by the LL Simulators + + The event subscribers. null if no subcribers - - The date the most recent prim was rezzed + + Raises the ScriptQuestion event + A ScriptQuestionEventArgs object containing the + data returned from the data server - - - The details of a single parcel in a region, also contains some regionwide globals - + + Thread sync lock object - - Simulator-local ID of this parcel + + The event subscribers. null if no subcribers - - Maximum corner of the axis-aligned bounding box for this - parcel + + Raises the LoadURL event + A LoadUrlEventArgs object containing the + data returned from the data server - - Minimum corner of the axis-aligned bounding box for this - parcel + + Thread sync lock object - - Total parcel land area + + The event subscribers. null if no subcribers - - + + Raises the MoneyBalance event + A BalanceEventArgs object containing the + data returned from the data server - - Key of authorized buyer + + Thread sync lock object - - Bitmap describing land layout in 4x4m squares across the - entire region + + The event subscribers. null if no subcribers - - + + Raises the MoneyBalanceReply event + A MoneyBalanceReplyEventArgs object containing the + data returned from the data server - - Date land was claimed + + Thread sync lock object - - Appears to always be zero + + The event subscribers. null if no subcribers - - Parcel Description + + Raises the IM event + A InstantMessageEventArgs object containing the + data returned from the data server - - + + Thread sync lock object - - + + The event subscribers. null if no subcribers - - Total number of primitives owned by the parcel group on - this parcel + + Raises the TeleportProgress event + A TeleportEventArgs object containing the + data returned from the data server - - Whether the land is deeded to a group or not - - - + + Thread sync lock object - - Maximum number of primitives this parcel supports + + The event subscribers. null if no subcribers - - The Asset UUID of the Texture which when applied to a - primitive will display the media + + Raises the AgentDataReply event + A AgentDataReplyEventArgs object containing the + data returned from the data server - - A URL which points to any Quicktime supported media type + + Thread sync lock object - - A byte, if 0x1 viewer should auto scale media to fit object + + The event subscribers. null if no subcribers - - URL For Music Stream + + Raises the AnimationsChanged event + A AnimationsChangedEventArgs object containing the + data returned from the data server - - Parcel Name + + Thread sync lock object - - Autoreturn value in minutes for others' objects + + The event subscribers. null if no subcribers - - + + Raises the MeanCollision event + A MeanCollisionEventArgs object containing the + data returned from the data server - - Total number of other primitives on this parcel + + Thread sync lock object - - UUID of the owner of this parcel + + The event subscribers. null if no subcribers - - Total number of primitives owned by the parcel owner on - this parcel + + Raises the RegionCrossed event + A RegionCrossedEventArgs object containing the + data returned from the data server - - + + Thread sync lock object - - How long is pass valid for + + The event subscribers. null if no subcribers - - Price for a temporary pass + + Raises the GroupChatJoined event + A GroupChatJoinedEventArgs object containing the + data returned from the data server - - + + Thread sync lock object - - + + The event subscribers. null if no subcribers - - + + Raises the AlertMessage event + A AlertMessageEventArgs object containing the + data returned from the data server - - + + Thread sync lock object - - True if the region denies access to age unverified users + + The event subscribers. null if no subcribers - - + + Raises the ScriptControlChange event + A ScriptControlEventArgs object containing the + data returned from the data server - - This field is no longer used + + Thread sync lock object - - The result of a request for parcel properties + + The event subscribers. null if no subcribers - - Sale price of the parcel, only useful if ForSale is set - The SalePrice will remain the same after an ownership - transfer (sale), so it can be used to see the purchase price after - a sale if the new owner has not changed it + + Raises the CameraConstraint event + A CameraConstraintEventArgs object containing the + data returned from the data server - - - Number of primitives your avatar is currently - selecting and sitting on in this parcel - + + Thread sync lock object - - + + The event subscribers. null if no subcribers - - - A number which increments by 1, starting at 0 for each ParcelProperties request. - Can be overriden by specifying the sequenceID with the ParcelPropertiesRequest being sent. - a Negative number indicates the action in has occurred. - + + Raises the ScriptSensorReply event + A ScriptSensorReplyEventArgs object containing the + data returned from the data server - - Maximum primitives across the entire simulator + + Thread sync lock object - - Total primitives across the entire simulator + + The event subscribers. null if no subcribers - - + + Raises the AvatarSitResponse event + A AvatarSitResponseEventArgs object containing the + data returned from the data server - - Key of parcel snapshot + + Thread sync lock object - - Parcel ownership status + + The event subscribers. null if no subcribers - - Total number of primitives on this parcel + + Raises the ChatSessionMemberAdded event + A ChatSessionMemberAddedEventArgs object containing the + data returned from the data server - - + + Thread sync lock object - - + + The event subscribers. null if no subcribers - - A description of the media + + Raises the ChatSessionMemberLeft event + A ChatSessionMemberLeftEventArgs object containing the + data returned from the data server - - An Integer which represents the height of the media + + Thread sync lock object - - An integer which represents the width of the media + + The event subscribers, null of no subscribers - - A boolean, if true the viewer should loop the media + + Raises the SetDisplayNameReply Event + A SetDisplayNameReplyEventArgs object containing + the data sent from the simulator - - A string which contains the mime type of the media + + Thread sync lock object - - true to obscure (hide) media url + + The event subscribers. null if no subcribers - - true to obscure (hide) music url + + Raises the MuteListUpdated event + A EventArgs object containing the + data returned from the data server - - - Serialize the object - - An containing the objects data + + Thread sync lock object - - - Deserialize the message - - An containing the data + + Reference to the GridClient instance - - A message sent from the viewer to the simulator to updated a specific parcels settings + + Used for movement and camera tracking - - The of the agent authorized to purchase this - parcel of land or a NULL if the sale is authorized to anyone + + Currently playing animations for the agent. Can be used to + check the current movement status such as walking, hovering, aiming, + etc. by checking against system animations found in the Animations class - - true to enable auto scaling of the parcel media + + Dictionary containing current Group Chat sessions and members - - The category of this parcel used when search is enabled to restrict - search results + + Dictionary containing mute list keyead on mute name and key - - A string containing the description to set + + Various abilities and preferences sent by the grid - - The of the which allows for additional - powers and restrictions. + + + Constructor, setup callbacks for packets related to our avatar + + A reference to the Class - - The which specifies how avatars which teleport - to this parcel are handled + + + Send a text message from the Agent to the Simulator + + A containing the message + The channel to send the message on, 0 is the public channel. Channels above 0 + can be used however only scripts listening on the specified channel will see the message + Denotes the type of message being sent, shout, whisper, etc. - - The LocalID of the parcel to update settings on - - - A string containing the description of the media which can be played - to visitors - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - Deserialize the message + Request any instant messages sent while the client was offline to be resent. - An containing the data - + - Serialize the object + Send an Instant Message to another Avatar - An containing the objects data - - - Base class used for the RemoteParcelRequest message + The recipients + A containing the message to send - + - A message sent from the viewer to the simulator to request information - on a remote parcel + Send an Instant Message to an existing group chat or conference chat + The recipients + A containing the message to send + IM session ID (to differentiate between IM windows) - - Local sim position of the parcel we are looking up - - - Region handle of the parcel we are looking up - - - Region of the parcel we are looking up - - + - Serialize the object + Send an Instant Message - An containing the objects data + The name this IM will show up as being from + Key of Avatar + Text message being sent + IM session ID (to differentiate between IM windows) + IDs of sessions for a conference - + - Deserialize the message + Send an Instant Message - An containing the data + The name this IM will show up as being from + Key of Avatar + Text message being sent + IM session ID (to differentiate between IM windows) + Type of instant message to send + Whether to IM offline avatars as well + Senders Position + RegionID Sender is In + Packed binary data that is specific to + the dialog type - + - A message sent from the simulator to the viewer in response to a - which will contain parcel information + Send an Instant Message to a group + of the group to send message to + Text Message being sent. - - The grid-wide unique parcel ID - - + - Serialize the object + Send an Instant Message to a group the agent is a member of - An containing the objects data + The name this IM will show up as being from + of the group to send message to + Text message being sent - + - Deserialize the message + Send a request to join a group chat session - An containing the data + of Group to leave - + - A message containing a request for a remote parcel from a viewer, or a response - from the simulator to that request + Exit a group chat session. This will stop further Group chat messages + from being sent until session is rejoined. + of Group chat session to leave - - The request or response details block + + + Reply to script dialog questions. + + Channel initial request came on + Index of button you're "clicking" + Label of button you're "clicking" + of Object that sent the dialog request + - + - Serialize the object + Accept invite for to a chatterbox session - An containing the objects data + of session to accept invite to - + - Deserialize the message + Start a friends conference - An containing the data + List of UUIDs to start a conference with + the temportary session ID returned in the callback> - + - Serialize the object + Start a particle stream between an agent and an object - An containing the objects data + Key of the source agent + Key of the target object + + The type from the enum + A unique for this effect - + - Deserialize the message + Start a particle stream between an agent and an object - An containing the data + Key of the source agent + Key of the target object + A representing the beams offset from the source + A which sets the avatars lookat animation + of the Effect - + - Serialize the object + Create a particle beam between an avatar and an primitive - An containing the objects data + The ID of source avatar + The ID of the target primitive + global offset + A object containing the combined red, green, blue and alpha + color values of particle beam + a float representing the duration the parcicle beam will last + A Unique ID for the beam + - + - Deserialize the message + Create a particle swirl around a target position using a packet - An containing the data + global offset + A object containing the combined red, green, blue and alpha + color values of particle beam + a float representing the duration the parcicle beam will last + A Unique ID for the beam - + - A message sent from the simulator to an agent which contains - the groups the agent is in + Sends a request to sit on the specified object + of the object to sit on + Sit at offset - - The Agent receiving the message + + + Follows a call to to actually sit on the object + - - An array containing information - for each the agent is a member of + + Stands up from sitting on a prim or the ground + true of AgentUpdate was sent - - An array containing information - for each the agent is a member of + + + Does a "ground sit" at the avatar's current position + - + - Serialize the object + Starts or stops flying - An containing the objects data + True to start flying, false to stop flying - + - Deserialize the message + Starts or stops crouching - An containing the data + True to start crouching, false to stop crouching - - Group Details specific to the agent + + + Starts a jump (begin holding the jump key) + - - true of the agent accepts group notices - - - The agents tier contribution to the group - - - The Groups - - - The of the groups insignia - - - The name of the group - - - The aggregate permissions the agent has in the group for all roles the agent - is assigned - - - An optional block containing additional agent specific information - - - true of the agent allows this group to be - listed in their profile - - + - A message sent from the viewer to the simulator which - specifies the language and permissions for others to detect - the language specified + Use the autopilot sim function to move the avatar to a new + position. Uses double precision to get precise movements + The z value is currently not handled properly by the simulator + Global X coordinate to move to + Global Y coordinate to move to + Z coordinate to move to - - A string containng the default language - to use for the agent - - - true of others are allowed to - know the language setting - - + - Serialize the object + Use the autopilot sim function to move the avatar to a new position - An containing the objects data + The z value is currently not handled properly by the simulator + Integer value for the global X coordinate to move to + Integer value for the global Y coordinate to move to + Floating-point value for the Z coordinate to move to - + - Deserialize the message + Use the autopilot sim function to move the avatar to a new position - An containing the data + The z value is currently not handled properly by the simulator + Integer value for the local X coordinate to move to + Integer value for the local Y coordinate to move to + Floating-point value for the Z coordinate to move to - + + Macro to cancel autopilot sim function + Not certain if this is how it is really done + true if control flags were set and AgentUpdate was sent to the simulator + + - An EventQueue message sent from the simulator to an agent when the agent - leaves a group + Grabs an object + an unsigned integer of the objects ID within the simulator + - + - An Array containing the AgentID and GroupID + Overload: Grab a simulated object + an unsigned integer of the objects ID within the simulator + + The texture coordinates to grab + The surface coordinates to grab + The face of the position to grab + The region coordinates of the position to grab + The surface normal of the position to grab (A normal is a vector perpindicular to the surface) + The surface binormal of the position to grab (A binormal is a vector tangen to the surface + pointing along the U direction of the tangent space - + - Serialize the object + Drag an object - An containing the objects data + of the object to drag + Drag target in region coordinates - + - Deserialize the message + Overload: Drag an object - An containing the data - - - An object containing the Agents UUID, and the Groups UUID - - - The ID of the Agent leaving the group - - - The GroupID the Agent is leaving - - - Base class for Asset uploads/results via Capabilities + of the object to drag + Drag target in region coordinates + + The texture coordinates to grab + The surface coordinates to grab + The face of the position to grab + The region coordinates of the position to grab + The surface normal of the position to grab (A normal is a vector perpindicular to the surface) + The surface binormal of the position to grab (A binormal is a vector tangen to the surface + pointing along the U direction of the tangent space - + - The request state + Release a grabbed object + The Objects Simulator Local ID + + + - + - Serialize the object + Release a grabbed object - An containing the objects data + The Objects Simulator Local ID + The texture coordinates to grab + The surface coordinates to grab + The face of the position to grab + The region coordinates of the position to grab + The surface normal of the position to grab (A normal is a vector perpindicular to the surface) + The surface binormal of the position to grab (A binormal is a vector tangen to the surface + pointing along the U direction of the tangent space - + - Deserialize the message + Touches an object - An containing the data + an unsigned integer of the objects ID within the simulator + - + - A message sent from the viewer to the simulator to request a temporary upload capability - which allows an asset to be uploaded + Request the current L$ balance - - The Capability URL sent by the simulator to upload the baked texture to - - + - A message sent from the simulator that will inform the agent the upload is complete, - and the UUID of the uploaded asset + Give Money to destination Avatar + UUID of the Target Avatar + Amount in L$ - - The uploaded texture asset ID - - + - A message sent from the viewer to the simulator to request a temporary - capability URI which is used to upload an agents baked appearance textures + Give Money to destination Avatar + UUID of the Target Avatar + Amount in L$ + Description that will show up in the + recipients transaction history - - Object containing request or response - - + - Serialize the object + Give L$ to an object - An containing the objects data + object to give money to + amount of L$ to give + name of object - + - Deserialize the message + Give L$ to a group - An containing the data + group to give money to + amount of L$ to give - + - A message sent from the simulator which indicates the minimum version required for - using voice chat + Give L$ to a group + group to give money to + amount of L$ to give + description of transaction - - Major Version Required - - - Minor version required - - - The name of the region sending the version requrements - - + - Serialize the object + Pay texture/animation upload fee - An containing the objects data - + - Deserialize the message + Pay texture/animation upload fee - An containing the data + description of the transaction - + - A message sent from the simulator to the viewer containing the - voice server URI + Give Money to destination Object or Avatar + UUID of the Target Object/Avatar + Amount in L$ + Reason (Optional normally) + The type of transaction + Transaction flags, mostly for identifying group + transactions - - The Parcel ID which the voice server URI applies - - - The name of the region - - - A uri containing the server/channel information - which the viewer can utilize to participate in voice conversations - - + - Serialize the object + Plays a gesture - An containing the objects data + Asset of the gesture - + - Deserialize the message + Mark gesture active - An containing the data + Inventory of the gesture + Asset of the gesture - + - + Mark gesture inactive + Inventory of the gesture - - - - - - - + - Serialize the object + Send an AgentAnimation packet that toggles a single animation on - An containing the objects data + The of the animation to start playing + Whether to ensure delivery of this packet or not - + - Deserialize the message + Send an AgentAnimation packet that toggles a single animation off - An containing the data + The of a + currently playing animation to stop playing + Whether to ensure delivery of this packet or not - + - A message sent by the viewer to the simulator to request a temporary - capability for a script contained with in a Tasks inventory to be updated + Send an AgentAnimation packet that will toggle animations on or off + A list of animation s, and whether to + turn that animation on or off + Whether to ensure delivery of this packet or not - - Object containing request or response - - + - Serialize the object + Teleports agent to their stored home location - An containing the objects data + true on successful teleport to home location - + - Deserialize the message + Teleport agent to a landmark - An containing the data + of the landmark to teleport agent to + true on success, false on failure - + - A message sent from the simulator to the viewer to indicate - a Tasks scripts status. + Attempt to look up a simulator name and teleport to the discovered + destination + Region name to look up + Position to teleport to + True if the lookup and teleport were successful, otherwise + false - - The Asset ID of the script - - - True of the script is compiled/ran using the mono interpreter, false indicates it - uses the older less efficient lsl2 interprter - - - The Task containing the scripts - - - true of the script is in a running state - - + - Serialize the object + Attempt to look up a simulator name and teleport to the discovered + destination - An containing the objects data + Region name to look up + Position to teleport to + Target to look at + True if the lookup and teleport were successful, otherwise + false - + - Deserialize the message + Teleport agent to another region - An containing the data + handle of region to teleport agent to + position in destination sim to teleport to + true on success, false on failure + This call is blocking - + - A message containing the request/response used for updating a gesture - contained with an agents inventory + Teleport agent to another region + handle of region to teleport agent to + position in destination sim to teleport to + direction in destination sim agent will look at + true on success, false on failure + This call is blocking - - Object containing request or response - - + - Serialize the object + Request teleport to a another simulator - An containing the objects data + handle of region to teleport agent to + position in destination sim to teleport to - + - Deserialize the message + Request teleport to a another simulator - An containing the data + handle of region to teleport agent to + position in destination sim to teleport to + direction in destination sim agent will look at - + - A message request/response which is used to update a notecard contained within - a tasks inventory + Teleport agent to a landmark + of the landmark to teleport agent to - - The of the Task containing the notecard asset to update - - - The notecard assets contained in the tasks inventory - - + - Serialize the object + Send a teleport lure to another avatar with default "Join me in ..." invitation message - An containing the objects data + target avatars to lure - + - Deserialize the message + Send a teleport lure to another avatar with custom invitation message - An containing the data + target avatars to lure + custom message to send with invitation - + - A reusable class containing a message sent from the viewer to the simulator to request a temporary uploader capability - which is used to update an asset in an agents inventory + Respond to a teleport lure by either accepting it and initiating + the teleport, or denying it + of the avatar sending the lure + IM session of the incoming lure request + true to accept the lure, false to decline it - + - The Notecard AssetID to replace + Update agent profile + struct containing updated + profile information - + - Serialize the object + Update agents profile interests - An containing the objects data + selection of interests from struct - + - Deserialize the message + Set the height and the width of the client window. This is used + by the server to build a virtual camera frustum for our avatar - An containing the data + New height of the viewer window + New width of the viewer window - + - A message containing the request/response used for updating a notecard - contained with an agents inventory + Request the list of muted objects and avatars for this agent - - Object containing request or response - - + - Serialize the object + Mute an object, resident, etc. - An containing the objects data + Mute type + Mute UUID + Mute name - + - Deserialize the message + Mute an object, resident, etc. - An containing the data + Mute type + Mute UUID + Mute name + Mute flags - + - Serialize the object + Unmute an object, resident, etc. - An containing the objects data + Mute UUID + Mute name - + - Deserialize the message + Sets home location to agents current position - An containing the data + will fire an AlertMessage () with + success or failure message - + - A message sent from the simulator to the viewer which indicates - an error occurred while attempting to update a script in an agents or tasks - inventory + Move an agent in to a simulator. This packet is the last packet + needed to complete the transition in to a new simulator + Object - - true of the script was successfully compiled by the simulator - - - A string containing the error which occured while trying - to update the script - - - A new AssetID assigned to the script - - + - A message sent from the viewer to the simulator - requesting the update of an existing script contained - within a tasks inventory + Reply to script permissions request + Object + of the itemID requesting permissions + of the taskID requesting permissions + list of permissions to allow - - if true, set the script mode to running - - - The scripts InventoryItem ItemID to update - - - A lowercase string containing either "mono" or "lsl2" which - specifies the script is compiled and ran on the mono runtime, or the older - lsl runtime - - - The tasks which contains the script to update - - + - Serialize the object + Respond to a group invitation by either accepting or denying it - An containing the objects data + UUID of the group (sent in the AgentID field of the invite message) + IM Session ID from the group invitation message + Accept the group invitation or deny it - + - Deserialize the message + Requests script detection of objects and avatars - An containing the data - - + name of the object/avatar to search for + UUID of the object or avatar to search for + Type of search from ScriptSensorTypeFlags + range of scan (96 max?) + the arc in radians to search within + an user generated ID to correlate replies with + Simulator to perform search in + + - A message containing either the request or response used in updating a script inside - a tasks inventory + Create or update profile pick + UUID of the pick to update, or random UUID to create a new pick + Is this a top pick? (typically false) + UUID of the parcel (UUID.Zero for the current parcel) + Name of the pick + Global position of the pick landmark + UUID of the image displayed with the pick + Long description of the pick - - Object containing request or response - - + - Serialize the object + Delete profile pick - An containing the objects data + UUID of the pick to delete - + - Deserialize the message + Create or update profile Classified - An containing the data + UUID of the classified to update, or random UUID to create a new classified + Defines what catagory the classified is in + UUID of the image displayed with the classified + Price that the classified will cost to place for a week + Global position of the classified landmark + Name of the classified + Long description of the classified + if true, auto renew classified after expiration - + - Response from the simulator to notify the viewer the upload is completed, and - the UUID of the script asset and its compiled status + Create or update profile Classified + UUID of the classified to update, or random UUID to create a new classified + Defines what catagory the classified is in + UUID of the image displayed with the classified + Price that the classified will cost to place for a week + Name of the classified + Long description of the classified + if true, auto renew classified after expiration - - The uploaded texture asset ID - - - true of the script was compiled successfully - - + - A message sent from a viewer to the simulator requesting a temporary uploader capability - used to update a script contained in an agents inventory + Delete a classified ad + The classified ads ID - - The existing asset if of the script in the agents inventory to replace - - - The language of the script - Defaults to lsl version 2, "mono" might be another possible option - - + - Serialize the object + Fetches resource usage by agents attachmetns - An containing the objects data + Called when the requested information is collected - + - Deserialize the message + Initates request to set a new display name - An containing the data + Previous display name + Desired new display name - + - A message containing either the request or response used in updating a script inside - an agents inventory + Tells the sim what UI language is used, and if it's ok to share that with scripts + Two letter language code + Share language info with scripts - - Object containing request or response - - + - Serialize the object + Sets agents maturity access level - An containing the objects data + PG, M or A - + - Deserialize the message + Sets agents maturity access level - An containing the data + PG, M or A + Callback function - + - Serialize the object + Take an incoming ImprovedInstantMessage packet, auto-parse, and if + OnInstantMessage is defined call that with the appropriate arguments - An containing the objects data + The sender + The EventArgs object containing the packet data - + - Deserialize the message + Take an incoming Chat packet, auto-parse, and if OnChat is defined call + that with the appropriate arguments. - An containing the data - - - Base class for Map Layers via Capabilities + The sender + The EventArgs object containing the packet data - - + + + Used for parsing llDialogs + + The sender + The EventArgs object containing the packet data - + - Serialize the object + Used for parsing llRequestPermissions dialogs - An containing the objects data + The sender + The EventArgs object containing the packet data - + - Deserialize the message + Handles Script Control changes when Script with permissions releases or takes a control - An containing the data + The sender + The EventArgs object containing the packet data - + - Sent by an agent to the capabilities server to request map layers + Used for parsing llLoadURL Dialogs + The sender + The EventArgs object containing the packet data - + - A message sent from the simulator to the viewer which contains an array of map images and their grid coordinates + Update client's Position, LookAt and region handle from incoming packet + The sender + The EventArgs object containing the packet data + This occurs when after an avatar moves into a new sim - - An array containing LayerData items + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + - Serialize the object + EQ Message fired with the result of SetDisplayName request - An containing the objects data + The message key + the IMessage object containing the deserialized data sent from the simulator + The which originated the packet - + - Deserialize the message + Process TeleportFailed message sent via EventQueue, informs agent its last teleport has failed and why. - An containing the data + The Message Key + An IMessage object Deserialized from the recieved message event + The simulator originating the event message - + - An object containing map location details + Process TeleportFinish from Event Queue and pass it onto our TeleportHandler + The message system key for this event + IMessage object containing decoded data from OSD + The simulator originating the event message - - The Asset ID of the regions tile overlay - - - The grid location of the southern border of the map tile + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - The grid location of the western border of the map tile + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - The grid location of the eastern border of the map tile + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - The grid location of the northern border of the map tile + + + Crossed region handler for message that comes across the EventQueue. Sent to an agent + when the agent crosses a sim border into a new region. + + The message key + the IMessage object containing the deserialized data sent from the simulator + The which originated the packet - - Object containing request or response + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + This packet is now being sent via the EventQueue - + - Serialize the object + Group Chat event handler - An containing the objects data + The capability Key + IMessage object containing decoded data from OSD + - + - Deserialize the message + Response from request to join a group chat - An containing the data + + IMessage object containing decoded data from OSD + - + - New as of 1.23 RC1, no details yet. + Someone joined or left group chat + + IMessage object containing decoded data from OSD + - + - Serialize the object + Handle a group chat Invitation - An containing the objects data + Caps Key + IMessage object containing decoded data from OSD + Originating Simulator - + - Deserialize the message - - An containing the data - - - - Serialize the object + Moderate a chat session - An containing the objects data + the of the session to moderate, for group chats this will be the groups UUID + the of the avatar to moderate + Either "voice" to moderate users voice, or "text" to moderate users text session + true to moderate (silence user), false to allow avatar to speak - - - Deserialize the message - - An containing the data + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - A string containing the method used + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - A request sent from an agent to the Simulator to begin a new conference. - Contains a list of Agents which will be included in the conference - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - An array containing the of the agents invited to this conference + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - The conferences Session ID + + Raised when a scripted object or agent within range sends a public message - - - Serialize the object - - An containing the objects data + + Raised when a scripted object sends a dialog box containing possible + options an agent can respond to - - - Deserialize the message - - An containing the data + + Raised when an object requests a change in the permissions an agent has permitted - - - A moderation request sent from a conference moderator - Contains an agent and an optional action to take - + + Raised when a script requests an agent open the specified URL - - The Session ID + + Raised when an agents currency balance is updated - - + + Raised when a transaction occurs involving currency such as a land purchase - - A list containing Key/Value pairs, known valid values: - key: text value: true/false - allow/disallow specified agents ability to use text in session - key: voice value: true/false - allow/disallow specified agents ability to use voice in session - - "text" or "voice" + + Raised when an ImprovedInstantMessage packet is recieved from the simulator, this is used for everything from + private messaging to friendship offers. The Dialog field defines what type of message has arrived - - + + Raised when an agent has requested a teleport to another location, or when responding to a lure. Raised multiple times + for each teleport indicating the progress of the request - - - Serialize the object - - An containing the objects data + + Raised when a simulator sends agent specific information for our avatar. - - - Deserialize the message - - An containing the data + + Raised when our agents animation playlist changes - - - A message sent from the agent to the simulator which tells the - simulator we've accepted a conference invitation - + + Raised when an object or avatar forcefully collides with our agent - - The conference SessionID + + Raised when our agent crosses a region border into another region - - - Serialize the object - - An containing the objects data + + Raised when our agent succeeds or fails to join a group chat session - - - Deserialize the message - - An containing the data + + Raised when a simulator sends an urgent message usually indication the recent failure of + another action we have attempted to take such as an attempt to enter a parcel where we are denied access - - - Serialize the object - - An containing the objects data + + Raised when a script attempts to take or release specified controls for our agent - - - Deserialize the message - - An containing the data + + Raised when the simulator detects our agent is trying to view something + beyond its limits - - - Serialize the object - - An containing the objects data + + Raised when a script sensor reply is received from a simulator - - - Deserialize the message - - An containing the data + + Raised in response to a request - - - Serialize the object - - An containing the objects data + + Raised when an avatar enters a group chat session we are participating in - - - Deserialize the message - - An containing the data + + Raised when an agent exits a group chat session we are participating in - - Key of sender + + Raised when the simulator sends us data containing + the details of display name change - - Name of sender + + Raised when a scripted object or agent within range sends a public message - - Key of destination avatar + + Your (client) avatars + "client", "agent", and "avatar" all represent the same thing - - ID of originating estate + + Temporary assigned to this session, used for + verifying our identity in packets - - Key of originating region + + Shared secret that is never sent over the wire - - Coordinates in originating region + + Your (client) avatar ID, local to the current region/sim - - Instant message type + + Where the avatar started at login. Can be "last", "home" + or a login - - Group IM session toggle + + The access level of this agent, usually M, PG or A - - Key of IM session, for Group Messages, the groups UUID + + The CollisionPlane of Agent - - Timestamp of the instant message + + An representing the velocity of our agent - - Instant message text + + An representing the acceleration of our agent - - Whether this message is held for offline avatars + + A which specifies the angular speed, and axis about which an Avatar is rotating. - - Context specific packed data + + Position avatar client will goto when login to 'home' or during + teleport request to 'home' region. - - Is this invitation for voice group/conference chat + + LookAt point saved/restored with HomePosition - - - Serialize the object - - An containing the objects data + + Avatar First Name (i.e. Philip) - - - Deserialize the message - - An containing the data + + Avatar Last Name (i.e. Linden) - - - Sent from the simulator to the viewer. - - When an agent initially joins a session the AgentUpdatesBlock object will contain a list of session members including - a boolean indicating they can use voice chat in this session, a boolean indicating they are allowed to moderate - this session, and lastly a string which indicates another agent is entering the session with the Transition set to "ENTER" - - During the session lifetime updates on individuals are sent. During the update the booleans sent during the initial join are - excluded with the exception of the Transition field. This indicates a new user entering or exiting the session with - the string "ENTER" or "LEAVE" respectively. - + + LookAt point received with the login response message - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - An EventQueue message sent when the agent is forcibly removed from a chatterbox session - + + Avatar Full Name (i.e. Philip Linden) - - - A string containing the reason the agent was removed - + + Gets the health of the agent - - - The ChatterBoxSession's SessionID - + + Gets the current balance of the agent - - - Serialize the object - - An containing the objects data + + Gets the local ID of the prim the agent is sitting on, + zero if the avatar is not currently sitting - - - Deserialize the message - - An containing the data + + Gets the of the agents active group. - - - Serialize the object - - An containing the objects data + + Gets the Agents powers in the currently active group - - - Deserialize the message - - An containing the data + + Current status message for teleporting - - - Serialize the object - - An containing the objects data + + Current position of the agent as a relative offset from + the simulator, or the parent object if we are sitting on something - - - Deserialize the message - - An containing the data + + Current rotation of the agent as a relative rotation from + the simulator, or the parent object if we are sitting on something - - - Serialize the object - - An containing the objects data + + Current position of the agent in the simulator - + - Deserialize the message + A representing the agents current rotation - An containing the data - - - Serialize the object - - An containing the objects data + + Returns the global grid position of the avatar - + - Deserialize the message + Called once attachment resource usage information has been collected - An containing the data + Indicates if operation was successfull + Attachment resource usage information - - + + + Agent movement and camera control - + Agent movement is controlled by setting specific + After the control flags are set, An AgentUpdate is required to update the simulator of the specified flags + This is most easily accomplished by setting one or more of the AgentMovement properties + + Movement of an avatar is always based on a compass direction, for example AtPos will move the + agent from West to East or forward on the X Axis, AtNeg will of course move agent from + East to West or backward on the X Axis, LeftPos will be South to North or forward on the Y Axis + The Z axis is Up, finer grained control of movements can be done using the Nudge properties + - - - Serialize the object - - An containing the objects data + + Agent camera controls - - - Deserialize the message - - An containing the data + + Currently only used for hiding your group title - - - Serialize the object - - An containing the objects data + + Action state of the avatar, which can currently be + typing and editing - - - Deserialize the message - - An containing the data + + - - - Serialize the object - - An containing the objects data + + - - - Deserialize the message - - An containing the data + + - - - A message sent from the viewer to the simulator which - specifies that the user has changed current URL - of the specific media on a prim face - + + - - - New URL - + + - - - Prim UUID where navigation occured - + + - - - Face index - + + - - - Serialize the object - - An containing the objects data + + - - - Deserialize the message - - An containing the data + + - - Base class used for the ObjectMedia message + + Timer for sending AgentUpdate packets - - - Message used to retrive prim media data - + + Default constructor - + - Prim UUID + Send an AgentUpdate with the camera set at the current agent + position and pointing towards the heading specified + Camera rotation in radians + Whether to send the AgentUpdate reliable + or not - + - Requested operation, either GET or UPDATE + Rotates the avatar body and camera toward a target position. + This will also anchor the camera position on the avatar + Region coordinates to turn toward - + - Serialize object + Rotates the avatar body and camera toward a target position. + This will also anchor the camera position on the avatar - Serialized object as OSDMap + Region coordinates to turn toward + whether to send update or not - + - Deserialize the message + Send new AgentUpdate packet to update our current camera + position and rotation - An containing the data - + - Message used to update prim media data + Send new AgentUpdate packet to update our current camera + position and rotation + Whether to require server acknowledgement + of this packet - + - Prim UUID + Send new AgentUpdate packet to update our current camera + position and rotation + Whether to require server acknowledgement + of this packet + Simulator to send the update to - + - Array of media entries indexed by face number + Builds an AgentUpdate packet entirely from parameters. This + will not touch the state of Self.Movement or + Self.Movement.Camera in any way + + + + + + + + + + + - + - Media version string + Sends update of Field of Vision vertical angle to the simulator + Angle in radians - - - Serialize object - - Serialized object as OSDMap + + Move agent positive along the X axis - - - Deserialize the message - - An containing the data + + Move agent negative along the X axis - - - Message used to update prim media data - + + Move agent positive along the Y axis - - - Prim UUID - + + Move agent negative along the Y axis - - - Array of media entries indexed by face number - + + Move agent positive along the Z axis - - - Requested operation, either GET or UPDATE - + + Move agent negative along the Z axis - - - Serialize object - - Serialized object as OSDMap + + - - - Deserialize the message - - An containing the data + + - - - Message for setting or getting per face MediaEntry - + + - - The request or response details block + + - - - Serialize the object - - An containing the objects data + + - - - Deserialize the message - - An containing the data + + - - Details about object resource usage + + - - Object UUID + + Causes simulator to make agent fly - - Object name + + Stop movement - - Indicates if object is group owned + + Finish animation - - Locatio of the object + + Stand up from a sit - - Object owner + + Tells simulator to sit agent on ground - - Resource usage, keys are resource names, values are resource usage for that specific resource + + Place agent into mouselook mode - - - Deserializes object from OSD - - An containing the data + + Nudge agent positive along the X axis - - - Makes an instance based on deserialized data - - serialized data - Instance containg deserialized data + + Nudge agent negative along the X axis - - Details about parcel resource usage + + Nudge agent positive along the Y axis - - Parcel UUID + + Nudge agent negative along the Y axis - - Parcel local ID + + Nudge agent positive along the Z axis - - Parcel name + + Nudge agent negative along the Z axis - - Indicates if parcel is group owned + + - - Parcel owner + + - - Array of containing per object resource usage + + Tell simulator to mark agent as away - - - Deserializes object from OSD - - An containing the data + + - + + + + + + + + + + - Makes an instance based on deserialized data + Returns "always run" value, or changes it by sending a SetAlwaysRunPacket - serialized data - Instance containg deserialized data - - Resource usage base class, both agent and parcel resource - usage contains summary information + + The current value of the agent control flags - - Summary of available resources, keys are resource names, - values are resource usage for that specific resource + + Gets or sets the interval in milliseconds at which + AgentUpdate packets are sent to the current simulator. Setting + this to a non-zero value will also enable the packet sending if + it was previously off, and setting it to zero will disable - - Summary resource usage, keys are resource names, - values are resource usage for that specific resource + + Gets or sets whether AgentUpdate packets are sent to + the current simulator - - - Serializes object - - serialized data + + Reset movement controls every time we send an update - + - Deserializes object from OSD + Camera controls for the agent, mostly a thin wrapper around + CoordinateFrame. This class is only responsible for state + tracking and math, it does not send any packets - An containing the data - - Agent resource usage + + - - Per attachment point object resource usage + + The camera is a local frame of reference inside of + the larger grid space. This is where the math happens - + - Deserializes object from OSD + Default constructor - An containing the data - - - Makes an instance based on deserialized data - - serialized data - Instance containg deserialized data + + - - - Detects which class handles deserialization of this message - - An containing the data - Object capable of decoding this message + + - - Request message for parcel resource usage + + - - UUID of the parel to request resource usage info + + - + - Serializes object + Used to specify movement actions for your agent - serialized data - - - Deserializes object from OSD - - An containing the data + + Empty flag - - Response message for parcel resource usage + + Move Forward (SL Keybinding: W/Up Arrow) - - URL where parcel resource usage details can be retrieved + + Move Backward (SL Keybinding: S/Down Arrow) - - URL where parcel resource usage summary can be retrieved + + Move Left (SL Keybinding: Shift-(A/Left Arrow)) - - - Serializes object - - serialized data + + Move Right (SL Keybinding: Shift-(D/Right Arrow)) - - - Deserializes object from OSD - - An containing the data + + Not Flying: Jump/Flying: Move Up (SL Keybinding: E) - - - Detects which class handles deserialization of this message - - An containing the data - Object capable of decoding this message + + Not Flying: Croutch/Flying: Move Down (SL Keybinding: C) - - Parcel resource usage + + Unused - - Array of containing per percal resource usage + + Unused - - - Deserializes object from OSD - - An containing the data + + Unused - - - Type of gesture step - + + Unused - - - Base class for gesture steps - + + ORed with AGENT_CONTROL_AT_* if the keyboard is being used - - - Retururns what kind of gesture step this is - + + ORed with AGENT_CONTROL_LEFT_* if the keyboard is being used - - - Describes animation step of a gesture - + + ORed with AGENT_CONTROL_UP_* if the keyboard is being used - - - If true, this step represents start of animation, otherwise animation stop - + + Fly - - - Animation asset - + + - - - Animation inventory name - + + Finish our current animation - - - Returns what kind of gesture step this is - + + Stand up from the ground or a prim seat - - - Describes sound step of a gesture - + + Sit on the ground at our current location - - - Sound asset - + + Whether mouselook is currently enabled - - - Sound inventory name - + + Legacy, used if a key was pressed for less than a certain amount of time - - - Returns what kind of gesture step this is - + + Legacy, used if a key was pressed for less than a certain amount of time - - - Describes sound step of a gesture - + + Legacy, used if a key was pressed for less than a certain amount of time - - - Text to output in chat - + + Legacy, used if a key was pressed for less than a certain amount of time - - - Returns what kind of gesture step this is - + + Legacy, used if a key was pressed for less than a certain amount of time - - - Describes sound step of a gesture - + + Legacy, used if a key was pressed for less than a certain amount of time - - - If true in this step we wait for all animations to finish - + + - - - If true gesture player should wait for the specified amount of time - + + - - - Time in seconds to wait if WaitForAnimation is false - + + Set when the avatar is idled or set to away. Note that the away animation is + activated separately from setting this flag - - - Returns what kind of gesture step this is - + + - - - Describes the final step of a gesture - + + - - - Returns what kind of gesture step this is - + + - + + + + - Represents a sequence of animations, sounds, and chat actions + Class for sending info on the success of the opration + of setting the maturity access level - + - Base class for all Asset types + Creates new instance of the EventArgs class + Has setting new maturty access level succeeded + New maturity access level as returned by the simulator - - A byte array containing the raw asset data - - - True if the asset it only stored on the server temporarily - - - A unique ID - - + - Construct a new Asset object + New maturity accesss level returned from the sim - + - Construct a new Asset object + True if setting the new maturity access level has succedded - A unique specific to this asset - A byte array containing the raw asset data - + - Regenerates the AssetData byte array from the properties - of the derived class. + - + - Decodes the AssetData, placing it in appropriate properties of the derived - class. + Construct a new instance of the ChatEventArgs object - True if the asset decoding succeeded, otherwise false + Sim from which the message originates + The message sent + The audible level of the message + The type of message sent: whisper, shout, etc + The source type of the message sender + The name of the agent or object sending the message + The ID of the agent or object sending the message + The ID of the object owner, or the agent ID sending the message + The position of the agent or object sending the message - - The assets unique ID + + Get the simulator sending the message - - - The "type" of asset, Notecard, Animation, etc - + + Get the message sent - - - Keyboard key that triggers the gestyre - + + Get the audible level of the message - - - Modifier to the trigger key - + + Get the type of message sent: whisper, shout, etc - - - String that triggers playing of the gesture sequence - + + Get the source type of the message sender - - - Text that replaces trigger in chat once gesture is triggered - + + Get the name of the agent or object sending the message - - - Sequence of gesture steps - + + Get the ID of the agent or object sending the message - - - Constructs guesture asset - + + Get the ID of the object owner, or the agent ID sending the message - - - Constructs guesture asset - - A unique specific to this asset - A byte array containing the raw asset data + + Get the position of the agent or object sending the message - - - Encodes gesture asset suitable for uplaod - + + Contains the data sent when a primitive opens a dialog with this agent - + - Decodes gesture assset into play sequence + Construct a new instance of the ScriptDialogEventArgs - true if the asset data was decoded successfully + The dialog message + The name of the object that sent the dialog request + The ID of the image to be displayed + The ID of the primitive sending the dialog + The first name of the senders owner + The last name of the senders owner + The communication channel the dialog was sent on + The string labels containing the options presented in this dialog + UUID of the scritped object owner - - - Returns asset type - + + Get the dialog message - - - Archives assets - + + Get the name of the object that sent the dialog request - - - Archive assets - + + Get the ID of the image to be displayed - - - Archive the assets given to this archiver to the given archive. - - + + Get the ID of the primitive sending the dialog - - - Write an assets metadata file to the given archive - - + + Get the first name of the senders owner - - - Write asset data files to the given archive - - + + Get the last name of the senders owner - - - Constants for the archiving module - + + Get the communication channel the dialog was sent on, responses + should also send responses on this same channel - - - The location of the archive control file - + + Get the string labels containing the options presented in this dialog - - - Path for the assets held in an archive - + + UUID of the scritped object owner - - - Path for the prims file - + + Contains the data sent when a primitive requests debit or other permissions + requesting a YES or NO answer - + - Path for terrains. Technically these may be assets, but I think it's quite nice to split them out. + Construct a new instance of the ScriptQuestionEventArgs + The simulator containing the object sending the request + The ID of the script making the request + The ID of the primitive containing the script making the request + The name of the primitive making the request + The name of the owner of the object making the request + The permissions being requested - - - Path for region settings. - + + Get the simulator containing the object sending the request - - - The character the separates the uuid from extension information in an archived asset filename - + + Get the ID of the script making the request - - - Extensions used for asset types in the archive - + + Get the ID of the primitive containing the script making the request - - - Capabilities is the name of the bi-directional HTTP REST protocol - used to communicate non real-time transactions such as teleporting or - group messaging - + + Get the name of the primitive making the request - - Reference to the simulator this system is connected to + + Get the name of the owner of the object making the request - - - Default constructor - - - + + Get the permissions being requested - - - Request the URI of a named capability - - Name of the capability to request - The URI of the requested capability, or String.Empty if - the capability does not exist + + Contains the data sent when a primitive sends a request + to an agent to open the specified URL - + - Process any incoming events, check to see if we have a message created for the event, + Construct a new instance of the LoadUrlEventArgs - - + The name of the object sending the request + The ID of the object sending the request + The ID of the owner of the object sending the request + True if the object is owned by a group + The message sent with the request + The URL the object sent - - Capabilities URI this system was initialized with + + Get the name of the object sending the request - - Whether the capabilities event queue is connected and - listening for incoming events + + Get the ID of the object sending the request - - - Triggered when an event is received via the EventQueueGet - capability - - Event name - Decoded event data - The simulator that generated the event + + Get the ID of the owner of the object sending the request - - - Throttles the network traffic for various different traffic types. - Access this class through GridClient.Throttle - + + True if the object is owned by a group - - - Default constructor, uses a default high total of 1500 KBps (1536000) - + + Get the message sent with the request - + + Get the URL the object sent + + + The date received from an ImprovedInstantMessage + + - Constructor that decodes an existing AgentThrottle packet in to - individual values + Construct a new instance of the InstantMessageEventArgs object - Reference to the throttle data in an AgentThrottle - packet - Offset position to start reading at in the - throttle data - This is generally not needed in clients as the server will - never send a throttle packet to the client + the InstantMessage object + the simulator where the InstantMessage origniated - + + Get the InstantMessage object + + + Get the simulator where the InstantMessage origniated + + + Contains the currency balance + + - Send an AgentThrottle packet to the current server using the - current values + Construct a new BalanceEventArgs object + The currenct balance - + - Send an AgentThrottle packet to the specified server using the - current values + Get the currenct balance - - - Convert the current throttle values to a byte array that can be put - in an AgentThrottle packet + + Contains the transaction summary when an item is purchased, + money is given, or land is purchased + + + + Construct a new instance of the MoneyBalanceReplyEventArgs object - Byte array containing all the throttle values + The ID of the transaction + True of the transaction was successful + The current currency balance + The meters credited + The meters comitted + A brief description of the transaction + Transaction info - - Maximum bits per second for resending unacknowledged packets + + Get the ID of the transaction - - Maximum bits per second for LayerData terrain + + True of the transaction was successful - - Maximum bits per second for LayerData wind data + + Get the remaining currency balance - - Maximum bits per second for LayerData clouds + + Get the meters credited - - Unknown, includes object data + + Get the meters comitted - - Maximum bits per second for textures + + Get the description of the transaction - - Maximum bits per second for downloaded assets + + Detailed transaction information - - Maximum bits per second the entire connection, divided up - between invidiual streams using default multipliers + + Data sent from the simulator containing information about your agent and active group information - + - Particle system specific enumerators, flags and methods. + Construct a new instance of the AgentDataReplyEventArgs object + The agents first name + The agents last name + The agents active group ID + The group title of the agents active group + The combined group powers the agent has in the active group + The name of the group the agent has currently active - - + + Get the agents first name - - + + Get the agents last name - - + + Get the active group ID of your agent - - + + Get the active groups title of your agent - - + + Get the combined group powers of your agent - - + + Get the active group name of your agent - - Foliage type for this primitive. Only applicable if this - primitive is foliage + + Data sent by the simulator to indicate the active/changed animations + applied to your agent - - Unknown + + + Construct a new instance of the AnimationsChangedEventArgs class + + The dictionary that contains the changed animations - - + + Get the dictionary that contains the changed animations - - + + + Data sent from a simulator indicating a collision with your agent + - - + + + Construct a new instance of the MeanCollisionEventArgs class + + The type of collision that occurred + The ID of the agent or object that perpetrated the agression + The ID of the Victim + The strength of the collision + The Time the collision occurred - - + + Get the Type of collision - - + + Get the ID of the agent or object that collided with your agent - - + + Get the ID of the agent that was attacked - - + + A value indicating the strength of the collision - - + + Get the time the collision occurred - - + + Data sent to your agent when it crosses region boundaries - - + + + Construct a new instance of the RegionCrossedEventArgs class + + The simulator your agent just left + The simulator your agent is now in - - + + Get the simulator your agent just left - - + + Get the simulator your agent is now in - - Identifies the owner if audio or a particle system is - active + + Data sent from the simulator when your agent joins a group chat session - - + + + Construct a new instance of the GroupChatJoinedEventArgs class + + The ID of the session + The name of the session + A temporary session id used for establishing new sessions + True of your agent successfully joined the session - - + + Get the ID of the group chat session - - + + Get the name of the session - - + + Get the temporary session ID used for establishing new sessions - - + + True if your agent successfully joined the session - - + + Data sent by the simulator containing urgent messages - - + + + Construct a new instance of the AlertMessageEventArgs class + + The alert message - - + + Get the alert message - - + + Data sent by a script requesting to take or release specified controls to your agent - - + + + Construct a new instance of the ScriptControlEventArgs class + + The controls the script is attempting to take or release to the agent + True if the script is passing controls back to the agent + True if the script is requesting controls be released to the script - - + + Get the controls the script is attempting to take or release to the agent - - + + True if the script is passing controls back to the agent - - - Default constructor - + + True if the script is requesting controls be released to the script - + - Packs PathTwist, PathTwistBegin, PathRadiusOffset, and PathSkew - parameters in to signed eight bit values + Data sent from the simulator to an agent to indicate its view limits - Floating point parameter to pack - Signed eight bit value containing the packed parameter - + - Unpacks PathTwist, PathTwistBegin, PathRadiusOffset, and PathSkew - parameters from signed eight bit integers to floating point values + Construct a new instance of the CameraConstraintEventArgs class - Signed eight bit value to unpack - Unpacked floating point value + The collision plane - - + + Get the collision plane - + - Current version of the media data for the prim + Data containing script sensor requests which allow an agent to know the specific details + of a primitive sending script sensor requests - + - Array of media entries indexed by face number + Construct a new instance of the ScriptSensorReplyEventArgs + The ID of the primitive sending the sensor + The ID of the group associated with the primitive + The name of the primitive sending the sensor + The ID of the primitive sending the sensor + The ID of the owner of the primitive sending the sensor + The position of the primitive sending the sensor + The range the primitive specified to scan + The rotation of the primitive sending the sensor + The type of sensor the primitive sent + The velocity of the primitive sending the sensor - - - - - - - - Uses basic heuristics to estimate the primitive shape - - - - Parameters used to construct a visual representation of a primitive - - - - - - - - - - + + Get the ID of the primitive sending the sensor - - + + Get the ID of the group associated with the primitive - - + + Get the name of the primitive sending the sensor - - + + Get the ID of the primitive sending the sensor - - + + Get the ID of the owner of the primitive sending the sensor - - + + Get the position of the primitive sending the sensor - - + + Get the range the primitive specified to scan - - + + Get the rotation of the primitive sending the sensor - - + + Get the type of sensor the primitive sent - - + + Get the velocity of the primitive sending the sensor - - + + Contains the response data returned from the simulator in response to a - - + + Construct a new instance of the AvatarSitResponseEventArgs object - - + + Get the ID of the primitive the agent will be sitting on - - + + True if the simulator Autopilot functions were involved - - + + Get the camera offset of the agent when seated - - + + Get the camera eye offset of the agent when seated - - + + True of the agent will be in mouselook mode when seated - - + + Get the position of the agent when seated - - + + Get the rotation of the agent when seated - - Attachment point to an avatar + + Data sent when an agent joins a chat session your agent is currently participating in - - + + + Construct a new instance of the ChatSessionMemberAddedEventArgs object + + The ID of the chat session + The ID of the agent joining - - + + Get the ID of the chat session - - + + Get the ID of the agent that joined - - + + Data sent when an agent exits a chat session your agent is currently participating in - + - Information on the flexible properties of a primitive + Construct a new instance of the ChatSessionMemberLeftEventArgs object + The ID of the chat session + The ID of the Agent that left - - + + Get the ID of the chat session - - + + Get the ID of the agent that left - - + + Event arguments with the result of setting display name operation - - + + Default constructor - - + + Status code, 200 indicates settign display name was successful - - + + Textual description of the status - + + Details of the newly set display name + + - Default constructor + Throttles the network traffic for various different traffic types. + Access this class through GridClient.Throttle - + - + Default constructor, uses a default high total of 1500 KBps (1536000) - - - + - + Constructor that decodes an existing AgentThrottle packet in to + individual values - + Reference to the throttle data in an AgentThrottle + packet + Offset position to start reading at in the + throttle data + This is generally not needed in clients as the server will + never send a throttle packet to the client - + - + Send an AgentThrottle packet to the current server using the + current values - - + - Information on the light properties of a primitive + Send an AgentThrottle packet to the specified server using the + current values - - - - - + + + Convert the current throttle values to a byte array that can be put + in an AgentThrottle packet + + Byte array containing all the throttle values - - + + Maximum bits per second for resending unacknowledged packets - - + + Maximum bits per second for LayerData terrain - - + + Maximum bits per second for LayerData wind data - - - Default constructor - + + Maximum bits per second for LayerData clouds - - - - - - + + Unknown, includes object data - - - - - + + Maximum bits per second for textures - - - - - + + Maximum bits per second for downloaded assets - - - Information on the sculpt properties of a sculpted primitive - + + Maximum bits per second the entire connection, divided up + between invidiual streams using default multipliers - + - Default constructor + Static pre-defined animations available to all agents - - - - - - + + Agent with afraid expression on face - - - Render inside out (inverts the normals). - - - - - Render an X axis mirror of the sculpty. - + + Agent aiming a bazooka (right handed) - - - Extended properties to describe an object - + + Agent aiming a bow (left handed) - - + + Agent aiming a hand gun (right handed) - - + + Agent aiming a rifle (right handed) - - + + Agent with angry expression on face - - + + Agent hunched over (away) - - + + Agent doing a backflip - - + + Agent laughing while holding belly - - + + Agent blowing a kiss - - + + Agent with bored expression on face - - + + Agent bowing to audience - - + + Agent brushing himself/herself off - - + + Agent in busy mode - - + + Agent clapping hands - - + + Agent doing a curtsey bow - - + + Agent crouching - - + + Agent crouching while walking - - + + Agent crying - - + + Agent unanimated with arms out (e.g. setting appearance) - - + + Agent re-animated after set appearance finished - - + + Agent dancing - - + + Agent dancing - - + + Agent dancing - - + + Agent dancing - - + + Agent dancing - - - Default constructor - + + Agent dancing - - - Set the properties that are set in an ObjectPropertiesFamily packet - - that has - been partially filled by an ObjectPropertiesFamily packet + + Agent dancing - - - Complete structure for the particle system - + + Agent dancing - - Particle Flags - There appears to be more data packed in to this area - for many particle systems. It doesn't appear to be flag values - and serialization breaks unless there is a flag for every - possible bit so it is left as an unsigned integer + + Agent on ground unanimated - - pattern of particles + + Agent boozing it up - - A representing the maximimum age (in seconds) particle will be displayed - Maximum value is 30 seconds + + Agent with embarassed expression on face - - A representing the number of seconds, - from when the particle source comes into view, - or the particle system's creation, that the object will emits particles; - after this time period no more particles are emitted + + Agent with afraid expression on face - - A in radians that specifies where particles will not be created + + Agent with angry expression on face - - A in radians that specifies where particles will be created + + Agent with bored expression on face - - A representing the number of seconds between burts. + + Agent crying - - A representing the number of meters - around the center of the source where particles will be created. + + Agent showing disdain (dislike) for something - - A representing in seconds, the minimum speed between bursts of new particles - being emitted + + Agent with embarassed expression on face - - A representing in seconds the maximum speed of new particles being emitted. + + Agent with frowning expression on face - - A representing the maximum number of particles emitted per burst + + Agent with kissy face - - A which represents the velocity (speed) from the source which particles are emitted + + Agent expressing laughgter - - A which represents the Acceleration from the source which particles are emitted + + Agent with open mouth - - The Key of the texture displayed on the particle + + Agent with repulsed expression on face - - The Key of the specified target object or avatar particles will follow + + Agent expressing sadness - - Flags of particle from + + Agent shrugging shoulders - - Max Age particle system will emit particles for + + Agent with a smile - - The the particle has at the beginning of its lifecycle + + Agent expressing surprise - - The the particle has at the ending of its lifecycle + + Agent sticking tongue out - - A that represents the starting X size of the particle - Minimum value is 0, maximum value is 4 + + Agent with big toothy smile - - A that represents the starting Y size of the particle - Minimum value is 0, maximum value is 4 + + Agent winking - - A that represents the ending X size of the particle - Minimum value is 0, maximum value is 4 + + Agent expressing worry - - A that represents the ending Y size of the particle - Minimum value is 0, maximum value is 4 + + Agent falling down - - - Decodes a byte[] array into a ParticleSystem Object - - ParticleSystem object - Start position for BitPacker + + Agent walking (feminine version) - - - Generate byte[] array from particle data - - Byte array + + Agent wagging finger (disapproval) - - - Particle source pattern - + + I'm not sure I want to know - - None + + Agent in superman position - - Drop particles from source position with no force + + Agent in superman position - - "Explode" particles in all directions + + Agent greeting another - - Particles shoot across a 2D area + + Agent holding bazooka (right handed) - - Particles shoot across a 3D Cone + + Agent holding a bow (left handed) - - Inverse of AngleCone (shoot particles everywhere except the 3D cone defined + + Agent holding a handgun (right handed) - - - Particle Data Flags - + + Agent holding a rifle (right handed) - - None + + Agent throwing an object (right handed) - - Interpolate color and alpha from start to end + + Agent in static hover - - Interpolate scale from start to end + + Agent hovering downward - - Bounce particles off particle sources Z height + + Agent hovering upward - - velocity of particles is dampened toward the simulators wind + + Agent being impatient - - Particles follow the source + + Agent jumping - - Particles point towards the direction of source's velocity + + Agent jumping with fervor - - Target of the particles + + Agent point to lips then rear end - - Particles are sent in a straight line + + Agent landing from jump, finished flight, etc - - Particles emit a glow + + Agent laughing - - used for point/grab/touch + + Agent landing from jump, finished flight, etc - - - Particle Flags Enum - + + Agent sitting on a motorcycle - - None + + - - Acceleration and velocity for particles are - relative to the object rotation + + Agent moving head side to side - - Particles use new 'correct' angle parameters + + Agent moving head side to side with unhappy expression - - - Texture animation mode - + + Agent taunting another - - Disable texture animation + + - - Enable texture animation + + Agent giving peace sign - - Loop when animating textures + + Agent pointing at self - - Animate in reverse direction + + Agent pointing at another - - Animate forward then reverse + + Agent preparing for jump (bending knees) - - Slide texture smoothly instead of frame-stepping + + Agent punching with left hand - - Rotate texture instead of using frames + + Agent punching with right hand - - Scale texture instead of using frames + + Agent acting repulsed - - - A single textured face. Don't instantiate this class yourself, use the - methods in TextureEntry - + + Agent trying to be Chuck Norris - - - Contains the definition for individual faces - - + + Rocks, Paper, Scissors 1, 2, 3 - - - - - + + Agent with hand flat over other hand - - + + Agent with fist over other hand - - + + Agent with two fingers spread over other hand - - + + Agent running - - + + Agent appearing sad - - + + Agent saluting - - + + Agent shooting bow (left handed) - - + + Agent cupping mouth as if shouting - - + + Agent shrugging shoulders - - + + Agent in sit position - - + + Agent in sit position (feminine) - - In the future this will specify whether a webpage is - attached to this face + + Agent in sit position (generic) - - + + Agent sitting on ground - - - Represents all of the texturable faces for an object - - Grid objects have infinite faces, with each face - using the properties of the default face unless set otherwise. So if - you have a TextureEntry with a default texture uuid of X, and face 18 - has a texture UUID of Y, every face would be textured with X except for - face 18 that uses Y. In practice however, primitives utilize a maximum - of nine faces + + Agent sitting on ground - + - - + + Agent sleeping on side - - - Constructor that takes a default texture UUID - - Texture UUID to use as the default texture + + Agent smoking - - - Constructor that takes a TextureEntryFace for the - default face - - Face to use as the default face + + Agent inhaling smoke - - - Constructor that creates the TextureEntry class from a byte array - - Byte array containing the TextureEntry field - Starting position of the TextureEntry field in - the byte array - Length of the TextureEntry field, in bytes + + - - - This will either create a new face if a custom face for the given - index is not defined, or return the custom face for that index if - it already exists - - The index number of the face to create or - retrieve - A TextureEntryFace containing all the properties for that - face + + Agent taking a picture - - - - - - + + Agent standing - - - - - + + Agent standing up - - - - - + + Agent standing - - - - - + + Agent standing - - - Controls the texture animation of a particular prim - + + Agent standing - - + + Agent standing - - + + Agent stretching - - + + Agent in stride (fast walk) - - + + Agent surfing - - + + Agent acting surprised - - + + Agent striking with a sword - - + + Agent talking (lips moving) - - - - - - + + Agent throwing a tantrum - - - - - + + Agent throwing an object (right handed) - - - A Wrapper around openjpeg to encode and decode images to and from byte arrays - + + Agent trying on a shirt - - TGA Header size + + Agent turning to the left - - OpenJPEG is not threadsafe, so this object is used to lock - during calls into unmanaged code + + Agent turning to the right - - - Encode a object into a byte array - - The object to encode - true to enable lossless conversion, only useful for small images ie: sculptmaps - A byte array containing the encoded Image object + + Agent typing - - - Encode a object into a byte array - - The object to encode - a byte array of the encoded image + + Agent walking - - - Decode JPEG2000 data to an and - - - JPEG2000 encoded data - ManagedImage object to decode to - Image object to decode to - True if the decode succeeds, otherwise false + + Agent whispering - - - - - - - + + Agent whispering with fingers in mouth - - - - - - - - + + Agent winking - + + Agent winking + + + Agent worried + + + Agent nodding yes + + + Agent nodding yes with happy face + + + Agent floating with legs and arms crossed + + - Encode a object into a byte array + A dictionary containing all pre-defined animations - The source object to encode - true to enable lossless decoding - A byte array containing the source Bitmap object + A dictionary containing the pre-defined animations, + where the key is the animations ID, and the value is a string + containing a name to identify the purpose of the animation - + - Defines the beginning and ending file positions of a layer in an - LRCP-progression JPEG2000 file + Index of TextureEntry slots for avatar appearances - + - This structure is used to marshal both encoded and decoded images. - MUST MATCH THE STRUCT IN dotnet.h! + Bake layers for avatar appearance - + - Information about a single packet in a JPEG2000 stream + Appearance Flags, introdued with server side baking, currently unused - - Packet start position + + Maximum number of concurrent downloads for wearable assets and textures - - Packet header end position + + Maximum number of concurrent uploads for baked textures - - Packet end position + + Timeout for fetching inventory listings - - - Represents an that represents an avatars body ie: Hair, Etc. - + + Timeout for fetching a single wearable, or receiving a single packet response - - - Represents a Wearable Asset, Clothing, Hair, Skin, Etc - + + Timeout for fetching a single texture - - A string containing the name of the asset + + Timeout for uploading a single baked texture - - A string containing a short description of the asset + + Number of times to retry bake upload - - The Assets WearableType + + When changing outfit, kick off rebake after + 20 seconds has passed since the last change - - The For-Sale status of the object + + Total number of wearables for each avatar - - An Integer representing the purchase price of the asset + + Total number of baked textures on each avatar - - The of the assets creator + + Total number of wearables per bake layer - - The of the assets current owner + + Mask for multiple attachments - - The of the assets prior owner + + Mapping between BakeType and AvatarTextureIndex - - The of the Group this asset is set to + + Map of what wearables are included in each bake - - True if the asset is owned by a + + Magic values to finalize the cache check hashes for each + bake - - The Permissions mask of the asset + + Default avatar texture, used to detect when a custom + texture is not set for a face - - A Dictionary containing Key/Value pairs of the objects parameters + + The event subscribers. null if no subcribers - - A Dictionary containing Key/Value pairs where the Key is the textures Index and the Value is the Textures + + Raises the AgentWearablesReply event + An AgentWearablesReplyEventArgs object containing the + data returned from the data server - - Initializes a new instance of an AssetWearable object - - - Initializes a new instance of an AssetWearable object with parameters - A unique specific to this asset - A byte array containing the raw asset data - - - - Decode an assets byte encoded data to a string - - true if the asset data was decoded successfully - - - - Encode the assets string represantion into a format consumable by the asset server - - - - Initializes a new instance of an AssetBodyPart object - - - Initializes a new instance of an AssetBodyPart object with parameters - A unique specific to this asset - A byte array containing the raw asset data - - - Override the base classes AssetType - - - - - - - - - - - - - - + + Thread sync lock object - - + + The event subscribers. null if no subcribers - - + + Raises the CachedBakesReply event + An AgentCachedBakesReplyEventArgs object containing the + data returned from the data server AgentCachedTextureResponse - - + + Thread sync lock object - - + + The event subscribers. null if no subcribers - - + + Raises the AppearanceSet event + An AppearanceSetEventArgs object indicating if the operatin was successfull - - + + Thread sync lock object - - + + The event subscribers. null if no subcribers - - + + Raises the RebakeAvatarRequested event + An RebakeAvatarTexturesEventArgs object containing the + data returned from the data server - - + + Thread sync lock object - - + + Visual parameters last sent to the sim - - + + Textures about this client sent to the sim - - + + A cache of wearables currently being worn - - + + A cache of textures currently being worn - - + + Incrementing serial number for AgentCachedTexture packets - - + + Incrementing serial number for AgentSetAppearance packets - - + + Indicates if WearablesRequest succeeded - - + + Indicates whether or not the appearance thread is currently + running, to prevent multiple appearance threads from running + simultaneously - - + + Reference to our agent - + - + Timer used for delaying rebake on changing outfit - - - - - - - - - - - - - + - + Main appearance thread - - - + - + Is server baking complete. It needs doing only once - - - - - - - - - - - - - + - + Default constructor - - + A reference to our agent - + - + Obsolete method for setting appearance. This function no longer does anything. + Use RequestSetAppearance() to manually start the appearance thread - - - - - - - - - - - - - - - - - - - + - + Obsolete method for setting appearance. This function no longer does anything. + Use RequestSetAppearance() to manually start the appearance thread + Unused parameter - - - - - - - - - - - - - - - - + - + Starts the appearance setting thread - - - + - + Starts the appearance setting thread - - + True to force rebaking, otherwise false - + - + Check if current region supports server side baking - - + True if server side baking support is detected - + - + Ask the server what textures our agent is currently wearing - - - - + - + Build hashes out of the texture assetIDs for each baking layer to + ask the simulator whether it has cached copies of each baked texture - + - + Returns the AssetID of the asset that is currently being worn in a + given WearableType slot - - + WearableType slot to get the AssetID for + The UUID of the asset being worn in the given slot, or + UUID.Zero if no wearable is attached to the given slot or wearables + have not been downloaded yet - + - + Add a wearable to the current outfit and set appearance - - + Wearable to be added to the outfit - + - + Add a wearable to the current outfit and set appearance - + Wearable to be added to the outfit + Should existing item on the same point or of the same type be replaced - + - Permission request flags, asked when a script wants to control an Avatar + Add a list of wearables to the current outfit and set appearance + List of wearable inventory items to + be added to the outfit + Should existing item on the same point or of the same type be replaced - - Placeholder for empty values, shouldn't ever see this - - - Script wants ability to take money from you + + + Add a list of wearables to the current outfit and set appearance + + List of wearable inventory items to + be added to the outfit + Should existing item on the same point or of the same type be replaced - - Script wants to take camera controls for you + + + Remove a wearable from the current outfit and set appearance + + Wearable to be removed from the outfit - - Script wants to remap avatars controls + + + Removes a list of wearables from the current outfit and set appearance + + List of wearable inventory items to + be removed from the outfit - - Script wants to trigger avatar animations - This function is not implemented on the grid + + + Replace the current outfit with a list of wearables and set appearance + + List of wearable inventory items that + define a new outfit - - Script wants to attach or detach the prim or primset to your avatar + + + Replace the current outfit with a list of wearables and set appearance + + List of wearable inventory items that + define a new outfit + Check if we have all body parts, set this to false only + if you know what you're doing - - Script wants permission to release ownership - This function is not implemented on the grid - The concept of "public" objects does not exist anymore. + + + Checks if an inventory item is currently being worn + + The inventory item to check against the agent + wearables + The WearableType slot that the item is being worn in, + or WearbleType.Invalid if it is not currently being worn - - Script wants ability to link/delink with other prims + + + Returns a copy of the agents currently worn wearables + + A copy of the agents currently worn wearables + Avoid calling this function multiple times as it will make + a copy of all of the wearable data each time - - Script wants permission to change joints - This function is not implemented on the grid + + + Calls either or + depending on the value of + replaceItems + + List of wearable inventory items to add + to the outfit or become a new outfit + True to replace existing items with the + new list of items, false to add these items to the existing outfit - - Script wants permissions to change permissions - This function is not implemented on the grid + + + Adds a list of attachments to our agent + + A List containing the attachments to add + If true, tells simulator to remove existing attachment + first - - Script wants to track avatars camera position and rotation + + + Adds a list of attachments to our agent + + A List containing the attachments to add + If true, tells simulator to remove existing attachment + If true replace existing attachment on this attachment point, otherwise add to it (multi-attachments) + first - - Script wants to control your camera + + + Attach an item to our agent at a specific attach point + + A to attach + the on the avatar + to attach the item to - + - Special commands used in Instant Messages + Attach an item to our agent at a specific attach point + A to attach + the on the avatar + If true replace existing attachment on this attachment point, otherwise add to it (multi-attachments) + to attach the item to - - Indicates a regular IM from another agent + + + Attach an item to our agent specifying attachment details + + The of the item to attach + The attachments owner + The name of the attachment + The description of the attahment + The to apply when attached + The of the attachment + The on the agent + to attach the item to - - Simple notification box with an OK button + + + Attach an item to our agent specifying attachment details + + The of the item to attach + The attachments owner + The name of the attachment + The description of the attahment + The to apply when attached + The of the attachment + The on the agent + If true replace existing attachment on this attachment point, otherwise add to it (multi-attachments) + to attach the item to - - You've been invited to join a group. + + + Detach an item from our agent using an object + + An object - - Inventory offer + + + Detach an item from our agent + + The inventory itemID of the item to detach - - Accepted inventory offer + + + Inform the sim which wearables are part of our current outfit + - - Declined inventory offer + + + Replaces the Wearables collection with a list of new wearable items + + Wearable items to replace the Wearables collection with - - Group vote + + + Calculates base color/tint for a specific wearable + based on its params + + All the color info gathered from wearable's VisualParams + passed as list of ColorParamInfo tuples + Base color/tint for the wearable - - An object is offering its inventory + + + Blocking method to populate the Wearables dictionary + + True on success, otherwise false - - Accept an inventory offer from an object + + + Blocking method to populate the Textures array with cached bakes + + True on success, otherwise false - - Decline an inventory offer from an object + + + Populates textures and visual params from a decoded asset + + Wearable to decode + + Populates textures and visual params from a decoded asset + + Wearable to decode - - Unknown + + + Blocking method to download and parse currently worn wearable assets + + True on success, otherwise false - - Start a session, or add users to a session + + + Get a list of all of the textures that need to be downloaded for a + single bake layer + + Bake layer to get texture AssetIDs for + A list of texture AssetIDs to download - - Start a session, but don't prune offline users + + + Helper method to lookup the TextureID for a single layer and add it + to a list if it is not already present + + + - - Start a session with your group + + + Blocking method to download all of the textures needed for baking + the given bake layers + + A list of layers that need baking + No return value is given because the baking will happen + whether or not all textures are successfully downloaded - - Start a session without a calling card (finder or objects) + + + Blocking method to create and upload baked textures for all of the + missing bakes + + True on success, otherwise false - - Send a message to a session + + + Blocking method to create and upload a baked texture for a single + bake layer + + Layer to bake + True on success, otherwise false - - Leave a session - - - Indicates that the IM is from an object - - - Sent an IM to a busy user, this is the auto response - - - Shows the message in the console and chat history + + + Blocking method to upload a baked texture + + Five channel JPEG2000 texture data to upload + UUID of the newly created asset on success, otherwise UUID.Zero - - Send a teleport lure + + + Creates a dictionary of visual param values from the downloaded wearables + + A dictionary of visual param indices mapping to visual param + values for our agent that can be fed to the Baker class - - Response sent to the agent which inititiated a teleport invitation + + + Initate server baking process + + True if the server baking was successful - - Response sent to the agent which inititiated a teleport invitation + + + Get the latest version of COF + + Current Outfit Folder (or null if getting the data failed) - - Only useful if you have Linden permissions + + + Create an AgentSetAppearance packet from Wearables data and the + Textures array and send it + - - A placeholder type for future expansion, currently not - used + + + Converts a WearableType to a bodypart or clothing WearableType + + A WearableType + AssetType.Bodypart or AssetType.Clothing or AssetType.Unknown - - IM to tell the user to go to an URL + + + Converts a BakeType to the corresponding baked texture slot in AvatarTextureIndex + + A BakeType + The AvatarTextureIndex slot that holds the given BakeType - - IM for help + + + Gives the layer number that is used for morph mask + + >A BakeType + Which layer number as defined in BakeTypeToTextures is used for morph mask - - IM sent automatically on call for help, sends a lure - to each Helper reached + + + Converts a BakeType to a list of the texture slots that make up that bake + + A BakeType + A list of texture slots that are inputs for the given bake - - Like an IM but won't go to email + + Triggered when an AgentWearablesUpdate packet is received, + telling us what our avatar is currently wearing + request. - - IM from a group officer to all group members + + Raised when an AgentCachedTextureResponse packet is + received, giving a list of cached bakes that were found on the + simulator + request. - - Unknown + + + Raised when appearance data is sent to the simulator, also indicates + the main appearance thread is finished. + + request. - - Unknown + + + Triggered when the simulator requests the agent rebake its appearance. + + - - Accept a group invitation + + + Returns true if AppearanceManager is busy and trying to set or change appearance will fail + - - Decline a group invitation + + + Contains information about a wearable inventory item + - - Unknown + + Inventory ItemID of the wearable - - An avatar is offering you friendship + + AssetID of the wearable asset - - An avatar has accepted your friendship offer + + WearableType of the wearable - - An avatar has declined your friendship offer + + AssetType of the wearable - - Indicates that a user has started typing + + Asset data for the wearable - - Indicates that a user has stopped typing + + + Data collected from visual params for each wearable + needed for the calculation of the color + - + - Flag in Instant Messages, whether the IM should be delivered to - offline avatars as well + Holds a texture assetID and the data needed to bake this layer into + an outfit texture. Used to keep track of currently worn textures + and baking data - - Only deliver to online avatars + + A texture AssetID - - If the avatar is offline the message will be held until - they login next, and possibly forwarded to their e-mail account + + Asset data for the texture - - - Conversion type to denote Chat Packet types in an easier-to-understand format - + + Collection of alpha masks that needs applying - - Whisper (5m radius) + + Tint that should be applied to the texture - - Normal chat (10/20m radius), what the official viewer typically sends + + Where on avatar does this texture belong - - Shouting! (100m radius) + + Contains the Event data returned from the data server from an AgentWearablesRequest - - Event message when an Avatar has begun to type + + Construct a new instance of the AgentWearablesReplyEventArgs class - - Event message when an Avatar has stopped typing + + Contains the Event data returned from the data server from an AgentCachedTextureResponse - - Send the message to the debug channel + + Construct a new instance of the AgentCachedBakesReplyEventArgs class - - Event message when an object uses llOwnerSay + + Contains the Event data returned from an AppearanceSetRequest - - Special value to support llRegionSay, never sent to the client + + + Triggered when appearance data is sent to the sim and + the main appearance thread is done. + Indicates whether appearance setting was successful - + + Indicates whether appearance setting was successful + + + Contains the Event data returned from the data server from an RebakeAvatarTextures + + - Identifies the source of a chat message + Triggered when the simulator sends a request for this agent to rebake + its appearance + The ID of the Texture Layer to bake - - Chat from the grid or simulator + + The ID of the Texture Layer to bake - - Chat from another avatar + + + Class that handles the local asset cache + - - Chat from an object + + + Default constructor + + A reference to the GridClient object - + - + Disposes cleanup timer - - + + + Only create timer when needed + - - + + + Return bytes read from the local asset cache, null if it does not exist + + UUID of the asset we want to get + Raw bytes of the asset, or null on failure - - + + + Returns ImageDownload object of the + image from the local image cache, null if it does not exist + + UUID of the image we want to get + ImageDownload object containing the image, or null on failure - + - Effect type used in ViewerEffect packets + Constructs a file name of the cached asset + UUID of the asset + String with the file name of the cahced asset - - - - - - - - + + + Constructs a file name of the static cached asset + + UUID of the asset + String with the file name of the static cached asset - - + + + Saves an asset to the local cache + + UUID of the asset + Raw bytes the asset consists of + Weather the operation was successfull - - + + + Get the file name of the asset stored with gived UUID + + UUID of the asset + Null if we don't have that UUID cached on disk, file name if found in the cache folder - - + + + Checks if the asset exists in the local cache + + UUID of the asset + True is the asset is stored in the cache, otherwise false - - + + + Wipes out entire cache + - - Project a beam from a source to a destination, such as - the one used when editing an object + + + Brings cache size to the 90% of the max size + - - + + + Asynchronously brings cache size to the 90% of the max size + - - + + + Adds up file sizes passes in a FileInfo array + - - + + + Checks whether caching is enabled + - - Create a swirl of particles around an object + + + Periodically prune the cache + - - + + + Nicely formats file sizes + + Byte size we want to output + String with humanly readable file size - - + + + Allows setting weather to periodicale prune the cache if it grows too big + Default is enabled, when caching is enabled + - - Cause an avatar to look at an object + + + How long (in ms) between cache checks (default is 5 min.) + - - Cause an avatar to point at an object + + + Helper class for sorting files by their last accessed time + - + - The action an avatar is doing when looking at something, used in - ViewerEffect packets for the LookAt effect + - - + + OK - - + + Transfer completed - + - + - - + + Unknown error occurred - - + + Equivalent to a 404 error - - Deprecated + + Client does not have permission for that resource - - + + Unknown status - - + + + + - + - - + + Unknown - + + Virtually all asset transfers use this channel + + - The action an avatar is doing when pointing at something, used in - ViewerEffect packets for the PointAt effect + - + - - + + Asset from the asset server - - + + Inventory item - - + + Estate asset, such as an estate covenant - + - Money transaction types + - - - - + - + - + - - + + + When requesting image download, type of the image requested + - - + + Normal in-world object texture - - + + Avatar texture - - + + Server baked avatar texture - - + + + Image file format + - - + + + + - - + + Number of milliseconds passed since the last transfer + packet was received - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + + + + + - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + Number of milliseconds to wait for a transfer header packet if out of order data was received - - + + The event subscribers. null if no subcribers - - + + Raises the XferReceived event + A XferReceivedEventArgs object containing the + data returned from the simulator - - + + Thread sync lock object - - + + The event subscribers. null if no subcribers - - + + Raises the AssetUploaded event + A AssetUploadedEventArgs object containing the + data returned from the simulator - - + + Thread sync lock object - - + + The event subscribers. null if no subcribers - - + + Raises the UploadProgress event + A UploadProgressEventArgs object containing the + data returned from the simulator - - + + Thread sync lock object - - + + The event subscribers. null if no subcribers - - + + Raises the InitiateDownload event + A InitiateDownloadEventArgs object containing the + data returned from the simulator - - + + Thread sync lock object - - + + The event subscribers. null if no subcribers - - + + Raises the ImageReceiveProgress event + A ImageReceiveProgressEventArgs object containing the + data returned from the simulator - - + + Thread sync lock object - - + + Texture download cache - + - + Default constructor + A reference to the GridClient object - - - - - + + + Request an asset download + + Asset UUID + Asset type, must be correct for the transfer to succeed + Whether to give this transfer an elevated priority + The callback to fire when the simulator responds with the asset data - - + + + Request an asset download + + Asset UUID + Asset type, must be correct for the transfer to succeed + Whether to give this transfer an elevated priority + Source location of the requested asset + The callback to fire when the simulator responds with the asset data - - + + + Request an asset download + + Asset UUID + Asset type, must be correct for the transfer to succeed + Whether to give this transfer an elevated priority + Source location of the requested asset + UUID of the transaction + The callback to fire when the simulator responds with the asset data - - + + + Request an asset download + + Asset UUID + Asset type, must be correct for the transfer to succeed + Whether to give this transfer an elevated priority + Source location of the requested asset + UUID of the transaction + The callback to fire when the simulator responds with the asset data - - + + + Request an asset download through the almost deprecated Xfer system + + Filename of the asset to request + Whether or not to delete the asset + off the server after it is retrieved + Use large transfer packets or not + UUID of the file to request, if filename is + left empty + Asset type of vFileID, or + AssetType.Unknown if filename is not empty + Sets the FilePath in the request to Cache + (4) if true, otherwise Unknown (0) is used + - + + Use UUID.Zero if you do not have the + asset ID but have all the necessary permissions + The item ID of this asset in the inventory + Use UUID.Zero if you are not requesting an + asset from an object inventory + The owner of this asset + Asset type + Whether to prioritize this asset download or not + - - - - - - - - - - - + + + Used to force asset data into the PendingUpload property, ie: for raw terrain uploads + + An AssetUpload object containing the data to upload to the simulator - - + + + Request an asset be uploaded to the simulator + + The Object containing the asset data + If True, the asset once uploaded will be stored on the simulator + in which the client was connected in addition to being stored on the asset server + The of the transfer, can be used to correlate the upload with + events being fired - - + + + Request an asset be uploaded to the simulator + + The of the asset being uploaded + A byte array containing the encoded asset data + If True, the asset once uploaded will be stored on the simulator + in which the client was connected in addition to being stored on the asset server + The of the transfer, can be used to correlate the upload with + events being fired - + - Flags sent when a script takes or releases a control + Request an asset be uploaded to the simulator - NOTE: (need to verify) These might be a subset of the ControlFlags enum in Movement, + + Asset type to upload this data as + A byte array containing the encoded asset data + If True, the asset once uploaded will be stored on the simulator + in which the client was connected in addition to being stored on the asset server + The of the transfer, can be used to correlate the upload with + events being fired - - No Flags set - - - Forward (W or up Arrow) - - - Back (S or down arrow) - - - Move left (shift+A or left arrow) + + + Initiate an asset upload + + The ID this asset will have if the + upload succeeds + Asset type to upload this data as + Raw asset data to upload + Whether to store this asset on the local + simulator or the grid-wide asset server + The tranaction id for the upload + The transaction ID of this transfer - - Move right (shift+D or right arrow) + + + Request a texture asset from the simulator using the system to + manage the requests and re-assemble the image from the packets received from the simulator + + The of the texture asset to download + The of the texture asset. + Use for most textures, or for baked layer texture assets + A float indicating the requested priority for the transfer. Higher priority values tell the simulator + to prioritize the request before lower valued requests. An image already being transferred using the can have + its priority changed by resending the request with the new priority value + Number of quality layers to discard. + This controls the end marker of the data sent. Sending with value -1 combined with priority of 0 cancels an in-progress + transfer. + A bug exists in the Linden Simulator where a -1 will occasionally be sent with a non-zero priority + indicating an off-by-one error. + The packet number to begin the request at. A value of 0 begins the request + from the start of the asset texture + The callback to fire when the image is retrieved. The callback + will contain the result of the request and the texture asset data + If true, the callback will be fired for each chunk of the downloaded image. + The callback asset parameter will contain all previously received chunks of the texture asset starting + from the beginning of the request + + Request an image and fire a callback when the request is complete + + Client.Assets.RequestImage(UUID.Parse("c307629f-e3a1-4487-5e88-0d96ac9d4965"), ImageType.Normal, TextureDownloader_OnDownloadFinished); + + private void TextureDownloader_OnDownloadFinished(TextureRequestState state, AssetTexture asset) + { + if(state == TextureRequestState.Finished) + { + Console.WriteLine("Texture {0} ({1} bytes) has been successfully downloaded", + asset.AssetID, + asset.AssetData.Length); + } + } + + Request an image and use an inline anonymous method to handle the downloaded texture data + + Client.Assets.RequestImage(UUID.Parse("c307629f-e3a1-4487-5e88-0d96ac9d4965"), ImageType.Normal, delegate(TextureRequestState state, AssetTexture asset) + { + if(state == TextureRequestState.Finished) + { + Console.WriteLine("Texture {0} ({1} bytes) has been successfully downloaded", + asset.AssetID, + asset.AssetData.Length); + } + } + ); + + Request a texture, decode the texture to a bitmap image and apply it to a imagebox + + Client.Assets.RequestImage(UUID.Parse("c307629f-e3a1-4487-5e88-0d96ac9d4965"), ImageType.Normal, TextureDownloader_OnDownloadFinished); + + private void TextureDownloader_OnDownloadFinished(TextureRequestState state, AssetTexture asset) + { + if(state == TextureRequestState.Finished) + { + ManagedImage imgData; + Image bitmap; + + if (state == TextureRequestState.Finished) + { + OpenJPEG.DecodeToImage(assetTexture.AssetData, out imgData, out bitmap); + picInsignia.Image = bitmap; + } + } + } + + - - Up (E or PgUp) + + + Overload: Request a texture asset from the simulator using the system to + manage the requests and re-assemble the image from the packets received from the simulator + + The of the texture asset to download + The callback to fire when the image is retrieved. The callback + will contain the result of the request and the texture asset data - - Down (C or PgDown) + + + Overload: Request a texture asset from the simulator using the system to + manage the requests and re-assemble the image from the packets received from the simulator + + The of the texture asset to download + The of the texture asset. + Use for most textures, or for baked layer texture assets + The callback to fire when the image is retrieved. The callback + will contain the result of the request and the texture asset data - - Rotate left (A or left arrow) + + + Overload: Request a texture asset from the simulator using the system to + manage the requests and re-assemble the image from the packets received from the simulator + + The of the texture asset to download + The of the texture asset. + Use for most textures, or for baked layer texture assets + The callback to fire when the image is retrieved. The callback + will contain the result of the request and the texture asset data + If true, the callback will be fired for each chunk of the downloaded image. + The callback asset parameter will contain all previously received chunks of the texture asset starting + from the beginning of the request - - Rotate right (D or right arrow) + + + Cancel a texture request + + The texture assets - - Left Mouse Button + + + Requests download of a mesh asset + + UUID of the mesh asset + Callback when the request completes - - Left Mouse button in MouseLook + + + Fetach avatar texture on a grid capable of server side baking + + ID of the avatar + ID of the texture + Name of the part of the avatar texture applies to + Callback invoked on operation completion - + - Currently only used to hide your group title + Lets TexturePipeline class fire the progress event + The texture ID currently being downloaded + the number of bytes transferred + the total number of bytes expected - - No flags set + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Hide your group title + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - Action state of the avatar, which can currently be typing and - editing - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - Current teleport status - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Unknown status + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Teleport initialized + + Raised when the simulator responds sends - - Teleport in progress + + Raised during upload completes - - Teleport failed + + Raised during upload with progres update - - Teleport completed + + Fired when the simulator sends an InitiateDownloadPacket, used to download terrain .raw files - - Teleport cancelled + + Fired when a texture is in the process of being downloaded by the TexturePipeline class - + - + Callback used for various asset download requests + Transfer information + Downloaded asset, null on fail - - No flags set, or teleport failed + + + Callback used upon competition of baked texture upload + + Asset UUID of the newly uploaded baked texture - - Set when newbie leaves help island for first time + + + A callback that fires upon the completition of the RequestMesh call + + Was the download successfull + Resulting mesh or null on problems - - + + Xfer data - - Via Lure + + Upload data - - Via Landmark + + Filename used on the simulator - - Via Location + + Filename used by the client - - Via Home + + UUID of the image that is in progress - - Via Telehub + + Number of bytes received so far - - Via Login + + Image size in bytes - - Linden Summoned + + + Avatar profile flags + - - Linden Forced me + + + Represents an avatar (other than your own) + - + + + Particle system specific enumerators, flags and methods. + + + + + Current version of the media data for the prim + + + + + Array of media entries indexed by face number + + + - - Agent Teleported Home via Script + + - + - + - + - - forced to new location for example when avatar is banned or ejected + + - - Teleport Finished via a Lure + + - - Finished, Sim Changed + + Foliage type for this primitive. Only applicable if this + primitive is foliage - - Finished, Same Sim + + Unknown - - - - + + - + - + - + - - - - + + - + - + - + - + - - - Instant Message - + + - - Key of sender + + - - Name of sender + + - - Key of destination avatar + + - - ID of originating estate + + Identifies the owner if audio or a particle system is + active - - Key of originating region + + - - Coordinates in originating region + + - - Instant message type + + - - Group IM session toggle + + - - Key of IM session, for Group Messages, the groups UUID + + - - Timestamp of the instant message + + - - Instant message text + + - - Whether this message is held for offline avatars + + - - Context specific packed data + + - - Print the struct data as a string - A string containing the field name, and field value + + - - - Manager class for our own avatar - + + - - The event subscribers. null if no subcribers + + - - Raises the ChatFromSimulator event - A ChatEventArgs object containing the - data returned from the data server + + Objects physics engine propertis - - Thread sync lock object + + Extra data about primitive - - The event subscribers. null if no subcribers + + Indicates if prim is attached to an avatar - - Raises the ScriptDialog event - A SctriptDialogEventArgs object containing the - data returned from the data server + + Number of clients referencing this prim - - Thread sync lock object + + + Default constructor + - - The event subscribers. null if no subcribers + + + Packs PathTwist, PathTwistBegin, PathRadiusOffset, and PathSkew + parameters in to signed eight bit values + + Floating point parameter to pack + Signed eight bit value containing the packed parameter - - Raises the ScriptQuestion event - A ScriptQuestionEventArgs object containing the - data returned from the data server + + + Unpacks PathTwist, PathTwistBegin, PathRadiusOffset, and PathSkew + parameters from signed eight bit integers to floating point values + + Signed eight bit value to unpack + Unpacked floating point value - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the LoadURL event - A LoadUrlEventArgs object containing the - data returned from the data server + + Uses basic heuristics to estimate the primitive shape - - Thread sync lock object + + + Complete structure for the particle system + - - The event subscribers. null if no subcribers + + Particle Flags + There appears to be more data packed in to this area + for many particle systems. It doesn't appear to be flag values + and serialization breaks unless there is a flag for every + possible bit so it is left as an unsigned integer - - Raises the MoneyBalance event - A BalanceEventArgs object containing the - data returned from the data server + + pattern of particles - - Thread sync lock object + + A representing the maximimum age (in seconds) particle will be displayed + Maximum value is 30 seconds - - The event subscribers. null if no subcribers + + A representing the number of seconds, + from when the particle source comes into view, + or the particle system's creation, that the object will emits particles; + after this time period no more particles are emitted - - Raises the MoneyBalanceReply event - A MoneyBalanceReplyEventArgs object containing the - data returned from the data server + + A in radians that specifies where particles will not be created - - Thread sync lock object + + A in radians that specifies where particles will be created - - The event subscribers. null if no subcribers + + A representing the number of seconds between burts. - - Raises the IM event - A InstantMessageEventArgs object containing the - data returned from the data server + + A representing the number of meters + around the center of the source where particles will be created. - - Thread sync lock object + + A representing in seconds, the minimum speed between bursts of new particles + being emitted - - The event subscribers. null if no subcribers + + A representing in seconds the maximum speed of new particles being emitted. - - Raises the TeleportProgress event - A TeleportEventArgs object containing the - data returned from the data server + + A representing the maximum number of particles emitted per burst - - Thread sync lock object + + A which represents the velocity (speed) from the source which particles are emitted - - The event subscribers. null if no subcribers + + A which represents the Acceleration from the source which particles are emitted - - Raises the AgentDataReply event - A AgentDataReplyEventArgs object containing the - data returned from the data server + + The Key of the texture displayed on the particle - - Thread sync lock object + + The Key of the specified target object or avatar particles will follow - - The event subscribers. null if no subcribers + + Flags of particle from - - Raises the AnimationsChanged event - A AnimationsChangedEventArgs object containing the - data returned from the data server + + Max Age particle system will emit particles for - - Thread sync lock object + + The the particle has at the beginning of its lifecycle - - The event subscribers. null if no subcribers + + The the particle has at the ending of its lifecycle - - Raises the MeanCollision event - A MeanCollisionEventArgs object containing the - data returned from the data server + + A that represents the starting X size of the particle + Minimum value is 0, maximum value is 4 - - Thread sync lock object + + A that represents the starting Y size of the particle + Minimum value is 0, maximum value is 4 - - The event subscribers. null if no subcribers + + A that represents the ending X size of the particle + Minimum value is 0, maximum value is 4 - - Raises the RegionCrossed event - A RegionCrossedEventArgs object containing the - data returned from the data server + + A that represents the ending Y size of the particle + Minimum value is 0, maximum value is 4 - - Thread sync lock object + + A that represents the start glow value + Minimum value is 0, maximum value is 1 - - The event subscribers. null if no subcribers + + A that represents the end glow value + Minimum value is 0, maximum value is 1 - - Raises the GroupChatJoined event - A GroupChatJoinedEventArgs object containing the - data returned from the data server + + OpenGL blend function to use at particle source - - Thread sync lock object + + OpenGL blend function to use at particle destination - - The event subscribers. null if no subcribers + + + Can this particle system be packed in a legacy compatible way + + True if the particle system doesn't use new particle system features - - Raises the AlertMessage event - A AlertMessageEventArgs object containing the - data returned from the data server + + + Decodes a byte[] array into a ParticleSystem Object + + ParticleSystem object + Start position for BitPacker - - Thread sync lock object + + + Generate byte[] array from particle data + + Byte array - - The event subscribers. null if no subcribers + + + Particle source pattern + - - Raises the ScriptControlChange event - A ScriptControlEventArgs object containing the - data returned from the data server + + None - - Thread sync lock object + + Drop particles from source position with no force - - The event subscribers. null if no subcribers + + "Explode" particles in all directions - - Raises the CameraConstraint event - A CameraConstraintEventArgs object containing the - data returned from the data server + + Particles shoot across a 2D area - - Thread sync lock object + + Particles shoot across a 3D Cone - - The event subscribers. null if no subcribers + + Inverse of AngleCone (shoot particles everywhere except the 3D cone defined - - Raises the ScriptSensorReply event - A ScriptSensorReplyEventArgs object containing the - data returned from the data server + + + Particle Data Flags + - - Thread sync lock object + + None - - The event subscribers. null if no subcribers + + Interpolate color and alpha from start to end - - Raises the AvatarSitResponse event - A AvatarSitResponseEventArgs object containing the - data returned from the data server + + Interpolate scale from start to end - - Thread sync lock object + + Bounce particles off particle sources Z height - - The event subscribers. null if no subcribers + + velocity of particles is dampened toward the simulators wind - - Raises the ChatSessionMemberAdded event - A ChatSessionMemberAddedEventArgs object containing the - data returned from the data server + + Particles follow the source - - Thread sync lock object + + Particles point towards the direction of source's velocity - - The event subscribers. null if no subcribers + + Target of the particles - - Raises the ChatSessionMemberLeft event - A ChatSessionMemberLeftEventArgs object containing the - data returned from the data server + + Particles are sent in a straight line - - Thread sync lock object + + Particles emit a glow - - Reference to the GridClient instance + + used for point/grab/touch - - Used for movement and camera tracking + + continuous ribbon particle - - Currently playing animations for the agent. Can be used to - check the current movement status such as walking, hovering, aiming, - etc. by checking against system animations found in the Animations class + + particle data contains glow - - Dictionary containing current Group Chat sessions and members + + particle data contains blend functions - + - Constructor, setup callbacks for packets related to our avatar + Particle Flags Enum - A reference to the Class - + + None + + + Acceleration and velocity for particles are + relative to the object rotation + + + Particles use new 'correct' angle parameters + + - Send a text message from the Agent to the Simulator + Parameters used to construct a visual representation of a primitive - A containing the message - The channel to send the message on, 0 is the public channel. Channels above 0 - can be used however only scripts listening on the specified channel will see the message - Denotes the type of message being sent, shout, whisper, etc. - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - Request any instant messages sent while the client was offline to be resent. + Calculdates hash code for prim construction data + The has - + + Attachment point to an avatar + + + + + + + + + + + + + + - Send an Instant Message to another Avatar + Information on the flexible properties of a primitive - The recipients - A containing the message to send - + + + + + + + + + + + + + + + + + + + - Send an Instant Message to an existing group chat or conference chat + Default constructor - The recipients - A containing the message to send - IM session ID (to differentiate between IM windows) - + - Send an Instant Message + - The name this IM will show up as being from - Key of Avatar - Text message being sent - IM session ID (to differentiate between IM windows) - IDs of sessions for a conference + + - + - Send an Instant Message + - The name this IM will show up as being from - Key of Avatar - Text message being sent - IM session ID (to differentiate between IM windows) - Type of instant message to send - Whether to IM offline avatars as well - Senders Position - RegionID Sender is In - Packed binary data that is specific to - the dialog type + - + - Send an Instant Message to a group + - of the group to send message to - Text Message being sent. + - + - Send an Instant Message to a group the agent is a member of + Information on the light properties of a primitive - The name this IM will show up as being from - of the group to send message to - Text message being sent - + + + + + + + + + + + + + + + + - Send a request to join a group chat session + Default constructor - of Group to leave - + - Exit a group chat session. This will stop further Group chat messages - from being sent until session is rejoined. + - of Group chat session to leave + + - + - Reply to script dialog questions. + - Channel initial request came on - Index of button you're "clicking" - Label of button you're "clicking" - of Object that sent the dialog request - + - + - Accept invite for to a chatterbox session + - of session to accept invite to + - + - Start a friends conference + Information on the light properties of a primitive as texture map - List of UUIDs to start a conference with - the temportary session ID returned in the callback> - + + + + + + + - Start a particle stream between an agent and an object + Default constructor - Key of the source agent - Key of the target object - - The type from the enum - A unique for this effect - + - Start a particle stream between an agent and an object + - Key of the source agent - Key of the target object - A representing the beams offset from the source - A which sets the avatars lookat animation - of the Effect + + - + - Create a particle beam between an avatar and an primitive + - The ID of source avatar - The ID of the target primitive - global offset - A object containing the combined red, green, blue and alpha - color values of particle beam - a float representing the duration the parcicle beam will last - A Unique ID for the beam - + - + - Create a particle swirl around a target position using a packet + - global offset - A object containing the combined red, green, blue and alpha - color values of particle beam - a float representing the duration the parcicle beam will last - A Unique ID for the beam + - + - Sends a request to sit on the specified object + Information on the sculpt properties of a sculpted primitive - of the object to sit on - Sit at offset - + - Follows a call to to actually sit on the object + Default constructor - - Stands up from sitting on a prim or the ground - true of AgentUpdate was sent - - + - Does a "ground sit" at the avatar's current position + + + - + - Starts or stops flying + Render inside out (inverts the normals). - True to start flying, false to stop flying - + - Starts or stops crouching + Render an X axis mirror of the sculpty. - True to start crouching, false to stop crouching - + - Starts a jump (begin holding the jump key) + Extended properties to describe an object - - - Use the autopilot sim function to move the avatar to a new - position. Uses double precision to get precise movements - - The z value is currently not handled properly by the simulator - Global X coordinate to move to - Global Y coordinate to move to - Z coordinate to move to + + - - - Use the autopilot sim function to move the avatar to a new position - - The z value is currently not handled properly by the simulator - Integer value for the global X coordinate to move to - Integer value for the global Y coordinate to move to - Floating-point value for the Z coordinate to move to + + - - - Use the autopilot sim function to move the avatar to a new position - - The z value is currently not handled properly by the simulator - Integer value for the local X coordinate to move to - Integer value for the local Y coordinate to move to - Floating-point value for the Z coordinate to move to + + - - Macro to cancel autopilot sim function - Not certain if this is how it is really done - true if control flags were set and AgentUpdate was sent to the simulator + + - - - Grabs an object - - an unsigned integer of the objects ID within the simulator - + + - - - Overload: Grab a simulated object - - an unsigned integer of the objects ID within the simulator - - The texture coordinates to grab - The surface coordinates to grab - The face of the position to grab - The region coordinates of the position to grab - The surface normal of the position to grab (A normal is a vector perpindicular to the surface) - The surface binormal of the position to grab (A binormal is a vector tangen to the surface - pointing along the U direction of the tangent space + + - - - Drag an object - - of the object to drag - Drag target in region coordinates + + - - - Overload: Drag an object - - of the object to drag - Drag target in region coordinates - - The texture coordinates to grab - The surface coordinates to grab - The face of the position to grab - The region coordinates of the position to grab - The surface normal of the position to grab (A normal is a vector perpindicular to the surface) - The surface binormal of the position to grab (A binormal is a vector tangen to the surface - pointing along the U direction of the tangent space + + - - - Release a grabbed object - - The Objects Simulator Local ID - - - + + - - - Release a grabbed object - - The Objects Simulator Local ID - The texture coordinates to grab - The surface coordinates to grab - The face of the position to grab - The region coordinates of the position to grab - The surface normal of the position to grab (A normal is a vector perpindicular to the surface) - The surface binormal of the position to grab (A binormal is a vector tangen to the surface - pointing along the U direction of the tangent space + + - - - Touches an object - - an unsigned integer of the objects ID within the simulator - + + - - - Request the current L$ balance - + + - - - Give Money to destination Avatar - - UUID of the Target Avatar - Amount in L$ + + - - - Give Money to destination Avatar - - UUID of the Target Avatar - Amount in L$ - Description that will show up in the - recipients transaction history + + - - - Give L$ to an object - - object to give money to - amount of L$ to give - name of object + + - - - Give L$ to a group - - group to give money to - amount of L$ to give + + - - - Give L$ to a group - - group to give money to - amount of L$ to give - description of transaction + + - - - Pay texture/animation upload fee - + + - - - Pay texture/animation upload fee - - description of the transaction + + - - - Give Money to destination Object or Avatar - - UUID of the Target Object/Avatar - Amount in L$ - Reason (Optional normally) - The type of transaction - Transaction flags, mostly for identifying group - transactions + + - + + + + + + + + + + - Plays a gesture + Default constructor - Asset of the gesture - + - Mark gesture active + Set the properties that are set in an ObjectPropertiesFamily packet - Inventory of the gesture - Asset of the gesture + that has + been partially filled by an ObjectPropertiesFamily packet - + - Mark gesture inactive + Describes physics attributes of the prim - Inventory of the gesture - + + Primitive's local ID + + + Density (1000 for normal density) + + + Friction + + + Gravity multiplier (1 for normal gravity) + + + Type of physics representation of this primitive in the simulator + + + Restitution + + - Send an AgentAnimation packet that toggles a single animation on + Creates PhysicsProperties from OSD - The of the animation to start playing - Whether to ensure delivery of this packet or not + OSDMap with incoming data + Deserialized PhysicsProperties object - + - Send an AgentAnimation packet that toggles a single animation off + Serializes PhysicsProperties to OSD - The of a - currently playing animation to stop playing - Whether to ensure delivery of this packet or not + OSDMap with serialized PhysicsProperties data - + - Send an AgentAnimation packet that will toggle animations on or off + Texture animation mode - A list of animation s, and whether to - turn that animation on or off - Whether to ensure delivery of this packet or not - + + Disable texture animation + + + Enable texture animation + + + Loop when animating textures + + + Animate in reverse direction + + + Animate forward then reverse + + + Slide texture smoothly instead of frame-stepping + + + Rotate texture instead of using frames + + + Scale texture instead of using frames + + - Teleports agent to their stored home location + A single textured face. Don't instantiate this class yourself, use the + methods in TextureEntry - true on successful teleport to home location - + - Teleport agent to a landmark + Contains the definition for individual faces - of the landmark to teleport agent to - true on success, false on failure + - + - Attempt to look up a simulator name and teleport to the discovered - destination + - Region name to look up - Position to teleport to - True if the lookup and teleport were successful, otherwise - false + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + In the future this will specify whether a webpage is + attached to this face + + + + + + + + - Attempt to look up a simulator name and teleport to the discovered - destination + Represents all of the texturable faces for an object - Region name to look up - Position to teleport to - Target to look at - True if the lookup and teleport were successful, otherwise - false + Grid objects have infinite faces, with each face + using the properties of the default face unless set otherwise. So if + you have a TextureEntry with a default texture uuid of X, and face 18 + has a texture UUID of Y, every face would be textured with X except for + face 18 that uses Y. In practice however, primitives utilize a maximum + of nine faces - + + + + + + + - Teleport agent to another region + Constructor that takes a default texture UUID - handle of region to teleport agent to - position in destination sim to teleport to - true on success, false on failure - This call is blocking + Texture UUID to use as the default texture - + - Teleport agent to another region + Constructor that takes a TextureEntryFace for the + default face - handle of region to teleport agent to - position in destination sim to teleport to - direction in destination sim agent will look at - true on success, false on failure - This call is blocking + Face to use as the default face - + - Request teleport to a another simulator + Constructor that creates the TextureEntry class from a byte array - handle of region to teleport agent to - position in destination sim to teleport to + Byte array containing the TextureEntry field + Starting position of the TextureEntry field in + the byte array + Length of the TextureEntry field, in bytes - + - Request teleport to a another simulator + This will either create a new face if a custom face for the given + index is not defined, or return the custom face for that index if + it already exists - handle of region to teleport agent to - position in destination sim to teleport to - direction in destination sim agent will look at + The index number of the face to create or + retrieve + A TextureEntryFace containing all the properties for that + face - + - Teleport agent to a landmark + - of the landmark to teleport agent to + + - + - Send a teleport lure to another avatar with default "Join me in ..." invitation message + - target avatars to lure + - + - Send a teleport lure to another avatar with custom invitation message + - target avatars to lure - custom message to send with invitation + - + - Respond to a teleport lure by either accepting it and initiating - the teleport, or denying it + - of the avatar sending the lure - IM session of the incoming lure request - true to accept the lure, false to decline it + - + - Update agent profile + Controls the texture animation of a particular prim - struct containing updated - profile information - + + + + + + + + + + + + + + + + + + + + + + - Update agents profile interests + - selection of interests from struct + + - + - Set the height and the width of the client window. This is used - by the server to build a virtual camera frustum for our avatar + - New height of the viewer window - New width of the viewer window + - + + Groups that this avatar is a member of + + + Positive and negative ratings + + + Avatar properties including about text, profile URL, image IDs and + publishing settings + + + Avatar interests including spoken languages, skills, and "want to" + choices + + + Movement control flags for avatars. Typically not set or used by + clients. To move your avatar, use Client.Self.Movement instead + + - Request the list of muted objects and avatars for this agent + Contains the visual parameters describing the deformation of the avatar - + - Sets home location to agents current position + Appearance version. Value greater than 0 indicates using server side baking - will fire an AlertMessage () with - success or failure message - + - Move an agent in to a simulator. This packet is the last packet - needed to complete the transition in to a new simulator + Version of the Current Outfit Folder that the appearance is based on - Object - + - Reply to script permissions request + Appearance flags. Introduced with server side baking, currently unused. - Object - of the itemID requesting permissions - of the taskID requesting permissions - list of permissions to allow - + - Respond to a group invitation by either accepting or denying it + List of current avatar animations - UUID of the group (sent in the AgentID field of the invite message) - IM Session ID from the group invitation message - Accept the group invitation or deny it - + - Requests script detection of objects and avatars + Default constructor - name of the object/avatar to search for - UUID of the object or avatar to search for - Type of search from ScriptSensorTypeFlags - range of scan (96 max?) - the arc in radians to search within - an user generated ID to correlate replies with - Simulator to perform search in - - - Create or update profile pick - - UUID of the pick to update, or random UUID to create a new pick - Is this a top pick? (typically false) - UUID of the parcel (UUID.Zero for the current parcel) - Name of the pick - Global position of the pick landmark - UUID of the image displayed with the pick - Long description of the pick + + First name - - - Delete profile pick - - UUID of the pick to delete + + Last name - - - Create or update profile Classified - - UUID of the classified to update, or random UUID to create a new classified - Defines what catagory the classified is in - UUID of the image displayed with the classified - Price that the classified will cost to place for a week - Global position of the classified landmark - Name of the classified - Long description of the classified - if true, auto renew classified after expiration + + Full name - - - Create or update profile Classified - - UUID of the classified to update, or random UUID to create a new classified - Defines what catagory the classified is in - UUID of the image displayed with the classified - Price that the classified will cost to place for a week - Name of the classified - Long description of the classified - if true, auto renew classified after expiration + + Active group - + - Delete a classified ad + Positive and negative ratings - The classified ads ID - - - Fetches resource usage by agents attachmetns - - Called when the requested information is collected + + Positive ratings for Behavior - - - Take an incoming ImprovedInstantMessage packet, auto-parse, and if - OnInstantMessage is defined call that with the appropriate arguments - - The sender - The EventArgs object containing the packet data + + Negative ratings for Behavior - - - Take an incoming Chat packet, auto-parse, and if OnChat is defined call - that with the appropriate arguments. - - The sender - The EventArgs object containing the packet data + + Positive ratings for Appearance - - - Used for parsing llDialogs - - The sender - The EventArgs object containing the packet data + + Negative ratings for Appearance - - - Used for parsing llRequestPermissions dialogs - - The sender - The EventArgs object containing the packet data + + Positive ratings for Building - - - Handles Script Control changes when Script with permissions releases or takes a control - - The sender - The EventArgs object containing the packet data + + Negative ratings for Building - - - Used for parsing llLoadURL Dialogs - - The sender - The EventArgs object containing the packet data + + Positive ratings given by this avatar - + + Negative ratings given by this avatar + + - Update client's Position, LookAt and region handle from incoming packet + Avatar properties including about text, profile URL, image IDs and + publishing settings - The sender - The EventArgs object containing the packet data - This occurs when after an avatar moves into a new sim - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + First Life about text - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + First Life image ID - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - - Process TeleportFailed message sent via EventQueue, informs agent its last teleport has failed and why. - - The Message Key - An IMessage object Deserialized from the recieved message event - The simulator originating the event message + + - - - Process TeleportFinish from Event Queue and pass it onto our TeleportHandler - - The message system key for this event - IMessage object containing decoded data from OSD - The simulator originating the event message + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Profile image ID - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Flags of the profile - - - Crossed region handler for message that comes across the EventQueue. Sent to an agent - when the agent crosses a sim border into a new region. - - The message key - the IMessage object containing the deserialized data sent from the simulator - The which originated the packet + + Web URL for this profile - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - This packet is now being sent via the EventQueue + + Should this profile be published on the web - - - Group Chat event handler - - The capability Key - IMessage object containing decoded data from OSD - + + Avatar Online Status - - - Response from request to join a group chat - - - IMessage object containing decoded data from OSD - + + Is this a mature profile - - - Someone joined or left group chat - - - IMessage object containing decoded data from OSD - + + - - - Handle a group chat Invitation - - Caps Key - IMessage object containing decoded data from OSD - Originating Simulator + + - + - Moderate a chat session + Avatar interests including spoken languages, skills, and "want to" + choices - the of the session to moderate, for group chats this will be the groups UUID - the of the avatar to moderate - Either "voice" to moderate users voice, or "text" to moderate users text session - true to moderate (silence user), false to allow avatar to speak - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Languages profile field - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Raised when a scripted object or agent within range sends a public message + + - - Raised when a scripted object sends a dialog box containing possible - options an agent can respond to + + - - Raised when an object requests a change in the permissions an agent has permitted + + Information about agents display name - - Raised when a script requests an agent open the specified URL + + Agent UUID - - Raised when an agents currency balance is updated + + Username - - Raised when a transaction occurs involving currency such as a land purchase + + Display name - - Raised when an ImprovedInstantMessage packet is recieved from the simulator, this is used for everything from - private messaging to friendship offers. The Dialog field defines what type of message has arrived + + First name (legacy) - - Raised when an agent has requested a teleport to another location, or when responding to a lure. Raised multiple times - for each teleport indicating the progress of the request + + Last name (legacy) - - Raised when a simulator sends agent specific information for our avatar. + + Is display name default display name - - Raised when our agents animation playlist changes + + Cache display name until - - Raised when an object or avatar forcefully collides with our agent + + Last updated timestamp - - Raised when our agent crosses a region border into another region + + + Creates AgentDisplayName object from OSD + + Incoming OSD data + AgentDisplayName object - - Raised when our agent succeeds or fails to join a group chat session + + + Return object as OSD map + + OSD containing agent's display name data - - Raised when a simulator sends an urgent message usually indication the recent failure of - another action we have attempted to take such as an attempt to enter a parcel where we are denied access + + Full name (legacy) - - Raised when a script attempts to take or release specified controls for our agent + + + Holds group information for Avatars such as those you might find in a profile + - - Raised when the simulator detects our agent is trying to view something - beyond its limits + + true of Avatar accepts group notices - - Raised when a script sensor reply is received from a simulator + + Groups Key - - Raised in response to a request + + Texture Key for groups insignia - - Raised when an avatar enters a group chat session we are participating in + + Name of the group - - Raised when an agent exits a group chat session we are participating in + + Powers avatar has in the group - - Your (client) avatars - "client", "agent", and "avatar" all represent the same thing + + Avatars Currently selected title - - Temporary assigned to this session, used for - verifying our identity in packets + + true of Avatar has chosen to list this in their profile - - Shared secret that is never sent over the wire + + + Contains an animation currently being played by an agent + - - Your (client) avatar ID, local to the current region/sim + + The ID of the animation asset - - Where the avatar started at login. Can be "last", "home" - or a login + + A number to indicate start order of currently playing animations + On Linden Grids this number is unique per region, with OpenSim it is per client - - The access level of this agent, usually M or PG + + - - The CollisionPlane of Agent + + + Holds group information on an individual profile pick + - - An representing the velocity of our agent + + + Retrieve friend status notifications, and retrieve avatar names and + profiles + - - An representing the acceleration of our agent + + The event subscribers, null of no subscribers - - A which specifies the angular speed, and axis about which an Avatar is rotating. + + Raises the AvatarAnimation Event + An AvatarAnimationEventArgs object containing + the data sent from the simulator - - Position avatar client will goto when login to 'home' or during - teleport request to 'home' region. + + Thread sync lock object - - LookAt point saved/restored with HomePosition + + The event subscribers, null of no subscribers - - Avatar First Name (i.e. Philip) + + Raises the AvatarAppearance Event + A AvatarAppearanceEventArgs object containing + the data sent from the simulator - - Avatar Last Name (i.e. Linden) + + Thread sync lock object - - Avatar Full Name (i.e. Philip Linden) + + The event subscribers, null of no subscribers - - Gets the health of the agent + + Raises the UUIDNameReply Event + A UUIDNameReplyEventArgs object containing + the data sent from the simulator - - Gets the current balance of the agent + + Thread sync lock object - - Gets the local ID of the prim the agent is sitting on, - zero if the avatar is not currently sitting + + The event subscribers, null of no subscribers - - Gets the of the agents active group. + + Raises the AvatarInterestsReply Event + A AvatarInterestsReplyEventArgs object containing + the data sent from the simulator - - Gets the Agents powers in the currently active group + + Thread sync lock object - - Current status message for teleporting + + The event subscribers, null of no subscribers - - Current position of the agent as a relative offset from - the simulator, or the parent object if we are sitting on something + + Raises the AvatarPropertiesReply Event + A AvatarPropertiesReplyEventArgs object containing + the data sent from the simulator - - Current rotation of the agent as a relative rotation from - the simulator, or the parent object if we are sitting on something + + Thread sync lock object - - Current position of the agent in the simulator + + The event subscribers, null of no subscribers - - - A representing the agents current rotation - + + Raises the AvatarGroupsReply Event + A AvatarGroupsReplyEventArgs object containing + the data sent from the simulator - - Returns the global grid position of the avatar + + Thread sync lock object - - - Called once attachment resource usage information has been collected - - Indicates if operation was successfull - Attachment resource usage information + + The event subscribers, null of no subscribers - - - Used to specify movement actions for your agent - + + Raises the AvatarPickerReply Event + A AvatarPickerReplyEventArgs object containing + the data sent from the simulator - - Empty flag + + Thread sync lock object - - Move Forward (SL Keybinding: W/Up Arrow) + + The event subscribers, null of no subscribers - - Move Backward (SL Keybinding: S/Down Arrow) + + Raises the ViewerEffectPointAt Event + A ViewerEffectPointAtEventArgs object containing + the data sent from the simulator - - Move Left (SL Keybinding: Shift-(A/Left Arrow)) + + Thread sync lock object - - Move Right (SL Keybinding: Shift-(D/Right Arrow)) - - - Not Flying: Jump/Flying: Move Up (SL Keybinding: E) - - - Not Flying: Croutch/Flying: Move Down (SL Keybinding: C) - - - Unused - - - Unused - - - Unused - - - Unused - - - ORed with AGENT_CONTROL_AT_* if the keyboard is being used - - - ORed with AGENT_CONTROL_LEFT_* if the keyboard is being used - - - ORed with AGENT_CONTROL_UP_* if the keyboard is being used - - - Fly - - - - - - Finish our current animation - - - Stand up from the ground or a prim seat - - - Sit on the ground at our current location - - - Whether mouselook is currently enabled - - - Legacy, used if a key was pressed for less than a certain amount of time - - - Legacy, used if a key was pressed for less than a certain amount of time - - - Legacy, used if a key was pressed for less than a certain amount of time + + The event subscribers, null of no subscribers - - Legacy, used if a key was pressed for less than a certain amount of time + + Raises the ViewerEffectLookAt Event + A ViewerEffectLookAtEventArgs object containing + the data sent from the simulator - - Legacy, used if a key was pressed for less than a certain amount of time + + Thread sync lock object - - Legacy, used if a key was pressed for less than a certain amount of time + + The event subscribers, null of no subscribers - - + + Raises the ViewerEffect Event + A ViewerEffectEventArgs object containing + the data sent from the simulator - - + + Thread sync lock object - - Set when the avatar is idled or set to away. Note that the away animation is - activated separately from setting this flag + + The event subscribers, null of no subscribers - - + + Raises the AvatarPicksReply Event + A AvatarPicksReplyEventArgs object containing + the data sent from the simulator - - + + Thread sync lock object - - + + The event subscribers, null of no subscribers - - + + Raises the PickInfoReply Event + A PickInfoReplyEventArgs object containing + the data sent from the simulator - - - Agent movement and camera control - - Agent movement is controlled by setting specific - After the control flags are set, An AgentUpdate is required to update the simulator of the specified flags - This is most easily accomplished by setting one or more of the AgentMovement properties - - Movement of an avatar is always based on a compass direction, for example AtPos will move the - agent from West to East or forward on the X Axis, AtNeg will of course move agent from - East to West or backward on the X Axis, LeftPos will be South to North or forward on the Y Axis - The Z axis is Up, finer grained control of movements can be done using the Nudge properties - + + Thread sync lock object - - Agent camera controls + + The event subscribers, null of no subscribers - - Currently only used for hiding your group title + + Raises the AvatarClassifiedReply Event + A AvatarClassifiedReplyEventArgs object containing + the data sent from the simulator - - Action state of the avatar, which can currently be - typing and editing + + Thread sync lock object - - + + The event subscribers, null of no subscribers - - + + Raises the ClassifiedInfoReply Event + A ClassifiedInfoReplyEventArgs object containing + the data sent from the simulator - - + + Thread sync lock object - - + + The event subscribers, null of no subscribers - - + + Raises the DisplayNameUpdate Event + A DisplayNameUpdateEventArgs object containing + the data sent from the simulator - - + + Thread sync lock object - - + + + Represents other avatars + + - - + + Tracks the specified avatar on your map + Avatar ID to track - - + + + Request a single avatar name + + The avatar key to retrieve a name for - - Timer for sending AgentUpdate packets + + + Request a list of avatar names + + The avatar keys to retrieve names for - - Default constructor + + + Check if Display Names functionality is available + + True if Display name functionality is available - + - Send an AgentUpdate with the camera set at the current agent - position and pointing towards the heading specified + Request retrieval of display names (max 90 names per request) - Camera rotation in radians - Whether to send the AgentUpdate reliable - or not + List of UUIDs to lookup + Callback to report result of the operation - + - Rotates the avatar body and camera toward a target position. - This will also anchor the camera position on the avatar + Start a request for Avatar Properties - Region coordinates to turn toward + - + - Send new AgentUpdate packet to update our current camera - position and rotation + Search for an avatar (first name, last name) + The name to search for + An ID to associate with this query - + - Send new AgentUpdate packet to update our current camera - position and rotation + Start a request for Avatar Picks - Whether to require server acknowledgement - of this packet + UUID of the avatar - + - Send new AgentUpdate packet to update our current camera - position and rotation + Start a request for Avatar Classifieds - Whether to require server acknowledgement - of this packet - Simulator to send the update to + UUID of the avatar - + - Builds an AgentUpdate packet entirely from parameters. This - will not touch the state of Self.Movement or - Self.Movement.Camera in any way + Start a request for details of a specific profile pick - - - - - - - - - - - + UUID of the avatar + UUID of the profile pick - - Move agent positive along the X axis + + + Start a request for details of a specific profile classified + + UUID of the avatar + UUID of the profile classified - - Move agent negative along the X axis + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Move agent positive along the Y axis + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Move agent negative along the Y axis + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Move agent positive along the Z axis + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Move agent negative along the Z axis + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + + EQ Message fired when someone nearby changes their display name + + The message key + the IMessage object containing the deserialized data sent from the simulator + The which originated the packet - - + + + Crossed region handler for message that comes across the EventQueue. Sent to an agent + when the agent crosses a sim border into a new region. + + The message key + the IMessage object containing the deserialized data sent from the simulator + The which originated the packet - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Causes simulator to make agent fly + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Stop movement + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Finish animation + + Raised when the simulator sends us data containing + an agents animation playlist - - Stand up from a sit + + Raised when the simulator sends us data containing + the appearance information for an agent - - Tells simulator to sit agent on ground + + Raised when the simulator sends us data containing + agent names/id values - - Place agent into mouselook mode + + Raised when the simulator sends us data containing + the interests listed in an agents profile - - Nudge agent positive along the X axis + + Raised when the simulator sends us data containing + profile property information for an agent - - Nudge agent negative along the X axis + + Raised when the simulator sends us data containing + the group membership an agent is a member of - - Nudge agent positive along the Y axis + + Raised when the simulator sends us data containing + name/id pair - - Nudge agent negative along the Y axis + + Raised when the simulator sends us data containing + the objects and effect when an agent is pointing at - - Nudge agent positive along the Z axis + + Raised when the simulator sends us data containing + the objects and effect when an agent is looking at - - Nudge agent negative along the Z axis + + Raised when the simulator sends us data containing + an agents viewer effect information - - + + Raised when the simulator sends us data containing + the top picks from an agents profile - - + + Raised when the simulator sends us data containing + the Pick details - - Tell simulator to mark agent as away + + Raised when the simulator sends us data containing + the classified ads an agent has placed - - + + Raised when the simulator sends us data containing + the details of a classified ad - - + + Raised when the simulator sends us data containing + the details of display name change - - + + + Callback giving results when fetching display names + + If the request was successful + Array of display names + Array of UUIDs that could not be fetched - - + + Provides data for the event + The event occurs when the simulator sends + the animation playlist for an agent + + The following code example uses the and + properties to display the animation playlist of an avatar on the window. + + // subscribe to the event + Client.Avatars.AvatarAnimation += Avatars_AvatarAnimation; + + private void Avatars_AvatarAnimation(object sender, AvatarAnimationEventArgs e) + { + // create a dictionary of "known" animations from the Animations class using System.Reflection + Dictionary<UUID, string> systemAnimations = new Dictionary<UUID, string>(); + Type type = typeof(Animations); + System.Reflection.FieldInfo[] fields = type.GetFields(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static); + foreach (System.Reflection.FieldInfo field in fields) + { + systemAnimations.Add((UUID)field.GetValue(type), field.Name); + } + + // find out which animations being played are known animations and which are assets + foreach (Animation animation in e.Animations) + { + if (systemAnimations.ContainsKey(animation.AnimationID)) + { + Console.WriteLine("{0} is playing {1} ({2}) sequence {3}", e.AvatarID, + systemAnimations[animation.AnimationID], animation.AnimationSequence); + } + else + { + Console.WriteLine("{0} is playing {1} (Asset) sequence {2}", e.AvatarID, + animation.AnimationID, animation.AnimationSequence); + } + } + } + + - + - Returns "always run" value, or changes it by sending a SetAlwaysRunPacket + Construct a new instance of the AvatarAnimationEventArgs class + The ID of the agent + The list of animations to start - - The current value of the agent control flags - - - Gets or sets the interval in milliseconds at which - AgentUpdate packets are sent to the current simulator. Setting - this to a non-zero value will also enable the packet sending if - it was previously off, and setting it to zero will disable + + Get the ID of the agent - - Gets or sets whether AgentUpdate packets are sent to - the current simulator + + Get the list of animations to start - - Reset movement controls every time we send an update + + Provides data for the event + The event occurs when the simulator sends + the appearance data for an avatar + + The following code example uses the and + properties to display the selected shape of an avatar on the window. + + // subscribe to the event + Client.Avatars.AvatarAppearance += Avatars_AvatarAppearance; + + // handle the data when the event is raised + void Avatars_AvatarAppearance(object sender, AvatarAppearanceEventArgs e) + { + Console.WriteLine("The Agent {0} is using a {1} shape.", e.AvatarID, (e.VisualParams[31] > 0) : "male" ? "female") + } + + - + - Camera controls for the agent, mostly a thin wrapper around - CoordinateFrame. This class is only responsible for state - tracking and math, it does not send any packets - - - - - - - The camera is a local frame of reference inside of - the larger grid space. This is where the math happens - - - - Default constructor + Construct a new instance of the AvatarAppearanceEventArgs class + The simulator request was from + The ID of the agent + true of the agent is a trial account + The default agent texture + The agents appearance layer textures + The for the agent - - + + Get the Simulator this request is from of the agent - - + + Get the ID of the agent - - + + true if the agent is a trial account - - + + Get the default agent texture - - - - + + Get the agents appearance layer textures - - - Construct a new instance of the ChatEventArgs object - - Sim from which the message originates - The message sent - The audible level of the message - The type of message sent: whisper, shout, etc - The source type of the message sender - The name of the agent or object sending the message - The ID of the agent or object sending the message - The ID of the object owner, or the agent ID sending the message - The position of the agent or object sending the message + + Get the for the agent - - Get the simulator sending the message + + Version of the appearance system used. + Value greater than 0 indicates that server side baking is used - - Get the message sent + + Version of the Current Outfit Folder the appearance is based on - - Get the audible level of the message + + Appearance flags, introduced with server side baking, currently unused - - Get the type of message sent: whisper, shout, etc + + Represents the interests from the profile of an agent - - Get the source type of the message sender + + Get the ID of the agent - - Get the name of the agent or object sending the message + + The properties of an agent - - Get the ID of the agent or object sending the message + + Get the ID of the agent - - Get the ID of the object owner, or the agent ID sending the message + + Get the ID of the agent - - Get the position of the agent or object sending the message + + Get the ID of the agent - - Contains the data sent when a primitive opens a dialog with this agent + + Get the ID of the avatar - + - Construct a new instance of the ScriptDialogEventArgs + Event args class for display name notification messages - The dialog message - The name of the object that sent the dialog request - The ID of the image to be displayed - The ID of the primitive sending the dialog - The first name of the senders owner - The last name of the senders owner - The communication channel the dialog was sent on - The string labels containing the options presented in this dialog - - - Get the dialog message - - Get the name of the object that sent the dialog request + + + Wrapper around a byte array that allows bit to be packed and unpacked + one at a time or by a variable amount. Useful for very tightly packed + data like LayerData packets + - - Get the ID of the image to be displayed + + - - Get the ID of the primitive sending the dialog + + + Default constructor, initialize the bit packer / bit unpacker + with a byte array and starting position + + Byte array to pack bits in to or unpack from + Starting position in the byte array - - Get the first name of the senders owner + + + Pack a floating point value in to the data + + Floating point value to pack - - Get the last name of the senders owner + + + Pack part or all of an integer in to the data + + Integer containing the data to pack + Number of bits of the integer to pack - - Get the communication channel the dialog was sent on, responses - should also send responses on this same channel + + + Pack part or all of an unsigned integer in to the data + + Unsigned integer containing the data to pack + Number of bits of the integer to pack - - Get the string labels containing the options presented in this dialog + + + Pack a single bit in to the data + + Bit to pack - - Contains the data sent when a primitive requests debit or other permissions - requesting a YES or NO answer + + + + + + + + - + - Construct a new instance of the ScriptQuestionEventArgs + - The simulator containing the object sending the request - The ID of the script making the request - The ID of the primitive containing the script making the request - The name of the primitive making the request - The name of the owner of the object making the request - The permissions being requested + - - Get the simulator containing the object sending the request + + + + + - - Get the ID of the script making the request + + + Unpacking a floating point value from the data + + Unpacked floating point value - - Get the ID of the primitive containing the script making the request + + + Unpack a variable number of bits from the data in to integer format + + Number of bits to unpack + An integer containing the unpacked bits + This function is only useful up to 32 bits - - Get the name of the primitive making the request + + + Unpack a variable number of bits from the data in to unsigned + integer format + + Number of bits to unpack + An unsigned integer containing the unpacked bits + This function is only useful up to 32 bits - - Get the name of the owner of the object making the request + + + Unpack a 16-bit signed integer + + 16-bit signed integer - - Get the permissions being requested + + + Unpack a 16-bit unsigned integer + + 16-bit unsigned integer - - Contains the data sent when a primitive sends a request - to an agent to open the specified URL + + + Unpack a 32-bit signed integer + + 32-bit signed integer - + - Construct a new instance of the LoadUrlEventArgs + Unpack a 32-bit unsigned integer - The name of the object sending the request - The ID of the object sending the request - The ID of the owner of the object sending the request - True if the object is owned by a group - The message sent with the request - The URL the object sent + 32-bit unsigned integer - - Get the name of the object sending the request + + - - Get the ID of the object sending the request + + - - Get the ID of the owner of the object sending the request + + + Reads in a byte array of an Animation Asset created by the SecondLife(tm) client. + - - True if the object is owned by a group + + + Rotation Keyframe count (used internally) + - - Get the message sent with the request - - - Get the URL the object sent - - - The date received from an ImprovedInstantMessage - - + - Construct a new instance of the InstantMessageEventArgs object + Position Keyframe count (used internally) - the InstantMessage object - the simulator where the InstantMessage origniated - - - Get the InstantMessage object - - Get the simulator where the InstantMessage origniated + + + Animation Priority + - - Contains the currency balance + + + The animation length in seconds. + - + - Construct a new BalanceEventArgs object + Expression set in the client. Null if [None] is selected - The currenct balance - + - Get the currenct balance + The time in seconds to start the animation - - Contains the transaction summary when an item is purchased, - money is given, or land is purchased + + + The time in seconds to end the animation + - + - Construct a new instance of the MoneyBalanceReplyEventArgs object + Loop the animation - The ID of the transaction - True of the transaction was successful - The current currency balance - The meters credited - The meters comitted - A brief description of the transaction - - Get the ID of the transaction + + + Meta data. Ease in Seconds. + - - True of the transaction was successful + + + Meta data. Ease out seconds. + - - Get the remaining currency balance + + + Meta Data for the Hand Pose + - - Get the meters credited + + + Number of joints defined in the animation + - - Get the meters comitted + + + Contains an array of joints + - - Get the description of the transaction + + + Searialize an animation asset into it's joints/keyframes/meta data + + - - Data sent from the simulator containing information about your agent and active group information + + + Variable length strings seem to be null terminated in the animation asset.. but.. + use with caution, home grown. + advances the index. + + The animation asset byte array + The offset to start reading + a string - + - Construct a new instance of the AgentDataReplyEventArgs object + Read in a Joint from an animation asset byte array + Variable length Joint fields, yay! + Advances the index - The agents first name - The agents last name - The agents active group ID - The group title of the agents active group - The combined group powers the agent has in the active group - The name of the group the agent has currently active + animation asset byte array + Byte Offset of the start of the joint + The Joint data serialized into the binBVHJoint structure - - Get the agents first name + + + Read Keyframes of a certain type + advance i + + Animation Byte array + Offset in the Byte Array. Will be advanced + Number of Keyframes + Scaling Min to pass to the Uint16ToFloat method + Scaling Max to pass to the Uint16ToFloat method + - - Get the agents last name + + + Determines whether the specified is equal to the current . + + + true if the specified is equal to the current ; otherwise, false. + + The to compare with the current . + The parameter is null. + 2 - - Get the active group ID of your agent + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + 2 - - Get the active groups title of your agent + + + A Joint and it's associated meta data and keyframes + - - Get the combined group powers of your agent + + + Indicates whether this instance and a specified object are equal. + + + true if and this instance are the same type and represent the same value; otherwise, false. + + Another object to compare to. + 2 - - Get the active group name of your agent + + + Returns the hash code for this instance. + + + A 32-bit signed integer that is the hash code for this instance. + + 2 - - Data sent by the simulator to indicate the active/changed animations - applied to your agent + + + Name of the Joint. Matches the avatar_skeleton.xml in client distros + - + - Construct a new instance of the AnimationsChangedEventArgs class + Joint Animation Override? Was the same as the Priority in testing.. - The dictionary that contains the changed animations - - Get the dictionary that contains the changed animations + + + Array of Rotation Keyframes in order from earliest to latest + - + - Data sent from a simulator indicating a collision with your agent + Array of Position Keyframes in order from earliest to latest + This seems to only be for the Pelvis? - + - Construct a new instance of the MeanCollisionEventArgs class + Custom application data that can be attached to a joint - The type of collision that occurred - The ID of the agent or object that perpetrated the agression - The ID of the Victim - The strength of the collision - The Time the collision occurred - - Get the Type of collision + + + A Joint Keyframe. This is either a position or a rotation. + - - Get the ID of the agent or object that collided with your agent + + + Either a Vector3 position or a Vector3 Euler rotation + - - Get the ID of the agent that was attacked + + + Poses set in the animation metadata for the hands. + - - A value indicating the strength of the collision + + + Capabilities is the name of the bi-directional HTTP REST protocol + used to communicate non real-time transactions such as teleporting or + group messaging + - - Get the time the collision occurred + + Reference to the simulator this system is connected to - - Data sent to your agent when it crosses region boundaries + + + Default constructor + + + - + - Construct a new instance of the RegionCrossedEventArgs class + Request the URI of a named capability - The simulator your agent just left - The simulator your agent is now in + Name of the capability to request + The URI of the requested capability, or String.Empty if + the capability does not exist - - Get the simulator your agent just left + + + Process any incoming events, check to see if we have a message created for the event, + + + - - Get the simulator your agent is now in + + Capabilities URI this system was initialized with - - Data sent from the simulator when your agent joins a group chat session + + Whether the capabilities event queue is connected and + listening for incoming events - + - Construct a new instance of the GroupChatJoinedEventArgs class + Triggered when an event is received via the EventQueueGet + capability - The ID of the session - The name of the session - A temporary session id used for establishing new sessions - True of your agent successfully joined the session - - - Get the ID of the group chat session - - - Get the name of the session - - - Get the temporary session ID used for establishing new sessions - - - True if your agent successfully joined the session - - - Data sent by the simulator containing urgent messages + Event name + Decoded event data + The simulator that generated the event - + - Construct a new instance of the AlertMessageEventArgs class + Attempts to convert an LLSD structure to a known Packet type - The alert message - - - Get the alert message - - - Data sent by a script requesting to take or release specified controls to your agent + Event name, this must match an actual + packet name for a Packet to be successfully built + LLSD to convert to a Packet + A Packet on success, otherwise null - + - Construct a new instance of the ScriptControlEventArgs class + - The controls the script is attempting to take or release to the agent - True if the script is passing controls back to the agent - True if the script is requesting controls be released to the script - - - Get the controls the script is attempting to take or release to the agent - - - True if the script is passing controls back to the agent - - - True if the script is requesting controls be released to the script + Looking direction, must be a normalized vector + Up direction, must be a normalized vector - + - Data sent from the simulator to an agent to indicate its view limits + Align the coordinate frame X and Y axis with a given rotation + around the Z axis in radians + Absolute rotation around the Z axis in + radians - - - Construct a new instance of the CameraConstraintEventArgs class - - The collision plane + + Origin position of this coordinate frame - - Get the collision plane + + X axis of this coordinate frame, or Forward/At in grid terms - - - Data containing script sensor requests which allow an agent to know the specific details - of a primitive sending script sensor requests - + + Y axis of this coordinate frame, or Left in grid terms - + + Z axis of this coordinate frame, or Up in grid terms + + - Construct a new instance of the ScriptSensorReplyEventArgs + Access to the data server which allows searching for land, events, people, etc - The ID of the primitive sending the sensor - The ID of the group associated with the primitive - The name of the primitive sending the sensor - The ID of the primitive sending the sensor - The ID of the owner of the primitive sending the sensor - The position of the primitive sending the sensor - The range the primitive specified to scan - The rotation of the primitive sending the sensor - The type of sensor the primitive sent - The velocity of the primitive sending the sensor - - Get the ID of the primitive sending the sensor + + The event subscribers. null if no subcribers - - Get the ID of the group associated with the primitive + + Raises the EventInfoReply event + An EventInfoReplyEventArgs object containing the + data returned from the data server - - Get the name of the primitive sending the sensor + + Thread sync lock object - - Get the ID of the primitive sending the sensor + + The event subscribers. null if no subcribers - - Get the ID of the owner of the primitive sending the sensor + + Raises the DirEventsReply event + An DirEventsReplyEventArgs object containing the + data returned from the data server - - Get the position of the primitive sending the sensor + + Thread sync lock object - - Get the range the primitive specified to scan + + The event subscribers. null if no subcribers - - Get the rotation of the primitive sending the sensor + + Raises the PlacesReply event + A PlacesReplyEventArgs object containing the + data returned from the data server - - Get the type of sensor the primitive sent + + Thread sync lock object - - Get the velocity of the primitive sending the sensor + + The event subscribers. null if no subcribers - - Contains the response data returned from the simulator in response to a + + Raises the DirPlacesReply event + A DirPlacesReplyEventArgs object containing the + data returned from the data server - - Construct a new instance of the AvatarSitResponseEventArgs object + + Thread sync lock object - - Get the ID of the primitive the agent will be sitting on + + The event subscribers. null if no subcribers - - True if the simulator Autopilot functions were involved + + Raises the DirClassifiedsReply event + A DirClassifiedsReplyEventArgs object containing the + data returned from the data server - - Get the camera offset of the agent when seated + + Thread sync lock object - - Get the camera eye offset of the agent when seated + + The event subscribers. null if no subcribers - - True of the agent will be in mouselook mode when seated + + Raises the DirGroupsReply event + A DirGroupsReplyEventArgs object containing the + data returned from the data server - - Get the position of the agent when seated + + Thread sync lock object - - Get the rotation of the agent when seated + + The event subscribers. null if no subcribers - - Data sent when an agent joins a chat session your agent is currently participating in + + Raises the DirPeopleReply event + A DirPeopleReplyEventArgs object containing the + data returned from the data server - - - Construct a new instance of the ChatSessionMemberAddedEventArgs object - - The ID of the chat session - The ID of the agent joining + + Thread sync lock object - - Get the ID of the chat session + + The event subscribers. null if no subcribers - - Get the ID of the agent that joined + + Raises the DirLandReply event + A DirLandReplyEventArgs object containing the + data returned from the data server - - Data sent when an agent exits a chat session your agent is currently participating in + + Thread sync lock object - + - Construct a new instance of the ChatSessionMemberLeftEventArgs object + Constructs a new instance of the DirectoryManager class - The ID of the chat session - The ID of the Agent that left - - - Get the ID of the chat session - - - Get the ID of the agent that left + An instance of GridClient - + - Return a decoded capabilities message as a strongly typed object + Query the data server for a list of classified ads containing the specified string. + Defaults to searching for classified placed in any category, and includes PG, Adult and Mature + results. + + Responses are sent 16 per response packet, there is no way to know how many results a query reply will contain however assuming + the reply packets arrived ordered, a response with less than 16 entries would indicate all results have been received + + The event is raised when a response is received from the simulator - A string containing the name of the capabilities message key - An to decode - A strongly typed object containing the decoded information from the capabilities message, or null - if no existing Message object exists for the specified event + A string containing a list of keywords to search for + A UUID to correlate the results when the event is raised - + - Represents a string of characters encoded with specific formatting properties + Query the data server for a list of classified ads which contain specified keywords (Overload) + + The event is raised when a response is received from the simulator - - - A text string containing main text of the notecard - - - List of s embedded on the notecard - - - Construct an Asset of type Notecard - - + A string containing a list of keywords to search for + The category to search + A set of flags which can be ORed to modify query options + such as classified maturity rating. + A UUID to correlate the results when the event is raised + + Search classified ads containing the key words "foo" and "bar" in the "Any" category that are either PG or Mature + + UUID searchID = StartClassifiedSearch("foo bar", ClassifiedCategories.Any, ClassifiedQueryFlags.PG | ClassifiedQueryFlags.Mature); + + + + Responses are sent 16 at a time, there is no way to know how many results a query reply will contain however assuming + the reply packets arrived ordered, a response with less than 16 entries would indicate all results have been received + + + - Construct an Asset object of type Notecard + Starts search for places (Overloaded) + + The event is raised when a response is received from the simulator - A unique specific to this asset - A byte array containing the raw asset data + Search text + Each request is limited to 100 places + being returned. To get the first 100 result entries of a request use 0, + from 100-199 use 1, 200-299 use 2, etc. + A UUID to correlate the results when the event is raised - + - Encode the raw contents of a string with the specific Linden Text properties + Queries the dataserver for parcels of land which are flagged to be shown in search + + The event is raised when a response is received from the simulator + A string containing a list of keywords to search for separated by a space character + A set of flags which can be ORed to modify query options + such as classified maturity rating. + The category to search + Each request is limited to 100 places + being returned. To get the first 100 result entries of a request use 0, + from 100-199 use 1, 200-299 use 2, etc. + A UUID to correlate the results when the event is raised + + Search places containing the key words "foo" and "bar" in the "Any" category that are either PG or Adult + + UUID searchID = StartDirPlacesSearch("foo bar", DirFindFlags.DwellSort | DirFindFlags.IncludePG | DirFindFlags.IncludeAdult, ParcelCategory.Any, 0); + + + + Additional information on the results can be obtained by using the ParcelManager.InfoRequest method + - + - Decode the raw asset data including the Linden Text properties + Starts a search for land sales using the directory + + The event is raised when a response is received from the simulator - true if the AssetData was successfully decoded + What type of land to search for. Auction, + estate, mainland, "first land", etc + The OnDirLandReply event handler must be registered before + calling this function. There is no way to determine how many + results will be returned, or how many times the callback will be + fired other than you won't get more than 100 total parcels from + each query. - - Override the base classes AssetType + + + Starts a search for land sales using the directory + + The event is raised when a response is received from the simulator + + What type of land to search for. Auction, + estate, mainland, "first land", etc + Maximum price to search for + Maximum area to search for + Each request is limited to 100 parcels + being returned. To get the first 100 parcels of a request use 0, + from 100-199 use 1, 200-299 use 2, etc. + The OnDirLandReply event handler must be registered before + calling this function. There is no way to determine how many + results will be returned, or how many times the callback will be + fired other than you won't get more than 100 total parcels from + each query. - + - Class for controlling various system settings. + Send a request to the data server for land sales listings - Some values are readonly because they affect things that - happen when the GridClient object is initialized, so changing them at - runtime won't do any good. Non-readonly values may affect things that - happen at login or dynamically + + Flags sent to specify query options + + Available flags: + Specify the parcel rating with one or more of the following: + IncludePG IncludeMature IncludeAdult + + Specify the field to pre sort the results with ONLY ONE of the following: + PerMeterSort NameSort AreaSort PricesSort + + Specify the order the results are returned in, if not specified the results are pre sorted in a Descending Order + SortAsc + + Specify additional filters to limit the results with one or both of the following: + LimitByPrice LimitByArea + + Flags can be combined by separating them with the | (pipe) character + + Additional details can be found in + + What type of land to search for. Auction, + Estate or Mainland + Maximum price to search for when the + DirFindFlags.LimitByPrice flag is specified in findFlags + Maximum area to search for when the + DirFindFlags.LimitByArea flag is specified in findFlags + Each request is limited to 100 parcels + being returned. To get the first 100 parcels of a request use 0, + from 100-199 use 100, 200-299 use 200, etc. + The event will be raised with the response from the simulator + + There is no way to determine how many results will be returned, or how many times the callback will be + fired other than you won't get more than 100 total parcels from + each reply. + + Any land set for sale to either anybody or specific to the connected agent will be included in the + results if the land is included in the query + + + // request all mainland, any maturity rating that is larger than 512 sq.m + StartLandSearch(DirFindFlags.SortAsc | DirFindFlags.PerMeterSort | DirFindFlags.LimitByArea | DirFindFlags.IncludePG | DirFindFlags.IncludeMature | DirFindFlags.IncludeAdult, SearchTypeFlags.Mainland, 0, 512, 0); + - - Main grid login server + + + Search for Groups + + The name or portion of the name of the group you wish to search for + Start from the match number + - - Beta grid login server + + + Search for Groups + + The name or portion of the name of the group you wish to search for + Start from the match number + Search flags + - + - InventoryManager requests inventory information on login, - GridClient initializes an Inventory store for main inventory. + Search the People directory for other avatars + The name or portion of the name of the avatar you wish to search for + + - + - InventoryManager requests library information on login, - GridClient initializes an Inventory store for the library. + Search Places for parcels of land you personally own - - Number of milliseconds between sending pings to each sim + + + Searches Places for land owned by the specified group + + ID of the group you want to recieve land list for (You must be a member of the group) + Transaction (Query) ID which can be associated with results from your request. - - Number of milliseconds between sending camera updates + + + Search the Places directory for parcels that are listed in search and contain the specified keywords + + A string containing the keywords to search for + Transaction (Query) ID which can be associated with results from your request. - - Number of milliseconds between updating the current - positions of moving, non-accelerating and non-colliding objects + + + Search Places - All Options + + One of the Values from the DirFindFlags struct, ie: AgentOwned, GroupOwned, etc. + One of the values from the SearchCategory Struct, ie: Any, Linden, Newcomer + A string containing a list of keywords to search for separated by a space character + String Simulator Name to search in + LLUID of group you want to recieve results for + Transaction (Query) ID which can be associated with results from your request. + Transaction (Query) ID which can be associated with results from your request. - - Millisecond interval between ticks, where all ACKs are - sent out and the age of unACKed packets is checked + + + Search All Events with specifid searchText in all categories, includes PG, Mature and Adult + + A string containing a list of keywords to search for separated by a space character + Each request is limited to 100 entries + being returned. To get the first group of entries of a request use 0, + from 100-199 use 100, 200-299 use 200, etc. + UUID of query to correlate results in callback. - - The initial size of the packet inbox, where packets are - stored before processing + + + Search Events + + A string containing a list of keywords to search for separated by a space character + One or more of the following flags: DateEvents, IncludePG, IncludeMature, IncludeAdult + from the Enum + + Multiple flags can be combined by separating the flags with the | (pipe) character + "u" for in-progress and upcoming events, -or- number of days since/until event is scheduled + For example "0" = Today, "1" = tomorrow, "2" = following day, "-1" = yesterday, etc. + Each request is limited to 100 entries + being returned. To get the first group of entries of a request use 0, + from 100-199 use 100, 200-299 use 200, etc. + EventCategory event is listed under. + UUID of query to correlate results in callback. - - Maximum size of packet that we want to send over the wire + + Requests Event Details + ID of Event returned from the method - - The maximum value of a packet sequence number before it - rolls over back to one + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - The maximum size of the sequence number archive, used to - check for resent and/or duplicate packets + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - The relative directory where external resources are kept + + Process an incoming event message + The Unique Capabilities Key + The event message containing the data + The simulator the message originated from - - Login server to connect to - - - IP Address the client will bind to + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Use XML-RPC Login or LLSD Login, default is XML-RPC Login + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Number of milliseconds before an asset transfer will time - out + + Process an incoming event message + The Unique Capabilities Key + The event message containing the data + The simulator the message originated from - - Number of milliseconds before a teleport attempt will time - out + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Number of milliseconds before NetworkManager.Logout() will - time out + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Number of milliseconds before a CAPS call will time out - Setting this too low will cause web requests time out and - possibly retry repeatedly + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Number of milliseconds for xml-rpc to timeout + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Milliseconds before a packet is assumed lost and resent + + Raised when the data server responds to a request. - - Milliseconds without receiving a packet before the - connection to a simulator is assumed lost + + Raised when the data server responds to a request. - - Milliseconds to wait for a simulator info request through - the grid interface + + Raised when the data server responds to a request. - - Maximum number of queued ACKs to be sent before SendAcks() - is forced + + Raised when the data server responds to a request. - - Network stats queue length (seconds) + + Raised when the data server responds to a request. - - Enable/disable storing terrain heightmaps in the - TerrainManager + + Raised when the data server responds to a request. - - Enable/disable sending periodic camera updates + + Raised when the data server responds to a request. - - Enable/disable automatically setting agent appearance at - login and after sim crossing + + Raised when the data server responds to a request. - - Enable/disable automatically setting the bandwidth throttle - after connecting to each simulator - The default throttle uses the equivalent of the maximum - bandwidth setting in the official client. If you do not set a - throttle your connection will by default be throttled well below - the minimum values and you may experience connection problems + + Classified Ad categories - - Enable/disable the sending of pings to monitor lag and - packet loss + + Classified is listed in the Any category - - Should we connect to multiple sims? This will allow - viewing in to neighboring simulators and sim crossings - (Experimental) + + Classified is shopping related - - If true, all object update packets will be decoded in to - native objects. If false, only updates for our own agent will be - decoded. Registering an event handler will force objects for that - type to always be decoded. If this is disabled the object tracking - will have missing or partial prim and avatar information + + Classified is - - If true, when a cached object check is received from the - server the full object info will automatically be requested + + - - Whether to establish connections to HTTP capabilities - servers for simulators + + - - Whether to decode sim stats + + - - The capabilities servers are currently designed to - periodically return a 502 error which signals for the client to - re-establish a connection. Set this to true to log those 502 errors + + - - If true, any reference received for a folder or item - the library is not aware of will automatically be fetched + + - - If true, and SEND_AGENT_UPDATES is true, - AgentUpdate packets will continuously be sent out to give the bot - smoother movement and autopiloting + + - - If true, currently visible avatars will be stored - in dictionaries inside Simulator.ObjectAvatars. - If false, a new Avatar or Primitive object will be created - each time an object update packet is received + + - - If true, currently visible avatars will be stored - in dictionaries inside Simulator.ObjectPrimitives. - If false, a new Avatar or Primitive object will be created - each time an object update packet is received + + Event Categories - - If true, position and velocity will periodically be - interpolated (extrapolated, technically) for objects and - avatars that are being tracked by the library. This is - necessary to increase the accuracy of speed and position - estimates for simulated objects + + - - - If true, utilization statistics will be tracked. There is a minor penalty - in CPU time for enabling this option. - + + - - If true, parcel details will be stored in the - Simulator.Parcels dictionary as they are received + + - - - If true, an incoming parcel properties reply will automatically send - a request for the parcel access list - + + - - - if true, an incoming parcel properties reply will automatically send - a request for the traffic count. - + + - - - If true, images, and other assets downloaded from the server - will be cached in a local directory - + + - - Path to store cached texture data + + - - Maximum size cached files are allowed to take on disk (bytes) + + - - Default color used for viewer particle effects + + - - Maximum number of times to resend a failed packet + + - - Throttle outgoing packet rate + + - - UUID of a texture used by some viewers to indentify type of client used + + - + - Download textures using GetTexture capability when available + Query Flags used in many of the DirectoryManager methods to specify which query to execute and how to return the results. + + Flags can be combined using the | (pipe) character, not all flags are available in all queries - - The maximum number of concurrent texture downloads allowed - Increasing this number will not necessarily increase texture retrieval times due to - simulator throttles + + Query the People database - - - The Refresh timer inteval is used to set the delay between checks for stalled texture downloads - - This is a static variable which applies to all instances + + - - - Textures taking longer than this value will be flagged as timed out and removed from the pipeline - + + - - - Get or set the minimum log level to output to the console by default - - If the library is not compiled with DEBUG defined and this level is set to DEBUG - You will get no output on the console. This behavior can be overriden by creating - a logger configuration file for log4net - + + Query the Groups database - - Attach avatar names to log messages + + Query the Events database - - Log packet retransmission info + + Query the land holdings database for land owned by the currently connected agent - - Constructor - Reference to a GridClient object + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Query the land holdings database for land which is owned by a Group - - Cost of uploading an asset - Read-only since this value is dynamically fetched at login + + Specifies the query should pre sort the results based upon traffic + when searching the Places database - - - NetworkManager is responsible for managing the network layer of - OpenMetaverse. It tracks all the server connections, serializes - outgoing traffic and deserializes incoming traffic, and provides - instances of delegates for network-related events. - - - Login Routines - + + - - The event subscribers, null of no subscribers + + - - Raises the PacketSent Event - A PacketSentEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + Specifies the query should pre sort the results in an ascending order when searching the land sales database. + This flag is only used when searching the land sales database - - Raises the LoggedOut Event - A LoggedOutEventArgs object containing - the data sent from the simulator + + Specifies the query should pre sort the results using the SalePrice field when searching the land sales database. + This flag is only used when searching the land sales database - - Thread sync lock object + + Specifies the query should pre sort the results by calculating the average price/sq.m (SalePrice / Area) when searching the land sales database. + This flag is only used when searching the land sales database - - The event subscribers, null of no subscribers + + Specifies the query should pre sort the results using the ParcelSize field when searching the land sales database. + This flag is only used when searching the land sales database - - Raises the SimConnecting Event - A SimConnectingEventArgs object containing - the data sent from the simulator + + Specifies the query should pre sort the results using the Name field when searching the land sales database. + This flag is only used when searching the land sales database - - Thread sync lock object + + When set, only parcels less than the specified Price will be included when searching the land sales database. + This flag is only used when searching the land sales database - - The event subscribers, null of no subscribers + + When set, only parcels greater than the specified Size will be included when searching the land sales database. + This flag is only used when searching the land sales database - - Raises the SimConnected Event - A SimConnectedEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + Include PG land in results. This flag is used when searching both the Groups, Events and Land sales databases - - Raises the SimDisconnected Event - A SimDisconnectedEventArgs object containing - the data sent from the simulator + + Include Mature land in results. This flag is used when searching both the Groups, Events and Land sales databases - - Thread sync lock object + + Include Adult land in results. This flag is used when searching both the Groups, Events and Land sales databases - - The event subscribers, null of no subscribers + + - - Raises the Disconnected Event - A DisconnectedEventArgs object containing - the data sent from the simulator + + + Land types to search dataserver for + - - Thread sync lock object + + Search Auction, Mainland and Estate - - The event subscribers, null of no subscribers + + Land which is currently up for auction - - Raises the SimChanged Event - A SimChangedEventArgs object containing - the data sent from the simulator + + Parcels which are on the mainland (Linden owned) continents - - Thread sync lock object + + Parcels which are on privately owned simulators - - The event subscribers, null of no subscribers + + + The content rating of the event + - - Raises the EventQueueRunning Event - A EventQueueRunningEventArgs object containing - the data sent from the simulator + + Event is PG - - Thread sync lock object + + Event is Mature - - All of the simulators we are currently connected to + + Event is Adult - - Handlers for incoming capability events + + + Classified Ad Options + + There appear to be two formats the flags are packed in. + This set of flags is for the newer style - - Handlers for incoming packets + + - - Incoming packets that are awaiting handling + + - - Outgoing packets that are awaiting handling + + - - - Default constructor - - Reference to the GridClient object + + - - - Register an event handler for a packet. This is a low level event - interface and should only be used if you are doing something not - supported in the library - - Packet type to trigger events for - Callback to fire when a packet of this type - is received + + - + - Register an event handler for a packet. This is a low level event - interface and should only be used if you are doing something not - supported in the library + Classified ad query options - Packet type to trigger events for - Callback to fire when a packet of this type - is received - True if the callback should be ran - asynchronously. Only set this to false (synchronous for callbacks - that will always complete quickly) - If any callback for a packet type is marked as - asynchronous, all callbacks for that packet type will be fired - asynchronously - + + Include all ads in results + + + Include PG ads in results + + + Include Mature ads in results + + + Include Adult ads in results + + - Unregister an event handler for a packet. This is a low level event - interface and should only be used if you are doing something not - supported in the library + The For Sale flag in PlacesReplyData - Packet type this callback is registered with - Callback to stop firing events for - + + Parcel is not listed for sale + + + Parcel is For Sale + + - Register a CAPS event handler. This is a low level event interface - and should only be used if you are doing something not supported in - the library + A classified ad on the grid - Name of the CAPS event to register a handler for - Callback to fire when a CAPS event is received - - - Unregister a CAPS event handler. This is a low level event interface - and should only be used if you are doing something not supported in - the library - - Name of the CAPS event this callback is - registered with - Callback to stop firing events for - - - - Send a packet to the simulator the avatar is currently occupying - - Packet to send - - - - Send a packet to a specified simulator - - Packet to send - Simulator to send the packet to - - - - Connect to a simulator - - IP address to connect to - Port to connect to - Handle for this simulator, to identify its - location in the grid - Whether to set CurrentSim to this new - connection, use this if the avatar is moving in to this simulator - URL of the capabilities server to use for - this sim connection - A Simulator object on success, otherwise null + + UUID for this ad, useful for looking up detailed + information about it - - - Connect to a simulator - - IP address and port to connect to - Handle for this simulator, to identify its - location in the grid - Whether to set CurrentSim to this new - connection, use this if the avatar is moving in to this simulator - URL of the capabilities server to use for - this sim connection - A Simulator object on success, otherwise null + + The title of this classified ad - - - Initiate a blocking logout request. This will return when the logout - handshake has completed or when Settings.LOGOUT_TIMEOUT - has expired and the network layer is manually shut down - + + Flags that show certain options applied to the classified - - - Initiate the logout process. Check if logout succeeded with the - OnLogoutReply event, and if this does not fire the - Shutdown() function needs to be manually called - + + Creation date of the ad - - - Close a connection to the given simulator - - - + + Expiration date of the ad - - - Shutdown will disconnect all the sims except for the current sim - first, and then kill the connection to CurrentSim. This should only - be called if the logout process times out on RequestLogout - - Type of shutdown + + Price that was paid for this ad - - - Shutdown will disconnect all the sims except for the current sim - first, and then kill the connection to CurrentSim. This should only - be called if the logout process times out on RequestLogout - - Type of shutdown - Shutdown message + + Print the struct data as a string + A string containing the field name, and field value - + - Searches through the list of currently connected simulators to find - one attached to the given IPEndPoint + A parcel retrieved from the dataserver such as results from the + "For-Sale" listings or "Places" Search - IPEndPoint of the Simulator to search for - A Simulator reference on success, otherwise null - - - Fire an event when an event queue connects for capabilities - - Simulator the event queue is attached to + + The unique dataserver parcel ID + This id is used to obtain additional information from the entry + by using the method - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + A string containing the name of the parcel - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + The size of the parcel + This field is not returned for Places searches - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + The price of the parcel + This field is not returned for Places searches - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + If True, this parcel is flagged to be auctioned - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + If true, this parcel is currently set for sale - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Parcel traffic - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Print the struct data as a string + A string containing the field name, and field value - - The event subscribers, null of no subscribers + + + An Avatar returned from the dataserver + - - Raises the LoginProgress Event - A LoginProgressEventArgs object containing - the data sent from the simulator + + Online status of agent + This field appears to be obsolete and always returns false - - Thread sync lock object + + The agents first name - - Seed CAPS URL returned from the login server + + The agents last name - - A list of packets obtained during the login process which - networkmanager will log but not process + + The agents - - - Generate sane default values for a login request - - Account first name - Account last name - Account password - Client application name - Client application version - A populated struct containing - sane defaults + + Print the struct data as a string + A string containing the field name, and field value - + - Simplified login that takes the most common and required fields + Response to a "Groups" Search - Account first name - Account last name - Account password - Client application name - Client application version - Whether the login was successful or not. On failure the - LoginErrorKey string will contain the error code and LoginMessage - will contain a description of the error - - - Simplified login that takes the most common fields along with a - starting location URI, and can accept an MD5 string instead of a - plaintext password - - Account first name - Account last name - Account password or MD5 hash of the password - such as $1$1682a1e45e9f957dcdf0bb56eb43319c - Client application name - Starting location URI that can be built with - StartLocation() - Client application version - Whether the login was successful or not. On failure the - LoginErrorKey string will contain the error code and LoginMessage - will contain a description of the error + + The Group ID - - - Login that takes a struct of all the values that will be passed to - the login server - - The values that will be passed to the login - server, all fields must be set even if they are String.Empty - Whether the login was successful or not. On failure the - LoginErrorKey string will contain the error code and LoginMessage - will contain a description of the error + + The name of the group - - - Build a start location URI for passing to the Login function - - Name of the simulator to start in - X coordinate to start at - Y coordinate to start at - Z coordinate to start at - String with a URI that can be used to login to a specified - location + + The current number of members - - - Handles response from XML-RPC login replies - + + Print the struct data as a string + A string containing the field name, and field value - + - Handle response from LLSD login replies - - - - - - - - Get current OS - - Either "Win" or "Linux" - - - - Get clients default Mac Address + Parcel information returned from a request + + Represents one of the following: + A parcel of land on the grid that has its Show In Search flag set + A parcel of land owned by the agent making the request + A parcel of land owned by a group the agent making the request is a member of + + + In a request for Group Land, the First record will contain an empty record + + Note: This is not the same as searching the land for sale data source - A string containing the first found Mac Address - - - Raised when the simulator sends us data containing - ... - - - Raised when the simulator sends us data containing - ... - - - Raised when the simulator sends us data containing - ... - - Raised when the simulator sends us data containing - ... + + The ID of the Agent of Group that owns the parcel - - Raised when the simulator sends us data containing - ... + + The name - - Raised when the simulator sends us data containing - ... + + The description - - Raised when the simulator sends us data containing - ... + + The Size of the parcel - - Raised when the simulator sends us data containing - ... + + The billable Size of the parcel, for mainland + parcels this will match the ActualArea field. For Group owned land this will be 10 percent smaller + than the ActualArea. For Estate land this will always be 0 - - Unique identifier associated with our connections to - simulators + + Indicates the ForSale status of the parcel - - The simulator that the logged in avatar is currently - occupying + + The Gridwide X position - - Shows whether the network layer is logged in to the - grid or not + + The Gridwide Y position - - Number of packets in the incoming queue + + The Z position of the parcel, or 0 if no landing point set - - Number of packets in the outgoing queue + + The name of the Region the parcel is located in - - Raised when the simulator sends us data containing - ... + + The Asset ID of the parcels Snapshot texture - - Called when a reply is received from the login server, the - login sequence will block until this event returns + + The calculated visitor traffic - - Current state of logging in + + The billing product SKU + Known values are: + + 023Mainland / Full Region + 024Estate / Full Region + 027Estate / Openspace + 029Estate / Homestead + 129Mainland / Homestead (Linden Owned) + + - - Upon login failure, contains a short string key for the - type of login error that occurred + + No longer used, will always be 0 - - The raw XML-RPC reply from the login server, exactly as it - was received (minus the HTTP header) + + Get a SL URL for the parcel + A string, containing a standard SLURL - - During login this contains a descriptive version of - LoginStatusCode. After a successful login this will contain the - message of the day, and after a failed login a descriptive error - message will be returned + + Print the struct data as a string + A string containing the field name, and field value - + - Explains why a simulator or the grid disconnected from us + An "Event" Listing summary - - The client requested the logout or simulator disconnect + + The ID of the event creator - - The server notified us that it is disconnecting + + The name of the event - - Either a socket was closed or network traffic timed out + + The events ID - - The last active simulator shut down + + A string containing the short date/time the event will begin - - - Holds a simulator reference and a decoded packet, these structs are put in - the packet inbox for event handling - + + The event start time in Unixtime (seconds since epoch) - - Reference to the simulator that this packet came from + + The events maturity rating - - Packet that needs to be processed + + Print the struct data as a string + A string containing the field name, and field value - + - Holds a simulator reference and a serialized packet, these structs are put in - the packet outbox for sending + The details of an "Event" - - Reference to the simulator this packet is destined for + + The events ID - - Packet that needs to be sent + + The ID of the event creator - - Sequence number of the wrapped packet + + The name of the event - - Number of times this packet has been resent + + The category - - Environment.TickCount when this packet was last sent over the wire + + The events description - - - - - - - - - + + The short date/time the event will begin - - - Type of return to use when returning objects from a parcel - + + The event start time in Unixtime (seconds since epoch) UTC adjusted - - + + The length of the event in minutes - - Return objects owned by parcel owner + + 0 if no cover charge applies - - Return objects set to group + + The cover charge amount in L$ if applicable - - Return objects not owned by parcel owner or set to group + + The name of the region where the event is being held - - Return a specific list of objects on parcel + + The gridwide location of the event - - Return objects that are marked for-sale + + The maturity rating - - - Blacklist/Whitelist flags used in parcels Access List - + + Get a SL URL for the parcel where the event is hosted + A string, containing a standard SLURL - - Agent is denied access + + Print the struct data as a string + A string containing the field name, and field value - - Agent is granted access + + Contains the Event data returned from the data server from an EventInfoRequest - + + Construct a new instance of the EventInfoReplyEventArgs class + A single EventInfo object containing the details of an event + + - The result of a request for parcel properties + A single EventInfo object containing the details of an event - - No matches were found for the request + + Contains the "Event" detail data returned from the data server - - Request matched a single parcel + + Construct a new instance of the DirEventsReplyEventArgs class + The ID of the query returned by the data server. + This will correlate to the ID returned by the method + A list containing the "Events" returned by the search query - - Request matched multiple parcels + + The ID returned by - - - Flags used in the ParcelAccessListRequest packet to specify whether - we want the access list (whitelist), ban list (blacklist), or both - + + A list of "Events" returned by the data server - - Request the access list + + Contains the "Event" list data returned from the data server - - Request the ban list + + Construct a new instance of PlacesReplyEventArgs class + The ID of the query returned by the data server. + This will correlate to the ID returned by the method + A list containing the "Places" returned by the data server query - - Request both White and Black lists + + The ID returned by - - - Sequence ID in ParcelPropertiesReply packets (sent when avatar - tries to cross a parcel border) - + + A list of "Places" returned by the data server - - Parcel is currently selected + + Contains the places data returned from the data server - - Parcel restricted to a group the avatar is not a - member of + + Construct a new instance of the DirPlacesReplyEventArgs class + The ID of the query returned by the data server. + This will correlate to the ID returned by the method + A list containing land data returned by the data server - - Avatar is banned from the parcel + + The ID returned by - - Parcel is restricted to an access list that the - avatar is not on + + A list containing Places data returned by the data server - - Response to hovering over a parcel + + Contains the classified data returned from the data server - - - The tool to use when modifying terrain levels - + + Construct a new instance of the DirClassifiedsReplyEventArgs class + A list of classified ad data returned from the data server - - Level the terrain + + A list containing Classified Ads returned by the data server - - Raise the terrain + + Contains the group data returned from the data server - - Lower the terrain + + Construct a new instance of the DirGroupsReplyEventArgs class + The ID of the query returned by the data server. + This will correlate to the ID returned by the method + A list of groups data returned by the data server - - Smooth the terrain + + The ID returned by - - Add random noise to the terrain + + A list containing Groups data returned by the data server - - Revert terrain to simulator default + + Contains the people data returned from the data server - - - The tool size to use when changing terrain levels - + + Construct a new instance of the DirPeopleReplyEventArgs class + The ID of the query returned by the data server. + This will correlate to the ID returned by the method + A list of people data returned by the data server - - Small + + The ID returned by - - Medium + + A list containing People data returned by the data server - - Large + + Contains the land sales data returned from the data server - + + Construct a new instance of the DirLandReplyEventArgs class + A list of parcels for sale returned by the data server + + + A list containing land forsale data returned by the data server + + - Reasons agent is denied access to a parcel on the simulator + Represends individual HTTP Download request - - Agent is not denied, access is granted + + URI of the item to fetch - - Agent is not a member of the group set for the parcel, or which owns the parcel + + Timout specified in milliseconds - - Agent is not on the parcels specific allow list + + Download progress callback - - Agent is on the parcels ban list + + Download completed callback - - Unknown + + Accept the following content type - - Agent is not age verified and parcel settings deny access to non age verified avatars + + How many times will this request be retried - + + Current fetch attempt + + + Default constructor + + + Constructor + + - Parcel overlay type. This is used primarily for highlighting and - coloring which is why it is a single integer instead of a set of - flags + Manages async HTTP downloads with a limit on maximum + concurrent downloads - These values seem to be poorly thought out. The first three - bits represent a single value, not flags. For example Auction (0x05) is - not a combination of OwnedByOther (0x01) and ForSale(0x04). However, - the BorderWest and BorderSouth values are bit flags that get attached - to the value stored in the first three bits. Bits four, five, and six - are unused - - Public land + + Default constructor - - Land is owned by another avatar + + Cleanup method - - Land is owned by a group + + Setup http download request - - Land is owned by the current avatar + + Check the queue for pending work - - Land is for sale + + Enqueue a new HTTP download - - Land is being auctioned + + Maximum number of parallel downloads from a single endpoint - - To the west of this area is a parcel border + + Client certificate - - To the south of this area is a parcel border + + Describes tasks returned in LandStatReply - + - Various parcel properties + Estate level administration and utilities - - No flags set + + Textures for each of the four terrain height levels - - Allow avatars to fly (a client-side only restriction) + + Upper/lower texture boundaries for each corner of the sim - - Allow foreign scripts to run + + + Constructor for EstateTools class + + - - This parcel is for sale + + The event subscribers. null if no subcribers - - Allow avatars to create a landmark on this parcel + + Raises the TopCollidersReply event + A TopCollidersReplyEventArgs object containing the + data returned from the data server - - Allows all avatars to edit the terrain on this parcel + + Thread sync lock object - - Avatars have health and can take damage on this parcel. - If set, avatars can be killed and sent home here + + The event subscribers. null if no subcribers - - Foreign avatars can create objects here + + Raises the TopScriptsReply event + A TopScriptsReplyEventArgs object containing the + data returned from the data server - - All objects on this parcel can be purchased + + Thread sync lock object - - Access is restricted to a group - - - Access is restricted to a whitelist - - - Ban blacklist is enabled - - - Unknown - - - List this parcel in the search directory + + The event subscribers. null if no subcribers - - Allow personally owned parcels to be deeded to group + + Raises the EstateUsersReply event + A EstateUsersReplyEventArgs object containing the + data returned from the data server - - If Deeded, owner contributes required tier to group parcel is deeded to + + Thread sync lock object - - Restrict sounds originating on this parcel to the - parcel boundaries + + The event subscribers. null if no subcribers - - Objects on this parcel are sold when the land is - purchsaed + + Raises the EstateGroupsReply event + A EstateGroupsReplyEventArgs object containing the + data returned from the data server - - Allow this parcel to be published on the web + + Thread sync lock object - - The information for this parcel is mature content + + The event subscribers. null if no subcribers - - The media URL is an HTML page + + Raises the EstateManagersReply event + A EstateManagersReplyEventArgs object containing the + data returned from the data server - - The media URL is a raw HTML string + + Thread sync lock object - - Restrict foreign object pushes + + The event subscribers. null if no subcribers - - Ban all non identified/transacted avatars + + Raises the EstateBansReply event + A EstateBansReplyEventArgs object containing the + data returned from the data server - - Allow group-owned scripts to run + + Thread sync lock object - - Allow object creation by group members or group - objects + + The event subscribers. null if no subcribers - - Allow all objects to enter this parcel + + Raises the EstateCovenantReply event + A EstateCovenantReplyEventArgs object containing the + data returned from the data server - - Only allow group and owner objects to enter this parcel + + Thread sync lock object - - Voice Enabled on this parcel + + The event subscribers. null if no subcribers - - Use Estate Voice channel for Voice on this parcel + + Raises the EstateUpdateInfoReply event + A EstateUpdateInfoReplyEventArgs object containing the + data returned from the data server - - Deny Age Unverified Users + + Thread sync lock object - + - Parcel ownership status + Requests estate information such as top scripts and colliders + + + + - - Placeholder + + Requests estate settings, including estate manager and access/ban lists - - Parcel is leased (owned) by an avatar or group + + Requests the "Top Scripts" list for the current region - - Parcel is in process of being leased (purchased) by an avatar or group + + Requests the "Top Colliders" list for the current region - - Parcel has been abandoned back to Governor Linden + + + Set several estate specific configuration variables + + The Height of the waterlevel over the entire estate. Defaults to 20 + The maximum height change allowed above the baked terrain. Defaults to 4 + The minimum height change allowed below the baked terrain. Defaults to -4 + true to use + if True forces the sun position to the position in SunPosition + The current position of the sun on the estate, or when FixedSun is true the static position + the sun will remain. 6.0 = Sunrise, 30.0 = Sunset - + - Category parcel is listed in under search + Request return of objects owned by specified avatar + The Agents owning the primitives to return + specify the coverage and type of objects to be included in the return + true to perform return on entire estate - - No assigned category + + + + - - Linden Infohub or public area + + + Used for setting and retrieving various estate panel settings + + EstateOwnerMessage Method field + List of parameters to include - - Adult themed area + + + Kick an avatar from an estate + + Key of Agent to remove - - Arts and Culture + + + Ban an avatar from an estate + Key of Agent to remove + Ban user from this estate and all others owned by the estate owner - - Business + + Unban an avatar from an estate + Key of Agent to remove + /// Unban user from this estate and all others owned by the estate owner - - Educational + + + Send a message dialog to everyone in an entire estate + + Message to send all users in the estate - - Gaming + + + Send a message dialog to everyone in a simulator + + Message to send all users in the simulator - - Hangout or Club + + + Send an avatar back to their home location + + Key of avatar to send home - - Newcomer friendly + + + Begin the region restart process + - - Parks and Nature + + + Cancels a region restart + - - Residential + + Estate panel "Region" tab settings - - Shopping + + Estate panel "Debug" tab settings - - Not Used? + + Used for setting the region's terrain textures for its four height levels + + + + - - Other + + Used for setting sim terrain texture heights - - Not an actual category, only used for queries + + Requests the estate covenant - + - Type of teleport landing for a parcel + Upload a terrain RAW file + A byte array containing the encoded terrain data + The name of the file being uploaded + The Id of the transfer request - - Unset, simulator default - - - Specific landing point set for this parcel - - - No landing point set, direct teleports enabled for - this parcel - - + - Parcel Media Command used in ParcelMediaCommandMessage + Teleports all users home in current Estate - - Stop the media stream and go back to the first frame - - - Pause the media stream (stop playing but stay on current frame) - - - Start the current media stream playing and stop when the end is reached + + + Remove estate manager + Key of Agent to Remove + removes manager to this estate and all others owned by the estate owner - - Start the current media stream playing, - loop to the beginning when the end is reached and continue to play + + + Add estate manager + Key of Agent to Add + Add agent as manager to this estate and all others owned by the estate owner - - Specifies the texture to replace with video - If passing the key of a texture, it must be explicitly typecast as a key, - not just passed within double quotes. + + + Add's an agent to the estate Allowed list + Key of Agent to Add + Add agent as an allowed reisdent to All estates if true - - Specifies the movie URL (254 characters max) + + + Removes an agent from the estate Allowed list + Key of Agent to Remove + Removes agent as an allowed reisdent from All estates if true - - Specifies the time index at which to begin playing + + + + Add's a group to the estate Allowed list + Key of Group to Add + Add Group as an allowed group to All estates if true - - Specifies a single agent to apply the media command to + + + + Removes a group from the estate Allowed list + Key of Group to Remove + Removes Group as an allowed Group from All estates if true - - Unloads the stream. While the stop command sets the texture to the first frame of the movie, - unload resets it to the real texture that the movie was replacing. + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Turn on/off the auto align feature, similar to the auto align checkbox in the parcel media properties - (NOT to be confused with the "align" function in the textures view of the editor!) Takes TRUE or FALSE as parameter. + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Allows a Web page or image to be placed on a prim (1.19.1 RC0 and later only). - Use "text/html" for HTML. + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Resizes a Web page to fit on x, y pixels (1.19.1 RC0 and later only). - This might still not be working + + Raised when the data server responds to a request. - - Sets a description for the media being displayed (1.19.1 RC0 and later only). + + Raised when the data server responds to a request. - - - Some information about a parcel of land returned from a DirectoryManager search - + + Raised when the data server responds to a request. - - Global Key of record + + Raised when the data server responds to a request. - - Parcel Owners + + Raised when the data server responds to a request. - - Name field of parcel, limited to 128 characters + + Raised when the data server responds to a request. - - Description field of parcel, limited to 256 characters + + Raised when the data server responds to a request. - - Total Square meters of parcel + + Raised when the data server responds to a request. - - Total area billable as Tier, for group owned land this will be 10% less than ActualArea + + Used in the ReportType field of a LandStatRequest - - True of parcel is in Mature simulator + + Used by EstateOwnerMessage packets - - Grid global X position of parcel + + Used by EstateOwnerMessage packets - - Grid global Y position of parcel + + + + - - Grid global Z position of parcel (not used) + + No flags set - - Name of simulator parcel is located in + + Only return targets scripted objects - - Texture of parcels display picture + + Only return targets objects if on others land - - Float representing calculated traffic based on time spent on parcel by avatars + + Returns target's scripted objects and objects on other parcels - - Sale price of parcel (not used) + + Ground texture settings for each corner of the region - - Auction ID of parcel + + Used by GroundTextureHeightSettings - + + The high and low texture thresholds for each corner of the sim + + + Raised on LandStatReply when the report type is for "top colliders" + + + Construct a new instance of the TopCollidersReplyEventArgs class + The number of returned items in LandStatReply + Dictionary of Object UUIDs to tasks returned in LandStatReply + + - Parcel Media Information + The number of returned items in LandStatReply - - A byte, if 0x1 viewer should auto scale media to fit object + + + A Dictionary of Object UUIDs to tasks returned in LandStatReply + - - A boolean, if true the viewer should loop the media + + Raised on LandStatReply when the report type is for "top Scripts" - - The Asset UUID of the Texture which when applied to a - primitive will display the media + + Construct a new instance of the TopScriptsReplyEventArgs class + The number of returned items in LandStatReply + Dictionary of Object UUIDs to tasks returned in LandStatReply - - A URL which points to any Quicktime supported media type + + + The number of scripts returned in LandStatReply + - - A description of the media + + + A Dictionary of Object UUIDs to tasks returned in LandStatReply + - - An Integer which represents the height of the media + + Returned, along with other info, upon a successful .RequestInfo() - - An integer which represents the width of the media + + Construct a new instance of the EstateBansReplyEventArgs class + The estate's identifier on the grid + The number of returned items in LandStatReply + User UUIDs banned - - A string which contains the mime type of the media + + + The identifier of the estate + - + - Parcel of land, a portion of virtual real estate in a simulator + The number of returned itmes - - The total number of contiguous 4x4 meter blocks your agent owns within this parcel + + + List of UUIDs of Banned Users + - - The total number of contiguous 4x4 meter blocks contained in this parcel owned by a group or agent other than your own + + Returned, along with other info, upon a successful .RequestInfo() - - Deprecated, Value appears to always be 0 + + Construct a new instance of the EstateUsersReplyEventArgs class + The estate's identifier on the grid + The number of users + Allowed users UUIDs - - Simulator-local ID of this parcel + + + The identifier of the estate + - - UUID of the owner of this parcel + + + The number of returned items + - - Whether the land is deeded to a group or not + + + List of UUIDs of Allowed Users + - - + + Returned, along with other info, upon a successful .RequestInfo() - - Date land was claimed + + Construct a new instance of the EstateGroupsReplyEventArgs class + The estate's identifier on the grid + The number of Groups + Allowed Groups UUIDs - - Appears to always be zero - - - This field is no longer used - - - Minimum corner of the axis-aligned bounding box for this - parcel - - - Maximum corner of the axis-aligned bounding box for this - parcel - - - Bitmap describing land layout in 4x4m squares across the - entire region - - - Total parcel land area + + + The identifier of the estate + - - + + + The number of returned items + - - Maximum primitives across the entire simulator owned by the same agent or group that owns this parcel that can be used + + + List of UUIDs of Allowed Groups + - - Total primitives across the entire simulator calculated by combining the allowed prim counts for each parcel - owned by the agent or group that owns this parcel + + Returned, along with other info, upon a successful .RequestInfo() - - Maximum number of primitives this parcel supports + + Construct a new instance of the EstateManagersReplyEventArgs class + The estate's identifier on the grid + The number of Managers + Managers UUIDs - - Total number of primitives on this parcel + + + The identifier of the estate + - - For group-owned parcels this indicates the total number of prims deeded to the group, - for parcels owned by an individual this inicates the number of prims owned by the individual + + + The number of returned items + - - Total number of primitives owned by the parcel group on - this parcel, or for parcels owned by an individual with a group set the - total number of prims set to that group. + + + List of UUIDs of the Estate's Managers + - - Total number of prims owned by other avatars that are not set to group, or not the parcel owner + + Returned, along with other info, upon a successful .RequestInfo() - - A bonus multiplier which allows parcel prim counts to go over times this amount, this does not affect - the max prims per simulator. e.g: 117 prim parcel limit x 1.5 bonus = 175 allowed + + Construct a new instance of the EstateCovenantReplyEventArgs class + The Covenant ID + The timestamp + The estate's name + The Estate Owner's ID (can be a GroupID) - - Autoreturn value in minutes for others' objects + + + The Covenant + - - + + + The timestamp + - - Sale price of the parcel, only useful if ForSale is set - The SalePrice will remain the same after an ownership - transfer (sale), so it can be used to see the purchase price after - a sale if the new owner has not changed it + + + The Estate name + - - Parcel Name + + + The Estate Owner's ID (can be a GroupID) + - - Parcel Description + + Returned, along with other info, upon a successful .RequestInfo() - - URL For Music Stream + + Construct a new instance of the EstateUpdateInfoReplyEventArgs class + The estate's name + The Estate Owners ID (can be a GroupID) + The estate's identifier on the grid + - - + + + The estate's name + - - Price for a temporary pass + + + The Estate Owner's ID (can be a GroupID) + - - How long is pass valid for + + + The identifier of the estate on the grid + - + - - Key of authorized buyer - - - Key of parcel snapshot - - - The landing point location - - - The landing point LookAt - - - The type of landing enforced from the enum + + + Registers, unregisters, and fires events generated by incoming packets + - - + + Reference to the GridClient object - - + + + Default constructor + + - - + + + Register an event handler + + Use PacketType.Default to fire this event on every + incoming packet + Packet type to register the handler for + Callback to be fired + True if this callback should be ran + asynchronously, false to run it synchronous - - Access list of who is whitelisted on this - parcel + + + Unregister an event handler + + Packet type to unregister the handler for + Callback to be unregistered - - Access list of who is blacklisted on this - parcel + + + Fire the events registered for this packet type + + Incoming packet type + Incoming packet + Simulator this packet was received from - - TRUE of region denies access to age unverified users + + + Object that is passed to worker threads in the ThreadPool for + firing packet callbacks + - - true to obscure (hide) media url + + Callback to fire for this packet - - true to obscure (hide) music url + + Reference to the simulator that this packet came from - - A struct containing media details + + The packet that needs to be processed - + - Displays a parcel object in string format + Registers, unregisters, and fires events generated by the Capabilities + event queue - string containing key=value pairs of a parcel object - + + Reference to the GridClient object + + - Defalt constructor + Default constructor - Local ID of this parcel + Reference to the GridClient object - + - Update the simulator with any local changes to this Parcel object + Register an new event handler for a capabilities event sent via the EventQueue - Simulator to send updates to - Whether we want the simulator to confirm - the update with a reply packet or not + Use String.Empty to fire this event on every CAPS event + Capability event name to register the + handler for + Callback to fire - + - Set Autoreturn time + Unregister a previously registered capabilities handler - Simulator to send the update to + Capability event name unregister the + handler for + Callback to unregister - + - Parcel (subdivided simulator lots) subsystem + Fire the events registered for this event type synchronously + Capability name + Decoded event body + Reference to the simulator that + generated this event - - The event subscribers. null if no subcribers - - - Raises the ParcelDwellReply event - A ParcelDwellReplyEventArgs object containing the - data returned from the simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the ParcelInfoReply event - A ParcelInfoReplyEventArgs object containing the - data returned from the simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the ParcelProperties event - A ParcelPropertiesEventArgs object containing the - data returned from the simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the ParcelAccessListReply event - A ParcelAccessListReplyEventArgs object containing the - data returned from the simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the ParcelObjectOwnersReply event - A ParcelObjectOwnersReplyEventArgs object containing the - data returned from the simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the SimParcelsDownloaded event - A SimParcelsDownloadedEventArgs object containing the - data returned from the simulator + + + Fire the events registered for this event type asynchronously + + Capability name + Decoded event body + Reference to the simulator that + generated this event - - Thread sync lock object + + + Object that is passed to worker threads in the ThreadPool for + firing CAPS callbacks + - - The event subscribers. null if no subcribers + + Callback to fire for this packet - - Raises the ForceSelectObjectsReply event - A ForceSelectObjectsReplyEventArgs object containing the - data returned from the simulator + + Name of the CAPS event - - Thread sync lock object + + Strongly typed decoded data - - The event subscribers. null if no subcribers + + Reference to the simulator that generated this event - - Raises the ParcelMediaUpdateReply event - A ParcelMediaUpdateReplyEventArgs object containing the - data returned from the simulator + + + + - - Thread sync lock object + + The avatar has no rights - - The event subscribers. null if no subcribers + + The avatar can see the online status of the target avatar - - Raises the ParcelMediaCommand event - A ParcelMediaCommandEventArgs object containing the - data returned from the simulator + + The avatar can see the location of the target avatar on the map - - Thread sync lock object + + The avatar can modify the ojects of the target avatar - + - Default constructor + This class holds information about an avatar in the friends list. There are two ways + to interface to this class. The first is through the set of boolean properties. This is the typical + way clients of this class will use it. The second interface is through two bitflag properties, + TheirFriendsRights and MyFriendsRights - A reference to the GridClient object - + - Request basic information for a single parcel + Used internally when building the initial list of friends at login time - Simulator-local ID of the parcel + System ID of the avatar being prepesented + Rights the friend has to see you online and to modify your objects + Rights you have to see your friend online and to modify their objects - + - Request properties of a single parcel + FriendInfo represented as a string - Simulator containing the parcel - Simulator-local ID of the parcel - An arbitrary integer that will be returned - with the ParcelProperties reply, useful for distinguishing between - multiple simultaneous requests + A string reprentation of both my rights and my friends rights - + - Request the access list for a single parcel + System ID of the avatar - Simulator containing the parcel - Simulator-local ID of the parcel - An arbitrary integer that will be returned - with the ParcelAccessList reply, useful for distinguishing between - multiple simultaneous requests - - + - Request properties of parcels using a bounding box selection + full name of the avatar - Simulator containing the parcel - Northern boundary of the parcel selection - Eastern boundary of the parcel selection - Southern boundary of the parcel selection - Western boundary of the parcel selection - An arbitrary integer that will be returned - with the ParcelProperties reply, useful for distinguishing between - different types of parcel property requests - A boolean that is returned with the - ParcelProperties reply, useful for snapping focus to a single - parcel - + - Request all simulator parcel properties (used for populating the Simulator.Parcels - dictionary) + True if the avatar is online - Simulator to request parcels from (must be connected) - + - Request all simulator parcel properties (used for populating the Simulator.Parcels - dictionary) + True if the friend can see if I am online - Simulator to request parcels from (must be connected) - If TRUE, will force a full refresh - Number of milliseconds to pause in between each request - + - Request the dwell value for a parcel + True if the friend can see me on the map - Simulator containing the parcel - Simulator-local ID of the parcel - + - Send a request to Purchase a parcel of land + True if the freind can modify my objects - The Simulator the parcel is located in - The parcels region specific local ID - true if this parcel is being purchased by a group - The groups - true to remove tier contribution if purchase is successful - The parcels size - The purchase price of the parcel - - + - Reclaim a parcel of land + True if I can see if my friend is online - The simulator the parcel is in - The parcels region specific local ID - + - Deed a parcel to a group + True if I can see if my friend is on the map - The simulator the parcel is in - The parcels region specific local ID - The groups - + - Request prim owners of a parcel of land. + True if I can modify my friend's objects - Simulator parcel is in - The parcels region specific local ID - + - Return objects from a parcel + My friend's rights represented as bitmapped flags - Simulator parcel is in - The parcels region specific local ID - the type of objects to return, - A list containing object owners s to return - + - Subdivide (split) a parcel + My rights represented as bitmapped flags - - - - - - + - Join two parcels of land creating a single parcel + This class is used to add and remove avatars from your friends list and to manage their permission. - - - - - - + + The event subscribers. null if no subcribers + + + Raises the FriendOnline event + A FriendInfoEventArgs object containing the + data returned from the data server + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Raises the FriendOffline event + A FriendInfoEventArgs object containing the + data returned from the data server + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Raises the FriendRightsUpdate event + A FriendInfoEventArgs object containing the + data returned from the data server + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Raises the FriendNames event + A FriendNamesEventArgs object containing the + data returned from the data server + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Raises the FriendshipOffered event + A FriendshipOfferedEventArgs object containing the + data returned from the data server + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Raises the FriendshipResponse event + A FriendshipResponseEventArgs object containing the + data returned from the data server + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Raises the FriendshipTerminated event + A FriendshipTerminatedEventArgs object containing the + data returned from the data server + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Raises the FriendFoundReply event + A FriendFoundReplyEventArgs object containing the + data returned from the data server + + + Thread sync lock object + + - Get a parcels LocalID + A dictionary of key/value pairs containing known friends of this avatar. + + The Key is the of the friend, the value is a + object that contains detailed information including permissions you have and have given to the friend - Simulator parcel is in - Vector3 position in simulator (Z not used) - 0 on failure, or parcel LocalID on success. - A call to Parcels.RequestAllSimParcels is required to populate map and - dictionary. - + - Terraform (raise, lower, etc) an area or whole parcel of land + A Dictionary of key/value pairs containing current pending frienship offers. + + The key is the of the avatar making the request, + the value is the of the request which is used to accept + or decline the friendship offer - Simulator land area is in. - LocalID of parcel, or -1 if using bounding box - From Enum, Raise, Lower, Level, Smooth, Etc. - Size of area to modify - true on successful request sent. - Settings.STORE_LAND_PATCHES must be true, - Parcel information must be downloaded using RequestAllSimParcels() - + - Terraform (raise, lower, etc) an area or whole parcel of land + Internal constructor - Simulator land area is in. - west border of area to modify - south border of area to modify - east border of area to modify - north border of area to modify - From Enum, Raise, Lower, Level, Smooth, Etc. - Size of area to modify - true on successful request sent. - Settings.STORE_LAND_PATCHES must be true, - Parcel information must be downloaded using RequestAllSimParcels() + A reference to the GridClient Object - + - Terraform (raise, lower, etc) an area or whole parcel of land + Accept a friendship request - Simulator land area is in. - LocalID of parcel, or -1 if using bounding box - west border of area to modify - south border of area to modify - east border of area to modify - north border of area to modify - From Enum, Raise, Lower, Level, Smooth, Etc. - Size of area to modify - How many meters + or - to lower, 1 = 1 meter - true on successful request sent. - Settings.STORE_LAND_PATCHES must be true, - Parcel information must be downloaded using RequestAllSimParcels() + agentID of avatatar to form friendship with + imSessionID of the friendship request message - + - Terraform (raise, lower, etc) an area or whole parcel of land + Decline a friendship request - Simulator land area is in. - LocalID of parcel, or -1 if using bounding box - west border of area to modify - south border of area to modify - east border of area to modify - north border of area to modify - From Enum, Raise, Lower, Level, Smooth, Etc. - Size of area to modify - How many meters + or - to lower, 1 = 1 meter - Height at which the terraform operation is acting at + of friend + imSessionID of the friendship request message - + - Sends a request to the simulator to return a list of objects owned by specific owners + Overload: Offer friendship to an avatar. - Simulator local ID of parcel - Owners, Others, Etc - List containing keys of avatars objects to select; - if List is null will return Objects of type selectType - Response data is returned in the event + System ID of the avatar you are offering friendship to - + - Eject and optionally ban a user from a parcel + Offer friendship to an avatar. - target key of avatar to eject - true to also ban target + System ID of the avatar you are offering friendship to + A message to send with the request - + - Freeze or unfreeze an avatar over your land + Terminate a friendship with an avatar - target key to freeze - true to freeze, false to unfreeze + System ID of the avatar you are terminating the friendship with - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + - Abandon a parcel of land + Change the rights of a friend avatar. - Simulator parcel is in - Simulator local ID of parcel + the of the friend + the new rights to give the friend + This method will implicitly set the rights to those passed in the rights parameter. - + - Requests the UUID of the parcel in a remote region at a specified location + Use to map a friends location on the grid. - Location of the parcel in the remote region - Remote region handle - Remote region UUID - If successful UUID of the remote parcel, UUID.Zero otherwise + Friends UUID to find + - + - Retrieves information on resources used by the parcel + Use to track a friends movement on the grid - UUID of the parcel - Should per object resource usage be requested - Callback invoked when the request is complete + Friends Key - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - Raises the event + + + Ask for a notification of friend's online status + + Friend's UUID - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - Raises the event + + + This handles the asynchronous response of a RequestAvatarNames call. + + + names cooresponding to the the list of IDs sent the the RequestAvatarNames call. - + Process an incoming packet and raise the appropriate events The sender The EventArgs object containing the packet data - Raises the event - + Process an incoming packet and raise the appropriate events The sender The EventArgs object containing the packet data - Raises the event - + Process an incoming packet and raise the appropriate events The sender The EventArgs object containing the packet data - Raises the event - + Process an incoming packet and raise the appropriate events The sender The EventArgs object containing the packet data - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - Raises the event + + + Populate FriendList with data from the login reply + + true if login was successful + true if login request is requiring a redirect + A string containing the response to the login request + A string containing the reason for the request + A object containing the decoded + reply from the login server - - Raised when the simulator responds to a request + + Raised when the simulator sends notification one of the members in our friends list comes online - - Raised when the simulator responds to a request + + Raised when the simulator sends notification one of the members in our friends list goes offline - - Raised when the simulator responds to a request + + Raised when the simulator sends notification one of the members in our friends list grants or revokes permissions - - Raised when the simulator responds to a request + + Raised when the simulator sends us the names on our friends list - - Raised when the simulator responds to a request + + Raised when the simulator sends notification another agent is offering us friendship - - Raised when the simulator responds to a request + + Raised when a request we sent to friend another agent is accepted or declined - - Raised when the simulator responds to a request + + Raised when the simulator sends notification one of the members in our friends list has terminated + our friendship - - Raised when the simulator responds to a Parcel Update request + + Raised when the simulator sends the location of a friend we have + requested map location info for - - Raised when the parcel your agent is located sends a ParcelMediaCommand + + Contains information on a member of our friends list - + - Parcel Accesslist + Construct a new instance of the FriendInfoEventArgs class + The FriendInfo - - Agents - - - + + Get the FriendInfo - - Flags for specific entry in white/black lists + + Contains Friend Names - + - Owners of primitives on parcel + Construct a new instance of the FriendNamesEventArgs class + A dictionary where the Key is the ID of the Agent, + and the Value is a string containing their name - - Prim Owners + + A dictionary where the Key is the ID of the Agent, + and the Value is a string containing their name - - True of owner is group + + Sent when another agent requests a friendship with our agent - - Total count of prims owned by OwnerID + + + Construct a new instance of the FriendshipOfferedEventArgs class + + The ID of the agent requesting friendship + The name of the agent requesting friendship + The ID of the session, used in accepting or declining the + friendship offer - - true of OwnerID is currently online and is not a group + + Get the ID of the agent requesting friendship - - The date of the most recent prim left by OwnerID + + Get the name of the agent requesting friendship - - - Called once parcel resource usage information has been collected - - Indicates if operation was successfull - Parcel resource usage information + + Get the ID of the session, used in accepting or declining the + friendship offer - - Contains a parcels dwell data returned from the simulator in response to an + + A response containing the results of our request to form a friendship with another agent - + - Construct a new instance of the ParcelDwellReplyEventArgs class + Construct a new instance of the FriendShipResponseEventArgs class - The global ID of the parcel - The simulator specific ID of the parcel - The calculated dwell for the parcel + The ID of the agent we requested a friendship with + The name of the agent we requested a friendship with + true if the agent accepted our friendship offer - - Get the global ID of the parcel + + Get the ID of the agent we requested a friendship with - - Get the simulator specific ID of the parcel + + Get the name of the agent we requested a friendship with - - Get the calculated dwell + + true if the agent accepted our friendship offer - - Contains basic parcel information data returned from the - simulator in response to an request + + Contains data sent when a friend terminates a friendship with us - + - Construct a new instance of the ParcelInfoReplyEventArgs class + Construct a new instance of the FrindshipTerminatedEventArgs class - The object containing basic parcel info + The ID of the friend who terminated the friendship with us + The name of the friend who terminated the friendship with us - - Get the object containing basic parcel info + + Get the ID of the agent that terminated the friendship with us - - Contains basic parcel information data returned from the simulator in response to an request + + Get the name of the agent that terminated the friendship with us - + - Construct a new instance of the ParcelPropertiesEventArgs class + Data sent in response to a request which contains the information to allow us to map the friends location - The object containing the details - The object containing the details - The result of the request - The number of primitieves your agent is - currently selecting and or sitting on in this parcel - The user assigned ID used to correlate a request with - these results - TODO: - - - Get the simulator the parcel is located in - - - Get the object containing the details - If Result is NoData, this object will not contain valid data - - - Get the result of the request - - Get the number of primitieves your agent is - currently selecting and or sitting on in this parcel + + + Construct a new instance of the FriendFoundReplyEventArgs class + + The ID of the agent we have requested location information for + The region handle where our friend is located + The simulator local position our friend is located - - Get the user assigned ID used to correlate a request with - these results + + Get the ID of the agent we have received location information for - - TODO: + + Get the region handle where our mapped friend is located - - Contains blacklist and whitelist data returned from the simulator in response to an request + + Get the simulator local position where our friend is located - + - Construct a new instance of the ParcelAccessListReplyEventArgs class + Main class to expose grid functionality to clients. All of the + classes needed for sending and receiving data are accessible through + this class. - The simulator the parcel is located in - The user assigned ID used to correlate a request with - these results - The simulator specific ID of the parcel - TODO: - The list containing the white/blacklisted agents for the parcel + + + // Example minimum code required to instantiate class and + // connect to a simulator. + using System; + using System.Collections.Generic; + using System.Text; + using OpenMetaverse; + + namespace FirstBot + { + class Bot + { + public static GridClient Client; + static void Main(string[] args) + { + Client = new GridClient(); // instantiates the GridClient class + // to the global Client object + // Login to Simulator + Client.Network.Login("FirstName", "LastName", "Password", "FirstBot", "1.0"); + // Wait for a Keypress + Console.ReadLine(); + // Logout of simulator + Client.Network.Logout(); + } + } + } + + - - Get the simulator the parcel is located in + + Networking subsystem - - Get the user assigned ID used to correlate a request with - these results + + Settings class including constant values and changeable + parameters for everything - - Get the simulator specific ID of the parcel + + Parcel (subdivided simulator lots) subsystem - - TODO: + + Our own avatars subsystem - - Get the list containing the white/blacklisted agents for the parcel + + Other avatars subsystem - - Contains blacklist and whitelist data returned from the - simulator in response to an request + + Estate subsystem - - - Construct a new instance of the ParcelObjectOwnersReplyEventArgs class - - The simulator the parcel is located in - The list containing prim ownership counts + + Friends list subsystem - - Get the simulator the parcel is located in + + Grid (aka simulator group) subsystem - - Get the list containing prim ownership counts + + Object subsystem - - Contains the data returned when all parcel data has been retrieved from a simulator + + Group subsystem - - - Construct a new instance of the SimParcelsDownloadedEventArgs class - - The simulator the parcel data was retrieved from - The dictionary containing the parcel data - The multidimensional array containing a x,y grid mapped - to each 64x64 parcel's LocalID. + + Asset subsystem - - Get the simulator the parcel data was retrieved from + + Appearance subsystem - - A dictionary containing the parcel data where the key correlates to the ParcelMap entry + + Inventory subsystem - - Get the multidimensional array containing a x,y grid mapped - to each 64x64 parcel's LocalID. + + Directory searches including classifieds, people, land + sales, etc - - Contains the data returned when a request + + Handles land, wind, and cloud heightmaps - + + Handles sound-related networking + + + Throttling total bandwidth usage, or allocating bandwidth + for specific data stream types + + - Construct a new instance of the ForceSelectObjectsReplyEventArgs class + Default constructor - The simulator the parcel data was retrieved from - The list of primitive IDs - true if the list is clean and contains the information - only for a given request - - Get the simulator the parcel data was retrieved from + + + Return the full name of this instance + + Client avatars full name - - Get the list of primitive IDs + + + Map layer request type + - - true if the list is clean and contains the information - only for a given request + + Objects and terrain are shown - - Contains data when the media data for a parcel the avatar is on changes + + Only the terrain is shown, no objects - + + Overlay showing land for sale and for auction + + - Construct a new instance of the ParcelMediaUpdateReplyEventArgs class + Type of grid item, such as telehub, event, populator location, etc. - the simulator the parcel media data was updated in - The updated media information - - Get the simulator the parcel media data was updated in + + Telehub - - Get the updated media information + + PG rated event - - Contains the media command for a parcel the agent is currently on + + Mature rated event - + + Popular location + + + Locations of avatar groups in a region + + + Land for sale + + + Classified ad + + + Adult rated event + + + Adult land for sale + + - Construct a new instance of the ParcelMediaCommandEventArgs class + Information about a region on the grid map - The simulator the parcel media command was issued in - - - The media command that was sent - - - Get the simulator the parcel media command was issued in + + Sim X position on World Map - - + + Sim Y position on World Map - + + Sim Name (NOTE: In lowercase!) + + - - Get the media command that was sent + + Appears to always be zero (None) - + + Sim's defined Water Height + + - + + UUID of the World Map image + + + Unique identifier for this region, a combination of the X + and Y position + + + - + + - + + + - + - + Visual chunk of the grid map - + - + Base class for Map Items - - - + + The Global X position of the item + + + The Global Y position of the item + + + Get the Local X position of the item + + + Get the Local Y position of the item + + + Get the Handle of the region + + - The ObservableDictionary class is used for storing key/value pairs. It has methods for firing - events to subscribers when items are added, removed, or changed. + Represents an agent or group of agents location - Key - Value - + - A dictionary of callbacks to fire when specified action occurs + Represents a Telehub location - + - Register a callback to be fired when an action occurs + Represents a non-adult parcel of land for sale - The action - The callback to fire - + - Unregister a callback + Represents an Adult parcel of land for sale - The action - The callback to fire - + - + Represents a PG Event - - - - - Internal dictionary that this class wraps around. Do not - modify or enumerate the contents of this dictionary without locking - + - Initializes a new instance of the Class - with the specified key/value, has the default initial capacity. + Represents a Mature event - - - // initialize a new ObservableDictionary named testDict with a string as the key and an int as the value. - public ObservableDictionary<string, int> testDict = new ObservableDictionary<string, int>(); - - - + - Initializes a new instance of the Class - with the specified key/value, With its initial capacity specified. + Represents an Adult event - Initial size of dictionary - - - // initialize a new ObservableDictionary named testDict with a string as the key and an int as the value, - // initially allocated room for 10 entries. - public ObservableDictionary<string, int> testDict = new ObservableDictionary<string, int>(10); - - - + - Try to get entry from the with specified key + Manages grid-wide tasks such as the world map - Key to use for lookup - Value returned - if specified key exists, if not found - - - // find your avatar using the Simulator.ObjectsAvatars ObservableDictionary: - Avatar av; - if (Client.Network.CurrentSim.ObjectsAvatars.TryGetValue(Client.Self.AgentID, out av)) - Console.WriteLine("Found Avatar {0}", av.Name); - - - - - - Finds the specified match. - - The match. - Matched value - - - // use a delegate to find a prim in the ObjectsPrimitives ObservableDictionary - // with the ID 95683496 - uint findID = 95683496; - Primitive findPrim = sim.ObjectsPrimitives.Find( - delegate(Primitive prim) { return prim.ID == findID; }); - - + + The event subscribers. null if no subcribers - - Find All items in an - return matching items. - a containing found items. - - Find All prims within 20 meters and store them in a List - - int radius = 20; - List<Primitive> prims = Client.Network.CurrentSim.ObjectsPrimitives.FindAll( - delegate(Primitive prim) { - Vector3 pos = prim.Position; - return ((prim.ParentID == 0) && (pos != Vector3.Zero) && (Vector3.Distance(pos, location) < radius)); - } - ); - - + + Raises the CoarseLocationUpdate event + A CoarseLocationUpdateEventArgs object containing the + data sent by simulator - - Find All items in an - return matching keys. - a containing found keys. - - Find All keys which also exist in another dictionary - - List<UUID> matches = myDict.FindAll( - delegate(UUID id) { - return myOtherDict.ContainsKey(id); - } - ); - - + + Thread sync lock object - - Check if Key exists in Dictionary - Key to check for - if found, otherwise + + The event subscribers. null if no subcribers - - Check if Value exists in Dictionary - Value to check for - if found, otherwise + + Raises the GridRegion event + A GridRegionEventArgs object containing the + data sent by simulator - + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Raises the GridLayer event + A GridLayerEventArgs object containing the + data sent by simulator + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Raises the GridItems event + A GridItemEventArgs object containing the + data sent by simulator + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Raises the RegionHandleReply event + A RegionHandleReplyEventArgs object containing the + data sent by simulator + + + Thread sync lock object + + + A dictionary of all the regions, indexed by region name + + + A dictionary of all the regions, indexed by region handle + + - Adds the specified key to the dictionary, dictionary locking is not performed, - + Constructor - The key - The value + Instance of GridClient object to associate with this GridManager instance - + - Removes the specified key, dictionary locking is not performed + - The key. - if successful, otherwise + - + - Clear the contents of the dictionary + Request a map layer + The name of the region + The type of layer - + - Enumerator for iterating dictionary entries + + + + + + + + + + + + + + + + - + - Gets the number of Key/Value pairs contained in the + + + + - + - Indexer for the dictionary + Request data for all mainland (Linden managed) simulators - The key - The value - + - Avatar group management + Request the region handle for the specified region UUID + UUID of the region to look up - - Key of Group Member + + + Get grid region information using the region name, this function + will block until it can find the region or gives up + + Name of sim you're looking for + Layer that you are requesting + Will contain a GridRegion for the sim you're + looking for if successful, otherwise an empty structure + True if the GridRegion was successfully fetched, otherwise + false - - Total land contribution + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Online status information + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Abilities that the Group Member has + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Current group title + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Is a group owner + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - Role manager for a group - + + Raised when the simulator sends a + containing the location of agents in the simulator - - Key of the group + + Raised when the simulator sends a Region Data in response to + a Map request - - Key of Role + + Raised when the simulator sends GridLayer object containing + a map tile coordinates and texture information - - Name of Role + + Raised when the simulator sends GridItems object containing + details on events, land sales at a specific location - + + Raised in response to a Region lookup + + + Unknown + + + Current direction of the sun + + + Current angular velocity of the sun + + + Microseconds since the start of SL 4-hour day + + + + Avatar group management + + + + Key of Group Member + + + Total land contribution + + + Online status information + + + Abilities that the Group Member has + + + Current group title + + + Is a group owner + + + + Role manager for a group + + + + Key of the group + + + Key of Role + + + Name of Role + + Group Title associated with Role @@ -10247,6 +10093,9 @@ Pay group liabilities and receive group dividends + + List and Host group events + Can send group notices @@ -10259,6 +10108,17 @@ Can vote on group proposals + + + Ban actions available for group members + + + + Ban agent from joining a group + + + Remove restriction on agent jointing a group + Handles all network traffic related to reading and writing group @@ -10430,6 +10290,17 @@ Thread sync lock object + + The event subscribers. null if no subcribers + + + Raises the BannedAgents event + An BannedAgentsEventArgs object containing the + data returned from the simulator + + + Thread sync lock object + A reference to the current instance @@ -10615,6 +10486,43 @@ Subscribe to OnGroupLeft event to receive confirmation The group to leave + + + Gets the URI of the cpability for handling group bans + + Group ID + null, if the feature is not supported, or URI of the capability + + + + Request a list of residents banned from joining a group + + UUID of the group + + + + Request a list of residents banned from joining a group + + UUID of the group + Callback on request completition + + + + Request that group of agents be banned or unbanned from the group + + Group ID + Ban/Unban action + Array of agents UUIDs to ban + + + + Request that group of agents be banned or unbanned from the group + + Group ID + Ban/Unban action + Array of agents UUIDs to ban + Callback + Process an incoming packet and raise the appropriate events The sender @@ -10742,6 +10650,9 @@ Raised when another agent invites our avatar to join a group + + Raised when another agent invites our avatar to join a group + Contains the current groups your agent is a member of @@ -10946,446 +10857,305 @@ Set to true to accept invitation, false to decline - + - + Result of the request for list of agents banned from a group - Looking direction, must be a normalized vector - Up direction, must be a normalized vector - + + Indicates if list of banned agents for a group was successfully retrieved + + + Indicates if list of banned agents for a group was successfully retrieved + + + Array containing a list of UUIDs of the agents banned from a group + + - Align the coordinate frame X and Y axis with a given rotation - around the Z axis in radians + Static helper functions and global variables - Absolute rotation around the Z axis in - radians - - Origin position of this coordinate frame + + This header flag signals that ACKs are appended to the packet - - X axis of this coordinate frame, or Forward/At in grid terms + + This header flag signals that this packet has been sent before - - Y axis of this coordinate frame, or Left in grid terms + + This header flags signals that an ACK is expected for this packet - - Z axis of this coordinate frame, or Up in grid terms + + This header flag signals that the message is compressed using zerocoding - + - Avatar profile flags + + + - + - Represents an avatar (other than your own) + + + + - - Groups that this avatar is a member of - - - Positive and negative ratings - - - Avatar properties including about text, profile URL, image IDs and - publishing settings - - - Avatar interests including spoken languages, skills, and "want to" - choices - - - Movement control flags for avatars. Typically not set or used by - clients. To move your avatar, use Client.Self.Movement instead - - + - Contains the visual parameters describing the deformation of the avatar + + + - + - Default constructor + + + + - - First name - - - Last name - - - Full name - - - Active group - - + - Positive and negative ratings + Given an X/Y location in absolute (grid-relative) terms, a region + handle is returned along with the local X/Y location in that region + The absolute X location, a number such as + 255360.35 + The absolute Y location, a number such as + 255360.35 + The sim-local X position of the global X + position, a value from 0.0 to 256.0 + The sim-local Y position of the global Y + position, a value from 0.0 to 256.0 + A 64-bit region handle that can be used to teleport to - - Positive ratings for Behavior - - - Negative ratings for Behavior - - - Positive ratings for Appearance - - - Negative ratings for Appearance - - - Positive ratings for Building - - - Negative ratings for Building - - - Positive ratings given by this avatar + + + Converts a floating point number to a terse string format used for + transmitting numbers in wearable asset files + + Floating point number to convert to a string + A terse string representation of the input number - - Negative ratings given by this avatar + + + Convert a variable length field (byte array) to a string, with a + field name prepended to each line of the output + + If the byte array has unprintable characters in it, a + hex dump will be written instead + The StringBuilder object to write to + The byte array to convert to a string + A field name to prepend to each line of output - + - Avatar properties including about text, profile URL, image IDs and - publishing settings + Decode a zerocoded byte array, used to decompress packets marked + with the zerocoded flag + Any time a zero is encountered, the next byte is a count + of how many zeroes to expand. One zero is encoded with 0x00 0x01, + two zeroes is 0x00 0x02, three zeroes is 0x00 0x03, etc. The + first four bytes are copied directly to the output buffer. + + The byte array to decode + The length of the byte array to decode. This + would be the length of the packet up to (but not including) any + appended ACKs + The output byte array to decode to + The length of the output buffer - - First Life about text + + + Encode a byte array with zerocoding. Used to compress packets marked + with the zerocoded flag. Any zeroes in the array are compressed down + to a single zero byte followed by a count of how many zeroes to expand + out. A single zero becomes 0x00 0x01, two zeroes becomes 0x00 0x02, + three zeroes becomes 0x00 0x03, etc. The first four bytes are copied + directly to the output buffer. + + The byte array to encode + The length of the byte array to encode + The output byte array to encode to + The length of the output buffer - - First Life image ID - - - - - - - - - - - - - - - Profile image ID - - - Flags of the profile - - - Web URL for this profile - - - Should this profile be published on the web - - - Avatar Online Status - - - Is this a mature profile - - - - - - - - + - Avatar interests including spoken languages, skills, and "want to" - choices + Calculates the CRC (cyclic redundancy check) needed to upload inventory. + Creation date + Sale type + Inventory type + Type + Asset ID + Group ID + Sale price + Owner ID + Creator ID + Item ID + Folder ID + Everyone mask (permissions) + Flags + Next owner mask (permissions) + Group mask (permissions) + Owner mask (permissions) + The calculated CRC - - Languages profile field - - - - - - - - - - - - - - + - Extract the avatar UUID encoded in a SIP URI + Attempts to load a file embedded in the assembly - - + The filename of the resource to load + A Stream for the requested file, or null if the resource + was not successfully loaded - + - Permissions for control of object media + Attempts to load a file either embedded in the assembly or found in + a given search path + The filename of the resource to load + An optional path that will be searched if + the asset is not found embedded in the assembly + A Stream for the requested file, or null if the resource + was not successfully loaded - + - Style of cotrols that shold be displayed to the user + Converts a list of primitives to an object that can be serialized + with the LLSD system + Primitives to convert to a serializable object + An object that can be serialized with LLSD - + - Class representing media data for a single face + Deserializes OSD in to a list of primitives + Structure holding the serialized primitive list, + must be of the SDMap type + A list of deserialized primitives - - Is display of the alternative image enabled - - - Should media auto loop - - - Shoule media be auto played - - - Auto scale media to prim face - - - Should viewer automatically zoom in on the face when clicked - - - Should viewer interpret first click as interaction with the media - or when false should the first click be treated as zoom in commadn - - - Style of controls viewer should display when - viewer media on this face - - - Starting URL for the media - - - Currently navigated URL + + + Converts a struct or class object containing fields only into a key value separated string + + The struct object + A string containing the struct fields as the keys, and the field value as the value separated + + + // Add the following code to any struct or class containing only fields to override the ToString() + // method to display the values of the passed object + + /// Print the struct data as a string + ///A string containing the field name, and field value + public override string ToString() + { + return Helpers.StructToString(this); + } + + - - Media height in pixes + + + Passed to Logger.Log() to identify the severity of a log entry + - - Media width in pixels + + No logging information will be output - - Who can controls the media + + Non-noisy useful information, may be helpful in + debugging a problem - - Who can interact with the media + + A non-critical error occurred. A warning will not + prevent the rest of the library from operating as usual, + although it may be indicative of an underlying issue - - Is URL whitelist enabled + + A critical error has occurred. Generally this will + be followed by the network layer shutting down, although the + stability of the library after an error is uncertain - - Array of URLs that are whitelisted + + Used for internal testing, this logging level can + generate very noisy (long and/or repetitive) messages. Don't + pass this to the Log() function, use DebugLog() instead. + - + - Serialize to OSD + The InternalDictionary class is used through the library for storing key/value pairs. + It is intended to be a replacement for the generic Dictionary class and should + be used in its place. It contains several methods for allowing access to the data from + outside the library that are read only and thread safe. + - OSDMap with the serialized data + Key + Value - + + Internal dictionary that this class wraps around. Do not + modify or enumerate the contents of this dictionary without locking + on this member + + - Deserialize from OSD data + Initializes a new instance of the Class + with the specified key/value, has the default initial capacity. - Serialized OSD data - Deserialized object + + + // initialize a new InternalDictionary named testDict with a string as the key and an int as the value. + public InternalDictionary<string, int> testDict = new InternalDictionary<string, int>(); + + - + - Operation to apply when applying color to texture + Initializes a new instance of the Class + with the specified key/value, has its initial valies copied from the specified + + + to copy initial values from + + + // initialize a new InternalDictionary named testAvName with a UUID as the key and an string as the value. + // populates with copied values from example KeyNameCache Dictionary. + + // create source dictionary + Dictionary<UUID, string> KeyNameCache = new Dictionary<UUID, string>(); + KeyNameCache.Add("8300f94a-7970-7810-cf2c-fc9aa6cdda24", "Jack Avatar"); + KeyNameCache.Add("27ba1e40-13f7-0708-3e98-5819d780bd62", "Jill Avatar"); + + // Initialize new dictionary. + public InternalDictionary<UUID, string> testAvName = new InternalDictionary<UUID, string>(KeyNameCache); + + - + - Information needed to translate visual param value to RGBA color + Initializes a new instance of the Class + with the specified key/value, With its initial capacity specified. + Initial size of dictionary + + + // initialize a new InternalDictionary named testDict with a string as the key and an int as the value, + // initially allocated room for 10 entries. + public InternalDictionary<string, int> testDict = new InternalDictionary<string, int>(10); + + - + - Construct VisualColorParam - - Operation to apply when applying color to texture - Colors - - - - Represents alpha blending and bump infor for a visual parameter - such as sleive length - - - - Stregth of the alpha to apply - - - File containing the alpha channel - - - Skip blending if parameter value is 0 - - - Use miltiply insted of alpha blending - - - - Create new alhpa information for a visual param - - Stregth of the alpha to apply - File containing the alpha channel - Skip blending if parameter value is 0 - Use miltiply insted of alpha blending - - - - A single visual characteristic of an avatar mesh, such as eyebrow height - - - - Index of this visual param - - - Internal name - - - Group ID this parameter belongs to - - - Name of the wearable this parameter belongs to - - - Displayable label of this characteristic - - - Displayable label for the minimum value of this characteristic - - - Displayable label for the maximum value of this characteristic - - - Default value - - - Minimum value - - - Maximum value - - - Is this param used for creation of bump layer? - - - Alpha blending/bump info - - - Color information - - - Array of param IDs that are drivers for this parameter - - - - Set all the values through the constructor - - Index of this visual param - Internal name - - - Displayable label of this characteristic - Displayable label for the minimum value of this characteristic - Displayable label for the maximum value of this characteristic - Default value - Minimum value - Maximum value - Is this param used for creation of bump layer? - Array of param IDs that are drivers for this parameter - Alpha blending/bump info - Color information - - - - Holds the Params array of all the avatar appearance parameters - - - - - The InternalDictionary class is used through the library for storing key/value pairs. - It is intended to be a replacement for the generic Dictionary class and should - be used in its place. It contains several methods for allowing access to the data from - outside the library that are read only and thread safe. - - - Key - Value - - - Internal dictionary that this class wraps around. Do not - modify or enumerate the contents of this dictionary without locking - on this member - - - - Initializes a new instance of the Class - with the specified key/value, has the default initial capacity. - - - - // initialize a new InternalDictionary named testDict with a string as the key and an int as the value. - public InternalDictionary<string, int> testDict = new InternalDictionary<string, int>(); - - - - - - Initializes a new instance of the Class - with the specified key/value, has its initial valies copied from the specified - - - - to copy initial values from - - - // initialize a new InternalDictionary named testAvName with a UUID as the key and an string as the value. - // populates with copied values from example KeyNameCache Dictionary. - - // create source dictionary - Dictionary<UUID, string> KeyNameCache = new Dictionary<UUID, string>(); - KeyNameCache.Add("8300f94a-7970-7810-cf2c-fc9aa6cdda24", "Jack Avatar"); - KeyNameCache.Add("27ba1e40-13f7-0708-3e98-5819d780bd62", "Jill Avatar"); - - // Initialize new dictionary. - public InternalDictionary<UUID, string> testAvName = new InternalDictionary<UUID, string>(KeyNameCache); - - - - - - Initializes a new instance of the Class - with the specified key/value, With its initial capacity specified. - - Initial size of dictionary - - - // initialize a new InternalDictionary named testDict with a string as the key and an int as the value, - // initially allocated room for 10 entries. - public InternalDictionary<string, int> testDict = new InternalDictionary<string, int>(10); - - - - - - Try to get entry from with specified key + Try to get entry from with specified key Key to use for lookup Value returned @@ -11513,13556 +11283,24958 @@ The key The value - + - This is used to initialize and stop the Connector as a whole. The Connector - Create call must be completed successfully before any other requests are made - (typically during application initialization). The shutdown should be called - when the application is shutting down to gracefully release resources + Exception class to identify inventory exceptions - A string value indicting the Application name - URL for the management server - LoggingSettings - - - + - Shutdown Connector -- Should be called when the application is shutting down - to gracefully release resources + Responsible for maintaining inventory structure. Inventory constructs nodes + and manages node children as is necessary to maintain a coherant hirarchy. + Other classes should not manipulate or create InventoryNodes explicitly. When + A node's parent changes (when a folder is moved, for example) simply pass + Inventory the updated InventoryFolder and it will make the appropriate changes + to its internal representation. - Handle returned from successful Connector ‘create’ request - + + The event subscribers, null of no subscribers + + + Raises the InventoryObjectUpdated Event + A InventoryObjectUpdatedEventArgs object containing + the data sent from the simulator + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Raises the InventoryObjectRemoved Event + A InventoryObjectRemovedEventArgs object containing + the data sent from the simulator + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Raises the InventoryObjectAdded Event + A InventoryObjectAddedEventArgs object containing + the data sent from the simulator + + + Thread sync lock object + + - Mute or unmute the microphone + Returns the contents of the specified folder - Handle returned from successful Connector ‘create’ request - true (mute) or false (unmute) + A folder's UUID + The contents of the folder corresponding to folder + When folder does not exist in the inventory - + - Mute or unmute the speaker + Updates the state of the InventoryNode and inventory data structure that + is responsible for the InventoryObject. If the item was previously not added to inventory, + it adds the item, and updates structure accordingly. If it was, it updates the + InventoryNode, changing the parent node if item.parentUUID does + not match node.Parent.Data.UUID. + + You can not set the inventory root folder using this method - Handle returned from successful Connector ‘create’ request - true (mute) or false (unmute) + The InventoryObject to store - + - Set microphone volume + Removes the InventoryObject and all related node data from Inventory. - Handle returned from successful Connector ‘create’ request - The level of the audio, a number between -100 and 100 where - 0 represents ‘normal’ speaking volume + The InventoryObject to remove. - + - Set local speaker volume + Used to find out if Inventory contains the InventoryObject + specified by uuid. - Handle returned from successful Connector ‘create’ request - The level of the audio, a number between -100 and 100 where - 0 represents ‘normal’ speaking volume + The UUID to check. + true if inventory contains uuid, false otherwise - + - Starts a thread that keeps the daemon running + Saves the current inventory structure to a cache file - - + Name of the cache file to save to - + - Stops the daemon and the thread keeping it running + Loads in inventory cache file into the inventory structure. Note only valid to call after login has been successful. + Name of the cache file to load + The number of inventory items sucessfully reconstructed into the inventory node tree - + + Raised when the simulator sends us data containing + ... + + + Raised when the simulator sends us data containing + ... + + + Raised when the simulator sends us data containing + ... + + - + The root folder of this avatars inventory - - - - + - This is used to get a list of audio devices that can be used for capture (input) of voice. + The default shared library folder - - + - This is used to get a list of audio devices that can be used for render (playback) of voice. + The root node of the avatars inventory - + - This command is used to select the render device. + The root node of the default shared library - The name of the device as returned by the Aux.GetRenderDevices command. - + - This command is used to select the capture device. + By using the bracket operator on this class, the program can get the + InventoryObject designated by the specified uuid. If the value for the corresponding + UUID is null, the call is equivelant to a call to RemoveNodeFor(this[uuid]). + If the value is non-null, it is equivelant to a call to UpdateNodeFor(value), + the uuid parameter is ignored. - The name of the device as returned by the Aux.GetCaptureDevices command. + The UUID of the InventoryObject to get or set, ignored if set to non-null value. + The InventoryObject corresponding to uuid. - + + Sort by name + + + Sort by date + + + Sort folders by name, regardless of whether items are + sorted by name or date + + + Place system folders at the top + + - This command is used to start the audio capture process which will cause - AuxAudioProperty Events to be raised. These events can be used to display a - microphone VU meter for the currently selected capture device. This command - should not be issued if the user is on a call. + Possible destinations for DeRezObject request - (unused but required) - - + + + + + Copy from in-world to agent inventory + + + Derez to TaskInventory + + + + + + Take Object + + + + + + Delete Object + + + Put an avatar attachment into agent inventory + + + + + + Return an object back to the owner's inventory + + + Return a deeded object back to the last owner's inventory + + - This command is used to stop the audio capture process. + Upper half of the Flags field for inventory items - - + + Indicates that the NextOwner permission will be set to the + most restrictive set of permissions found in the object set + (including linkset items and object inventory items) on next rez + + + Indicates that the object sale information has been + changed + + + If set, and a slam bit is set, indicates BaseMask will be overwritten on Rez + + + If set, and a slam bit is set, indicates OwnerMask will be overwritten on Rez + + + If set, and a slam bit is set, indicates GroupMask will be overwritten on Rez + + + If set, and a slam bit is set, indicates EveryoneMask will be overwritten on Rez + + + If set, and a slam bit is set, indicates NextOwnerMask will be overwritten on Rez + + + Indicates whether this object is composed of multiple + items or not + + + Indicates that the asset is only referenced by this + inventory item. If this item is deleted or updated to reference a + new assetID, the asset can be deleted + + - This command is used to set the mic volume while in the audio tuning process. - Once an acceptable mic level is attained, the application must issue a - connector set mic volume command to have that level be used while on voice - calls. + Base Class for Inventory Items - the microphone volume (-100 to 100 inclusive) - - + + of item/folder + + + of parent folder + + + Name of item/folder + + + Item/Folder Owners + + - This command is used to set the speaker volume while in the audio tuning - process. Once an acceptable speaker level is attained, the application must - issue a connector set speaker volume command to have that level be used while - on voice calls. + Constructor, takes an itemID as a parameter - the speaker volume (-100 to 100 inclusive) - + The of the item - + - Create a Session - Sessions typically represent a connection to a media session with one or more - participants. This is used to generate an ‘outbound’ call to another user or - channel. The specifics depend on the media types involved. A session handle is - required to control the local user functions within the session (or remote - users if the current account has rights to do so). Currently creating a - session automatically connects to the audio media, there is no need to call - Session.Connect at this time, this is reserved for future use. + - Handle returned from successful Connector ‘create’ request - This is the URI of the terminating point of the session (ie who/what is being called) - This is the display name of the entity being called (user or channel) - Only needs to be supplied when the target URI is password protected - This indicates the format of the password as passed in. This can either be - “ClearText” or “SHA1UserName”. If this element does not exist, it is assumed to be “ClearText”. If it is - “SHA1UserName”, the password as passed in is the SHA1 hash of the password and username concatenated together, - then base64 encoded, with the final “=” character stripped off. - - - + - Used to accept a call + - SessionHandle such as received from SessionNewEvent - "default" - + - This command is used to start the audio render process, which will then play - the passed in file through the selected audio render device. This command - should not be issued if the user is on a call. + Generates a number corresponding to the value of the object to support the use of a hash table, + suitable for use in hashing algorithms and data structures such as a hash table - The fully qualified path to the sound file. - True if the file is to be played continuously and false if it is should be played once. - + A Hashcode of all the combined InventoryBase fields - + - This command is used to stop the audio render process. + Determine whether the specified object is equal to the current object - The fully qualified path to the sound file issued in the start render command. - + InventoryBase object to compare against + true if objects are the same - + - This is used to ‘end’ an established session (i.e. hang-up or disconnect). + Determine whether the specified object is equal to the current object - Handle returned from successful Session ‘create’ request or a SessionNewEvent - + InventoryBase object to compare against + true if objects are the same - + - Set the combined speaking and listening position in 3D space. + Convert inventory to OSD - Handle returned from successful Session ‘create’ request or a SessionNewEvent - Speaking position - Listening position - + OSD representation - + - Set User Volume for a particular user. Does not affect how other users hear that user. + An Item in Inventory - Handle returned from successful Session ‘create’ request or a SessionNewEvent - - The level of the audio, a number between -100 and 100 where 0 represents ‘normal’ speaking volume - - + + The of this item + + + The combined of this item + + + The type of item from + + + The type of item from the enum + + + The of the creator of this item + + + A Description of this item + + + The s this item is set to or owned by + + + If true, item is owned by a group + + + The price this item can be purchased for + + + The type of sale from the enum + + + Combined flags from + + + Time and date this inventory item was created, stored as + UTC (Coordinated Universal Time) + + + Used to update the AssetID in requests sent to the server + + + The of the previous owner of the item + + - Start up the Voice service. + Construct a new InventoryItem object + The of the item - + - Handle miscellaneous request status + Construct a new InventoryItem object of a specific Type - - - ///If something goes wrong, we log it. + The type of item from + of the item - + - Cleanup oject resources + Indicates inventory item is a link + True if inventory item is a link to another inventory item - + - Request voice cap when changing regions + + - + - Handle a change in session state + + - + - Close a voice session + Generates a number corresponding to the value of the object to support the use of a hash table. + Suitable for use in hashing algorithms and data structures such as a hash table - + A Hashcode of all the combined InventoryItem fields - + - Locate a Session context from its handle + Compares an object - Creates the session context if it does not exist. + The object to compare + true if comparison object matches - + - Handle completion of main voice cap request. + Determine whether the specified object is equal to the current object - - - + The object to compare against + true if objects are the same - + - Daemon has started so connect to it. + Determine whether the specified object is equal to the current object + The object to compare against + true if objects are the same - + - The daemon TCP connection is open. + Create InventoryItem from OSD + OSD Data that makes up InventoryItem + Inventory item created - + - Handle creation of the Connector. + Convert InventoryItem to OSD + OSD representation of InventoryItem - + - Handle response to audio output device query + InventoryTexture Class representing a graphical image + - + - Handle response to audio input device query + Construct an InventoryTexture object + A which becomes the + objects AssetUUID - - - Set voice channel for new parcel - - - - + - Request info from a parcel capability Uri. + Construct an InventoryTexture object from a serialization stream - - + - Receive parcel voice cap + InventorySound Class representing a playable sound - - - - + - Tell Vivox where we are standing + Construct an InventorySound object - This has to be called when we move or turn. + A which becomes the + objects AssetUUID - + - Start and stop updating out position. + Construct an InventorySound object from a serialization stream - - + - This is used to login a specific user account(s). It may only be called after - Connector initialization has completed successfully + InventoryCallingCard Class, contains information on another avatar - Handle returned from successful Connector ‘create’ request - User's account name - User's account password - Values may be “AutoAnswer” or “VerifyAnswer” - "" - This is an integer that specifies how often - the daemon will send participant property events while in a channel. If this is not set - the default will be “on state change”, which means that the events will be sent when - the participant starts talking, stops talking, is muted, is unmuted. - The valid values are: - 0 – Never - 5 – 10 times per second - 10 – 5 times per second - 50 – 1 time per second - 100 – on participant state change (this is the default) - false - - + - This is used to logout a user session. It should only be called with a valid AccountHandle. + Construct an InventoryCallingCard object - Handle returned from successful Connector ‘login’ request - + A which becomes the + objects AssetUUID - + - Event for most mundane request reposnses. + Construct an InventoryCallingCard object from a serialization stream - - Response to Connector.Create request - - - Response to Aux.GetCaptureDevices request - - - Response to Aux.GetRenderDevices request - - - Audio Properties Events are sent after audio capture is started. - These events are used to display a microphone VU meter - - - Response to Account.Login request - - - This event message is sent whenever the login state of the - particular Account has transitioned from one value to another - - + - List of audio input devices + InventoryLandmark Class, contains details on a specific location - + - List of audio output devices + Construct an InventoryLandmark object + A which becomes the + objects AssetUUID - + - Set audio test mode + Construct an InventoryLandmark object from a serialization stream - - Enable logging - - - The folder where any logs will be created - - - This will be prepended to beginning of each log file - - - The suffix or extension to be appended to each log file - - + - 0: NONE - No logging - 1: ERROR - Log errors only - 2: WARNING - Log errors and warnings - 3: INFO - Log errors, warnings and info - 4: DEBUG - Log errors, warnings, info and debug + Landmarks use the InventoryItemFlags struct and will have a flag of 1 set if they have been visited - + - Constructor for default logging settings + InventoryObject Class contains details on a primitive or coalesced set of primitives - - Audio Properties Events are sent after audio capture is started. These events are used to display a microphone VU meter - - + - Abstract base for rendering plugins + Construct an InventoryObject object + A which becomes the + objects AssetUUID - + - Generates a basic mesh structure from a primitive + Construct an InventoryObject object from a serialization stream - Primitive to generate the mesh from - Level of detail to generate the mesh at - The generated mesh - + - Generates a basic mesh structure from a sculpted primitive and - texture + Gets or sets the upper byte of the Flags value - Sculpted primitive to generate the mesh from - Sculpt texture - Level of detail to generate the mesh at - The generated mesh - + - Generates a series of faces, each face containing a mesh and - metadata + Gets or sets the object attachment point, the lower byte of the Flags value - Primitive to generate the mesh from - Level of detail to generate the mesh at - The generated mesh - + - Generates a series of faces for a sculpted prim, each face - containing a mesh and metadata + InventoryNotecard Class, contains details on an encoded text document - Sculpted primitive to generate the mesh from - Sculpt texture - Level of detail to generate the mesh at - The generated mesh - + - Apply texture coordinate modifications from a - to a list of vertices + Construct an InventoryNotecard object - Vertex list to modify texture coordinates for - Center-point of the face - Face texture parameters + A which becomes the + objects AssetUUID - + - pre-defined built in sounds + Construct an InventoryNotecard object from a serialization stream - - - - - - - - - - - - - - - - - - - - - - - - - - coins + + + InventoryCategory Class + + TODO: Is this even used for anything? - - cash register bell + + + Construct an InventoryCategory object + + A which becomes the + objects AssetUUID - - + + + Construct an InventoryCategory object from a serialization stream + - - + + + InventoryLSL Class, represents a Linden Scripting Language object + - - rubber + + + Construct an InventoryLSL object + + A which becomes the + objects AssetUUID - - plastic + + + Construct an InventoryLSL object from a serialization stream + - - flesh + + + InventorySnapshot Class, an image taken with the viewer + - - wood splintering? + + + Construct an InventorySnapshot object + + A which becomes the + objects AssetUUID - - glass break + + + Construct an InventorySnapshot object from a serialization stream + - - metal clunk + + + InventoryAttachment Class, contains details on an attachable object + - - whoosh + + + Construct an InventoryAttachment object + + A which becomes the + objects AssetUUID - - shake + + + Construct an InventoryAttachment object from a serialization stream + - - + + + Get the last AttachmentPoint this object was attached to + - - ding + + + InventoryWearable Class, details on a clothing item or body part + - - + + + Construct an InventoryWearable object + + A which becomes the + objects AssetUUID - - + + + Construct an InventoryWearable object from a serialization stream + - - + + + The , Skin, Shape, Skirt, Etc + - - + + + InventoryAnimation Class, A bvh encoded object which animates an avatar + - - + + + Construct an InventoryAnimation object + + A which becomes the + objects AssetUUID - - + + + Construct an InventoryAnimation object from a serialization stream + - - + + + InventoryGesture Class, details on a series of animations, sounds, and actions + - - + + + Construct an InventoryGesture object + + A which becomes the + objects AssetUUID - - + + + Construct an InventoryGesture object from a serialization stream + - - + + + A folder contains s and has certain attributes specific + to itself + - - + + The Preferred for a folder. - - + + The Version of this folder - - + + Number of child items this folder contains. - - + + + Constructor + + UUID of the folder - + - A dictionary containing all pre-defined sounds + - A dictionary containing the pre-defined sounds, - where the key is the sounds ID, and the value is a string - containing a name to identify the purpose of the sound + - + - Simulator (region) properties + Get Serilization data for this InventoryFolder object - - No flags set - - - Agents can take damage and be killed - - - Landmarks can be created here - - - Home position can be set in this sim - - - Home position is reset when an agent teleports away - - - Sun does not move + + + Construct an InventoryFolder object from a serialization stream + - - No object, land, etc. taxes + + + + + - - Disable heightmap alterations (agents can still plant - foliage) + + + + + + - - Land cannot be released, sold, or purchased + + + + + + - - All content is wiped nightly + + + + + + - - Unknown: Related to the availability of an overview world map tile.(Think mainland images when zoomed out.) + + + Create InventoryFolder from OSD + + OSD Data that makes up InventoryFolder + Inventory folder created - - Unknown: Related to region debug flags. Possibly to skip processing of agent interaction with world. + + + Convert InventoryItem to OSD + + OSD representation of InventoryItem - - Region does not update agent prim interest lists. Internal debugging option. + + + Tools for dealing with agents inventory + - - No collision detection for non-agent objects + + Used for converting shadow_id to asset_id - - No scripts are ran + + The event subscribers, null of no subscribers - - All physics processing is turned off + + Raises the ItemReceived Event + A ItemReceivedEventArgs object containing + the data sent from the simulator - - Region can be seen from other regions on world map. (Legacy world map option?) + + Thread sync lock object - - Region can be seen from mainland on world map. (Legacy world map option?) + + The event subscribers, null of no subscribers - - Agents not explicitly on the access list can visit the region. + + Raises the FolderUpdated Event + A FolderUpdatedEventArgs object containing + the data sent from the simulator - - Traffic calculations are not run across entire region, overrides parcel settings. + + Thread sync lock object - - Flight is disabled (not currently enforced by the sim) + + The event subscribers, null of no subscribers - - Allow direct (p2p) teleporting + + Raises the InventoryObjectOffered Event + A InventoryObjectOfferedEventArgs object containing + the data sent from the simulator - - Estate owner has temporarily disabled scripting + + Thread sync lock object - - Restricts the usage of the LSL llPushObject function, applies to whole region. + + The event subscribers, null of no subscribers - - Deny agents with no payment info on file + + Raises the TaskItemReceived Event + A TaskItemReceivedEventArgs object containing + the data sent from the simulator - - Deny agents with payment info on file + + Thread sync lock object - - Deny agents who have made a monetary transaction + + The event subscribers, null of no subscribers - - Parcels within the region may be joined or divided by anyone, not just estate owners/managers. + + Raises the FindObjectByPath Event + A FindObjectByPathEventArgs object containing + the data sent from the simulator - - Abuse reports sent from within this region are sent to the estate owner defined email. + + Thread sync lock object - - Region is Voice Enabled + + The event subscribers, null of no subscribers - - Removes the ability from parcel owners to set their parcels to show in search. + + Raises the TaskInventoryReply Event + A TaskInventoryReplyEventArgs object containing + the data sent from the simulator - - Deny agents who have not been age verified from entering the region. + + Thread sync lock object - - - Access level for a simulator - + + The event subscribers, null of no subscribers - - Unknown or invalid access level + + Raises the SaveAssetToInventory Event + A SaveAssetToInventoryEventArgs object containing + the data sent from the simulator - - Trial accounts allowed + + Thread sync lock object - - PG rating + + The event subscribers, null of no subscribers - - Mature rating + + Raises the ScriptRunningReply Event + A ScriptRunningReplyEventArgs object containing + the data sent from the simulator - - Adult rating + + Thread sync lock object - - Simulator is offline + + Partial mapping of AssetTypes to folder names - - Simulator does not exist + + + Default constructor + + Reference to the GridClient object - + - + Fetch an inventory item from the dataserver + The items + The item Owners + a integer representing the number of milliseconds to wait for results + An object on success, or null if no item was found + Items will also be sent to the event - + - + Request A single inventory item + The items + The item Owners + - + - Initialize the UDP packet handler in server mode + Request inventory items - Port to listening for incoming UDP packets on + Inventory items to request + Owners of the inventory items + - + - Initialize the UDP packet handler in client mode + Request inventory items via Capabilities - Remote UDP server to connect to + Inventory items to request + Owners of the inventory items + - + - + Get contents of a folder + The of the folder to search + The of the folders owner + true to retrieve folders + true to retrieve items + sort order to return results in + a integer representing the number of milliseconds to wait for results + A list of inventory items matching search criteria within folder + + InventoryFolder.DescendentCount will only be accurate if both folders and items are + requested - + - + Request the contents of an inventory folder + The folder to search + The folder owners + true to return s contained in folder + true to return s containd in folder + the sort order to return items in + - + - + Request the contents of an inventory folder using HTTP capabilities + The folder to search + The folder owners + true to return s contained in folder + true to return s containd in folder + the sort order to return items in + - - A public reference to the client that this Simulator object - is attached to - - - A Unique Cache identifier for this simulator - - - The capabilities for this simulator - - - - - - The current version of software this simulator is running - - - - - - A 64x64 grid of parcel coloring values. The values stored - in this array are of the type - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true if your agent has Estate Manager rights on this region - - - - - - - - - - - - Statistics information for this simulator and the - connection to the simulator, calculated by the simulator itself - and the library - - - The regions Unique ID - - - The physical data center the simulator is located - Known values are: - - Dallas - Chandler - SF - - - - - The CPU Class of the simulator - Most full mainland/estate sims appear to be 5, - Homesteads and Openspace appear to be 501 - - - The number of regions sharing the same CPU as this one - "Full Sims" appear to be 1, Homesteads appear to be 4 - - - The billing product name - Known values are: - - Mainland / Full Region (Sku: 023) - Estate / Full Region (Sku: 024) - Estate / Openspace (Sku: 027) - Estate / Homestead (Sku: 029) - Mainland / Homestead (Sku: 129) (Linden Owned) - Mainland / Linden Homes (Sku: 131) - - - - - The billing product SKU - Known values are: - - 023 Mainland / Full Region - 024 Estate / Full Region - 027 Estate / Openspace - 029 Estate / Homestead - 129 Mainland / Homestead (Linden Owned) - 131 Linden Homes / Full Region - - - - - The current sequence number for packets sent to this - simulator. Must be Interlocked before modifying. Only - useful for applications manipulating sequence numbers - - + - A thread-safe dictionary containing avatars in a simulator + Returns the UUID of the folder (category) that defaults to + containing 'type'. The folder is not necessarily only for that + type + This will return the root folder if one does not exist + + The UUID of the desired folder if found, the UUID of the RootFolder + if not found, or UUID.Zero on failure - + - A thread-safe dictionary containing primitives in a simulator + Find an object in inventory using a specific path to search + The folder to begin the search in + The object owners + A string path to search + milliseconds to wait for a reply + Found items or if + timeout occurs or item is not found - + - Provides access to an internal thread-safe dictionary containing parcel - information found in this simulator + Find inventory items by path + The folder to begin the search in + The object owners + A string path to search, folders/objects separated by a '/' + Results are sent to the event - + - Checks simulator parcel map to make sure it has downloaded all data successfully + Search inventory Store object for an item or folder - true if map is full (contains no 0's) - - - Used internally to track sim disconnections - - - Event that is triggered when the simulator successfully - establishes a connection - - - Whether this sim is currently connected or not. Hooked up - to the property Connected - - - Coarse locations of avatars in this simulator - - - AvatarPositions key representing TrackAgent target - - - Sequence numbers of packets we've received - (for duplicate checking) - - - Packets we sent out that need ACKs from the simulator - - - Sequence number for pause/resume - - - Indicates if UDP connection to the sim is fully established + The folder to begin the search in + An array which creates a path to search + Number of levels below baseFolder to conduct searches + if True, will stop searching after first match is found + A list of inventory items found - + - + Move an inventory item or folder to a new location - Reference to the GridClient object - IPEndPoint of the simulator - handle of the simulator + The item or folder to move + The to move item or folder to - + - Called when this Simulator object is being destroyed + Move an inventory item or folder to a new location and change its name + The item or folder to move + The to move item or folder to + The name to change the item or folder to - + - Attempt to connect to this simulator + Move and rename a folder - Whether to move our agent in to this sim or not - True if the connection succeeded or connection status is - unknown, false if there was a failure + The source folders + The destination folders + The name to change the folder to - + - Initiates connection to the simulator + Update folder properties + of the folder to update + Sets folder's parent to + Folder name + Folder type - + - Disconnect from this simulator + Move a folder + The source folders + The destination folders - + - Instructs the simulator to stop sending update (and possibly other) packets + Move multiple folders, the keys in the Dictionary parameter, + to a new parents, the value of that folder's key. + A Dictionary containing the + of the source as the key, and the + of the destination as the value - + - Instructs the simulator to resume sending update packets (unpause) + Move an inventory item to a new folder + The of the source item to move + The of the destination folder - + - Retrieve the terrain height at a given coordinate + Move and rename an inventory item - Sim X coordinate, valid range is from 0 to 255 - Sim Y coordinate, valid range is from 0 to 255 - The terrain height at the given point if the - lookup was successful, otherwise 0.0f - True if the lookup was successful, otherwise false + The of the source item to move + The of the destination folder + The name to change the folder to - + - Sends a packet + Move multiple inventory items to new locations - Packet to be sent + A Dictionary containing the + of the source item as the key, and the + of the destination folder as the value - + - + Remove descendants of a folder + The of the folder - + - Returns Simulator Name as a String + Remove a single item from inventory - + The of the inventory item to remove - + - + Remove a folder from inventory - + The of the folder to remove - + - + Remove multiple items or folders from inventory - - + A List containing the s of items to remove + A List containing the s of the folders to remove - + - Sends out pending acknowledgements + Empty the Lost and Found folder - Number of ACKs sent - + - Resend unacknowledged packets + Empty the Trash folder - + - Provides access to an internal thread-safe multidimensional array containing a x,y grid mapped - to each 64x64 parcel's LocalID. + + + + + + Proper use is to upload the inventory's asset first, then provide the Asset's TransactionID here. + + + - - The IP address and port of the server - - - Whether there is a working connection to the simulator or - not + + + + + + + + + Proper use is to upload the inventory's asset first, then provide the Asset's TransactionID here. + + + + - - Coarse locations of avatars in this simulator + + + Creates a new inventory folder + + ID of the folder to put this folder in + Name of the folder to create + The UUID of the newly created folder - - AvatarPositions key representing TrackAgent target + + + Creates a new inventory folder + + ID of the folder to put this folder in + Name of the folder to create + Sets this folder as the default folder + for new assets of the specified type. Use AssetType.Unknown + to create a normal folder, otherwise it will likely create a + duplicate of an existing folder type + The UUID of the newly created folder + If you specify a preferred type of AsseType.Folder + it will create a new root folder which may likely cause all sorts + of strange problems - - Indicates if UDP connection to the sim is fully established + + + Create an inventory item and upload asset data + + Asset data + Inventory item name + Inventory item description + Asset type + Inventory type + Put newly created inventory in this folder + Delegate that will receive feedback on success or failure - + - Simulator Statistics + Create an inventory item and upload asset data + Asset data + Inventory item name + Inventory item description + Asset type + Inventory type + Put newly created inventory in this folder + Permission of the newly created item + (EveryoneMask, GroupMask, and NextOwnerMask of Permissions struct are supported) + Delegate that will receive feedback on success or failure - - Total number of packets sent by this simulator to this agent + + + Creates inventory link to another inventory item or folder + + Put newly created link in folder with this UUID + Inventory item or folder + Method to call upon creation of the link - - Total number of packets received by this simulator to this agent + + + Creates inventory link to another inventory item + + Put newly created link in folder with this UUID + Original inventory item + Method to call upon creation of the link - - Total number of bytes sent by this simulator to this agent + + + Creates inventory link to another inventory folder + + Put newly created link in folder with this UUID + Original inventory folder + Method to call upon creation of the link - - Total number of bytes received by this simulator to this agent + + + Creates inventory link to another inventory item or folder + + Put newly created link in folder with this UUID + Original item's UUID + Name + Description + Asset Type + Inventory Type + Transaction UUID + Method to call upon creation of the link - - Time in seconds agent has been connected to simulator + + + + + + + + - - Total number of packets that have been resent + + + + + + + + + - - Total number of resent packets recieved + + + + + + + + + - - Total number of pings sent to this simulator by this agent + + + Request a copy of an asset embedded within a notecard + + Usually UUID.Zero for copying an asset from a notecard + UUID of the notecard to request an asset from + Target folder for asset to go to in your inventory + UUID of the embedded asset + callback to run when item is copied to inventory - - Total number of ping replies sent to this agent by this simulator + + + + + - + - Incoming bytes per second + - It would be nice to have this claculated on the fly, but - this is far, far easier + - + - Outgoing bytes per second + - It would be nice to have this claculated on the fly, but - this is far, far easier + + - - Time last ping was sent - - - ID of last Ping sent - - - - - - - - - Current time dilation of this simulator - - - Current Frames per second of simulator - - - Current Physics frames per second of simulator - - - - - - - - - - - - - - - - - - - - - - - - - - - Total number of objects Simulator is simulating - - - Total number of Active (Scripted) objects running - - - Number of agents currently in this simulator - - - Number of agents in neighbor simulators - - - Number of Active scripts running in this simulator - - - - - - - - - - - - Number of downloads pending - - - Number of uploads pending - - - - - - - - - Number of local uploads pending - - - Unacknowledged bytes in queue - - + - Checks the instance back into the object pool + + + + - + - Returns an instance of the class that has been checked out of the Object Pool. + Save changes to notecard embedded in object contents + Encoded notecard asset data + Notecard UUID + Object's UUID + Called upon finish of the upload with status information - + - Creates a new instance of the ObjectPoolBase class. Initialize MUST be called - after using this constructor. + Upload new gesture asset for an inventory gesture item + Encoded gesture asset + Gesture inventory UUID + Callback whick will be called when upload is complete - + - Creates a new instance of the ObjectPool Base class. + Update an existing script in an agents Inventory - The object pool is composed of segments, which - are allocated whenever the size of the pool is exceeded. The number of items - in a segment should be large enough that allocating a new segmeng is a rare - thing. For example, on a server that will have 10k people logged in at once, - the receive buffer object pool should have segment sizes of at least 1000 - byte arrays per segment. - - The minimun number of segments that may exist. - Perform a full GC.Collect whenever a segment is allocated, and then again after allocation to compact the heap. - The frequency which segments are checked to see if they're eligible for cleanup. + A byte[] array containing the encoded scripts contents + the itemID of the script + if true, sets the script content to run on the mono interpreter + - + - Forces the segment cleanup algorithm to be run. This method is intended - primarly for use from the Unit Test libraries. + Update an existing script in an task Inventory + A byte[] array containing the encoded scripts contents + the itemID of the script + UUID of the prim containting the script + if true, sets the script content to run on the mono interpreter + if true, sets the script to running + - + - Responsible for allocate 1 instance of an object that will be stored in a segment. + Rez an object from inventory - An instance of whatever objec the pool is pooling. + Simulator to place object in + Rotation of the object when rezzed + Vector of where to place object + InventoryItem object containing item details - + - Checks in an instance of T owned by the object pool. This method is only intended to be called - by the WrappedObject class. + Rez an object from inventory - The segment from which the instance is checked out. - The instance of T to check back into the segment. + Simulator to place object in + Rotation of the object when rezzed + Vector of where to place object + InventoryItem object containing item details + UUID of group to own the object - + - Checks an instance of T from the pool. If the pool is not sufficient to - allow the checkout, a new segment is created. + Rez an object from inventory - A WrappedObject around the instance of T. To check - the instance back into the segment, be sureto dispose the WrappedObject - when finished. + Simulator to place object in + Rotation of the object when rezzed + Vector of where to place object + InventoryItem object containing item details + UUID of group to own the object + User defined queryID to correlate replies + If set to true, the CreateSelected flag + will be set on the rezzed object - + - The total number of segments created. Intended to be used by the Unit Tests. + Rez an object from inventory + Simulator to place object in + TaskID object when rezzed + Rotation of the object when rezzed + Vector of where to place object + InventoryItem object containing item details + UUID of group to own the object + User defined queryID to correlate replies + If set to true, the CreateSelected flag + will be set on the rezzed object - + - The number of items that are in a segment. Items in a segment - are all allocated at the same time, and are hopefully close to - each other in the managed heap. + DeRez an object from the simulator to the agents Objects folder in the agents Inventory + The simulator Local ID of the object + If objectLocalID is a child primitive in a linkset, the entire linkset will be derezzed - + - The minimum number of segments. When segments are reclaimed, - this number of segments will always be left alone. These - segments are allocated at startup. + DeRez an object from the simulator and return to inventory + The simulator Local ID of the object + The type of destination from the enum + The destination inventory folders -or- + if DeRezzing object to a tasks Inventory, the Tasks + The transaction ID for this request which + can be used to correlate this request with other packets + If objectLocalID is a child primitive in a linkset, the entire linkset will be derezzed - + - The age a segment must be before it's eligible for cleanup. - This is used to prevent thrash, and typical values are in - the 5 minute range. + Rez an item from inventory to its previous simulator location + + + + - + - The frequence which the cleanup thread runs. This is typically - expected to be in the 5 minute range. + Give an inventory item to another avatar + The of the item to give + The name of the item + The type of the item from the enum + The of the recipient + true to generate a beameffect during transfer - + - Exception class to identify inventory exceptions + Give an inventory Folder with contents to another avatar + The of the Folder to give + The name of the folder + The type of the item from the enum + The of the recipient + true to generate a beameffect during transfer - + - Responsible for maintaining inventory structure. Inventory constructs nodes - and manages node children as is necessary to maintain a coherant hirarchy. - Other classes should not manipulate or create InventoryNodes explicitly. When - A node's parent changes (when a folder is moved, for example) simply pass - Inventory the updated InventoryFolder and it will make the appropriate changes - to its internal representation. + Copy or move an from agent inventory to a task (primitive) inventory + The target object + The item to copy or move from inventory + + For items with copy permissions a copy of the item is placed in the tasks inventory, + for no-copy items the object is moved to the tasks inventory - - The event subscribers, null of no subscribers - - - Raises the InventoryObjectUpdated Event - A InventoryObjectUpdatedEventArgs object containing - the data sent from the simulator + + + Retrieve a listing of the items contained in a task (Primitive) + + The tasks + The tasks simulator local ID + milliseconds to wait for reply from simulator + A list containing the inventory items inside the task or null + if a timeout occurs + This request blocks until the response from the simulator arrives + or timeoutMS is exceeded - - Thread sync lock object + + + Request the contents of a tasks (primitives) inventory from the + current simulator + + The LocalID of the object + - - The event subscribers, null of no subscribers + + + Request the contents of a tasks (primitives) inventory + + The simulator Local ID of the object + A reference to the simulator object that contains the object + - - Raises the InventoryObjectRemoved Event - A InventoryObjectRemovedEventArgs object containing - the data sent from the simulator + + + Move an item from a tasks (Primitive) inventory to the specified folder in the avatars inventory + + LocalID of the object in the simulator + UUID of the task item to move + The ID of the destination folder in this agents inventory + Simulator Object + Raises the event - - Thread sync lock object + + + Remove an item from an objects (Prim) Inventory + + LocalID of the object in the simulator + UUID of the task item to remove + Simulator Object + You can confirm the removal by comparing the tasks inventory serial before and after the + request with the request combined with + the event - - The event subscribers, null of no subscribers + + + Copy an InventoryScript item from the Agents Inventory into a primitives task inventory + + An unsigned integer representing a primitive being simulated + An which represents a script object from the agents inventory + true to set the scripts running state to enabled + A Unique Transaction ID + + The following example shows the basic steps necessary to copy a script from the agents inventory into a tasks inventory + and assumes the script exists in the agents inventory. + + uint primID = 95899503; // Fake prim ID + UUID scriptID = UUID.Parse("92a7fe8a-e949-dd39-a8d8-1681d8673232"); // Fake Script UUID in Inventory + + Client.Inventory.FolderContents(Client.Inventory.FindFolderForType(AssetType.LSLText), Client.Self.AgentID, + false, true, InventorySortOrder.ByName, 10000); + + Client.Inventory.RezScript(primID, (InventoryItem)Client.Inventory.Store[scriptID]); + + - - Raises the InventoryObjectAdded Event - A InventoryObjectAddedEventArgs object containing - the data sent from the simulator + + + Request the running status of a script contained in a task (primitive) inventory + + The ID of the primitive containing the script + The ID of the script + The event can be used to obtain the results of the + request + - - Thread sync lock object + + + Send a request to set the running state of a script contained in a task (primitive) inventory + + The ID of the primitive containing the script + The ID of the script + true to set the script running, false to stop a running script + To verify the change you can use the method combined + with the event - + - Returns the contents of the specified folder + Create a CRC from an InventoryItem - A folder's UUID - The contents of the folder corresponding to folder - When folder does not exist in the inventory + The source InventoryItem + A uint representing the source InventoryItem as a CRC - + - Updates the state of the InventoryNode and inventory data structure that - is responsible for the InventoryObject. If the item was previously not added to inventory, - it adds the item, and updates structure accordingly. If it was, it updates the - InventoryNode, changing the parent node if item.parentUUID does - not match node.Parent.Data.UUID. - - You can not set the inventory root folder using this method + Reverses a cheesy XORing with a fixed UUID to convert a shadow_id to an asset_id - The InventoryObject to store + Obfuscated shadow_id value + Deobfuscated asset_id value - + - Removes the InventoryObject and all related node data from Inventory. + Does a cheesy XORing with a fixed UUID to convert an asset_id to a shadow_id - The InventoryObject to remove. + asset_id value to obfuscate + Obfuscated shadow_id value - + - Used to find out if Inventory contains the InventoryObject - specified by uuid. + Wrapper for creating a new object - The UUID to check. - true if inventory contains uuid, false otherwise + The type of item from the enum + The of the newly created object + An object with the type and id passed - + - Saves the current inventory structure to a cache file + Parse the results of a RequestTaskInventory() response - Name of the cache file to save to + A string which contains the data from the task reply + A List containing the items contained within the tasks inventory - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + - Loads in inventory cache file into the inventory structure. Note only valid to call after login has been successful. + UpdateCreateInventoryItem packets are received when a new inventory item + is created. This may occur when an object that's rezzed in world is + taken into inventory, when an item is created using the CreateInventoryItem + packet, or when an object is purchased - Name of the cache file to load - The number of inventory items sucessfully reconstructed into the inventory node tree + The sender + The EventArgs object containing the packet data - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + Raised when the simulator sends us data containing ... - + Raised when the simulator sends us data containing ... - + + Raised when the simulator sends us data containing + an inventory object sent by another avatar or primitive + + Raised when the simulator sends us data containing ... - + + Raised when the simulator sends us data containing + ... + + + Raised when the simulator sends us data containing + ... + + + Raised when the simulator sends us data containing + ... + + + Raised when the simulator sends us data containing + ... + + - The root folder of this avatars inventory + Get this agents Inventory data - + - The default shared library folder + Callback for inventory item creation finishing + Whether the request to create an inventory + item succeeded or not + Inventory item being created. If success is + false this will be null - + - The root node of the avatars inventory + Callback for an inventory item being create from an uploaded asset + true if inventory item creation was successful + + + - + - The root node of the default shared library + + - + - By using the bracket operator on this class, the program can get the - InventoryObject designated by the specified uuid. If the value for the corresponding - UUID is null, the call is equivelant to a call to RemoveNodeFor(this[uuid]). - If the value is non-null, it is equivelant to a call to UpdateNodeFor(value), - the uuid parameter is ignored. + Reply received when uploading an inventory asset - The UUID of the InventoryObject to get or set, ignored if set to non-null value. - The InventoryObject corresponding to uuid. + Has upload been successful + Error message if upload failed + Inventory asset UUID + New asset UUID - + - Registers, unregisters, and fires events generated by incoming packets + Delegate that is invoked when script upload is completed + Has upload succeded (note, there still might be compile errors) + Upload status message + Is compilation successful + If compilation failed, list of error messages, null on compilation success + Script inventory UUID + Script's new asset UUID - - Reference to the GridClient object + + Set to true to accept offer, false to decline it - + + The folder to accept the inventory into, if null default folder for will be used + + - Default constructor + Callback when an inventory object is accepted and received from a + task inventory. This is the callback in which you actually get + the ItemID, as in ObjectOfferedCallback it is null when received + from a task. - - + - Register an event handler + - Use PacketType.Default to fire this event on every - incoming packet - Packet type to register the handler for - Callback to be fired - True if this callback should be ran - asynchronously, false to run it synchronous - + - Unregister an event handler + - Packet type to unregister the handler for - Callback to be unregistered + - + - Fire the events registered for this packet type + De-serialization constructor for the InventoryNode Class - Incoming packet type - Incoming packet - Simulator this packet was received from - + - Object that is passed to worker threads in the ThreadPool for - firing packet callbacks + Serialization handler for the InventoryNode Class - - Callback to fire for this packet + + + De-serialization handler for the InventoryNode Class + - - Reference to the simulator that this packet came from + + + + + - - The packet that needs to be processed + + - + + User data + + + + + + + + + + + - Registers, unregisters, and fires events generated by the Capabilities - event queue + For inventory folder nodes specifies weather the folder needs to be + refreshed from the server - - Reference to the GridClient object + + + Singleton logging class for the entire library + - + + log4net logging engine + + Default constructor - Reference to the GridClient object - + - Register an new event handler for a capabilities event sent via the EventQueue + Send a log message to the logging engine - Use String.Empty to fire this event on every CAPS event - Capability event name to register the - handler for - Callback to fire + The log message + The severity of the log entry - + - Unregister a previously registered capabilities handler + Send a log message to the logging engine - Capability event name unregister the - handler for - Callback to unregister + The log message + The severity of the log entry + Instance of the client - + - Fire the events registered for this event type synchronously + Send a log message to the logging engine - Capability name - Decoded event body - Reference to the simulator that - generated this event + The log message + The severity of the log entry + Exception that was raised - + - Fire the events registered for this event type asynchronously + Send a log message to the logging engine - Capability name - Decoded event body - Reference to the simulator that - generated this event + The log message + The severity of the log entry + Instance of the client + Exception that was raised - + - Object that is passed to worker threads in the ThreadPool for - firing CAPS callbacks + If the library is compiled with DEBUG defined, an event will be + fired if an OnLogMessage handler is registered and the + message will be sent to the logging engine + The message to log at the DEBUG level to the + current logging engine - - Callback to fire for this packet - - - Name of the CAPS event + + + If the library is compiled with DEBUG defined and + GridClient.Settings.DEBUG is true, an event will be + fired if an OnLogMessage handler is registered and the + message will be sent to the logging engine + + The message to log at the DEBUG level to the + current logging engine + Instance of the client - - Strongly typed decoded data + + Triggered whenever a message is logged. If this is left + null, log messages will go to the console - - Reference to the simulator that generated this event + + + Callback used for client apps to receive log messages from + the library + + Data being logged + The severity of the log entry from - + - Represends individual HTTP Download request + - - URI of the item to fetch + + - - Timout specified in milliseconds + + - - Download progress callback + + - - Download completed callback + + - - Accept the following content type + + - - Default constructor + + - - Constructor + + - + - Manages async HTTP downloads with a limit on maximum - concurrent downloads + Status of the last application run. + Used for error reporting to the grid login service for statistical purposes. - - Default constructor - - - Cleanup method + + Application exited normally - - Setup http download request + + Application froze - - Check the queue for pending work + + Application detected error and exited abnormally - - Enqueue a new HTPP download + + Other crash - - Maximum number of parallel downloads from a single endpoint + + Application froze during logout - - Client certificate + + Application crashed during logout - - Positional vector of the users position + + + Login Request Parameters + - - Velocity vector of the position + + The URL of the Login Server - - At Orientation (X axis) of the position + + The number of milliseconds to wait before a login is considered + failed due to timeout - - Up Orientation (Y axis) of the position + + The request method + login_to_simulator is currently the only supported method - - Left Orientation (Z axis) of the position + + The Agents First name - - - Represents Mesh asset - + + The Agents Last name - - Initializes a new instance of an AssetMesh object + + A md5 hashed password + plaintext password will be automatically hashed - - Initializes a new instance of an AssetMesh object with parameters - A unique specific to this asset - A byte array containing the raw asset data + + The agents starting location once logged in + Either "last", "home", or a string encoded URI + containing the simulator name and x/y/z coordinates e.g: uri:hooper&128&152&17 - + + A string containing the client software channel information + Second Life Release + + + The client software version information + The official viewer uses: Second Life Release n.n.n.n + where n is replaced with the current version of the viewer + + + A string containing the platform information the agent is running on + + + A string hash of the network cards Mac Address + + + Unknown or deprecated + + + A string hash of the first disk drives ID used to identify this clients uniqueness + + + A string containing the viewers Software, this is not directly sent to the login server but + instead is used to generate the Version string + + + A string representing the software creator. This is not directly sent to the login server but + is used by the library to generate the Version information + + + If true, this agent agrees to the Terms of Service of the grid its connecting to + + + Unknown + + + Status of the last application run sent to the grid login server for statistical purposes + + + An array of string sent to the login server to enable various options + + + A randomly generated ID to distinguish between login attempts. This value is only used + internally in the library and is never sent over the wire + + - TODO: Encodes a scripts contents into a LSO Bytecode file + Default constuctor, initializes sane default values - + - TODO: Decode LSO Bytecode into a string + Instantiates new LoginParams object and fills in the values - true - - - Override the base classes AssetType + Instance of GridClient to read settings from + Login first name + Login last name + Password + Login channnel (application name) + Client version, should be application name + version number - + - Static helper functions and global variables + Instantiates new LoginParams object and fills in the values + Instance of GridClient to read settings from + Login first name + Login last name + Password + Login channnel (application name) + Client version, should be application name + version number + URI of the login server - - This header flag signals that ACKs are appended to the packet + + + The decoded data returned from the login server after a successful login + - - This header flag signals that this packet has been sent before + + true, false, indeterminate - - This header flags signals that an ACK is expected for this packet + + Login message of the day - - This header flag signals that the message is compressed using zerocoding + + M or PG, also agent_region_access and agent_access_max - + - + Parse LLSD Login Reply Data - - + An + contaning the login response data + XML-RPC logins do not require this as XML-RPC.NET + automatically populates the struct properly using attributes - + - + Login Routines + + + NetworkManager is responsible for managing the network layer of + OpenMetaverse. It tracks all the server connections, serializes + outgoing traffic and deserializes incoming traffic, and provides + instances of delegates for network-related events. - - - - + + The event subscribers, null of no subscribers + + + Raises the LoginProgress Event + A LoginProgressEventArgs object containing + the data sent from the simulator + + + Thread sync lock object + + + Seed CAPS URL returned from the login server + + + Maximum number of groups an agent can belong to, -1 for unlimited + + + Server side baking service URL + + + Parsed login response data + + + A list of packets obtained during the login process which + networkmanager will log but not process + + - + Generate sane default values for a login request - - + Account first name + Account last name + Account password + Client application name (channel) + Client application name + version + A populated struct containing + sane defaults - + - + Simplified login that takes the most common and required fields - - - + Account first name + Account last name + Account password + Client application name (channel) + Client application name + version + Whether the login was successful or not. On failure the + LoginErrorKey string will contain the error code and LoginMessage + will contain a description of the error - + - Given an X/Y location in absolute (grid-relative) terms, a region - handle is returned along with the local X/Y location in that region + Simplified login that takes the most common fields along with a + starting location URI, and can accept an MD5 string instead of a + plaintext password - The absolute X location, a number such as - 255360.35 - The absolute Y location, a number such as - 255360.35 - The sim-local X position of the global X - position, a value from 0.0 to 256.0 - The sim-local Y position of the global Y - position, a value from 0.0 to 256.0 - A 64-bit region handle that can be used to teleport to + Account first name + Account last name + Account password or MD5 hash of the password + such as $1$1682a1e45e9f957dcdf0bb56eb43319c + Client application name (channel) + Starting location URI that can be built with + StartLocation() + Client application name + version + Whether the login was successful or not. On failure the + LoginErrorKey string will contain the error code and LoginMessage + will contain a description of the error - + - Converts a floating point number to a terse string format used for - transmitting numbers in wearable asset files + Login that takes a struct of all the values that will be passed to + the login server - Floating point number to convert to a string - A terse string representation of the input number + The values that will be passed to the login + server, all fields must be set even if they are String.Empty + Whether the login was successful or not. On failure the + LoginErrorKey string will contain the error code and LoginMessage + will contain a description of the error - + - Convert a variable length field (byte array) to a string, with a - field name prepended to each line of the output + Build a start location URI for passing to the Login function - If the byte array has unprintable characters in it, a - hex dump will be written instead - The StringBuilder object to write to - The byte array to convert to a string - A field name to prepend to each line of output + Name of the simulator to start in + X coordinate to start at + Y coordinate to start at + Z coordinate to start at + String with a URI that can be used to login to a specified + location - + - Decode a zerocoded byte array, used to decompress packets marked - with the zerocoded flag + LoginParams and the initial login XmlRpcRequest were made on a remote machine. + This method now initializes libomv with the results. - Any time a zero is encountered, the next byte is a count - of how many zeroes to expand. One zero is encoded with 0x00 0x01, - two zeroes is 0x00 0x02, three zeroes is 0x00 0x03, etc. The - first four bytes are copied directly to the output buffer. - - The byte array to decode - The length of the byte array to decode. This - would be the length of the packet up to (but not including) any - appended ACKs - The output byte array to decode to - The length of the output buffer - + - Encode a byte array with zerocoding. Used to compress packets marked - with the zerocoded flag. Any zeroes in the array are compressed down - to a single zero byte followed by a count of how many zeroes to expand - out. A single zero becomes 0x00 0x01, two zeroes becomes 0x00 0x02, - three zeroes becomes 0x00 0x03, etc. The first four bytes are copied - directly to the output buffer. + Handles response from XML-RPC login replies - The byte array to encode - The length of the byte array to encode - The output byte array to encode to - The length of the output buffer - + - Calculates the CRC (cyclic redundancy check) needed to upload inventory. + Handles response from XML-RPC login replies with already parsed LoginResponseData - Creation date - Sale type - Inventory type - Type - Asset ID - Group ID - Sale price - Owner ID - Creator ID - Item ID - Folder ID - Everyone mask (permissions) - Flags - Next owner mask (permissions) - Group mask (permissions) - Owner mask (permissions) - The calculated CRC - - - - Attempts to load a file embedded in the assembly - - The filename of the resource to load - A Stream for the requested file, or null if the resource - was not successfully loaded - + - Attempts to load a file either embedded in the assembly or found in - a given search path + Handle response from LLSD login replies - The filename of the resource to load - An optional path that will be searched if - the asset is not found embedded in the assembly - A Stream for the requested file, or null if the resource - was not successfully loaded + + + - + - Converts a list of primitives to an object that can be serialized - with the LLSD system + Get current OS - Primitives to convert to a serializable object - An object that can be serialized with LLSD + Either "Win" or "Linux" - + - Deserializes OSD in to a list of primitives + Get clients default Mac Address - Structure holding the serialized primitive list, - must be of the SDMap type - A list of deserialized primitives + A string containing the first found Mac Address - - - Converts a struct or class object containing fields only into a key value separated string - - The struct object - A string containing the struct fields as the keys, and the field value as the value separated - - - // Add the following code to any struct or class containing only fields to override the ToString() - // method to display the values of the passed object - - /// Print the struct data as a string - ///A string containing the field name, and field value - public override string ToString() - { - return Helpers.StructToString(this); - } - - + + The event subscribers, null of no subscribers - - - Passed to Logger.Log() to identify the severity of a log entry - + + Raises the PacketSent Event + A PacketSentEventArgs object containing + the data sent from the simulator - - No logging information will be output + + Thread sync lock object - - Non-noisy useful information, may be helpful in - debugging a problem + + The event subscribers, null of no subscribers - - A non-critical error occurred. A warning will not - prevent the rest of the library from operating as usual, - although it may be indicative of an underlying issue + + Raises the LoggedOut Event + A LoggedOutEventArgs object containing + the data sent from the simulator - - A critical error has occurred. Generally this will - be followed by the network layer shutting down, although the - stability of the library after an error is uncertain + + Thread sync lock object - - Used for internal testing, this logging level can - generate very noisy (long and/or repetitive) messages. Don't - pass this to the Log() function, use DebugLog() instead. - + + The event subscribers, null of no subscribers - - - A set of textures that are layered on texture of each other and "baked" - in to a single texture, for avatar appearances - + + Raises the SimConnecting Event + A SimConnectingEventArgs object containing + the data sent from the simulator - - Final baked texture + + Thread sync lock object - - Component layers + + The event subscribers, null of no subscribers - - Width of the final baked image and scratchpad + + Raises the SimConnected Event + A SimConnectedEventArgs object containing + the data sent from the simulator - - Height of the final baked image and scratchpad + + Thread sync lock object - - Bake type + + The event subscribers, null of no subscribers - - - Default constructor - - Bake type + + Raises the SimDisconnected Event + A SimDisconnectedEventArgs object containing + the data sent from the simulator - - - Adds layer for baking - - TexturaData struct that contains texture and its params + + Thread sync lock object - - - Converts avatar texture index (face) to Bake type - - Face number (AvatarTextureIndex) - BakeType, layer to which this texture belongs to + + The event subscribers, null of no subscribers - - - Make sure images exist, resize source if needed to match the destination - - Destination image - Source image - Sanitization was succefull + + Raises the Disconnected Event + A DisconnectedEventArgs object containing + the data sent from the simulator - - - Fills a baked layer as a solid *appearing* color. The colors are - subtly dithered on a 16x16 grid to prevent the JPEG2000 stage from - compressing it too far since it seems to cause upload failures if - the image is a pure solid color - - Color of the base of this layer + + Thread sync lock object - - - Fills a baked layer as a solid *appearing* color. The colors are - subtly dithered on a 16x16 grid to prevent the JPEG2000 stage from - compressing it too far since it seems to cause upload failures if - the image is a pure solid color - - Red value - Green value - Blue value + + The event subscribers, null of no subscribers - - Final baked texture + + Raises the SimChanged Event + A SimChangedEventArgs object containing + the data sent from the simulator - - Component layers + + Thread sync lock object - - Width of the final baked image and scratchpad + + The event subscribers, null of no subscribers - - Height of the final baked image and scratchpad + + Raises the EventQueueRunning Event + A EventQueueRunningEventArgs object containing + the data sent from the simulator - - Bake type + + Thread sync lock object - - Is this one of the 3 skin bakes + + All of the simulators we are currently connected to - - - Represents an Animation - + + Handlers for incoming capability events - - Default Constructor + + Handlers for incoming packets - - - Construct an Asset object of type Animation - - A unique specific to this asset - A byte array containing the raw asset data + + Incoming packets that are awaiting handling - - Override the base classes AssetType + + Outgoing packets that are awaiting handling - + - Index of TextureEntry slots for avatar appearances + Default constructor + Reference to the GridClient object - + - Bake layers for avatar appearance + Register an event handler for a packet. This is a low level event + interface and should only be used if you are doing something not + supported in the library + Packet type to trigger events for + Callback to fire when a packet of this type + is received - - Maximum number of concurrent downloads for wearable assets and textures - - - Maximum number of concurrent uploads for baked textures - - - Timeout for fetching inventory listings - - - Timeout for fetching a single wearable, or receiving a single packet response - - - Timeout for fetching a single texture - - - Timeout for uploading a single baked texture - - - Number of times to retry bake upload - - - When changing outfit, kick off rebake after - 20 seconds has passed since the last change - - - Total number of wearables for each avatar - - - Total number of baked textures on each avatar - - - Total number of wearables per bake layer - - - Mapping between BakeType and AvatarTextureIndex - - - Map of what wearables are included in each bake - - - Magic values to finalize the cache check hashes for each - bake - - - Default avatar texture, used to detect when a custom - texture is not set for a face - - - The event subscribers. null if no subcribers - - - Raises the AgentWearablesReply event - An AgentWearablesReplyEventArgs object containing the - data returned from the data server - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the CachedBakesReply event - An AgentCachedBakesReplyEventArgs object containing the - data returned from the data server AgentCachedTextureResponse - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the AppearanceSet event - An AppearanceSetEventArgs object indicating if the operatin was successfull - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the RebakeAvatarRequested event - An RebakeAvatarTexturesEventArgs object containing the - data returned from the data server - - - Thread sync lock object - - - A cache of wearables currently being worn - - - A cache of textures currently being worn - - - Incrementing serial number for AgentCachedTexture packets - - - Incrementing serial number for AgentSetAppearance packets - - - Indicates whether or not the appearance thread is currently - running, to prevent multiple appearance threads from running - simultaneously - - - Reference to our agent - - + - Timer used for delaying rebake on changing outfit + Register an event handler for a packet. This is a low level event + interface and should only be used if you are doing something not + supported in the library + Packet type to trigger events for + Callback to fire when a packet of this type + is received + True if the callback should be ran + asynchronously. Only set this to false (synchronous for callbacks + that will always complete quickly) + If any callback for a packet type is marked as + asynchronous, all callbacks for that packet type will be fired + asynchronously - + - Main appearance thread + Unregister an event handler for a packet. This is a low level event + interface and should only be used if you are doing something not + supported in the library + Packet type this callback is registered with + Callback to stop firing events for - + - Default constructor + Register a CAPS event handler. This is a low level event interface + and should only be used if you are doing something not supported in + the library - A reference to our agent + Name of the CAPS event to register a handler for + Callback to fire when a CAPS event is received - + - Obsolete method for setting appearance. This function no longer does anything. - Use RequestSetAppearance() to manually start the appearance thread + Unregister a CAPS event handler. This is a low level event interface + and should only be used if you are doing something not supported in + the library + Name of the CAPS event this callback is + registered with + Callback to stop firing events for - + - Obsolete method for setting appearance. This function no longer does anything. - Use RequestSetAppearance() to manually start the appearance thread + Send a packet to the simulator the avatar is currently occupying - Unused parameter + Packet to send - + - Starts the appearance setting thread + Send a packet to a specified simulator + Packet to send + Simulator to send the packet to - + - Starts the appearance setting thread + Connect to a simulator - True to force rebaking, otherwise false + IP address to connect to + Port to connect to + Handle for this simulator, to identify its + location in the grid + Whether to set CurrentSim to this new + connection, use this if the avatar is moving in to this simulator + URL of the capabilities server to use for + this sim connection + A Simulator object on success, otherwise null - + - Ask the server what textures our agent is currently wearing + Connect to a simulator + IP address and port to connect to + Handle for this simulator, to identify its + location in the grid + Whether to set CurrentSim to this new + connection, use this if the avatar is moving in to this simulator + URL of the capabilities server to use for + this sim connection + A Simulator object on success, otherwise null - + - Build hashes out of the texture assetIDs for each baking layer to - ask the simulator whether it has cached copies of each baked texture + Initiate a blocking logout request. This will return when the logout + handshake has completed or when Settings.LOGOUT_TIMEOUT + has expired and the network layer is manually shut down - + - Returns the AssetID of the asset that is currently being worn in a - given WearableType slot + Initiate the logout process. Check if logout succeeded with the + OnLogoutReply event, and if this does not fire the + Shutdown() function needs to be manually called - WearableType slot to get the AssetID for - The UUID of the asset being worn in the given slot, or - UUID.Zero if no wearable is attached to the given slot or wearables - have not been downloaded yet - + - Add a wearable to the current outfit and set appearance + Close a connection to the given simulator - Wearable to be added to the outfit + + - + - Add a list of wearables to the current outfit and set appearance + Shutdown will disconnect all the sims except for the current sim + first, and then kill the connection to CurrentSim. This should only + be called if the logout process times out on RequestLogout - List of wearable inventory items to - be added to the outfit + Type of shutdown - + - Remove a wearable from the current outfit and set appearance + Shutdown will disconnect all the sims except for the current sim + first, and then kill the connection to CurrentSim. This should only + be called if the logout process times out on RequestLogout - Wearable to be removed from the outfit + Type of shutdown + Shutdown message - + - Removes a list of wearables from the current outfit and set appearance + Searches through the list of currently connected simulators to find + one attached to the given IPEndPoint - List of wearable inventory items to - be removed from the outfit + IPEndPoint of the Simulator to search for + A Simulator reference on success, otherwise null - + - Replace the current outfit with a list of wearables and set appearance + Fire an event when an event queue connects for capabilities - List of wearable inventory items that - define a new outfit + Simulator the event queue is attached to - - - Checks if an inventory item is currently being worn - - The inventory item to check against the agent - wearables - The WearableType slot that the item is being worn in, - or WearbleType.Invalid if it is not currently being worn + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - Returns a copy of the agents currently worn wearables - - A copy of the agents currently worn wearables - Avoid calling this function multiple times as it will make - a copy of all of the wearable data each time + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - Calls either or - depending on the value of - replaceItems - - List of wearable inventory items to add - to the outfit or become a new outfit - True to replace existing items with the - new list of items, false to add these items to the existing outfit + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - Adds a list of attachments to our agent - - A List containing the attachments to add - If true, tells simulator to remove existing attachment - first + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - Attach an item to our agent at a specific attach point - - A to attach - the on the avatar - to attach the item to + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - Attach an item to our agent specifying attachment details - - The of the item to attach - The attachments owner - The name of the attachment - The description of the attahment - The to apply when attached - The of the attachment - The on the agent - to attach the item to + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - Detach an item from our agent using an object - - An object + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - Detach an item from our agent - - The inventory itemID of the item to detach + + Raised when the simulator sends us data containing + ... - - - Inform the sim which wearables are part of our current outfit - + + Called when a reply is received from the login server, the + login sequence will block until this event returns - - - Replaces the Wearables collection with a list of new wearable items - - Wearable items to replace the Wearables collection with + + Current state of logging in - - - Calculates base color/tint for a specific wearable - based on its params - - All the color info gathered from wearable's VisualParams - passed as list of ColorParamInfo tuples - Base color/tint for the wearable + + Upon login failure, contains a short string key for the + type of login error that occurred - - - Blocking method to populate the Wearables dictionary - - True on success, otherwise false + + The raw XML-RPC reply from the login server, exactly as it + was received (minus the HTTP header) - - - Blocking method to populate the Textures array with cached bakes - - True on success, otherwise false + + During login this contains a descriptive version of + LoginStatusCode. After a successful login this will contain the + message of the day, and after a failed login a descriptive error + message will be returned - - - Populates textures and visual params from a decoded asset - - Wearable to decode + + Raised when the simulator sends us data containing + ... - - - Blocking method to download and parse currently worn wearable assets - - True on success, otherwise false + + Raised when the simulator sends us data containing + ... - - - Get a list of all of the textures that need to be downloaded for a - single bake layer - - Bake layer to get texture AssetIDs for - A list of texture AssetIDs to download + + Raised when the simulator sends us data containing + ... - - - Helper method to lookup the TextureID for a single layer and add it - to a list if it is not already present - - - + + Raised when the simulator sends us data containing + ... - - - Blocking method to download all of the textures needed for baking - the given bake layers - - A list of layers that need baking - No return value is given because the baking will happen - whether or not all textures are successfully downloaded + + Raised when the simulator sends us data containing + ... - - - Blocking method to create and upload baked textures for all of the - missing bakes - - True on success, otherwise false + + Raised when the simulator sends us data containing + ... - - - Blocking method to create and upload a baked texture for a single - bake layer - - Layer to bake - True on success, otherwise false + + Raised when the simulator sends us data containing + ... - - - Blocking method to upload a baked texture - - Five channel JPEG2000 texture data to upload - UUID of the newly created asset on success, otherwise UUID.Zero + + Raised when the simulator sends us data containing + ... - - - Creates a dictionary of visual param values from the downloaded wearables - - A dictionary of visual param indices mapping to visual param - values for our agent that can be fed to the Baker class + + Unique identifier associated with our connections to + simulators - - - Create an AgentSetAppearance packet from Wearables data and the - Textures array and send it - + + The simulator that the logged in avatar is currently + occupying - + + Shows whether the network layer is logged in to the + grid or not + + + Number of packets in the incoming queue + + + Number of packets in the outgoing queue + + - Converts a WearableType to a bodypart or clothing WearableType + - A WearableType - AssetType.Bodypart or AssetType.Clothing or AssetType.Unknown + + + + + - + - Converts a BakeType to the corresponding baked texture slot in AvatarTextureIndex + Explains why a simulator or the grid disconnected from us - A BakeType - The AvatarTextureIndex slot that holds the given BakeType - - - Gives the layer number that is used for morph mask - - >A BakeType - Which layer number as defined in BakeTypeToTextures is used for morph mask + + The client requested the logout or simulator disconnect - - - Converts a BakeType to a list of the texture slots that make up that bake - - A BakeType - A list of texture slots that are inputs for the given bake + + The server notified us that it is disconnecting - - Triggered when an AgentWearablesUpdate packet is received, - telling us what our avatar is currently wearing - request. + + Either a socket was closed or network traffic timed out - - Raised when an AgentCachedTextureResponse packet is - received, giving a list of cached bakes that were found on the - simulator - request. + + The last active simulator shut down - + - Raised when appearance data is sent to the simulator, also indicates - the main appearance thread is finished. + Holds a simulator reference and a decoded packet, these structs are put in + the packet inbox for event handling - request. - - - Triggered when the simulator requests the agent rebake its appearance. - - + + Reference to the simulator that this packet came from - + + Packet that needs to be processed + + - Returns true if AppearanceManager is busy and trying to set or change appearance will fail + Holds a simulator reference and a serialized packet, these structs are put in + the packet outbox for sending - + + Reference to the simulator this packet is destined for + + + Packet that needs to be sent + + + Sequence number of the wrapped packet + + + Number of times this packet has been resent + + + Environment.TickCount when this packet was last sent over the wire + + + Type of the packet + + - Contains information about a wearable inventory item + A Name Value pair with additional settings, used in the protocol + primarily to transmit avatar names and active group in object packets - - Inventory ItemID of the wearable + + - - AssetID of the wearable asset + + - - WearableType of the wearable + + - - AssetType of the wearable + + - - Asset data for the wearable + + - + - Data collected from visual params for each wearable - needed for the calculation of the color + Constructor that takes all the fields as parameters + + + + + - + - Holds a texture assetID and the data needed to bake this layer into - an outfit texture. Used to keep track of currently worn textures - and baking data + Constructor that takes a single line from a NameValue field + - - A texture AssetID + + Type of the value - - Asset data for the texture + + Unknown - - Collection of alpha masks that needs applying + + String value - - Tint that should be applied to the texture + + - - Where on avatar does this texture belong + + - - Contains the Event data returned from the data server from an AgentWearablesRequest + + - - Construct a new instance of the AgentWearablesReplyEventArgs class + + - - Contains the Event data returned from the data server from an AgentCachedTextureResponse + + Deprecated - - Construct a new instance of the AgentCachedBakesReplyEventArgs class + + String value, but designated as an asset - - Contains the Event data returned from an AppearanceSetRequest + + - + - Triggered when appearance data is sent to the sim and - the main appearance thread is done. - Indicates whether appearance setting was successful + + - - Indicates whether appearance setting was successful + + - - Contains the Event data returned from the data server from an RebakeAvatarTextures + + - - - Triggered when the simulator sends a request for this agent to rebake - its appearance - - The ID of the Texture Layer to bake + + - - The ID of the Texture Layer to bake + + - + - The current status of a texture request as it moves through the pipeline or final result of a texture request. + - - The initial state given to a request. Requests in this state - are waiting for an available slot in the pipeline - - - A request that has been added to the pipeline and the request packet - has been sent to the simulator - - - A request that has received one or more packets back from the simulator - - - A request that has received all packets back from the simulator + + - - A request that has taken longer than - to download OR the initial packet containing the packet information was never received + + - - The texture request was aborted by request of the agent + + - - The simulator replied to the request that it was not able to find the requested texture + + - - - A callback fired to indicate the status or final state of the requested texture. For progressive - downloads this will fire each time new asset data is returned from the simulator. - - The indicating either Progress for textures not fully downloaded, - or the final result of the request after it has been processed through the TexturePipeline - The object containing the Assets ID, raw data - and other information. For progressive rendering the will contain - the data from the beginning of the file. For failed, aborted and timed out requests it will contain - an empty byte array. + + - + - Texture request download handler, allows a configurable number of download slots which manage multiple - concurrent texture downloads from the + - This class makes full use of the internal - system for full texture downloads. - - A dictionary containing all pending and in-process transfer requests where the Key is both the RequestID - and also the Asset Texture ID, and the value is an object containing the current state of the request and also - the asset data as it is being re-assembled + + No report - - Holds the reference to the client object + + Unknown report type - - Maximum concurrent texture requests allowed at a time + + Bug report - - An array of objects used to manage worker request threads + + Complaint report - - An array of worker slots which shows the availablity status of the slot + + Customer service report - - The primary thread which manages the requests. + + + Bitflag field for ObjectUpdateCompressed data blocks, describing + which options are present for each object + - - true if the TexturePipeline is currently running + + Unknown - - A synchronization object used by the primary thread + + Whether the object has a TreeSpecies - - A refresh timer used to increase the priority of stalled requests + + Whether the object has floating text ala llSetText - - - Default constructor, Instantiates a new copy of the TexturePipeline class - - Reference to the instantiated object + + Whether the object has an active particle system - - - Initialize callbacks required for the TexturePipeline to operate - + + Whether the object has sound attached to it - - - Shutdown the TexturePipeline and cleanup any callbacks or transfers - + + Whether the object is attached to a root object or not - - - Request a texture asset from the simulator using the system to - manage the requests and re-assemble the image from the packets received from the simulator - - The of the texture asset to download - The of the texture asset. - Use for most textures, or for baked layer texture assets - A float indicating the requested priority for the transfer. Higher priority values tell the simulator - to prioritize the request before lower valued requests. An image already being transferred using the can have - its priority changed by resending the request with the new priority value - Number of quality layers to discard. - This controls the end marker of the data sent - The packet number to begin the request at. A value of 0 begins the request - from the start of the asset texture - The callback to fire when the image is retrieved. The callback - will contain the result of the request and the texture asset data - If true, the callback will be fired for each chunk of the downloaded image. - The callback asset parameter will contain all previously received chunks of the texture asset starting - from the beginning of the request + + Whether the object has texture animation settings - - - Sends the actual request packet to the simulator - - The image to download - Type of the image to download, either a baked - avatar texture or a normal texture - Priority level of the download. Default is - 1,013,000.0f - Number of quality layers to discard. - This controls the end marker of the data sent - Packet number to start the download at. - This controls the start marker of the data sent - Sending a priority of 0 and a discardlevel of -1 aborts - download + + Whether the object has an angular velocity - - - Cancel a pending or in process texture request - - The texture assets unique ID + + Whether the object has a name value pairs string - - - Master Download Thread, Queues up downloads in the threadpool - + + Whether the object has a Media URL set - + - The worker thread that sends the request and handles timeouts + Specific Flags for MultipleObjectUpdate requests - A object containing the request details - + + None + + + Change position of prims + + + Change rotation of prims + + + Change size of prims + + + Perform operation on link set + + + Scale prims uniformly, same as selecing ctrl+shift in the + viewer. Used in conjunction with Scale + + - Handle responses from the simulator that tell us a texture we have requested is unable to be located - or no longer exists. This will remove the request from the pipeline and free up a slot if one is in use + Special values in PayPriceReply. If the price is not one of these + literal value of the price should be use - The sender - The EventArgs object containing the packet data - + - Handles the remaining Image data that did not fit in the initial ImageData packet + Indicates that this pay option should be hidden - The sender - The EventArgs object containing the packet data - + - Handle the initial ImageDataPacket sent from the simulator + Indicates that this pay option should have the default value - The sender - The EventArgs object containing the packet data - - - Current number of pending and in-process transfers - + - A request task containing information and status of a request as it is processed through the + Contains the variables sent in an object update packet for objects. + Used to track position and movement of prims and avatars - - The current which identifies the current status of the request + + - - The Unique Request ID, This is also the Asset ID of the texture being requested + + - - The slot this request is occupying in the threadpoolSlots array + + - - The ImageType of the request. + + - - The callback to fire when the request is complete, will include - the and the - object containing the result data + + - - If true, indicates the callback will be fired whenever new data is returned from the simulator. - This is used to progressively render textures as portions of the texture are received. + + - - An object that maintains the data of an request thats in-process. + + - - - Wrapper around a byte array that allows bit to be packed and unpacked - one at a time or by a variable amount. Useful for very tightly packed - data like LayerData packets - + + - + - - - Default constructor, initialize the bit packer / bit unpacker - with a byte array and starting position - - Byte array to pack bits in to or unpack from - Starting position in the byte array + + - + - Pack a floating point value in to the data + Handles all network traffic related to prims and avatar positions and + movement. - Floating point value to pack - - - Pack part or all of an integer in to the data - - Integer containing the data to pack - Number of bits of the integer to pack + + The event subscribers, null of no subscribers - - - Pack part or all of an unsigned integer in to the data - - Unsigned integer containing the data to pack - Number of bits of the integer to pack + + Thread sync lock object - - - Pack a single bit in to the data - - Bit to pack + + The event subscribers, null of no subscribers - - - - - - - - + + Raises the ObjectProperties Event + A ObjectPropertiesEventArgs object containing + the data sent from the simulator - - - - - + + Thread sync lock object - - - - - + + The event subscribers, null of no subscribers - - - Unpacking a floating point value from the data - - Unpacked floating point value + + Raises the ObjectPropertiesUpdated Event + A ObjectPropertiesUpdatedEventArgs object containing + the data sent from the simulator - - - Unpack a variable number of bits from the data in to integer format - - Number of bits to unpack - An integer containing the unpacked bits - This function is only useful up to 32 bits + + Thread sync lock object - - - Unpack a variable number of bits from the data in to unsigned - integer format - - Number of bits to unpack - An unsigned integer containing the unpacked bits - This function is only useful up to 32 bits + + The event subscribers, null of no subscribers - - - Unpack a 16-bit signed integer - - 16-bit signed integer + + Raises the ObjectPropertiesFamily Event + A ObjectPropertiesFamilyEventArgs object containing + the data sent from the simulator - - - Unpack a 16-bit unsigned integer - - 16-bit unsigned integer + + Thread sync lock object - - - Unpack a 32-bit signed integer - - 32-bit signed integer + + The event subscribers, null of no subscribers - - - Unpack a 32-bit unsigned integer - - 32-bit unsigned integer + + Raises the AvatarUpdate Event + A AvatarUpdateEventArgs object containing + the data sent from the simulator - - + + Thread sync lock object - - + + The event subscribers, null of no subscribers - - - Class that handles the local asset cache - + + Thread sync lock object - - - Default constructor - - A reference to the GridClient object + + The event subscribers, null of no subscribers - - - Disposes cleanup timer - + + Raises the ObjectDataBlockUpdate Event + A ObjectDataBlockUpdateEventArgs object containing + the data sent from the simulator - - - Only create timer when needed - + + Thread sync lock object - - - Return bytes read from the local asset cache, null if it does not exist - - UUID of the asset we want to get - Raw bytes of the asset, or null on failure + + The event subscribers, null of no subscribers - - - Returns ImageDownload object of the - image from the local image cache, null if it does not exist - - UUID of the image we want to get - ImageDownload object containing the image, or null on failure + + Raises the KillObject Event + A KillObjectEventArgs object containing + the data sent from the simulator - - - Constructs a file name of the cached asset - - UUID of the asset - String with the file name of the cahced asset + + Thread sync lock object - - - Saves an asset to the local cache - - UUID of the asset - Raw bytes the asset consists of - Weather the operation was successfull + + The event subscribers, null of no subscribers - - - Get the file name of the asset stored with gived UUID - - UUID of the asset - Null if we don't have that UUID cached on disk, file name if found in the cache folder + + Raises the KillObjects Event + A KillObjectsEventArgs object containing + the data sent from the simulator - - - Checks if the asset exists in the local cache - - UUID of the asset - True is the asset is stored in the cache, otherwise false + + Thread sync lock object - - - Wipes out entire cache - + + The event subscribers, null of no subscribers - - - Brings cache size to the 90% of the max size - + + Raises the AvatarSitChanged Event + A AvatarSitChangedEventArgs object containing + the data sent from the simulator - - - Asynchronously brings cache size to the 90% of the max size - + + Thread sync lock object - - - Adds up file sizes passes in a FileInfo array - + + The event subscribers, null of no subscribers - - - Checks whether caching is enabled - + + Raises the PayPriceReply Event + A PayPriceReplyEventArgs object containing + the data sent from the simulator - - - Periodically prune the cache - + + Thread sync lock object - - - Nicely formats file sizes - - Byte size we want to output - String with humanly readable file size + + The event subscribers, null of no subscribers - - - Allows setting weather to periodicale prune the cache if it grows too big - Default is enabled, when caching is enabled - + + Raises the PhysicsProperties Event + A PhysicsPropertiesEventArgs object containing + the data sent from the simulator - - - How long (in ms) between cache checks (default is 5 min.) - + + Thread sync lock object - + + Reference to the GridClient object + + + Does periodic dead reckoning calculation to convert + velocity and acceleration to new positions for objects + + - Helper class for sorting files by their last accessed time + Construct a new instance of the ObjectManager class + A reference to the instance - + - Capability to load TGAs to Bitmap + Request information for a single object from a + you are currently connected to + The the object is located + The Local ID of the object - + - Represents a Sound Asset + Request information for multiple objects contained in + the same simulator + The the objects are located + An array containing the Local IDs of the objects - - Initializes a new instance of an AssetSound object - - - Initializes a new instance of an AssetSound object with parameters - A unique specific to this asset - A byte array containing the raw asset data + + + Attempt to purchase an original object, a copy, or the contents of + an object + + The the object is located + The Local ID of the object + Whether the original, a copy, or the object + contents are on sale. This is used for verification, if the this + sale type is not valid for the object the purchase will fail + Price of the object. This is used for + verification, if it does not match the actual price the purchase + will fail + Group ID that will be associated with the new + purchase + Inventory folder UUID where the object or objects + purchased should be placed + + + BuyObject(Client.Network.CurrentSim, 500, SaleType.Copy, + 100, UUID.Zero, Client.Self.InventoryRootFolderUUID); + + - + - TODO: Encodes a sound file + Request prices that should be displayed in pay dialog. This will triggger the simulator + to send us back a PayPriceReply which can be handled by OnPayPriceReply event + The the object is located + The ID of the object + The result is raised in the event - + - TODO: Decode a sound file + Select a single object. This will cause the to send us + an which will raise the event - true - - - Override the base classes AssetType + The the object is located + The Local ID of the object + - + - Represents an LSL Text object containing a string of UTF encoded characters + Select a single object. This will cause the to send us + an which will raise the event + The the object is located + The Local ID of the object + if true, a call to is + made immediately following the request + - - A string of characters represting the script contents + + + Select multiple objects. This will cause the to send us + an which will raise the event + + The the objects are located + An array containing the Local IDs of the objects + Should objects be deselected immediately after selection + - - Initializes a new AssetScriptText object + + + Select multiple objects. This will cause the to send us + an which will raise the event + + The the objects are located + An array containing the Local IDs of the objects + - + - Initializes a new AssetScriptText object with parameters + Update the properties of an object - A unique specific to this asset - A byte array containing the raw asset data + The the object is located + The Local ID of the object + true to turn the objects physical property on + true to turn the objects temporary property on + true to turn the objects phantom property on + true to turn the objects cast shadows property on - + - Encode a string containing the scripts contents into byte encoded AssetData + Update the properties of an object + The the object is located + The Local ID of the object + true to turn the objects physical property on + true to turn the objects temporary property on + true to turn the objects phantom property on + true to turn the objects cast shadows property on + Type of the represetnation prim will have in the physics engine + Density - normal value 1000 + Friction - normal value 0.6 + Restitution - standard value 0.5 + Gravity multiplier - standar value 1.0 - + - Decode a byte array containing the scripts contents into a string + Sets the sale properties of a single object - true if decoding is successful + The the object is located + The Local ID of the object + One of the options from the enum + The price of the object - - Override the base classes AssetType + + + Sets the sale properties of multiple objects + + The the objects are located + An array containing the Local IDs of the objects + One of the options from the enum + The price of the object - + - Represents a Landmark with RegionID and Position vector + Deselect a single object + The the object is located + The Local ID of the object - - UUID of the Landmark target region - - - Local position of the target + + + Deselect multiple objects. + + The the objects are located + An array containing the Local IDs of the objects - - Construct an Asset of type Landmark + + + Perform a click action on an object + + The the object is located + The Local ID of the object - + - Construct an Asset object of type Landmark + Perform a click action (Grab) on a single object - A unique specific to this asset - A byte array containing the raw asset data + The the object is located + The Local ID of the object + The texture coordinates to touch + The surface coordinates to touch + The face of the position to touch + The region coordinates of the position to touch + The surface normal of the position to touch (A normal is a vector perpindicular to the surface) + The surface binormal of the position to touch (A binormal is a vector tangen to the surface + pointing along the U direction of the tangent space - + - Encode the raw contents of a string with the specific Landmark format + Create (rez) a new prim object in a simulator + A reference to the object to place the object in + Data describing the prim object to rez + Group ID that this prim will be set to, or UUID.Zero if you + do not want the object to be associated with a specific group + An approximation of the position at which to rez the prim + Scale vector to size this prim + Rotation quaternion to rotate this prim + Due to the way client prim rezzing is done on the server, + the requested position for an object is only close to where the prim + actually ends up. If you desire exact placement you'll need to + follow up by moving the object after it has been created. This + function will not set textures, light and flexible data, or other + extended primitive properties - + - Decode the raw asset data, populating the RegionID and Position + Create (rez) a new prim object in a simulator - true if the AssetData was successfully decoded to a UUID and Vector + A reference to the object to place the object in + Data describing the prim object to rez + Group ID that this prim will be set to, or UUID.Zero if you + do not want the object to be associated with a specific group + An approximation of the position at which to rez the prim + Scale vector to size this prim + Rotation quaternion to rotate this prim + Specify the + Due to the way client prim rezzing is done on the server, + the requested position for an object is only close to where the prim + actually ends up. If you desire exact placement you'll need to + follow up by moving the object after it has been created. This + function will not set textures, light and flexible data, or other + extended primitive properties - - Override the base classes AssetType + + + Rez a Linden tree + + A reference to the object where the object resides + The size of the tree + The rotation of the tree + The position of the tree + The Type of tree + The of the group to set the tree to, + or UUID.Zero if no group is to be set + true to use the "new" Linden trees, false to use the old - + - Represents an that can be worn on an avatar - such as a Shirt, Pants, etc. + Rez grass and ground cover + A reference to the object where the object resides + The size of the grass + The rotation of the grass + The position of the grass + The type of grass from the enum + The of the group to set the tree to, + or UUID.Zero if no group is to be set - - Initializes a new instance of an AssetScriptBinary object + + + Set the textures to apply to the faces of an object + + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The texture data to apply - - Initializes a new instance of an AssetScriptBinary object with parameters - A unique specific to this asset - A byte array containing the raw asset data + + + Set the textures to apply to the faces of an object + + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The texture data to apply + A media URL (not used) - - Override the base classes AssetType + + + Set the Light data on an object + + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + A object containing the data to set - + - Main class to expose grid functionality to clients. All of the - classes needed for sending and receiving data are accessible through - this class. + Set the flexible data on an object - - - // Example minimum code required to instantiate class and - // connect to a simulator. - using System; - using System.Collections.Generic; - using System.Text; - using OpenMetaverse; - - namespace FirstBot - { - class Bot - { - public static GridClient Client; - static void Main(string[] args) - { - Client = new GridClient(); // instantiates the GridClient class - // to the global Client object - // Login to Simulator - Client.Network.Login("FirstName", "LastName", "Password", "FirstBot", "1.0"); - // Wait for a Keypress - Console.ReadLine(); - // Logout of simulator - Client.Network.Logout(); - } - } - } - - + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + A object containing the data to set - - Networking subsystem + + + Set the sculptie texture and data on an object + + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + A object containing the data to set - - Settings class including constant values and changeable - parameters for everything - - - Parcel (subdivided simulator lots) subsystem - - - Our own avatars subsystem - - - Other avatars subsystem - - - Estate subsystem - - - Friends list subsystem - - - Grid (aka simulator group) subsystem - - - Object subsystem - - - Group subsystem - - - Asset subsystem - - - Appearance subsystem - - - Inventory subsystem - - - Directory searches including classifieds, people, land - sales, etc - - - Handles land, wind, and cloud heightmaps - - - Handles sound-related networking - - - Throttling total bandwidth usage, or allocating bandwidth - for specific data stream types - - + - Default constructor + Unset additional primitive parameters on an object + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The extra parameters to set - + - Return the full name of this instance + Link multiple prims into a linkset - Client avatars full name + A reference to the object where the objects reside + An array which contains the IDs of the objects to link + The last object in the array will be the root object of the linkset TODO: Is this true? - + - Attempts to convert an LLSD structure to a known Packet type + Delink/Unlink multiple prims from a linkset - Event name, this must match an actual - packet name for a Packet to be successfully built - LLSD to convert to a Packet - A Packet on success, otherwise null + A reference to the object where the objects reside + An array which contains the IDs of the objects to delink - + - Image width + Change the rotation of an object + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The new rotation of the object - + - Image height + Set the name of an object + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + A string containing the new name of the object - + - Image channel flags + Set the name of multiple objects + A reference to the object where the objects reside + An array which contains the IDs of the objects to change the name of + An array which contains the new names of the objects - + - Red channel data + Set the description of an object + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + A string containing the new description of the object - + - Green channel data + Set the descriptions of multiple objects + A reference to the object where the objects reside + An array which contains the IDs of the objects to change the description of + An array which contains the new descriptions of the objects - + - Blue channel data + Attach an object to this avatar + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The point on the avatar the object will be attached + The rotation of the attached object - + - Alpha channel data + Drop an attached object from this avatar + A reference to the + object where the objects reside. This will always be the simulator the avatar is currently in + + The object's ID which is local to the simulator the object is in - + - Bump channel data + Detach an object from yourself + A reference to the + object where the objects reside + + This will always be the simulator the avatar is currently in + + An array which contains the IDs of the objects to detach - + - Create a new blank image + Change the position of an object, Will change position of entire linkset - width - height - channel flags + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The new position of the object - + - + Change the position of an object - + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The new position of the object + if true, will change position of (this) child prim only, not entire linkset - + - Convert the channels in the image. Channels are created or destroyed as required. + Change the Scale (size) of an object - new channel flags + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The new scale of the object + If true, will change scale of this prim only, not entire linkset + True to resize prims uniformly - + - Resize or stretch the image using nearest neighbor (ugly) resampling + Change the Rotation of an object that is either a child or a whole linkset - new width - new height + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The new scale of the object + If true, will change rotation of this prim only, not entire linkset - + - Create a byte array containing 32-bit RGBA data with a bottom-left - origin, suitable for feeding directly into OpenGL + Send a Multiple Object Update packet to change the size, scale or rotation of a primitive - A byte array containing raw texture data + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The new rotation, size, or position of the target object + The flags from the Enum - + - Represents a texture + Deed an object (prim) to a group, Object must be shared with group which + can be accomplished with SetPermissions() + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The of the group to deed the object to - - A object containing image data - - - - - - - - - Initializes a new instance of an AssetTexture object - - + - Initializes a new instance of an AssetTexture object + Deed multiple objects (prims) to a group, Objects must be shared with group which + can be accomplished with SetPermissions() - A unique specific to this asset - A byte array containing the raw asset data + A reference to the object where the object resides + An array which contains the IDs of the objects to deed + The of the group to deed the object to - + - Initializes a new instance of an AssetTexture object + Set the permissions on multiple objects - A object containing texture data + A reference to the object where the objects reside + An array which contains the IDs of the objects to set the permissions on + The new Who mask to set + Which permission to modify + The new state of permission - + - Populates the byte array with a JPEG2000 - encoded image created from the data in + Request additional properties for an object + A reference to the object where the object resides + - + - Decodes the JPEG2000 data in AssetData to the - object + Request additional properties for an object - True if the decoding was successful, otherwise false + A reference to the object where the object resides + Absolute UUID of the object + Whether to require server acknowledgement of this request - + - Decodes the begin and end byte positions for each quality layer in - the image + Set the ownership of a list of objects to the specified group - - - - Override the base classes AssetType + A reference to the object where the objects reside + An array which contains the IDs of the objects to set the group id on + The Groups ID - + - Temporary code to do the bare minimum required to read a tar archive for our purposes + Update current URL of the previously set prim media + UUID of the prim + Set current URL to this + Prim face number + Simulator in which prim is located - + - Binary reader for the underlying stream + Set object media + UUID of the prim + Array the length of prims number of faces. Null on face indexes where there is + no media, on faces which contain the media + Simulatior in which prim is located - + - Used to trim off null chars + Retrieve information about object media + UUID of the primitive + Simulator where prim is located + Call this callback when done - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + - Used to trim off space chars + A terse object update, used when a transformation matrix or + velocity/acceleration for an object changes but nothing else + (scale/position/rotation/acceleration/velocity) + The sender + The EventArgs object containing the packet data - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + - Generate a tar reader which reads from the given stream. + - + + + - + - Read the next entry in the tar file. + Setup construction data for a basic primitive shape - - - the data for the entry. Returns null if there are no more entries + Primitive shape to construct + Construction data that can be plugged into a - + - Read the next 512 byte chunk of data as a tar header. + - A tar header struct. null if we have reached the end of the archive. + + + + - + - Read data following a header + - - + + - + - Convert octal bytes to a decimal representation + Set the Shape data of an object - - - - - - - X position of this patch - - - Y position of this patch + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + Data describing the prim shape - - A 16x16 array of floats holding decompressed layer data + + + Set the Material data of an object + + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The new material of the object - + - Creates a LayerData packet for compressed land data given a full - simulator heightmap and an array of indices of patches to compress + - A 256 * 256 array of floating point values - specifying the height at each meter in the simulator - Array of indexes in the 16x16 grid of patches - for this simulator. For example if 1 and 17 are specified, patches - x=1,y=0 and x=1,y=1 are sent + + + - + - Add a patch of terrain to a BitPacker + - BitPacker to write the patch to - Heightmap of the simulator, must be a 256 * - 256 float array - X offset of the patch to create, valid values are - from 0 to 15 - Y offset of the patch to create, valid values are - from 0 to 15 + + + + + - + + + + + - - No report - - - Unknown report type - - - Bug report - - - Complaint report - - - Customer service report + + Raised when the simulator sends us data containing + A , Foliage or Attachment + + - - - Bitflag field for ObjectUpdateCompressed data blocks, describing - which options are present for each object - + + Raised when the simulator sends us data containing + additional information + + - - Unknown + + Raised when the simulator sends us data containing + Primitive.ObjectProperties for an object we are currently tracking - - Whether the object has a TreeSpecies + + Raised when the simulator sends us data containing + additional and details + - - Whether the object has floating text ala llSetText + + Raised when the simulator sends us data containing + updated information for an - - Whether the object has an active particle system + + Raised when the simulator sends us data containing + and movement changes - - Whether the object has sound attached to it + + Raised when the simulator sends us data containing + updates to an Objects DataBlock - - Whether the object is attached to a root object or not + + Raised when the simulator informs us an + or is no longer within view - - Whether the object has texture animation settings + + Raised when the simulator informs us when a group of + or is no longer within view - - Whether the object has an angular velocity + + Raised when the simulator sends us data containing + updated sit information for our - - Whether the object has a name value pairs string + + Raised when the simulator sends us data containing + purchase price information for a - - Whether the object has a Media URL set + + Raised when the simulator sends us data containing + additional information + + - + - Specific Flags for MultipleObjectUpdate requests + Callback for getting object media data via CAP + Indicates if the operation was succesfull + Object media version string + Array indexed on prim face of media entry data - - None - - - Change position of prims - - - Change rotation of prims - - - Change size of prims - - - Perform operation on link set - - - Scale prims uniformly, same as selecing ctrl+shift in the - viewer. Used in conjunction with Scale + + Provides data for the event + The event occurs when the simulator sends + an containing a Primitive, Foliage or Attachment data + Note 1: The event will not be raised when the object is an Avatar + Note 2: It is possible for the to be + raised twice for the same object if for example the primitive moved to a new simulator, then returned to the current simulator or + if an Avatar crosses the border into a new simulator and returns to the current simulator + + + The following code example uses the , , and + properties to display new Primitives and Attachments on the window. + + // Subscribe to the event that gives us prim and foliage information + Client.Objects.ObjectUpdate += Objects_ObjectUpdate; + + + private void Objects_ObjectUpdate(object sender, PrimEventArgs e) + { + Console.WriteLine("Primitive {0} {1} in {2} is an attachment {3}", e.Prim.ID, e.Prim.LocalID, e.Simulator.Name, e.IsAttachment); + } + + + + + - + - Special values in PayPriceReply. If the price is not one of these - literal value of the price should be use + Construct a new instance of the PrimEventArgs class + The simulator the object originated from + The Primitive + The simulator time dilation + The prim was not in the dictionary before this update + true if the primitive represents an attachment to an agent - + + Get the simulator the originated from + + + Get the details + + + true if the did not exist in the dictionary before this update (always true if object tracking has been disabled) + + + true if the is attached to an + + + Get the simulator Time Dilation + + + Provides data for the event + The event occurs when the simulator sends + an containing Avatar data + Note 1: The event will not be raised when the object is an Avatar + Note 2: It is possible for the to be + raised twice for the same avatar if for example the avatar moved to a new simulator, then returned to the current simulator + + + The following code example uses the property to make a request for the top picks + using the method in the class to display the names + of our own agents picks listings on the window. + + // subscribe to the AvatarUpdate event to get our information + Client.Objects.AvatarUpdate += Objects_AvatarUpdate; + Client.Avatars.AvatarPicksReply += Avatars_AvatarPicksReply; + + private void Objects_AvatarUpdate(object sender, AvatarUpdateEventArgs e) + { + // we only want our own data + if (e.Avatar.LocalID == Client.Self.LocalID) + { + // Unsubscribe from the avatar update event to prevent a loop + // where we continually request the picks every time we get an update for ourselves + Client.Objects.AvatarUpdate -= Objects_AvatarUpdate; + // make the top picks request through AvatarManager + Client.Avatars.RequestAvatarPicks(e.Avatar.ID); + } + } + + private void Avatars_AvatarPicksReply(object sender, AvatarPicksReplyEventArgs e) + { + // we'll unsubscribe from the AvatarPicksReply event since we now have the data + // we were looking for + Client.Avatars.AvatarPicksReply -= Avatars_AvatarPicksReply; + // loop through the dictionary and extract the names of the top picks from our profile + foreach (var pickName in e.Picks.Values) + { + Console.WriteLine(pickName); + } + } + + + + + + - Indicates that this pay option should be hidden + Construct a new instance of the AvatarUpdateEventArgs class + The simulator the packet originated from + The data + The simulator time dilation + The avatar was not in the dictionary before this update - + + Get the simulator the object originated from + + + Get the data + + + Get the simulator time dilation + + + true if the did not exist in the dictionary before this update (always true if avatar tracking has been disabled) + + + Provides additional primitive data for the event + The event occurs when the simulator sends + an containing additional details for a Primitive, Foliage data or Attachment data + The event is also raised when a request is + made. + + + The following code example uses the , and + + properties to display new attachments and send a request for additional properties containing the name of the + attachment then display it on the window. + + // Subscribe to the event that provides additional primitive details + Client.Objects.ObjectProperties += Objects_ObjectProperties; + + // handle the properties data that arrives + private void Objects_ObjectProperties(object sender, ObjectPropertiesEventArgs e) + { + Console.WriteLine("Primitive Properties: {0} Name is {1}", e.Properties.ObjectID, e.Properties.Name); + } + + + + - Indicates that this pay option should have the default value + Construct a new instance of the ObjectPropertiesEventArgs class + The simulator the object is located + The primitive Properties - + + Get the simulator the object is located + + + Get the primitive properties + + + Provides additional primitive data for the event + The event occurs when the simulator sends + an containing additional details for a Primitive or Foliage data that is currently + being tracked in the dictionary + The event is also raised when a request is + made and is enabled + + + - Contains the variables sent in an object update packet for objects. - Used to track position and movement of prims and avatars - + Construct a new instance of the ObjectPropertiesUpdatedEvenrArgs class + + The simulator the object is located + The Primitive + The primitive Properties - - + + Get the primitive details - - + + Provides additional primitive data, permissions and sale info for the event + The event occurs when the simulator sends + an containing additional details for a Primitive, Foliage data or Attachment. This includes + Permissions, Sale info, and other basic details on an object + The event is also raised when a request is + made, the viewer equivalent is hovering the mouse cursor over an object + - - + + Get the simulator the object is located - + - + - - + + Provides primitive data containing updated location, velocity, rotation, textures for the event + The event occurs when the simulator sends updated location, velocity, rotation, etc + - - + + Get the simulator the object is located - - + + Get the primitive details - + - + - + - Handles all network traffic related to prims and avatar positions and - movement. + - - The event subscribers, null of no subscribers + + Get the simulator the object is located - - Thread sync lock object + + Get the primitive details - - The event subscribers, null of no subscribers + + - - Raises the ObjectProperties Event - A ObjectPropertiesEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + - - Raises the ObjectPropertiesUpdated Event - A ObjectPropertiesUpdatedEventArgs object containing - the data sent from the simulator + + Provides notification when an Avatar, Object or Attachment is DeRezzed or moves out of the avatars view for the + event - - Thread sync lock object + + Get the simulator the object is located - - The event subscribers, null of no subscribers - - - Raises the ObjectPropertiesFamily Event - A ObjectPropertiesFamilyEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the AvatarUpdate Event - A AvatarUpdateEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Thread sync lock object - - - The event subscribers, null of no subscribers + + The LocalID of the object - - Raises the ObjectDataBlockUpdate Event - A ObjectDataBlockUpdateEventArgs object containing - the data sent from the simulator + + Provides notification when an Avatar, Object or Attachment is DeRezzed or moves out of the avatars view for the + event - - Thread sync lock object + + Get the simulator the object is located - - The event subscribers, null of no subscribers + + The LocalID of the object - - Raises the KillObject Event - A KillObjectEventArgs object containing - the data sent from the simulator + + + Provides updates sit position data + - - Thread sync lock object + + Get the simulator the object is located - - The event subscribers, null of no subscribers + + - - Raises the AvatarSitChanged Event - A AvatarSitChangedEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + + + - - Raises the PayPriceReply Event - A PayPriceReplyEventArgs object containing - the data sent from the simulator + + Get the simulator the object is located - - Thread sync lock object + + - - Reference to the GridClient object + + - - Does periodic dead reckoning calculation to convert - velocity and acceleration to new positions for objects + + - + - Construct a new instance of the ObjectManager class + Indicates if the operation was successful - A reference to the instance - + - Request information for a single object from a - you are currently connected to + Media version string - The the object is located - The Local ID of the object - + - Request information for multiple objects contained in - the same simulator + Array of media entries indexed by face number - The the objects are located - An array containing the Local IDs of the objects - - - - Attempt to purchase an original object, a copy, or the contents of - an object - - The the object is located - The Local ID of the object - Whether the original, a copy, or the object - contents are on sale. This is used for verification, if the this - sale type is not valid for the object the purchase will fail - Price of the object. This is used for - verification, if it does not match the actual price the purchase - will fail - Group ID that will be associated with the new - purchase - Inventory folder UUID where the object or objects - purchased should be placed - - - BuyObject(Client.Network.CurrentSim, 500, SaleType.Copy, - 100, UUID.Zero, Client.Self.InventoryRootFolderUUID); - - - + - Request prices that should be displayed in pay dialog. This will triggger the simulator - to send us back a PayPriceReply which can be handled by OnPayPriceReply event + Set when simulator sends us infomation on primitive's physical properties - The the object is located - The ID of the object - The result is raised in the event - - - Select a single object. This will cause the to send us - an which will raise the event - - The the object is located - The Local ID of the object - + + Simulator where the message originated - + + Updated physical properties + + - Select a single object. This will cause the to send us - an which will raise the event + Constructor - The the object is located - The Local ID of the object - if true, a call to is - made immediately following the request - + Simulator where the message originated + Updated physical properties - - - Select multiple objects. This will cause the to send us - an which will raise the event - - The the objects are located - An array containing the Local IDs of the objects - Should objects be deselected immediately after selection - + + Size of the byte array used to store raw packet data - + + Raw packet data buffer + + + Length of the data to transmit + + + EndPoint of the remote host + + - Select multiple objects. This will cause the to send us - an which will raise the event - - The the objects are located - An array containing the Local IDs of the objects - + Create an allocated UDP packet buffer for receiving a packet + - + - Update the properties of an object + Create an allocated UDP packet buffer for sending a packet - The the object is located - The Local ID of the object - true to turn the objects physical property on - true to turn the objects temporary property on - true to turn the objects phantom property on - true to turn the objects cast shadows property on + EndPoint of the remote host - + - Sets the sale properties of a single object + Create an allocated UDP packet buffer for sending a packet - The the object is located - The Local ID of the object - One of the options from the enum - The price of the object + EndPoint of the remote host + Size of the buffer to allocate for packet data - + - Sets the sale properties of multiple objects - - The the objects are located - An array containing the Local IDs of the objects - One of the options from the enum - The price of the object + Object pool for packet buffers. This is used to allocate memory for all + incoming and outgoing packets, and zerocoding buffers for those packets +
- + - Deselect a single object + Creates a new instance of the ObjectPoolBase class. Initialize MUST be called + after using this constructor. - The the object is located - The Local ID of the object - + - Deselect multiple objects. + Creates a new instance of the ObjectPool Base class. - The the objects are located - An array containing the Local IDs of the objects + The object pool is composed of segments, which + are allocated whenever the size of the pool is exceeded. The number of items + in a segment should be large enough that allocating a new segmeng is a rare + thing. For example, on a server that will have 10k people logged in at once, + the receive buffer object pool should have segment sizes of at least 1000 + byte arrays per segment. + + The minimun number of segments that may exist. + Perform a full GC.Collect whenever a segment is allocated, and then again after allocation to compact the heap. + The frequency which segments are checked to see if they're eligible for cleanup. - + - Perform a click action on an object + Forces the segment cleanup algorithm to be run. This method is intended + primarly for use from the Unit Test libraries. - The the object is located - The Local ID of the object - + - Perform a click action (Grab) on a single object + Responsible for allocate 1 instance of an object that will be stored in a segment. - The the object is located - The Local ID of the object - The texture coordinates to touch - The surface coordinates to touch - The face of the position to touch - The region coordinates of the position to touch - The surface normal of the position to touch (A normal is a vector perpindicular to the surface) - The surface binormal of the position to touch (A binormal is a vector tangen to the surface - pointing along the U direction of the tangent space + An instance of whatever objec the pool is pooling. - + - Create (rez) a new prim object in a simulator + Checks in an instance of T owned by the object pool. This method is only intended to be called + by the WrappedObject class. - A reference to the object to place the object in - Data describing the prim object to rez - Group ID that this prim will be set to, or UUID.Zero if you - do not want the object to be associated with a specific group - An approximation of the position at which to rez the prim - Scale vector to size this prim - Rotation quaternion to rotate this prim - Due to the way client prim rezzing is done on the server, - the requested position for an object is only close to where the prim - actually ends up. If you desire exact placement you'll need to - follow up by moving the object after it has been created. This - function will not set textures, light and flexible data, or other - extended primitive properties + The segment from which the instance is checked out. + The instance of T to check back into the segment. - + - Create (rez) a new prim object in a simulator + Checks an instance of T from the pool. If the pool is not sufficient to + allow the checkout, a new segment is created. - A reference to the object to place the object in - Data describing the prim object to rez - Group ID that this prim will be set to, or UUID.Zero if you - do not want the object to be associated with a specific group - An approximation of the position at which to rez the prim - Scale vector to size this prim - Rotation quaternion to rotate this prim - Specify the - Due to the way client prim rezzing is done on the server, - the requested position for an object is only close to where the prim - actually ends up. If you desire exact placement you'll need to - follow up by moving the object after it has been created. This - function will not set textures, light and flexible data, or other - extended primitive properties + A WrappedObject around the instance of T. To check + the instance back into the segment, be sureto dispose the WrappedObject + when finished. - + - Rez a Linden tree + The total number of segments created. Intended to be used by the Unit Tests. - A reference to the object where the object resides - The size of the tree - The rotation of the tree - The position of the tree - The Type of tree - The of the group to set the tree to, - or UUID.Zero if no group is to be set - true to use the "new" Linden trees, false to use the old - + - Rez grass and ground cover + The number of items that are in a segment. Items in a segment + are all allocated at the same time, and are hopefully close to + each other in the managed heap. - A reference to the object where the object resides - The size of the grass - The rotation of the grass - The position of the grass - The type of grass from the enum - The of the group to set the tree to, - or UUID.Zero if no group is to be set - + - Set the textures to apply to the faces of an object + The minimum number of segments. When segments are reclaimed, + this number of segments will always be left alone. These + segments are allocated at startup. - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The texture data to apply - + - Set the textures to apply to the faces of an object + The age a segment must be before it's eligible for cleanup. + This is used to prevent thrash, and typical values are in + the 5 minute range. - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The texture data to apply - A media URL (not used) - + - Set the Light data on an object + The frequence which the cleanup thread runs. This is typically + expected to be in the 5 minute range. - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - A object containing the data to set - + - Set the flexible data on an object + Initialize the object pool in client mode - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - A object containing the data to set + Server to connect to + + - + - Set the sculptie texture and data on an object + Initialize the object pool in server mode - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - A object containing the data to set + + - + - Unset additional primitive parameters on an object + Returns a packet buffer with EndPoint set if the buffer is in + client mode, or with EndPoint set to null in server mode - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The extra parameters to set + Initialized UDPPacketBuffer object - + - Link multiple prims into a linkset + Default constructor - A reference to the object where the objects reside - An array which contains the IDs of the objects to link - The last object in the array will be the root object of the linkset TODO: Is this true? - + - Delink/Unlink multiple prims from a linkset + Check a packet buffer out of the pool - A reference to the object where the objects reside - An array which contains the IDs of the objects to delink + A packet buffer object - + - Change the rotation of an object + Checks the instance back into the object pool - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The new rotation of the object - + - Set the name of an object + Returns an instance of the class that has been checked out of the Object Pool. - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - A string containing the new name of the object - + - Set the name of multiple objects + - A reference to the object where the objects reside - An array which contains the IDs of the objects to change the name of - An array which contains the new names of the objects - + - Set the description of an object + - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - A string containing the new description of the object - + - Set the descriptions of multiple objects + - A reference to the object where the objects reside - An array which contains the IDs of the objects to change the description of - An array which contains the new descriptions of the objects - + - Attach an object to this avatar + - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The point on the avatar the object will be attached - The rotation of the attached object - + - Drop an attached object from this avatar + - A reference to the - object where the objects reside. This will always be the simulator the avatar is currently in - - The object's ID which is local to the simulator the object is in + + - + - Detach an object from yourself + The ObservableDictionary class is used for storing key/value pairs. It has methods for firing + events to subscribers when items are added, removed, or changed. - A reference to the - object where the objects reside - - This will always be the simulator the avatar is currently in - - An array which contains the IDs of the objects to detach + Key + Value - + - Change the position of an object, Will change position of entire linkset + A dictionary of callbacks to fire when specified action occurs - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The new position of the object - + - Change the position of an object + Register a callback to be fired when an action occurs - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The new position of the object - if true, will change position of (this) child prim only, not entire linkset + The action + The callback to fire - + - Change the Scale (size) of an object + Unregister a callback - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The new scale of the object - If true, will change scale of this prim only, not entire linkset - True to resize prims uniformly + The action + The callback to fire - + - Change the Rotation of an object that is either a child or a whole linkset + - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The new scale of the object - If true, will change rotation of this prim only, not entire linkset + + - + + Internal dictionary that this class wraps around. Do not + modify or enumerate the contents of this dictionary without locking + + - Send a Multiple Object Update packet to change the size, scale or rotation of a primitive + Initializes a new instance of the Class + with the specified key/value, has the default initial capacity. - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The new rotation, size, or position of the target object - The flags from the Enum + + + // initialize a new ObservableDictionary named testDict with a string as the key and an int as the value. + public ObservableDictionary<string, int> testDict = new ObservableDictionary<string, int>(); + + - + - Deed an object (prim) to a group, Object must be shared with group which - can be accomplished with SetPermissions() + Initializes a new instance of the Class + with the specified key/value, With its initial capacity specified. - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The of the group to deed the object to + Initial size of dictionary + + + // initialize a new ObservableDictionary named testDict with a string as the key and an int as the value, + // initially allocated room for 10 entries. + public ObservableDictionary<string, int> testDict = new ObservableDictionary<string, int>(10); + + - + - Deed multiple objects (prims) to a group, Objects must be shared with group which - can be accomplished with SetPermissions() + Try to get entry from the with specified key - A reference to the object where the object resides - An array which contains the IDs of the objects to deed - The of the group to deed the object to + Key to use for lookup + Value returned + if specified key exists, if not found + + + // find your avatar using the Simulator.ObjectsAvatars ObservableDictionary: + Avatar av; + if (Client.Network.CurrentSim.ObjectsAvatars.TryGetValue(Client.Self.AgentID, out av)) + Console.WriteLine("Found Avatar {0}", av.Name); + + + - + - Set the permissions on multiple objects + Finds the specified match. - A reference to the object where the objects reside - An array which contains the IDs of the objects to set the permissions on - The new Who mask to set - The new Permissions mark to set - TODO: What does this do? + The match. + Matched value + + + // use a delegate to find a prim in the ObjectsPrimitives ObservableDictionary + // with the ID 95683496 + uint findID = 95683496; + Primitive findPrim = sim.ObjectsPrimitives.Find( + delegate(Primitive prim) { return prim.ID == findID; }); + + - + + Find All items in an + return matching items. + a containing found items. + + Find All prims within 20 meters and store them in a List + + int radius = 20; + List<Primitive> prims = Client.Network.CurrentSim.ObjectsPrimitives.FindAll( + delegate(Primitive prim) { + Vector3 pos = prim.Position; + return ((prim.ParentID == 0) && (pos != Vector3.Zero) && (Vector3.Distance(pos, location) < radius)); + } + ); + + + + + Find All items in an + return matching keys. + a containing found keys. + + Find All keys which also exist in another dictionary + + List<UUID> matches = myDict.FindAll( + delegate(UUID id) { + return myOtherDict.ContainsKey(id); + } + ); + + + + + Check if Key exists in Dictionary + Key to check for + if found, otherwise + + + Check if Value exists in Dictionary + Value to check for + if found, otherwise + + - Request additional properties for an object + Adds the specified key to the dictionary, dictionary locking is not performed, + - A reference to the object where the object resides - + The key + The value - + - Request additional properties for an object + Removes the specified key, dictionary locking is not performed - A reference to the object where the object resides - Absolute UUID of the object - Whether to require server acknowledgement of this request + The key. + if successful, otherwise - + - Set the ownership of a list of objects to the specified group + Clear the contents of the dictionary - A reference to the object where the objects reside - An array which contains the IDs of the objects to set the group id on - The Groups ID - + - Update current URL of the previously set prim media + Enumerator for iterating dictionary entries - UUID of the prim - Set current URL to this - Prim face number - Simulator in which prim is located + - + - Set object media + Gets the number of Key/Value pairs contained in the - UUID of the prim - Array the length of prims number of faces. Null on face indexes where there is - no media, on faces which contain the media - Simulatior in which prim is located - + - Retrieve information about object media + Indexer for the dictionary - UUID of the primitive - Simulator where prim is located - Call this callback when done - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + The key + The value - + - A terse object update, used when a transformation matrix or - velocity/acceleration for an object changes but nothing else - (scale/position/rotation/acceleration/velocity) + Add a custom decoder callback - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + The key of the field to decode + The custom decode handler - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + + Remove a custom decoder callback + + The key of the field to decode + The custom decode handler - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + + Creates a formatted string containing the values of a Packet + + The Packet + A formatted string of values of the nested items in the Packet object - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + + Decode an IMessage object into a beautifully formatted string + + The IMessage object + Recursion level (used for indenting) + A formatted string containing the names and values of the source object - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + + A custom decoder callback + + The key of the object + the data to decode + A string represending the fieldData - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + + Provides helper methods for parallelizing loops + - + - Setup construction data for a basic primitive shape + Executes a for loop in which iterations may run in parallel - Primitive shape to construct - Construction data that can be plugged into a + The loop will be started at this index + The loop will be terminated before this index is reached + Method body to run for each iteration of the loop - + - + Executes a for loop in which iterations may run in parallel - - - - + The number of concurrent execution threads to run + The loop will be started at this index + The loop will be terminated before this index is reached + Method body to run for each iteration of the loop - + - + Executes a foreach loop in which iterations may run in parallel - - + Object type that the collection wraps + An enumerable collection to iterate over + Method body to run for each object in the collection - + - Set the Shape data of an object + Executes a foreach loop in which iterations may run in parallel - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - Data describing the prim shape + Object type that the collection wraps + The number of concurrent execution threads to run + An enumerable collection to iterate over + Method body to run for each object in the collection - + - Set the Material data of an object + Executes a series of tasks in parallel - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The new material of the object + A series of method bodies to execute - + - + Executes a series of tasks in parallel - - - - + The number of concurrent execution threads to run + A series of method bodies to execute - + - + Type of return to use when returning objects from a parcel - - - - - - - Raised when the simulator sends us data containing - A , Foliage or Attachment - - - - - Raised when the simulator sends us data containing - additional information - - - - - Raised when the simulator sends us data containing - Primitive.ObjectProperties for an object we are currently tracking - - - Raised when the simulator sends us data containing - additional and details - - - Raised when the simulator sends us data containing - updated information for an + + - - Raised when the simulator sends us data containing - and movement changes + + Return objects owned by parcel owner - - Raised when the simulator sends us data containing - updates to an Objects DataBlock + + Return objects set to group - - Raised when the simulator informs us an - or is no longer within view + + Return objects not owned by parcel owner or set to group - - Raised when the simulator sends us data containing - updated sit information for our + + Return a specific list of objects on parcel - - Raised when the simulator sends us data containing - purchase price information for a + + Return objects that are marked for-sale - + - Callback for getting object media data via CAP + Blacklist/Whitelist flags used in parcels Access List - Indicates if the operation was succesfull - Object media version string - Array indexed on prim face of media entry data - - Provides data for the event - The event occurs when the simulator sends - an containing a Primitive, Foliage or Attachment data - Note 1: The event will not be raised when the object is an Avatar - Note 2: It is possible for the to be - raised twice for the same object if for example the primitive moved to a new simulator, then returned to the current simulator or - if an Avatar crosses the border into a new simulator and returns to the current simulator - - - The following code example uses the , , and - properties to display new Primitives and Attachments on the window. - - // Subscribe to the event that gives us prim and foliage information - Client.Objects.ObjectUpdate += Objects_ObjectUpdate; - - - private void Objects_ObjectUpdate(object sender, PrimEventArgs e) - { - Console.WriteLine("Primitive {0} {1} in {2} is an attachment {3}", e.Prim.ID, e.Prim.LocalID, e.Simulator.Name, e.IsAttachment); - } - - - - - + + Agent is denied access - + + Agent is granted access + + - Construct a new instance of the PrimEventArgs class + The result of a request for parcel properties - The simulator the object originated from - The Primitive - The simulator time dilation - The prim was not in the dictionary before this update - true if the primitive represents an attachment to an agent - - Get the simulator the originated from + + No matches were found for the request - - Get the details + + Request matched a single parcel - - true if the did not exist in the dictionary before this update (always true if object tracking has been disabled) + + Request matched multiple parcels - - true if the is attached to an + + + Flags used in the ParcelAccessListRequest packet to specify whether + we want the access list (whitelist), ban list (blacklist), or both + - - Get the simulator Time Dilation + + Request the access list - - Provides data for the event - The event occurs when the simulator sends - an containing Avatar data - Note 1: The event will not be raised when the object is an Avatar - Note 2: It is possible for the to be - raised twice for the same avatar if for example the avatar moved to a new simulator, then returned to the current simulator - - - The following code example uses the property to make a request for the top picks - using the method in the class to display the names - of our own agents picks listings on the window. - - // subscribe to the AvatarUpdate event to get our information - Client.Objects.AvatarUpdate += Objects_AvatarUpdate; - Client.Avatars.AvatarPicksReply += Avatars_AvatarPicksReply; - - private void Objects_AvatarUpdate(object sender, AvatarUpdateEventArgs e) - { - // we only want our own data - if (e.Avatar.LocalID == Client.Self.LocalID) - { - // Unsubscribe from the avatar update event to prevent a loop - // where we continually request the picks every time we get an update for ourselves - Client.Objects.AvatarUpdate -= Objects_AvatarUpdate; - // make the top picks request through AvatarManager - Client.Avatars.RequestAvatarPicks(e.Avatar.ID); - } - } - - private void Avatars_AvatarPicksReply(object sender, AvatarPicksReplyEventArgs e) - { - // we'll unsubscribe from the AvatarPicksReply event since we now have the data - // we were looking for - Client.Avatars.AvatarPicksReply -= Avatars_AvatarPicksReply; - // loop through the dictionary and extract the names of the top picks from our profile - foreach (var pickName in e.Picks.Values) - { - Console.WriteLine(pickName); - } - } - - - - + + Request the ban list - + + Request both White and Black lists + + - Construct a new instance of the AvatarUpdateEventArgs class + Sequence ID in ParcelPropertiesReply packets (sent when avatar + tries to cross a parcel border) - The simulator the packet originated from - The data - The simulator time dilation - The avatar was not in the dictionary before this update - - Get the simulator the object originated from + + Parcel is currently selected - - Get the data + + Parcel restricted to a group the avatar is not a + member of - - Get the simulator time dilation + + Avatar is banned from the parcel - - true if the did not exist in the dictionary before this update (always true if avatar tracking has been disabled) + + Parcel is restricted to an access list that the + avatar is not on - - Provides additional primitive data for the event - The event occurs when the simulator sends - an containing additional details for a Primitive, Foliage data or Attachment data - The event is also raised when a request is - made. - - - The following code example uses the , and - - properties to display new attachments and send a request for additional properties containing the name of the - attachment then display it on the window. - - // Subscribe to the event that provides additional primitive details - Client.Objects.ObjectProperties += Objects_ObjectProperties; - - // handle the properties data that arrives - private void Objects_ObjectProperties(object sender, ObjectPropertiesEventArgs e) - { - Console.WriteLine("Primitive Properties: {0} Name is {1}", e.Properties.ObjectID, e.Properties.Name); - } - - + + Response to hovering over a parcel - + - Construct a new instance of the ObjectPropertiesEventArgs class + The tool to use when modifying terrain levels - The simulator the object is located - The primitive Properties - - Get the simulator the object is located - - - Get the primitive properties + + Level the terrain - - Provides additional primitive data for the event - The event occurs when the simulator sends - an containing additional details for a Primitive or Foliage data that is currently - being tracked in the dictionary - The event is also raised when a request is - made and is enabled - + + Raise the terrain - - - Construct a new instance of the ObjectPropertiesUpdatedEvenrArgs class - - The simulator the object is located - The Primitive - The primitive Properties + + Lower the terrain - - Get the simulator the object is located + + Smooth the terrain - - Get the primitive details + + Add random noise to the terrain - - Get the primitive properties + + Revert terrain to simulator default - - Provides additional primitive data, permissions and sale info for the event - The event occurs when the simulator sends - an containing additional details for a Primitive, Foliage data or Attachment. This includes - Permissions, Sale info, and other basic details on an object - The event is also raised when a request is - made, the viewer equivalent is hovering the mouse cursor over an object - + + + The tool size to use when changing terrain levels + - - Get the simulator the object is located + + Small - - + + Medium - - + + Large - - Provides primitive data containing updated location, velocity, rotation, textures for the event - The event occurs when the simulator sends updated location, velocity, rotation, etc - + + + Reasons agent is denied access to a parcel on the simulator + - - Get the simulator the object is located + + Agent is not denied, access is granted - - Get the primitive details + + Agent is not a member of the group set for the parcel, or which owns the parcel - - + + Agent is not on the parcels specific allow list - - + + Agent is on the parcels ban list - + + Unknown + + + Agent is not age verified and parcel settings deny access to non age verified avatars + + - + Parcel overlay type. This is used primarily for highlighting and + coloring which is why it is a single integer instead of a set of + flags + These values seem to be poorly thought out. The first three + bits represent a single value, not flags. For example Auction (0x05) is + not a combination of OwnedByOther (0x01) and ForSale(0x04). However, + the BorderWest and BorderSouth values are bit flags that get attached + to the value stored in the first three bits. Bits four, five, and six + are unused - - Get the simulator the object is located + + Public land - - Get the primitive details + + Land is owned by another avatar - - + + Land is owned by a group - - + + Land is owned by the current avatar - - + + Land is for sale - - + + Land is being auctioned - - Provides notification when an Avatar, Object or Attachment is DeRezzed or moves out of the avatars view for the - event + + Land is private - - Get the simulator the object is located + + To the west of this area is a parcel border - - The LocalID of the object + + To the south of this area is a parcel border - + - Provides updates sit position data + Various parcel properties - - Get the simulator the object is located + + No flags set - - + + Allow avatars to fly (a client-side only restriction) - - + + Allow foreign scripts to run - - + + This parcel is for sale - - - - + + Allow avatars to create a landmark on this parcel - - Get the simulator the object is located + + Allows all avatars to edit the terrain on this parcel - - + + Avatars have health and can take damage on this parcel. + If set, avatars can be killed and sent home here - - + + Foreign avatars can create objects here - - + + All objects on this parcel can be purchased - - - Indicates if the operation was successful - + + Access is restricted to a group - - - Media version string - + + Access is restricted to a whitelist - - - Array of media entries indexed by face number - + + Ban blacklist is enabled - - - - + + Unknown - - - - - + + List this parcel in the search directory - - - De-serialization constructor for the InventoryNode Class - + + Allow personally owned parcels to be deeded to group - - - Serialization handler for the InventoryNode Class - + + If Deeded, owner contributes required tier to group parcel is deeded to - - - De-serialization handler for the InventoryNode Class - + + Restrict sounds originating on this parcel to the + parcel boundaries - - - - - + + Objects on this parcel are sold when the land is + purchsaed - - + + Allow this parcel to be published on the web - - + + The information for this parcel is mature content - - + + The media URL is an HTML page - - + + The media URL is a raw HTML string - - - For inventory folder nodes specifies weather the folder needs to be - refreshed from the server - + + Restrict foreign object pushes - - - - + + Ban all non identified/transacted avatars - - The avatar has no rights + + Allow group-owned scripts to run - - The avatar can see the online status of the target avatar + + Allow object creation by group members or group + objects - - The avatar can see the location of the target avatar on the map + + Allow all objects to enter this parcel - - The avatar can modify the ojects of the target avatar + + Only allow group and owner objects to enter this parcel - - - This class holds information about an avatar in the friends list. There are two ways - to interface to this class. The first is through the set of boolean properties. This is the typical - way clients of this class will use it. The second interface is through two bitflag properties, - TheirFriendsRights and MyFriendsRights - + + Voice Enabled on this parcel - - - Used internally when building the initial list of friends at login time - - System ID of the avatar being prepesented - Rights the friend has to see you online and to modify your objects - Rights you have to see your friend online and to modify their objects + + Use Estate Voice channel for Voice on this parcel - - - FriendInfo represented as a string - - A string reprentation of both my rights and my friends rights + + Deny Age Unverified Users - + - System ID of the avatar + Parcel ownership status - - - full name of the avatar - + + Placeholder - - - True if the avatar is online - + + Parcel is leased (owned) by an avatar or group - - - True if the friend can see if I am online - + + Parcel is in process of being leased (purchased) by an avatar or group - - - True if the friend can see me on the map - + + Parcel has been abandoned back to Governor Linden - + - True if the freind can modify my objects + Category parcel is listed in under search - - - True if I can see if my friend is online - + + No assigned category - - - True if I can see if my friend is on the map - + + Linden Infohub or public area - - - True if I can modify my friend's objects - + + Adult themed area - - - My friend's rights represented as bitmapped flags - + + Arts and Culture - - - My rights represented as bitmapped flags - + + Business - - - This class is used to add and remove avatars from your friends list and to manage their permission. - + + Educational - - The event subscribers. null if no subcribers + + Gaming - - Raises the FriendOnline event - A FriendInfoEventArgs object containing the - data returned from the data server + + Hangout or Club - - Thread sync lock object + + Newcomer friendly - - The event subscribers. null if no subcribers + + Parks and Nature - - Raises the FriendOffline event - A FriendInfoEventArgs object containing the - data returned from the data server + + Residential - - Thread sync lock object + + Shopping - - The event subscribers. null if no subcribers + + Not Used? - - Raises the FriendRightsUpdate event - A FriendInfoEventArgs object containing the - data returned from the data server + + Other - - Thread sync lock object + + Not an actual category, only used for queries - - The event subscribers. null if no subcribers + + + Type of teleport landing for a parcel + - - Raises the FriendNames event - A FriendNamesEventArgs object containing the - data returned from the data server + + Unset, simulator default - - Thread sync lock object + + Specific landing point set for this parcel - - The event subscribers. null if no subcribers + + No landing point set, direct teleports enabled for + this parcel - - Raises the FriendshipOffered event - A FriendshipOfferedEventArgs object containing the - data returned from the data server + + + Parcel Media Command used in ParcelMediaCommandMessage + - - Thread sync lock object + + Stop the media stream and go back to the first frame - - The event subscribers. null if no subcribers + + Pause the media stream (stop playing but stay on current frame) - - Raises the FriendshipResponse event - A FriendshipResponseEventArgs object containing the - data returned from the data server + + Start the current media stream playing and stop when the end is reached - - Thread sync lock object + + Start the current media stream playing, + loop to the beginning when the end is reached and continue to play - - The event subscribers. null if no subcribers + + Specifies the texture to replace with video + If passing the key of a texture, it must be explicitly typecast as a key, + not just passed within double quotes. - - Raises the FriendshipTerminated event - A FriendshipTerminatedEventArgs object containing the - data returned from the data server + + Specifies the movie URL (254 characters max) - - Thread sync lock object + + Specifies the time index at which to begin playing - - The event subscribers. null if no subcribers + + Specifies a single agent to apply the media command to - - Raises the FriendFoundReply event - A FriendFoundReplyEventArgs object containing the - data returned from the data server + + Unloads the stream. While the stop command sets the texture to the first frame of the movie, + unload resets it to the real texture that the movie was replacing. - - Thread sync lock object + + Turn on/off the auto align feature, similar to the auto align checkbox in the parcel media properties + (NOT to be confused with the "align" function in the textures view of the editor!) Takes TRUE or FALSE as parameter. - - - A dictionary of key/value pairs containing known friends of this avatar. - - The Key is the of the friend, the value is a - object that contains detailed information including permissions you have and have given to the friend - + + Allows a Web page or image to be placed on a prim (1.19.1 RC0 and later only). + Use "text/html" for HTML. - - - A Dictionary of key/value pairs containing current pending frienship offers. - - The key is the of the avatar making the request, - the value is the of the request which is used to accept - or decline the friendship offer - + + Resizes a Web page to fit on x, y pixels (1.19.1 RC0 and later only). + This might still not be working - + + Sets a description for the media being displayed (1.19.1 RC0 and later only). + + - Internal constructor + Some information about a parcel of land returned from a DirectoryManager search - A reference to the GridClient Object - - - Accept a friendship request - - agentID of avatatar to form friendship with - imSessionID of the friendship request message + + Global Key of record - - - Decline a friendship request - - of friend - imSessionID of the friendship request message + + Parcel Owners - - - Overload: Offer friendship to an avatar. - - System ID of the avatar you are offering friendship to + + Name field of parcel, limited to 128 characters - - - Offer friendship to an avatar. - - System ID of the avatar you are offering friendship to - A message to send with the request + + Description field of parcel, limited to 256 characters - - - Terminate a friendship with an avatar - - System ID of the avatar you are terminating the friendship with + + Total Square meters of parcel - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Total area billable as Tier, for group owned land this will be 10% less than ActualArea - - - Change the rights of a friend avatar. - - the of the friend - the new rights to give the friend - This method will implicitly set the rights to those passed in the rights parameter. + + True of parcel is in Mature simulator - - - Use to map a friends location on the grid. - - Friends UUID to find - + + Grid global X position of parcel - - - Use to track a friends movement on the grid - - Friends Key + + Grid global Y position of parcel - - - Ask for a notification of friend's online status - - Friend's UUID + + Grid global Z position of parcel (not used) - - - This handles the asynchronous response of a RequestAvatarNames call. - - - names cooresponding to the the list of IDs sent the the RequestAvatarNames call. + + Name of simulator parcel is located in - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Texture of parcels display picture - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Float representing calculated traffic based on time spent on parcel by avatars - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Sale price of parcel (not used) - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Auction ID of parcel - + - Populate FriendList with data from the login reply + Parcel Media Information - true if login was successful - true if login request is requiring a redirect - A string containing the response to the login request - A string containing the reason for the request - A object containing the decoded - reply from the login server - - Raised when the simulator sends notification one of the members in our friends list comes online - - - Raised when the simulator sends notification one of the members in our friends list goes offline + + A byte, if 0x1 viewer should auto scale media to fit object - - Raised when the simulator sends notification one of the members in our friends list grants or revokes permissions + + A boolean, if true the viewer should loop the media - - Raised when the simulator sends us the names on our friends list + + The Asset UUID of the Texture which when applied to a + primitive will display the media - - Raised when the simulator sends notification another agent is offering us friendship + + A URL which points to any Quicktime supported media type - - Raised when a request we sent to friend another agent is accepted or declined + + A description of the media - - Raised when the simulator sends notification one of the members in our friends list has terminated - our friendship + + An Integer which represents the height of the media - - Raised when the simulator sends the location of a friend we have - requested map location info for + + An integer which represents the width of the media - - Contains information on a member of our friends list + + A string which contains the mime type of the media - + - Construct a new instance of the FriendInfoEventArgs class + Parcel of land, a portion of virtual real estate in a simulator - The FriendInfo - - Get the FriendInfo + + The total number of contiguous 4x4 meter blocks your agent owns within this parcel - - Contains Friend Names + + The total number of contiguous 4x4 meter blocks contained in this parcel owned by a group or agent other than your own - - - Construct a new instance of the FriendNamesEventArgs class - - A dictionary where the Key is the ID of the Agent, - and the Value is a string containing their name + + Deprecated, Value appears to always be 0 - - A dictionary where the Key is the ID of the Agent, - and the Value is a string containing their name + + Simulator-local ID of this parcel - - Sent when another agent requests a friendship with our agent + + UUID of the owner of this parcel - - - Construct a new instance of the FriendshipOfferedEventArgs class - - The ID of the agent requesting friendship - The name of the agent requesting friendship - The ID of the session, used in accepting or declining the - friendship offer + + Whether the land is deeded to a group or not - - Get the ID of the agent requesting friendship + + - - Get the name of the agent requesting friendship + + Date land was claimed - - Get the ID of the session, used in accepting or declining the - friendship offer + + Appears to always be zero - - A response containing the results of our request to form a friendship with another agent + + This field is no longer used - - - Construct a new instance of the FriendShipResponseEventArgs class - - The ID of the agent we requested a friendship with - The name of the agent we requested a friendship with - true if the agent accepted our friendship offer + + Minimum corner of the axis-aligned bounding box for this + parcel - - Get the ID of the agent we requested a friendship with + + Maximum corner of the axis-aligned bounding box for this + parcel - - Get the name of the agent we requested a friendship with + + Bitmap describing land layout in 4x4m squares across the + entire region - - true if the agent accepted our friendship offer + + Total parcel land area - - Contains data sent when a friend terminates a friendship with us + + - - - Construct a new instance of the FrindshipTerminatedEventArgs class - - The ID of the friend who terminated the friendship with us - The name of the friend who terminated the friendship with us + + Maximum primitives across the entire simulator owned by the same agent or group that owns this parcel that can be used - - Get the ID of the agent that terminated the friendship with us + + Total primitives across the entire simulator calculated by combining the allowed prim counts for each parcel + owned by the agent or group that owns this parcel - - Get the name of the agent that terminated the friendship with us + + Maximum number of primitives this parcel supports - - - Data sent in response to a request which contains the information to allow us to map the friends location - + + Total number of primitives on this parcel - - - Construct a new instance of the FriendFoundReplyEventArgs class - - The ID of the agent we have requested location information for - The region handle where our friend is located - The simulator local position our friend is located + + For group-owned parcels this indicates the total number of prims deeded to the group, + for parcels owned by an individual this inicates the number of prims owned by the individual - - Get the ID of the agent we have received location information for + + Total number of primitives owned by the parcel group on + this parcel, or for parcels owned by an individual with a group set the + total number of prims set to that group. - - Get the region handle where our mapped friend is located + + Total number of prims owned by other avatars that are not set to group, or not the parcel owner - - Get the simulator local position where our friend is located + + A bonus multiplier which allows parcel prim counts to go over times this amount, this does not affect + the max prims per simulator. e.g: 117 prim parcel limit x 1.5 bonus = 175 allowed - - - Reads in a byte array of an Animation Asset created by the SecondLife(tm) client. - + + Autoreturn value in minutes for others' objects - - - Rotation Keyframe count (used internally) - + + - - - Position Keyframe count (used internally) - + + Sale price of the parcel, only useful if ForSale is set + The SalePrice will remain the same after an ownership + transfer (sale), so it can be used to see the purchase price after + a sale if the new owner has not changed it - - - Animation Priority - + + Parcel Name - - - The animation length in seconds. - + + Parcel Description - - - Expression set in the client. Null if [None] is selected - + + URL For Music Stream - - - The time in seconds to start the animation - + + - - - The time in seconds to end the animation - + + Price for a temporary pass - - - Loop the animation - + + How long is pass valid for - - - Meta data. Ease in Seconds. - + + - - - Meta data. Ease out seconds. - + + Key of authorized buyer - - - Meta Data for the Hand Pose - + + Key of parcel snapshot - - - Number of joints defined in the animation - + + The landing point location - - - Contains an array of joints - + + The landing point LookAt - - - Searialize an animation asset into it's joints/keyframes/meta data - - + + The type of landing enforced from the enum - - - Variable length strings seem to be null terminated in the animation asset.. but.. - use with caution, home grown. - advances the index. - - The animation asset byte array - The offset to start reading - a string + + - - - Read in a Joint from an animation asset byte array - Variable length Joint fields, yay! - Advances the index - - animation asset byte array - Byte Offset of the start of the joint - The Joint data serialized into the binBVHJoint structure + + - - - Read Keyframes of a certain type - advance i - - Animation Byte array - Offset in the Byte Array. Will be advanced - Number of Keyframes - Scaling Min to pass to the Uint16ToFloat method - Scaling Max to pass to the Uint16ToFloat method - + + - - - A Joint and it's associated meta data and keyframes - + + Access list of who is whitelisted on this + parcel - - - Name of the Joint. Matches the avatar_skeleton.xml in client distros - + + Access list of who is blacklisted on this + parcel - - - Joint Animation Override? Was the same as the Priority in testing.. - + + TRUE of region denies access to age unverified users - - - Array of Rotation Keyframes in order from earliest to latest - + + true to obscure (hide) media url - + + true to obscure (hide) music url + + + A struct containing media details + + - Array of Position Keyframes in order from earliest to latest - This seems to only be for the Pelvis? + Displays a parcel object in string format + string containing key=value pairs of a parcel object - + - A Joint Keyframe. This is either a position or a rotation. + Defalt constructor + Local ID of this parcel - + - Either a Vector3 position or a Vector3 Euler rotation + Update the simulator with any local changes to this Parcel object + Simulator to send updates to + Whether we want the simulator to confirm + the update with a reply packet or not - + - Poses set in the animation metadata for the hands. + Set Autoreturn time + Simulator to send the update to - + - The type of bump-mapping applied to a face + Parcel (subdivided simulator lots) subsystem - - - - - + + The event subscribers. null if no subcribers - - + + Raises the ParcelDwellReply event + A ParcelDwellReplyEventArgs object containing the + data returned from the simulator - - + + Thread sync lock object - - + + The event subscribers. null if no subcribers - - + + Raises the ParcelInfoReply event + A ParcelInfoReplyEventArgs object containing the + data returned from the simulator - - + + Thread sync lock object - - + + The event subscribers. null if no subcribers - - + + Raises the ParcelProperties event + A ParcelPropertiesEventArgs object containing the + data returned from the simulator - - + + Thread sync lock object - - + + The event subscribers. null if no subcribers - - + + Raises the ParcelAccessListReply event + A ParcelAccessListReplyEventArgs object containing the + data returned from the simulator - - + + Thread sync lock object - - + + The event subscribers. null if no subcribers - - + + Raises the ParcelObjectOwnersReply event + A ParcelObjectOwnersReplyEventArgs object containing the + data returned from the simulator - - + + Thread sync lock object - - + + The event subscribers. null if no subcribers - - + + Raises the SimParcelsDownloaded event + A SimParcelsDownloadedEventArgs object containing the + data returned from the simulator - - - The level of shininess applied to a face - + + Thread sync lock object - - + + The event subscribers. null if no subcribers - - + + Raises the ForceSelectObjectsReply event + A ForceSelectObjectsReplyEventArgs object containing the + data returned from the simulator - - + + Thread sync lock object - - + + The event subscribers. null if no subcribers - - - The texture mapping style used for a face - + + Raises the ParcelMediaUpdateReply event + A ParcelMediaUpdateReplyEventArgs object containing the + data returned from the simulator - - + + Thread sync lock object - - + + The event subscribers. null if no subcribers - - + + Raises the ParcelMediaCommand event + A ParcelMediaCommandEventArgs object containing the + data returned from the simulator - - + + Thread sync lock object - + - Flags in the TextureEntry block that describe which properties are - set + Default constructor + A reference to the GridClient object - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - Represents an AssetScriptBinary object containing the - LSO compiled bytecode of an LSL script + Request basic information for a single parcel + Simulator-local ID of the parcel - - Initializes a new instance of an AssetScriptBinary object - - - Initializes a new instance of an AssetScriptBinary object with parameters - A unique specific to this asset - A byte array containing the raw asset data - - + - TODO: Encodes a scripts contents into a LSO Bytecode file + Request properties of a single parcel + Simulator containing the parcel + Simulator-local ID of the parcel + An arbitrary integer that will be returned + with the ParcelProperties reply, useful for distinguishing between + multiple simultaneous requests - + - TODO: Decode LSO Bytecode into a string + Request the access list for a single parcel - true + Simulator containing the parcel + Simulator-local ID of the parcel + An arbitrary integer that will be returned + with the ParcelAccessList reply, useful for distinguishing between + multiple simultaneous requests + - - Override the base classes AssetType + + + Request properties of parcels using a bounding box selection + + Simulator containing the parcel + Northern boundary of the parcel selection + Eastern boundary of the parcel selection + Southern boundary of the parcel selection + Western boundary of the parcel selection + An arbitrary integer that will be returned + with the ParcelProperties reply, useful for distinguishing between + different types of parcel property requests + A boolean that is returned with the + ParcelProperties reply, useful for snapping focus to a single + parcel - + - Temporary code to produce a tar archive in tar v7 format + Request all simulator parcel properties (used for populating the Simulator.Parcels + dictionary) + Simulator to request parcels from (must be connected) - + - Binary writer for the underlying stream + Request all simulator parcel properties (used for populating the Simulator.Parcels + dictionary) + Simulator to request parcels from (must be connected) + If TRUE, will force a full refresh + Number of milliseconds to pause in between each request - + - Write a directory entry to the tar archive. We can only handle one path level right now! + Request the dwell value for a parcel - + Simulator containing the parcel + Simulator-local ID of the parcel - + - Write a file to the tar archive + Send a request to Purchase a parcel of land - - + The Simulator the parcel is located in + The parcels region specific local ID + true if this parcel is being purchased by a group + The groups + true to remove tier contribution if purchase is successful + The parcels size + The purchase price of the parcel + - + - Write a file to the tar archive + Reclaim a parcel of land - - + The simulator the parcel is in + The parcels region specific local ID - + - Finish writing the raw tar archive data to a stream. The stream will be closed on completion. + Deed a parcel to a group + The simulator the parcel is in + The parcels region specific local ID + The groups - + - Write a particular entry + Request prim owners of a parcel of land. - - - + Simulator parcel is in + The parcels region specific local ID - + - + Return objects from a parcel + Simulator parcel is in + The parcels region specific local ID + the type of objects to return, + A list containing object owners s to return - - - - - + + + Subdivide (split) a parcel + + + + + + - - + + + Join two parcels of land creating a single parcel + + + + + + - + - Thrown when a packet could not be successfully deserialized + Get a parcels LocalID + Simulator parcel is in + Vector3 position in simulator (Z not used) + 0 on failure, or parcel LocalID on success. + A call to Parcels.RequestAllSimParcels is required to populate map and + dictionary. - + - Default constructor + Terraform (raise, lower, etc) an area or whole parcel of land + Simulator land area is in. + LocalID of parcel, or -1 if using bounding box + From Enum, Raise, Lower, Level, Smooth, Etc. + Size of area to modify + true on successful request sent. + Settings.STORE_LAND_PATCHES must be true, + Parcel information must be downloaded using RequestAllSimParcels() - + - Constructor that takes an additional error message + Terraform (raise, lower, etc) an area or whole parcel of land - An error message to attach to this exception + Simulator land area is in. + west border of area to modify + south border of area to modify + east border of area to modify + north border of area to modify + From Enum, Raise, Lower, Level, Smooth, Etc. + Size of area to modify + true on successful request sent. + Settings.STORE_LAND_PATCHES must be true, + Parcel information must be downloaded using RequestAllSimParcels() - + - The header of a message template packet. Holds packet flags, sequence - number, packet ID, and any ACKs that will be appended at the end of - the packet + Terraform (raise, lower, etc) an area or whole parcel of land + Simulator land area is in. + LocalID of parcel, or -1 if using bounding box + west border of area to modify + south border of area to modify + east border of area to modify + north border of area to modify + From Enum, Raise, Lower, Level, Smooth, Etc. + Size of area to modify + How many meters + or - to lower, 1 = 1 meter + true on successful request sent. + Settings.STORE_LAND_PATCHES must be true, + Parcel information must be downloaded using RequestAllSimParcels() - + - Convert the AckList to a byte array, used for packet serializing + Terraform (raise, lower, etc) an area or whole parcel of land - Reference to the target byte array - Beginning position to start writing to in the byte - array, will be updated with the ending position of the ACK list + Simulator land area is in. + LocalID of parcel, or -1 if using bounding box + west border of area to modify + south border of area to modify + east border of area to modify + north border of area to modify + From Enum, Raise, Lower, Level, Smooth, Etc. + Size of area to modify + How many meters + or - to lower, 1 = 1 meter + Height at which the terraform operation is acting at - + - + Sends a request to the simulator to return a list of objects owned by specific owners - - - - + Simulator local ID of parcel + Owners, Others, Etc + List containing keys of avatars objects to select; + if List is null will return Objects of type selectType + Response data is returned in the event - + - + Eject and optionally ban a user from a parcel - - - + target key of avatar to eject + true to also ban target - + - A block of data in a packet. Packets are composed of one or more blocks, - each block containing one or more fields + Freeze or unfreeze an avatar over your land + target key to freeze + true to freeze, false to unfreeze - + - Create a block from a byte array + Abandon a parcel of land - Byte array containing the serialized block - Starting position of the block in the byte array. - This will point to the data after the end of the block when the - call returns + Simulator parcel is in + Simulator local ID of parcel - + - Serialize this block into a byte array + Requests the UUID of the parcel in a remote region at a specified location - Byte array to serialize this block into - Starting position in the byte array to serialize to. - This will point to the position directly after the end of the - serialized block when the call returns + Location of the parcel in the remote region + Remote region handle + Remote region UUID + If successful UUID of the remote parcel, UUID.Zero otherwise - - Current length of the data in this packet + + + Retrieves information on resources used by the parcel + + UUID of the parcel + Should per object resource usage be requested + Callback invoked when the request is complete - - A generic value, not an actual packet type + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + Raises the event - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + Raises the event - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + Raises the event - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + Raises the event - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + Raises the event - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + Raises the event - - + + Raised when the simulator responds to a request - - + + Raised when the simulator responds to a request - - + + Raised when the simulator responds to a request - - + + Raised when the simulator responds to a request - - + + Raised when the simulator responds to a request - - + + Raised when the simulator responds to a request - - + + Raised when the simulator responds to a request - - + + Raised when the simulator responds to a Parcel Update request - - + + Raised when the parcel your agent is located sends a ParcelMediaCommand - - + + + Parcel Accesslist + - - + + Agents - - + + - - + + Flags for specific entry in white/black lists - - + + + Owners of primitives on parcel + - - + + Prim Owners - - + + True of owner is group - - + + Total count of prims owned by OwnerID - - + + true of OwnerID is currently online and is not a group - - + + The date of the most recent prim left by OwnerID - - + + + Called once parcel resource usage information has been collected + + Indicates if operation was successfull + Parcel resource usage information - - + + Contains a parcels dwell data returned from the simulator in response to an - - + + + Construct a new instance of the ParcelDwellReplyEventArgs class + + The global ID of the parcel + The simulator specific ID of the parcel + The calculated dwell for the parcel - - + + Get the global ID of the parcel - - + + Get the simulator specific ID of the parcel - - + + Get the calculated dwell - - + + Contains basic parcel information data returned from the + simulator in response to an request - - + + + Construct a new instance of the ParcelInfoReplyEventArgs class + + The object containing basic parcel info - - + + Get the object containing basic parcel info - - + + Contains basic parcel information data returned from the simulator in response to an request - - + + + Construct a new instance of the ParcelPropertiesEventArgs class + + The object containing the details + The object containing the details + The result of the request + The number of primitieves your agent is + currently selecting and or sitting on in this parcel + The user assigned ID used to correlate a request with + these results + TODO: - - + + Get the simulator the parcel is located in - - + + Get the object containing the details + If Result is NoData, this object will not contain valid data - - + + Get the result of the request - - + + Get the number of primitieves your agent is + currently selecting and or sitting on in this parcel - - + + Get the user assigned ID used to correlate a request with + these results - - + + TODO: - - + + Contains blacklist and whitelist data returned from the simulator in response to an request - - + + + Construct a new instance of the ParcelAccessListReplyEventArgs class + + The simulator the parcel is located in + The user assigned ID used to correlate a request with + these results + The simulator specific ID of the parcel + TODO: + The list containing the white/blacklisted agents for the parcel - - + + Get the simulator the parcel is located in - - + + Get the user assigned ID used to correlate a request with + these results - - + + Get the simulator specific ID of the parcel - - + + TODO: - - + + Get the list containing the white/blacklisted agents for the parcel - - + + Contains blacklist and whitelist data returned from the + simulator in response to an request - - + + + Construct a new instance of the ParcelObjectOwnersReplyEventArgs class + + The simulator the parcel is located in + The list containing prim ownership counts - - + + Get the simulator the parcel is located in - - + + Get the list containing prim ownership counts - - + + Contains the data returned when all parcel data has been retrieved from a simulator - - + + + Construct a new instance of the SimParcelsDownloadedEventArgs class + + The simulator the parcel data was retrieved from + The dictionary containing the parcel data + The multidimensional array containing a x,y grid mapped + to each 64x64 parcel's LocalID. - - + + Get the simulator the parcel data was retrieved from - - + + A dictionary containing the parcel data where the key correlates to the ParcelMap entry - - + + Get the multidimensional array containing a x,y grid mapped + to each 64x64 parcel's LocalID. - - + + Contains the data returned when a request - - + + + Construct a new instance of the ForceSelectObjectsReplyEventArgs class + + The simulator the parcel data was retrieved from + The list of primitive IDs + true if the list is clean and contains the information + only for a given request - - + + Get the simulator the parcel data was retrieved from - - + + Get the list of primitive IDs - - + + true if the list is clean and contains the information + only for a given request - - + + Contains data when the media data for a parcel the avatar is on changes - - + + + Construct a new instance of the ParcelMediaUpdateReplyEventArgs class + + the simulator the parcel media data was updated in + The updated media information - - + + Get the simulator the parcel media data was updated in - - + + Get the updated media information - - + + Contains the media command for a parcel the agent is currently on - - - - - + + + Construct a new instance of the ParcelMediaCommandEventArgs class + + The simulator the parcel media command was issued in + + + The media command that was sent + - - + + Get the simulator the parcel media command was issued in - - + + - - + + - - + + Get the media command that was sent - - + + - - + + + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + + + + + - - + + + + - - + + - - + + - - + + - - + + - - + + + + + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + - - + + + + + + - - + + + + + + - - + + + + + + + - - + + + + - - + + + + + + - - + + + + + + - - + + + + + - - + + + Class for controlling various system settings. + + Some values are readonly because they affect things that + happen when the GridClient object is initialized, so changing them at + runtime won't do any good. Non-readonly values may affect things that + happen at login or dynamically - - + + Main grid login server - - + + Beta grid login server - - + + + InventoryManager requests inventory information on login, + GridClient initializes an Inventory store for main inventory. + - - + + + InventoryManager requests library information on login, + GridClient initializes an Inventory store for the library. + - - + + Number of milliseconds between sending pings to each sim - - + + Number of milliseconds between sending camera updates - - + + Number of milliseconds between updating the current + positions of moving, non-accelerating and non-colliding objects - - + + Millisecond interval between ticks, where all ACKs are + sent out and the age of unACKed packets is checked - - + + The initial size of the packet inbox, where packets are + stored before processing - - + + Maximum size of packet that we want to send over the wire - - + + The maximum value of a packet sequence number before it + rolls over back to one - - + + The relative directory where external resources are kept - - + + Login server to connect to - - + + IP Address the client will bind to - - + + Use XML-RPC Login or LLSD Login, default is XML-RPC Login - - + + + Maximum number of HTTP connections to open to a particular endpoint. + + + An endpoint is defined as a commbination of network address and port. This is used for Caps. + This is a static variable which applies to all instances. + - - + + + Use Caps for fetching inventory where available + - - + + Number of milliseconds before an asset transfer will time + out - - + + Number of milliseconds before a teleport attempt will time + out - - + + Number of milliseconds before NetworkManager.Logout() will + time out - - + + Number of milliseconds before a CAPS call will time out + Setting this too low will cause web requests time out and + possibly retry repeatedly - - + + Number of milliseconds for xml-rpc to timeout - - + + Milliseconds before a packet is assumed lost and resent - - + + Milliseconds without receiving a packet before the + connection to a simulator is assumed lost - - + + Milliseconds to wait for a simulator info request through + the grid interface - - + + The maximum size of the sequence number archive, used to + check for resent and/or duplicate packets - - + + Maximum number of queued ACKs to be sent before SendAcks() + is forced - - + + Network stats queue length (seconds) - - + + + Primitives will be reused when falling in/out of interest list (and shared between clients) + prims returning to interest list do not need re-requested + Helps also in not re-requesting prim.Properties for code that checks for a Properties == null per client + - - + + + Pool parcel data between clients (saves on requesting multiple times when all clients may need it) + - - + + + How long to preserve cached data when no client is connected to a simulator + The reason for setting it to something like 2 minutes is in case a client + is running back and forth between region edges or a sim is comming and going + - - + + Enable/disable storing terrain heightmaps in the + TerrainManager - - + + Enable/disable sending periodic camera updates - - + + Enable/disable automatically setting agent appearance at + login and after sim crossing - - + + Enable/disable automatically setting the bandwidth throttle + after connecting to each simulator + The default throttle uses the equivalent of the maximum + bandwidth setting in the official client. If you do not set a + throttle your connection will by default be throttled well below + the minimum values and you may experience connection problems - - + + Enable/disable the sending of pings to monitor lag and + packet loss - - + + Should we connect to multiple sims? This will allow + viewing in to neighboring simulators and sim crossings + (Experimental) - - + + If true, all object update packets will be decoded in to + native objects. If false, only updates for our own agent will be + decoded. Registering an event handler will force objects for that + type to always be decoded. If this is disabled the object tracking + will have missing or partial prim and avatar information - - + + If true, when a cached object check is received from the + server the full object info will automatically be requested - - + + Whether to establish connections to HTTP capabilities + servers for simulators - - + + Whether to decode sim stats - - + + The capabilities servers are currently designed to + periodically return a 502 error which signals for the client to + re-establish a connection. Set this to true to log those 502 errors - - + + If true, any reference received for a folder or item + the library is not aware of will automatically be fetched - - + + If true, and SEND_AGENT_UPDATES is true, + AgentUpdate packets will continuously be sent out to give the bot + smoother movement and autopiloting - - + + If true, currently visible avatars will be stored + in dictionaries inside Simulator.ObjectAvatars. + If false, a new Avatar or Primitive object will be created + each time an object update packet is received - - + + If true, currently visible avatars will be stored + in dictionaries inside Simulator.ObjectPrimitives. + If false, a new Avatar or Primitive object will be created + each time an object update packet is received - - + + If true, position and velocity will periodically be + interpolated (extrapolated, technically) for objects and + avatars that are being tracked by the library. This is + necessary to increase the accuracy of speed and position + estimates for simulated objects - - + + + If true, utilization statistics will be tracked. There is a minor penalty + in CPU time for enabling this option. + - - + + If true, parcel details will be stored in the + Simulator.Parcels dictionary as they are received - - + + + If true, an incoming parcel properties reply will automatically send + a request for the parcel access list + - - + + + if true, an incoming parcel properties reply will automatically send + a request for the traffic count. + - - + + + If true, images, and other assets downloaded from the server + will be cached in a local directory + - - + + Path to store cached texture data - - + + Maximum size cached files are allowed to take on disk (bytes) - - + + Default color used for viewer particle effects - - + + Maximum number of times to resend a failed packet - - + + Throttle outgoing packet rate - - + + UUID of a texture used by some viewers to indentify type of client used - - + + + Download textures using GetTexture capability when available + - - + + The maximum number of concurrent texture downloads allowed + Increasing this number will not necessarily increase texture retrieval times due to + simulator throttles - - + + + The Refresh timer inteval is used to set the delay between checks for stalled texture downloads + + This is a static variable which applies to all instances - - + + + Textures taking longer than this value will be flagged as timed out and removed from the pipeline + - - + + + Get or set the minimum log level to output to the console by default + + If the library is not compiled with DEBUG defined and this level is set to DEBUG + You will get no output on the console. This behavior can be overriden by creating + a logger configuration file for log4net + - - + + Attach avatar names to log messages - - + + Log packet retransmission info - - + + Log disk cache misses and other info - - + + Constructor + Reference to a GridClient object - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Cost of uploading an asset + Read-only since this value is dynamically fetched at login - - + + + Simulator (region) properties + - - + + No flags set - - + + Agents can take damage and be killed - - + + Landmarks can be created here - - + + Home position can be set in this sim - - + + Home position is reset when an agent teleports away - - + + Sun does not move - - + + No object, land, etc. taxes - - + + Disable heightmap alterations (agents can still plant + foliage) - - + + Land cannot be released, sold, or purchased - - + + All content is wiped nightly - - + + Unknown: Related to the availability of an overview world map tile.(Think mainland images when zoomed out.) - - + + Unknown: Related to region debug flags. Possibly to skip processing of agent interaction with world. - - + + Region does not update agent prim interest lists. Internal debugging option. - - + + No collision detection for non-agent objects - - + + No scripts are ran - - + + All physics processing is turned off - - + + Region can be seen from other regions on world map. (Legacy world map option?) - - + + Region can be seen from mainland on world map. (Legacy world map option?) - - + + Agents not explicitly on the access list can visit the region. - - + + Traffic calculations are not run across entire region, overrides parcel settings. - - + + Flight is disabled (not currently enforced by the sim) - - + + Allow direct (p2p) teleporting - - + + Estate owner has temporarily disabled scripting - - + + Restricts the usage of the LSL llPushObject function, applies to whole region. - - + + Deny agents with no payment info on file - - + + Deny agents with payment info on file - - + + Deny agents who have made a monetary transaction - - + + Parcels within the region may be joined or divided by anyone, not just estate owners/managers. - - + + Abuse reports sent from within this region are sent to the estate owner defined email. - - + + Region is Voice Enabled - - + + Removes the ability from parcel owners to set their parcels to show in search. - - + + Deny agents who have not been age verified from entering the region. - - + + + Region protocol flags + - - + + Nothing special - - + + Region supports Server side Appearance - - + + Viewer supports Server side Appearance - - + + + Access level for a simulator + - - + + Unknown or invalid access level - - + + Trial accounts allowed - - + + PG rating - - + + Mature rating - - + + Adult rating - - + + Simulator is offline - - + + Simulator does not exist - - + + + + - - + + + + - - + + + Initialize the UDP packet handler in server mode + + Port to listening for incoming UDP packets on - - + + + Initialize the UDP packet handler in client mode + + Remote UDP server to connect to - - + + + + - - + + + + - - + + + + - - + + A public reference to the client that this Simulator object + is attached to - - + + A Unique Cache identifier for this simulator - - + + The capabilities for this simulator - - + + - - + + The current version of software this simulator is running - - + + - - + + A 64x64 grid of parcel coloring values. The values stored + in this array are of the type - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + - - + + - - + + - - + + - - + + - - + + true if your agent has Estate Manager rights on this region - - + + - - + + - - + + - - + + Statistics information for this simulator and the + connection to the simulator, calculated by the simulator itself + and the library - - + + The regions Unique ID - - + + The physical data center the simulator is located + Known values are: + + Dallas + Chandler + SF + + - - + + The CPU Class of the simulator + Most full mainland/estate sims appear to be 5, + Homesteads and Openspace appear to be 501 - - + + The number of regions sharing the same CPU as this one + "Full Sims" appear to be 1, Homesteads appear to be 4 - - + + The billing product name + Known values are: + + Mainland / Full Region (Sku: 023) + Estate / Full Region (Sku: 024) + Estate / Openspace (Sku: 027) + Estate / Homestead (Sku: 029) + Mainland / Homestead (Sku: 129) (Linden Owned) + Mainland / Linden Homes (Sku: 131) + + - - + + The billing product SKU + Known values are: + + 023 Mainland / Full Region + 024 Estate / Full Region + 027 Estate / Openspace + 029 Estate / Homestead + 129 Mainland / Homestead (Linden Owned) + 131 Linden Homes / Full Region + + - - + + + Flags indicating which protocols this region supports + - - + + The current sequence number for packets sent to this + simulator. Must be Interlocked before modifying. Only + useful for applications manipulating sequence numbers - - + + + A thread-safe dictionary containing avatars in a simulator + - - + + + A thread-safe dictionary containing primitives in a simulator + - - + + + Checks simulator parcel map to make sure it has downloaded all data successfully + + true if map is full (contains no 0's) - - + + + Is it safe to send agent updates to this sim + AgentMovementComplete message received + - - + + Used internally to track sim disconnections - - + + Event that is triggered when the simulator successfully + establishes a connection - - + + Whether this sim is currently connected or not. Hooked up + to the property Connected - - + + Coarse locations of avatars in this simulator - - + + AvatarPositions key representing TrackAgent target - - + + Sequence numbers of packets we've received + (for duplicate checking) - - + + Packets we sent out that need ACKs from the simulator - - + + Sequence number for pause/resume - - + + Indicates if UDP connection to the sim is fully established - - + + + + + Reference to the GridClient object + IPEndPoint of the simulator + handle of the simulator - - + + + Called when this Simulator object is being destroyed + - - + + + Attempt to connect to this simulator + + Whether to move our agent in to this sim or not + True if the connection succeeded or connection status is + unknown, false if there was a failure - - + + + Initiates connection to the simulator + + Should we block until ack for this packet is recieved - - + + + Disconnect from this simulator + - - + + + Instructs the simulator to stop sending update (and possibly other) packets + - - + + + Instructs the simulator to resume sending update packets (unpause) + - - + + + Retrieve the terrain height at a given coordinate + + Sim X coordinate, valid range is from 0 to 255 + Sim Y coordinate, valid range is from 0 to 255 + The terrain height at the given point if the + lookup was successful, otherwise 0.0f + True if the lookup was successful, otherwise false - - + + + Sends a packet + + Packet to be sent - - + + + + - - + + + Returns Simulator Name as a String + + - - + + + + + - - + + + + + + - - + + + Sends out pending acknowledgements + + Number of ACKs sent - - + + + Resend unacknowledged packets + - - + + + Provides access to an internal thread-safe dictionary containing parcel + information found in this simulator + - - + + + Provides access to an internal thread-safe multidimensional array containing a x,y grid mapped + to each 64x64 parcel's LocalID. + - - + + The IP address and port of the server - - + + Whether there is a working connection to the simulator or + not - - + + Coarse locations of avatars in this simulator - - + + AvatarPositions key representing TrackAgent target - - + + Indicates if UDP connection to the sim is fully established - - + + + Simulator Statistics + - - + + Total number of packets sent by this simulator to this agent - - + + Total number of packets received by this simulator to this agent - - + + Total number of bytes sent by this simulator to this agent - - + + Total number of bytes received by this simulator to this agent - - + + Time in seconds agent has been connected to simulator - - + + Total number of packets that have been resent - - + + Total number of resent packets recieved - - + + Total number of pings sent to this simulator by this agent - - + + Total number of ping replies sent to this agent by this simulator - - + + + Incoming bytes per second + + It would be nice to have this claculated on the fly, but + this is far, far easier - - + + + Outgoing bytes per second + + It would be nice to have this claculated on the fly, but + this is far, far easier - - + + Time last ping was sent - - + + ID of last Ping sent - - + + - - + + - - + + Current time dilation of this simulator - - + + Current Frames per second of simulator - - + + Current Physics frames per second of simulator - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + Total number of objects Simulator is simulating - - + + Total number of Active (Scripted) objects running - - + + Number of agents currently in this simulator - - + + Number of agents in neighbor simulators - - + + Number of Active scripts running in this simulator - - + + - - + + - - + + - - + + Number of downloads pending - - + + Number of uploads pending - - + + - - + + - - + + Number of local uploads pending - - + + Unacknowledged bytes in queue - - + + + Simulator handle + - - + + + Number of GridClients using this datapool + - - + + + Time that the last client disconnected from the simulator + - - + + + The cache of prims used and unused in this simulator + - - + + + Shared parcel info only when POOL_PARCEL_DATA == true + - - + + + + - - - - - - - - - - - - - - - - - - - - - - - + + The event subscribers, null of no subscribers - - + + Raises the AttachedSound Event + A AttachedSoundEventArgs object containing + the data sent from the simulator - - + + Thread sync lock object - - + + The event subscribers, null of no subscribers - - + + Raises the AttachedSoundGainChange Event + A AttachedSoundGainChangeEventArgs object containing + the data sent from the simulator - - + + Thread sync lock object - - + + The event subscribers, null of no subscribers - - + + Raises the SoundTrigger Event + A SoundTriggerEventArgs object containing + the data sent from the simulator - - + + Thread sync lock object - - + + The event subscribers, null of no subscribers - - + + Raises the PreloadSound Event + A PreloadSoundEventArgs object containing + the data sent from the simulator - - + + Thread sync lock object - - + + + Construct a new instance of the SoundManager class, used for playing and receiving + sound assets + + A reference to the current GridClient instance - - + + + Plays a sound in the current region at full volume from avatar position + + UUID of the sound to be played - - + + + Plays a sound in the current region at full volume + + UUID of the sound to be played. + position for the sound to be played at. Normally the avatar. - - + + + Plays a sound in the current region + + UUID of the sound to be played. + position for the sound to be played at. Normally the avatar. + volume of the sound, from 0.0 to 1.0 - - + + + Plays a sound in the specified sim + + UUID of the sound to be played. + UUID of the sound to be played. + position for the sound to be played at. Normally the avatar. + volume of the sound, from 0.0 to 1.0 - - + + + Play a sound asset + + UUID of the sound to be played. + handle id for the sim to be played in. + position for the sound to be played at. Normally the avatar. + volume of the sound, from 0.0 to 1.0 - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Raised when the simulator sends us data containing + sound - - + + Raised when the simulator sends us data containing + ... - - + + Raised when the simulator sends us data containing + ... - - + + Raised when the simulator sends us data containing + ... - - + + Provides data for the event + The event occurs when the simulator sends + the sound data which emits from an agents attachment + + The following code example shows the process to subscribe to the event + and a stub to handle the data passed from the simulator + + // Subscribe to the AttachedSound event + Client.Sound.AttachedSound += Sound_AttachedSound; + + // process the data raised in the event here + private void Sound_AttachedSound(object sender, AttachedSoundEventArgs e) + { + // ... Process AttachedSoundEventArgs here ... + } + + - - + + + Construct a new instance of the SoundTriggerEventArgs class + + Simulator where the event originated + The sound asset id + The ID of the owner + The ID of the object + The volume level + The - - + + Simulator where the event originated - - + + Get the sound asset id - - + + Get the ID of the owner - - + + Get the ID of the Object - - + + Get the volume level - - + + Get the - - + + Provides data for the event + The event occurs when an attached sound + changes its volume level - - + + + Construct a new instance of the AttachedSoundGainChangedEventArgs class + + Simulator where the event originated + The ID of the Object + The new volume level - - + + Simulator where the event originated - - + + Get the ID of the Object - - + + Get the volume level - - + + Provides data for the event + The event occurs when the simulator forwards + a request made by yourself or another agent to play either an asset sound or a built in sound + + Requests to play sounds where the is not one of the built-in + will require sending a request to download the sound asset before it can be played + + + The following code example uses the , + and + properties to display some information on a sound request on the window. + + // subscribe to the event + Client.Sound.SoundTrigger += Sound_SoundTrigger; + + // play the pre-defined BELL_TING sound + Client.Sound.SendSoundTrigger(Sounds.BELL_TING); + + // handle the response data + private void Sound_SoundTrigger(object sender, SoundTriggerEventArgs e) + { + Console.WriteLine("{0} played the sound {1} at volume {2}", + e.OwnerID, e.SoundID, e.Gain); + } + + - - + + + Construct a new instance of the SoundTriggerEventArgs class + + Simulator where the event originated + The sound asset id + The ID of the owner + The ID of the object + The ID of the objects parent + The volume level + The regionhandle + The source position - - + + Simulator where the event originated - - + + Get the sound asset id - - + + Get the ID of the owner - - + + Get the ID of the Object - - + + Get the ID of the objects parent - - + + Get the volume level - - + + Get the regionhandle - - + + Get the source position - - + + Provides data for the event + The event occurs when the simulator sends + the appearance data for an avatar + + The following code example uses the and + properties to display the selected shape of an avatar on the window. + + // subscribe to the event + Client.Avatars.AvatarAppearance += Avatars_AvatarAppearance; + + // handle the data when the event is raised + void Avatars_AvatarAppearance(object sender, AvatarAppearanceEventArgs e) + { + Console.WriteLine("The Agent {0} is using a {1} shape.", e.AvatarID, (e.VisualParams[31] > 0) : "male" ? "female") + } + + - - + + + Construct a new instance of the PreloadSoundEventArgs class + + Simulator where the event originated + The sound asset id + The ID of the owner + The ID of the object - - + + Simulator where the event originated - - + + Get the sound asset id - - + + Get the ID of the owner - - + + Get the ID of the Object - - + + + pre-defined built in sounds + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + coins - - + + cash register bell - - + + - - + + - - + + rubber - - + + plastic - - + + flesh - - + + wood splintering? - - + + glass break - - + + metal clunk - - + + whoosh - - + + shake - - + + - - + + ding - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + + A dictionary containing all pre-defined sounds + + A dictionary containing the pre-defined sounds, + where the key is the sounds ID, and the value is a string + containing a name to identify the purpose of the sound - - + + X position of this patch - - + + Y position of this patch - - + + A 16x16 array of floats holding decompressed layer data - - + + + Creates a LayerData packet for compressed land data given a full + simulator heightmap and an array of indices of patches to compress + + A 256 * 256 array of floating point values + specifying the height at each meter in the simulator + Array of indexes in the 16x16 grid of patches + for this simulator. For example if 1 and 17 are specified, patches + x=1,y=0 and x=1,y=1 are sent + - - + + + Add a patch of terrain to a BitPacker + + BitPacker to write the patch to + Heightmap of the simulator, must be a 256 * + 256 float array + X offset of the patch to create, valid values are + from 0 to 15 + Y offset of the patch to create, valid values are + from 0 to 15 - - + + The event subscribers. null if no subcribers - - + + Raises the LandPatchReceived event + A LandPatchReceivedEventArgs object containing the + data returned from the simulator - - + + Thread sync lock object - - + + + Default constructor + + - - + + Raised when the simulator responds sends - - + + Simulator from that sent tha data - - + + Sim coordinate of the patch - - + + Sim coordinate of the patch - - + + Size of tha patch - - + + Heightmap for the patch - - + + + The current status of a texture request as it moves through the pipeline or final result of a texture request. + - - + + The initial state given to a request. Requests in this state + are waiting for an available slot in the pipeline - - + + A request that has been added to the pipeline and the request packet + has been sent to the simulator - - + + A request that has received one or more packets back from the simulator - - + + A request that has received all packets back from the simulator - - + + A request that has taken longer than + to download OR the initial packet containing the packet information was never received - - + + The texture request was aborted by request of the agent - - + + The simulator replied to the request that it was not able to find the requested texture - - + + + A callback fired to indicate the status or final state of the requested texture. For progressive + downloads this will fire each time new asset data is returned from the simulator. + + The indicating either Progress for textures not fully downloaded, + or the final result of the request after it has been processed through the TexturePipeline + The object containing the Assets ID, raw data + and other information. For progressive rendering the will contain + the data from the beginning of the file. For failed, aborted and timed out requests it will contain + an empty byte array. - - + + + Texture request download handler, allows a configurable number of download slots which manage multiple + concurrent texture downloads from the + + This class makes full use of the internal + system for full texture downloads. - - + + A dictionary containing all pending and in-process transfer requests where the Key is both the RequestID + and also the Asset Texture ID, and the value is an object containing the current state of the request and also + the asset data as it is being re-assembled - - + + Holds the reference to the client object - - + + Maximum concurrent texture requests allowed at a time - - + + An array of objects used to manage worker request threads - - + + An array of worker slots which shows the availablity status of the slot - - + + The primary thread which manages the requests. - - + + true if the TexturePipeline is currently running - - + + A synchronization object used by the primary thread - - + + A refresh timer used to increase the priority of stalled requests - - + + + Default constructor, Instantiates a new copy of the TexturePipeline class + + Reference to the instantiated object - - + + + Initialize callbacks required for the TexturePipeline to operate + - - + + + Shutdown the TexturePipeline and cleanup any callbacks or transfers + - - + + + Request a texture asset from the simulator using the system to + manage the requests and re-assemble the image from the packets received from the simulator + + The of the texture asset to download + The of the texture asset. + Use for most textures, or for baked layer texture assets + A float indicating the requested priority for the transfer. Higher priority values tell the simulator + to prioritize the request before lower valued requests. An image already being transferred using the can have + its priority changed by resending the request with the new priority value + Number of quality layers to discard. + This controls the end marker of the data sent + The packet number to begin the request at. A value of 0 begins the request + from the start of the asset texture + The callback to fire when the image is retrieved. The callback + will contain the result of the request and the texture asset data + If true, the callback will be fired for each chunk of the downloaded image. + The callback asset parameter will contain all previously received chunks of the texture asset starting + from the beginning of the request - - - - - - - - - - - + + + Sends the actual request packet to the simulator + + The image to download + Type of the image to download, either a baked + avatar texture or a normal texture + Priority level of the download. Default is + 1,013,000.0f + Number of quality layers to discard. + This controls the end marker of the data sent + Packet number to start the download at. + This controls the start marker of the data sent + Sending a priority of 0 and a discardlevel of -1 aborts + download - - + + + Cancel a pending or in process texture request + + The texture assets unique ID - - + + + Master Download Thread, Queues up downloads in the threadpool + - - + + + The worker thread that sends the request and handles timeouts + + A object containing the request details - - + + + Handle responses from the simulator that tell us a texture we have requested is unable to be located + or no longer exists. This will remove the request from the pipeline and free up a slot if one is in use + + The sender + The EventArgs object containing the packet data - - + + + Handles the remaining Image data that did not fit in the initial ImageData packet + + The sender + The EventArgs object containing the packet data - - + + + Handle the initial ImageDataPacket sent from the simulator + + The sender + The EventArgs object containing the packet data - - + + Current number of pending and in-process transfers - - + + + A request task containing information and status of a request as it is processed through the + - - + + The current which identifies the current status of the request - - + + The Unique Request ID, This is also the Asset ID of the texture being requested - - + + The slot this request is occupying in the threadpoolSlots array - - + + The ImageType of the request. - - + + The callback to fire when the request is complete, will include + the and the + object containing the result data - - + + If true, indicates the callback will be fired whenever new data is returned from the simulator. + This is used to progressively render textures as portions of the texture are received. - - + + An object that maintains the data of an request thats in-process. - - + + + + - - + + + An instance of DelegateWrapper which calls InvokeWrappedDelegate, + which in turn calls the DynamicInvoke method of the wrapped + delegate + - - + + + Callback used to call EndInvoke on the asynchronously + invoked DelegateWrapper + - - + + + Executes the specified delegate with the specified arguments + asynchronously on a thread pool thread + + + - - + + + Invokes the wrapped delegate synchronously + + + - - + + + Calls EndInvoke on the wrapper and Close on the resulting WaitHandle + to prevent resource leaks + + - - + + + Delegate to wrap another delegate and its arguments + + + - - + + + + - - + + - - + + - - + + - - + + + Thrown when a packet could not be successfully deserialized + - - + + + Default constructor + - - + + + Constructor that takes an additional error message + + An error message to attach to this exception - - + + + The header of a message template packet. Holds packet flags, sequence + number, packet ID, and any ACKs that will be appended at the end of + the packet + - - + + + Convert the AckList to a byte array, used for packet serializing + + Reference to the target byte array + Beginning position to start writing to in the byte + array, will be updated with the ending position of the ACK list - - + + + + + + + + - - + + + + + + + - - + + + A block of data in a packet. Packets are composed of one or more blocks, + each block containing one or more fields + - - + + + Create a block from a byte array + + Byte array containing the serialized block + Starting position of the block in the byte array. + This will point to the data after the end of the block when the + call returns - - + + + Serialize this block into a byte array + + Byte array to serialize this block into + Starting position in the byte array to serialize to. + This will point to the position directly after the end of the + serialized block when the call returns - - + + Current length of the data in this packet - - + + A generic value, not an actual packet type - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - Represents a single Voice Session to the Vivox service. - + + - - - Close this session. - + + - - - Look up an existing Participants in this session - - - + + - - - - + + - - - An instance of DelegateWrapper which calls InvokeWrappedDelegate, - which in turn calls the DynamicInvoke method of the wrapped - delegate - + + - - - Callback used to call EndInvoke on the asynchronously - invoked DelegateWrapper - + + - - - Executes the specified delegate with the specified arguments - asynchronously on a thread pool thread - - - + + - - - Invokes the wrapped delegate synchronously - - - + + - - - Calls EndInvoke on the wrapper and Close on the resulting WaitHandle - to prevent resource leaks - - + + - - - Delegate to wrap another delegate and its arguments - - - + + - - The event subscribers. null if no subcribers + + - - Raises the LandPatchReceived event - A LandPatchReceivedEventArgs object containing the - data returned from the simulator + + - - Thread sync lock object + + - - - Default constructor - - + + - - Raised when the simulator responds sends + + - - Simulator from that sent tha data + + - - Sim coordinate of the patch + + - - Sim coordinate of the patch + + - - Size of tha patch + + - - Heightmap for the patch + + - - - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - Size of the byte array used to store raw packet data + + - - Raw packet data buffer + + - - Length of the data to transmit + + - - EndPoint of the remote host + + - - - Create an allocated UDP packet buffer for receiving a packet - + + - - - Create an allocated UDP packet buffer for sending a packet - - EndPoint of the remote host + + - - - Create an allocated UDP packet buffer for sending a packet - - EndPoint of the remote host - Size of the buffer to allocate for packet data + + - - - Object pool for packet buffers. This is used to allocate memory for all - incoming and outgoing packets, and zerocoding buffers for those packets - + + - - - Initialize the object pool in client mode - - Server to connect to - - + + - - - Initialize the object pool in server mode - - - + + - - - Returns a packet buffer with EndPoint set if the buffer is in - client mode, or with EndPoint set to null in server mode - - Initialized UDPPacketBuffer object + + - - - Default constructor - + + - - - Check a packet buffer out of the pool - - A packet buffer object + + - - - Singleton logging class for the entire library - + + - - log4net logging engine + + - - - Default constructor - + + - - - Send a log message to the logging engine - - The log message - The severity of the log entry + + - - - Send a log message to the logging engine - - The log message - The severity of the log entry - Instance of the client + + - - - Send a log message to the logging engine - - The log message - The severity of the log entry - Exception that was raised + + - - - Send a log message to the logging engine - - The log message - The severity of the log entry - Instance of the client - Exception that was raised + + - - - If the library is compiled with DEBUG defined, an event will be - fired if an OnLogMessage handler is registered and the - message will be sent to the logging engine - - The message to log at the DEBUG level to the - current logging engine + + - - - If the library is compiled with DEBUG defined and - GridClient.Settings.DEBUG is true, an event will be - fired if an OnLogMessage handler is registered and the - message will be sent to the logging engine - - The message to log at the DEBUG level to the - current logging engine - Instance of the client + + - - Triggered whenever a message is logged. If this is left - null, log messages will go to the console + + - - - Callback used for client apps to receive log messages from - the library - - Data being logged - The severity of the log entry from + + - - Sort by name + + - - Sort by date + + - - Sort folders by name, regardless of whether items are - sorted by name or date + + - - Place system folders at the top + + - - - Possible destinations for DeRezObject request - + + - - + + - - Copy from in-world to agent inventory + + - - Derez to TaskInventory + + - - + + - - Take Object + + - - + + - - Delete Object + + - - Put an avatar attachment into agent inventory + + - - + + - - Return an object back to the owner's inventory + + - - Return a deeded object back to the last owner's inventory + + - - - Upper half of the Flags field for inventory items - + + - - Indicates that the NextOwner permission will be set to the - most restrictive set of permissions found in the object set - (including linkset items and object inventory items) on next rez + + - - Indicates that the object sale information has been - changed + + - - If set, and a slam bit is set, indicates BaseMask will be overwritten on Rez + + - - If set, and a slam bit is set, indicates OwnerMask will be overwritten on Rez + + - - If set, and a slam bit is set, indicates GroupMask will be overwritten on Rez + + - - If set, and a slam bit is set, indicates EveryoneMask will be overwritten on Rez + + - - If set, and a slam bit is set, indicates NextOwnerMask will be overwritten on Rez + + - - Indicates whether this object is composed of multiple - items or not + + - - Indicates that the asset is only referenced by this - inventory item. If this item is deleted or updated to reference a - new assetID, the asset can be deleted + + - - - Base Class for Inventory Items - + + - - of item/folder + + - - of parent folder + + - - Name of item/folder + + - - Item/Folder Owners + + - - - Constructor, takes an itemID as a parameter - - The of the item + + - - - - - + + - - - - - + + - - - Generates a number corresponding to the value of the object to support the use of a hash table, - suitable for use in hashing algorithms and data structures such as a hash table - - A Hashcode of all the combined InventoryBase fields + + - - - Determine whether the specified object is equal to the current object - - InventoryBase object to compare against - true if objects are the same + + - - - Determine whether the specified object is equal to the current object - - InventoryBase object to compare against - true if objects are the same + + - - - An Item in Inventory - + + - - The of this item + + - - The combined of this item + + - - The type of item from + + - - The type of item from the enum + + - - The of the creator of this item + + - - A Description of this item + + - - The s this item is set to or owned by + + - - If true, item is owned by a group + + - - The price this item can be purchased for + + - - The type of sale from the enum + + - - Combined flags from + + - - Time and date this inventory item was created, stored as - UTC (Coordinated Universal Time) + + - - Used to update the AssetID in requests sent to the server + + - - The of the previous owner of the item + + - - - Construct a new InventoryItem object - - The of the item + + - - - Construct a new InventoryItem object of a specific Type - - The type of item from - of the item + + - - - Indicates inventory item is a link - - True if inventory item is a link to another inventory item + + - - - - - + + - - - - - + + - - - Generates a number corresponding to the value of the object to support the use of a hash table. - Suitable for use in hashing algorithms and data structures such as a hash table - - A Hashcode of all the combined InventoryItem fields + + - - - Compares an object - - The object to compare - true if comparison object matches + + - - - Determine whether the specified object is equal to the current object - - The object to compare against - true if objects are the same + + - - - Determine whether the specified object is equal to the current object - - The object to compare against - true if objects are the same + + - - - InventoryTexture Class representing a graphical image - - + + - - - Construct an InventoryTexture object - - A which becomes the - objects AssetUUID + + - - - Construct an InventoryTexture object from a serialization stream - + + - - - InventorySound Class representing a playable sound - + + - - - Construct an InventorySound object - - A which becomes the - objects AssetUUID + + - - - Construct an InventorySound object from a serialization stream - + + - - - InventoryCallingCard Class, contains information on another avatar - + + - - - Construct an InventoryCallingCard object - - A which becomes the - objects AssetUUID + + - - - Construct an InventoryCallingCard object from a serialization stream - + + - - - InventoryLandmark Class, contains details on a specific location - + + - - - Construct an InventoryLandmark object - - A which becomes the - objects AssetUUID + + - - - Construct an InventoryLandmark object from a serialization stream - + + - - - Landmarks use the InventoryItemFlags struct and will have a flag of 1 set if they have been visited - + + - - - InventoryObject Class contains details on a primitive or coalesced set of primitives - + + - - - Construct an InventoryObject object - - A which becomes the - objects AssetUUID + + - - - Construct an InventoryObject object from a serialization stream - + + - - - Gets or sets the upper byte of the Flags value - + + - - - Gets or sets the object attachment point, the lower byte of the Flags value - + + - - - InventoryNotecard Class, contains details on an encoded text document - + + - - - Construct an InventoryNotecard object - - A which becomes the - objects AssetUUID + + - - - Construct an InventoryNotecard object from a serialization stream - + + - - - InventoryCategory Class - - TODO: Is this even used for anything? + + - - - Construct an InventoryCategory object - - A which becomes the - objects AssetUUID + + - - - Construct an InventoryCategory object from a serialization stream - + + - - - InventoryLSL Class, represents a Linden Scripting Language object - + + - - - Construct an InventoryLSL object - - A which becomes the - objects AssetUUID + + - - - Construct an InventoryLSL object from a serialization stream - + + - - - InventorySnapshot Class, an image taken with the viewer - + + - - - Construct an InventorySnapshot object - - A which becomes the - objects AssetUUID + + - - - Construct an InventorySnapshot object from a serialization stream - + + - - - InventoryAttachment Class, contains details on an attachable object - + + - - - Construct an InventoryAttachment object - - A which becomes the - objects AssetUUID + + - - - Construct an InventoryAttachment object from a serialization stream - + + - - - Get the last AttachmentPoint this object was attached to - + + - - - InventoryWearable Class, details on a clothing item or body part - + + - - - Construct an InventoryWearable object - - A which becomes the - objects AssetUUID + + - - - Construct an InventoryWearable object from a serialization stream - + + - - - The , Skin, Shape, Skirt, Etc - + + - - - InventoryAnimation Class, A bvh encoded object which animates an avatar - + + - - - Construct an InventoryAnimation object - - A which becomes the - objects AssetUUID + + - - - Construct an InventoryAnimation object from a serialization stream - + + - - - InventoryGesture Class, details on a series of animations, sounds, and actions - + + - - - Construct an InventoryGesture object - - A which becomes the - objects AssetUUID + + - - - Construct an InventoryGesture object from a serialization stream - + + - - - A folder contains s and has certain attributes specific - to itself - + + - - The Preferred for a folder. + + - - The Version of this folder + + - - Number of child items this folder contains. + + - - - Constructor - - UUID of the folder + + - - - - - + + - - - Get Serilization data for this InventoryFolder object - + + - - - Construct an InventoryFolder object from a serialization stream - + + - - - - - + + - - - - - - + + - - - - - - + + - - - - - - + + - - - Tools for dealing with agents inventory - + + - - Used for converting shadow_id to asset_id + + - - The event subscribers, null of no subscribers + + - - Raises the ItemReceived Event - A ItemReceivedEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + - - Raises the FolderUpdated Event - A FolderUpdatedEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + - - Raises the InventoryObjectOffered Event - A InventoryObjectOfferedEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + - - Raises the TaskItemReceived Event - A TaskItemReceivedEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + - - Raises the FindObjectByPath Event - A FindObjectByPathEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + - - Raises the TaskInventoryReply Event - A TaskInventoryReplyEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + - - Raises the SaveAssetToInventory Event - A SaveAssetToInventoryEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + - - Raises the ScriptRunningReply Event - A ScriptRunningReplyEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - Partial mapping of AssetTypes to folder names + + - - - Default constructor - - Reference to the GridClient object + + - - - Fetch an inventory item from the dataserver - - The items - The item Owners - a integer representing the number of milliseconds to wait for results - An object on success, or null if no item was found - Items will also be sent to the event + + - - - Request A single inventory item - - The items - The item Owners - + + - - - Request inventory items - - Inventory items to request - Owners of the inventory items - + + - - - Get contents of a folder - - The of the folder to search - The of the folders owner - true to retrieve folders - true to retrieve items - sort order to return results in - a integer representing the number of milliseconds to wait for results - A list of inventory items matching search criteria within folder - - InventoryFolder.DescendentCount will only be accurate if both folders and items are - requested + + - - - Request the contents of an inventory folder - - The folder to search - The folder owners - true to return s contained in folder - true to return s containd in folder - the sort order to return items in - + + - - - Returns the UUID of the folder (category) that defaults to - containing 'type'. The folder is not necessarily only for that - type - - This will return the root folder if one does not exist - - The UUID of the desired folder if found, the UUID of the RootFolder - if not found, or UUID.Zero on failure + + - - - Find an object in inventory using a specific path to search - - The folder to begin the search in - The object owners - A string path to search - milliseconds to wait for a reply - Found items or if - timeout occurs or item is not found + + - - - Find inventory items by path - - The folder to begin the search in - The object owners - A string path to search, folders/objects separated by a '/' - Results are sent to the event + + - - - Search inventory Store object for an item or folder - - The folder to begin the search in - An array which creates a path to search - Number of levels below baseFolder to conduct searches - if True, will stop searching after first match is found - A list of inventory items found + + - - - Move an inventory item or folder to a new location - - The item or folder to move - The to move item or folder to + + - - - Move an inventory item or folder to a new location and change its name - - The item or folder to move - The to move item or folder to - The name to change the item or folder to + + - - - Move and rename a folder - - The source folders - The destination folders - The name to change the folder to + + - - - Update folder properties - - of the folder to update - Sets folder's parent to - Folder name - Folder type + + - - - Move a folder - - The source folders - The destination folders + + - - - Move multiple folders, the keys in the Dictionary parameter, - to a new parents, the value of that folder's key. - - A Dictionary containing the - of the source as the key, and the - of the destination as the value + + - - - Move an inventory item to a new folder - - The of the source item to move - The of the destination folder + + - - - Move and rename an inventory item - - The of the source item to move - The of the destination folder - The name to change the folder to + + - - - Move multiple inventory items to new locations - - A Dictionary containing the - of the source item as the key, and the - of the destination folder as the value + + - - - Remove descendants of a folder - - The of the folder + + - - - Remove a single item from inventory - - The of the inventory item to remove + + - - - Remove a folder from inventory - - The of the folder to remove + + - - - Remove multiple items or folders from inventory - - A List containing the s of items to remove - A List containing the s of the folders to remove + + - - - Empty the Lost and Found folder - + + - - - Empty the Trash folder - + + - - - - - - - - - Proper use is to upload the inventory's asset first, then provide the Asset's TransactionID here. - - - + + - - - - - - - - - Proper use is to upload the inventory's asset first, then provide the Asset's TransactionID here. - - - - + + - - - Creates a new inventory folder - - ID of the folder to put this folder in - Name of the folder to create - The UUID of the newly created folder + + - - - Creates a new inventory folder - - ID of the folder to put this folder in - Name of the folder to create - Sets this folder as the default folder - for new assets of the specified type. Use AssetType.Unknown - to create a normal folder, otherwise it will likely create a - duplicate of an existing folder type - The UUID of the newly created folder - If you specify a preferred type of AsseType.Folder - it will create a new root folder which may likely cause all sorts - of strange problems + + - - - Create an inventory item and upload asset data - - Asset data - Inventory item name - Inventory item description - Asset type - Inventory type - Put newly created inventory in this folder - Delegate that will receive feedback on success or failure + + - - - Create an inventory item and upload asset data - - Asset data - Inventory item name - Inventory item description - Asset type - Inventory type - Put newly created inventory in this folder - Permission of the newly created item - (EveryoneMask, GroupMask, and NextOwnerMask of Permissions struct are supported) - Delegate that will receive feedback on success or failure + + - - - Creates inventory link to another inventory item or folder - - Put newly created link in folder with this UUID - Inventory item or folder - Method to call upon creation of the link + + - - - Creates inventory link to another inventory item - - Put newly created link in folder with this UUID - Original inventory item - Method to call upon creation of the link + + - - - Creates inventory link to another inventory folder - - Put newly created link in folder with this UUID - Original inventory folder - Method to call upon creation of the link + + - - - Creates inventory link to another inventory item or folder - - Put newly created link in folder with this UUID - Original item's UUID - Name - Description - Asset Type - Inventory Type - Transaction UUID - Method to call upon creation of the link + + - - - - - - - - + + - - - - - - - - - + + - - - - - - - - - + + - - - Request a copy of an asset embedded within a notecard - - Usually UUID.Zero for copying an asset from a notecard - UUID of the notecard to request an asset from - Target folder for asset to go to in your inventory - UUID of the embedded asset - callback to run when item is copied to inventory + + - - - - - + + - - - - - + + - - - - - - + + - - - - - - - + + - - - Save changes to notecard embedded in object contents - - Encoded notecard asset data - Notecard UUID - Object's UUID - Called upon finish of the upload with status information + + - - - Upload new gesture asset for an inventory gesture item - - Encoded gesture asset - Gesture inventory UUID - Callback whick will be called when upload is complete + + - - - Update an existing script in an agents Inventory - - A byte[] array containing the encoded scripts contents - the itemID of the script - if true, sets the script content to run on the mono interpreter - + + - - - Update an existing script in an task Inventory - - A byte[] array containing the encoded scripts contents - the itemID of the script - UUID of the prim containting the script - if true, sets the script content to run on the mono interpreter - if true, sets the script to running - + + - - - Rez an object from inventory - - Simulator to place object in - Rotation of the object when rezzed - Vector of where to place object - InventoryItem object containing item details + + - - - Rez an object from inventory - - Simulator to place object in - Rotation of the object when rezzed - Vector of where to place object - InventoryItem object containing item details - UUID of group to own the object + + - - - Rez an object from inventory - - Simulator to place object in - Rotation of the object when rezzed - Vector of where to place object - InventoryItem object containing item details - UUID of group to own the object - User defined queryID to correlate replies - If set to true, the CreateSelected flag - will be set on the rezzed object + + - - - DeRez an object from the simulator to the agents Objects folder in the agents Inventory - - The simulator Local ID of the object - If objectLocalID is a child primitive in a linkset, the entire linkset will be derezzed + + - - - DeRez an object from the simulator and return to inventory - - The simulator Local ID of the object - The type of destination from the enum - The destination inventory folders -or- - if DeRezzing object to a tasks Inventory, the Tasks - The transaction ID for this request which - can be used to correlate this request with other packets - If objectLocalID is a child primitive in a linkset, the entire linkset will be derezzed + + - - - Rez an item from inventory to its previous simulator location - - - - - + + - - - Give an inventory item to another avatar - - The of the item to give - The name of the item - The type of the item from the enum - The of the recipient - true to generate a beameffect during transfer + + - - - Give an inventory Folder with contents to another avatar - - The of the Folder to give - The name of the folder - The type of the item from the enum - The of the recipient - true to generate a beameffect during transfer + + - - - Copy or move an from agent inventory to a task (primitive) inventory - - The target object - The item to copy or move from inventory - - For items with copy permissions a copy of the item is placed in the tasks inventory, - for no-copy items the object is moved to the tasks inventory + + - - - Retrieve a listing of the items contained in a task (Primitive) - - The tasks - The tasks simulator local ID - milliseconds to wait for reply from simulator - A list containing the inventory items inside the task or null - if a timeout occurs - This request blocks until the response from the simulator arrives - or timeoutMS is exceeded + + - - - Request the contents of a tasks (primitives) inventory from the - current simulator - - The LocalID of the object - + + - - - Request the contents of a tasks (primitives) inventory - - The simulator Local ID of the object - A reference to the simulator object that contains the object - + + - - - Move an item from a tasks (Primitive) inventory to the specified folder in the avatars inventory - - LocalID of the object in the simulator - UUID of the task item to move - The ID of the destination folder in this agents inventory - Simulator Object - Raises the event + + - - - Remove an item from an objects (Prim) Inventory - - LocalID of the object in the simulator - UUID of the task item to remove - Simulator Object - You can confirm the removal by comparing the tasks inventory serial before and after the - request with the request combined with - the event + + - - - Copy an InventoryScript item from the Agents Inventory into a primitives task inventory - - An unsigned integer representing a primitive being simulated - An which represents a script object from the agents inventory - true to set the scripts running state to enabled - A Unique Transaction ID - - The following example shows the basic steps necessary to copy a script from the agents inventory into a tasks inventory - and assumes the script exists in the agents inventory. - - uint primID = 95899503; // Fake prim ID - UUID scriptID = UUID.Parse("92a7fe8a-e949-dd39-a8d8-1681d8673232"); // Fake Script UUID in Inventory - - Client.Inventory.FolderContents(Client.Inventory.FindFolderForType(AssetType.LSLText), Client.Self.AgentID, - false, true, InventorySortOrder.ByName, 10000); - - Client.Inventory.RezScript(primID, (InventoryItem)Client.Inventory.Store[scriptID]); - - + + - - - Request the running status of a script contained in a task (primitive) inventory - - The ID of the primitive containing the script - The ID of the script - The event can be used to obtain the results of the - request - + + - - - Send a request to set the running state of a script contained in a task (primitive) inventory - - The ID of the primitive containing the script - The ID of the script - true to set the script running, false to stop a running script - To verify the change you can use the method combined - with the event + + - - - Create a CRC from an InventoryItem - - The source InventoryItem - A uint representing the source InventoryItem as a CRC + + - - - Reverses a cheesy XORing with a fixed UUID to convert a shadow_id to an asset_id - - Obfuscated shadow_id value - Deobfuscated asset_id value + + - - - Does a cheesy XORing with a fixed UUID to convert an asset_id to a shadow_id - - asset_id value to obfuscate - Obfuscated shadow_id value + + - - - Wrapper for creating a new object - - The type of item from the enum - The of the newly created object - An object with the type and id passed + + - - - Parse the results of a RequestTaskInventory() response - - A string which contains the data from the task reply - A List containing the items contained within the tasks inventory + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - - UpdateCreateInventoryItem packets are received when a new inventory item - is created. This may occur when an object that's rezzed in world is - taken into inventory, when an item is created using the CreateInventoryItem - packet, or when an object is purchased - - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Raised when the simulator sends us data containing - ... + + - - Raised when the simulator sends us data containing - ... + + - - Raised when the simulator sends us data containing - an inventory object sent by another avatar or primitive + + - - Raised when the simulator sends us data containing - ... + + - - Raised when the simulator sends us data containing - ... + + - - Raised when the simulator sends us data containing - ... + + - - Raised when the simulator sends us data containing - ... + + - - Raised when the simulator sends us data containing - ... + + - - - Get this agents Inventory data - + + - - - Callback for inventory item creation finishing - - Whether the request to create an inventory - item succeeded or not - Inventory item being created. If success is - false this will be null + + - - - Callback for an inventory item being create from an uploaded asset - - true if inventory item creation was successful - - - + + - - - - - + + - - - Reply received when uploading an inventory asset - - Has upload been successful - Error message if upload failed - Inventory asset UUID - New asset UUID + + - - - Delegate that is invoked when script upload is completed - - Has upload succeded (note, there still might be compile errors) - Upload status message - Is compilation successful - If compilation failed, list of error messages, null on compilation success - Script inventory UUID - Script's new asset UUID + + - - Set to true to accept offer, false to decline it + + - - The folder to accept the inventory into, if null default folder for will be used + + - - - Callback when an inventory object is accepted and received from a - task inventory. This is the callback in which you actually get - the ItemID, as in ObjectOfferedCallback it is null when received - from a task. - + + - - - Map layer request type - + + - - Objects and terrain are shown + + - - Only the terrain is shown, no objects + + - - Overlay showing land for sale and for auction + + - - - Type of grid item, such as telehub, event, populator location, etc. - + + - - Telehub + + - - PG rated event + + - - Mature rated event + + - - Popular location + + - - Locations of avatar groups in a region + + - - Land for sale + + - - Classified ad + + - - Adult rated event + + - - Adult land for sale + + - - - Information about a region on the grid map - + + - - Sim X position on World Map + + - - Sim Y position on World Map + + - - Sim Name (NOTE: In lowercase!) + + - - + + - - Appears to always be zero (None) + + - - Sim's defined Water Height + + - - + + - - UUID of the World Map image + + - - Unique identifier for this region, a combination of the X - and Y position + + - - - - - + + - - - - - + + - - - - - - + + - - - Visual chunk of the grid map - + + - - - Base class for Map Items - + + - - The Global X position of the item + + - - The Global Y position of the item + + - - Get the Local X position of the item + + - - Get the Local Y position of the item + + - - Get the Handle of the region + + - - - Represents an agent or group of agents location - + + - - - Represents a Telehub location - + + - - - Represents a non-adult parcel of land for sale - + + - - - Represents an Adult parcel of land for sale - + + - - - Represents a PG Event - + + - - - Represents a Mature event - + + - - - Represents an Adult event - + + - - - Manages grid-wide tasks such as the world map - + + - - The event subscribers. null if no subcribers + + - - Raises the CoarseLocationUpdate event - A CoarseLocationUpdateEventArgs object containing the - data sent by simulator + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the GridRegion event - A GridRegionEventArgs object containing the - data sent by simulator + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the GridLayer event - A GridLayerEventArgs object containing the - data sent by simulator + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the GridItems event - A GridItemEventArgs object containing the - data sent by simulator + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the RegionHandleReply event - A RegionHandleReplyEventArgs object containing the - data sent by simulator + + - - Thread sync lock object + + - - A dictionary of all the regions, indexed by region name + + - - A dictionary of all the regions, indexed by region handle + + - - - Constructor - - Instance of GridClient object to associate with this GridManager instance + + - - - - - + + - - - Request a map layer - - The name of the region - The type of layer + + - - - - - - - - - - + + - - - - - - - - - + + - - - - - - - + + - - - Request data for all mainland (Linden managed) simulators - + + - - - Request the region handle for the specified region UUID - - UUID of the region to look up + + - - - Get grid region information using the region name, this function - will block until it can find the region or gives up - - Name of sim you're looking for - Layer that you are requesting - Will contain a GridRegion for the sim you're - looking for if successful, otherwise an empty structure - True if the GridRegion was successfully fetched, otherwise - false + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Raised when the simulator sends a - containing the location of agents in the simulator + + - - Raised when the simulator sends a Region Data in response to - a Map request + + - - Raised when the simulator sends GridLayer object containing - a map tile coordinates and texture information + + - - Raised when the simulator sends GridItems object containing - details on events, land sales at a specific location + + - - Raised in response to a Region lookup + + - - Unknown + + - - Current direction of the sun + + - - Current angular velocity of the sun + + - - Current world time + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - Login Request Parameters - + + - - The URL of the Login Server + + - - The number of milliseconds to wait before a login is considered - failed due to timeout + + - - The request method - login_to_simulator is currently the only supported method + + - - The Agents First name + + - - The Agents Last name + + - - A md5 hashed password - plaintext password will be automatically hashed + + - - The agents starting location once logged in - Either "last", "home", or a string encoded URI - containing the simulator name and x/y/z coordinates e.g: uri:hooper&128&152&17 + + - - A string containing the client software channel information - Second Life Release + + - - The client software version information - The official viewer uses: Second Life Release n.n.n.n - where n is replaced with the current version of the viewer + + - - A string containing the platform information the agent is running on + + - - A string hash of the network cards Mac Address + + - - Unknown or deprecated + + - - A string hash of the first disk drives ID used to identify this clients uniqueness + + - - A string containing the viewers Software, this is not directly sent to the login server but - instead is used to generate the Version string + + - - A string representing the software creator. This is not directly sent to the login server but - is used by the library to generate the Version information + + - - If true, this agent agrees to the Terms of Service of the grid its connecting to + + - - Unknown + + - - An array of string sent to the login server to enable various options + + - - A randomly generated ID to distinguish between login attempts. This value is only used - internally in the library and is never sent over the wire + + - - - Default constuctor, initializes sane default values - + + - - - Instantiates new LoginParams object and fills in the values - - Instance of GridClient to read settings from - Login first name - Login last name - Password - Login channnel (application name) - Client version, should be application name + version number + + - - - Instantiates new LoginParams object and fills in the values - - Instance of GridClient to read settings from - Login first name - Login last name - Password - Login channnel (application name) - Client version, should be application name + version number - URI of the login server + + - - - The decoded data returned from the login server after a successful login - + + - - true, false, indeterminate + + - - Login message of the day + + - - M or PG, also agent_region_access and agent_access_max + + - - - Parse LLSD Login Reply Data - - An - contaning the login response data - XML-RPC logins do not require this as XML-RPC.NET - automatically populates the struct properly using attributes + + - - - - + + - - OK + + - - Transfer completed + + - - + + - - + + - - Unknown error occurred + + - - Equivalent to a 404 error + + - - Client does not have permission for that resource + + - - Unknown status + + - - - - + + - - + + - - Unknown + + - - Virtually all asset transfers use this channel + + - - - - + + - - + + - - Asset from the asset server + + - - Inventory item + + - - Estate asset, such as an estate covenant + + - - - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - - Image file format - + + - - - - + + - - Number of milliseconds passed since the last transfer - packet was received + + - - - - + + - - - - + + - - - - + + - - - - + + - - - - + + - - - - - - - - + + - - - - + + - - Number of milliseconds to wait for a transfer header packet if out of order data was received + + - - The event subscribers. null if no subcribers + + - - Raises the XferReceived event - A XferReceivedEventArgs object containing the - data returned from the simulator + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the AssetUploaded event - A AssetUploadedEventArgs object containing the - data returned from the simulator + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the UploadProgress event - A UploadProgressEventArgs object containing the - data returned from the simulator + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the InitiateDownload event - A InitiateDownloadEventArgs object containing the - data returned from the simulator + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the ImageReceiveProgress event - A ImageReceiveProgressEventArgs object containing the - data returned from the simulator + + - - Thread sync lock object + + - - Texture download cache + + - - - Default constructor - - A reference to the GridClient object + + - - - Request an asset download - - Asset UUID - Asset type, must be correct for the transfer to succeed - Whether to give this transfer an elevated priority - The callback to fire when the simulator responds with the asset data + + - - - Request an asset download - - Asset UUID - Asset type, must be correct for the transfer to succeed - Whether to give this transfer an elevated priority - Source location of the requested asset - The callback to fire when the simulator responds with the asset data + + - - - Request an asset download - - Asset UUID - Asset type, must be correct for the transfer to succeed - Whether to give this transfer an elevated priority - Source location of the requested asset - UUID of the transaction - The callback to fire when the simulator responds with the asset data + + - - - Request an asset download through the almost deprecated Xfer system - - Filename of the asset to request - Whether or not to delete the asset - off the server after it is retrieved - Use large transfer packets or not - UUID of the file to request, if filename is - left empty - Asset type of vFileID, or - AssetType.Unknown if filename is not empty - Sets the FilePath in the request to Cache - (4) if true, otherwise Unknown (0) is used - + + - - - - - Use UUID.Zero if you do not have the - asset ID but have all the necessary permissions - The item ID of this asset in the inventory - Use UUID.Zero if you are not requesting an - asset from an object inventory - The owner of this asset - Asset type - Whether to prioritize this asset download or not - + + - - - Used to force asset data into the PendingUpload property, ie: for raw terrain uploads - - An AssetUpload object containing the data to upload to the simulator + + - - - Request an asset be uploaded to the simulator - - The Object containing the asset data - If True, the asset once uploaded will be stored on the simulator - in which the client was connected in addition to being stored on the asset server - The of the transfer, can be used to correlate the upload with - events being fired + + - - - Request an asset be uploaded to the simulator - - The of the asset being uploaded - A byte array containing the encoded asset data - If True, the asset once uploaded will be stored on the simulator - in which the client was connected in addition to being stored on the asset server - The of the transfer, can be used to correlate the upload with - events being fired + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Operation to apply when applying color to texture + + + + + Information needed to translate visual param value to RGBA color + + + + + Construct VisualColorParam + + Operation to apply when applying color to texture + Colors + + + + Represents alpha blending and bump infor for a visual parameter + such as sleive length + + + + Stregth of the alpha to apply + + + File containing the alpha channel + + + Skip blending if parameter value is 0 + + + Use miltiply insted of alpha blending + + + + Create new alhpa information for a visual param + + Stregth of the alpha to apply + File containing the alpha channel + Skip blending if parameter value is 0 + Use miltiply insted of alpha blending + + + + A single visual characteristic of an avatar mesh, such as eyebrow height + + + + Index of this visual param + + + Internal name + + + Group ID this parameter belongs to + + + Name of the wearable this parameter belongs to + + + Displayable label of this characteristic + + + Displayable label for the minimum value of this characteristic + + + Displayable label for the maximum value of this characteristic + + + Default value + + + Minimum value + + + Maximum value + + + Is this param used for creation of bump layer? + + + Alpha blending/bump info + + + Color information + + + Array of param IDs that are drivers for this parameter + + + + Set all the values through the constructor + + Index of this visual param + Internal name + + + Displayable label of this characteristic + Displayable label for the minimum value of this characteristic + Displayable label for the maximum value of this characteristic + Default value + Minimum value + Maximum value + Is this param used for creation of bump layer? + Array of param IDs that are drivers for this parameter + Alpha blending/bump info + Color information + + + + Holds the Params array of all the avatar appearance parameters + + + + + Base class for all Asset types + + + + A byte array containing the raw asset data + + + True if the asset it only stored on the server temporarily + + + A unique ID + + + + Construct a new Asset object + + + + + Construct a new Asset object + + A unique specific to this asset + A byte array containing the raw asset data + + + + Regenerates the AssetData byte array from the properties + of the derived class. + + + + + Decodes the AssetData, placing it in appropriate properties of the derived + class. + + True if the asset decoding succeeded, otherwise false + + + The assets unique ID + + + + The "type" of asset, Notecard, Animation, etc + + + + + Constants for the archiving module + + + + + Path for region settings. + + + + + The location of the archive control file + + + + + Path for the assets held in an archive + + + + + Path for the prims file + + + + + Path for terrains. Technically these may be assets, but I think it's quite nice to split them out. + + + + + Path for region settings. + + + + + The character the separates the uuid from extension information in an archived asset filename + + + + + Extensions used for asset types in the archive + + + + + Archives assets + + + + + Archive assets + + + + + Archive the assets given to this archiver to the given archive. + + + + + + Write an assets metadata file to the given archive + + + + + + Write asset data files to the given archive + + + + + + Temporary code to do the bare minimum required to read a tar archive for our purposes + + + + + Binary reader for the underlying stream + + + + + Used to trim off null chars + + + + + Used to trim off space chars + + + + + Generate a tar reader which reads from the given stream. + + + + + + Read the next entry in the tar file. + + + + the data for the entry. Returns null if there are no more entries + + + + Read the next 512 byte chunk of data as a tar header. + + A tar header struct. null if we have reached the end of the archive. + + + + Read data following a header + + + + + + + Convert octal bytes to a decimal representation + + + + + + + + + Temporary code to produce a tar archive in tar v7 format + + + + + Binary writer for the underlying stream + + + + + Write a directory entry to the tar archive. We can only handle one path level right now! + + + + + + Write a file to the tar archive + + + + + + + Write a file to the tar archive + + + + + + + Finish writing the raw tar archive data to a stream. The stream will be closed on completion. + + + + + Write a particular entry + + + + + + + + Represents an Animation + + + + Default Constructor + + + + Construct an Asset object of type Animation + + A unique specific to this asset + A byte array containing the raw asset data + + + Override the base classes AssetType + + + + Represents an that represents an avatars body ie: Hair, Etc. + + + + + Represents a Wearable Asset, Clothing, Hair, Skin, Etc + + + + A string containing the name of the asset + + + A string containing a short description of the asset + + + The Assets WearableType + + + The For-Sale status of the object + + + An Integer representing the purchase price of the asset + + + The of the assets creator + + + The of the assets current owner + + + The of the assets prior owner + + + The of the Group this asset is set to + + + True if the asset is owned by a + + + The Permissions mask of the asset + + + A Dictionary containing Key/Value pairs of the objects parameters + + + A Dictionary containing Key/Value pairs where the Key is the textures Index and the Value is the Textures + + + Initializes a new instance of an AssetWearable object + + + Initializes a new instance of an AssetWearable object with parameters + A unique specific to this asset + A byte array containing the raw asset data + + + + Decode an assets byte encoded data to a string + + true if the asset data was decoded successfully + + + + Encode the assets string represantion into a format consumable by the asset server + + + + Initializes a new instance of an AssetBodyPart object + + + Initializes a new instance of an AssetBodyPart object with parameters + A unique specific to this asset + A byte array containing the raw asset data + + + Override the base classes AssetType + + + + Represents a Callingcard with AvatarID and Position vector + + + + UUID of the Callingcard target avatar + + + Construct an Asset of type Callingcard + + + + Construct an Asset object of type Callingcard + + A unique specific to this asset + A byte array containing the raw asset data + + + + Constuct an asset of type Callingcard + + UUID of the target avatar + + + + Encode the raw contents of a string with the specific Callingcard format + + + + + Decode the raw asset data, populating the AvatarID and Position + + true if the AssetData was successfully decoded to a UUID and Vector + + + Override the base classes AssetType + + + + Represents an that can be worn on an avatar + such as a Shirt, Pants, etc. + + + + Initializes a new instance of an AssetScriptBinary object + + + Initializes a new instance of an AssetScriptBinary object with parameters + A unique specific to this asset + A byte array containing the raw asset data + + + Override the base classes AssetType + + + + Type of gesture step + + + + + Base class for gesture steps + + + + + Retururns what kind of gesture step this is + + + + + Describes animation step of a gesture + + + + + If true, this step represents start of animation, otherwise animation stop + + + + + Animation asset + + + + + Animation inventory name + + + + + Returns what kind of gesture step this is + + + + + Describes sound step of a gesture + + + + + Sound asset + + + + + Sound inventory name + + + + + Returns what kind of gesture step this is + + + + + Describes sound step of a gesture + + + + + Text to output in chat + + + + + Returns what kind of gesture step this is + + + + + Describes sound step of a gesture + + + + + If true in this step we wait for all animations to finish + + + + + If true gesture player should wait for the specified amount of time + + + + + Time in seconds to wait if WaitForAnimation is false + + + + + Returns what kind of gesture step this is + + + + + Describes the final step of a gesture + + + + + Returns what kind of gesture step this is + + + + + Represents a sequence of animations, sounds, and chat actions + + + + + Keyboard key that triggers the gestyre + + + + + Modifier to the trigger key + + + + + String that triggers playing of the gesture sequence + + + + + Text that replaces trigger in chat once gesture is triggered + + + + + Sequence of gesture steps + + + + + Constructs guesture asset + + + + + Constructs guesture asset + + A unique specific to this asset + A byte array containing the raw asset data + + + + Encodes gesture asset suitable for uplaod + + + + + Decodes gesture assset into play sequence + + true if the asset data was decoded successfully + + + + Returns asset type + + + + + Represents a Landmark with RegionID and Position vector + + + + UUID of the Landmark target region + + + Local position of the target + + + Construct an Asset of type Landmark + + + + Construct an Asset object of type Landmark + + A unique specific to this asset + A byte array containing the raw asset data + + + + Encode the raw contents of a string with the specific Landmark format + + + + + Decode the raw asset data, populating the RegionID and Position + + true if the AssetData was successfully decoded to a UUID and Vector + + + Override the base classes AssetType + + + + Represents Mesh asset + + + + + Decoded mesh data + + + + Initializes a new instance of an AssetMesh object + + + Initializes a new instance of an AssetMesh object with parameters + A unique specific to this asset + A byte array containing the raw asset data + + + + TODO: Encodes Collada file into LLMesh format + + + + + Decodes mesh asset. See + to furter decode it for rendering + true + + + Override the base classes AssetType + + + + Represents an Animation + + + + Default Constructor + + + + Construct an Asset object of type Animation + + Asset type + A unique specific to this asset + A byte array containing the raw asset data + + + Override the base classes AssetType + + + + Represents a string of characters encoded with specific formatting properties + + + + A text string containing main text of the notecard + + + List of s embedded on the notecard + + + Construct an Asset of type Notecard + + + + Construct an Asset object of type Notecard + + A unique specific to this asset + A byte array containing the raw asset data + + + + Encode the raw contents of a string with the specific Linden Text properties + + + + + Decode the raw asset data including the Linden Text properties + + true if the AssetData was successfully decoded + + + Override the base classes AssetType + + + + A linkset asset, containing a parent primitive and zero or more children + + + + Initializes a new instance of an AssetPrim object + + + + Initializes a new instance of an AssetPrim object + + A unique specific to this asset + A byte array containing the raw asset data + + + + + + + + + + + + + + Override the base classes AssetType + + + + Only used internally for XML serialization/deserialization + + + + + The deserialized form of a single primitive in a linkset asset + + + + + Represents an AssetScriptBinary object containing the + LSO compiled bytecode of an LSL script + + + + Initializes a new instance of an AssetScriptBinary object + + + Initializes a new instance of an AssetScriptBinary object with parameters + A unique specific to this asset + A byte array containing the raw asset data + + + + TODO: Encodes a scripts contents into a LSO Bytecode file + + + + + TODO: Decode LSO Bytecode into a string + + true + + + Override the base classes AssetType + + + + Represents an LSL Text object containing a string of UTF encoded characters + + + + A string of characters represting the script contents + + + Initializes a new AssetScriptText object + + + + Initializes a new AssetScriptText object with parameters + + A unique specific to this asset + A byte array containing the raw asset data + + + + Encode a string containing the scripts contents into byte encoded AssetData + + + + + Decode a byte array containing the scripts contents into a string + + true if decoding is successful + + + Override the base classes AssetType + + + + Represents a Sound Asset + + + + Initializes a new instance of an AssetSound object + + + Initializes a new instance of an AssetSound object with parameters + A unique specific to this asset + A byte array containing the raw asset data + + + + TODO: Encodes a sound file + + + + + TODO: Decode a sound file + + true + + + Override the base classes AssetType + + + + Represents a texture + + + + A object containing image data + + + + + + + + + Initializes a new instance of an AssetTexture object + + + + Initializes a new instance of an AssetTexture object + + A unique specific to this asset + A byte array containing the raw asset data + + + + Initializes a new instance of an AssetTexture object + + A object containing texture data + + + + Populates the byte array with a JPEG2000 + encoded image created from the data in + + + + + Decodes the JPEG2000 data in AssetData to the + object + + True if the decoding was successful, otherwise false + + + + Decodes the begin and end byte positions for each quality layer in + the image + + + + + Override the base classes AssetType + + + = + + + Number of times we've received an unknown CAPS exception in series. + + + For exponential backoff on error. + + + + A set of textures that are layered on texture of each other and "baked" + in to a single texture, for avatar appearances + + + + Final baked texture + + + Component layers + + + Width of the final baked image and scratchpad + + + Height of the final baked image and scratchpad + + + Bake type + + + + Default constructor + + Bake type + + + + Adds layer for baking + + TexturaData struct that contains texture and its params + + + + Converts avatar texture index (face) to Bake type + + Face number (AvatarTextureIndex) + BakeType, layer to which this texture belongs to + + + + Make sure images exist, resize source if needed to match the destination + + Destination image + Source image + Sanitization was succefull + + + + Fills a baked layer as a solid *appearing* color. The colors are + subtly dithered on a 16x16 grid to prevent the JPEG2000 stage from + compressing it too far since it seems to cause upload failures if + the image is a pure solid color + + Color of the base of this layer + + + + Fills a baked layer as a solid *appearing* color. The colors are + subtly dithered on a 16x16 grid to prevent the JPEG2000 stage from + compressing it too far since it seems to cause upload failures if + the image is a pure solid color + + Red value + Green value + Blue value + + + Final baked texture + + + Component layers + + + Width of the final baked image and scratchpad + + + Height of the final baked image and scratchpad + + + Bake type + + + Is this one of the 3 skin bakes + + + + Image width + + + + + Image height + + + + + Image channel flags + + + + + Red channel data + + + + + Green channel data + + + + + Blue channel data + + + + + Alpha channel data + + + + + Bump channel data + + + + + Create a new blank image + + width + height + channel flags + + + + + + + + + + Convert the channels in the image. Channels are created or destroyed as required. + + new channel flags + + + + Resize or stretch the image using nearest neighbor (ugly) resampling + + new width + new height + + + + Create a byte array containing 32-bit RGBA data with a bottom-left + origin, suitable for feeding directly into OpenGL + + A byte array containing raw texture data + + + + Create a byte array containing 32-bit RGBA data with a bottom-left + origin, suitable for feeding directly into OpenGL + + A byte array containing raw texture data + + + + A Wrapper around openjpeg to encode and decode images to and from byte arrays + + + + TGA Header size + + + OpenJPEG is not threadsafe, so this object is used to lock + during calls into unmanaged code + + + + Encode a object into a byte array + + The object to encode + true to enable lossless conversion, only useful for small images ie: sculptmaps + A byte array containing the encoded Image object + + + + Encode a object into a byte array + + The object to encode + a byte array of the encoded image + + + + Decode JPEG2000 data to an and + + + JPEG2000 encoded data + ManagedImage object to decode to + Image object to decode to + True if the decode succeeds, otherwise false + + + + + + + + + + + + + + + + + + + + + Encode a object into a byte array + + The source object to encode + true to enable lossless decoding + A byte array containing the source Bitmap object + + + + Defines the beginning and ending file positions of a layer in an + LRCP-progression JPEG2000 file + + + + + This structure is used to marshal both encoded and decoded images. + MUST MATCH THE STRUCT IN dotnet.h! + + + + + Information about a single packet in a JPEG2000 stream + + + + Packet start position + + + Packet header end position + + + Packet end position + + + + Capability to load TGAs to Bitmap + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - Request an asset be uploaded to the simulator + Parsing Collada model files into data structures - - Asset type to upload this data as - A byte array containing the encoded asset data - If True, the asset once uploaded will be stored on the simulator - in which the client was connected in addition to being stored on the asset server - The of the transfer, can be used to correlate the upload with - events being fired - + - Initiate an asset upload + Parses Collada document - The ID this asset will have if the - upload succeeds - Asset type to upload this data as - Raw asset data to upload - Whether to store this asset on the local - simulator or the grid-wide asset server - The tranaction id for the upload - The transaction ID of this transfer + Load .dae model from this file + Load and decode images for uploading with model + A list of mesh prims that were parsed from the collada file + + + + Implements mesh upload communications with the simulator + + + + + Inlcude stub convex hull physics, required for uploading to Second Life + + + + + Use the same mesh used for geometry as the physical mesh upload + + + + + Creates instance of the mesh uploader + + GridClient instance to communicate with the simulator + List of ModelPrimitive objects to upload as a linkset + Inventory name for newly uploaded object + Inventory description for newly upload object + + + + Performs model upload in one go, without first checking for the price + + + + + Performs model upload in one go, without first checking for the price + + Callback that will be invoke upon completion of the upload. Null is sent on request failure + + + + Ask server for details of cost and impact of the mesh upload + + Callback that will be invoke upon completion of the upload. Null is sent on request failure + + + + Performas actual mesh and image upload + + Uri recieved in the upload prepare stage + Callback that will be invoke upon completion of the upload. Null is sent on request failure + + + + Callback for mesh upload operations + + null on failure, result from server on success + + + + Interface requirements for Messaging system + + + + + Abstract base for rendering plugins + + + + + Generates a basic mesh structure from a primitive + + Primitive to generate the mesh from + Level of detail to generate the mesh at + The generated mesh + + + + Generates a basic mesh structure from a sculpted primitive and + texture + + Sculpted primitive to generate the mesh from + Sculpt texture + Level of detail to generate the mesh at + The generated mesh + + + + Generates a series of faces, each face containing a mesh and + metadata + + Primitive to generate the mesh from + Level of detail to generate the mesh at + The generated mesh + + + + Generates a series of faces for a sculpted prim, each face + containing a mesh and metadata + + Sculpted primitive to generate the mesh from + Sculpt texture + Level of detail to generate the mesh at + The generated mesh + + + + Apply texture coordinate modifications from a + to a list of vertices + + Vertex list to modify texture coordinates for + Center-point of the face + Face texture parameters + Scale of the prim + + + + Sent to the client to indicate a teleport request has completed + + + + The of the agent + + + + + + The simulators handle the agent teleported to + + + A Uri which contains a list of Capabilities the simulator supports + + + Indicates the level of access required + to access the simulator, or the content rating, or the simulators + map status + + + The IP Address of the simulator + + + The UDP Port the simulator will listen for UDP traffic on + + + Status flags indicating the state of the Agent upon arrival, Flying, etc. + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + Sent to the viewer when a neighboring simulator is requesting the agent make a connection to it. + + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + A message sent to the client which indicates a teleport request has failed + and contains some information on why it failed + + + + + + + A string key of the reason the teleport failed e.g. CouldntTPCloser + Which could be used to look up a value in a dictionary or enum + + + The of the Agent + + + A string human readable message containing the reason + An example: Could not teleport closer to destination + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + Contains a list of prim owner information for a specific parcel in a simulator + + + A Simulator will always return at least 1 entry + If agent does not have proper permission the OwnerID will be UUID.Zero + If agent does not have proper permission OR there are no primitives on parcel + the DataBlocksExtended map will not be sent from the simulator + - - - Request a texture asset from the simulator using the system to - manage the requests and re-assemble the image from the packets received from the simulator - - The of the texture asset to download - The of the texture asset. - Use for most textures, or for baked layer texture assets - A float indicating the requested priority for the transfer. Higher priority values tell the simulator - to prioritize the request before lower valued requests. An image already being transferred using the can have - its priority changed by resending the request with the new priority value - Number of quality layers to discard. - This controls the end marker of the data sent. Sending with value -1 combined with priority of 0 cancels an in-progress - transfer. - A bug exists in the Linden Simulator where a -1 will occasionally be sent with a non-zero priority - indicating an off-by-one error. - The packet number to begin the request at. A value of 0 begins the request - from the start of the asset texture - The callback to fire when the image is retrieved. The callback - will contain the result of the request and the texture asset data - If true, the callback will be fired for each chunk of the downloaded image. - The callback asset parameter will contain all previously received chunks of the texture asset starting - from the beginning of the request - - Request an image and fire a callback when the request is complete - - Client.Assets.RequestImage(UUID.Parse("c307629f-e3a1-4487-5e88-0d96ac9d4965"), ImageType.Normal, TextureDownloader_OnDownloadFinished); - - private void TextureDownloader_OnDownloadFinished(TextureRequestState state, AssetTexture asset) - { - if(state == TextureRequestState.Finished) - { - Console.WriteLine("Texture {0} ({1} bytes) has been successfully downloaded", - asset.AssetID, - asset.AssetData.Length); - } - } - - Request an image and use an inline anonymous method to handle the downloaded texture data - - Client.Assets.RequestImage(UUID.Parse("c307629f-e3a1-4487-5e88-0d96ac9d4965"), ImageType.Normal, delegate(TextureRequestState state, AssetTexture asset) - { - if(state == TextureRequestState.Finished) - { - Console.WriteLine("Texture {0} ({1} bytes) has been successfully downloaded", - asset.AssetID, - asset.AssetData.Length); - } - } - ); - - Request a texture, decode the texture to a bitmap image and apply it to a imagebox - - Client.Assets.RequestImage(UUID.Parse("c307629f-e3a1-4487-5e88-0d96ac9d4965"), ImageType.Normal, TextureDownloader_OnDownloadFinished); - - private void TextureDownloader_OnDownloadFinished(TextureRequestState state, AssetTexture asset) - { - if(state == TextureRequestState.Finished) - { - ManagedImage imgData; - Image bitmap; - - if (state == TextureRequestState.Finished) - { - OpenJPEG.DecodeToImage(assetTexture.AssetData, out imgData, out bitmap); - picInsignia.Image = bitmap; - } - } - } - - + + An Array of objects - + - Overload: Request a texture asset from the simulator using the system to - manage the requests and re-assemble the image from the packets received from the simulator + Serialize the object - The of the texture asset to download - The callback to fire when the image is retrieved. The callback - will contain the result of the request and the texture asset data + An containing the objects data - + - Overload: Request a texture asset from the simulator using the system to - manage the requests and re-assemble the image from the packets received from the simulator + Deserialize the message - The of the texture asset to download - The of the texture asset. - Use for most textures, or for baked layer texture assets - The callback to fire when the image is retrieved. The callback - will contain the result of the request and the texture asset data + An containing the data - + - Overload: Request a texture asset from the simulator using the system to - manage the requests and re-assemble the image from the packets received from the simulator + Prim ownership information for a specified owner on a single parcel - The of the texture asset to download - The of the texture asset. - Use for most textures, or for baked layer texture assets - The callback to fire when the image is retrieved. The callback - will contain the result of the request and the texture asset data - If true, the callback will be fired for each chunk of the downloaded image. - The callback asset parameter will contain all previously received chunks of the texture asset starting - from the beginning of the request - + + The of the prim owner, + UUID.Zero if agent has no permission to view prim owner information + + + The total number of prims + + + True if the OwnerID is a + + + True if the owner is online + This is no longer used by the LL Simulators + + + The date the most recent prim was rezzed + + - Cancel a texture request + The details of a single parcel in a region, also contains some regionwide globals - The texture assets - + + Simulator-local ID of this parcel + + + Maximum corner of the axis-aligned bounding box for this + parcel + + + Minimum corner of the axis-aligned bounding box for this + parcel + + + Total parcel land area + + + + + + Key of authorized buyer + + + Bitmap describing land layout in 4x4m squares across the + entire region + + + + + + Date land was claimed + + + Appears to always be zero + + + Parcel Description + + + + + + + + + Total number of primitives owned by the parcel group on + this parcel + + + Whether the land is deeded to a group or not + + + + + + Maximum number of primitives this parcel supports + + + The Asset UUID of the Texture which when applied to a + primitive will display the media + + + A URL which points to any Quicktime supported media type + + + A byte, if 0x1 viewer should auto scale media to fit object + + + URL For Music Stream + + + Parcel Name + + + Autoreturn value in minutes for others' objects + + + + + + Total number of other primitives on this parcel + + + UUID of the owner of this parcel + + + Total number of primitives owned by the parcel owner on + this parcel + + + + + + How long is pass valid for + + + Price for a temporary pass + + + + + + Disallows people outside the parcel from being able to see in + + + + + + + + + + + + True if the region denies access to age unverified users + + + + + + This field is no longer used + + + The result of a request for parcel properties + + + Sale price of the parcel, only useful if ForSale is set + The SalePrice will remain the same after an ownership + transfer (sale), so it can be used to see the purchase price after + a sale if the new owner has not changed it + + - Requests download of a mesh asset + Number of primitives your avatar is currently + selecting and sitting on in this parcel - UUID of the mesh asset - Callback when the request completes - + + + + - Lets TexturePipeline class fire the progress event + A number which increments by 1, starting at 0 for each ParcelProperties request. + Can be overriden by specifying the sequenceID with the ParcelPropertiesRequest being sent. + a Negative number indicates the action in has occurred. - The texture ID currently being downloaded - the number of bytes transferred - the total number of bytes expected - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Maximum primitives across the entire simulator - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Total primitives across the entire simulator - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Key of parcel snapshot - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Parcel ownership status - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Total number of primitives on this parcel - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Raised when the simulator responds sends + + A description of the media - - Raised during upload completes + + An Integer which represents the height of the media - - Raised during upload with progres update + + An integer which represents the width of the media - - Fired when the simulator sends an InitiateDownloadPacket, used to download terrain .raw files + + A boolean, if true the viewer should loop the media - - Fired when a texture is in the process of being downloaded by the TexturePipeline class + + A string which contains the mime type of the media - - - Callback used for various asset download requests - - Transfer information - Downloaded asset, null on fail + + true to obscure (hide) media url - + + true to obscure (hide) music url + + + true if avatars in this parcel should be invisible to people outside + + + true if avatars outside can hear any sounds avatars inside play + + + true if group members outside can hear any sounds avatars inside play + + - Callback used upon competition of baked texture upload + Serialize the object - Asset UUID of the newly uploaded baked texture + An containing the objects data - + - A callback that fires upon the completition of the RequestMesh call + Deserialize the message - Was the download successfull - Resulting mesh or null on problems + An containing the data - - Xfer data + + A message sent from the viewer to the simulator to updated a specific parcels settings - - Upload data + + The of the agent authorized to purchase this + parcel of land or a NULL if the sale is authorized to anyone - - Filename used on the simulator + + true to enable auto scaling of the parcel media - - Filename used by the client + + The category of this parcel used when search is enabled to restrict + search results - - UUID of the image that is in progress + + A string containing the description to set - - Number of bytes received so far + + The of the which allows for additional + powers and restrictions. - - Image size in bytes + + The which specifies how avatars which teleport + to this parcel are handled - - - Static pre-defined animations available to all agents - + + The LocalID of the parcel to update settings on - - Agent with afraid expression on face + + A string containing the description of the media which can be played + to visitors - - Agent aiming a bazooka (right handed) + + - - Agent aiming a bow (left handed) + + - - Agent aiming a hand gun (right handed) + + - - Agent aiming a rifle (right handed) + + - - Agent with angry expression on face + + - - Agent hunched over (away) + + - - Agent doing a backflip + + - - Agent laughing while holding belly + + - - Agent blowing a kiss + + - - Agent with bored expression on face + + - - Agent bowing to audience + + - - Agent brushing himself/herself off + + - - Agent in busy mode + + - - Agent clapping hands + + - - Agent doing a curtsey bow + + - - Agent crouching + + - - Agent crouching while walking + + - - Agent crying + + - - Agent unanimated with arms out (e.g. setting appearance) + + true if avatars in this parcel should be invisible to people outside - - Agent re-animated after set appearance finished + + true if avatars outside can hear any sounds avatars inside play - - Agent dancing + + true if group members outside can hear any sounds avatars inside play - - Agent dancing + + + Deserialize the message + + An containing the data + + + + Serialize the object + + An containing the objects data + + + Base class used for the RemoteParcelRequest message + + + + A message sent from the viewer to the simulator to request information + on a remote parcel + - - Agent dancing + + Local sim position of the parcel we are looking up - - Agent dancing + + Region handle of the parcel we are looking up - - Agent dancing + + Region of the parcel we are looking up - - Agent dancing + + + Serialize the object + + An containing the objects data - - Agent dancing + + + Deserialize the message + + An containing the data - - Agent dancing + + + A message sent from the simulator to the viewer in response to a + which will contain parcel information + - - Agent on ground unanimated + + The grid-wide unique parcel ID - - Agent boozing it up + + + Serialize the object + + An containing the objects data - - Agent with embarassed expression on face + + + Deserialize the message + + An containing the data - - Agent with afraid expression on face + + + A message containing a request for a remote parcel from a viewer, or a response + from the simulator to that request + - - Agent with angry expression on face + + The request or response details block - - Agent with bored expression on face + + + Serialize the object + + An containing the objects data - - Agent crying + + + Deserialize the message + + An containing the data - - Agent showing disdain (dislike) for something + + + Serialize the object + + An containing the objects data - - Agent with embarassed expression on face + + + Deserialize the message + + An containing the data - - Agent with frowning expression on face + + + Serialize the object + + An containing the objects data - - Agent with kissy face + + + Deserialize the message + + An containing the data - - Agent expressing laughgter + + + A message sent from the simulator to an agent which contains + the groups the agent is in + - - Agent with open mouth + + The Agent receiving the message - - Agent with repulsed expression on face + + An array containing information + for each the agent is a member of - - Agent expressing sadness + + An array containing information + for each the agent is a member of - - Agent shrugging shoulders + + + Serialize the object + + An containing the objects data - - Agent with a smile + + + Deserialize the message + + An containing the data - - Agent expressing surprise + + Group Details specific to the agent - - Agent sticking tongue out + + true of the agent accepts group notices - - Agent with big toothy smile + + The agents tier contribution to the group - - Agent winking + + The Groups - - Agent expressing worry + + The of the groups insignia - - Agent falling down + + The name of the group - - Agent walking (feminine version) + + The aggregate permissions the agent has in the group for all roles the agent + is assigned - - Agent wagging finger (disapproval) + + An optional block containing additional agent specific information - - I'm not sure I want to know + + true of the agent allows this group to be + listed in their profile - - Agent in superman position + + + A message sent from the viewer to the simulator which + specifies the language and permissions for others to detect + the language specified + - - Agent in superman position + + A string containng the default language + to use for the agent - - Agent greeting another + + true of others are allowed to + know the language setting - - Agent holding bazooka (right handed) + + + Serialize the object + + An containing the objects data - - Agent holding a bow (left handed) + + + Deserialize the message + + An containing the data - - Agent holding a handgun (right handed) + + + An EventQueue message sent from the simulator to an agent when the agent + leaves a group + - - Agent holding a rifle (right handed) + + + An Array containing the AgentID and GroupID + - - Agent throwing an object (right handed) + + + Serialize the object + + An containing the objects data - - Agent in static hover + + + Deserialize the message + + An containing the data - - Agent hovering downward + + An object containing the Agents UUID, and the Groups UUID - - Agent hovering upward + + The ID of the Agent leaving the group - - Agent being impatient + + The GroupID the Agent is leaving - - Agent jumping + + Base class for Asset uploads/results via Capabilities - - Agent jumping with fervor + + + The request state + - - Agent point to lips then rear end + + + Serialize the object + + An containing the objects data - - Agent landing from jump, finished flight, etc + + + Deserialize the message + + An containing the data - - Agent laughing + + + A message sent from the viewer to the simulator to request a temporary upload capability + which allows an asset to be uploaded + - - Agent landing from jump, finished flight, etc + + The Capability URL sent by the simulator to upload the baked texture to - - Agent sitting on a motorcycle + + + A message sent from the simulator that will inform the agent the upload is complete, + and the UUID of the uploaded asset + - - + + The uploaded texture asset ID - - Agent moving head side to side + + + A message sent from the viewer to the simulator to request a temporary + capability URI which is used to upload an agents baked appearance textures + - - Agent moving head side to side with unhappy expression + + Object containing request or response - - Agent taunting another + + + Serialize the object + + An containing the objects data - - + + + Deserialize the message + + An containing the data - - Agent giving peace sign + + + A message sent from the simulator which indicates the minimum version required for + using voice chat + - - Agent pointing at self + + Major Version Required - - Agent pointing at another + + Minor version required - - Agent preparing for jump (bending knees) + + The name of the region sending the version requrements - - Agent punching with left hand + + + Serialize the object + + An containing the objects data - - Agent punching with right hand + + + Deserialize the message + + An containing the data - - Agent acting repulsed + + + A message sent from the simulator to the viewer containing the + voice server URI + - - Agent trying to be Chuck Norris + + The Parcel ID which the voice server URI applies - - Rocks, Paper, Scissors 1, 2, 3 + + The name of the region - - Agent with hand flat over other hand + + A uri containing the server/channel information + which the viewer can utilize to participate in voice conversations - - Agent with fist over other hand + + + Serialize the object + + An containing the objects data - - Agent with two fingers spread over other hand + + + Deserialize the message + + An containing the data - - Agent running + + + + - - Agent appearing sad + + - - Agent saluting + + - - Agent shooting bow (left handed) + + + Serialize the object + + An containing the objects data - - Agent cupping mouth as if shouting + + + Deserialize the message + + An containing the data - - Agent shrugging shoulders + + + A message sent by the viewer to the simulator to request a temporary + capability for a script contained with in a Tasks inventory to be updated + - - Agent in sit position + + Object containing request or response - - Agent in sit position (feminine) + + + Serialize the object + + An containing the objects data - - Agent in sit position (generic) + + + Deserialize the message + + An containing the data - - Agent sitting on ground + + + A message sent from the simulator to the viewer to indicate + a Tasks scripts status. + - - Agent sitting on ground + + The Asset ID of the script - - + + True of the script is compiled/ran using the mono interpreter, false indicates it + uses the older less efficient lsl2 interprter - - Agent sleeping on side + + The Task containing the scripts - - Agent smoking + + true of the script is in a running state - - Agent inhaling smoke + + + Serialize the object + + An containing the objects data - - + + + Deserialize the message + + An containing the data - - Agent taking a picture + + + A message containing the request/response used for updating a gesture + contained with an agents inventory + - - Agent standing + + Object containing request or response - - Agent standing up + + + Serialize the object + + An containing the objects data - - Agent standing + + + Deserialize the message + + An containing the data - - Agent standing + + + A message request/response which is used to update a notecard contained within + a tasks inventory + - - Agent standing + + The of the Task containing the notecard asset to update - - Agent standing + + The notecard assets contained in the tasks inventory - - Agent stretching + + + Serialize the object + + An containing the objects data - - Agent in stride (fast walk) + + + Deserialize the message + + An containing the data - - Agent surfing + + + A reusable class containing a message sent from the viewer to the simulator to request a temporary uploader capability + which is used to update an asset in an agents inventory + - - Agent acting surprised + + + The Notecard AssetID to replace + - - Agent striking with a sword + + + Serialize the object + + An containing the objects data - - Agent talking (lips moving) + + + Deserialize the message + + An containing the data - - Agent throwing a tantrum + + + A message containing the request/response used for updating a notecard + contained with an agents inventory + - - Agent throwing an object (right handed) + + Object containing request or response - - Agent trying on a shirt + + + Serialize the object + + An containing the objects data - - Agent turning to the left + + + Deserialize the message + + An containing the data - - Agent turning to the right + + + Serialize the object + + An containing the objects data - - Agent typing + + + Deserialize the message + + An containing the data - - Agent walking + + + A message sent from the simulator to the viewer which indicates + an error occurred while attempting to update a script in an agents or tasks + inventory + - - Agent whispering + + true of the script was successfully compiled by the simulator - - Agent whispering with fingers in mouth + + A string containing the error which occured while trying + to update the script - - Agent winking + + A new AssetID assigned to the script - - Agent winking + + + A message sent from the viewer to the simulator + requesting the update of an existing script contained + within a tasks inventory + - - Agent worried + + if true, set the script mode to running - - Agent nodding yes + + The scripts InventoryItem ItemID to update - - Agent nodding yes with happy face + + A lowercase string containing either "mono" or "lsl2" which + specifies the script is compiled and ran on the mono runtime, or the older + lsl runtime - - Agent floating with legs and arms crossed + + The tasks which contains the script to update - + - A dictionary containing all pre-defined animations + Serialize the object - A dictionary containing the pre-defined animations, - where the key is the animations ID, and the value is a string - containing a name to identify the purpose of the animation + An containing the objects data - + - Level of Detail mesh + Deserialize the message + An containing the data - + - A linkset asset, containing a parent primitive and zero or more children + A message containing either the request or response used in updating a script inside + a tasks inventory - - Initializes a new instance of an AssetPrim object + + Object containing request or response - + - Initializes a new instance of an AssetPrim object + Serialize the object - A unique specific to this asset - A byte array containing the raw asset data + An containing the objects data - + - + Deserialize the message + An containing the data - + - + Response from the simulator to notify the viewer the upload is completed, and + the UUID of the script asset and its compiled status - - - Override the base classes AssetType + + The uploaded texture asset ID - + + true of the script was compiled successfully + + - Only used internally for XML serialization/deserialization + A message sent from a viewer to the simulator requesting a temporary uploader capability + used to update a script contained in an agents inventory - + + The existing asset if of the script in the agents inventory to replace + + + The language of the script + Defaults to lsl version 2, "mono" might be another possible option + + - The deserialized form of a single primitive in a linkset asset + Serialize the object + An containing the objects data - + - + Deserialize the message + An containing the data - - The event subscribers, null of no subscribers - - - Raises the AttachedSound Event - A AttachedSoundEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the AttachedSoundGainChange Event - A AttachedSoundGainChangeEventArgs object containing - the data sent from the simulator + + + A message containing either the request or response used in updating a script inside + an agents inventory + - - Thread sync lock object + + Object containing request or response - - The event subscribers, null of no subscribers + + + Serialize the object + + An containing the objects data - - Raises the SoundTrigger Event - A SoundTriggerEventArgs object containing - the data sent from the simulator + + + Deserialize the message + + An containing the data - - Thread sync lock object + + + Serialize the object + + An containing the objects data - - The event subscribers, null of no subscribers + + + Deserialize the message + + An containing the data - - Raises the PreloadSound Event - A PreloadSoundEventArgs object containing - the data sent from the simulator + + Base class for Map Layers via Capabilities - - Thread sync lock object + + - + - Construct a new instance of the SoundManager class, used for playing and receiving - sound assets + Serialize the object - A reference to the current GridClient instance + An containing the objects data - + - Plays a sound in the current region at full volume from avatar position + Deserialize the message - UUID of the sound to be played + An containing the data - + - Plays a sound in the current region at full volume + Sent by an agent to the capabilities server to request map layers - UUID of the sound to be played. - position for the sound to be played at. Normally the avatar. - + - Plays a sound in the current region + A message sent from the simulator to the viewer which contains an array of map images and their grid coordinates - UUID of the sound to be played. - position for the sound to be played at. Normally the avatar. - volume of the sound, from 0.0 to 1.0 - + + An array containing LayerData items + + - Plays a sound in the specified sim + Serialize the object - UUID of the sound to be played. - UUID of the sound to be played. - position for the sound to be played at. Normally the avatar. - volume of the sound, from 0.0 to 1.0 + An containing the objects data - + - Play a sound asset + Deserialize the message - UUID of the sound to be played. - handle id for the sim to be played in. - position for the sound to be played at. Normally the avatar. - volume of the sound, from 0.0 to 1.0 - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + An containing the data - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + + An object containing map location details + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + The Asset ID of the regions tile overlay - - Raised when the simulator sends us data containing - sound + + The grid location of the southern border of the map tile - - Raised when the simulator sends us data containing - ... + + The grid location of the western border of the map tile - - Raised when the simulator sends us data containing - ... + + The grid location of the eastern border of the map tile - - Raised when the simulator sends us data containing - ... + + The grid location of the northern border of the map tile - - Provides data for the event - The event occurs when the simulator sends - the sound data which emits from an agents attachment - - The following code example shows the process to subscribe to the event - and a stub to handle the data passed from the simulator - - // Subscribe to the AttachedSound event - Client.Sound.AttachedSound += Sound_AttachedSound; - - // process the data raised in the event here - private void Sound_AttachedSound(object sender, AttachedSoundEventArgs e) - { - // ... Process AttachedSoundEventArgs here ... - } - - + + Object containing request or response - + - Construct a new instance of the SoundTriggerEventArgs class + Serialize the object - Simulator where the event originated - The sound asset id - The ID of the owner - The ID of the object - The volume level - The - - - Simulator where the event originated - - - Get the sound asset id + An containing the objects data - - Get the ID of the owner + + + Deserialize the message + + An containing the data - - Get the ID of the Object + + + New as of 1.23 RC1, no details yet. + - - Get the volume level + + + Serialize the object + + An containing the objects data - - Get the + + + Deserialize the message + + An containing the data - - Provides data for the event - The event occurs when an attached sound - changes its volume level + + + Serialize the object + + An containing the objects data - + - Construct a new instance of the AttachedSoundGainChangedEventArgs class + Deserialize the message - Simulator where the event originated - The ID of the Object - The new volume level + An containing the data - - Simulator where the event originated + + A string containing the method used - - Get the ID of the Object + + + A request sent from an agent to the Simulator to begin a new conference. + Contains a list of Agents which will be included in the conference + - - Get the volume level + + An array containing the of the agents invited to this conference - - Provides data for the event - The event occurs when the simulator forwards - a request made by yourself or another agent to play either an asset sound or a built in sound - - Requests to play sounds where the is not one of the built-in - will require sending a request to download the sound asset before it can be played - - - The following code example uses the , - and - properties to display some information on a sound request on the window. - - // subscribe to the event - Client.Sound.SoundTrigger += Sound_SoundTrigger; - - // play the pre-defined BELL_TING sound - Client.Sound.SendSoundTrigger(Sounds.BELL_TING); - - // handle the response data - private void Sound_SoundTrigger(object sender, SoundTriggerEventArgs e) - { - Console.WriteLine("{0} played the sound {1} at volume {2}", - e.OwnerID, e.SoundID, e.Gain); - } - - + + The conferences Session ID - + - Construct a new instance of the SoundTriggerEventArgs class + Serialize the object - Simulator where the event originated - The sound asset id - The ID of the owner - The ID of the object - The ID of the objects parent - The volume level - The regionhandle - The source position - - - Simulator where the event originated - - - Get the sound asset id - - - Get the ID of the owner + An containing the objects data - - Get the ID of the Object + + + Deserialize the message + + An containing the data - - Get the ID of the objects parent + + + A moderation request sent from a conference moderator + Contains an agent and an optional action to take + - - Get the volume level + + The Session ID - - Get the regionhandle + + - - Get the source position + + A list containing Key/Value pairs, known valid values: + key: text value: true/false - allow/disallow specified agents ability to use text in session + key: voice value: true/false - allow/disallow specified agents ability to use voice in session + + "text" or "voice" - - Provides data for the event - The event occurs when the simulator sends - the appearance data for an avatar - - The following code example uses the and - properties to display the selected shape of an avatar on the window. - - // subscribe to the event - Client.Avatars.AvatarAppearance += Avatars_AvatarAppearance; - - // handle the data when the event is raised - void Avatars_AvatarAppearance(object sender, AvatarAppearanceEventArgs e) - { - Console.WriteLine("The Agent {0} is using a {1} shape.", e.AvatarID, (e.VisualParams[31] > 0) : "male" ? "female") - } - - + + - + - Construct a new instance of the PreloadSoundEventArgs class + Serialize the object - Simulator where the event originated - The sound asset id - The ID of the owner - The ID of the object - - - Simulator where the event originated + An containing the objects data - - Get the sound asset id + + + Deserialize the message + + An containing the data - - Get the ID of the owner + + + A message sent from the agent to the simulator which tells the + simulator we've accepted a conference invitation + - - Get the ID of the Object + + The conference SessionID - + - A Name Value pair with additional settings, used in the protocol - primarily to transmit avatar names and active group in object packets + Serialize the object + An containing the objects data - - - - - + + + Deserialize the message + + An containing the data - - + + + Serialize the object + + An containing the objects data - - + + + Deserialize the message + + An containing the data - - + + + Serialize the object + + An containing the objects data - + - Constructor that takes all the fields as parameters + Deserialize the message - - - - - + An containing the data - + - Constructor that takes a single line from a NameValue field + Serialize the object - + An containing the objects data - - Type of the value + + + Deserialize the message + + An containing the data - - Unknown + + Key of sender - - String value + + Name of sender - - + + Key of destination avatar - - + + ID of originating estate - - + + Key of originating region - - + + Coordinates in originating region - - Deprecated + + Instant message type - - String value, but designated as an asset + + Group IM session toggle - - + + Key of IM session, for Group Messages, the groups UUID - - - - + + Timestamp of the instant message - - + + Instant message text - - + + Whether this message is held for offline avatars - - + + Context specific packed data - - + + Is this invitation for voice group/conference chat - + - + Serialize the object + An containing the objects data - - - - - + + + Deserialize the message + + An containing the data - - + + + Sent from the simulator to the viewer. + + When an agent initially joins a session the AgentUpdatesBlock object will contain a list of session members including + a boolean indicating they can use voice chat in this session, a boolean indicating they are allowed to moderate + this session, and lastly a string which indicates another agent is entering the session with the Transition set to "ENTER" + + During the session lifetime updates on individuals are sent. During the update the booleans sent during the initial join are + excluded with the exception of the Transition field. This indicates a new user entering or exiting the session with + the string "ENTER" or "LEAVE" respectively. + - - + + + Serialize the object + + An containing the objects data - - + + + Deserialize the message + + An containing the data - - Describes tasks returned in LandStatReply + + + An EventQueue message sent when the agent is forcibly removed from a chatterbox session + - + - Estate level administration and utilities + A string containing the reason the agent was removed - - Textures for each of the four terrain height levels + + + The ChatterBoxSession's SessionID + - - Upper/lower texture boundaries for each corner of the sim + + + Serialize the object + + An containing the objects data - + - Constructor for EstateTools class + Deserialize the message - + An containing the data - - The event subscribers. null if no subcribers + + + Serialize the object + + An containing the objects data - - Raises the TopCollidersReply event - A TopCollidersReplyEventArgs object containing the - data returned from the data server + + + Deserialize the message + + An containing the data - - Thread sync lock object + + + Serialize the object + + An containing the objects data - - The event subscribers. null if no subcribers + + + Deserialize the message + + An containing the data - - Raises the TopScriptsReply event - A TopScriptsReplyEventArgs object containing the - data returned from the data server + + + Serialize the object + + An containing the objects data - - Thread sync lock object + + + Deserialize the message + + An containing the data - - The event subscribers. null if no subcribers + + + Serialize the object + + An containing the objects data - - Raises the EstateUsersReply event - A EstateUsersReplyEventArgs object containing the - data returned from the data server + + + Deserialize the message + + An containing the data - - Thread sync lock object + + + + - - The event subscribers. null if no subcribers + + + Serialize the object + + An containing the objects data - - Raises the EstateGroupsReply event - A EstateGroupsReplyEventArgs object containing the - data returned from the data server + + + Deserialize the message + + An containing the data - - Thread sync lock object + + + Serialize the object + + An containing the objects data - - The event subscribers. null if no subcribers + + + Deserialize the message + + An containing the data - - Raises the EstateManagersReply event - A EstateManagersReplyEventArgs object containing the - data returned from the data server + + + Serialize the object + + An containing the objects data - - Thread sync lock object + + + Deserialize the message + + An containing the data - - The event subscribers. null if no subcribers + + + Event Queue message describing physics engine attributes of a list of objects + Sim sends these when object is selected + - - Raises the EstateBansReply event - A EstateBansReplyEventArgs object containing the - data returned from the data server + + Array with the list of physics properties - - Thread sync lock object + + + Serializes the message + + Serialized OSD - - The event subscribers. null if no subcribers + + + Deseializes the message + + Incoming data to deserialize - - Raises the EstateCovenantReply event - A EstateCovenantReplyEventArgs object containing the - data returned from the data server + + + A message sent from the viewer to the simulator which + specifies that the user has changed current URL + of the specific media on a prim face + - - Thread sync lock object + + + New URL + - - The event subscribers. null if no subcribers + + + Prim UUID where navigation occured + - - Raises the EstateUpdateInfoReply event - A EstateUpdateInfoReplyEventArgs object containing the - data returned from the data server + + + Face index + - - Thread sync lock object + + + Serialize the object + + An containing the objects data - + - Requests estate information such as top scripts and colliders + Deserialize the message - - - - + An containing the data - - Requests estate settings, including estate manager and access/ban lists + + Base class used for the ObjectMedia message - - Requests the "Top Scripts" list for the current region + + + Message used to retrive prim media data + - - Requests the "Top Colliders" list for the current region + + + Prim UUID + - + - Set several estate specific configuration variables + Requested operation, either GET or UPDATE - The Height of the waterlevel over the entire estate. Defaults to 20 - The maximum height change allowed above the baked terrain. Defaults to 4 - The minimum height change allowed below the baked terrain. Defaults to -4 - true to use - if True forces the sun position to the position in SunPosition - The current position of the sun on the estate, or when FixedSun is true the static position - the sun will remain. 6.0 = Sunrise, 30.0 = Sunset - + - Request return of objects owned by specified avatar + Serialize object - The Agents owning the primitives to return - specify the coverage and type of objects to be included in the return - true to perform return on entire estate + Serialized object as OSDMap - - - - + + + Deserialize the message + + An containing the data - + - Used for setting and retrieving various estate panel settings + Message used to update prim media data - EstateOwnerMessage Method field - List of parameters to include - + - Kick an avatar from an estate + Prim UUID - Key of Agent to remove - + - Ban an avatar from an estate - Key of Agent to remove - Ban user from this estate and all others owned by the estate owner + Array of media entries indexed by face number + - - Unban an avatar from an estate - Key of Agent to remove - /// Unban user from this estate and all others owned by the estate owner + + + Media version string + - + - Send a message dialog to everyone in an entire estate + Serialize object - Message to send all users in the estate + Serialized object as OSDMap - + - Send a message dialog to everyone in a simulator + Deserialize the message - Message to send all users in the simulator + An containing the data - + - Send an avatar back to their home location + Message used to update prim media data - Key of avatar to send home - + - Begin the region restart process + Prim UUID - + - Cancels a region restart + Array of media entries indexed by face number - - Estate panel "Region" tab settings - - - Estate panel "Debug" tab settings - - - Used for setting the region's terrain textures for its four height levels - - - - - - - Used for setting sim terrain texture heights - - - Requests the estate covenant - - + - Upload a terrain RAW file + Requested operation, either GET or UPDATE - A byte array containing the encoded terrain data - The name of the file being uploaded - The Id of the transfer request - + - Teleports all users home in current Estate + Serialize object + Serialized object as OSDMap - + - Remove estate manager - Key of Agent to Remove - removes manager to this estate and all others owned by the estate owner + Deserialize the message + + An containing the data - + - Add estate manager - Key of Agent to Add - Add agent as manager to this estate and all others owned by the estate owner + Message for setting or getting per face MediaEntry + - + + The request or response details block + + - Add's an agent to the estate Allowed list - Key of Agent to Add - Add agent as an allowed reisdent to All estates if true + Serialize the object + + An containing the objects data - + - Removes an agent from the estate Allowed list - Key of Agent to Remove - Removes agent as an allowed reisdent from All estates if true + Deserialize the message + + An containing the data - - - - Add's a group to the estate Allowed list - Key of Group to Add - Add Group as an allowed group to All estates if true + + Details about object resource usage - - - - Removes a group from the estate Allowed list - Key of Group to Remove - Removes Group as an allowed Group from All estates if true + + Object UUID - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Object name - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Indicates if object is group owned - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Locatio of the object - - Raised when the data server responds to a request. + + Object owner - - Raised when the data server responds to a request. + + Resource usage, keys are resource names, values are resource usage for that specific resource - - Raised when the data server responds to a request. + + + Deserializes object from OSD + + An containing the data - - Raised when the data server responds to a request. + + + Makes an instance based on deserialized data + + serialized data + Instance containg deserialized data - - Raised when the data server responds to a request. + + Details about parcel resource usage - - Raised when the data server responds to a request. + + Parcel UUID - - Raised when the data server responds to a request. + + Parcel local ID - - Raised when the data server responds to a request. + + Parcel name - - Used in the ReportType field of a LandStatRequest + + Indicates if parcel is group owned - - Used by EstateOwnerMessage packets + + Parcel owner - - Used by EstateOwnerMessage packets + + Array of containing per object resource usage - + - + Deserializes object from OSD + An containing the data - - No flags set + + + Makes an instance based on deserialized data + + serialized data + Instance containg deserialized data - - Only return targets scripted objects + + Resource usage base class, both agent and parcel resource + usage contains summary information - - Only return targets objects if on others land + + Summary of available resources, keys are resource names, + values are resource usage for that specific resource - - Returns target's scripted objects and objects on other parcels + + Summary resource usage, keys are resource names, + values are resource usage for that specific resource - - Ground texture settings for each corner of the region + + + Serializes object + + serialized data - - Used by GroundTextureHeightSettings + + + Deserializes object from OSD + + An containing the data - - The high and low texture thresholds for each corner of the sim + + Agent resource usage - - Raised on LandStatReply when the report type is for "top colliders" + + Per attachment point object resource usage - - Construct a new instance of the TopCollidersReplyEventArgs class - The number of returned items in LandStatReply - Dictionary of Object UUIDs to tasks returned in LandStatReply + + + Deserializes object from OSD + + An containing the data - + - The number of returned items in LandStatReply + Makes an instance based on deserialized data + serialized data + Instance containg deserialized data - + - A Dictionary of Object UUIDs to tasks returned in LandStatReply + Detects which class handles deserialization of this message + An containing the data + Object capable of decoding this message - - Raised on LandStatReply when the report type is for "top Scripts" + + Request message for parcel resource usage - - Construct a new instance of the TopScriptsReplyEventArgs class - The number of returned items in LandStatReply - Dictionary of Object UUIDs to tasks returned in LandStatReply + + UUID of the parel to request resource usage info - + - The number of scripts returned in LandStatReply + Serializes object + serialized data - + - A Dictionary of Object UUIDs to tasks returned in LandStatReply + Deserializes object from OSD + An containing the data - - Returned, along with other info, upon a successful .RequestInfo() + + Response message for parcel resource usage - - Construct a new instance of the EstateBansReplyEventArgs class - The estate's identifier on the grid - The number of returned items in LandStatReply - User UUIDs banned + + URL where parcel resource usage details can be retrieved - + + URL where parcel resource usage summary can be retrieved + + - The identifier of the estate + Serializes object + serialized data - + - The number of returned itmes + Deserializes object from OSD + An containing the data - + - List of UUIDs of Banned Users + Detects which class handles deserialization of this message + An containing the data + Object capable of decoding this message - - Returned, along with other info, upon a successful .RequestInfo() + + Parcel resource usage - - Construct a new instance of the EstateUsersReplyEventArgs class - The estate's identifier on the grid - The number of users - Allowed users UUIDs + + Array of containing per percal resource usage - + - The identifier of the estate + Deserializes object from OSD + An containing the data - + - The number of returned items + Reply to request for bunch if display names - - - List of UUIDs of Allowed Users - + + Current display name - - Returned, along with other info, upon a successful .RequestInfo() + + Following UUIDs failed to return a valid display name - - Construct a new instance of the EstateGroupsReplyEventArgs class - The estate's identifier on the grid - The number of Groups - Allowed Groups UUIDs + + + Serializes the message + + OSD containting the messaage - + - The identifier of the estate + Message sent when requesting change of the display name - + + Current display name + + + Desired new display name + + - The number of returned items + Serializes the message + OSD containting the messaage - + - List of UUIDs of Allowed Groups + Message recieved in response to request to change display name - - Returned, along with other info, upon a successful .RequestInfo() + + New display name - - Construct a new instance of the EstateManagersReplyEventArgs class - The estate's identifier on the grid - The number of Managers - Managers UUIDs + + String message indicating the result of the operation - - - The identifier of the estate - + + Numerical code of the result, 200 indicates success - + - The number of returned items + Serializes the message + OSD containting the messaage - + - List of UUIDs of the Estate's Managers + Message recieved when someone nearby changes their display name - - Returned, along with other info, upon a successful .RequestInfo() + + Previous display name, empty string if default - - Construct a new instance of the EstateCovenantReplyEventArgs class - The Covenant ID - The timestamp - The estate's name - The Estate Owner's ID (can be a GroupID) + + New display name - + - The Covenant + Serializes the message + OSD containting the messaage - + - The timestamp + Return a decoded capabilities message as a strongly typed object + A string containing the name of the capabilities message key + An to decode + A strongly typed object containing the decoded information from the capabilities message, or null + if no existing Message object exists for the specified event - + - The Estate name + Permissions for control of object media - + - The Estate Owner's ID (can be a GroupID) + Style of cotrols that shold be displayed to the user - - Returned, along with other info, upon a successful .RequestInfo() + + + Class representing media data for a single face + - - Construct a new instance of the EstateUpdateInfoReplyEventArgs class - The estate's name - The Estate Owners ID (can be a GroupID) - The estate's identifier on the grid - + + Is display of the alternative image enabled - + + Should media auto loop + + + Shoule media be auto played + + + Auto scale media to prim face + + + Should viewer automatically zoom in on the face when clicked + + + Should viewer interpret first click as interaction with the media + or when false should the first click be treated as zoom in commadn + + + Style of controls viewer should display when + viewer media on this face + + + Starting URL for the media + + + Currently navigated URL + + + Media height in pixes + + + Media width in pixels + + + Who can controls the media + + + Who can interact with the media + + + Is URL whitelist enabled + + + Array of URLs that are whitelisted + + - The estate's name + Serialize to OSD + OSDMap with the serialized data - + - The Estate Owner's ID (can be a GroupID) + Deserialize from OSD data + Serialized OSD data + Deserialized object - + - The identifier of the estate on the grid + The type of bump-mapping applied to a face - + - - - Holds group information for Avatars such as those you might find in a profile - + + - - true of Avatar accepts group notices + + - - Groups Key + + - - Texture Key for groups insignia + + - - Name of the group + + - - Powers avatar has in the group + + - - Avatars Currently selected title + + - - true of Avatar has chosen to list this in their profile + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - Contains an animation currently being played by an agent + The level of shininess applied to a face - - The ID of the animation asset + + - - A number to indicate start order of currently playing animations - On Linden Grids this number is unique per region, with OpenSim it is per client + + - + - - - Holds group information on an individual profile pick - + + - + - Retrieve friend status notifications, and retrieve avatar names and - profiles + The texture mapping style used for a face - - The event subscribers, null of no subscribers - - - Raises the AvatarAnimation Event - An AvatarAnimationEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + - - Raises the AvatarAppearance Event - A AvatarAppearanceEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + + Flags in the TextureEntry block that describe which properties are + set + - - The event subscribers, null of no subscribers + + - - Raises the UUIDNameReply Event - A UUIDNameReplyEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + - - Raises the AvatarInterestsReply Event - A AvatarInterestsReplyEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + - - Raises the AvatarPropertiesReply Event - A AvatarPropertiesReplyEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + - - Raises the AvatarGroupsReply Event - A AvatarGroupsReplyEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + - - Raises the AvatarPickerReply Event - A AvatarPickerReplyEventArgs object containing - the data sent from the simulator + + + Level of Detail mesh + - - Thread sync lock object + + + Contains all mesh faces that belong to a prim + - - The event subscribers, null of no subscribers + + List of primitive faces - - Raises the ViewerEffectPointAt Event - A ViewerEffectPointAtEventArgs object containing - the data sent from the simulator + + + Decodes mesh asset into FacetedMesh + + Mesh primitive + Asset retrieved from the asset server + Level of detail + Resulting decoded FacetedMesh + True if mesh asset decoding was successful - - Thread sync lock object + + + This is used to login a specific user account(s). It may only be called after + Connector initialization has completed successfully + + Handle returned from successful Connector ‘create’ request + User's account name + User's account password + Values may be “AutoAnswer” or “VerifyAnswer” + "" + This is an integer that specifies how often + the daemon will send participant property events while in a channel. If this is not set + the default will be “on state change”, which means that the events will be sent when + the participant starts talking, stops talking, is muted, is unmuted. + The valid values are: + 0 – Never + 5 – 10 times per second + 10 – 5 times per second + 50 – 1 time per second + 100 – on participant state change (this is the default) + false + - - The event subscribers, null of no subscribers + + + This is used to logout a user session. It should only be called with a valid AccountHandle. + + Handle returned from successful Connector ‘login’ request + - - Raises the ViewerEffectLookAt Event - A ViewerEffectLookAtEventArgs object containing - the data sent from the simulator + + + This is used to get a list of audio devices that can be used for capture (input) of voice. + + - - Thread sync lock object + + + This is used to get a list of audio devices that can be used for render (playback) of voice. + - - The event subscribers, null of no subscribers + + + This command is used to select the render device. + + The name of the device as returned by the Aux.GetRenderDevices command. - - Raises the ViewerEffect Event - A ViewerEffectEventArgs object containing - the data sent from the simulator + + + This command is used to select the capture device. + + The name of the device as returned by the Aux.GetCaptureDevices command. - - Thread sync lock object + + + This command is used to start the audio capture process which will cause + AuxAudioProperty Events to be raised. These events can be used to display a + microphone VU meter for the currently selected capture device. This command + should not be issued if the user is on a call. + + (unused but required) + - - The event subscribers, null of no subscribers + + + This command is used to stop the audio capture process. + + - - Raises the AvatarPicksReply Event - A AvatarPicksReplyEventArgs object containing - the data sent from the simulator + + + This command is used to set the mic volume while in the audio tuning process. + Once an acceptable mic level is attained, the application must issue a + connector set mic volume command to have that level be used while on voice + calls. + + the microphone volume (-100 to 100 inclusive) + - - Thread sync lock object + + + This command is used to set the speaker volume while in the audio tuning + process. Once an acceptable speaker level is attained, the application must + issue a connector set speaker volume command to have that level be used while + on voice calls. + + the speaker volume (-100 to 100 inclusive) + - - The event subscribers, null of no subscribers + + + This is used to initialize and stop the Connector as a whole. The Connector + Create call must be completed successfully before any other requests are made + (typically during application initialization). The shutdown should be called + when the application is shutting down to gracefully release resources + + A string value indicting the Application name + URL for the management server + LoggingSettings + + - - Raises the PickInfoReply Event - A PickInfoReplyEventArgs object containing - the data sent from the simulator + + + Shutdown Connector -- Should be called when the application is shutting down + to gracefully release resources + + Handle returned from successful Connector ‘create’ request - - Thread sync lock object + + + Mute or unmute the microphone + + Handle returned from successful Connector ‘create’ request + true (mute) or false (unmute) - - The event subscribers, null of no subscribers + + + Mute or unmute the speaker + + Handle returned from successful Connector ‘create’ request + true (mute) or false (unmute) - - Raises the AvatarClassifiedReply Event - A AvatarClassifiedReplyEventArgs object containing - the data sent from the simulator + + + Set microphone volume + + Handle returned from successful Connector ‘create’ request + The level of the audio, a number between -100 and 100 where + 0 represents ‘normal’ speaking volume - - Thread sync lock object + + + Set local speaker volume + + Handle returned from successful Connector ‘create’ request + The level of the audio, a number between -100 and 100 where + 0 represents ‘normal’ speaking volume - - The event subscribers, null of no subscribers + + + Start up the Voice service. + - - Raises the ClassifiedInfoReply Event - A ClassifiedInfoReplyEventArgs object containing - the data sent from the simulator + + + Handle miscellaneous request status + + + + ///If something goes wrong, we log it. - - Thread sync lock object + + + Cleanup oject resources + - + - Represents other avatars + Request voice cap when changing regions - - - Tracks the specified avatar on your map - Avatar ID to track + + + Handle a change in session state + - + - Request a single avatar name + Close a voice session - The avatar key to retrieve a name for + - + - Request a list of avatar names + Locate a Session context from its handle - The avatar keys to retrieve names for + Creates the session context if it does not exist. - + - Start a request for Avatar Properties + Handle completion of main voice cap request. - + + + - + - Search for an avatar (first name, last name) + Daemon has started so connect to it. - The name to search for - An ID to associate with this query - + - Start a request for Avatar Picks + The daemon TCP connection is open. - UUID of the avatar - + - Start a request for Avatar Classifieds + Handle creation of the Connector. - UUID of the avatar - + - Start a request for details of a specific profile pick + Handle response to audio output device query - UUID of the avatar - UUID of the profile pick - + - Start a request for details of a specific profile classified + Handle response to audio input device query - UUID of the avatar - UUID of the profile classified - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + + Set voice channel for new parcel + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + + Request info from a parcel capability Uri. + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + + Receive parcel voice cap + + + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + + Tell Vivox where we are standing + + This has to be called when we move or turn. - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + + Start and stop updating out position. + + - + - Crossed region handler for message that comes across the EventQueue. Sent to an agent - when the agent crosses a sim border into a new region. + Starts a thread that keeps the daemon running - The message key - the IMessage object containing the deserialized data sent from the simulator - The which originated the packet + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + + Stops the daemon and the thread keeping it running + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + + + + + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + + Create a Session + Sessions typically represent a connection to a media session with one or more + participants. This is used to generate an ‘outbound’ call to another user or + channel. The specifics depend on the media types involved. A session handle is + required to control the local user functions within the session (or remote + users if the current account has rights to do so). Currently creating a + session automatically connects to the audio media, there is no need to call + Session.Connect at this time, this is reserved for future use. + + Handle returned from successful Connector ‘create’ request + This is the URI of the terminating point of the session (ie who/what is being called) + This is the display name of the entity being called (user or channel) + Only needs to be supplied when the target URI is password protected + This indicates the format of the password as passed in. This can either be + “ClearText” or “SHA1UserName”. If this element does not exist, it is assumed to be “ClearText”. If it is + “SHA1UserName”, the password as passed in is the SHA1 hash of the password and username concatenated together, + then base64 encoded, with the final “=” character stripped off. + + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + + Used to accept a call + + SessionHandle such as received from SessionNewEvent + "default" + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + + This command is used to start the audio render process, which will then play + the passed in file through the selected audio render device. This command + should not be issued if the user is on a call. + + The fully qualified path to the sound file. + True if the file is to be played continuously and false if it is should be played once. + + + + + This command is used to stop the audio render process. + + The fully qualified path to the sound file issued in the start render command. + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + + This is used to ‘end’ an established session (i.e. hang-up or disconnect). + + Handle returned from successful Session ‘create’ request or a SessionNewEvent + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + + Set the combined speaking and listening position in 3D space. + + Handle returned from successful Session ‘create’ request or a SessionNewEvent + Speaking position + Listening position + - - Raised when the simulator sends us data containing - an agents animation playlist + + + Set User Volume for a particular user. Does not affect how other users hear that user. + + Handle returned from successful Session ‘create’ request or a SessionNewEvent + + The level of the audio, a number between -100 and 100 where 0 represents ‘normal’ speaking volume + - - Raised when the simulator sends us data containing - the appearance information for an agent + + + List of audio input devices + - - Raised when the simulator sends us data containing - agent names/id values + + + List of audio output devices + - - Raised when the simulator sends us data containing - the interests listed in an agents profile + + + Set audio test mode + - - Raised when the simulator sends us data containing - profile property information for an agent + + + Event for most mundane request reposnses. + - - Raised when the simulator sends us data containing - the group membership an agent is a member of + + Response to Connector.Create request - - Raised when the simulator sends us data containing - name/id pair + + Response to Aux.GetCaptureDevices request - - Raised when the simulator sends us data containing - the objects and effect when an agent is pointing at + + Response to Aux.GetRenderDevices request - - Raised when the simulator sends us data containing - the objects and effect when an agent is looking at + + Audio Properties Events are sent after audio capture is started. + These events are used to display a microphone VU meter - - Raised when the simulator sends us data containing - an agents viewer effect information + + Response to Account.Login request - - Raised when the simulator sends us data containing - the top picks from an agents profile + + This event message is sent whenever the login state of the + particular Account has transitioned from one value to another - - Raised when the simulator sends us data containing - the Pick details + + Enable logging - - Raised when the simulator sends us data containing - the classified ads an agent has placed + + The folder where any logs will be created - - Raised when the simulator sends us data containing - the details of a classified ad + + This will be prepended to beginning of each log file - - Provides data for the event - The event occurs when the simulator sends - the animation playlist for an agent - - The following code example uses the and - properties to display the animation playlist of an avatar on the window. - - // subscribe to the event - Client.Avatars.AvatarAnimation += Avatars_AvatarAnimation; - - private void Avatars_AvatarAnimation(object sender, AvatarAnimationEventArgs e) - { - // create a dictionary of "known" animations from the Animations class using System.Reflection - Dictionary<UUID, string> systemAnimations = new Dictionary<UUID, string>(); - Type type = typeof(Animations); - System.Reflection.FieldInfo[] fields = type.GetFields(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static); - foreach (System.Reflection.FieldInfo field in fields) - { - systemAnimations.Add((UUID)field.GetValue(type), field.Name); - } - - // find out which animations being played are known animations and which are assets - foreach (Animation animation in e.Animations) - { - if (systemAnimations.ContainsKey(animation.AnimationID)) - { - Console.WriteLine("{0} is playing {1} ({2}) sequence {3}", e.AvatarID, - systemAnimations[animation.AnimationID], animation.AnimationSequence); - } - else - { - Console.WriteLine("{0} is playing {1} (Asset) sequence {2}", e.AvatarID, - animation.AnimationID, animation.AnimationSequence); - } - } - } - - + + The suffix or extension to be appended to each log file - + - Construct a new instance of the AvatarAnimationEventArgs class + 0: NONE - No logging + 1: ERROR - Log errors only + 2: WARNING - Log errors and warnings + 3: INFO - Log errors, warnings and info + 4: DEBUG - Log errors, warnings, info and debug - The ID of the agent - The list of animations to start - - - Get the ID of the agent - - - Get the list of animations to start - - - Provides data for the event - The event occurs when the simulator sends - the appearance data for an avatar - - The following code example uses the and - properties to display the selected shape of an avatar on the window. - - // subscribe to the event - Client.Avatars.AvatarAppearance += Avatars_AvatarAppearance; - - // handle the data when the event is raised - void Avatars_AvatarAppearance(object sender, AvatarAppearanceEventArgs e) - { - Console.WriteLine("The Agent {0} is using a {1} shape.", e.AvatarID, (e.VisualParams[31] > 0) : "male" ? "female") - } - - - + - Construct a new instance of the AvatarAppearanceEventArgs class + Constructor for default logging settings - The simulator request was from - The ID of the agent - true of the agent is a trial account - The default agent texture - The agents appearance layer textures - The for the agent - - - Get the Simulator this request is from of the agent - - - Get the ID of the agent - - - true if the agent is a trial account - - Get the default agent texture + + Audio Properties Events are sent after audio capture is started. These events are used to display a microphone VU meter - - Get the agents appearance layer textures + + Positional vector of the users position - - Get the for the agent + + Velocity vector of the position - - Represents the interests from the profile of an agent + + At Orientation (X axis) of the position - - Get the ID of the agent + + Up Orientation (Y axis) of the position - - The properties of an agent + + Left Orientation (Z axis) of the position - - Get the ID of the agent + + + Extract the avatar UUID encoded in a SIP URI + + + - - Get the ID of the agent + + + Represents a single Voice Session to the Vivox service. + - - Get the ID of the agent + + + Close this session. + - - Get the ID of the avatar + + + Look up an existing Participants in this session + + +
diff --git a/bin/OpenMetaverse.dll b/bin/OpenMetaverse.dll index 511096e..9854fe0 100755 Binary files a/bin/OpenMetaverse.dll and b/bin/OpenMetaverse.dll differ diff --git a/bin/OpenMetaverse.dll.config b/bin/OpenMetaverse.dll.config index f5423b2..6b7b999 100644 --- a/bin/OpenMetaverse.dll.config +++ b/bin/OpenMetaverse.dll.config @@ -1,5 +1,7 @@ - - - + + + + + diff --git a/bin/OpenMetaverseTypes.XML b/bin/OpenMetaverseTypes.XML index befc8d4..a0c9135 100644 --- a/bin/OpenMetaverseTypes.XML +++ b/bin/OpenMetaverseTypes.XML @@ -4,113 +4,218 @@ OpenMetaverseTypes - + - A three-dimensional vector with doubleing-point values + Same as Queue except Dequeue function blocks until there is an object to return. + Note: This class does not need to be synchronized - - X value + + + Create new BlockingQueue. + + The System.Collections.ICollection to copy elements from - - Y value + + + Create new BlockingQueue. + + The initial number of elements that the queue can contain - - Z value + + + Create new BlockingQueue. + - + - Constructor, builds a vector from a byte array + BlockingQueue Destructor (Close queue, resume any waiting thread). - Byte array containing three eight-byte doubles - Beginning position in the byte array - + - Test if this vector is equal to another vector, within a given - tolerance range + Remove all objects from the Queue. - Vector to test against - The acceptable magnitude of difference - between the two vectors - True if the magnitude of difference between the two vectors - is less than the given tolerance, otherwise false - + - IComparable.CompareTo implementation + Remove all objects from the Queue, resume all dequeue threads. - + - Test if this vector is composed of all finite numbers + Removes and returns the object at the beginning of the Queue. + Object in queue. - + - Builds a vector from a byte array + Removes and returns the object at the beginning of the Queue. - Byte array containing a 24 byte vector + time to wait before returning + Object in queue. + + + + Removes and returns the object at the beginning of the Queue. + + time to wait before returning (in milliseconds) + Object in queue. + + + + Adds an object to the end of the Queue + + Object to put in queue + + + + Open Queue. + + + + + Gets flag indicating if queue has been closed. + + + + + Copy constructor + + Circular queue to copy + + + + An 8-bit color structure including an alpha channel + + + + Red + + + Green + + + Blue + + + Alpha + + + + + + + + + + + + + Builds a color from a byte array + + Byte array containing a 16 byte color Beginning position in the byte array + True if the byte array stores inverted values, + otherwise false. For example the color black (fully opaque) inverted + would be 0xFF 0xFF 0xFF 0x00 - + Returns the raw bytes for this vector - A 24 byte array containing X, Y, and Z + Byte array containing a 16 byte color + Beginning position in the byte array + True if the byte array stores inverted values, + otherwise false. For example the color black (fully opaque) inverted + would be 0xFF 0xFF 0xFF 0x00 + True if the alpha value is inverted in + addition to whatever the inverted parameter is. Setting inverted true + and alphaInverted true will flip the alpha value back to non-inverted, + but keep the other color bytes inverted + A 16 byte array containing R, G, B, and A - + - Writes the raw bytes for this vector to a byte array + Copy constructor - Destination byte array - Position in the destination array to start - writing. Must be at least 24 bytes before the end of the array + Color to copy - + - Parse a vector from a string + IComparable.CompareTo implementation - A string representation of a 3D vector, enclosed - in arrow brackets and separated by commas + Sorting ends up like this: |--Grayscale--||--Color--|. + Alpha is only used when the colors are otherwise equivalent - + - Interpolates between two vectors using a cubic equation + Builds a color from a byte array + Byte array containing a 16 byte color + Beginning position in the byte array + True if the byte array stores inverted values, + otherwise false. For example the color black (fully opaque) inverted + would be 0xFF 0xFF 0xFF 0x00 + True if the alpha value is inverted in + addition to whatever the inverted parameter is. Setting inverted true + and alphaInverted true will flip the alpha value back to non-inverted, + but keep the other color bytes inverted - + - Get a formatted string representation of the vector + Writes the raw bytes for this color to a byte array - A string representation of the vector + Destination byte array + Position in the destination array to start + writing. Must be at least 16 bytes before the end of the array - + - Get a string representation of the vector elements with up to three - decimal digits and separated by spaces only + Serializes this color into four bytes in a byte array - Raw string representation of the vector + Destination byte array + Position in the destination array to start + writing. Must be at least 4 bytes before the end of the array + True to invert the output (1.0 becomes 0 + instead of 255) - + - Cross product between two vectors + Writes the raw bytes for this color to a byte array + Destination byte array + Position in the destination array to start + writing. Must be at least 16 bytes before the end of the array - - A vector with a value of 0,0,0 + + + Ensures that values are in range 0-1 + - - A vector with a value of 1,1,1 + + + Create an RGB color from a hue, saturation, value combination + + Hue + Saturation + Value + An fully opaque RGB color (alpha is 1.0) - - A unit vector facing forward (X axis), value of 1,0,0 + + + Performs linear interpolation between two colors + + Color to start at + Color to end at + Amount to interpolate + The interpolated color - - A unit vector facing left (Y axis), value of 0,1,0 + + A Color4 with zero RGB values and fully opaque (alpha 1.0) - - A unit vector facing up (Z axis), value of 0,0,1 + + A Color4 with full RGB values (1.0) and fully opaque (alpha 1.0) @@ -235,6 +340,15 @@ Linden mesh format + + Marketplace direct delivery inbox ("Received Items") + + + Marketplace direct delivery outbox + + + + Inventory Item Types, eg Script, Notecard, Folder, etc @@ -355,1359 +469,660 @@ Tattoo + + Physics + Invalid wearable asset - + - A hierarchical token bucket for bandwidth throttling. See - http://en.wikipedia.org/wiki/Token_bucket for more information + Identifier code for primitive types - - Parent bucket to this bucket, or null if this is a root - bucket + + None - - Size of the bucket in bytes. If zero, the bucket has - infinite capacity + + A Primitive - - Rate that the bucket fills, in bytes per millisecond. If - zero, the bucket always remains full + + A Avatar - - Number of tokens currently in the bucket + + Linden grass - - Time of the last drip, in system ticks + + Linden tree - - - Default constructor - - Parent bucket if this is a child bucket, or - null if this is a root bucket - Maximum size of the bucket in bytes, or - zero if this bucket has no maximum capacity - Rate that the bucket fills, in bytes per - second. If zero, the bucket always remains full + + A primitive that acts as the source for a particle stream - - - Remove a given number of tokens from the bucket - - Number of tokens to remove from the bucket - True if the requested number of tokens were removed from - the bucket, otherwise false + + A Linden tree - + - Remove a given number of tokens from the bucket + Primary parameters for primitives such as Physics Enabled or Phantom - Number of tokens to remove from the bucket - True if tokens were added to the bucket - during this call, otherwise false - True if the requested number of tokens were removed from - the bucket, otherwise false - - - Add tokens to the bucket over time. The number of tokens added each - call depends on the length of time that has passed since the last - call to Drip - - True if tokens were added to the bucket, otherwise false + + Deprecated - - - The parent bucket of this bucket, or null if this bucket has no - parent. The parent bucket will limit the aggregate bandwidth of all - of its children buckets - + + Whether physics are enabled for this object - - - Maximum burst rate in bytes per second. This is the maximum number - of tokens that can accumulate in the bucket at any one time - + + - - - The speed limit of this bucket in bytes per second. This is the - number of tokens that are added to the bucket per second - - Tokens are added to the bucket any time - is called, at the granularity of - the system tick interval (typically around 15-22ms) + + - - - The number of bytes that can be sent at this moment. This is the - current number of tokens in the bucket - If this bucket has a parent bucket that does not have - enough tokens for a request, will - return false regardless of the content of this bucket - + + - - - A thread-safe lockless queue that supports multiple readers and - multiple writers - + + - - Queue head + + - - Queue tail + + - - Queue item count + + Whether this object contains an active touch script - - - Constructor - + + - - - Enqueue an item - - Item to enqeue + + Whether this object can receive payments - - - Try to dequeue an item - - Dequeued item if the dequeue was successful - True if an item was successfully deqeued, otherwise false + + Whether this object is phantom (no collisions) - - Gets the current number of items in the queue. Since this - is a lockless collection this value should be treated as a close - estimate + + - - - Provides a node container for data in a singly linked list - + + - - Pointer to the next node in list + + - - The data contained by the node + + - - - Constructor - + + Deprecated - - - Constructor - + + - - - An 8-bit color structure including an alpha channel - + + - - Red + + - - Green + + Deprecated - - Blue + + - - Alpha + + - - - - - - - - + + - - - Builds a color from a byte array - - Byte array containing a 16 byte color - Beginning position in the byte array - True if the byte array stores inverted values, - otherwise false. For example the color black (fully opaque) inverted - would be 0xFF 0xFF 0xFF 0x00 + + - - - Returns the raw bytes for this vector - - Byte array containing a 16 byte color - Beginning position in the byte array - True if the byte array stores inverted values, - otherwise false. For example the color black (fully opaque) inverted - would be 0xFF 0xFF 0xFF 0x00 - True if the alpha value is inverted in - addition to whatever the inverted parameter is. Setting inverted true - and alphaInverted true will flip the alpha value back to non-inverted, - but keep the other color bytes inverted - A 16 byte array containing R, G, B, and A + + Server flag, will not be sent to clients. Specifies that + the object is destroyed when it touches a simulator edge - - - Copy constructor - - Color to copy + + Server flag, will not be sent to clients. Specifies that + the object will be returned to the owner's inventory when it + touches a simulator edge - - - IComparable.CompareTo implementation - - Sorting ends up like this: |--Grayscale--||--Color--|. - Alpha is only used when the colors are otherwise equivalent + + Server flag, will not be sent to clients. - - - Builds a color from a byte array - - Byte array containing a 16 byte color - Beginning position in the byte array - True if the byte array stores inverted values, - otherwise false. For example the color black (fully opaque) inverted - would be 0xFF 0xFF 0xFF 0x00 - True if the alpha value is inverted in - addition to whatever the inverted parameter is. Setting inverted true - and alphaInverted true will flip the alpha value back to non-inverted, - but keep the other color bytes inverted + + Server flag, will not be sent to client. Specifies that + the object is hovering/flying - + + + + + + + + + + + + + - Writes the raw bytes for this color to a byte array + Sound flags for sounds attached to primitives - Destination byte array - Position in the destination array to start - writing. Must be at least 16 bytes before the end of the array - - - Serializes this color into four bytes in a byte array - - Destination byte array - Position in the destination array to start - writing. Must be at least 4 bytes before the end of the array - True to invert the output (1.0 becomes 0 - instead of 255) + + - - - Writes the raw bytes for this color to a byte array - - Destination byte array - Position in the destination array to start - writing. Must be at least 16 bytes before the end of the array + + - - - Ensures that values are in range 0-1 - + + - - - Create an RGB color from a hue, saturation, value combination - - Hue - Saturation - Value - An fully opaque RGB color (alpha is 1.0) + + - - - Performs linear interpolation between two colors - - Color to start at - Color to end at - Amount to interpolate - The interpolated color + + - - A Color4 with zero RGB values and fully opaque (alpha 1.0) + + - - A Color4 with full RGB values (1.0) and fully opaque (alpha 1.0) + + - + - Determines the appropriate events to set, leaves the locks, and sets the events. + Material type for a primitive - - - A routine for lazily creating a event outside the lock (so if errors - happen they are outside the lock and that we don't do much work - while holding a spin lock). If all goes well, reenter the lock and - set 'waitEvent' - + + - - - Waits on 'waitEvent' with a timeout of 'millisceondsTimeout. - Before the wait 'numWaiters' is incremented and is restored before leaving this routine. - + + - - - Copy constructor - - Circular queue to copy + + - - - A 128-bit Universally Unique Identifier, used throughout the Second - Life networking protocol - + + - - The System.Guid object this struct wraps around + + - - - Constructor that takes a string UUID representation - - A string representation of a UUID, case - insensitive and can either be hyphenated or non-hyphenated - UUID("11f8aa9c-b071-4242-836b-13b7abe0d489") + + - - - Constructor that takes a System.Guid object - - A Guid object that contains the unique identifier - to be represented by this UUID + + - - - Constructor that takes a byte array containing a UUID - - Byte array containing a 16 byte UUID - Beginning offset in the array + + - + - Constructor that takes an unsigned 64-bit unsigned integer to - convert to a UUID + Used in a helper function to roughly determine prim shape - 64-bit unsigned integer to convert to a UUID - + - Copy constructor + Extra parameters for primitives, these flags are for features that have + been added after the original ObjectFlags that has all eight bits + reserved already - UUID to copy - - - IComparable.CompareTo implementation - + + Whether this object has flexible parameters - - - Assigns this UUID from 16 bytes out of a byte array - - Byte array containing the UUID to assign this UUID to - Starting position of the UUID in the byte array + + Whether this object has light parameters - - - Returns a copy of the raw bytes for this UUID - - A 16 byte array containing this UUID + + Whether this object is a sculpted prim - - - Writes the raw bytes for this UUID to a byte array - - Destination byte array - Position in the destination array to start - writing. Must be at least 16 bytes before the end of the array + + Whether this object is a light image map - - - Calculate an LLCRC (cyclic redundancy check) for this UUID - - The CRC checksum for this UUID + + Whether this object is a mesh - + - Create a 64-bit integer representation from the second half of this UUID + - An integer created from the last eight bytes of this UUID - - - Generate a UUID from a string - - A string representation of a UUID, case - insensitive and can either be hyphenated or non-hyphenated - UUID.Parse("11f8aa9c-b071-4242-836b-13b7abe0d489") + + - - - Generate a UUID from a string - - A string representation of a UUID, case - insensitive and can either be hyphenated or non-hyphenated - Will contain the parsed UUID if successful, - otherwise null - True if the string was successfully parse, otherwise false - UUID.TryParse("11f8aa9c-b071-4242-836b-13b7abe0d489", result) + + - - - Combine two UUIDs together by taking the MD5 hash of a byte array - containing both UUIDs - - First UUID to combine - Second UUID to combine - The UUID product of the combination + + - + - - - - Return a hash code for this UUID, used by .NET for hash tables - - An integer composed of all the UUID bytes XORed together + + - - - Comparison function - - An object to compare to this UUID - True if the object is a UUID and both UUIDs are equal + + - - - Comparison function - - UUID to compare to - True if the UUIDs are equal, otherwise false + + - - - Get a hyphenated string representation of this UUID - - A string representation of this UUID, lowercase and - with hyphens - 11f8aa9c-b071-4242-836b-13b7abe0d489 + + - + + + + + + + + + + + + + - Equals operator + - First UUID for comparison - Second UUID for comparison - True if the UUIDs are byte for byte equal, otherwise false - - - Not equals operator - - First UUID for comparison - Second UUID for comparison - True if the UUIDs are not equal, otherwise true - - - - XOR operator - - First UUID - Second UUID - A UUID that is a XOR combination of the two input UUIDs - - - - String typecasting operator - - A UUID in string form. Case insensitive, - hyphenated or non-hyphenated - A UUID built from the string representation - - - An UUID with a value of all zeroes + + - - A cache of UUID.Zero as a string to optimize a common path + + - - Used for converting degrees to radians + + - - Used for converting radians to degrees + + - - Provide a single instance of the CultureInfo class to - help parsing in situations where the grid assumes an en-us - culture + + - - UNIX epoch in DateTime format + + - - Provide a single instance of the MD5 class to avoid making - duplicate copies and handle thread safety + + - - Provide a single instance of the SHA-1 class to avoid - making duplicate copies and handle thread safety + + - - Provide a single instance of a random number generator - to avoid making duplicate copies and handle thread safety + + - + - Clamp a given value between a range + - Value to clamp - Minimum allowable value - Maximum allowable value - A value inclusively between lower and upper - - - Clamp a given value between a range - - Value to clamp - Minimum allowable value - Maximum allowable value - A value inclusively between lower and upper + + - - - Clamp a given value between a range - - Value to clamp - Minimum allowable value - Maximum allowable value - A value inclusively between lower and upper + + - - - Round a floating-point value to the nearest integer - - Floating point number to round - Integer + + - - - Test if a single precision float is a finite number - + + - - - Test if a double precision float is a finite number - + + - - - Get the distance between two floating-point values - - First value - Second value - The distance between the two values + + - - - Compute the MD5 hash for a byte array - - Byte array to compute the hash for - MD5 hash of the input data + + - - - Compute the SHA1 hash for a byte array - - Byte array to compute the hash for - SHA1 hash of the input data + + + Attachment points for objects on avatar bodies + + + Both InventoryObject and InventoryAttachment types can be attached + - - - Calculate the SHA1 hash of a given string - - The string to hash - The SHA1 hash as a string + + Right hand if object was not previously attached - - - Compute the SHA256 hash for a byte array - - Byte array to compute the hash for - SHA256 hash of the input data + + Chest - - - Calculate the SHA256 hash of a given string - - The string to hash - The SHA256 hash as a string + + Skull - - - Calculate the MD5 hash of a given string - - The password to hash - An MD5 hash in string format, with $1$ prepended + + Left shoulder - - - Calculate the MD5 hash of a given string - - The string to hash - The MD5 hash as a string + + Right shoulder - - - Generate a random double precision floating point value - - Random value of type double + + Left hand - - - Get the current running platform - - Enumeration of the current platform we are running on + + Right hand - - - Get the current running runtime - - Enumeration of the current runtime we are running on + + Left foot - - - Convert the first two bytes starting in the byte array in - little endian ordering to a signed short integer - - An array two bytes or longer - A signed short integer, will be zero if a short can't be - read at the given position + + Right foot - - - Convert the first two bytes starting at the given position in - little endian ordering to a signed short integer - - An array two bytes or longer - Position in the array to start reading - A signed short integer, will be zero if a short can't be - read at the given position + + Spine - - - Convert the first four bytes starting at the given position in - little endian ordering to a signed integer - - An array four bytes or longer - Position to start reading the int from - A signed integer, will be zero if an int can't be read - at the given position + + Pelvis - - - Convert the first four bytes of the given array in little endian - ordering to a signed integer - - An array four bytes or longer - A signed integer, will be zero if the array contains - less than four bytes + + Mouth - - - Convert the first eight bytes of the given array in little endian - ordering to a signed long integer - - An array eight bytes or longer - A signed long integer, will be zero if the array contains - less than eight bytes + + Chin - - - Convert the first eight bytes starting at the given position in - little endian ordering to a signed long integer - - An array eight bytes or longer - Position to start reading the long from - A signed long integer, will be zero if a long can't be read - at the given position - - - - Convert the first two bytes starting at the given position in - little endian ordering to an unsigned short - - Byte array containing the ushort - Position to start reading the ushort from - An unsigned short, will be zero if a ushort can't be read - at the given position - - - - Convert two bytes in little endian ordering to an unsigned short - - Byte array containing the ushort - An unsigned short, will be zero if a ushort can't be - read - - - - Convert the first four bytes starting at the given position in - little endian ordering to an unsigned integer - - Byte array containing the uint - Position to start reading the uint from - An unsigned integer, will be zero if a uint can't be read - at the given position - - - - Convert the first four bytes of the given array in little endian - ordering to an unsigned integer - - An array four bytes or longer - An unsigned integer, will be zero if the array contains - less than four bytes - - - - Convert the first eight bytes of the given array in little endian - ordering to an unsigned 64-bit integer - - An array eight bytes or longer - An unsigned 64-bit integer, will be zero if the array - contains less than eight bytes - - - - Convert four bytes in little endian ordering to a floating point - value - - Byte array containing a little ending floating - point value - Starting position of the floating point value in - the byte array - Single precision value - - - - Convert an integer to a byte array in little endian format - - The integer to convert - A four byte little endian array - - - - Convert an integer to a byte array in big endian format - - The integer to convert - A four byte big endian array - - - - Convert a 64-bit integer to a byte array in little endian format - - The value to convert - An 8 byte little endian array - - - - Convert a 64-bit unsigned integer to a byte array in little endian - format - - The value to convert - An 8 byte little endian array - - - - Convert a floating point value to four bytes in little endian - ordering - - A floating point value - A four byte array containing the value in little endian - ordering - - - - Converts an unsigned integer to a hexadecimal string - - An unsigned integer to convert to a string - A hexadecimal string 10 characters long - 0x7fffffff - - - - Convert a variable length UTF8 byte array to a string - - The UTF8 encoded byte array to convert - The decoded string - - - - Converts a byte array to a string containing hexadecimal characters - - The byte array to convert to a string - The name of the field to prepend to each - line of the string - A string containing hexadecimal characters on multiple - lines. Each line is prepended with the field name - - - - Converts a byte array to a string containing hexadecimal characters - - The byte array to convert to a string - Number of bytes in the array to parse - A string to prepend to each line of the hex - dump - A string containing hexadecimal characters on multiple - lines. Each line is prepended with the field name - - - - Convert a string to a UTF8 encoded byte array - - The string to convert - A null-terminated UTF8 byte array - - - - Converts a string containing hexadecimal characters to a byte array - - String containing hexadecimal characters - If true, gracefully handles null, empty and - uneven strings as well as stripping unconvertable characters - The converted byte array + + Left ear - - - Returns true is c is a hexadecimal digit (A-F, a-f, 0-9) - - Character to test - true if hex digit, false if not + + Right ear - - - Converts 1 or 2 character string into equivalant byte value - - 1 or 2 character string - byte + + Left eyeball - - - Convert a float value to a byte given a minimum and maximum range - - Value to convert to a byte - Minimum value range - Maximum value range - A single byte representing the original float value + + Right eyeball - - - Convert a byte to a float value given a minimum and maximum range - - Byte array to get the byte from - Position in the byte array the desired byte is at - Minimum value range - Maximum value range - A float value inclusively between lower and upper + + Nose - - - Convert a byte to a float value given a minimum and maximum range - - Byte to convert to a float value - Minimum value range - Maximum value range - A float value inclusively between lower and upper + + Right upper arm - - - Attempts to parse a floating point value from a string, using an - EN-US number format - - String to parse - Resulting floating point number - True if the parse was successful, otherwise false + + Right forearm - - - Attempts to parse a floating point value from a string, using an - EN-US number format - - String to parse - Resulting floating point number - True if the parse was successful, otherwise false + + Left upper arm - - - Tries to parse an unsigned 32-bit integer from a hexadecimal string - - String to parse - Resulting integer - True if the parse was successful, otherwise false + + Left forearm - - - Returns text specified in EnumInfo attribute of the enumerator - To add the text use [EnumInfo(Text = "Some nice text here")] before declaration - of enum values - - Enum value - Text representation of the enum + + Right hip - - - Takes an AssetType and returns the string representation - - The source - The string version of the AssetType + + Right upper leg - - - Translate a string name of an AssetType into the proper Type - - A string containing the AssetType name - The AssetType which matches the string name, or AssetType.Unknown if no match was found + + Right lower leg - - - Convert an InventoryType to a string - - The to convert - A string representation of the source + + Left hip - - - Convert a string into a valid InventoryType - - A string representation of the InventoryType to convert - A InventoryType object which matched the type + + Left upper leg - - - Convert a SaleType to a string - - The to convert - A string representation of the source + + Left lower leg - - - Convert a string into a valid SaleType - - A string representation of the SaleType to convert - A SaleType object which matched the type + + Stomach - - - Converts a string used in LLSD to AttachmentPoint type - - String representation of AttachmentPoint to convert - AttachmentPoint enum + + Left pectoral - - - Copy a byte array - - Byte array to copy - A copy of the given byte array + + Right pectoral - - - Packs to 32-bit unsigned integers in to a 64-bit unsigned integer - - The left-hand (or X) value - The right-hand (or Y) value - A 64-bit integer containing the two 32-bit input values + + HUD Center position 2 - - - Unpacks two 32-bit unsigned integers from a 64-bit unsigned integer - - The 64-bit input integer - The left-hand (or X) output value - The right-hand (or Y) output value + + HUD Top-right - - - Convert an IP address object to an unsigned 32-bit integer - - IP address to convert - 32-bit unsigned integer holding the IP address bits + + HUD Top - - - Gets a unix timestamp for the current time - - An unsigned integer representing a unix timestamp for now + + HUD Top-left - - - Convert a UNIX timestamp to a native DateTime object - - An unsigned integer representing a UNIX - timestamp - A DateTime object containing the same time specified in - the given timestamp + + HUD Center - - - Convert a UNIX timestamp to a native DateTime object - - A signed integer representing a UNIX - timestamp - A DateTime object containing the same time specified in - the given timestamp + + HUD Bottom-left - - - Convert a native DateTime object to a UNIX timestamp - - A DateTime object you want to convert to a - timestamp - An unsigned integer representing a UNIX timestamp + + HUD Bottom - - - Swap two values - - Type of the values to swap - First value - Second value + + HUD Bottom-right - - - Try to parse an enumeration value from a string - - Enumeration type - String value to parse - Enumeration value on success - True if the parsing succeeded, otherwise false + + Neck - - - Swaps the high and low words in a byte. Converts aaaabbbb to bbbbaaaa - - Byte to swap the words in - Byte value with the words swapped + + Avatar Center - + - Attempts to convert a string representation of a hostname or IP - address to a + Tree foliage types - Hostname to convert to an IPAddress - Converted IP address object, or null if the conversion - failed - - - Operating system - + + Pine1 tree - - Unknown + + Oak tree - - Microsoft Windows + + Tropical Bush1 - - Microsoft Windows CE + + Palm1 tree - - Linux + + Dogwood tree - - Apple OSX + + Tropical Bush2 - - - Runtime platform - + + Palm2 tree - - .NET runtime + + Cypress1 tree - - Mono runtime: http://www.mono-project.com/ + + Cypress2 tree - - X value + + Pine2 tree - - Y value + + Plumeria - - Z value + + Winter pinetree1 - - W value + + Winter Aspen tree - - - Build a quaternion from normalized float values - - X value from -1.0 to 1.0 - Y value from -1.0 to 1.0 - Z value from -1.0 to 1.0 + + Winter pinetree2 - - - Constructor, builds a quaternion object from a byte array - - Byte array containing four four-byte floats - Offset in the byte array to start reading at - Whether the source data is normalized or - not. If this is true 12 bytes will be read, otherwise 16 bytes will - be read. + + Eucalyptus tree - - - Normalizes the quaternion - + + Fern - - - Builds a quaternion object from a byte array - - The source byte array - Offset in the byte array to start reading at - Whether the source data is normalized or - not. If this is true 12 bytes will be read, otherwise 16 bytes will - be read. + + Eelgrass - - - Normalize this quaternion and serialize it to a byte array - - A 12 byte array containing normalized X, Y, and Z floating - point values in order using little endian byte ordering + + Sea Sword - - - Writes the raw bytes for this quaternion to a byte array - - Destination byte array - Position in the destination array to start - writing. Must be at least 12 bytes before the end of the array + + Kelp1 plant - - - Convert this quaternion to euler angles - - X euler angle - Y euler angle - Z euler angle + + Beach grass - - - Convert this quaternion to an angle around an axis - - Unit vector describing the axis - Angle around the axis, in radians + + Kelp2 plant - + - Returns the conjugate (spatial inverse) of a quaternion + Grass foliage types - - - Build a quaternion from an axis and an angle of rotation around - that axis - + + - - - Build a quaternion from an axis and an angle of rotation around - that axis - - Axis of rotation - Angle of rotation + + - - - Creates a quaternion from a vector containing roll, pitch, and yaw - in radians - - Vector representation of the euler angles in - radians - Quaternion representation of the euler angles + + - - - Creates a quaternion from roll, pitch, and yaw euler angles in - radians - - X angle in radians - Y angle in radians - Z angle in radians - Quaternion representation of the euler angles + + + + + - - - Conjugates and renormalizes a vector - + + - + - Spherical linear interpolation between two quaternions + Action associated with clicking on an object - - - Get a string representation of the quaternion elements with up to three - decimal digits and separated by spaces only - - Raw string representation of the quaternion + + Touch object - - A quaternion with a value of 0,0,0,1 + + Sit on object - - - Same as Queue except Dequeue function blocks until there is an object to return. - Note: This class does not need to be synchronized - + + Purchase object or contents - - - Create new BlockingQueue. - - The System.Collections.ICollection to copy elements from + + Pay the object - - - Create new BlockingQueue. - - The initial number of elements that the queue can contain + + Open task inventory - - - Create new BlockingQueue. - + + Play parcel media - - - BlockingQueue Destructor (Close queue, resume any waiting thread). - + + Open parcel media - + - Remove all objects from the Queue. + Type of physics representation used for this prim in the simulator - - - Remove all objects from the Queue, resume all dequeue threads. - + + Use prim physics form this object - - - Removes and returns the object at the beginning of the Queue. - - Object in queue. + + No physics, prim doesn't collide - - - Removes and returns the object at the beginning of the Queue. - - time to wait before returning - Object in queue. + + Use convex hull represantion of this prim - - - Removes and returns the object at the beginning of the Queue. - - time to wait before returning (in milliseconds) - Object in queue. + + For thread safety - - - Adds an object to the end of the Queue - - Object to put in queue + + For thread safety - + - Open Queue. + Purges expired objects from the cache. Called automatically by the purge timer. - + - Gets flag indicating if queue has been closed. + A thread-safe lockless queue that supports multiple readers and + multiple writers - - - Provides helper methods for parallelizing loops - + + Queue head + + + Queue tail - + + Queue item count + + - Executes a for loop in which iterations may run in parallel + Constructor - The loop will be started at this index - The loop will be terminated before this index is reached - Method body to run for each iteration of the loop - + - Executes a for loop in which iterations may run in parallel + Enqueue an item - The number of concurrent execution threads to run - The loop will be started at this index - The loop will be terminated before this index is reached - Method body to run for each iteration of the loop + Item to enqeue - + - Executes a foreach loop in which iterations may run in parallel + Try to dequeue an item - Object type that the collection wraps - An enumerable collection to iterate over - Method body to run for each object in the collection + Dequeued item if the dequeue was successful + True if an item was successfully deqeued, otherwise false + + + Gets the current number of items in the queue. Since this + is a lockless collection this value should be treated as a close + estimate - + - Executes a foreach loop in which iterations may run in parallel + Provides a node container for data in a singly linked list - Object type that the collection wraps - The number of concurrent execution threads to run - An enumerable collection to iterate over - Method body to run for each object in the collection - + + Pointer to the next node in list + + + The data contained by the node + + - Executes a series of tasks in parallel + Constructor - A series of method bodies to execute - + - Executes a series of tasks in parallel + Constructor - The number of concurrent execution threads to run - A series of method bodies to execute @@ -1743,783 +1158,1267 @@ A 4x4 identity matrix - + X value - + Y value - + Z value - + W value - - - Constructor, builds a vector from a byte array - - Byte array containing four four-byte floats - Beginning position in the byte array - - - - Test if this vector is equal to another vector, within a given - tolerance range - - Vector to test against - The acceptable magnitude of difference - between the two vectors - True if the magnitude of difference between the two vectors - is less than the given tolerance, otherwise false - - - - IComparable.CompareTo implementation - - - - - Test if this vector is composed of all finite numbers - - - - - Builds a vector from a byte array - - Byte array containing a 16 byte vector - Beginning position in the byte array - - - - Returns the raw bytes for this vector - - A 16 byte array containing X, Y, Z, and W - - + - Writes the raw bytes for this vector to a byte array + Build a quaternion from normalized float values - Destination byte array - Position in the destination array to start - writing. Must be at least 16 bytes before the end of the array + X value from -1.0 to 1.0 + Y value from -1.0 to 1.0 + Z value from -1.0 to 1.0 - + - Get a string representation of the vector elements with up to three - decimal digits and separated by spaces only + Constructor, builds a quaternion object from a byte array - Raw string representation of the vector - - - A vector with a value of 0,0,0,0 - - - A vector with a value of 1,1,1,1 - - - A vector with a value of 1,0,0,0 - - - A vector with a value of 0,1,0,0 - - - A vector with a value of 0,0,1,0 - - - A vector with a value of 0,0,0,1 - - - For thread safety - - - For thread safety + Byte array containing four four-byte floats + Offset in the byte array to start reading at + Whether the source data is normalized or + not. If this is true 12 bytes will be read, otherwise 16 bytes will + be read. - + - Purges expired objects from the cache. Called automatically by the purge timer. + Normalizes the quaternion - + - A three-dimensional vector with floating-point values + Builds a quaternion object from a byte array + The source byte array + Offset in the byte array to start reading at + Whether the source data is normalized or + not. If this is true 12 bytes will be read, otherwise 16 bytes will + be read. - - X value - - - Y value - - - Z value - - + - Constructor, builds a vector from a byte array + Normalize this quaternion and serialize it to a byte array - Byte array containing three four-byte floats - Beginning position in the byte array + A 12 byte array containing normalized X, Y, and Z floating + point values in order using little endian byte ordering - + - Test if this vector is equal to another vector, within a given - tolerance range + Writes the raw bytes for this quaternion to a byte array - Vector to test against - The acceptable magnitude of difference - between the two vectors - True if the magnitude of difference between the two vectors - is less than the given tolerance, otherwise false + Destination byte array + Position in the destination array to start + writing. Must be at least 12 bytes before the end of the array - + - IComparable.CompareTo implementation + Convert this quaternion to euler angles + X euler angle + Y euler angle + Z euler angle - + - Test if this vector is composed of all finite numbers + Convert this quaternion to an angle around an axis + Unit vector describing the axis + Angle around the axis, in radians - + - Builds a vector from a byte array + Returns the conjugate (spatial inverse) of a quaternion - Byte array containing a 12 byte vector - Beginning position in the byte array - + - Returns the raw bytes for this vector + Build a quaternion from an axis and an angle of rotation around + that axis - A 12 byte array containing X, Y, and Z - + - Writes the raw bytes for this vector to a byte array + Build a quaternion from an axis and an angle of rotation around + that axis - Destination byte array - Position in the destination array to start - writing. Must be at least 12 bytes before the end of the array + Axis of rotation + Angle of rotation - + - Parse a vector from a string + Creates a quaternion from a vector containing roll, pitch, and yaw + in radians - A string representation of a 3D vector, enclosed - in arrow brackets and separated by commas + Vector representation of the euler angles in + radians + Quaternion representation of the euler angles - + - Calculate the rotation between two vectors + Creates a quaternion from roll, pitch, and yaw euler angles in + radians - Normalized directional vector (such as 1,0,0 for forward facing) - Normalized target vector + X angle in radians + Y angle in radians + Z angle in radians + Quaternion representation of the euler angles - + - Interpolates between two vectors using a cubic equation + Conjugates and renormalizes a vector - + - Get a formatted string representation of the vector + Spherical linear interpolation between two quaternions - A string representation of the vector - + - Get a string representation of the vector elements with up to three + Get a string representation of the quaternion elements with up to three decimal digits and separated by spaces only - Raw string representation of the vector + Raw string representation of the quaternion - + + A quaternion with a value of 0,0,0,1 + + - Cross product between two vectors + Determines the appropriate events to set, leaves the locks, and sets the events. - - A vector with a value of 0,0,0 - - - A vector with a value of 1,1,1 - - - A unit vector facing forward (X axis), value 1,0,0 - - - A unit vector facing left (Y axis), value 0,1,0 - - - A unit vector facing up (Z axis), value 0,0,1 - - + - Identifier code for primitive types + A routine for lazily creating a event outside the lock (so if errors + happen they are outside the lock and that we don't do much work + while holding a spin lock). If all goes well, reenter the lock and + set 'waitEvent' - - None + + + Waits on 'waitEvent' with a timeout of 'millisceondsTimeout. + Before the wait 'numWaiters' is incremented and is restored before leaving this routine. + - - A Primitive + + + A hierarchical token bucket for bandwidth throttling. See + http://en.wikipedia.org/wiki/Token_bucket for more information + - - A Avatar + + Parent bucket to this bucket, or null if this is a root + bucket - - Linden grass + + Size of the bucket in bytes. If zero, the bucket has + infinite capacity - - Linden tree + + Rate that the bucket fills, in bytes per millisecond. If + zero, the bucket always remains full - - A primitive that acts as the source for a particle stream + + Number of tokens currently in the bucket - - A Linden tree + + Time of the last drip, in system ticks - + - Primary parameters for primitives such as Physics Enabled or Phantom + Default constructor + Parent bucket if this is a child bucket, or + null if this is a root bucket + Maximum size of the bucket in bytes, or + zero if this bucket has no maximum capacity + Rate that the bucket fills, in bytes per + second. If zero, the bucket always remains full - - Deprecated - - - Whether physics are enabled for this object - - - - - - - - - - - - + + + Remove a given number of tokens from the bucket + + Number of tokens to remove from the bucket + True if the requested number of tokens were removed from + the bucket, otherwise false - - + + + Remove a given number of tokens from the bucket + + Number of tokens to remove from the bucket + True if tokens were added to the bucket + during this call, otherwise false + True if the requested number of tokens were removed from + the bucket, otherwise false - - + + + Add tokens to the bucket over time. The number of tokens added each + call depends on the length of time that has passed since the last + call to Drip + + True if tokens were added to the bucket, otherwise false - - Whether this object contains an active touch script + + + The parent bucket of this bucket, or null if this bucket has no + parent. The parent bucket will limit the aggregate bandwidth of all + of its children buckets + - - + + + Maximum burst rate in bytes per second. This is the maximum number + of tokens that can accumulate in the bucket at any one time + - - Whether this object can receive payments + + + The speed limit of this bucket in bytes per second. This is the + number of tokens that are added to the bucket per second + + Tokens are added to the bucket any time + is called, at the granularity of + the system tick interval (typically around 15-22ms) - - Whether this object is phantom (no collisions) + + + The number of bytes that can be sent at this moment. This is the + current number of tokens in the bucket + If this bucket has a parent bucket that does not have + enough tokens for a request, will + return false regardless of the content of this bucket + - - + + Used for converting degrees to radians - - + + Used for converting radians to degrees - - + + Provide a single instance of the CultureInfo class to + help parsing in situations where the grid assumes an en-us + culture - - + + UNIX epoch in DateTime format - - Deprecated + + Provide a single instance of the MD5 class to avoid making + duplicate copies and handle thread safety - - + + Provide a single instance of the SHA-1 class to avoid + making duplicate copies and handle thread safety - - + + Provide a single instance of a random number generator + to avoid making duplicate copies and handle thread safety - - + + + Clamp a given value between a range + + Value to clamp + Minimum allowable value + Maximum allowable value + A value inclusively between lower and upper - - Deprecated + + + Clamp a given value between a range + + Value to clamp + Minimum allowable value + Maximum allowable value + A value inclusively between lower and upper - - + + + Clamp a given value between a range + + Value to clamp + Minimum allowable value + Maximum allowable value + A value inclusively between lower and upper - - + + + Round a floating-point value to the nearest integer + + Floating point number to round + Integer - - + + + Test if a single precision float is a finite number + - - + + + Test if a double precision float is a finite number + - - Server flag, will not be sent to clients. Specifies that - the object is destroyed when it touches a simulator edge + + + Get the distance between two floating-point values + + First value + Second value + The distance between the two values - - Server flag, will not be sent to clients. Specifies that - the object will be returned to the owner's inventory when it - touches a simulator edge + + + Compute the MD5 hash for a byte array + + Byte array to compute the hash for + MD5 hash of the input data - - Server flag, will not be sent to clients. + + + Compute the SHA1 hash for a byte array + + Byte array to compute the hash for + SHA1 hash of the input data - - Server flag, will not be sent to client. Specifies that - the object is hovering/flying + + + Calculate the SHA1 hash of a given string + + The string to hash + The SHA1 hash as a string - - + + + Compute the SHA256 hash for a byte array + + Byte array to compute the hash for + SHA256 hash of the input data - - + + + Calculate the SHA256 hash of a given string + + The string to hash + The SHA256 hash as a string - - + + + Calculate the MD5 hash of a given string + + The password to hash + An MD5 hash in string format, with $1$ prepended - - + + + Calculate the MD5 hash of a given string + + The string to hash + The MD5 hash as a string - + - Sound flags for sounds attached to primitives + Generate a random double precision floating point value + Random value of type double - - + + + Get the current running platform + + Enumeration of the current platform we are running on - - + + + Get the current running runtime + + Enumeration of the current runtime we are running on - - + + + Convert the first two bytes starting in the byte array in + little endian ordering to a signed short integer + + An array two bytes or longer + A signed short integer, will be zero if a short can't be + read at the given position - - + + + Convert the first two bytes starting at the given position in + little endian ordering to a signed short integer + + An array two bytes or longer + Position in the array to start reading + A signed short integer, will be zero if a short can't be + read at the given position - - + + + Convert the first four bytes starting at the given position in + little endian ordering to a signed integer + + An array four bytes or longer + Position to start reading the int from + A signed integer, will be zero if an int can't be read + at the given position - - + + + Convert the first four bytes of the given array in little endian + ordering to a signed integer + + An array four bytes or longer + A signed integer, will be zero if the array contains + less than four bytes - - + + + Convert the first eight bytes of the given array in little endian + ordering to a signed long integer + + An array eight bytes or longer + A signed long integer, will be zero if the array contains + less than eight bytes - + - Material type for a primitive + Convert the first eight bytes starting at the given position in + little endian ordering to a signed long integer + An array eight bytes or longer + Position to start reading the long from + A signed long integer, will be zero if a long can't be read + at the given position - - + + + Convert the first two bytes starting at the given position in + little endian ordering to an unsigned short + + Byte array containing the ushort + Position to start reading the ushort from + An unsigned short, will be zero if a ushort can't be read + at the given position - - + + + Convert two bytes in little endian ordering to an unsigned short + + Byte array containing the ushort + An unsigned short, will be zero if a ushort can't be + read - - + + + Convert the first four bytes starting at the given position in + little endian ordering to an unsigned integer + + Byte array containing the uint + Position to start reading the uint from + An unsigned integer, will be zero if a uint can't be read + at the given position - - + + + Convert the first four bytes of the given array in little endian + ordering to an unsigned integer + + An array four bytes or longer + An unsigned integer, will be zero if the array contains + less than four bytes - - + + + Convert the first eight bytes of the given array in little endian + ordering to an unsigned 64-bit integer + + An array eight bytes or longer + An unsigned 64-bit integer, will be zero if the array + contains less than eight bytes - - + + + Convert four bytes in little endian ordering to a floating point + value + + Byte array containing a little ending floating + point value + Starting position of the floating point value in + the byte array + Single precision value - - + + + Convert an integer to a byte array in little endian format + + The integer to convert + A four byte little endian array - - + + + Convert an integer to a byte array in big endian format + + The integer to convert + A four byte big endian array - + - Used in a helper function to roughly determine prim shape + Convert a 64-bit integer to a byte array in little endian format + The value to convert + An 8 byte little endian array - + - Extra parameters for primitives, these flags are for features that have - been added after the original ObjectFlags that has all eight bits - reserved already + Convert a 64-bit unsigned integer to a byte array in little endian + format + The value to convert + An 8 byte little endian array - - Whether this object has flexible parameters + + + Convert a floating point value to four bytes in little endian + ordering + + A floating point value + A four byte array containing the value in little endian + ordering - - Whether this object has light parameters + + + Converts an unsigned integer to a hexadecimal string + + An unsigned integer to convert to a string + A hexadecimal string 10 characters long + 0x7fffffff - - Whether this object is a sculpted prim + + + Convert a variable length UTF8 byte array to a string + + The UTF8 encoded byte array to convert + The decoded string - + - + Converts a byte array to a string containing hexadecimal characters + The byte array to convert to a string + The name of the field to prepend to each + line of the string + A string containing hexadecimal characters on multiple + lines. Each line is prepended with the field name - - + + + Converts a byte array to a string containing hexadecimal characters + + The byte array to convert to a string + Number of bytes in the array to parse + A string to prepend to each line of the hex + dump + A string containing hexadecimal characters on multiple + lines. Each line is prepended with the field name - - + + + Convert a string to a UTF8 encoded byte array + + The string to convert + A null-terminated UTF8 byte array - - + + + Converts a string containing hexadecimal characters to a byte array + + String containing hexadecimal characters + If true, gracefully handles null, empty and + uneven strings as well as stripping unconvertable characters + The converted byte array - + - + Returns true is c is a hexadecimal digit (A-F, a-f, 0-9) + Character to test + true if hex digit, false if not - - + + + Converts 1 or 2 character string into equivalant byte value + + 1 or 2 character string + byte - - + + + Convert a float value to a byte given a minimum and maximum range + + Value to convert to a byte + Minimum value range + Maximum value range + A single byte representing the original float value - - + + + Convert a byte to a float value given a minimum and maximum range + + Byte array to get the byte from + Position in the byte array the desired byte is at + Minimum value range + Maximum value range + A float value inclusively between lower and upper - - + + + Convert a byte to a float value given a minimum and maximum range + + Byte to convert to a float value + Minimum value range + Maximum value range + A float value inclusively between lower and upper - - + + + Attempts to parse a floating point value from a string, using an + EN-US number format + + String to parse + Resulting floating point number + True if the parse was successful, otherwise false - - + + + Attempts to parse a floating point value from a string, using an + EN-US number format + + String to parse + Resulting floating point number + True if the parse was successful, otherwise false - - + + + Tries to parse an unsigned 32-bit integer from a hexadecimal string + + String to parse + Resulting integer + True if the parse was successful, otherwise false - - + + + Returns text specified in EnumInfo attribute of the enumerator + To add the text use [EnumInfo(Text = "Some nice text here")] before declaration + of enum values + + Enum value + Text representation of the enum - + - + Takes an AssetType and returns the string representation + The source + The string version of the AssetType - - + + + Translate a string name of an AssetType into the proper Type + + A string containing the AssetType name + The AssetType which matches the string name, or AssetType.Unknown if no match was found - - + + + Convert an InventoryType to a string + + The to convert + A string representation of the source - - + + + Convert a string into a valid InventoryType + + A string representation of the InventoryType to convert + A InventoryType object which matched the type - - + + + Convert a SaleType to a string + + The to convert + A string representation of the source - - + + + Convert a string into a valid SaleType + + A string representation of the SaleType to convert + A SaleType object which matched the type - - + + + Converts a string used in LLSD to AttachmentPoint type + + String representation of AttachmentPoint to convert + AttachmentPoint enum - - + + + Copy a byte array + + Byte array to copy + A copy of the given byte array - - + + + Packs to 32-bit unsigned integers in to a 64-bit unsigned integer + + The left-hand (or X) value + The right-hand (or Y) value + A 64-bit integer containing the two 32-bit input values - - + + + Unpacks two 32-bit unsigned integers from a 64-bit unsigned integer + + The 64-bit input integer + The left-hand (or X) output value + The right-hand (or Y) output value - + - + Convert an IP address object to an unsigned 32-bit integer + IP address to convert + 32-bit unsigned integer holding the IP address bits - - + + + Gets a unix timestamp for the current time + + An unsigned integer representing a unix timestamp for now - - + + + Convert a UNIX timestamp to a native DateTime object + + An unsigned integer representing a UNIX + timestamp + A DateTime object containing the same time specified in + the given timestamp - - + + + Convert a UNIX timestamp to a native DateTime object + + A signed integer representing a UNIX + timestamp + A DateTime object containing the same time specified in + the given timestamp - - + + + Convert a native DateTime object to a UNIX timestamp + + A DateTime object you want to convert to a + timestamp + An unsigned integer representing a UNIX timestamp - - + + + Swap two values + + Type of the values to swap + First value + Second value - - + + + Try to parse an enumeration value from a string + + Enumeration type + String value to parse + Enumeration value on success + True if the parsing succeeded, otherwise false - - + + + Swaps the high and low words in a byte. Converts aaaabbbb to bbbbaaaa + + Byte to swap the words in + Byte value with the words swapped - - - Attachment points for objects on avatar bodies - - - Both InventoryObject and InventoryAttachment types can be attached - + + + Attempts to convert a string representation of a hostname or IP + address to a + + Hostname to convert to an IPAddress + Converted IP address object, or null if the conversion + failed - - Right hand if object was not previously attached + + + Operating system + - - Chest + + Unknown - - Skull + + Microsoft Windows - - Left shoulder + + Microsoft Windows CE - - Right shoulder + + Linux - - Left hand + + Apple OSX - - Right hand + + + Runtime platform + - - Left foot + + .NET runtime - - Right foot + + Mono runtime: http://www.mono-project.com/ - - Spine + + + A 128-bit Universally Unique Identifier, used throughout the Second + Life networking protocol + - - Pelvis + + The System.Guid object this struct wraps around - - Mouth + + + Constructor that takes a string UUID representation + + A string representation of a UUID, case + insensitive and can either be hyphenated or non-hyphenated + UUID("11f8aa9c-b071-4242-836b-13b7abe0d489") - - Chin + + + Constructor that takes a System.Guid object + + A Guid object that contains the unique identifier + to be represented by this UUID - - Left ear + + + Constructor that takes a byte array containing a UUID + + Byte array containing a 16 byte UUID + Beginning offset in the array - - Right ear + + + Constructor that takes an unsigned 64-bit unsigned integer to + convert to a UUID + + 64-bit unsigned integer to convert to a UUID - - Left eyeball + + + Copy constructor + + UUID to copy - - Right eyeball + + + IComparable.CompareTo implementation + - - Nose + + + Assigns this UUID from 16 bytes out of a byte array + + Byte array containing the UUID to assign this UUID to + Starting position of the UUID in the byte array - - Right upper arm + + + Returns a copy of the raw bytes for this UUID + + A 16 byte array containing this UUID - - Right forearm + + + Writes the raw bytes for this UUID to a byte array + + Destination byte array + Position in the destination array to start + writing. Must be at least 16 bytes before the end of the array - - Left upper arm + + + Calculate an LLCRC (cyclic redundancy check) for this UUID + + The CRC checksum for this UUID - - Left forearm + + + Create a 64-bit integer representation from the second half of this UUID + + An integer created from the last eight bytes of this UUID - - Right hip + + + Generate a UUID from a string + + A string representation of a UUID, case + insensitive and can either be hyphenated or non-hyphenated + UUID.Parse("11f8aa9c-b071-4242-836b-13b7abe0d489") - - Right upper leg + + + Generate a UUID from a string + + A string representation of a UUID, case + insensitive and can either be hyphenated or non-hyphenated + Will contain the parsed UUID if successful, + otherwise null + True if the string was successfully parse, otherwise false + UUID.TryParse("11f8aa9c-b071-4242-836b-13b7abe0d489", result) - - Right lower leg + + + Combine two UUIDs together by taking the MD5 hash of a byte array + containing both UUIDs + + First UUID to combine + Second UUID to combine + The UUID product of the combination - - Left hip + + + + + - - Left upper leg + + + Return a hash code for this UUID, used by .NET for hash tables + + An integer composed of all the UUID bytes XORed together - - Left lower leg + + + Comparison function + + An object to compare to this UUID + True if the object is a UUID and both UUIDs are equal - - Stomach + + + Comparison function + + UUID to compare to + True if the UUIDs are equal, otherwise false - - Left pectoral + + + Get a hyphenated string representation of this UUID + + A string representation of this UUID, lowercase and + with hyphens + 11f8aa9c-b071-4242-836b-13b7abe0d489 - - Right pectoral + + + Equals operator + + First UUID for comparison + Second UUID for comparison + True if the UUIDs are byte for byte equal, otherwise false - - HUD Center position 2 + + + Not equals operator + + First UUID for comparison + Second UUID for comparison + True if the UUIDs are not equal, otherwise true - - HUD Top-right + + + XOR operator + + First UUID + Second UUID + A UUID that is a XOR combination of the two input UUIDs - - HUD Top + + + String typecasting operator + + A UUID in string form. Case insensitive, + hyphenated or non-hyphenated + A UUID built from the string representation - - HUD Top-left + + An UUID with a value of all zeroes - - HUD Center + + A cache of UUID.Zero as a string to optimize a common path - - HUD Bottom-left + + + A two-dimensional vector with floating-point values + - - HUD Bottom + + X value - - HUD Bottom-right + + Y value - + - Tree foliage types + Test if this vector is equal to another vector, within a given + tolerance range + Vector to test against + The acceptable magnitude of difference + between the two vectors + True if the magnitude of difference between the two vectors + is less than the given tolerance, otherwise false - - Pine1 tree + + + Test if this vector is composed of all finite numbers + - - Oak tree + + + IComparable.CompareTo implementation + - - Tropical Bush1 + + + Builds a vector from a byte array + + Byte array containing two four-byte floats + Beginning position in the byte array - - Palm1 tree + + + Returns the raw bytes for this vector + + An eight-byte array containing X and Y - - Dogwood tree + + + Writes the raw bytes for this vector to a byte array + + Destination byte array + Position in the destination array to start + writing. Must be at least 8 bytes before the end of the array - - Tropical Bush2 + + + Parse a vector from a string + + A string representation of a 2D vector, enclosed + in arrow brackets and separated by commas - - Palm2 tree + + + Interpolates between two vectors using a cubic equation + - - Cypress1 tree + + + Get a formatted string representation of the vector + + A string representation of the vector - - Cypress2 tree + + + Get a string representation of the vector elements with up to three + decimal digits and separated by spaces only + + Raw string representation of the vector - - Pine2 tree + + A vector with a value of 0,0 - - Plumeria + + A vector with a value of 1,1 - - Winter pinetree1 + + A vector with a value of 1,0 - - Winter Aspen tree + + A vector with a value of 0,1 - - Winter pinetree2 + + + A three-dimensional vector with floating-point values + - - Eucalyptus tree + + X value - - Fern + + Y value - - Eelgrass + + Z value - - Sea Sword + + + Constructor, builds a vector from a byte array + + Byte array containing three four-byte floats + Beginning position in the byte array - - Kelp1 plant + + + Test if this vector is equal to another vector, within a given + tolerance range + + Vector to test against + The acceptable magnitude of difference + between the two vectors + True if the magnitude of difference between the two vectors + is less than the given tolerance, otherwise false - - Beach grass + + + IComparable.CompareTo implementation + - - Kelp2 plant + + + Test if this vector is composed of all finite numbers + - + - Grass foliage types + Builds a vector from a byte array + Byte array containing a 12 byte vector + Beginning position in the byte array - - + + + Returns the raw bytes for this vector + + A 12 byte array containing X, Y, and Z - - + + + Writes the raw bytes for this vector to a byte array + + Destination byte array + Position in the destination array to start + writing. Must be at least 12 bytes before the end of the array - - + + + Parse a vector from a string + + A string representation of a 3D vector, enclosed + in arrow brackets and separated by commas - - + + + Calculate the rotation between two vectors + + Normalized directional vector (such as 1,0,0 for forward facing) + Normalized target vector - - + + + Interpolates between two vectors using a cubic equation + - - + + + Get a formatted string representation of the vector + + A string representation of the vector - + - Action associated with clicking on an object + Get a string representation of the vector elements with up to three + decimal digits and separated by spaces only + Raw string representation of the vector - - Touch object + + + Cross product between two vectors + - - Sit on object + + + Explicit casting for Vector3d > Vector3 + + + - - Purchase object or contents + + A vector with a value of 0,0,0 - - Pay the object + + A vector with a value of 1,1,1 - - Open task inventory + + A unit vector facing forward (X axis), value 1,0,0 - - Play parcel media + + A unit vector facing left (Y axis), value 0,1,0 - - Open parcel media + + A unit vector facing up (Z axis), value 0,0,1 - + - A two-dimensional vector with floating-point values + A three-dimensional vector with doubleing-point values - + X value - + Y value - + + Z value + + + + Constructor, builds a vector from a byte array + + Byte array containing three eight-byte doubles + Beginning position in the byte array + + Test if this vector is equal to another vector, within a given tolerance range @@ -2530,73 +2429,174 @@ True if the magnitude of difference between the two vectors is less than the given tolerance, otherwise false - + - Test if this vector is composed of all finite numbers + IComparable.CompareTo implementation - + - IComparable.CompareTo implementation + Test if this vector is composed of all finite numbers - + Builds a vector from a byte array - Byte array containing two four-byte floats + Byte array containing a 24 byte vector Beginning position in the byte array - + Returns the raw bytes for this vector - An eight-byte array containing X and Y + A 24 byte array containing X, Y, and Z - + Writes the raw bytes for this vector to a byte array Destination byte array Position in the destination array to start - writing. Must be at least 8 bytes before the end of the array + writing. Must be at least 24 bytes before the end of the array - + Parse a vector from a string - A string representation of a 2D vector, enclosed + A string representation of a 3D vector, enclosed in arrow brackets and separated by commas - + Interpolates between two vectors using a cubic equation - + Get a formatted string representation of the vector A string representation of the vector - + Get a string representation of the vector elements with up to three decimal digits and separated by spaces only Raw string representation of the vector - - A vector with a value of 0,0 + + + Cross product between two vectors + - - A vector with a value of 1,1 + + + Implicit casting for Vector3 > Vector3d + + + - - A vector with a value of 1,0 + + A vector with a value of 0,0,0 - - A vector with a value of 0,1 + + A vector with a value of 1,1,1 + + + A unit vector facing forward (X axis), value of 1,0,0 + + + A unit vector facing left (Y axis), value of 0,1,0 + + + A unit vector facing up (Z axis), value of 0,0,1 + + + X value + + + Y value + + + Z value + + + W value + + + + Constructor, builds a vector from a byte array + + Byte array containing four four-byte floats + Beginning position in the byte array + + + + Test if this vector is equal to another vector, within a given + tolerance range + + Vector to test against + The acceptable magnitude of difference + between the two vectors + True if the magnitude of difference between the two vectors + is less than the given tolerance, otherwise false + + + + IComparable.CompareTo implementation + + + + + Test if this vector is composed of all finite numbers + + + + + Builds a vector from a byte array + + Byte array containing a 16 byte vector + Beginning position in the byte array + + + + Returns the raw bytes for this vector + + A 16 byte array containing X, Y, Z, and W + + + + Writes the raw bytes for this vector to a byte array + + Destination byte array + Position in the destination array to start + writing. Must be at least 16 bytes before the end of the array + + + + Get a string representation of the vector elements with up to three + decimal digits and separated by spaces only + + Raw string representation of the vector + + + A vector with a value of 0,0,0,0 + + + A vector with a value of 1,1,1,1 + + + A vector with a value of 1,0,0,0 + + + A vector with a value of 0,1,0,0 + + + A vector with a value of 0,0,1,0 + + + A vector with a value of 0,0,0,1 diff --git a/bin/OpenMetaverseTypes.dll b/bin/OpenMetaverseTypes.dll index 8bc8885..39b8f75 100755 Binary files a/bin/OpenMetaverseTypes.dll and b/bin/OpenMetaverseTypes.dll differ diff --git a/bin/OpenSim.32BitLaunch.exe b/bin/OpenSim.32BitLaunch.exe deleted file mode 100755 index cc73c8b..0000000 Binary files a/bin/OpenSim.32BitLaunch.exe and /dev/null differ diff --git a/bin/OpenSim.32BitLaunch.exe.config b/bin/OpenSim.32BitLaunch.exe.config index 6ac0206..5b7807a 100644 --- a/bin/OpenSim.32BitLaunch.exe.config +++ b/bin/OpenSim.32BitLaunch.exe.config @@ -4,6 +4,7 @@
+ @@ -11,22 +12,64 @@ + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bin/OpenSim.ConsoleClient.exe.config b/bin/OpenSim.ConsoleClient.exe.config index 7aa974c..3a50408 100644 --- a/bin/OpenSim.ConsoleClient.exe.config +++ b/bin/OpenSim.ConsoleClient.exe.config @@ -4,6 +4,7 @@
+ diff --git a/bin/OpenSim.Region.PhysicsModule.BulletS.dll.config b/bin/OpenSim.Region.PhysicsModule.BulletS.dll.config new file mode 100755 index 0000000..2763525 --- /dev/null +++ b/bin/OpenSim.Region.PhysicsModule.BulletS.dll.config @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/bin/OpenSim.Services.exe.config b/bin/OpenSim.Services.exe.config deleted file mode 100644 index c2d93c0..0000000 --- a/bin/OpenSim.Services.exe.config +++ /dev/null @@ -1,33 +0,0 @@ - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bin/OpenSim.addin.xml b/bin/OpenSim.addin.xml deleted file mode 100644 index a42ba25..0000000 --- a/bin/OpenSim.addin.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/bin/OpenSim.exe.config b/bin/OpenSim.exe.config index 8a891f4..b01191e 100755 --- a/bin/OpenSim.exe.config +++ b/bin/OpenSim.exe.config @@ -4,6 +4,7 @@
+ @@ -11,6 +12,10 @@ + + + + @@ -18,11 +23,31 @@ + + + + + + + + + + + + + + - + @@ -32,15 +57,15 @@ - - - - - + + + + + diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example index 658b993..d395efe 100644 --- a/bin/OpenSim.ini.example +++ b/bin/OpenSim.ini.example @@ -3,9 +3,12 @@ ;; If it's named OpenSim.ini.example then you will need to copy it to ;; OpenSim.ini first (if that file does not already exist) ;; -;; If you are copying, then once you have copied OpenSim.ini.example to -;; OpenSim.ini you will need to pick an architecture in the [Architecture] -;; section at the end of this file. +;; Once you have copied OpenSim.ini.example to OpenSim.ini you will at least +;; need to set the constants in the [Const] section and pick an architecture +;; in the [Architecture] section at the end of this file. The architecture +;; will require a suitable .ini file in the config-include directory, either +;; StandaloneCommon.ini or GridCommon.ini which you can copy and modify from the +;; available .example files. ;; ;; The settings in this file are in the form " = ". For example, ;; save_crashes = false in the [Startup] section below. @@ -42,6 +45,23 @@ ;; out. +[Const] + ; For a grid these will usually be the externally accessible IP/DNS + ; name and use default public port 8002 and default private port 8003 + ; For a standalone this will usually be the externally accessible IP/DNS + ; name and use default public port 9000. The private port is not used + ; in the configuration for a standalone. + + ;# {BaseURL} {} {BaseURL} {"http://example.com" "http://127.0.0.1"} "http://127.0.0.1" + BaseURL = http://127.0.0.1 + + ;# {PublicPort} {} {PublicPort} {8002 9000} "8002" + PublicPort = "8002" + + ;# {PrivatePort} {} {PrivatePort} {8003} "8003" + PrivatePort = "8003" + + [Startup] ;# {ConsolePrompt} {} {ConsolePrompt} {} "Region (\R) " ;; Console prompt @@ -51,6 +71,19 @@ ;; \\ - substitute \ ; ConsolePrompt = "Region (\R) " + ;# {ConsoleHistoryFileEnabled} {} {Save console commands to a history file?} {true false} true + ;; Console commands can be saved to a file, so the command history persists after a restart. (default is false) + ; ConsoleHistoryFileEnabled = true + + ;# {ConsoleHistoryFile} {} {Filename in which to save history} {} OpenSimConsoleHistory.txt + ;; The history file can be just a filename (relative to OpenSim's bin/ directory + ;; or it can be a full path to somewhere else. (default is OpenSimConsoleHistory.txt in bin/) + ; ConsoleHistoryFile = "OpenSimConsoleHistory.txt" + + ;# {ConsoleHistoryFileLines} {} {How many lines of history to save?} {} 100 + ;; How many lines of command history should we keep? (default is 100) + ; ConsoleHistoryFileLines = 100 + ;# {save_crashes} {} {Save crashes to disk?} {true false} false ;; Set this to true if you want to log crashes to disk ;; this can be useful when submitting bug reports. @@ -69,7 +102,19 @@ ;# {PIDFile} {} {Path to PID file?} {} ;; Place to create a PID file - ; PIDFile = "/tmp/my.pid" + ; PIDFile = "/tmp/OpenSim.exe.pid" + + ;# {RegistryLocation} {} {Addins Registry Location} {} + ; Set path to directory for addin registry if you want addins outside of bin. + ; Information about the registered repositories and installed plugins will + ; be stored here. The OpenSim.exe process must have R/W access to the location. + ; RegistryLocation = "." + + ;# {ConfigDirectory} {} {Set path to directory for modular ini files} {} + ; Used by region module addins. You can set this to outside bin, so that addin + ; configurations will survive updates. The OpenSim.exe process must have R/W access + ; to the location. + ; ConfigDirectory = "." ;# {region_info_source} {} {Where to load region from?} {filesystem web} filesystem ;; Determine where OpenSimulator looks for the files which tell it @@ -103,36 +148,36 @@ ;# {NonPhysicalPrimMin} {} {Minimum size of nonphysical prims?} {} 0.001 ;; Minimum size for non-physical prims. Affects resizing of existing - ;; prims. This can be overriden in the region config file (as + ;; prims. This can be overridden in the region config file (as ;; NonPhysicalPrimMin!). ; NonPhysicalPrimMin = 0.001 ;# {NonPhysicalPrimMax} {} {Maximum size of nonphysical prims?} {} 256 ;; Maximum size for non-physical prims. Affects resizing of existing - ;; prims. This can be overriden in the region config file (as + ;; prims. This can be overridden in the region config file (as ;; NonPhysicalPrimMax!). ; NonPhysicalPrimMax = 256 - ;# {PhysicalPrimMin} {} {Minimum size of physical prims?} {} 10 - ;; Maximum size where a prim can be physical. Affects resizing of - ;; existing prims. This can be overriden in the region config file. + ;# {PhysicalPrimMin} {} {Minimum size of physical prims?} {} 0.01 + ;; Minimum size where a prim can be physical. Affects resizing of + ;; existing prims. This can be overridden in the region config file. ; PhysicalPrimMin = 0.01 - ;# {PhysicalPrimMax} {} {Maximum size of physical prims?} {} 10 + ;# {PhysicalPrimMax} {} {Maximum size of physical prims?} {} 64 ;; Maximum size where a prim can be physical. Affects resizing of - ;; existing prims. This can be overriden in the region config file. - ; PhysicalPrimMax = 10 + ;; existing prims. This can be overridden in the region config file. + ; PhysicalPrimMax = 64 ;# {ClampPrimSize} {} {Clamp viewer rezzed prims to max sizes?} {true false} false ;; If a viewer attempts to rez a prim larger than the non-physical or ;; physical prim max, clamp the dimensions to the appropriate maximum - ;; This can be overriden in the region config file. + ;; This can be overridden in the region config file. ; ClampPrimSize = false - + ;# {LinksetPrims} {} {Max prims an object will hold?} {} 0 ;; Maximum number of prims allowable in a linkset. Affects creating new ;; linksets. Ignored if less than or equal to zero. - ;; This can be overriden in the region config file. + ;; This can be overridden in the region config file. ; LinksetPrims = 0 ;# {AllowScriptCrossing} {} {Allow scripts to cross into this region} {true false} true @@ -151,12 +196,13 @@ ;; YOU HAVE BEEN WARNED!!! ; TrustBinaries = false - ;# {CombineContiguousRegions} {} {Create megaregions where possible? (Do not use with existing content!)} {true false} false + ;# {CombineContiguousRegions} {} {Create megaregions where possible? (Do not use with existing content or varregions!)} {true false} false ;; Combine all contiguous regions into one large megaregion ;; Order your regions from South to North, West to East in your regions.ini ;; and then set this to true ;; Warning! Don't use this with regions that have existing content!, ;; This will likely break them + ;; Also, this setting should be set to false for varregions as they are proper larger single regions rather than combined smaller regions. ; CombineContiguousRegions = false ;# {InworldRestartShutsDown} {} {Shutdown instance on region restart?} {true false} false @@ -184,10 +230,6 @@ ;; if the first change occurred this number of seconds ago. ; MaximumTimeBeforePersistenceConsidered = 600 - ;# {see_into_this_sim_from_neighbor} {} {Should avatars in neighbor sims see objects in this sim?} {true false} true - ;; Should avatars in neighbor sims see objects in this sim? - ; see_into_this_sim_from_neighbor = true - ;# {physical_prim} {} {Allow prims to be physical?} {true false} true ;; if you would like to allow prims to be physical and move by physics ;; with the physical checkbox in the client set this to true. @@ -208,91 +250,22 @@ ; meshing = ZeroMesher ;; Choose one of the physics engines below - ;# {physics} {} {Select physics engine} {OpenDynamicsEngine BulletSim basicphysics POS} OpenDynamicsEngine - ;; OpenDynamicsEngine is by some distance the most developed physics engine - ;; BulletSim is incomplete and experimental but in active development. BulletSimN is a purely C# version of BulletSim. - ;; basicphysics effectively does not model physics at all, making all - ;; objects phantom. - ;; Default is OpenDynamicsEngine + ;# {physics} {} {Select physics engine} {OpenDynamicsEngine BulletSim basicphysics POS} BulletSim + ;; BulletSim is the default physics engine. It provides the best performance and most functionality. + ;; BulletSim supports varregions. + ;; OpenDynamicsEngine was the previous default physics engine in OpenSimulator 0.7.6.1 and before. + ;; It continues to provide a workable physics implementation. It does not currently support varregions. + ;; basicphysics effectively does not model physics at all, making all objects phantom. + ;; Default is BulletSim ; physics = OpenDynamicsEngine ; physics = BulletSim - ; physics = BulletSimN ; physics = basicphysics ; physics = POS - ;# {permissionmodules} {} {Permission modules to use (may specify multiple modules, separated by comma} {} DefaultPermissionsModule - ;; Permission modules to use, separated by comma. - ;; Possible modules are DefaultPermissionsModule, PrimLimitsModule - ; permissionmodules = DefaultPermissionsModule - - ;# {serverside_object_permissions} {permissionmodules:DefaultPermissionsModule} {Activate permission handling by the sim?} {true false} true - ;; These are the parameters for the default permissions module - ;; - ;; If set to false, then, in theory, the server never carries out - ;; permission checks (allowing anybody to copy - ;; any item, etc. This may not yet be implemented uniformally. - ;; If set to true, then all permissions checks are carried out - ; serverside_object_permissions = true - - ;# {allow_grid_gods} {} {Allow grid gods?} {true false} false - ;; This allows users with a UserLevel of 200 or more to assume god - ;; powers in the regions in this simulator. - ; allow_grid_gods = false - - ;; This allows some control over permissions - ;; please note that this still doesn't duplicate SL, and is not intended to - ;# {region_owner_is_god} {} {Allow region owner gods} {true false} true - ;; Allow region owners to assume god powers in their regions - ; region_owner_is_god = true - - ;# {region_manager_is_god} {} {Allow region manager gods} {true false} false - ;; Allow region managers to assume god powers in regions they manage - ; region_manager_is_god = false - - ;# {parcel_owner_is_god} {} {Allow parcel owner gods} {true false} true - ;; Allow parcel owners to assume god powers in their parcels - ; parcel_owner_is_god = true - - ;# {simple_build_permissions} {} {Allow building in parcel by access list (no groups)} {true false} false - ;; More control over permissions - ;; This is definitely not SL! - ;; Provides a simple control for land owners to give build rights to - ;; specific avatars in publicly accessible parcels that disallow object - ;; creation in general. - ;; Owners specific avatars by adding them to the Access List of the parcel - ;; without having to use the Groups feature - ; simple_build_permissions = false - - ;# {DefaultScriptEngine} {} {Default script engine} {XEngine} XEngine ;; Default script engine to use. Currently, we only have XEngine ; DefaultScriptEngine = "XEngine" - ;# {GenerateMaptiles} {} {Generate map tiles?} {true false} true - ;; Map tile options. You can choose to generate no map tiles at all, - ;; generate normal maptiles, or nominate an uploaded texture to - ;; be the map tile - ; GenerateMaptiles = true - - ;# {MaptileRefresh} {GenerateMaptiles} {Maptile refresh period?} {} 0 - ;; If desired, a running region can update the map tiles periodically - ;; to reflect building activity. This names no sense of you don't have - ;; prims on maptiles. Value is in seconds. - ; MaptileRefresh = 0 - - ;# {MaptileStaticUUID} {} {Asset ID for static map texture} {} 00000000-0000-0000-0000-000000000000 - ;; If not generating maptiles, use this static texture asset ID - ; MaptileStaticUUID = "00000000-0000-0000-0000-000000000000" - - ;# {TextureOnMapTile} {} {Use terrain textures for map tiles?} {true false} true - ;; Use terrain texture for maptiles if true, use shaded green if false - ; TextureOnMapTile = true - - ;# {DrawPrimOnMapTile} {} {Draw prim shapes on map tiles?} {true false} false - ;; Draw objects on maptile. This step might take a long time if you've - ;; got a large number of objects, so you can turn it off here if you'd like. - ; DrawPrimOnMapTile = true - ;# {HttpProxy} {} {Proxy URL for llHTTPRequest and dynamic texture loading} {} http://proxy.com:8080 ;; Http proxy setting for llHTTPRequest and dynamic texture loading, if ;; required @@ -325,6 +298,8 @@ ;; default is false ; TelehubAllowLandmark = false + +[AccessControl] ;# {AllowedClients} {} {Bar (|) separated list of allowed clients} {} ;; Bar (|) separated list of viewers which may gain access to the regions. ;; One can use a substring of the viewer name to enable only certain @@ -333,24 +308,118 @@ ;; - "Imprudence" has access ;; - "Imprudence 1.3" has access ;; - "Imprudence 1.3.1" has no access - ; AllowedViewerList = + ; AllowedClients = "" - ;# {BannedClients} {} {Bar (|) separated list of banned clients} {} - ;# Bar (|) separated list of viewers which may not gain access to the regions. + ;# {DeniedClients} {} {Bar (|) separated list of denied clients} {} + ;; Bar (|) separated list of viewers which may not gain access to the regions. ;; One can use a Substring of the viewer name to disable only certain ;; versions ;; Example: Agent uses the viewer "Imprudence 1.3.2.0" ;; - "Imprudence" has no access ;; - "Imprudence 1.3" has no access ;; - "Imprudence 1.3.1" has access - ; BannedViewerList = + ;; + ; DeniedClients = "" + + +[Map] + ;# {GenerateMaptiles} {} {Generate map tiles?} {true false} true + ;; Map tile options. + ;; If true, then maptiles are generated using the MapImageModule below. + ;; If false then the texture referenced by MaptileStaticUUID is used instead, which can also be overridden + ;; in individual region config file(s). If you do not want to upload map tiles at all, then you will need + ;; both to set this to false and comment out the [Modules] MapImageServiceModule setting in config-include/ + ; GenerateMaptiles = true + + ;# {MapImageModule} {} {The map image module to use} {MapImageModule Warp3DImageModule} MapImageModule + ;; The module to use in order to generate map images. + ;; MapImageModule is the default. Warp3DImageModule is an alternative experimental module that can + ;; generate better images. + ;MapImageModule = "MapImageModule" + + ;# {MaptileRefresh} {GenerateMaptiles} {Maptile refresh period?} {} 0 + ;; If desired, a running region can update the map tiles periodically + ;; to reflect building activity. This names no sense of you don't have + ;; prims on maptiles. Value is in seconds. + ; MaptileRefresh = 0 + + ;# {MaptileStaticUUID} {} {Asset ID for static map texture} {} 00000000-0000-0000-0000-000000000000 + ;; If not generating maptiles, use this static texture asset ID + ;; This may be overridden on a per region basis in Regions.ini + ; MaptileStaticUUID = "00000000-0000-0000-0000-000000000000" + + ;# {TextureOnMapTile} {} {Use terrain textures for map tiles?} {true false} true + ;; Use terrain texture for maptiles if true, use shaded green if false + ; TextureOnMapTile = true + + ;# {DrawPrimOnMapTile} {} {Draw prim shapes on map tiles?} {true false} false + ;; Draw objects on maptile. This step might take a long time if you've + ;; got a large number of objects, so you can turn it off here if you'd like. + ; DrawPrimOnMapTile = true + + ;# {TexturePrims} {} {Texture prims on map tiles?} {true false} true + ;; Texture the faces of the prims that are rendered on the map tiles. + ; TexturePrims = true + + ;# {TexturePrimSize} {} {Size of prims to texture faces?} {} 48 + ;; Only texture prims that have a diagonal size greater than this number + ; TexturePrimSize = 48 + + ;# {RenderMeshes} {} {Render meshes and sculpties on map tiles?} {true false} false + ;; Attempt to render meshes and sculpties on the map + ; RenderMeshes = false; + + +[Permissions] + ;# {permissionmodules} {} {Permission modules to use (may specify multiple modules, separated by comma} {} DefaultPermissionsModule + ;; Permission modules to use, separated by comma. + ;; Possible modules are DefaultPermissionsModule, PrimLimitsModule + ; permissionmodules = DefaultPermissionsModule + + ;# {serverside_object_permissions} {permissionmodules:DefaultPermissionsModule} {Activate permission handling by the sim?} {true false} true + ;; These are the parameters for the default permissions module + ;; + ;; If set to false, then, in theory, the server never carries out + ;; permission checks (allowing anybody to copy + ;; any item, etc. This may not yet be implemented uniformally. + ;; If set to true, then all permissions checks are carried out + ; serverside_object_permissions = true + + ;# {allow_grid_gods} {} {Allow grid gods?} {true false} false + ;; This allows users with a UserLevel of 200 or more to assume god + ;; powers in the regions in this simulator. + ; allow_grid_gods = false + + ;; This allows some control over permissions + ;; please note that this still doesn't duplicate SL, and is not intended to + ;# {region_owner_is_god} {} {Allow region owner gods} {true false} true + ;; Allow region owners to assume god powers in their regions + ; region_owner_is_god = true + + ;# {region_manager_is_god} {} {Allow region manager gods} {true false} false + ;; Allow region managers to assume god powers in regions they manage + ; region_manager_is_god = false + + ;# {parcel_owner_is_god} {} {Allow parcel owner gods} {true false} true + ;; Allow parcel owners to assume god powers in their parcels + ; parcel_owner_is_god = true + + ;# {simple_build_permissions} {} {Allow building in parcel by access list (no groups)} {true false} false + ;; More control over permissions + ;; This is definitely not SL! + ;; Provides a simple control for land owners to give build rights to + ;; specific avatars in publicly accessible parcels that disallow object + ;; creation in general. + ;; Owners specific avatars by adding them to the Access List of the parcel + ;; without having to use the Groups feature + ; simple_build_permissions = false [Estates] ; If these values are commented out then the user will be asked for estate details when required (this is the normal case). - ; If these values are uncommented then they will be used to create a default estate as necessary. + ; If these values are uncommented then they will be used to create a default estate as necessary. ; New regions will be automatically assigned to that default estate. - + ;# {DefaultEstateName} {} {Default name for estate?} {} My Estate ;; Name for the default estate ; DefaultEstateName = My Estate @@ -360,7 +429,7 @@ ; DefaultEstateOwnerName = FirstName LastName - ; ** Standalone Estate Settings ** + ; ** Standalone Estate Settings ** ; The following parameters will only be used on a standalone system to ; create an estate owner that does not already exist @@ -410,8 +479,8 @@ ;# {SMTP_SERVER_PASSWORD} {[Startup]emailmodule:DefaultEmailModule enabled:true} {SMTP server password} {} ; SMTP_SERVER_PASSWORD = "" -[Network] +[Network] ;# {ConsoleUser} {} {User name for console account} {} ;; Configure the remote console user here. This will not actually be used ;; unless you use -console=rest at startup. @@ -427,6 +496,32 @@ ;; the region ports use UDP. ; http_listener_port = 9000 + ; By default, OpenSimulator does not allow scripts to make HTTP calls to addresses on the simulator's LAN. + ; See the OutboundDisallowForUserScripts parameter in OpenSimDefaults.ini for more information on this filter. + ; If you need to allow scripts to make some LAN calls use the OutboundDisallowForUserScriptsExcept parameter below. + ; We recommend that you do not override OutboundDisallowForUserScripts directly unless you are very sure about what you're doing. + ; + ; You can whitelist individual endpoints by IP or FQDN, e.g. + ; + ; OutboundDisallowForUserScriptsExcept = 192.168.1.3:8003 + ; + ; You can specify multiple addresses by separating them with a bar. For example, + ; + ; OutboundDisallowForUserScriptsExcept = 192.168.1.3:8003|myinternalserver:8000 + ; + ; If an address if given without a port number then port 80 is assumed + ; + ; You can also specify a network range in CIDR notation to whitelist, e.g. + ; + ; OutboundDisallowForUserScriptsExcept = 192.168.1.0/24 + ; + ; to whitelist all ports on addresses 192.168.1.0 to 192.168.1.255 + ; To specify an individual IP address use the /32 netmask + ; + ; OutboundDisallowForUserScriptsExcept = 192.168.1.2/32 + ; + ; See http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation for more information on CIDR notation + ;# {ExternalHostNameForLSL} {} {Hostname to use for HTTP-IN URLs. This should be reachable from the internet.} {} ;; Hostname to use in llRequestURL/llRequestSecureURL ;; if not defined - default machine name is being used @@ -448,6 +543,17 @@ ;; web server ; user_agent = "OpenSim LSL (Mozilla Compatible)" + ;; The follow 3 variables are for HTTP Basic Authentication for the Robust services. + ;; Use this if your central services in port 8003 need to be accessible on the Internet + ;; but you want to protect them from unauthorized access. The username and password + ;; here need to match the ones in the Robust service configuration. + ; AuthType = "BasicHttpAuthentication" + ; HttpAuthUsername = "some_username" + ; HttpAuthPassword = "some_password" + ;; + ;; Any of these 3 variables above can be overriden in any of the service sections. + + [XMLRPC] ;# {XmlRpcRouterModule} {} {Module used to route incoming llRemoteData calls} {XmlRpcRouterModule XmlRpcGridRouterModule} XmlRpcRouterModule ;; If enabled and set to XmlRpcRouterModule, this will post an event, @@ -462,7 +568,7 @@ ;# {XmlRpcPort} {} {Port for incoming llRemoteData xmlrpc calls} {} 20800 ;XmlRpcPort = 20800 - ;# {XmlRpcHubURI} {XmlRpcRouterModule} {URI for external service used to register xmlrpc channels created in the simulator. This depends on XmlRpcRouterModule being set to XmlRpcGridRouterModule} http://example.com + ;# {XmlRpcHubURI} {XmlRpcRouterModule} {URI for external service used to register xmlrpc channels created in the simulator. This depends on XmlRpcRouterModule being set to XmlRpcGridRouterModule} {} http://example.com ;; If XmlRpcRouterModule is set to XmlRpcGridRouterModule, the simulator ;; will use this address to register xmlrpc channels on the external ;; service @@ -495,25 +601,26 @@ ;; "" -- capability enabled and served by some other server ;; ; These are enabled by default to localhost. Change if you see fit. - Cap_GetTexture = "localhost" + Cap_GetTexture = "localhost" Cap_GetMesh = "localhost" - ; This is disabled by default. Change if you see fit. Note that - ; serving this cap from the simulators may lead to poor performace. - Cap_WebFetchInventoryDescendents = "" + Cap_AvatarPickerSearch = "localhost" + Cap_GetDisplayNames = "localhost" [SimulatorFeatures] - ;# {MapImageServerURI} {} {URL for the map server} {} - ; Experimental new information sent in SimulatorFeatures cap for Kokua - ; viewers - ; meant to override the MapImage and search server url given at login, and varying - ; on a sim-basis. - ; Viewers that don't understand it, will ignore it - ;MapImageServerURI = "http://127.0.0.1:9000/" ;# {SearchServerURI} {} {URL of the search server} {} + ;; Optional. If given this serves the same purpose as the grid wide + ;; [LoginServices] SearchURL setting and will override that where + ;; supported by viewers. ;SearchServerURI = "http://127.0.0.1:9000/" + ;# {DestinationGuideURI} {} {URL of the destination guide} {} + ;; Optional. If given this serves the same purpose as the grid wide + ;; [LoginServices] DestinationGuide setting and will override that where + ;; supported by viewers. + ;DestinationGuideURI = "http://127.0.0.1:9000/guide" + [Chat] ;# {whisper_distance} {} {Distance at which a whisper is heard, in meters?} {} 10 @@ -524,20 +631,34 @@ ;; Distance in meters that ordinary chat should travel. ; say_distance = 20 - ;# {shout_distance} {Distance at which a shout is heard, in meters?} {} 100 + ;# {shout_distance} {} {Distance at which a shout is heard, in meters?} {} 100 ;; Distance in meters that shouts should travel. ; shout_distance = 100 +[EntityTransfer] + ;# {DisableInterRegionTeleportCancellation} {} {Determine whether the cancel button is shown at all during teleports.} {false true} false + ;; This option exists because cancelling at certain points can result in an unuseable session (frozen avatar, etc.) + ;; Disabling cancellation can be okay in small closed grids where all teleports are highly likely to suceed. + ;DisableInterRegionTeleportCancellation = false + + [Messaging] - ;# {OfflineMessageModule} {} {Module to use for offline message storage} {OfflineMessageModule *} + ;# {OfflineMessageModule} {} {Module to use for offline message storage} {OfflineMessageModule "Offline Message Module V2" *} ;; Module to handle offline messaging. The core module requires an external ;; web service to do this. See OpenSim wiki. ; OfflineMessageModule = OfflineMessageModule + ;; Or, alternatively, use this one, which works for both standalones and grids + ; OfflineMessageModule = "Offline Message Module V2" + + ;# {OfflineMessageURL} {OfflineMessageModule:OfflineMessageModule Offline Message Module V2:Offline Message Module V2} {URL of offline messaging service} {} + ;; URL of web service for offline message storage. Leave it commented if your service is local to the sim. + ; OfflineMessageURL = ${Const|BaseURL}/Offline.php + ; OfflineMessageURL = ${Const|BaseURL}:${Const|PrivatePort} - ;# {OfflineMessageURL} {OfflineMessageModule:OfflineMessageModule} {URL of offline messaging service} {} - ;; URL of web service for offline message storage - ; OfflineMessageURL = http://yourserver/Offline.php + ;# {StorageProvider} {Offline Message Module V2:Offline Message Module V2} {DLL that provides the storage interface} {OpenSim.Data.MySQL.dll} + ;; For standalones, this is the storage dll. + ; StorageProvider = OpenSim.Data.MySQL.dll ;# {MuteListModule} {OfflineMessageModule:OfflineMessageModule} {} {} MuteListModule ;; Mute list handler (not yet implemented). MUST BE SET to allow offline @@ -549,12 +670,17 @@ ;; must be set to allow offline messaging to work. ; MuteListURL = http://yourserver/Mute.php - ;; Control whether group messages are forwarded to offline users. + ;; Control whether group invites and notices are stored for offline users. ;; Default is true. - ;; This applies to the core groups module (Flotsam) only. + ;; This applies to both core groups module. ; ForwardOfflineGroupMessages = true +[BulletSim] + ;# {AvatarToAvatarCollisionsByDefault} {[Startup]physics:BulletSim} {Should avatars collide with each other?} {true false} true + AvatarToAvatarCollisionsByDefault = true + + [ODEPhysicsSettings] ;# {mesh_sculpted_prim} {[Startup]physics:OpenDynamicsEngine} {Mesh sculpties so they collide as they look?} {true false} true ;; Do we want to mesh sculpted prim to collide like they look? @@ -586,7 +712,8 @@ ;; the "password" parameter) ; access_password = "" - ;# List the IP addresses allowed to call RemoteAdmin + ;# {access_ip_addresses} {enabled:true} {List the IP addresses allowed to call RemoteAdmin?} {} + ;; List the IP addresses allowed to call RemoteAdmin ;; If access_ip_addresses isn't set, then all IP addresses can access RemoteAdmin. ;; access_ip_addresses = 0.0.0.0, 0.0.0.0 ... ; access_ip_addresses = @@ -667,6 +794,12 @@ ; enable_windlight = false +[Materials] + ;# {enable_materials} {} {Enable Materials support?} {true false} true + ;; This enables the use of Materials. + ; enable_materials = true + ; MaxMaterialsPerTransaction = 50 + [DataSnapshot] ;# {index_sims} {} {Enable data snapshotting (search)?} {true false} false ;; The following set of configs pertains to search. @@ -697,12 +830,15 @@ ;; the data snapshots. ; snapshot_cache_directory = "DataSnapshot" + ;; [Supported, but obsolete] ;# {data_services} {index_sims:true} {Data service URLs to register with?} {} http://metaverseink.com/cgi-bin/register.py ; This semicolon-separated string serves to notify specific data services ; about the existence of this sim. Uncomment if you want to index your ; data with this and/or other search providers. ; data_services="http://metaverseink.com/cgi-bin/register.py" + ;; New way of specifying data services, one per service + ;DATA_SRV_MISearch = "http://metaverseink.com/cgi-bin/register.py" [Economy] ;# {SellEnabled} {} {Enable selling for 0?} {true false} true @@ -749,13 +885,6 @@ ;; The trade-off may be increased memory usage by the script engine. ; ThreadStackSize = 262144 - ;# {DeleteScriptsOnStartup} {} {Delete previously compiled script DLLs on startup?} (true false) true - ;; Controls whether previously compiled scripts DLLs are deleted on sim restart. If you set this to false - ;; then startup will be considerably faster since scripts won't need to be recompiled. However, then it becomes your responsibility to delete the - ;; compiled scripts if you're recompiling OpenSim from source code and internal interfaces used - ;; by scripts have changed. - ; DeleteScriptsOnStartup = true - ;; Set this to true (the default) to load each script into a separate ;; AppDomain. ;; @@ -768,13 +897,30 @@ ;; Some Windows users have also reported script loading problems when AppDomainLoading = false ; AppDomainLoading = true + ;; Controls whether scripts are stopped by aborting their threads externally (abort) or by co-operative checks from the compiled script (co-op) + ;; co-op will be more stable but this option is currently experimental. + ;; If moving from co-op to abort, existing script DLLs will need to be recompiled. + ;; This currently can only be done manually, either by setting DeleteScriptsOnStartup = true for one run + ;; or by deleting the script DLL* files in bin/ScriptEngines// + ;; One can move from co-op back to abort without recompilation, but reverting back to co-op again will need script recompile + ;; Current valid values are "abort" and "co-op" + ; ScriptStopStrategy = abort + + + ;# {DeleteScriptsOnStartup} {} {Delete previously compiled script DLLs on startup?} {true false} true + ;; Controls whether previously compiled scripts DLLs are deleted on sim restart. If you set this to false + ;; then startup will be considerably faster since scripts won't need to be recompiled. However, then it becomes your responsibility to delete the + ;; compiled scripts if you're recompiling OpenSim from source code and internal interfaces used + ;; by scripts have changed. + ; DeleteScriptsOnStartup = true + ;# {DefaultCompileLanguage} {Enabled:true} {Default script language?} {lsl vb cs} lsl ;; Default language for scripts ; DefaultCompileLanguage = "lsl" ;# {AllowedCompilers} {Enabled:true} {Languages to allow (comma separated)?} {} lsl ;; List of allowed languages (lsl,vb,cs) - ;; AllowedCompilers=lsl,cs,js,vb. + ;; AllowedCompilers=lsl,cs,vb ;; *warning*, non lsl languages have access to static methods such as ;; System.IO.File. Enable at your own risk. ; AllowedCompilers = "lsl" @@ -782,53 +928,7 @@ ;; Compile debug info (line numbers) into the script assemblies ; CompileWithDebugInformation = true - ;; Allow the user of mod* functions. This allows a script to pass messages - ;; to a region module via the modSendCommand() function - ;; Default is false - ; AllowMODFunctions = false - - ;# {AllowOSFunctions} {Enabled:true} {Allow OSFunctions? (DANGEROUS!)} {true false} false - ;; Allow the use of os* functions (some are dangerous) - ; AllowOSFunctions = false - - ;# {AllowLightShareFunctions} {Enabled:false [LightShare]enable_windlight:true} {Allow LightShare functions?} {true false} false - ; Allow the use of LightShare functions. - ; The setting enable_windlight = true must also be enabled in the [LightShare] section. - ; AllowLightShareFunctions = false - - ;# {OSFunctionThreatLevel} {Enabled:true AllowOSFunctions:true} {OSFunction threat level? (DANGEROUS!)} {None VeryLow Low Moderate High VeryHigh Severe} VeryLow - ;; Threat level to allow, one of None, VeryLow, Low, Moderate, High, VeryHigh, Severe - ;; See http://opensimulator.org/wiki/Threat_level for more information on these levels. - ;; We do not recommend that use set a general level above Low unless you have a high level of trust - ;; in all the users that can run scripts in your simulator. It is safer to explicitly - ;; allow certain types of user to run higher threat level OSSL functions, as detailed later on. - OSFunctionThreatLevel = VeryLow - - ; OS Functions enable/disable - ; For each function, you can add one line, as shown - ; The default for all functions allows them if below threat level - - ; true allows the use of the function unconditionally - ; Allow_osSetRegionWaterHeight = true - - ; false disables the function completely - ; Allow_osSetRegionWaterHeight = false - - ; Comma separated list of UUIDS allows the function for that list of UUIDS - ; Allow_osSetRegionWaterHeight = 888760cb-a3cf-43ac-8ea4-8732fd3ee2bb - - ; Comma separated list of owner classes that allow the function for a particular class of owners. Choices are - ; - PARCEL_GROUP_MEMBER: allow if the object group is the same group as the parcel - ; - PARCEL_OWNER: allow if the object owner is the parcel owner - ; - ESTATE_MANAGER: allow if the object owner is an estate manager - ; - ESTATE_OWNER: allow if the object owner is the estate owner - ; Allow_osSetRegionWaterHeight = 888760cb-a3cf-43ac-8ea4-8732fd3ee2bb, PARCEL_OWNER, ESTATE_OWNER>, ... - - ; You can also use script creators as the uuid - ; Creators_osSetRegionWaterHeight = , ... - - ; If both Allow_ and Creators_ are given, effective permissions - ; are the union of the two. + ; ==== Settings for MOD and OSSL functions have been moved to the [OSSL] section ;# {EventLimit} {} {Amount of time a script can spend in an event handler} {} 30 ;; Time a script can spend in an event handler before it is interrupted @@ -869,6 +969,12 @@ ;; Default is ./bin/ScriptEngines ; ScriptEnginesPath = "ScriptEngines" +[OSSL] + ;# {Include-osslEnable} {} {Include file for enabling and permissions for OSSL functions} {} + ;; Optionally include file to enable OSSL functions and set permissions on who can use which. + ;; If this INI file is not included, the OSSL functions are disabled. + Include-osslEnable = "config-include/osslEnable.ini" + [MRM] ;; Enables the Mini Region Modules Script Engine. @@ -914,44 +1020,83 @@ ;; Enables the groups module ; Enabled = false - ;# {Module} {Enabled:true} {Groups module to use? (Use GroupsModule to use Flotsam/Simian)} {} Default - ;; This is the current groups stub in Region.CoreModules.Avatar.Groups. - ;; All the other settings below only really apply to the Flotsam/SimianGrid - ;; GroupsModule. - ;; This module can use a PHP XmlRpc server from the Flotsam project at + ;# {LevelGroupCreate} {Enabled:true} {User level for creating groups} {} 0 + ;; Minimum user level required to create groups + ; LevelGroupCreate = 0 + + ;# {Module} {Enabled:true} {Groups module to use? (Use GroupsModule to use Flotsam/Simian)} {Default "Groups Module V2"} Default + ;; The default module can use a PHP XmlRpc server from the Flotsam project at ;; http://code.google.com/p/flotsam/ ;; or from the SimianGrid project at http://code.google.com/p/openmetaverse ; Module = Default + ;; or... use Groups Module V2, which works for standalones and robust grids + ; Module = "Groups Module V2" + + ;# {StorageProvider} {Module:Groups Module V2} {The DLL that provides the storage for V2} {OpenSim.Data.MySQL.dll} + ; StorageProvider = OpenSim.Data.MySQL.dll + + ;# {ServicesConnectorModule} {Module:GroupsModule Module:Groups Module V2} {Service connector to use for groups} {XmlRpcGroupsServicesConnector SimianGroupsServicesConnector "Groups Local Service Connector" "Groups Remote Service Connector" "Groups HG Service Connector"} XmlRpcGroupsServicesConnector + ;; Service connectors to the Groups Service as used in the GroupsModule. Select one as follows: + ;; -- for Flotsam Groups use XmlRpcGroupsServicesConnector + ;; -- for Simian Groups use SimianGroupsServicesConnector + ;; -- for V2 Groups, standalone, non-HG use "Groups Local Service Connector" + ;; -- for V2 Groups, grided sim, non-HG use "Groups Remote Service Connector" + ;; -- for V2 Groups, HG, both standalone and grided sim, use "Groups HG Service Connector" + ;; Note that the quotes "" around the words are important! + ; ServicesConnectorModule = XmlRpcGroupsServicesConnector - ;# {MessagingEnabled} {Module:GroupsModule} {Is groups messaging enabled?} {true false} true - ; MessagingEnabled = true - - ;# {MessagingModule} {MessagingEnabled:true} {Module to use for groups messaging} {GroupsMessagingModule} GroupsMessagingModule - ; MessagingModule = GroupsMessagingModule + ;# {LocalService} {ServicesConnectorModule:Groups HG Service Connector} {Is the group service in this process or elsewhere?} {local remote} local + ;; Used for V2 in HG only. If standalone, set this to local; if grided sim, set this to remote + ; LocalService = local - ;# {ServicesConnectorModule} {Module:GroupsModule} {Service connector to use for groups} {XmlRpcGroupsServicesConnector SimianGroupsServicesConnector} XmlRpcGroupsServicesConnector - ;; Service connectors to the Groups Service as used in the GroupsModule. Select one depending on - ;; whether you're using a Flotsam XmlRpc backend or a SimianGrid backend - ; ServicesConnectorModule = XmlRpcGroupsServicesConnector + ;# {SecretKey} {ServicesConnectorModule:Groups Remote Service Connector} {Secret key between sim and remote group service} {} "" + ;; Used for V2 in Remote only. + ; SecretKey = "" - ;# {GroupsServerURI} {Module:GroupsModule} {Groups Server URI} {} - ;; URI for the groups services + ;# {GroupsServerURI} {Module:GroupsModule (ServicesConnectorModule:Groups Remote Service Connector or (ServicesConnectorModule:Groups HG Service Connector and LocalService:remote))} {Groups Server URI} {} + ;; URI for the groups services of this grid ;; e.g. http://yourxmlrpcserver.com/xmlrpc.php for Flotsam XmlRpc ;; or http://mygridserver.com:82/Grid/ for SimianGrid + ;; or ${Const|BaseURL}:${Const|PrivatePort} for robust, V2 + ;; Leave it commented for standalones, V2 ; GroupsServerURI = "" - ;# {NoticesEnabled} {Module:GroupsModule} {Enable group notices?} {true false} true + ;# {HomeURI} {ServicesConnectorModule:Groups HG Service Connector} {What's the home address of this world?} {} + ;; Used for V2 in HG only. For example + ;; http://mygridserver.com:9000 or http://mygridserver.com:8002 + ;; If you have this set under [Startup], no need to set it here, leave it commented + ; HomeURI = "" + + ;# {MessagingEnabled} {Module:GroupsModule Module:Groups Module V2} {Is groups messaging enabled?} {true false} true + ; MessagingEnabled = true + + ;# {MessagingModule} {MessagingEnabled:true} {Module to use for groups messaging} {GroupsMessagingModule "Groups Messaging Module V2"} GroupsMessagingModule + ; MessagingModule = GroupsMessagingModule + ; or use "Groups Messaging Module V2" for Groups V2 + ; MessagingModule = "Groups Messaging Module V2" + + ;# {NoticesEnabled} {Module:GroupsModule Module:Groups Module V2} {Enable group notices?} {true false} true ;; Enable Group Notices ; NoticesEnabled = true - ;; This makes the Groups modules very chatty on the console. + ;# {MessageOnlineUsersOnly} {Module:GroupsModule Module} {Message online users only?} {true false} false + ; Experimental option to only message online users rather than all users + ; Should make large groups with few online members messaging faster, as the expense of more calls to presence service + ; Applies Flotsam Group only. V2 has this always on, no other option + ; MessageOnlineUsersOnly = false + + ;; This makes the Group module very chatty on the console. ; DebugEnabled = false + ; This makes the Group Messaging module very chatty on the console. + ; DebugMessagingEnabled = false + ;; XmlRpc Security settings. These must match those set on your backend ;; groups service if the service is using these keys ; XmlRpcServiceReadKey = 1234 ; XmlRpcServiceWriteKey = 1234 + [InterestManagement] ;# {UpdatePrioritizationScheme} {} {Update prioritization scheme?} {BestAvatarResponsiveness Time Distance SimpleAngularDistance FrontBack} BestAvatarResponsiveness ;; This section controls how state updates are prioritized for each client @@ -970,10 +1115,33 @@ ;# {Enabled} {} {Enable Non Player Character (NPC) facilities} {true false} false ; Enabled = false + [Terrain] ;# {InitialTerrain} {} {Initial terrain type} {pinhead-island flat} pinhead-island ; InitialTerrain = "pinhead-island" + +[UserProfiles] + ;# {ProfileServiceURL} {} {Set url to UserProfilesService} {} + ;; Set the value of the url to your UserProfilesService + ;; If un-set / "" the module is disabled + ;; ProfileServiceURL = ${Const|BaseURL}:${Const|PublicPort} + +[XBakes] + ;# {URL} {} {Set URL for Baked texture service} {} + ;; Sets the URL for the baked texture ROBUST service. + ;; Disabled when unset. + ;; URL = ${Const|BaseURL}:${Const|PrivatePort} + +;; +;; Optional module to highlight God names in the viewer. +;; Uncomment and customize appropriately if you want this behavior. +;; +;[GodNames] +; Enabled = false +; FullNames = "Test User, Foo Bar" +; Surnames = "Kryztlsk" + [Architecture] ;# {Include-Architecture} {} {Choose one of the following architectures} {config-include/Standalone.ini config-include/StandaloneHypergrid.ini config-include/Grid.ini config-include/GridHypergrid.ini config-include/SimianGrid.ini config-include/HyperSimianGrid.ini} config-include/Standalone.ini ;; Uncomment one of the following includes as required. For instance, to create a standalone OpenSim, diff --git a/bin/OpenSimDefaults.ini b/bin/OpenSimDefaults.ini index dac92f0..a99608c 100644 --- a/bin/OpenSimDefaults.ini +++ b/bin/OpenSimDefaults.ini @@ -1,7 +1,6 @@ ; This file contains defaults for various settings in OpenSimulator. These can be overriden ; by changing the same setting in OpenSim.ini (once OpenSim.ini.example has been copied to OpenSim.ini). - [Startup] ; Console prompt ; Certain special characters can be used to customize the prompt @@ -10,6 +9,19 @@ ; \\ - substtitue \ ConsolePrompt = "Region (\R) " + ; Console commands can be saved to a file, so the command history persists after a restart. (default is true) + ConsoleHistoryFileEnabled = true + + ; Log file location. This can be set to a simple file path + ; LogFile = OpenSim.log + + ; The history file can be just a filename (relative to OpenSim's bin/ directory + ; or it can be a full path to somewhere else. (default is OpenSimConsoleHistory.txt in bin/) + ConsoleHistoryFile = "OpenSimConsoleHistory.txt" + + ; How many lines of command history should we keep? (default is 100) + ConsoleHistoryFileLines = 100 + ; Set this to true if you want to log crashes to disk ; this can be useful when submitting bug reports. ; However, this will only log crashes within OpenSimulator that cause the entire program to exit @@ -22,7 +34,7 @@ crash_dir = "crashes" ; Place to create a PID file - ; PIDFile = "/tmp/my.pid" + ; PIDFile = "/tmp/OpenSim.exe.pid" ; Console commands run at startup startup_console_commands_file = "startup_commands.txt" @@ -44,14 +56,34 @@ ; Sets the method that OpenSim will use to fire asynchronous ; events. Valid values are UnsafeQueueUserWorkItem, ; QueueUserWorkItem, BeginInvoke, SmartThreadPool, and Thread. + ; ; SmartThreadPool is reported to work well on Mono/Linux, but ; UnsafeQueueUserWorkItem has been benchmarked with better ; performance on .NET/Windows + ; + ; UnsafeQueueUserWorkItem refers to the fact that the code creating the event could elevate its security + ; privileges. However, as calling code is trusted anyway this is safe (if you set + ; TrustedBinaries = true in the [XEngine] section then you already have to trust that incoming code for other reasons). async_call_method = SmartThreadPool ; Max threads to allocate on the FireAndForget thread pool ; when running with the SmartThreadPool option above - MaxPoolThreads = 15 + MaxPoolThreads = 300 + + ; Allow certain jobs to be run consecutively in a job engine rather than always concurrently. + ; This improves performance in regions with large numbers of connections (in the hundreds). + JobEngineEnabled = true + + ; Plugin Registry Location + ; Set path to directory for plugin registry. Information about the + ; registered repositories and installed plugins will be stored here. + ; The OpenSim.exe process must have R/W access to the location. + RegistryLocation = "." + + ; Used by region module addins. You can set this to outside bin, so that addin + ; configurations will survive updates. The OpenSim.exe process must have R/W access + ; to the location. + ConfigDirectory = "." ; ## ; ## CLIENTS @@ -82,22 +114,25 @@ ;; from the selected region_info_source. allow_regionless = false + ;; Allow child agents to see into the region even if their root counterpart isn't allowed in here + see_into_region = true + ; Maximum number of position, rotation and scale changes for each prim that the simulator will store for later undos ; Increasing this number will increase memory usage. MaxPrimUndos = 20 - ; Maximum size of non physical prims. Affects resizing of existing prims. This can be overriden in the region config file (as NonPhysicalPrimMax!). + ; Maximum size of non physical prims. Affects resizing of existing prims. This can be overridden in the region config file (as NonPhysicalPrimMax!). NonPhysicalPrimMax = 256 - ; Maximum size of physical prims. Affects resizing of existing prims. This can be overriden in the region config file. - PhysicalPrimMax = 10 + ; Maximum size of physical prims. Affects resizing of existing prims. This can be overridden in the region config file. + PhysicalPrimMax = 64 ; If a viewer attempts to rez a prim larger than the non-physical or physical prim max, clamp the dimensions to the appropriate maximum - ; This can be overriden in the region config file. + ; This can be overridden in the region config file. ClampPrimSize = false - + ; Maximum number of prims allowable in a linkset. Affects creating new linksets. Ignored if less than or equal to zero. - ; This can be overriden in the region config file. + ; This can be overridden in the region config file. LinksetPrims = 0 ; Allow scripts to keep running when they cross region boundaries, rather than being restarted. State is reloaded on the destination region. @@ -131,12 +166,30 @@ ; into a restart. InworldRestartShutsDown = false + ; Use of normalized 55FPS statistics + ; Opensim does not have a frame rate control like other simulators. + ; Most parameters that control timing can be configurable region by region. + ; To achieve closer compatibility with values expected by viewers, scripts and users + ; some parameters are converted to a equivalent per frame value. + ; Additionally, they are scaled to values they would have on a system running at a nominal 55 frames per second rate. + ; The scale factor it 55 * FrameTime, corresponding to 5 with default configuration + ; You can choose to show the true physics FPS to viewers by setting Normalized55FPS to false. + ; Normalized55FPS = true + ; The minimum proportion of a second that any particular frame can take to execute. ; Only change this if you really know what you're doing, and be prepared to change UpdatePhysicsEveryNFrames ; (and other Frames params) to match! For instance, halving MinFrameTime to 0.0445 require ; UpdatePhysicsEveryNFrames = 2 unless you don't mind your avatar walking like Benny Hill. MinFrameTime = 0.089 + ; The values below represent the percentage of the target frame time that, + ; when underrun, should trigger yellow or red in the lag meter. + ; Less than 60% of FPS is amber by default, less then 40% is red. + ; These values are advisory. Viewers may choose to not use them but it is + ; encouraged that they do. + ; FrameTimeWarnPercent = 60; + ; FrameTimeCritPercent = 40; + ; Send scheduled updates to objects in the scene ; This must be a whole number UpdateObjectsEveryNFrames = 1; @@ -157,10 +210,6 @@ ; This must be a whole number UpdatePhysicsEveryNFrames = 1; - ; Clean up temp on rez objects. - ; This must be a whole number - UpdateTempCleaningEveryNFrames = 1000; - ; Send out the on frame event to modules and other listeners. This should probably never deviate from 1. ; This must be a whole number UpdateEventsEveryNFrames = 1; @@ -173,6 +222,10 @@ ; This must be a whole number UpdateStorageEveryNFrames = 200; + ; Clean up temp on rez objects. + ; This must be a whole number + UpdateTempCleaningEveryNSeconds = 180; + ; ## ; ## PRIM STORAGE ; ## @@ -221,17 +274,114 @@ ; to false if you have compatibility problems. ;CacheSculptMaps = true - ; Choose one of the physics engines below. - ; OpenDynamicsEngine is by some distance the most developed physics engine. - ; BulletSim is a high performance, up-and-coming physics engine. - ; basicphysics effectively does not model physics at all, making all objects phantom. - physics = OpenDynamicsEngine + ;; BulletSim is the default physics engine. It provides the best performance and most functionality. + ;; BulletSim supports varregions. + ;; OpenDynamicsEngine was the previous default physics engine in OpenSimulator 0.7.6.1 and before. + ;; It continues to provide a workable physics implementation. It does not currently support varregions. + ;; basicphysics effectively does not model physics at all, making all objects phantom. + ;; Default is OpenDynamicsEngine + physics = BulletSim + ;physics = modified_BulletX + ;physics = OpenDynamicsEngine ;physics = basicphysics ;physics = POS - ;physics = modified_BulletX - ;physics = BulletSim ; ## + ; ## SCRIPT ENGINE + ; ## + + DefaultScriptEngine = "XEngine" + + ; ## + ; ## EMAIL MODULE + ; ## + + ;emailmodule = DefaultEmailModule + + ; ## + ; ## ANIMATIONS + ; ## + + ; If enabled, enableFlySlow will change the primary fly state to + ; FLYSLOW, and the "always run" state will be the regular fly. + enableflyslow = false + + ; PreJump is an additional animation state, but it probably + ; won't look right until the physics engine supports it + ; (i.e delays takeoff for a moment) + + ; Simulator statistics are output to the console periodically at debug level INFO. + ; Setting this to zero disables this output. + ; LogShowStatsSeconds = 3600 + + ; Simulator Stats URI + ; Enable JSON simulator data by setting a URI name (case sensitive) + ; Returns regular sim stats (SimFPS, ...) + Stats_URI = "jsonSimStats" + + ; Simulator StatsManager URI + ; Enable fetch of StatsManager registered stats. Fetch is query which can optionally + ; specify category, container and stat to fetch. If not selected, returns all of that type. + ; http://simulatorHTTPport/ManagedStats/?cat=Category&cont=Container&stat=Statistic + ; ManagedStatsRemoteFetchURI = "ManagedStats" + + ; Make OpenSim start all regions woth logins disabled. They will need + ; to be enabled from the console if this is set + ; StartDisabled = false + + ; Image decoding. Use CSJ2K for layer boundary decoding if true, + ; OpenJPEG if false + ; UseCSJ2K = true + + ; Use "Trash" folder for items deleted from the scene + ; When set to True (the default) items deleted from the scene will be + ; stored in the user's trash or lost and found folder. When set to + ; False items will be removed from the scene permanently + UseTrashOnDelete = True + + ; # + ; # Logging + ; # + + ; Force logging when the thread pool approaches an overload condition + ; Provides useful data for post-mortem analysis even in a production + ; system with reduced logging + LogOverloads = True + +[Map] + ;WorldMapModule = "WorldMap" + ;MapImageModule = "MapImageModule" + + ; World map blacklist timeout in seconds + ;BlacklistTimeout = 600 + + ; Set to false to not generate any maptiles + ;GenerateMaptiles = true + + ; Refresh (in seconds) the map tile periodically + ;MaptileRefresh = 0 + + ; If not generating maptiles, use this static texture asset ID + ;MaptileStaticUUID = "00000000-0000-0000-0000-000000000000" + + ; Draw objects on maptile. This step might take a long time if you've got a large number of + ; objects, so you can turn it off here if you'd like. + DrawPrimOnMapTile = true + + ; Use terrain texture for maptiles if true, use shaded green if false + TextureOnMapTile = true + + ; Texture prims + TexturePrims = true + + ; Only texture prims that have a diagonal size greater than this number + TexturePrimSize = 48 + + ; Attempt to render meshes and sculpties on the map + RenderMeshes = false; + +[Permissions] + ; ## ; ## PERMISSIONS ; ## @@ -279,74 +429,6 @@ ; Minimum user level required to upload assets ;LevelUpload = 0 - ; ## - ; ## SCRIPT ENGINE - ; ## - - DefaultScriptEngine = "XEngine" - - ; ## - ; ## WORLD MAP - ; ## - - ;WorldMapModule = "WorldMap" - ;MapImageModule = "MapImageModule" - - ; World map blacklist timeout in seconds - ;BlacklistTimeout = 600 - - ; Set to false to not generate any maptiles - ;GenerateMaptiles = true - - ; Refresh (in seconds) the map tile periodically - ;MaptileRefresh = 0 - - ; If not generating maptiles, use this static texture asset ID - ;MaptileStaticUUID = "00000000-0000-0000-0000-000000000000" - - ; Draw objects on maptile. This step might take a long time if you've got a large number of - ; objects, so you can turn it off here if you'd like. - DrawPrimOnMapTile = true - - ; Use terrain texture for maptiles if true, use shaded green if false - TextureOnMapTile = true - - ; ## - ; ## EMAIL MODULE - ; ## - - ;emailmodule = DefaultEmailModule - - ; ## - ; ## ANIMATIONS - ; ## - - ; If enabled, enableFlySlow will change the primary fly state to - ; FLYSLOW, and the "always run" state will be the regular fly. - enableflyslow = false - - ; PreJump is an additional animation state, but it probably - ; won't look right until the physics engine supports it - ; (i.e delays takeoff for a moment) - - ; Simulator Stats URI - ; Enable JSON simulator data by setting a URI name (case sensitive) - ; Stats_URI = "jsonSimStats" - - ; Make OpenSim start all regions woth logins disabled. They will need - ; to be enabled from the console if this is set - ; StartDisabled = false - - ; Image decoding. Use CSJ2K for layer boundary decoding if true, - ; OpenJPEG if false - ; UseCSJ2K = true - - ; Use "Trash" folder for items deleted from the scene - ; When set to True (the default) items deleted from the scene will be - ; stored in the user's trash or lost and found folder. When set to - ; False items will be removed from the scene permanently - UseTrashOnDelete = True - [RegionReady] ; Enable this module to get notified once all items and scripts in the region have been completely loaded and compiled @@ -374,6 +456,18 @@ AllowRegionRestartFromClient = true +[UserProfiles] + ;# {ProfileURL} {} {Set url to UserProfilesService} {} + ;; Set the value of the url to your UserProfilesService + ;; If un-set / "" the module is disabled + ;; If the ProfileURL is not set, then very BASIC + ;; profile support will be configured. If the ProfileURL is set to a + ;; valid URL, then full profile support will be configured. The URL + ;; points to your grid's Robust user profiles service + ;; + ; ProfileURL = http://127.0.0.1:9000 + + [SMTP] enabled = false @@ -419,6 +513,26 @@ ; (on Windows this mean NETBIOS name - useably only inside local network) ; ExternalHostNameForLSL=127.0.0.1 + ; Disallow the following address ranges for user scripting calls (e.g. llHttpRequest()) + ; This is based on http://en.wikipedia.org/wiki/Reserved_IP_addresses + ; This stops users making HTTP calls to machines in the simulator's local network. + ; If you need to allow some LAN calls we recommend you use OutboundDisallowForUserScriptsExcept documented in OpenSim.ini.example + ; If you override OutboundDisallowForUserScripts directly you need to be very careful. + ; + ; Network ranges are specified in CIDR notation (http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) with multiple entries separated by | + ; To specify an individual IP address use the /32 netmask (e.g. 192.168.1.3/32) + ; You can also specify individual : endpoints (e.g. 192.168.1.3:8003) + ; If an address if given without a port number then port 80 is assumed. + OutboundDisallowForUserScripts = 0.0.0.0/8|10.0.0.0/8|100.64.0.0/10|127.0.0.0/8|169.254.0.0/16|172.16.0.0/12|192.0.0.0/24|192.0.2.0/24|192.88.99.0/24|192.168.0.0/16|198.18.0.0/15|198.51.100.0/24|203.0.113.0/24|224.0.0.0/4|240.0.0.0/4|255.255.255.255/32 + ; + ; You can also prevent all user script outgoing calls with the following override in OpenSim.ini + ; + ; OutboundDisallowForUserScripts = 0.0.0.0/0 + ; + ; You can also disable the blacklist entirely with an empty entry + ; + ; OutboundDisallowForUserScripts = "" + ; What is reported as the "X-Secondlife-Shard" ; Defaults to the user server url if not set ; The old default is "OpenSim", set here for compatibility @@ -435,6 +549,15 @@ ; many simultaneous requests, default is 30 and is currently applied only to assets ;MaxRequestConcurrency = 30 +[AccessControl] + ; Viewer-based access control. |-separated list of allowed viewers. + ; AllowedClients = "" + + ; Viewer-based access control. |-separated list of denied viewers. + ; No restrictions by default. + ; DeniedClients = "" + + [ClientStack.LindenUDP] ; Set this to true to process incoming packets asynchronously. Networking is ; already separated from packet handling with a queue, so this will only @@ -466,14 +589,21 @@ ; 0, meaning no throttling at the scene level. The example given here is ; 20 megabits ; - ;scene_throttle_max_bps = 2621440 + ;scene_throttle_max_bps = 2500000 - ; Maximum bits per second to send to any single client. This will override + ; Maximum bytes per second to send to any single client. This will override ; the user's viewer preference settings. The default value is 0, meaning no ; aggregate throttling on clients (only per-category throttling). The ; example given here is 1.5 megabits ; - ;client_throttle_max_bps = 196608 + ;client_throttle_max_bps = 187500 + + ; Minimum bytes per second to send to any single client as a result of + ; adaptive throttling. Viewer preferences set to a lower number will + ; override the settin. The example given here ensures that adaptive + ; throttling will never decrease per client bandwidth below 256 kbps. + ; + ;adaptive_throttle_min_bps = 32000 ; Adaptive throttling attempts to limit network overload when multiple ; clients login by starting each connection more slowly. Disabled by @@ -482,7 +612,7 @@ enable_adaptive_throttles = true ; Per-client bytes per second rates for the various throttle categories. - ; These are default values that will be overriden by clients. These + ; These are default values that will be overridden by clients. These ; defaults are approximately equivalent to the throttles set by the Imprudence ; viewer when maximum bandwidth is set to 350kbps @@ -514,6 +644,16 @@ ; ;TextureSendLimit = 20 + ; CannibalizeTextureRate allows bandwidth to be moved from the + ; UDP texture throttle to the task throttle. Since most viewers + ; use HTTP textures, this provides a means of using what is largely + ; unused bandwidth in the total throttle. The value is the proportion + ; of the texture rate to move to the task queue. It must be between + ; 0.0 (none of the bandwidth is cannibalized) and 0.9 (90% of the + ; bandwidth is grabbed) + ; + ; CannibalizeTextureRate = 0.5 + ; Quash and remove any light properties from attachments not on the ; hands. This allows flashlights and lanterns to function, but kills ; silly vanity "Facelights" dead. Sorry, head mounted miner's lamps @@ -534,6 +674,7 @@ ; ;PausedAckTimeout = 300 + [ClientStack.LindenCaps] ;; Long list of capabilities taken from ;; http://wiki.secondlife.com/wiki/Current_Sim_Capabilities @@ -542,7 +683,6 @@ ;; in OpenSim.ini ;; Cap_AttachmentResources = "" - Cap_AvatarPickerSearch = "" Cap_ChatSessionRequest = "" Cap_CopyInventoryFromNotecard = "localhost" Cap_DispatchRegionInfo = "" @@ -554,7 +694,7 @@ Cap_ObjectMediaNavigate = "localhost" Cap_FetchLib = "" Cap_FetchLibDescendents = "" - Cap_GetDisplayNames = "" + Cap_GetDisplayNames = "localhost" Cap_GetTexture = "localhost" Cap_GetMesh = "localhost" Cap_GetObjectCost = "" @@ -606,8 +746,11 @@ Cap_WebFetchInventoryDescendents = "" Cap_FetchInventoryDescendents2 = "localhost" Cap_FetchInventory2 = "localhost" - + ; Capability for searching for people + Cap_AvatarPickerSearch = "localhost" + + [Chat] ; Controls whether the chat module is enabled. Default is true. enabled = true; @@ -621,11 +764,25 @@ ; Distance in meters that shouts should travel. Default is 100m shout_distance = 100 - [EntityTransfer] + ; The maximum distance in regions that an agent is allowed to teleport + ; along the x or y axis. This is set to 65535 because current viewers + ; can't handle teleports that are greater than this distance + ; Setting to 0 will allow teleports of any distance + ; + max_distance = 65535 + + ; Allow avatars to cross into and out of the region. + AllowAvatarCrossing = true + ; Minimum user level required for HyperGrid teleports LevelHGTeleport = 0 + ; Determine whether the cancel button is shown at all during teleports. + ; This option exists because cancelling at certain points can result in an unuseable session (frozen avatar, etc.) + ; Disabling cancellation can be okay in small closed grids where all teleports are highly likely to suceed. + DisableInterRegionTeleportCancellation = false + [Messaging] ; Control which region module is used for instant messaging. @@ -666,7 +823,11 @@ ; If true, avatar appearance information is resent to other avatars in the simulator every 60 seconds. ; This may help with some situations where avatars are persistently grey, though it will not help ; in other situations (e.g. appearance baking failures where the avatar only appears as a cloud to others). - ResendAppearanceUpdates = true + ResendAppearanceUpdates = false + + ; Turning this on responds to CachedTexture packets to possibly avoid rebaking the avatar + ; on every login + ReuseTextures = false [Attachments] @@ -674,6 +835,12 @@ ; Defaults to true - only set to false for debugging purposes Enabled = true + ; Controls the number of milliseconds that are slept per 100 prims rezzed in attachments + ; Experimental setting to control CPU spiking when avatars with many attachments login/change outfit + ; or when multiple avatars with medium level attachments login/change outfit simultaneously. + ; If 0 then no throttling is performed. + ThrottlePer100PrimsRezzed = 0; + [Mesh] ; enable / disable Collada mesh support @@ -888,81 +1055,106 @@ ; ## Joint support ; ## - ; if you would like physics joints to be enabled through a special naming convention in the client, set this to true. - ; (see NINJA Physics documentation, http://opensimulator.org/wiki/NINJA_Physics) - ; default is false + ; If you would like physics joints to be enabled through a special naming + ; convention in the client, set this to true. + ; (See NINJA Physics documentation, http://opensimulator.org/wiki/NINJA_Physics) + ; Default is false ;use_NINJA_physics_joints = true ; ## ; ## additional meshing options ; ## - ; physical collision mesh proxies are normally created for complex prim shapes, and collisions for simple boxes and - ; spheres are computed algorithmically. If you would rather have mesh proxies for simple prims, you can set this to - ; true. Note that this will increase memory usage and region startup time. Default is false. + ; Physical collision mesh proxies are normally created for complex prim shapes, + ; and collisions for simple boxes and spheres are computed algorithmically. + ; If you would rather have mesh proxies for simple prims, you can set this to + ; true. Note that this will increase memory usage and region startup time. + ; Default is false. ;force_simple_prim_meshing = true + [BulletSim] - ; World parameters - DefaultFriction = 0.20 - DefaultDensity = 10.000006836 - DefaultRestitution = 0.0 - Gravity = -9.80665 - - TerrainFriction = 0.30 - TerrainHitFraction = 0.8 - TerrainRestitution = 0 - TerrainCollisionMargin = 0.04 - - AvatarFriction = 0.2 - AvatarStandingFriction = 10.0 - AvatarRestitution = 0.0 - AvatarDensity = 3.5 - AvatarCapsuleWidth = 0.6 - AvatarCapsuleDepth = 0.45 - AvatarCapsuleHeight = 1.5 - AvatarContactProcessingThreshold = 0.1 - - MaxObjectMass = 10000.01 - - ; Dynamic parameters - LinearDamping = 0.0 - AngularDamping = 0.0 - DeactivationTime = 0.2 - CollisionMargin = 0.04 - - ; Linkset constraint parameters + ; All the BulletSim parameters can be displayed with the console command + ; "physics get all" and all are defined in the source file + ; OpenSim/Regions/Physics/BulletSPlugin/BSParam.cs. + + ; There are two bullet physics libraries, bulletunmanaged is the default and is a + ; native c++ dll bulletxna is a managed C# dll. They have comparible functionality + ; but the c++ one is much faster. + BulletEngine = "bulletunmanaged" + ; BulletEngine = "bulletxna" + + ; BulletSim can run on its own thread independent of the simulator's heartbeat + ; thread. Enabling this will not let the physics engine slow down avatar movement, etc. + UseSeparatePhysicsThread = false + + ; Terrain implementation can use either Bullet's heightField or BulletSim can build + ; a mesh. 0=heightField, 1=mesh + TerrainImplementation = 0 + ; For mesh terrain, the detail of the created mesh. '1' gives 256x256 (heightfield + ; resolution). '2' gives 512x512. Etc. Cannot be larger than '4'. Higher + ; magnifications use lots of memory. + TerrainMeshMagnification = 2 + + ; Should avatars collide with each other? + AvatarToAvatarCollisionsByDefault = true + + ; Avatar physics height adjustments. + ; http://opensimulator.org/wiki/BulletSim#Adjusting_Avatar_Height + AvatarHeightLowFudge = 0 ; Adjustment at low end of height range + AvatarHeightMidFudge = 0 ; Adjustment at mid point of avatar height range + AvatarHeightHighFudge = 0 ; Adjustment at high end of height range + + ; Avatar walk-up-stairs parameters + ; If an avatar collides with an object 'close to its feet', the avatar will be + ; moved/pushed up do simulate stepping up. + ;AvatarStepHeight = 0.6f ; The height, below which is considered a step collision. + ;AvatarStepAngle = 0.3f ; The angle from vertical (in radians) to consider a surface a step + ;AvatarStepApproachFactor = 2f ; Approach angle factor. O=straight on, .6=~45 degrees. + ;AvatarStepGroundFudge = 0.1f ; Fudge added to bottom of avatar below which step collisions happen + ;AvatarStepForceFactor = 0f ; Avatar is pushed up by its mass times this factor + ;AvatarStepUpCorrectionFactor = 0.8f ; Avatar is displaced up the collision height times this factor + ;AvatarStepSmoothingSteps = 1 ; Number of frames after a step collision that up correction is applied + + ; Terminal velocity of a falling avatar + ; This is the same http://en.wikipedia.org/wiki/Terminal_velocity#Examples + ; negative for a downward speed. + AvatarTerminalVelocity = -54 + + ; Default linkset implmentation + ; 'Constraint' uses physics constraints to hold linkset together. 'Compound' + ; builds a compound shape from the children shapes to create a single physical + ; shape. 'Compound' uses a lot less CPU time. LinkImplementation = 1 ; 0=constraint, 1=compound - LinkConstraintUseFrameOffset = False - LinkConstraintEnableTransMotor = True - LinkConstraintTransMotorMaxVel = 5.0 - LinkConstraintTransMotorMaxForce = 0.1 - ; Whether to mesh sculpties + ; If 'true', offset a linkset's origin based on mass of linkset parts. + LinksetOffsetCenterOfMass = false + + ; If 'true', turn scuplties into meshes MeshSculptedPrim = true ; If 'true', force simple prims (box and sphere) to be meshed + ; If 'false', the Bullet native special case shape is used for square rectangles + ; and even dimensioned spheres. ForceSimplePrimMeshing = false - ; level of detail for physical meshes. 32,16,8 or 4 with 32 being full detail - MeshLevelOfDetail = 8 - ; if mesh size is > threshold meters, we need to add more detail because people will notice - MeshLevelOfDetailMegaPrimThreshold = 10 - MeshLevelOfDetailMegaPrim = 16 - ; number^2 non-physical level of detail of the sculpt texture. 32x32 - 1024 verticies - SculptLevelOfDetail = 32 + ; If 'true', when creating meshes, remove all triangles that have two equal vertexes. + ; Happens often in sculpties. If turned off, there will be some doorways + ; that cannot be walked through. + ShouldRemoveZeroWidthTriangles = true - ; Bullet step parameters - MaxSubSteps = 10 - FixedTimeStep = .01667 + ; If 'true', use convex hull definition in mesh asset if present. + ShouldUseAssetHulls = true + ; If there are thousands of physical objects, these maximums should be increased. MaxCollisionsPerFrame = 2048 MaxUpdatesPerFrame = 8192 - ; Detailed physics debug logging + ; Detailed physics debug logging. Very verbose. PhysicsLoggingEnabled = False PhysicsLoggingDir = "." VehicleLoggingEnabled = False + [RemoteAdmin] enabled = false @@ -1113,6 +1305,17 @@ ;exclude_list=User 1,User 2,User 3 + ;;Shows modal alertbox for entering agent on IRC enabled regions + ;; + ;; Enable Alert, default = false + ;alert_show = false + ;; + ;; Show IRC serverinfo, default = true + ;alert_show_serverinfo = true + ;; + ;alert_msg_pre = "This region is linked to Irc." + ;alert_msg_post = "Everything you say in public chat can be listened." + ; The following settings control the progression of daytime ; in the Sim. The defaults are the same as the commented out settings @@ -1193,6 +1396,11 @@ ; If false then gods cannot execute these functions either. AllowGodFunctions = false + ; Restrict the email address used by llEmail to the address associated with the avatars user account? + ; If true then llEmail will only send email to the address in the user account of the avatar who owns the object containing the script. + ; If false then email may be sent to any valid email address. + RestrictEmail = false + ; Maximum number of llListen events we allow over the entire region. ; Set this to 0 to have no limit imposed max_listens_per_region = 1000 @@ -1204,6 +1412,177 @@ ; Maximum number of external urls that scripts can set up in this simulator (e.g. via llRequestURL()) max_external_urls_per_simulator = 100 + ; Use size boxes instead of meshed prims, sculpts and mesh when calculating bounding boxes. + ; Speeds up calculations but can make them inaccurate, in some cases very inaccurate. + UseSimpleBoxesInGetBoundingBox = false + + ; Add a third vector with stats when returning results from llGetBoundingBox. + ; Lists objects (groups), prims/meshes/avatars (parts) and vertices rendered. + AddStatsInGetBoundingBox = false + + ; Avatar bounding box, lower X value, constant part, when standing + LowerAvatarBoundingBoxStandingXconst = -0.275 + + ; Avatar bounding box, upper X value, constant part, when standing + UpperAvatarBoundingBoxStandingXconst = 0.275 + + ; Avatar bounding box, lower Y value, constant part, when standing + LowerAvatarBoundingBoxStandingYconst = -0.35 + + ; Avatar bounding box, upper Y value, constant part, when standing + UpperAvatarBoundingBoxStandingYconst = 0.35 + + ; Avatar bounding box, lower Z value, constant part, when standing + LowerAvatarBoundingBoxStandingZconst = -0.1 + + ; Avatar bounding box, lower Z value, coefficient to multiply with avatar height, when standing + LowerAvatarBoundingBoxStandingZcoeff = -0.5 + + ; Avatar bounding box, upper Z value, constant part, when standing + UpperAvatarBoundingBoxStandingZconst = 0.1 + + ; Avatar bounding box, upper Z value, coefficient to multiply with avatar height, when standing + UpperAvatarBoundingBoxStandingZcoeff = 0.5 + + ; Avatar bounding box, lower X value, constant part, when groundsitting + LowerAvatarBoundingBoxGroundsittingXconst = -0.3875 + + ; Avatar bounding box, upper X value, constant part, when groundsitting + UpperAvatarBoundingBoxGroundsittingXconst = 0.3875 + + ; Avatar bounding box, lower Y value, constant part, when groundsitting + LowerAvatarBoundingBoxGroundsittingYconst = -0.5 + + ; Avatar bounding box, upper Y value, constant part, when groundsitting + UpperAvatarBoundingBoxGroundsittingYconst = 0.5 + + ; Avatar bounding box, lower Z value, constant part, when groundsitting + LowerAvatarBoundingBoxGroundsittingZconst = -0.05 + + ; Avatar bounding box, lower Z value, coefficient to multiply with avatar height, when groundsitting + LowerAvatarBoundingBoxGroundsittingZcoeff = -0.375 + + ; Avatar bounding box, upper Z value, constant part, when groundsitting + UpperAvatarBoundingBoxGroundsittingZconst = 0.5 + + ; Avatar bounding box, upper Z value, coefficient to multiply with avatar height, when groundsitting + UpperAvatarBoundingBoxGroundsittingZcoeff = 0.0 + + ; Avatar bounding box, lower X value, constant part, when sitting + LowerAvatarBoundingBoxSittingXconst = -0.5875 + + ; Avatar bounding box, upper X value, constant part, when sitting + UpperAvatarBoundingBoxSittingXconst = 0.1875 + + ; Avatar bounding box, lower Y value, constant part, when sitting + LowerAvatarBoundingBoxSittingYconst = -0.35 + + ; Avatar bounding box, upper Y value, constant part, when sitting + UpperAvatarBoundingBoxSittingYconst = 0.35 + + ; Avatar bounding box, lower Z value, constant part, when sitting + LowerAvatarBoundingBoxSittingZconst = -0.35 + + ; Avatar bounding box, lower Z value, coefficient to multiply with avatar height, when sitting + LowerAvatarBoundingBoxSittingZcoeff = -0.375 + + ; Avatar bounding box, upper Z value, constant part, when sitting + UpperAvatarBoundingBoxSittingZconst = -0.25 + + ; Avatar bounding box, upper Z value, coefficient to multiply with avatar height, when sitting + UpperAvatarBoundingBoxSittingZcoeff = 0.25 + + ; Safety coefficient for max bounding box from prim size box X coordinate + ; Worst case is twisted and sheared box, 1+sqrt(2) + PrimBoundingBoxSafetyCoefficientX = 2.414214 + + ; Safety coefficient for max bounding box from prim size box Y coordinate + ; Worst case is twisted and sheared box, 1+sqrt(2) + PrimBoundingBoxSafetyCoefficientY = 2.414214 + + ; Safety coefficient for max bounding box from prim size box Z coordinate + ; Worst case is twisted tube, 0.5+sqrt(1.25) + PrimBoundingBoxSafetyCoefficientZ = 1.618034 + + ; Use llCastRay V3 if true. + ; Implements llCastRay similar but not identical to Second Life. + ; See http://wiki.secondlife.com/wiki/LlCastRay . + ; NEW + ; Meshes prims for good accuracy in ray hit detection, + ; handling basic and tortured prims, sculpts and meshes. + ; Uses ellipsoid, correctly sized avatar capsules. + ; Handles complex terrain, multi-prim objects and seated avatars. + ; Implements throttling and the status codes + ; RCERR_UNKNOWN and RCERR_CAST_TIME_EXCEEDED, + ; so LSL scripts need to handle these responses and RCERR_SIM_PERF_LOW. + ; WARNING + ; Can be faster on some servers and scenes, but slower on others, + ; compared to previous version of llCastRay in OpenSimulator. + ; Is in most cases considerably slower than llCastRay in Second Life. + ; Generates geometry meshes and can therefore use much system resources. + UseLlCastRayV3 = false + + ; Accepted calculation precision error in calculations in llCastRay V3 + FloatToleranceInLlCastRay = 0.00001 + + ; Accepted distance difference between duplicate hits in llCastRay V3 + FloatTolerance2InLlCastRay = 0.001 + + ; Detail level when rendering prims in llCastRay V3 + ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call + PrimDetailLevelInLlCastRay = 1 + + ; Detail level when rendering sculpts in llCastRay V3 + ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call + SculptDetailLevelInLlCastRay = 1 + + ; Detail level when rendering meshes in llCastRay V3 + ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call + MeshDetailLevelInLlCastRay = 3 + + ; Detail level when rendering avatar capsules in llCastRay V3 + ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call + AvatarDetailLevelInLlCastRay = 1 + + ; Maximum number of returned hits from llCastRay V3 + MaxHitsInLlCastRay = 16 + + ; Maximum number of returned hits per prim from llCastRay V3 + MaxHitsPerPrimInLlCastRay = 16 + + ; Maximum number of returned hits per object from llCastRay V3 + MaxHitsPerObjectInLlCastRay = 16 + + ; Report ray intersections with surfaces on exits from a prim as hits in llCastRay V3 if true + DetectExitHitsInLlCastRay = false + + ; Filter on parts instead of groups in llCastRay V3 if true + FilterPartsInLlCastRay = false + + ; Detect attachments in llCastRay V3 if true + DoAttachmentsInLlCastRay = false + + ; Throttle period length in ms before which all old llCastRay use is discarded in llCastRay V3 + ; The sum of AvailableTimeInMsPerRegionInLlCastRay and all AvailableTimeInMsPerAvatarInLlCastRay should not exceed this + ThrottleTimeInMsInLlCastRay = 200 + + ; Available time in ms for llCastRay per throttle period and 65536 m2 land area in llCastRay V3 + AvailableTimeInMsPerRegionInLlCastRay = 40 + + ; Available time in ms for llCastRay per throttle period and avatar when script in attachment or vehicle in llCastRay V3 + AvailableTimeInMsPerAvatarInLlCastRay = 10 + + ; Required available time in ms left to perform a new llCastRay in llCastRay V3 + RequiredAvailableTimeInMsInLlCastRay = 2 + + ; Maximum available time in ms possible in llCastRay V3, not to get too high values with varregions + MaximumAvailableTimeInMsInLlCastRay = 40 + + ; Use cached meshes in llCastRay V3 if true + ; Improves performance but uses more memory + UseMeshCacheInLlCastRay = true + + [DataSnapshot] ; The following set of configs pertains to search. ; Set index_sims to true to enable search engines to index your searchable data @@ -1217,7 +1596,7 @@ data_exposure = minimum ; If search is on, change this to your grid name; will be ignored for standalones - gridname = "InfiniteGrid" + gridname = "OSGrid" ; Period between data snapshots, in seconds. 20 minutes, for starters, so that you see the initial changes fast. ; Later, you may want to increase this to 3600 (1 hour) or more @@ -1226,9 +1605,9 @@ ; This will be created in bin, if it doesn't exist already. It will hold the data snapshots. snapshot_cache_directory = "DataSnapshot" - ; This semicolon-separated string serves to notify specific data services about the existence - ; of this sim. Uncomment if you want to index your data with this and/or other search providers. - ;data_services="http://metaverseink.com/cgi-bin/register.py" + ; Uncomment if you want to index your data with this and/or other search providers. One entry per + ; data service + ;DATA_SRV_MISearch = "http://metaverseink.com/cgi-bin/register.py" [Economy] @@ -1294,6 +1673,21 @@ ; script assemblies AppDomainLoading = true + ; Controls whether previously compiled scripts DLLs are deleted on sim restart. If you set this to false + ; then startup will be considerably faster since scripts won't need to be recompiled. However, then it becomes your responsibility to delete the + ; compiled scripts if you're recompiling OpenSim from source code and internal interfaces used + ; by scripts have changed. + ; DeleteScriptsOnStartup = false + + ; Controls whether scripts are stopped by aborting their threads externally (abort) + ; or by co-operative checks inserted by OpenSimulator into compiled script (co-op). + ; co-op will be more stable as aborting threads can cause instability. + ; abort was the default option in OpenSimulator 0.8 and before. + ; If this setting is changed between co-op and abort, then existing scripts will automatically be recompiled if necessary. + ; However, the setting change will not take affect until the next time you restart the simulator. + ; Setting changes will not affect state information stored for scripts. + ScriptStopStrategy = co-op + ; Rate to poll for asynchronous command replies (ms) ; currently unused ;AsyncLLCommandLoopms = 50 @@ -1304,8 +1698,8 @@ ; Default language for scripts DefaultCompileLanguage = lsl - ; List of allowed languages (lsl,vb,js,cs) - ; AllowedCompilers=lsl,cs,js,vb. + ; List of allowed languages (lsl,vb,cs) + ; AllowedCompilers=lsl,cs,vb ; *warning*, non lsl languages have access to static methods such as System.IO.File. Enable at your own risk. AllowedCompilers=lsl @@ -1379,6 +1773,10 @@ ; up the system to malicious scripters ; NotecardLineReadCharsMax = 255 + ; Minimum settable timer interval. Any timer setting less than this is + ; rounded up to this minimum interval. + ; MinTimerInterval = 0.5 + ; Sensor settings SensorMaxRange = 96.0 SensorMaxResults = 16 @@ -1395,12 +1793,6 @@ ;; Path to script assemblies ; ScriptEnginesPath = "ScriptEngines" - ; Controls whether previously compiled scripts DLLs are deleted on sim restart. If you set this to false - ; then startup will be considerably faster since scripts won't need to be recompiled. However, then it becomes your responsibility to delete the - ; compiled scripts if you're recompiling OpenSim from source code and internal interfaces used - ; by scripts have changed. - ; DeleteScriptsOnStartup = false - [Concierge] ; Enable concierge module @@ -1536,9 +1928,12 @@ ; Enable Group Notices ;NoticesEnabled = true - ; This makes the Groups modules very chatty on the console. + ; This makes the Group module very chatty on the console. DebugEnabled = false + ; This makes the Groups Messaging module very chatty on the console. + DebugMessagingEnabled = false + ; Groups data is cached for this number of seconds before another request is made to the groups service ; Set to 0 to disable the cache. ; Default is 30 seconds @@ -1550,7 +1945,7 @@ ; Experimental option to only message cached online users rather than all users ; Should make large group with few online members messaging faster, as the expense of more calls to ROBUST presence service - ; This currently only applies to the Flotsam XmlRpc backend + ; (Flotsam groups only; in V2 this is always on) MessageOnlineUsersOnly = false ; Service connectors to the Groups Service. Select one depending on whether you're using a Flotsam XmlRpc backend or a SimianGrid backend @@ -1587,14 +1982,32 @@ [InterestManagement] - ; This section controls how state updates are prioritized for each client - ; Valid values are BestAvatarResponsiveness, Time, Distance, - ; SimpleAngularDistance, and FrontBack - UpdatePrioritizationScheme = BestAvatarResponsiveness - ReprioritizationEnabled = true - ReprioritizationInterval = 2000.0 - RootReprioritizationDistance = 10.0 - ChildReprioritizationDistance = 20.0 + ; This section controls how state updates are prioritized for each client + ; Valid values are BestAvatarResponsiveness, Time, Distance, + ; SimpleAngularDistance, and FrontBack + UpdatePrioritizationScheme = BestAvatarResponsiveness + ReprioritizationEnabled = true + ReprioritizationInterval = 2000.0 + RootReprioritizationDistance = 10.0 + ChildReprioritizationDistance = 20.0 + + ; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in the same region + ; Updates will always be sent to the avatar that the update addresses and if av velocity is effectively zero (to prevent drift due to missing updates). + ; n > 1 will reduce UDP traffic but will lead to laggier movement observed in other avatars. + RootTerseUpdatePeriod = 0 + + ; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in another region + ; n > 1 will reduce UDP traffic but may lead to laggier movement observed in other avatars, though values up to 4 may not generate a noticeable effect. + ChildTerseUpdatePeriod = 0 + + ; Send an update to clients if the difference from the last sent avatar position is greater than this tolerance + RootPositionUpdateTolerance = 0.05 + + ; Send an update to clients if the euclidian difference from the last sent avatar rotation is greater than this tolerance + RootRotationUpdateTolerance = 0.1 + + ; Send an update to clients if the difference from the last sent avatar velocity is greater than this tolerance + RootVelocityUpdateTolerance = 0.001 [Monitoring] ; Enable region monitoring @@ -1602,24 +2015,48 @@ ; Also is another source of region statistics provided via the regionstats URL Enabled = true -; View region statistics via a web page -; See http://opensimulator.org/wiki/FAQ#Region_Statistics_on_a_Web_Page -; Use a web browser and type in the "Login URI" + "/SStats/" -; For example- http://127.0.0.1:9000/SStats/ + [WebStats] -; enabled=false + ; View region statistics via a web page + ; See http://opensimulator.org/wiki/FAQ#Region_Statistics_on_a_Web_Page + ; Use a web browser and type in the "Login URI" + "/SStats/" + ; For example- http://127.0.0.1:9000/SStats/ + ; enabled=false +[Statistics] + ; NumberOfFrames is used in a moving average calculation, where NumberOfFrames is the number of frames + ; to include in the averaging calculations + NumberOfFrames=10 [MediaOnAPrim] ; Enable media on a prim facilities Enabled = true; + [NPC] ;; Enable Non Player Character (NPC) facilities Enabled = false + [Terrain] + ; Values can be "pinhead-island" or "flat" InitialTerrain = "pinhead-island" + ; If 'true' each avatar is only sent terrain patches within their view distance + ; This also changes the region terrain loading from 'lawn mower' to ordered around + ; the avatar outward. + SendTerrainUpdatesByViewDistance = True + +[LandManagement] + ; When editing terrain or objects, parcel layer info is updated in the viewer. + ; This can be expensive for large regions. If this variable is 'true', only the + ; parcel layer data around the area of interest is sent. The parcel layer info + ; is sent for 'ParcelLayerViewDistance' around the interest point. + ; If 'ParcelLayerViewDistance' is >= 128, the operation for legacy sized regions + ; will be what it has always been (send the whole region's parcel layer info). + ; Other parcel updates (login, changing parcel ownership, ...) will still send + ; whole region. + LimitParcelLayerUpdateDistance = true + ParcelLayerViewDistance = 128 ;; ;; If you are using a simian grid frontend you can enable @@ -1630,11 +2067,17 @@ MaptileURL = "http://www.mygrid.com/Grid/" RefreshTime = 3600 + ;; ;; JsonStore module provides structured store for scripts ;; [JsonStore] -Enabled = False + Enabled = False + + ;; Enable direct access to the SOP dynamic attributes + EnableObjectStore = False + MaxStringSpace = 0 + ;; ;; These are defaults that are overwritten below in [Architecture]. @@ -1649,20 +2092,33 @@ Enabled = False ; asset store each time the region starts AssetLoaderEnabled = true + [GridService] ;; default standalone, overridable in StandaloneCommon.ini StorageProvider = "OpenSim.Data.Null.dll:NullRegionData" - + + [AutoBackupModule] - ;; default is module is disabled at the top level - AutoBackupModuleEnabled = false + ;; default is module is disabled at the top level + AutoBackupModuleEnabled = false + [Sounds] - ;; {Module} {} {Implementation of ISoundModule to use.} {OpenSim.Region.CoreModules.dll:SoundModule} - Module = OpenSim.Region.CoreModules.dll:SoundModule + ;; {Module} {} {Implementation of ISoundModule to use.} {OpenSim.Region.CoreModules.dll:SoundModule} + Module = OpenSim.Region.CoreModules.dll:SoundModule - ;; {MaxDistance} {} {Cut-off distance at which sounds will not be sent to users} {100.0} - MaxDistance = 100.0 + ;; {MaxDistance} {} {Cut-off distance at which sounds will not be sent to users} {100.0} + MaxDistance = 100.0 + + +[ServiceThrottle] + ;; Default time interval (in ms) for the throttle service thread to wake up + Interval = 5000 + +[Dwell] + ;; This enables the built in basic dwell module + DwellModule = DefaultDwellModule [Modules] Include-modules = "addon-modules/*/config/*.ini" + diff --git a/bin/OpenSimExport.exe.config b/bin/OpenSimExport.exe.config deleted file mode 100644 index 3fcb22d..0000000 --- a/bin/OpenSimExport.exe.config +++ /dev/null @@ -1,28 +0,0 @@ - - - -
- - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bin/Physics/OpenSim.Region.Physics.BulletSPlugin.dll.config b/bin/Physics/OpenSim.Region.Physics.BulletSPlugin.dll.config deleted file mode 100755 index 1bc7e41..0000000 --- a/bin/Physics/OpenSim.Region.Physics.BulletSPlugin.dll.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/bin/Prebuild.exe b/bin/Prebuild.exe index 1d4a8e8..05deb1f 100755 Binary files a/bin/Prebuild.exe and b/bin/Prebuild.exe differ diff --git a/bin/Regions/.keep b/bin/Regions/.keep deleted file mode 100644 index e69de29..0000000 diff --git a/bin/Regions/Regions.ini.example b/bin/Regions/Regions.ini.example deleted file mode 100644 index 54a841d..0000000 --- a/bin/Regions/Regions.ini.example +++ /dev/null @@ -1,47 +0,0 @@ -; * This is an example region config file. -; * -; * If OpenSimulator is started up without any regions, it will ask you configuration questions to generate a Regions.ini file for you. -; * So there is no need to change this file directly, it is only for reference. -; * However, if you prefer you can also copy this file to Regions.ini and appropriately change the parameters below. -; * Only files ending with .ini and .xml in this directly will be loaded by OpenSimulator. -; * -; * You can multiple regions into one file or make one file per region -; * The section name is the region name -; * - -[Default Region] - -; * -; * You MUST change this! It will NOT be done for you! -; * - -RegionUUID = "11111111-2222-3333-4444-555555555555" - -Location = "1000,1000" -InternalAddress = "127.0.0.1" -InternalPort = 9000 -AllowAlternatePorts = False -ExternalHostName = "SYSTEMIP" - -; * -; * Prim data -; * This allows limiting the sizes of prims and the region prim count -; * - -; NonphysicalPrimMax = 256 -; PhysicalPrimMax = 10 -; ClampPrimSize = False -; MaxPrims = 15000 -; MaxAgents = 100 - -; * -; * Multi-Tenancy. Only set if needed -; * - -; ScopeID = "00000000-0000-0000-0000-000000000000" - -; * -; * Product name (used in search from viewer 1.23 -; * - -; RegionType = "Mainland" diff --git a/bin/Robust.32BitLaunch.exe b/bin/Robust.32BitLaunch.exe deleted file mode 100644 index 4d2698b..0000000 Binary files a/bin/Robust.32BitLaunch.exe and /dev/null differ diff --git a/bin/Robust.32BitLaunch.exe.config b/bin/Robust.32BitLaunch.exe.config index dae45ff..0399a1b 100644 --- a/bin/Robust.32BitLaunch.exe.config +++ b/bin/Robust.32BitLaunch.exe.config @@ -4,6 +4,7 @@
+ @@ -11,22 +12,52 @@ + + + + - + + + + + + + + + + + + + + + + + + + + + diff --git a/bin/Robust.HG.ini.example b/bin/Robust.HG.ini.example index 0d6d075..6af444c 100644 --- a/bin/Robust.HG.ini.example +++ b/bin/Robust.HG.ini.example @@ -10,6 +10,29 @@ ; * OpenSim.Server.Handlers.dll:XInventoryInConnector ; * are started in port 8002, outside the firewall ; * +; ** +; * +; * The Const section allows us to define some basic information that we +; * will use throughout our configuration. We will provide examples for +; * setting the base url of the Robust server and the public and private ports +; * it uses. Changing the values of the constants will set the operating +; * parameters thoughout the configuration. Other constants that may prove +; * to be useful may be added to the followin section. They may be +; * referenced anywhere in the configuration by using ${Const|Name}. One +; * such use is providing a base path for setting locations that Robust +; * uses to write data. +; * +[Const] + + ; The URL of the Robust server + BaseURL = "http://127.0.0.1" + + ; The public port of the Robust server + PublicPort = "8002" + + ; The private port of the Robust server + PrivatePort = "8003" + ; * The startup section lists all the connectors to start up in this server ; * instance. This may be only one, or it may be the entire server suite. ; * Multiple connectors should be separated by commas. @@ -21,55 +44,81 @@ ; * [[@]/][:] ; * [Startup] + ; Place to create a PID file + ; If no path if specified then a PID file is not created. + ; PIDFile = "/tmp/Robust.exe.pid" -; Plugin Registry Location -; Set path to directory for plugin registry. Information -; about the registered repositories and installed plugins -; will be stored here -; The Robust.exe process must hvae R/W access to the location -RegistryLocation = "." + ; Plugin Registry Location + ; Set path to directory for plugin registry. Information + ; about the registered repositories and installed plugins + ; will be stored here + ; The Robust.exe process must have R/W access to the location + RegistryLocation = "." -; Modular configurations -; Set path to directory for modular ini files... -; The Robust.exe process must hvae R/W access to the location -ConfigDirectory = "/home/opensim/etc/Configs" + ; Modular configurations + ; Set path to directory for modular ini files... + ; The Robust.exe process must have R/W access to the location + ConfigDirectory = "." -[ServiceList] + ; Console commands can be saved to a file, so the command history persists after a restart. (default is true) + ConsoleHistoryFileEnabled = true + + ; The history file can be just a filename (relative to OpenSim's bin/ directory + ; or it can be a full path to somewhere else. (default is OpenSimConsoleHistory.txt in bin/) + ConsoleHistoryFile = "RobustConsoleHistory.txt" + + ; How many lines of command history should we keep? (default is 100) + ConsoleHistoryFileLines = 100 -AssetServiceConnector = "8003/OpenSim.Server.Handlers.dll:AssetServiceConnector" -InventoryInConnector = "8003/OpenSim.Server.Handlers.dll:XInventoryInConnector" -VoiceConnector = "8004/OpenSim.Server.Handlers.dll:FreeswitchServerConnector" -GridServiceConnector = "8003/OpenSim.Server.Handlers.dll:GridServiceConnector" -GridInfoServerInConnector = "8002/OpenSim.Server.Handlers.dll:GridInfoServerInConnector" -AuthenticationServiceConnector = "8003/OpenSim.Server.Handlers.dll:AuthenticationServiceConnector" -OpenIdServerConnector = "8002/OpenSim.Server.Handlers.dll:OpenIdServerConnector" -AvatarServiceConnector = "8003/OpenSim.Server.Handlers.dll:AvatarServiceConnector" -LLLoginServiceInConnector = "8002/OpenSim.Server.Handlers.dll:LLLoginServiceInConnector" -PresenceServiceConnector = "8003/OpenSim.Server.Handlers.dll:PresenceServiceConnector" -UserAccountServiceConnector = "8003/OpenSim.Server.Handlers.dll:UserAccountServiceConnector" -GridUserServiceConnector = "8003/OpenSim.Server.Handlers.dll:GridUserServiceConnector" -FriendsServiceConnector = "8003/OpenSim.Server.Handlers.dll:FriendsServiceConnector" -MapAddServiceConnector = "8003/OpenSim.Server.Handlers.dll:MapAddServiceConnector" -MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnector" - -;; Additions for Hypergrid - -GatekeeperServiceInConnector = "8002/OpenSim.Server.Handlers.dll:GatekeeperServiceInConnector" -UserAgentServerConnector = "8002/OpenSim.Server.Handlers.dll:UserAgentServerConnector" -HeloServiceInConnector = "8002/OpenSim.Server.Handlers.dll:HeloServiceInConnector" -HGFriendsServerConnector = "8002/OpenSim.Server.Handlers.dll:HGFriendsServerConnector" -InstantMessageServerConnector = "8002/OpenSim.Server.Handlers.dll:InstantMessageServerConnector" -HGInventoryServiceConnector = "HGInventoryService@8002/OpenSim.Server.Handlers.dll:XInventoryInConnector" -HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:AssetServiceConnector" - -;; Additions for other add-on modules. For example: -;; WifiServerConnector = "8002/Diva.Wifi.dll:WifiServerConnector" + +[ServiceList] + AssetServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:AssetServiceConnector" + InventoryInConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:XInventoryInConnector" + ;; Uncomment if you have set up Freeswitch (see [FreeswitchService] below) + ;VoiceConnector = "8004/OpenSim.Server.Handlers.dll:FreeswitchServerConnector" + GridServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:GridServiceConnector" + GridInfoServerInConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:GridInfoServerInConnector" + AuthenticationServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:AuthenticationServiceConnector" + OpenIdServerConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:OpenIdServerConnector" + AvatarServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:AvatarServiceConnector" + LLLoginServiceInConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:LLLoginServiceInConnector" + PresenceServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:PresenceServiceConnector" + UserAccountServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:UserAccountServiceConnector" + GridUserServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:GridUserServiceConnector" + AgentPreferencesServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:AgentPreferencesServiceConnector" + FriendsServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:FriendsServiceConnector" + MapAddServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:MapAddServiceConnector" + MapGetServiceConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:MapGetServiceConnector" + ;; Uncomment this if you want offline IM to work + ; OfflineIMServiceConnector = "${Const|PrivatePort}/OpenSim.Addons.OfflineIM.dll:OfflineIMServiceRobustConnector" + ;; Uncomment this if you want Groups V2 to work + ; GroupsServiceConnector = "${Const|PrivatePort}/OpenSim.Addons.Groups.dll:GroupsServiceRobustConnector" + ;; Uncomment to provide bakes caching + ;BakedTextureService = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:XBakesConnector" + + ;; Additions for Hypergrid + + GatekeeperServiceInConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:GatekeeperServiceInConnector" + UserAgentServerConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:UserAgentServerConnector" + HeloServiceInConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:HeloServiceInConnector" + HGFriendsServerConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:HGFriendsServerConnector" + InstantMessageServerConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:InstantMessageServerConnector" + HGInventoryServiceConnector = "HGInventoryService@${Const|PublicPort}/OpenSim.Server.Handlers.dll:XInventoryInConnector" + HGAssetServiceConnector = "HGAssetService@${Const|PublicPort}/OpenSim.Server.Handlers.dll:AssetServiceConnector" + ;; Uncomment this if you want Groups V2, HG to work + ; HGGroupsServiceConnector = "${Const|PublicPort}/OpenSim.Addons.Groups.dll:HGGroupsServiceRobustConnector" + + ;; Uncomment for UserProfiles see [UserProfilesService] to configure... + ; UserProfilesServiceConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:UserProfilesConnector" + + ;; Uncomment if you want to have centralized estate data + ; EstateDataService = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:EstateDataRobustConnector" ; * This is common for all services, it's the network setup for the entire ; * server instance, if none is specified above ; * [Network] - port = 8003 + port = ${Const|PrivatePort} ; HTTPS for "Out of band" management applications such as the remote admin ; module. May specify https_main = True to make the main http server @@ -90,45 +139,145 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset ; Password for cert ; cert_pass = "password" - -; * The following are for the remote console -; * They have no effect for the local or basic console types -; * Leave commented to diable logins to the console -;ConsoleUser = Test -;ConsolePass = secret -;ConsolePort = 0 + ;; The follow 3 variables are for HTTP Basic Authentication for the Robust services. + ;; Use this if your central services in port ${Const|PrivatePort} need to be accessible on the Internet + ;; but you want to protect them from unauthorized access. + ; AuthType = "BasicHttpAuthentication" + ; HttpAuthUsername = "some_username" + ; HttpAuthPassword = "some_password" + ;; + ;; AuthType above can be overriden in any of the service sections below by + ; AuthType = "None" + ;; This is useful in cases where you want to protect most of the services, + ;; but unprotect individual services. Username and Password can also be + ;; overriden if you want to use different credentials for the different services. + ;; Hypergrid services are not affected by this; they are publicly available + ;; by design. + + ;; By default, scripts are not allowed to call private services via llHttpRequest() + ;; Such calls are detected by the X-SecondLife-Shared HTTP header + ;; If you allow such calls you must be sure that they are restricted to very trusted scripters + ;; (remember scripts can also be in visiting avatar attachments). + ;; This can be overriden in individual private service sections if necessary + AllowllHTTPRequestIn = false + + ; * The following are for the remote console + ; * They have no effect for the local or basic console types + ; * Leave commented to diable logins to the console + ;ConsoleUser = Test + ;ConsolePass = secret + ;ConsolePort = 0 + + +[Hypergrid] + ;# {HomeURI} {Hypergrid} {The Home URL of this world} {} + ;; This is the address of the external robust server that + ;; runs the UserAgentsService, possibly this server. + ;; For example http://myworld.com:8002 + ;; This is a default that can be overwritten in some sections. + ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}" + + ;# {GatekeeperURI} {Hypergrid} {The URL of the gatekeeper of this world} {} + ;; This is the address of the external robust server + ;; that runs the Gatekeeper service, possibly this server. + ;; For example http://myworld.com:8002 + ;; This is a default that can be overwritten in some sections. + ; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}" + +[AccessControl] + ;# {AllowedClients} {} {Bar (|) separated list of allowed clients} {} + ;; Bar (|) separated list of viewers which may gain access to the regions. + ;; One can use a substring of the viewer name to enable only certain + ;; versions + ;; Example: Agent uses the viewer "Imprudence 1.3.2.0" + ;; - "Imprudence" has access + ;; - "Imprudence 1.3" has access + ;; - "Imprudence 1.3.1" has no access + ; AllowedClients = "" + + ;# {DeniedClients} {} {Bar (|) separated list of denied clients} {} + ;; Bar (|) separated list of viewers which may not gain access to the regions. + ;; One can use a Substring of the viewer name to disable only certain + ;; versions + ;; Example: Agent uses the viewer "Imprudence 1.3.2.0" + ;; - "Imprudence" has no access + ;; - "Imprudence 1.3" has no access + ;; - "Imprudence 1.3.1" has access + ; DeniedClients = "" [DatabaseService] + ; PGSQL + ; Uncomment these lines if you want to use PGSQL storage + ; Change the connection string to your db details + ;StorageProvider = "OpenSim.Data.PGSQL.dll" + ;ConnectionString = "Server=localhost;Database=opensim;User Id=opensim; password=***;" + + ; MySQL + ; Uncomment these lines if you want to use MySQL storage + ; Change the connection string to your db details StorageProvider = "OpenSim.Data.MySQL.dll" ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=*****;Old Guids=true;" + ; * As an example, the below configuration precisely mimicks the legacy ; * asset server. It is read by the asset IN connector (defined above) ; * and it then loads the OUT connector (a local database module). That, ; * in turn, reads the asset loader and database connection information ; * [AssetService] + + ;; Choose an asset service (Only one option should be enabled) LocalServiceModule = "OpenSim.Services.AssetService.dll:AssetService" + ;LocalServiceModule = "OpenSim.Services.FSAssetService.dll:FSAssetConnector" + + ;; FSAsset Directories. Base directory, where final asset files are stored and Spool directory for temp files + ;; These directories must be on the same physical filesystem + ;BaseDirectory = "./fsassets/data" + ;SpoolDirectory = "./fsassets/tmp" + + ;; Original service can be checked if FSAssets can not find an asset + ;FallbackService = "OpenSim.Services.AssetService.dll:AssetService"; + + ;; How many days since last updating the access time before its updated again by FSAssets when accessing an asset + ;; Reduces DB calls if asset is requested often. Default value 0 will always update access time + ;DaysBetweenAccessTimeUpdates = 30 + + ;; FSAssets Custom Database Config (Leave blank to use grids default database configuration) + ;StorageProvider = "" + ;ConnectionString = "" + ;Realm = "fsassets" + + ;; The following are common to both the default asset service and FSAsset service + + ;; Common asset service options DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll" AssetLoaderArgs = "./assets/AssetSets.xml" + ; * This configuration loads the inventory server modules. It duplicates ; * the function of the legacy inventory server ; * [InventoryService] LocalServiceModule = "OpenSim.Services.InventoryService.dll:XInventoryService" + ; Will calls to purge folders (empty trash) and immediately delete/update items or folders (not move to trash first) succeed? + ; If this is set to false then some other arrangement must be made to perform these operations if necessary. + AllowDelete = true + + ; * This is the new style grid service. ; * "Realm" is the table that is used for user lookup. ; * It defaults to "regions", which uses the legacy tables ; * [GridService] LocalServiceModule = "OpenSim.Services.GridService.dll:GridService" - HypergridLinker = true ; Realm = "regions" ; AllowDuplicateNames = "True" + ;; Perform distance check for the creation of a linked region + ; Check4096 = "True" + ;; Needed to display non-default map tile images for linked regions AssetService = "OpenSim.Services.AssetService.dll:AssetService" @@ -138,15 +287,35 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset ;; Next, we can specify properties of regions, including default and fallback regions ;; The syntax is: Region_ = "" ;; or: Region_ = "" - ;; where can be DefaultRegion, FallbackRegion, NoDirectLogin, Persistent, LockedOut,Reservation,NoMove,Authenticate - ;; For example: + ;; where can be DefaultRegion, DefaultHGRegion, FallbackRegion, NoDirectLogin, Persistent, LockedOut, Reservation, NoMove, Authenticate + ;; + ;; DefaultRegion If a local login cannot be placed in the required region (e.g. home region does not exist, avatar is not allowed entry, etc.) + ;; then this region becomes the destination. Only the first online default region will be used. If no DefaultHGRegion + ;; is specified then this will also be used as the region for hypergrid connections that require it (commonly because they have not specified + ;; an explicit region. + ;; + ;; DefaultHGRegion If an avatar connecting via the hypergrid does not specify a region, then they are placed here. Only the first online + ;; region will be used. + ;; + ;; FallbackRegion If the DefaultRegion is not available for a local login, then any FallbackRegions are tried instead. These are tried in the + ;; order specified. This only applies to local logins at this time, not Hypergrid connections. + ;; + ;; NoDirectLogin A hypergrid user cannot directly connect to this region. This does not apply to local logins. + ;; + ;; Persistent When the simulator is shutdown, the region is signalled as offline but left registered on the grid. + ;; ; Region_Welcome_Area = "DefaultRegion, FallbackRegion" ; (replace spaces with underscore) - ;; Allow Hyperlinks to be created at the console + ;; Allow Hyperlinks to be created at the console HypergridLinker = true - Gatekeeper = "http://127.0.0.1:8002" + ;; Allow supporting viewers to export content + ;; Set to false to prevent export + ExportSupported = true + + ;; If you have this set under [Hypergrid], no need to set it here, leave it commented + ; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}" ; * This is the configuration for the freeswitch server in grid mode @@ -185,6 +354,7 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset ; EchoPort = 50505 ; AttemptSTUN = false + ; * This is the new style authentication service. Currently, only MySQL ; * is implemented. ; * @@ -205,11 +375,13 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset ;; Default is false. ; AllowSetPassword = false + [OpenIdService] ; for the server connector AuthenticationServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" UserAccountServiceModule = "OpenSim.Services.UserAccountService.dll:UserAccountService" - + + ; * This is the new style user service. ; * "Realm" is the table that is used for user lookup. ; * It defaults to "useraccounts", which uses the new style. @@ -226,6 +398,7 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset GridService = "OpenSim.Services.GridService.dll:GridService" InventoryService = "OpenSim.Services.InventoryService.dll:XInventoryService" AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService" + GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService" ;; This switch creates the minimum set of body parts and avatar entries for a viewer 2 ;; to show a default "Ruth" avatar rather than a cloud for a newly created user. @@ -245,22 +418,34 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset ; for the server connector LocalServiceModule = "OpenSim.Services.UserAccountService.dll:GridUserService" + +[AgentPreferencesService] + ; for the server connector + LocalServiceModule = "OpenSim.Services.UserAccountService.dll:AgentPreferencesService" + + [PresenceService] ; for the server connector LocalServiceModule = "OpenSim.Services.PresenceService.dll:PresenceService" + [AvatarService] ; for the server connector LocalServiceModule = "OpenSim.Services.AvatarService.dll:AvatarService" + [FriendsService] ; for the server connector LocalServiceModule = "OpenSim.Services.FriendsService.dll:FriendsService" +[EstateService] + LocalServiceModule = "OpenSim.Services.EstateService.dll:EstateDataService" + [LibraryService] LibraryName = "OpenSim Library" DefaultLibrary = "./inventory/Libraries.xml" + [LoginService] ; for the server connector LocalServiceModule = "OpenSim.Services.LLLoginService.dll:LLLoginService" @@ -277,55 +462,45 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService" FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService" + ; This inventory service will be used to initialize the user's inventory + HGInventoryServicePlugin = "OpenSim.Services.HypergridService.dll:HGSuitcaseInventoryService" + HGInventoryServiceConstructorArg = "HGInventoryService" + ;; Ask co-operative viewers to use a different currency name ;Currency = "" + ;; Set minimum fee to publish classified + ; ClassifiedFee = 0 + WelcomeMessage = "Welcome, Avatar!" AllowRemoteSetLoginLevel = "false" ; For V2 map - MapTileURL = "http://127.0.0.1:8002"; + MapTileURL = "${Const|BaseURL}:${Const|PublicPort}/"; - ; For V2/3 Web Profiles - ; Work in progress: The ProfileServerURL/OpenIDServerURL are - ; being used in a development viewer as support for webprofiles - ; is being developed across the componets - ; - ; ProfileServerURL = "http://127.0.0.1/profiles/[AGENT_NAME]" - ; - ; For V2/V3 webapp authentication SSO - ; OpenIDServerURL = "http://127.0.0.1/openid/openidserver/" + ; Url to search service + ; SearchURL = "${Const|BaseURL}:${Const|PublicPort}/"; + + ; For V3 destination guide + ; DestinationGuide = "${Const|BaseURL}/guide" + + ; For V3 avatar picker (( work in progress )) + ; AvatarPicker = "${Const|BaseURL}/avatars" ; If you run this login server behind a proxy, set this to true ; HasProxy = false ; Defaults for the users, if none is specified in the useraccounts table entry (ServiceURLs) - ; CHANGE THIS - GatekeeperURI = "http://127.0.0.1:8002" - - SRV_HomeURI = "http://127.0.0.1:8002" - SRV_InventoryServerURI = "http://127.0.0.1:8002" - SRV_AssetServerURI = "http://127.0.0.1:8002" - SRV_ProfileServerURI = "http://127.0.0.1:8002" - SRV_FriendsServerURI = "http://127.0.0.1:8002" - SRV_IMServerURI = "http://127.0.0.1:8002" - - ;; Regular expressions for controlling which client versions are accepted/denied. - ;; An empty string means nothing is checked. - ;; - ;; Example 1: allow only these 3 types of clients (any version of them) - ;; AllowedClients = "Imprudence|Hippo|Second Life" - ;; - ;; Example 2: allow all clients except these - ;; DeniedClients = "Twisted|Crawler|Cryolife|FuckLife|StreetLife|GreenLife|AntiLife|KORE-Phaze|Synlyfe|Purple Second Life|SecondLi |Emerald" - ;; - ;; Note that these are regular expressions, so every character counts. - ;; Also note that this is very weak security and should not be trusted as a reliable means - ;; for keeping bad clients out; modified clients can fake their identifiers. - ;; - ;; - ;AllowedClients = "" - ;DeniedClients = "" + ;; If you have GatekeeperURI set under [Hypergrid], no need to set it here, leave it commented + ; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}" + + SRV_HomeURI = "${Const|BaseURL}:${Const|PublicPort}" + SRV_InventoryServerURI = "${Const|BaseURL}:${Const|PublicPort}" + SRV_AssetServerURI = "${Const|BaseURL}:${Const|PublicPort}" + SRV_ProfileServerURI = "${Const|BaseURL}:${Const|PublicPort}" + SRV_FriendsServerURI = "${Const|BaseURL}:${Const|PublicPort}" + SRV_IMServerURI = "${Const|BaseURL}:${Const|PublicPort}" + SRV_GroupsServerURI = "${Const|BaseURL}:${Const|PublicPort}" ;# {DSTZone} {} {Override Daylight Saving Time rules} {* none local} "America/Los_Angeles;Pacific Standard Time" ;; Viewers do not receive timezone information from the server - almost all (?) default to Pacific Standard Time @@ -339,18 +514,21 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset ;; 'America/Los_Angeles' is used on Linux/Mac systems whilst 'Pacific Standard Time' is used on Windows DSTZone = "America/Los_Angeles;Pacific Standard Time" + [MapImageService] LocalServiceModule = "OpenSim.Services.MapImageService.dll:MapImageService" - ; Set this if you want to change the default - ; TilesStoragePath = "maptiles" - ; - ; If for some reason you have the AddMapTile service outside the firewall (e.g. 8002), - ; you may want to set this. Otherwise, don't set it, because it's already protected. - ; GridService = "OpenSim.Services.GridService.dll:GridService" - ; + + ; Set this if you want to change the default + ; TilesStoragePath = "maptiles" + ; + ; If for some reason you have the AddMapTile service outside the firewall (e.g. ${Const|PublicPort}), + ; you may want to set this. Otherwise, don't set it, because it's already protected. + ; GridService = "OpenSim.Services.GridService.dll:GridService" + ; ; Additionally, if you run this server behind a proxy, set this to true ; HasProxy = false + [GridInfoService] ; These settings are used to return information on a get_grid_info call. ; Client launcher scripts and third-party clients make use of this to @@ -361,7 +539,7 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset ; See http://opensimulator.org/wiki/GridInfo ; login uri: for grid this is the login server URI - login = http://127.0.0.1:8002/ + login = ${Const|BaseURL}:${Const|PublicPort}/ ; long grid name: the long name of your grid gridname = "the lost continent of hippo" @@ -371,32 +549,33 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset ; login page: optional: if it exists it will be used to tell the client to use ; this as splash page - ;welcome = http://127.0.0.1/welcome + ;welcome = ${Const|BaseURL}/welcome - ; helper uri: optional: if it exists if will be used to tell the client to use + ; helper uri: optional: if it exists it will be used to tell the client to use ; this for all economy related things - ;economy = http://127.0.0.1:8002/ + ;economy = ${Const|BaseURL}/economy ; web page of grid: optional: page providing further information about your grid - ;about = http://127.0.0.1/about/ + ;about = ${Const|BaseURL}/about ; account creation: optional: page providing further information about obtaining ; a user account on your grid - ;register = http://127.0.0.1/register + ;register = ${Const|BaseURL}/register ; help: optional: page providing further assistance for users of your grid - ;help = http://127.0.0.1/help + ;help = ${Const|BaseURL}/help ; password help: optional: page providing password assistance for users of your grid - ;password = http://127.0.0.1/password - + ;password = ${Const|BaseURL}/password + ; HG address of the gatekeeper, if you have one ; this is the entry point for all the regions of the world - ; gatekeeper = http://127.0.0.1:8002/ + ; gatekeeper = ${Const|BaseURL}:${Const|PublicPort}/ ; HG user domain, if you have one ; this is the entry point for all user-related HG services - ; uas = http://127.0.0.1:8002/ + ; uas = ${Const|BaseURL}:${Const|PublicPort}/ + [GatekeeperService] LocalServiceModule = "OpenSim.Services.HypergridService.dll:GatekeeperService" @@ -404,12 +583,13 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService" UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService" PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" + GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService" GridService = "OpenSim.Services.GridService.dll:GridService" AuthenticationService = "OpenSim.Services.Connectors.dll:AuthenticationServicesConnector" SimulationService ="OpenSim.Services.Connectors.dll:SimulationServiceConnector" ; how does the outside world reach me? This acts as public key too. - ; CHANGE THIS - ExternalName = "http://127.0.0.1:8002" + ;; If you have GatekeeperURI set under [Hypergrid], no need to set it here, leave it commented + ; ExternalName = "${Const|BaseURL}:${Const|PublicPort}" ; Does this grid allow incoming links to any region in it? ; If false, HG TPs happen only to the Default regions specified in [GridService] section @@ -418,23 +598,6 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset ; If you run this gatekeeper server behind a proxy, set this to true ; HasProxy = false - ;; Regular expressions for controlling which client versions are accepted/denied. - ;; An empty string means nothing is checked. - ;; - ;; Example 1: allow only these 3 types of clients (any version of them) - ;; AllowedClients = "Imprudence|Hippo|Second Life" - ;; - ;; Example 2: allow all clients except these - ;; DeniedClients = "Twisted|Crawler|Cryolife|FuckLife|StreetLife|GreenLife|AntiLife|KORE-Phaze|Synlyfe|Purple Second Life|SecondLi |Emerald" - ;; - ;; Note that these are regular expressions, so every character counts. - ;; Also note that this is very weak security and should not be trusted as a reliable means - ;; for keeping bad clients out; modified clients can fake their identifiers. - ;; - ;; - ;AllowedClients = "" - ;DeniedClients = "" - ;; Are foreign visitors allowed? ;ForeignAgentsAllowed = true ;; @@ -450,12 +613,12 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset [UserAgentService] LocalServiceModule = "OpenSim.Services.HypergridService.dll:UserAgentService" ;; for the service - GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService" - GridService = "OpenSim.Services.GridService.dll:GridService" - GatekeeperService = "OpenSim.Services.HypergridService.dll:GatekeeperService" - PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" - FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService" - UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService" + GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService" + GridService = "OpenSim.Services.GridService.dll:GridService" + GatekeeperService = "OpenSim.Services.HypergridService.dll:GatekeeperService" + PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" + FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService" + UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService" ; If you run this user agent server behind a proxy, set this to true ; HasProxy = false @@ -471,7 +634,7 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset ;; Are local users allowed to visit other grids? ;; What user level? Use variables of this forrm: ;; ForeignTripsAllowed_Level_ = true | false - ;; (the default is true) + ;; (the default is true) ;; For example: ; ForeignTripsAllowed_Level_0 = false ; ForeignTripsAllowed_Level_200 = true ; true is default, no need to say it @@ -479,11 +642,17 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset ;; If ForeignTripsAllowed is false, make exceptions using DisallowExcept ;; Leave blank or commented for no exceptions. ; DisallowExcept_Level_0 = "http://myothergrid.com:8002, http://boss.com:8002" - ;; + ;; ;; If ForeignTripsAllowed is true, make exceptions using AllowExcept. ;; Leave blank or commented for no exceptions. ; AllowExcept_Level_200 = "http://griefer.com:8002, http://enemy.com:8002" + ;; This variable controls what is exposed to profiles of local users + ;; as seen from outside of this grid. Leave it uncommented for exposing + ;; UserTitle, UserFlags and the creation date. Uncomment and change to False + ;; to block this info from being exposed. + ; ShowUserDetailsInHGProfile = True + ; * The interface that local users get when they are in other grids. ; * This restricts the inventory operations while in other grids. @@ -494,15 +663,24 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset [HGInventoryService] ; For the InventoryServiceInConnector LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGSuitcaseInventoryService" - ;; alternatives: - ;; HG1.5, more permissive, not recommended, but still supported + ;; alternatives: + ;; HG1.5, more permissive, not recommended, but still supported ;LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGInventoryService" - ;; HG1.0, totally permissive, not recommended, but OK for grids with 100% trust + ;; HG1.0, totally permissive, not recommended, but OK for grids with 100% trust ;LocalServiceModule = "OpenSim.Services.InventoryService.dll:XInventoryService" - UserAccountsService = "OpenSim.Services.UserAccountService.dll:UserAccountService" - AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService" - HomeURI = "http://127.0.0.1:8002" + UserAccountsService = "OpenSim.Services.UserAccountService.dll:UserAccountService" + AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService" + + ; HGInventoryService is a public-facing inventory service that allows users to + ; interact with their suitcase folder when on a foreign grid. This reuses the general inventory service connector. + ; Hence, if the user has set up authentication in [Network] to protect their private services + ; make sure it is not set here. + AuthType = None + + ;; Can overwrite the default in [Hypergrid], but probably shouldn't + ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}" + ; * The interface that local users get when they are in other grids. ; * This restricts the access that the rest of the world has to @@ -511,46 +689,76 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset [HGAssetService] LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGAssetService" UserAccountsService = "OpenSim.Services.UserAccountService.dll:UserAccountService" - HomeURI = "http://127.0.0.1:8002" + + ; HGAssetService is a public-facing service that allows users to + ; read and create assets when on another grid. This reuses the general asset service connector. + ; Hence, if the user has set up authentication in [Network] to protect their private services + ; make sure it is overriden for this public service. + AuthType = None + + ;; Can overwrite the default in [Hypergrid], but probably shouldn't + ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}" ;; The asset types that this grid can export to / import from other grids. - ;; Comma separated. - ;; Valid values are all the asset types in OpenMetaverse.AssetType, namely: - ;; Unknown, Texture, Sound, CallingCard, Landmark, Clothing, Object, Notecard, LSLText, - ;; LSLBytecode, TextureTGA, Bodypart, SoundWAV, ImageTGA, ImageJPEG, Animation, Gesture, Mesh - ;; - ;; Leave blank or commented if you don't want to apply any restrictions. - ;; A more strict, but still reasonable, policy may be to disallow the exchange - ;; of scripts, like so: + ;; Comma separated. + ;; Valid values are all the asset types in OpenMetaverse.AssetType, namely: + ;; Unknown, Texture, Sound, CallingCard, Landmark, Clothing, Object, Notecard, LSLText, + ;; LSLBytecode, TextureTGA, Bodypart, SoundWAV, ImageTGA, ImageJPEG, Animation, Gesture, Mesh + ;; + ;; Leave blank or commented if you don't want to apply any restrictions. + ;; A more strict, but still reasonable, policy may be to disallow the exchange + ;; of scripts, like so: ; DisallowExport ="LSLText" ; DisallowImport ="LSLBytecode" + [HGFriendsService] - LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGFriendsService" - UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService" - FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService" - UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService" - GridService = "OpenSim.Services.GridService.dll:GridService" - PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" + LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGFriendsService" + UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService" + FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService" + UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService" + GridService = "OpenSim.Services.GridService.dll:GridService" + PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" + [HGInstantMessageService] - LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGInstantMessageService" - GridService = "OpenSim.Services.GridService.dll:GridService" - PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" - UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService" + LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGInstantMessageService" + GridService = "OpenSim.Services.GridService.dll:GridService" + PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" + UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService" ; This should always be true in the Robust config InGatekeeper = True + [Messaging] - ; If you have an Offline IM server, set the vars in this section, so that - ; incomming IMs to local users from foreign grids can be saved - ; - ;# {OfflineMessageURL} {OfflineMessageModule:OfflineMessageModule} {URL of offline messaging service} {} - ;; URL of web service for offline message storage - ; OfflineMessageURL = http://yourserver/Offline.php + ; OfflineIM + OfflineIMService = "OpenSim.Addons.OfflineIM.dll:OfflineIMService" + + +[Groups] + ;; for the HG Groups service + OfflineIMService = "OpenSim.Addons.OfflineIM.dll:OfflineIMService" + UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService" + + ;; What is the HomeURI of users associated with this grid? + ;; Can overwrite the default in [Hypergrid], but probably shouldn't + ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}" + + ;; Sets the maximum number of groups an agent may join + ; MaxAgentGroups = 42 + + +[UserProfilesService] + LocalServiceModule = "OpenSim.Services.UserProfilesService.dll:UserProfilesService" + Enabled = false + ;; Configure this for separate profiles database + ;; ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=*****;Old Guids=true;" + ;; Realm = UserProfiles + UserAccountService = OpenSim.Services.UserAccountService.dll:UserAccountService + AuthenticationServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" - ;; Control whether group messages are forwarded to offline users. - ;; Default is true. - ;; This applies to the core groups module (Flotsam) only. - ; ForwardOfflineGroupMessages = true +[BakedTextureService] + LocalServiceModule = "OpenSim.Server.Handlers.dll:XBakes" + ;; This directory must be writable by the user ROBUST runs as. It will be created automatically. + BaseDirectory = "./bakes" diff --git a/bin/Robust.Tests.dll.config b/bin/Robust.Tests.dll.config new file mode 100644 index 0000000..a4c43e7 --- /dev/null +++ b/bin/Robust.Tests.dll.config @@ -0,0 +1,43 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bin/Robust.exe.config b/bin/Robust.exe.config index 4914f55..7db6458 100644 --- a/bin/Robust.exe.config +++ b/bin/Robust.exe.config @@ -4,6 +4,7 @@
+ @@ -11,16 +12,40 @@ + + + + - + + + + + + + - + + + + + + + + + @@ -29,5 +54,10 @@ + + + + + diff --git a/bin/Robust.ini.example b/bin/Robust.ini.example index bc5cbcc..099d4da 100644 --- a/bin/Robust.ini.example +++ b/bin/Robust.ini.example @@ -1,6 +1,29 @@ ; * Run ; * $ Robust.exe -inifile Robust.ini ; * +; ** +; * +; * The Const section allows us to define some basic information that we +; * will use throughout our configuration. We will provide examples for +; * setting the base url of the Robust server and the public and private ports +; * it uses. Changing the values of the constants will set the operating +; * parameters thoughout the configuration. Other constants that may prove +; * to be useful may be added to the followin section. They may be +; * referenced anywhere in the configuration by using ${Const|Name}. One +; * such use is providing a base path for setting locations that Robust +; * uses to write data. +; * +[Const] + + ; The URL of the Robust server + BaseURL = "http://127.0.0.1" + + ; The public port of the Robust server + PublicPort = "8002" + + ; The private port of the Robust server + PrivatePort = "8003" + ; * The startup section lists all the connectors to start up in this server ; * instance. This may be only one, or it may be the entire server suite. @@ -13,42 +36,68 @@ ; * [[@]/][:] ; * [Startup] - -; Plugin Registry Location -; Set path to directory for plugin registry. Information -; about the registered repositories and installed plugins -; will be stored here -; The Robust.exe process must hvae R/W access to the location -RegistryLocation = "." - - -; Modular configurations -; Set path to directory for modular ini files... -; The Robust.exe process must hvae R/W access to the location -ConfigDirectory = "/home/opensim/etc/Configs" - + ; Place to create a PID file + ; If no path if specified then a PID file is not created. + ; PIDFile = "/tmp/Robust.exe.pid" + + ; Plugin Registry Location + ; Set path to directory for plugin registry. Information + ; about the registered repositories and installed plugins + ; will be stored here + ; The Robust.exe process must have R/W access to the location + RegistryLocation = "." + + ; Modular configurations + ; Set path to directory for modular ini files... + ; The Robust.exe process must have R/W access to the location + ConfigDirectory = "." + + ; Console commands can be saved to a file, so the command history persists after a restart. (default is true) + ConsoleHistoryFileEnabled = true + + ; The history file can be just a filename (relative to OpenSim's bin/ directory + ; or it can be a full path to somewhere else. (default is OpenSimConsoleHistory.txt in bin/) + ConsoleHistoryFile = "RobustConsoleHistory.txt" + + ; How many lines of command history should we keep? (default is 100) + ConsoleHistoryFileLines = 100 + [ServiceList] -AssetServiceConnector = "8003/OpenSim.Server.Handlers.dll:AssetServiceConnector" -InventoryInConnector = "8003/OpenSim.Server.Handlers.dll:XInventoryInConnector" -VoiceConnector = "8004/OpenSim.Server.Handlers.dll:FreeswitchServerConnector" -GridServiceConnector = "8003/OpenSim.Server.Handlers.dll:GridServiceConnector" -GridInfoServerInConnector = "8002/OpenSim.Server.Handlers.dll:GridInfoServerInConnector" -AuthenticationServiceConnector = "8003/OpenSim.Server.Handlers.dll:AuthenticationServiceConnector" -OpenIdServerConnector = "8002/OpenSim.Server.Handlers.dll:OpenIdServerConnector" -AvatarServiceConnector = "8003/OpenSim.Server.Handlers.dll:AvatarServiceConnector" -LLLoginServiceInConnector = "8002/OpenSim.Server.Handlers.dll:LLLoginServiceInConnector" -PresenceServiceConnector = "8003/OpenSim.Server.Handlers.dll:PresenceServiceConnector" -UserAccountServiceConnector = "8003/OpenSim.Server.Handlers.dll:UserAccountServiceConnector" -GridUserServiceConnector = "8003/OpenSim.Server.Handlers.dll:GridUserServiceConnector" -FriendsServiceConnector = "8003/OpenSim.Server.Handlers.dll:FriendsServiceConnector" -MapAddServiceConnector = "8003/OpenSim.Server.Handlers.dll:MapAddServiceConnector" -MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnector" + AssetServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:AssetServiceConnector" + InventoryInConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:XInventoryInConnector" + ;; Uncomment if you have set up Freeswitch (see [FreeswitchService] below) + ;VoiceConnector = "8004/OpenSim.Server.Handlers.dll:FreeswitchServerConnector" + GridServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:GridServiceConnector" + GridInfoServerInConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:GridInfoServerInConnector" + AuthenticationServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:AuthenticationServiceConnector" + OpenIdServerConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:OpenIdServerConnector" + AvatarServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:AvatarServiceConnector" + LLLoginServiceInConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:LLLoginServiceInConnector" + PresenceServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:PresenceServiceConnector" + UserAccountServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:UserAccountServiceConnector" + GridUserServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:GridUserServiceConnector" + AgentPreferencesServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:AgentPreferencesServiceConnector" + FriendsServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:FriendsServiceConnector" + MapAddServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:MapAddServiceConnector" + MapGetServiceConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:MapGetServiceConnector" + ;; Uncomment this if you want offline IM to work + ;OfflineIMServiceConnector = "${Const|PrivatePort}/OpenSim.Addons.OfflineIM.dll:OfflineIMServiceRobustConnector" + ;; Uncomment this if you want Groups V2 to work + ;GroupsServiceConnector = "${Const|PrivatePort}/OpenSim.Addons.Groups.dll:GroupsServiceRobustConnector" + ;; Uncomment to provide bakes caching + ;BakedTextureService = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:XBakesConnector" + + ;; Uncomment for UserProfiles see [UserProfilesService] to configure... + ; UserProfilesServiceConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:UserProfilesConnector" + + ;; Uncomment if you want to have centralized estate data + ; EstateDataService = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:EstateDataRobustConnector" ; * This is common for all services, it's the network setup for the entire ; * server instance, if none is specified above ; * [Network] - port = 8003 + port = ${Const|PrivatePort} ; HTTPS for "Out of band" management applications such as the remote admin ; module. May specify https_main = True to make the main http server @@ -69,25 +118,100 @@ MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnecto ; Password for cert ; cert_pass = "password" + ;; The follow 3 variables are for HTTP Basic Authentication for the Robust services. + ;; Use this if your central services in port ${Const|PrivatePort} need to be accessible on the Internet + ;; but you want to protect them from unauthorized access. + ; AuthType = "BasicHttpAuthentication" + ; HttpAuthUsername = "some_username" + ; HttpAuthPassword = "some_password" + ;; + ;; AuthType above can be overriden in any of the service sections below by + ; AuthType = "None" + ;; This is useful in cases where you want to protect most of the services, + ;; but unprotect individual services. Username and Password can also be + ;; overriden if you want to use different credentials for the different services. + + ;; By default, scripts are not allowed to call private services via llHttpRequest() + ;; Such calls are detected by the X-SecondLife-Shared HTTP header + ;; If you allow such calls you must be sure that they are restricted to very trusted scripters + ;; (remember scripts can also be in visiting avatar attachments). + ;; This can be overriden in individual private service sections if necessary + AllowllHTTPRequestIn = false + + ; * The following are for the remote console + ; * They have no effect for the local or basic console types + ; * Leave commented to diable logins to the console + ;ConsoleUser = Test + ;ConsolePass = secret + ;ConsolePort = 0 + +[AccessControl] + ;# {AllowedClients} {} {Bar (|) separated list of allowed clients} {} + ;; Bar (|) separated list of viewers which may gain access to the regions. + ;; One can use a substring of the viewer name to enable only certain + ;; versions + ;; Example: Agent uses the viewer "Imprudence 1.3.2.0" + ;; - "Imprudence" has access + ;; - "Imprudence 1.3" has access + ;; - "Imprudence 1.3.1" has no access + ; AllowedClients = "" + + ;# {DeniedClients} {} {Bar (|) separated list of denied clients} {} + ;; Bar (|) separated list of viewers which may not gain access to the regions. + ;; One can use a Substring of the viewer name to disable only certain + ;; versions + ;; Example: Agent uses the viewer "Imprudence 1.3.2.0" + ;; - "Imprudence" has no access + ;; - "Imprudence 1.3" has no access + ;; - "Imprudence 1.3.1" has access + ; DeniedClients = "" -; * The following are for the remote console -; * They have no effect for the local or basic console types -; * Leave commented to diable logins to the console -;ConsoleUser = Test -;ConsolePass = secret -;ConsolePort = 0 [DatabaseService] + ; PGSQL + ; Uncomment these lines if you want to use PGSQL storage + ; Change the connection string to your db details + ;StorageProvider = "OpenSim.Data.PGSQL.dll" + ;ConnectionString = "Server=localhost;Database=opensim;User Id=opensim; password=***;" + + ; MySQL + ; Uncomment these lines if you want to use MySQL storage + ; Change the connection string to your db details StorageProvider = "OpenSim.Data.MySQL.dll" ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=*****;Old Guids=true;" + ; * As an example, the below configuration precisely mimicks the legacy ; * asset server. It is read by the asset IN connector (defined above) ; * and it then loads the OUT connector (a local database module). That, ; * in turn, reads the asset loader and database connection information ; * [AssetService] + + ;; Choose an asset service (Only one option should be enabled) LocalServiceModule = "OpenSim.Services.AssetService.dll:AssetService" + ;LocalServiceModule = "OpenSim.Services.FSAssetService.dll:FSAssetConnector" + + ;; FSAsset Directories. Base directory, where final asset files are stored and Spool directory for temp files + ;; These directories must be on the same physical filesystem + ;BaseDirectory = "./fsassets/data" + ;SpoolDirectory = "./fsassets/tmp" + + ;; Original service can be checked if FSAssets can not find an asset + ;FallbackService = "OpenSim.Services.AssetService.dll:AssetService"; + + ;; How many days since last updating the access time before its updated again by FSAssets when accessing an asset + ;; Reduces DB calls if asset is requested often. Default value 0 will always update access time + ;DaysBetweenAccessTimeUpdates = 30 + + ;; FSAssets Custom Database Config (Leave blank to use grids default database configuration) + ;StorageProvider = "" + ;ConnectionString = "" + ;Realm = "fsassets" + + ;; The following are common to both the default asset service and FSAsset service + + ;; Default loader for loading default assets from XML on first run DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll" AssetLoaderArgs = "./assets/AssetSets.xml" @@ -104,12 +228,18 @@ MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnecto ; Default is false. AllowRemoteDeleteAllTypes = false + ; * This configuration loads the inventory server modules. It duplicates ; * the function of the legacy inventory server ; * [InventoryService] LocalServiceModule = "OpenSim.Services.InventoryService.dll:XInventoryService" + ; Will calls to purge folders (empty trash) and immediately delete/update items or folders (not move to trash first) succeed? + ; If this is set to false then some other arrangement must be made to perform these operations if necessary. + AllowDelete = true + + ; * This is the new style grid service. ; * "Realm" is the table that is used for user lookup. ; * It defaults to "regions", which uses the legacy tables @@ -122,11 +252,32 @@ MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnecto ;; Next, we can specify properties of regions, including default and fallback regions ;; The syntax is: Region_ = "" ;; or: Region_ = "" - ;; where can be DefaultRegion, FallbackRegion, NoDirectLogin, Persistent, LockedOut,Reservation,NoMove,Authenticate - ;; For example: + ;; where can be DefaultRegion, DefaultHGRegion, FallbackRegion, NoDirectLogin, Persistent, LockedOut, Reservation, NoMove, Authenticate + ;; + ;; DefaultRegion If a local login cannot be placed in the required region (e.g. home region does not exist, avatar is not allowed entry, etc.) + ;; then this region becomes the destination. Only the first online default region will be used. If no DefaultHGRegion + ;; is specified then this will also be used as the region for hypergrid connections that require it (commonly because they have not specified + ;; an explicit region. + ;; + ;; DefaultHGRegion If an avatar connecting via the hypergrid does not specify a region, then they are placed here. Only the first online + ;; region will be used. + ;; + ;; FallbackRegion If the DefaultRegion is not available for a local login, then any FallbackRegions are tried instead. These are tried in the + ;; order specified. This only applies to local logins at this time, not Hypergrid connections. + ;; + ;; NoDirectLogin A hypergrid user cannot directly connect to this region. This does not apply to local logins. + ;; + ;; Persistent When the simulator is shutdown, the region is signalled as offline but left registered on the grid. + ;; + ;; Example specification: ; Region_Welcome_Area = "DefaultRegion, FallbackRegion" ; (replace spaces with underscore) + ;; Allow supporting viewers to export content + ;; Set to false to prevent export + ExportSupported = true + + ; * This is the configuration for the freeswitch server in grid mode [FreeswitchService] LocalServiceModule = "OpenSim.Services.FreeswitchService.dll:FreeswitchService" @@ -163,6 +314,7 @@ MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnecto ; EchoPort = 50505 ; AttemptSTUN = false + ; * This is the new style authentication service. Currently, only MySQL ; * is implemented. ; * @@ -182,11 +334,13 @@ MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnecto ;; Default is false. ; AllowSetPassword = false + [OpenIdService] ; for the server connector AuthenticationServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" UserAccountServiceModule = "OpenSim.Services.UserAccountService.dll:UserAccountService" + ; * This is the new style authentication service. Currently, only MySQL ; * is implemented. "Realm" is the table that is used for user lookup. ; * It defaults to "useraccounts", which uses the new style. @@ -203,6 +357,7 @@ MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnecto GridService = "OpenSim.Services.GridService.dll:GridService" InventoryService = "OpenSim.Services.InventoryService.dll:XInventoryService" AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService" + GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService" ;; This switch creates the minimum set of body parts and avatar entries for a viewer 2 ;; to show a default "Ruth" avatar rather than a cloud for a newly created user. @@ -222,6 +377,12 @@ MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnecto ; for the server connector LocalServiceModule = "OpenSim.Services.UserAccountService.dll:GridUserService" + +[AgentPreferencesService] + ; for the server connector + LocalServiceModule = "OpenSim.Services.UserAccountService.dll:AgentPreferencesService" + + [PresenceService] ; for the server connector LocalServiceModule = "OpenSim.Services.PresenceService.dll:PresenceService" @@ -229,18 +390,24 @@ MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnecto ; bots using one account AllowDuplicatePresences = false; + [AvatarService] ; for the server connector LocalServiceModule = "OpenSim.Services.AvatarService.dll:AvatarService" + [FriendsService] ; for the server connector LocalServiceModule = "OpenSim.Services.FriendsService.dll:FriendsService" +[EstateService] + LocalServiceModule = "OpenSim.Services.EstateService.dll:EstateDataService" + [LibraryService] LibraryName = "OpenSim Library" DefaultLibrary = "./inventory/Libraries.xml" + [LoginService] ; for the server connector LocalServiceModule = "OpenSim.Services.LLLoginService.dll:LLLoginService" @@ -256,45 +423,35 @@ MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnecto LibraryService = "OpenSim.Services.InventoryService.dll:LibraryService" FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService" - ;; Ask co-operative viewers to use a different currency name + ; The minimum user level required for a user to be able to login. 0 by default + ; If you disable a particular user's account then you can set their login level below this number. + ; You can also change this level from the console though these changes will not be persisted. + ; MinLoginLevel = 0 + + ; Ask co-operative viewers to use a different currency name ;Currency = "" + ;; Set minimum fee to publish classified + ; ClassifiedFee = 0 + WelcomeMessage = "Welcome, Avatar!" AllowRemoteSetLoginLevel = "false" ; For V2 map - MapTileURL = "http://127.0.0.1:8002"; + MapTileURL = "${Const|BaseURL}:${Const|PublicPort}/"; - ; For V2/3 Web Profiles - ; Work in progress: The ProfileServerURL/OpenIDServerURL are - ; being used in a development viewer as support for webprofiles - ; is being developed across the componets - ; - ; ProfileServerURL = "http://127.0.0.1/profiles/[AGENT_NAME]" - ; - ; For V2/V3 webapp authentication SSO - ; OpenIDServerURL = "http://127.0.0.1/openid/openidserver/" + ; Url to search service + ; SearchURL = "${Const|BaseURL}:${Const|PublicPort}/"; + + ; For V3 destination guide + ; DestinationGuide = "${Const|BaseURL}/guide" + + ; For V3 avatar picker (( work in progress )) + ; AvatarPicker = "${Const|BaseURL}/avatars" ; If you run this login server behind a proxy, set this to true ; HasProxy = false - ;; Regular expressions for controlling which client versions are accepted/denied. - ;; An empty string means nothing is checked. - ;; - ;; Example 1: allow only these 3 types of clients (any version of them) - ;; AllowedClients = "Imprudence|Hippo|Second Life" - ;; - ;; Example 2: allow all clients except these - ;; DeniedClients = "Twisted|Crawler|Cryolife|FuckLife|StreetLife|GreenLife|AntiLife|KORE-Phaze|Synlyfe|Purple Second Life|SecondLi |Emerald" - ;; - ;; Note that these are regular expressions, so every character counts. - ;; Also note that this is very weak security and should not be trusted as a reliable means - ;; for keeping bad clients out; modified clients can fake their identifiers. - ;; - ;; - ;AllowedClients = "" - ;DeniedClients = "" - ;# {DSTZone} {} {Override Daylight Saving Time rules} {* none local} "America/Los_Angeles;Pacific Standard Time" ;; Viewers do not listen to timezone sent by the server. They use Pacific Standard Time instead, ;; but rely on the server to calculate Daylight Saving Time. Sending another DST than US Pacific @@ -316,19 +473,48 @@ MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnecto ;; 'America/Los_Angeles' is used on Linux/Mac systems whilst 'Pacific Standard Time' is used on Windows DSTZone = "America/Los_Angeles;Pacific Standard Time" + ;Basic Login Service Dos Protection Tweaks + ;; + ;; Some Grids/Users use a transparent proxy that makes use of the X-Forwarded-For HTTP Header, If you do, set this to true + ;; If you set this to true and you don't have a transparent proxy, it may allow attackers to put random things in the X-Forwarded-For header to + ;; get around this basic DOS protection. + ;DOSAllowXForwardedForHeader = false + ;; + ;; The protector adds up requests during this rolling period of time, default 10 seconds + ;DOSRequestTimeFrameMS = 10000 + ;; + ;; The amount of requests in the above timeframe from the same endpoint that triggers protection + ;DOSMaxRequestsInTimeFrame = 5 + ;; + ;; The amount of time that a specific endpoint is blocked. Default 2 minutes. + ;DOSForgiveClientAfterMS = 120000 + ;; + ;; To turn off basic dos protection, set the DOSMaxRequestsInTimeFrame to 0. + + [MapImageService] LocalServiceModule = "OpenSim.Services.MapImageService.dll:MapImageService" - ; Set this if you want to change the default - ; TilesStoragePath = "maptiles" - ; - ; If for some reason you have the AddMapTile service outside the firewall (e.g. 8002), - ; you may want to set this. Otherwise, don't set it, because it's already protected. - ; GridService = "OpenSim.Services.GridService.dll:GridService" - ; + + ; Set this if you want to change the default + ; TilesStoragePath = "maptiles" + ; + ; If for some reason you have the AddMapTile service outside the firewall (e.g. ${Const|PublicPort}), + ; you may want to set this. Otherwise, don't set it, because it's already protected. + ; GridService = "OpenSim.Services.GridService.dll:GridService" + ; ; Additionally, if you run this server behind a proxy, set this to true ; HasProxy = false +[Messaging] + ; OfflineIM + OfflineIMService = "OpenSim.Addons.OfflineIM.dll:OfflineIMService" + + +[Groups] + ;; Sets the maximum number of groups an agent may join + ; MaxAgentGroups = 42 + [GridInfoService] ; These settings are used to return information on a get_grid_info call. @@ -340,7 +526,7 @@ MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnecto ; See http://opensimulator.org/wiki/GridInfo ; login uri: for grid this is the login server URI - login = http://127.0.0.1:8002/ + login = ${Const|BaseURL}:${Const|PublicPort}/ ; long grid name: the long name of your grid gridname = "the lost continent of hippo" @@ -350,21 +536,37 @@ MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnecto ; login page: optional: if it exists it will be used to tell the client to use ; this as splash page - ;welcome = http://127.0.0.1/welcome + ;welcome = ${Const|BaseURL}/welcome - ; helper uri: optional: if it exists if will be used to tell the client to use + ; helper uri: optional: if it exists it will be used to tell the client to use ; this for all economy related things - ;economy = http://127.0.0.1:9000/ + ;economy = ${Const|BaseURL}/economy ; web page of grid: optional: page providing further information about your grid - ;about = http://127.0.0.1/about/ + ;about = ${Const|BaseURL}/about ; account creation: optional: page providing further information about obtaining ; a user account on your grid - ;register = http://127.0.0.1/register + ;register = ${Const|BaseURL}/register ; help: optional: page providing further assistance for users of your grid - ;help = http://127.0.0.1/help + ;help = ${Const|BaseURL}/help ; password help: optional: page providing password assistance for users of your grid - ;password = http://127.0.0.1/password + ;password = ${Const|BaseURL}/password + + +[UserProfilesService] + LocalServiceModule = "OpenSim.Services.UserProfilesService.dll:UserProfilesService" + Enabled = false + ;; Configure this for separate profiles database + ;; ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=*****;Old Guids=true;" + ;; Realm = UserProfiles + UserAccountService = OpenSim.Services.UserAccountService.dll:UserAccountService + AuthenticationServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" + + +[BakedTextureService] + LocalServiceModule = "OpenSim.Server.Handlers.dll:XBakes" + ;; This directory must be writable by the user ROBUST runs as. It will be created automatically. + BaseDirectory = "./bakes" diff --git a/bin/SimpleApp.exe.config b/bin/SimpleApp.exe.config deleted file mode 100644 index c4d9c22..0000000 --- a/bin/SimpleApp.exe.config +++ /dev/null @@ -1,28 +0,0 @@ - - - -
- - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bin/addon-modules/README b/bin/addon-modules/README deleted file mode 100644 index 120dbc9..0000000 --- a/bin/addon-modules/README +++ /dev/null @@ -1 +0,0 @@ -Place .ini files here to have them picked up automatically diff --git a/bin/assets/ScriptsAssetSet/ScriptsAssetSet.xml b/bin/assets/ScriptsAssetSet/ScriptsAssetSet.xml index c76cb78..eae9642 100644 --- a/bin/assets/ScriptsAssetSet/ScriptsAssetSet.xml +++ b/bin/assets/ScriptsAssetSet/ScriptsAssetSet.xml @@ -89,9 +89,9 @@
-
+
- +
@@ -240,4 +240,4 @@
- \ No newline at end of file + diff --git a/bin/assets/TexturesAssetSet/IMG_BLOOM1.jp2 b/bin/assets/TexturesAssetSet/IMG_BLOOM1.jp2 new file mode 100644 index 0000000..8186d49 Binary files /dev/null and b/bin/assets/TexturesAssetSet/IMG_BLOOM1.jp2 differ diff --git a/bin/assets/TexturesAssetSet/TexturesAssetSet.xml b/bin/assets/TexturesAssetSet/TexturesAssetSet.xml index a4a0cba..f7e4367 100644 --- a/bin/assets/TexturesAssetSet/TexturesAssetSet.xml +++ b/bin/assets/TexturesAssetSet/TexturesAssetSet.xml @@ -343,6 +343,12 @@
+
+ + + + +
@@ -746,4 +752,16 @@
+ + +
+ + + + +
+ diff --git a/bin/assets/TexturesAssetSet/femalehair.jp2 b/bin/assets/TexturesAssetSet/femalehair.jp2 new file mode 100644 index 0000000..15a1f36 Binary files /dev/null and b/bin/assets/TexturesAssetSet/femalehair.jp2 differ diff --git a/bin/config-include/Grid.ini b/bin/config-include/Grid.ini index cb3a5c8..3c61ee0 100644 --- a/bin/config-include/Grid.ini +++ b/bin/config-include/Grid.ini @@ -8,39 +8,59 @@ Include-Common = "config-include/GridCommon.ini" [Modules] - AssetServices = "RemoteAssetServicesConnector" - InventoryServices = "RemoteXInventoryServicesConnector" - GridServices = "RemoteGridServicesConnector" - AvatarServices = "RemoteAvatarServicesConnector" - NeighbourServices = "RemoteNeighbourServicesConnector" - AuthenticationServices = "RemoteAuthenticationServicesConnector" - AuthorizationServices = "LocalAuthorizationServicesConnector" - PresenceServices = "RemotePresenceServicesConnector" - UserAccountServices = "RemoteUserAccountServicesConnector" - GridUserServices = "RemoteGridUserServicesConnector" - SimulationServices = "RemoteSimulationConnectorModule" - EntityTransferModule = "BasicEntityTransferModule" - InventoryAccessModule = "BasicInventoryAccessModule" + AssetServices = "RemoteAssetServicesConnector" + InventoryServices = "RemoteXInventoryServicesConnector" + GridServices = "RemoteGridServicesConnector" + AvatarServices = "RemoteAvatarServicesConnector" + NeighbourServices = "RemoteNeighbourServicesConnector" + AuthenticationServices = "RemoteAuthenticationServicesConnector" + AuthorizationServices = "LocalAuthorizationServicesConnector" + PresenceServices = "RemotePresenceServicesConnector" + UserAccountServices = "RemoteUserAccountServicesConnector" + AgentPreferencesServices= "RemoteAgentPreferencesServicesConnector" + GridUserServices = "RemoteGridUserServicesConnector" + SimulationServices = "RemoteSimulationConnectorModule" + EntityTransferModule = "BasicEntityTransferModule" + InventoryAccessModule = "BasicInventoryAccessModule" LandServices = "RemoteLandServicesConnector" - MapImageService = "MapImageServiceModule" + MapImageService = "MapImageServiceModule" + SearchModule = "BasicSearchModule" - LandServiceInConnector = true - NeighbourServiceInConnector = true - SimulationServiceInConnector = true - LibraryModule = true + LandServiceInConnector = true + NeighbourServiceInConnector = true + SimulationServiceInConnector = true + LibraryModule = true + +[SimulationService] + ; This is the protocol version which the simulator advertises to the source destination when acting as a target destination for a teleport + ; It is used to control the teleport handoff process. + ; Valid values are + ; "SIMULATION/0.3" + ; - This is the default, and it supports teleports to variable-sized regions + ; - Older versions can teleport to this one, but only if the destination region + ; is 256x256 + ; "SIMULATION/0.2" + ; - A source simulator which only implements "SIMULATION/0.1" can still teleport with that protocol + ; - this protocol is more efficient than "SIMULATION/0.1" + ; "SIMULATION/0.1" + ; - this is an older teleport protocol used in OpenSimulator 0.7.5 and before. + ConnectorProtocolVersion = "SIMULATION/0.3" [SimulationDataStore] - LocalServiceModule = "OpenSim.Services.Connectors.dll:SimulationDataService" + LocalServiceModule = "OpenSim.Services.SimulationService.dll:SimulationDataService" [EstateDataStore] - LocalServiceModule = "OpenSim.Services.Connectors.dll:EstateDataService" + LocalServiceModule = "OpenSim.Services.EstateService.dll:EstateDataService" [GridService] LocalServiceModule = "OpenSim.Services.GridService.dll:GridService" ; for the LocalGridServicesConnector which is used by the Remote one StorageProvider = "OpenSim.Data.Null.dll:NullRegionData" + NetworkConnector = "OpenSim.Services.Connectors.dll:GridServicesConnector" - NetworkConnector = "OpenSim.Services.Connectors.dll:GridServicesConnector" + ; Because LocalGridServicesConnector starts this service, in grid mode we need to suppress + ; the inappropriate console commands that it registers. + SuppressConsoleCommands = true [LibraryService] LocalServiceModule = "OpenSim.Services.InventoryService.dll:LibraryService" @@ -51,6 +71,4 @@ Connector = "OpenSim.Services.Connectors.dll:FriendsServicesConnector" [MapImageService] - LocalServiceModule = "OpenSim.Services.Connectors.dll:MapImageServicesConnector" - ; in minutes - RefreshTime = 60 + LocalServiceModule = "OpenSim.Services.Connectors.dll:MapImageServicesConnector" diff --git a/bin/config-include/GridCommon.ini.example b/bin/config-include/GridCommon.ini.example index e53fcca..0922cf5 100644 --- a/bin/config-include/GridCommon.ini.example +++ b/bin/config-include/GridCommon.ini.example @@ -26,6 +26,32 @@ ;StorageProvider = "OpenSim.Data.MSSQL.dll" ;ConnectionString = "Server=localhost\SQLEXPRESS;Database=opensim;User Id=opensim; password=***;" + ; PGSQL + ; Uncomment these lines if you want to use PGSQL storage + ; Change the connection string to your db details + ;StorageProvider = "OpenSim.Data.PGSQL.dll" + ;ConnectionString = "Server=localhost;Database=opensim;User Id=opensim; password=***;" + +[Hypergrid] + ; Uncomment the variables in this section only if you are in + ; Hypergrid configuration. Otherwise, ignore. + + ;# {HomeURI} {Hypergrid} {The Home URL of this world} {} + ;; If this is a standalone world, this is the address of this instance. + ;; If this is a grided simulator, this is the address of the external robust server that + ;; runs the UserAgentsService. + ;; For example http://myworld.com:9000 or http://myworld.com:8002 + ;; This is a default that can be overwritten in some sections. + ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}" + + ;# {GatekeeperURI} {Hypergrid} {The URL of the gatekeeper of this world} {} + ;; If this is a standalone world, this is the address of this instance. + ;; If this is a grided simulator, this is the address of the external robust server + ;; that runs the Gatekeeper service. + ;; For example http://myworld.com:9000 or http://myworld.com:8002 + ;; This is a default that can be overwritten in some sections. + ; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}" + [Modules] ;; Choose one cache module and the corresponding config file, if it exists. ;; Copy the config .example file into your own .ini file and adapt that. @@ -52,25 +78,25 @@ ; ; Change this to your grid-wide asset server. Do not add a slash to the end of any of these addresses. ; - AssetServerURI = "http://mygridserver.com:8003" + AssetServerURI = "${Const|BaseURL}:${Const|PrivatePort}" [InventoryService] ; ; Change this to your grid-wide inventory server ; - InventoryServerURI = "http://mygridserver.com:8003" + InventoryServerURI = "${Const|BaseURL}:${Const|PrivatePort}" [GridInfo] - ; - ; Change this to your grid info service - ; - GridInfoURI = "http://mygridserver.com:8002" + ; + ; Change this to your grid info service + ; + GridInfoURI = "${Const|BaseURL}:${Const|PublicPort}" [GridService] ; ; Change this to your grid-wide grid server ; - GridServerURI = "http://mygridserver.com:8003" + GridServerURI = "${Const|BaseURL}:${Const|PrivatePort}" ;AllowHypergridMapSearch = true ;; Directory for map tile images of linked regions @@ -79,51 +105,67 @@ ; === HG ONLY === ;; Change this to the address of your Gatekeeper service ;; (usually bundled with the rest of the services in one - ;; Robust server in port 8002, but not always) - Gatekeeper="http://mygridserver.com:8002" + ;; Robust server in port ${Const|PublicPort}, but not always) + Gatekeeper="${Const|BaseURL}:${Const|PublicPort}" + +[EstateDataStore] + ; + ; Uncomment if you want centralized estate data at robust server, + ; in which case the URL in [EstateService] will be used + ; + ;LocalServiceModule = "OpenSim.Services.Connectors.dll:EstateDataRemoteConnector" + +[EstateService] + EstateServerURI = "${Const|BaseURL}:${Const|PrivatePort}" [Messaging] ; === HG ONLY === ;; Change this to the address of your Gatekeeper service ;; (usually bundled with the rest of the services in one - ;; Robust server in port 8002, but not always) - Gatekeeper = "http://mygridserver.com:8002" + ;; Robust server in port ${Const|PublicPort}, but not always) + Gatekeeper = "${Const|BaseURL}:${Const|PublicPort}" [AvatarService] ; ; Change this to your grid-wide grid server ; - AvatarServerURI = "http://mygridserver.com:8003" + AvatarServerURI = "${Const|BaseURL}:${Const|PrivatePort}" + +[AgentPreferencesService] + ; + ; Change this to your grid-wide avatar prefs server + ; + AgentPreferencesServerURI = "${Const|BaseURL}:${Const|PrivatePort}" [PresenceService] ; ; Change this to your grid-wide presence server ; - PresenceServerURI = "http://mygridserver.com:8003" + PresenceServerURI = "${Const|BaseURL}:${Const|PrivatePort}" [UserAccountService] ; ; Change this to your grid-wide user accounts server ; - UserAccountServerURI = "http://mygridserver.com:8003" + UserAccountServerURI = "${Const|BaseURL}:${Const|PrivatePort}" [GridUserService] ; ; Change this to your grid-wide user accounts server ; - GridUserServerURI = "http://mygridserver.com:8003" + GridUserServerURI = "${Const|BaseURL}:${Const|PrivatePort}" [AuthenticationService] ; ; Change this to your grid-wide authentication server ; - AuthenticationServerURI = "http://mygridserver.com:8003" + AuthenticationServerURI = "${Const|BaseURL}:${Const|PrivatePort}" [FriendsService] ; ; Change this to your grid-wide friends server ; - FriendsServerURI = "http://mygridserver.com:8003" + FriendsServerURI = "${Const|BaseURL}:${Const|PrivatePort}" [HGInventoryAccessModule] ; @@ -131,15 +173,23 @@ ; Change this to your server ; accessible from other grids ; - HomeURI = "http://mygridserver.com:8002" - Gatekeeper = "http://mygridserver.com:8002" + HomeURI = "${Const|BaseURL}:${Const|PublicPort}" + Gatekeeper = "${Const|BaseURL}:${Const|PublicPort}" ;; If you want to protect your assets from being copied by foreign visitors - ;; uncomment the next line. You may want to do this on sims that have licensed content. - ; OutboundPermission = False + ;; set this to false. You may want to do this on sims that have licensed content. + ;; Default is true. + ; OutboundPermission = True + + ;; Send visual reminder to local users that their inventories are unavailable while they are traveling + ;; and available when they return. True by default. + ;RestrictInventoryAccessAbroad = True - ;; Send visual reminder to local users that their inventories are unavailable while they are traveling - ;; and available when they return. True by default. - ;RestrictInventoryAccessAbroad = True + ;; Warning: advanced and unusual. Default is false. + ;; Enables configurations where grids share user services, including inventory, + ;; while separating regions' assets from users' assets. Asset transfer between + ;; the users' asset server and the regions' asset server is done in HG-like manner. + ; CheckSeparateAssets = false + ; RegionHGAssetServerURI = ${Const|BaseURL}:${Const|PublicPort} [HGAssetService] @@ -148,17 +198,17 @@ ; Change this to your server ; accessible from other grids ; - HomeURI = "http://mygridserver.com:8002" + HomeURI = "${Const|BaseURL}:${Const|PublicPort}" ;; The asset types that this grid can export to / import from other grids. - ;; Comma separated. - ;; Valid values are all the asset types in OpenMetaverse.AssetType, namely: - ;; Unknown, Texture, Sound, CallingCard, Landmark, Clothing, Object, Notecard, LSLText, - ;; LSLBytecode, TextureTGA, Bodypart, SoundWAV, ImageTGA, ImageJPEG, Animation, Gesture, Mesh - ;; - ;; Leave blank or commented if you don't want to apply any restrictions. - ;; A more strict, but still reasonable, policy may be to disallow the exchange - ;; of scripts, like so: + ;; Comma separated. + ;; Valid values are all the asset types in OpenMetaverse.AssetType, namely: + ;; Unknown, Texture, Sound, CallingCard, Landmark, Clothing, Object, Notecard, LSLText, + ;; LSLBytecode, TextureTGA, Bodypart, SoundWAV, ImageTGA, ImageJPEG, Animation, Gesture, Mesh + ;; + ;; Leave blank or commented if you don't want to apply any restrictions. + ;; A more strict, but still reasonable, policy may be to disallow the exchange + ;; of scripts, like so: ; DisallowExport ="LSLText" ; DisallowImport ="LSLBytecode" @@ -171,17 +221,25 @@ ; === HG ONLY === ; Change this to your user agent server (HG robust) ; - UserAgentServerURI = "http://mygridserver.com:8002" + UserAgentServerURI = "${Const|BaseURL}:${Const|PublicPort}" [MapImageService] - MapImageServerURI = "http://mygridserver.com:8003" + MapImageServerURI = "${Const|BaseURL}:${Const|PrivatePort}" [AuthorizationService] - ; If you have regions with access restrictions - ; specify them here using the convention - ; Region_ = - ; Valid flags are: - ; DisallowForeigners -- HG visitors not allowed - ; DisallowResidents -- only Admins and Managers allowed - ; Example: - ; Region_Test_1 = "DisallowForeigners" + ; If you have regions with access restrictions + ; specify them here using the convention + ; Region_ = + ; Valid flags are: + ; DisallowForeigners -- HG visitors not allowed + ; DisallowResidents -- only Admins and Managers allowed + ; Example: + ; Region_Test_1 = "DisallowForeigners" + +;; Uncomment if you are using SimianGrid for grid services +[SimianGrid] + ;; SimianGrid services URL + ;; SimianServiceURL = "http://grid.sciencesim.com/Grid/" + + ;; Capability assigned by the grid administrator for the simulator + ;; SimulatorCapability = "00000000-0000-0000-0000-000000000000" diff --git a/bin/config-include/GridHypergrid.ini b/bin/config-include/GridHypergrid.ini index 55e1e6a..aa64c2a 100644 --- a/bin/config-include/GridHypergrid.ini +++ b/bin/config-include/GridHypergrid.ini @@ -8,40 +8,57 @@ Include-Common = "config-include/GridCommon.ini" [Startup] - WorldMapModule = "HGWorldMap" + WorldMapModule = "HGWorldMap" [Modules] - AssetServices = "HGAssetBroker" - InventoryServices = "HGInventoryBroker" - GridServices = "RemoteGridServicesConnector" - AvatarServices = "RemoteAvatarServicesConnector" - NeighbourServices = "RemoteNeighbourServicesConnector" - AuthenticationServices = "RemoteAuthenticationServicesConnector" - AuthorizationServices = "LocalAuthorizationServicesConnector" - PresenceServices = "RemotePresenceServicesConnector" - UserAccountServices = "RemoteUserAccountServicesConnector" - GridUserServices = "RemoteGridUserServicesConnector" - SimulationServices = "RemoteSimulationConnectorModule" - EntityTransferModule = "HGEntityTransferModule" - InventoryAccessModule = "HGInventoryAccessModule" + AssetServices = "HGAssetBroker" + InventoryServices = "HGInventoryBroker" + GridServices = "RemoteGridServicesConnector" + AvatarServices = "RemoteAvatarServicesConnector" + NeighbourServices = "RemoteNeighbourServicesConnector" + AuthenticationServices = "RemoteAuthenticationServicesConnector" + AuthorizationServices = "LocalAuthorizationServicesConnector" + PresenceServices = "RemotePresenceServicesConnector" + UserAccountServices = "RemoteUserAccountServicesConnector" + AgentPreferencesServices= "RemoteAgentPreferencesServicesConnector" + GridUserServices = "RemoteGridUserServicesConnector" + SimulationServices = "RemoteSimulationConnectorModule" + EntityTransferModule = "HGEntityTransferModule" + InventoryAccessModule = "HGInventoryAccessModule" LandServices = "RemoteLandServicesConnector" - FriendsModule = "HGFriendsModule" - MapImageService = "MapImageServiceModule" - UserManagementModule = "HGUserManagementModule" + FriendsModule = "HGFriendsModule" + MapImageService = "MapImageServiceModule" + UserManagementModule = "HGUserManagementModule" + SearchModule = "BasicSearchModule" - LandServiceInConnector = true - NeighbourServiceInConnector = true - SimulationServiceInConnector = true - LibraryModule = true + LandServiceInConnector = true + NeighbourServiceInConnector = true + SimulationServiceInConnector = true + LibraryModule = true + +[SimulationService] + ; This is the protocol version which the simulator advertises to the source destination when acting as a target destination for a teleport + ; It is used to control the teleport handoff process. + ; Valid values are + ; "SIMULATION/0.3" + ; - This is the default, and it supports teleports to variable-sized regions + ; - Older versions can teleport to this one, but only if the destination region + ; is 256x256 + ; "SIMULATION/0.2" + ; - A source simulator which only implements "SIMULATION/0.1" can still teleport with that protocol + ; - this protocol is more efficient than "SIMULATION/0.1" + ; "SIMULATION/0.1" + ; - this is an older teleport protocol used in OpenSimulator 0.7.5 and before. + ConnectorProtocolVersion = "SIMULATION/0.3" [Profile] Module = "BasicProfileModule" [SimulationDataStore] - LocalServiceModule = "OpenSim.Services.Connectors.dll:SimulationDataService" + LocalServiceModule = "OpenSim.Services.SimulationService.dll:SimulationDataService" [EstateDataStore] - LocalServiceModule = "OpenSim.Services.Connectors.dll:EstateDataService" + LocalServiceModule = "OpenSim.Services.EstateService.dll:EstateDataService" [AssetService] LocalGridAssetService = "OpenSim.Services.Connectors.dll:AssetServicesConnector" @@ -61,8 +78,9 @@ ; Needed to display non-default map tile images for linked regions AssetService = "OpenSim.Services.Connectors.dll:AssetServicesConnector" - HypergridLinker = true + HypergridLinker = true AllowHypergridMapSearch = true + SuppressConsoleCommands = true [LibraryService] LocalServiceModule = "OpenSim.Services.InventoryService.dll:LibraryService" @@ -74,17 +92,13 @@ [Messaging] MessageTransferModule = HGMessageTransferModule - ; HG lures break normal in grid lures, so don't use them. LureModule = HGLureModule - LureModule = LureModule [HGInstantMessageService] - LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGInstantMessageService" - GridService = "OpenSim.Services.Connectors.dll:GridServicesConnector" - PresenceService = "OpenSim.Services.Connectors.dll:PresenceServicesConnector" - UserAgentService = "OpenSim.Services.Connectors.dll:UserAgentServiceConnector" + LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGInstantMessageService" + GridService = "OpenSim.Services.Connectors.dll:GridServicesConnector" + PresenceService = "OpenSim.Services.Connectors.dll:PresenceServicesConnector" + UserAgentService = "OpenSim.Services.Connectors.dll:UserAgentServiceConnector" [MapImageService] - LocalServiceModule = "OpenSim.Services.Connectors.dll:MapImageServicesConnector" - ; in minutes - RefreshTime = 60 + LocalServiceModule = "OpenSim.Services.Connectors.dll:MapImageServicesConnector" diff --git a/bin/config-include/HyperSimianGrid.ini b/bin/config-include/HyperSimianGrid.ini index 99a589c..efad577 100644 --- a/bin/config-include/HyperSimianGrid.ini +++ b/bin/config-include/HyperSimianGrid.ini @@ -55,7 +55,7 @@ StorageProvider = "OpenSim.Data.Null.dll:NullRegionData" NetworkConnector = "OpenSim.Services.Connectors.dll:SimianGridServiceConnector" - HypergridLinker = true + HypergridLinker = true AllowHypergridMapSearch = true [LibraryService] @@ -91,6 +91,7 @@ ; accessible from other grids ; ProfileServerURI = "http://mygridserver.com:8002/user" - ;; If you want to protect your assets from being copied by foreign visitors - ;; uncomment the next line. You may want to do this on sims that have licensed content. - ; OutboundPermission = False + + ;; If you want to protect your assets from being copied by foreign visitors + ;; uncomment the next line. You may want to do this on sims that have licensed content. + ; OutboundPermission = False diff --git a/bin/config-include/SimianGrid.ini b/bin/config-include/SimianGrid.ini index 311a55b..5749656 100644 --- a/bin/config-include/SimianGrid.ini +++ b/bin/config-include/SimianGrid.ini @@ -42,10 +42,10 @@ AssetCaching = "FlotsamAssetCache" [SimulationDataStore] - LocalServiceModule = "OpenSim.Services.Connectors.dll:SimulationDataService" + LocalServiceModule = "OpenSim.Services.SimulationService.dll:SimulationDataService" [EstateDataStore] - LocalServiceModule = "OpenSim.Services.Connectors.dll:EstateDataService" + LocalServiceModule = "OpenSim.Services.EstateService.dll:EstateDataService" [Friends] Connector = "OpenSim.Services.Connectors.dll:SimianFriendsServiceConnector" @@ -53,7 +53,7 @@ [GridService] LocalServiceModule = "OpenSim.Services.GridService.dll:GridService" StorageProvider = "OpenSim.Data.Null.dll:NullRegionData" - NetworkConnector = "OpenSim.Services.Connectors.dll:SimianGridServiceConnector" + NetworkConnector = "OpenSim.Services.Connectors.dll:SimianGridServiceConnector" [LibraryService] LocalServiceModule = "OpenSim.Services.InventoryService.dll:LibraryService" @@ -63,7 +63,7 @@ [AssetService] DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll" AssetLoaderArgs = "assets/AssetSets.xml" - + [Groups] Enabled = true Module = GroupsModule diff --git a/bin/config-include/Standalone.ini b/bin/config-include/Standalone.ini index ba72fe7..78ada2b 100644 --- a/bin/config-include/Standalone.ini +++ b/bin/config-include/Standalone.ini @@ -9,16 +9,19 @@ InventoryServices = "LocalInventoryServicesConnector" NeighbourServices = "LocalNeighbourServicesConnector" AuthenticationServices = "LocalAuthenticationServicesConnector" - AuthorizationServices = "LocalAuthorizationServicesConnector" + AuthorizationServices = "LocalAuthorizationServicesConnector" GridServices = "LocalGridServicesConnector" PresenceServices = "LocalPresenceServicesConnector" + UserProfilesServices = "LocalUserProfilesServicesConnector" UserAccountServices = "LocalUserAccountServicesConnector" + AgentPreferencesServices= "LocalAgentPreferencesServicesConnector" GridUserServices = "LocalGridUserServicesConnector" SimulationServices = "LocalSimulationConnectorModule" AvatarServices = "LocalAvatarServicesConnector" EntityTransferModule = "BasicEntityTransferModule" InventoryAccessModule = "BasicInventoryAccessModule" - MapImageService = "MapImageServiceModule" + MapImageService = "MapImageServiceModule" + SearchModule = "BasicSearchModule" LibraryModule = true LLLoginServiceInConnector = true @@ -26,10 +29,10 @@ MapImageServiceInConnector = true [SimulationDataStore] - LocalServiceModule = "OpenSim.Services.Connectors.dll:SimulationDataService" + LocalServiceModule = "OpenSim.Services.SimulationService.dll:SimulationDataService" [EstateDataStore] - LocalServiceModule = "OpenSim.Services.Connectors.dll:EstateDataService" + LocalServiceModule = "OpenSim.Services.EstateService.dll:EstateDataService" [AssetService] LocalServiceModule = "OpenSim.Services.AssetService.dll:AssetService" @@ -79,6 +82,9 @@ [Friends] Connector = "OpenSim.Services.FriendsService.dll" +[AgentPreferencesService] + LocalServiceModule = "OpenSim.Services.UserAccountService.dll:AgentPreferencesService" + [LoginService] LocalServiceModule = "OpenSim.Services.LLLoginService.dll:LLLoginService" UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService" @@ -105,9 +111,7 @@ DSTZone = "America/Los_Angeles;Pacific Standard Time" [MapImageService] - LocalServiceModule = "OpenSim.Services.MapImageService.dll:MapImageService" - ; in minutes - RefreshTime = 60 + LocalServiceModule = "OpenSim.Services.MapImageService.dll:MapImageService" ;; This should always be the very last thing on this file [Includes] diff --git a/bin/config-include/StandaloneCommon.ini.example b/bin/config-include/StandaloneCommon.ini.example index f28de43..d0b152c 100644 --- a/bin/config-include/StandaloneCommon.ini.example +++ b/bin/config-include/StandaloneCommon.ini.example @@ -27,6 +27,32 @@ ;StorageProvider = "OpenSim.Data.MSSQL.dll" ;ConnectionString = "Server=localhost\SQLEXPRESS;Database=opensim;User Id=opensim; password=***;" + ; PGSQL + ; Uncomment these lines if you want to use PGSQL storage + ; Change the connection string to your db details + ;StorageProvider = "OpenSim.Data.PGSQL.dll" + ;ConnectionString = "Server=localhost;Database=opensim;User Id=opensim; password=***;" + +[Hypergrid] + ; Uncomment the variables in this section only if you are in + ; Hypergrid configuration. Otherwise, ignore. + + ;# {HomeURI} {Hypergrid} {The Home URL of this world} {} + ;; If this is a standalone world, this is the address of this instance. + ;; If this is a grided simulator, this is the address of the external robust server that + ;; runs the UserAgentsService. + ;; For example http://myworld.com:9000 or http://myworld.com:8002 + ;; This is a default that can be overwritten in some sections. + ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}" + + ;# {GatekeeperURI} {Hypergrid} {The URL of the gatekeeper of this world} {} + ;; If this is a standalone world, this is the address of this instance. + ;; If this is a grided simulator, this is the address of the external robust server + ;; that runs the Gatekeeper service. + ;; For example http://myworld.com:9000 or http://myworld.com:8002 + ;; This is a default that can be overwritten in some sections. + ; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}" + [Modules] ;; Choose one cache module and the corresponding config file, if it exists. ;; Copy the config .example file into your own .ini file and alter that @@ -47,7 +73,6 @@ DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll" AssetLoaderArgs = "assets/AssetSets.xml" - [GridService] ;; For in-memory region storage (default) StorageProvider = "OpenSim.Data.Null.dll:NullRegionData" @@ -58,14 +83,34 @@ ; MapTileDirectory = "./maptiles" ;; Next, we can specify properties of regions, including default and fallback regions - ;; The syntax is: Region_ = "" + ;; The syntax is: Region_ = "" ;; where can be DefaultRegion, FallbackRegion, NoDirectLogin, Persistent, LockedOut + ;; + ;; DefaultRegion If a local login cannot be placed in the required region (e.g. home region does not exist, avatar is not allowed entry, etc.) + ;; then this region becomes the destination. Only the first online default region will be used. If no DefaultHGRegion + ;; is specified then this will also be used as the region for hypergrid connections that require it (commonly because they have not specified + ;; an explicit region. + ;; + ;; DefaultHGRegion If an avatar connecting via the hypergrid does not specify a region, then they are placed here. Only the first online + ;; region will be used. + ;; + ;; FallbackRegion If the DefaultRegion is not available for a local login, then any FallbackRegions are tried instead. These are tried in the + ;; order specified. This only applies to local logins at this time, not Hypergrid connections. + ;; + ;; NoDirectLogin A hypergrid user cannot directly connect to this region. This does not apply to local logins. + ;; + ;; Persistent When the simulator is shutdown, the region is signalled as offline but left registered on the grid. + ;; ;; For example: Region_Welcome_Area = "DefaultRegion, FallbackRegion" + ;; Allow supporting viewers to export content + ;; Set to false to prevent export + ExportSupported = true + ; === HG ONLY === - ;; change this to the address of your simulator - Gatekeeper="http://127.0.0.1:9000" + ;; If you have this set under [Hypergrid], no need to set it here, leave it commented + ; GatekeeperURI="${Const|BaseURL}:${Const|PublicPort}" [LibraryModule] ; Set this if you want to change the name of the OpenSim Library @@ -73,38 +118,53 @@ [LoginService] WelcomeMessage = "Welcome, Avatar!" - GatekeeperURI = "http://127.0.0.1:9000" + ;; If you have Gatekeeper set under [Hypergrid], no need to set it here, leave it commented + ; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}" - SRV_HomeURI = "http://127.0.0.1:9000" - SRV_InventoryServerURI = "http://127.0.0.1:9000" - SRV_AssetServerURI = "http://127.0.0.1:9000" - SRV_ProfileServerURI = "http://127.0.0.1:9000" - SRV_FriendsServerURI = "http://127.0.0.1:9000" - SRV_IMServerURI = "http://127.0.0.1:9000" + SRV_HomeURI = "${Const|BaseURL}:${Const|PublicPort}" + SRV_InventoryServerURI = "${Const|BaseURL}:${Const|PublicPort}" + SRV_AssetServerURI = "${Const|BaseURL}:${Const|PublicPort}" + SRV_ProfileServerURI = "${Const|BaseURL}:${Const|PublicPort}" + SRV_FriendsServerURI = "${Const|BaseURL}:${Const|PublicPort}" + SRV_IMServerURI = "${Const|BaseURL}:${Const|PublicPort}" ;; For Viewer 2 - MapTileURL = "http://127.0.0.1:9000/" + MapTileURL = "${Const|BaseURL}:${Const|PublicPort}/" + + ; Url to search service + ; SearchURL = "${Const|BaseURL}:${Const|PublicPort}"; + + ; For V3 destination guide + ; DestinationGuide = "${Const|BaseURL}/guide" + + ; The minimum user level required for a user to be able to login. 0 by default + ; If you disable a particular user's account then you can set their login level below this number. + ; You can also change this level from the console though these changes will not be persisted. + ; MinLoginLevel = 0 ;; Ask co-operative viewers to use a different currency name ;Currency = "" - ;; Regular expressions for controlling which client versions are accepted/denied. - ;; An empty string means nothing is checked. - ;; - ;; Example 1: allow only these 3 types of clients (any version of them) - ;; AllowedClients = "Imprudence|Hippo|Second Life" - ;; - ;; Example 2: allow all clients except these - ;; DeniedClients = "Twisted|Crawler|Cryolife|FuckLife|StreetLife|GreenLife|AntiLife|KORE-Phaze|Synlyfe|Purple Second Life|SecondLi |Emerald" - ;; - ;; Note that these are regular expressions, so every character counts. - ;; Also note that this is very weak security and should not be trusted as a reliable means - ;; for keeping bad clients out; modified clients can fake their identifiers. - ;; - ;; - ;AllowedClients = "" - ;DeniedClients = "" - + ;; Set minimum fee to publish classified + ; ClassifiedFee = 0 + + ; Basic Login Service Dos Protection Tweaks + ; ; + ; ; Some Grids/Users use a transparent proxy that makes use of the X-Forwarded-For HTTP Header, If you do, set this to true + ; ; If you set this to true and you don't have a transparent proxy, it may allow attackers to put random things in the X-Forwarded-For header to + ; ; get around this basic DOS protection. + ; DOSAllowXForwardedForHeader = false + ; ; + ; ; The protector adds up requests during this rolling period of time, default 10 seconds + ; DOSRequestTimeFrameMS = 10000 + ; ; + ; ; The amount of requests in the above timeframe from the same endpoint that triggers protection + ; DOSMaxRequestsInTimeFrame = 5 + ; ; + ; ; The amount of time that a specific endpoint is blocked. Default 2 minutes. + ; DOSForgiveClientAfterMS = 120000 + ; ; + ; ; To turn off basic dos protection, set the DOSMaxRequestsInTimeFrame to 0. [FreeswitchService] ;; If FreeSWITCH is not being used then you don't need to set any of these parameters @@ -152,7 +212,7 @@ ; See http://opensimulator.org/wiki/GridInfo ; login uri: for grid this is the login server URI - login = http://127.0.0.1:9000/ + login = ${Const|BaseURL}:${Const|PublicPort}/ ; long grid name: the long name of your grid gridname = "the lost continent of hippo" @@ -161,78 +221,74 @@ gridnick = "hippogrid" ; login page: optional: if it exists it will be used to tell the client to use - ; this as splash page - ; currently unused - ;welcome = http://127.0.0.1/welcome + ; this as splash page. May also be served from an external web server, e.g. for + ; information on a standalone + ;welcome = ${Const|BaseURL}/welcome - ; helper uri: optional: if it exists if will be used to tell the client to use + ; helper uri: optional: if it exists it will be used to tell the client to use ; this for all economy related things - ; currently unused - ;economy = http://127.0.0.1:9000/ + ;economy = ${Const|BaseURL}/economy ; web page of grid: optional: page providing further information about your grid - ; currently unused - ;about = http://127.0.0.1/about/ + ;about = ${Const|BaseURL}/about ; account creation: optional: page providing further information about obtaining ; a user account on your grid - ; currently unused - ;register = http://127.0.0.1/register + ;register = ${Const|BaseURL}/register ; help: optional: page providing further assistance for users of your grid - ; currently unused - ;help = http://127.0.0.1/help + ;help = ${Const|BaseURL}/help ; password help: optional: page providing password assistance for users of your grid - ; currently unused - ;password = http://127.0.0.1/password + ;password = ${Const|BaseURL}/password ; HG address of the gatekeeper, if you have one ; this is the entry point for all the regions of the world - ; gatekeeper = http://127.0.0.1:9000/ + ; gatekeeper = ${Const|BaseURL}:${Const|PublicPort}/ ; HG user domain, if you have one ; this is the entry point for all user-related HG services - ; uas = http://127.0.0.1:9000/ + ; uas = ${Const|BaseURL}:${Const|PublicPort}/ [MapImageService] - ; Set this if you want to change the default - ; TilesStoragePath = "maptiles" + ; Set this if you want to change the default + ; TilesStoragePath = "maptiles" [AuthorizationService] - ; If you have regions with access restrictions - ; specify them here using the convention - ; Region_ = - ; Valid flags are: - ; DisallowForeigners -- HG visitors not allowed - ; DisallowResidents -- only Admins and Managers allowed - ; Example: - ; Region_Test_1 = "DisallowForeigners" + ; If you have regions with access restrictions + ; specify them here using the convention + ; Region_ = + ; Valid flags are: + ; DisallowForeigners -- HG visitors not allowed + ; DisallowResidents -- only Admins and Managers allowed + ; Example: + ; Region_Test_1 = "DisallowForeigners" ;; ;; HG configurations ;; [GatekeeperService] - ExternalName = "http://127.0.0.1:9000" + ;; If you have GatekeeperURI set under [Hypergrid], no need to set it here, leave it commented + ; ExternalName = "${Const|BaseURL}:${Const|PublicPort}" ; Does this grid allow incoming links to any region in it? ; If false, HG TPs happen only to the Default regions specified in [GridService] section AllowTeleportsToAnyRegion = true - ;; Regular expressions for controlling which client versions are accepted/denied. - ;; An empty string means nothing is checked. - ;; - ;; Example 1: allow only these 3 types of clients (any version of them) - ;; AllowedClients = "Imprudence|Hippo|Second Life" - ;; - ;; Example 2: allow all clients except these - ;; DeniedClients = "Twisted|Crawler|Cryolife|FuckLife|StreetLife|GreenLife|AntiLife|KORE-Phaze|Synlyfe|Purple Second Life|SecondLi |Emerald" - ;; - ;; Note that these are regular expressions, so every character counts. - ;; Also note that this is very weak security and should not be trusted as a reliable means - ;; for keeping bad clients out; modified clients can fake their identifiers. - ;; - ;; + ;; Regular expressions for controlling which client versions are accepted/denied. + ;; An empty string means nothing is checked. + ;; + ;; Example 1: allow only these 3 types of clients (any version of them) + ;; AllowedClients = "Imprudence|Hippo|Second Life" + ;; + ;; Example 2: allow all clients except these + ;; DeniedClients = "Twisted|Crawler|Cryolife|FuckLife|StreetLife|GreenLife|AntiLife|KORE-Phaze|Synlyfe|Purple Second Life|SecondLi |Emerald" + ;; + ;; Note that these are regular expressions, so every character counts. + ;; Also note that this is very weak security and should not be trusted as a reliable means + ;; for keeping bad clients out; modified clients can fake their identifiers. + ;; + ;; ;AllowedClients = "" ;DeniedClients = "" @@ -255,7 +311,7 @@ ;; Are local users allowed to visit other grids? ;; What user level? Use variables of this forrm: ;; ForeignTripsAllowed_Level_ = true | false - ;; (the default is true) + ;; (the default is true) ;; For example: ; ForeignTripsAllowed_Level_0 = false ; ForeignTripsAllowed_Level_200 = true ; true is default, no need to say it @@ -263,42 +319,50 @@ ;; If ForeignTripsAllowed is false, make exceptions using DisallowExcept ;; Leave blank or commented for no exceptions. ; DisallowExcept_Level_0 = "http://myothergrid.com:8002, http://boss.com:8002" - ;; + ;; ;; If ForeignTripsAllowed is true, make exceptions using AllowExcept. ;; Leave blank or commented for no exceptions. ; AllowExcept_Level_200 = "http://griefer.com:8002, http://enemy.com:8002" + ;; This variable controls what is exposed to profiles of local users + ;; as seen from outside of this grid. Leave it uncommented for exposing + ;; UserTitle, UserFlags and the creation date. Uncomment and change to False + ;; to block this info from being exposed. + ; ShowUserDetailsInHGProfile = True + [HGInventoryService] - HomeURI = "http://127.0.0.1:9000" + ;; If you have this set under [Hypergrid], no need to set it here, leave it commented + ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}" [HGAssetService] - HomeURI = "http://127.0.0.1:9000" + ;; If you have this set under [Hypergrid], no need to set it here, leave it commented + ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}" ;; The asset types that this grid can export to / import from other grids. - ;; Comma separated. - ;; Valid values are all the asset types in OpenMetaverse.AssetType, namely: - ;; Unknown, Texture, Sound, CallingCard, Landmark, Clothing, Object, Notecard, LSLText, - ;; LSLBytecode, TextureTGA, Bodypart, SoundWAV, ImageTGA, ImageJPEG, Animation, Gesture, Mesh - ;; - ;; Leave blank or commented if you don't want to apply any restrictions. - ;; A more strict, but still reasonable, policy may be to disallow the exchange - ;; of scripts, like so: + ;; Comma separated. + ;; Valid values are all the asset types in OpenMetaverse.AssetType, namely: + ;; Unknown, Texture, Sound, CallingCard, Landmark, Clothing, Object, Notecard, LSLText, + ;; LSLBytecode, TextureTGA, Bodypart, SoundWAV, ImageTGA, ImageJPEG, Animation, Gesture, Mesh + ;; + ;; Leave blank or commented if you don't want to apply any restrictions. + ;; A more strict, but still reasonable, policy may be to disallow the exchange + ;; of scripts, like so: ; DisallowExport ="LSLText" ; DisallowImport ="LSLBytecode" - [HGInventoryAccessModule] - HomeURI = "http://127.0.0.1:9000" - Gatekeeper = "http://127.0.0.1:9000" + ;; If you have these set under [Hypergrid], no need to set it here, leave it commented + ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}" + ; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}" ;; If you want to protect your assets from being copied by foreign visitors ;; uncomment the next line. You may want to do this on sims that have licensed content. - ;; true = allow exports, false = disallow exports. True by default. + ;; true = allow exports, false = disallow exports. True by default. ; OutboundPermission = True - ;; Send visual reminder to local users that their inventories are unavailable while they are traveling - ;; and available when they return. True by default. - ;RestrictInventoryAccessAbroad = True + ;; Send visual reminder to local users that their inventories are unavailable while they are traveling + ;; and available when they return. True by default. + ;RestrictInventoryAccessAbroad = True [HGFriendsModule] ; User level required to be able to send friendship invitations to foreign users @@ -306,18 +370,29 @@ [Messaging] ; === HG ONLY === - ;; change this to the address of your simulator - Gatekeeper = "http://127.0.0.1:9000" - + ;; If you have this set under [Hypergrid], no need to set it here, leave it commented + ; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}" [EntityTransfer] - ;; User level from which local users are allowed to HG teleport. Default 0 (all users) - ;LevelHGTeleport = 0 + ;; User level from which local users are allowed to HG teleport. Default 0 (all users) + ;LevelHGTeleport = 0 - ;; Are local users restricted from taking their appearance abroad? - ;; Default is no restrictions + ;; Are local users restricted from taking their appearance abroad? + ;; Default is no restrictions ;RestrictAppearanceAbroad = false - ;; If appearance is restricted, which accounts' appearances are allowed to be exported? - ;; Comma-separated list of account names + ;; If appearance is restricted, which accounts' appearances are allowed to be exported? + ;; Comma-separated list of account names AccountForAppearance = "Test User, Astronaut Smith" + +[UserProfilesService] + ;; To use, set Enabled to true then configure for your site... + Enabled = false + LocalServiceModule = "OpenSim.Services.UserProfilesService.dll:UserProfilesService" + + ;; Configure this for separate databse + ; ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;" + ; Realm = UserProfiles + + UserAccountService = OpenSim.Services.UserAccountService.dll:UserAccountService + AuthenticationServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" diff --git a/bin/config-include/StandaloneHypergrid.ini b/bin/config-include/StandaloneHypergrid.ini index 195e780..eaacfff 100644 --- a/bin/config-include/StandaloneHypergrid.ini +++ b/bin/config-include/StandaloneHypergrid.ini @@ -5,47 +5,49 @@ ;; [Startup] - WorldMapModule = "HGWorldMap" + WorldMapModule = "HGWorldMap" [Modules] - AssetServices = "HGAssetBroker" - InventoryServices = "HGInventoryBroker" - NeighbourServices = "LocalNeighbourServicesConnector" - AuthenticationServices = "LocalAuthenticationServicesConnector" - AuthorizationServices = "LocalAuthorizationServicesConnector" - GridServices = "LocalGridServicesConnector" - PresenceServices = "LocalPresenceServicesConnector" - UserAccountServices = "LocalUserAccountServicesConnector" + AssetServices = "HGAssetBroker" + InventoryServices = "HGInventoryBroker" + NeighbourServices = "LocalNeighbourServicesConnector" + AuthenticationServices = "LocalAuthenticationServicesConnector" + AuthorizationServices = "LocalAuthorizationServicesConnector" + GridServices = "LocalGridServicesConnector" + PresenceServices = "LocalPresenceServicesConnector" + UserAccountServices = "LocalUserAccountServicesConnector" + AgentPreferencesServices= "LocalAgentPreferencesServicesConnector" GridUserServices = "LocalGridUserServicesConnector" - SimulationServices = "RemoteSimulationConnectorModule" - AvatarServices = "LocalAvatarServicesConnector" - MapImageService = "MapImageServiceModule" - EntityTransferModule = "HGEntityTransferModule" - InventoryAccessModule = "HGInventoryAccessModule" - FriendsModule = "HGFriendsModule" - UserManagementModule = "HGUserManagementModule" + SimulationServices = "RemoteSimulationConnectorModule" + AvatarServices = "LocalAvatarServicesConnector" + UserProfilesServices = "LocalUserProfilesServicesConnector" + MapImageService = "MapImageServiceModule" + EntityTransferModule = "HGEntityTransferModule" + InventoryAccessModule = "HGInventoryAccessModule" + FriendsModule = "HGFriendsModule" + UserManagementModule = "HGUserManagementModule" + SearchModule = "BasicSearchModule" - InventoryServiceInConnector = true - AssetServiceInConnector = true - HypergridServiceInConnector = true - NeighbourServiceInConnector = true - LibraryModule = true - LLLoginServiceInConnector = true - GridInfoServiceInConnector = true - AuthenticationServiceInConnector = true - SimulationServiceInConnector = true - MapImageServiceInConnector = true - + InventoryServiceInConnector = true + AssetServiceInConnector = true + HypergridServiceInConnector = true + NeighbourServiceInConnector = true + LibraryModule = true + LLLoginServiceInConnector = true + GridInfoServiceInConnector = true + AuthenticationServiceInConnector = true + SimulationServiceInConnector = true + MapImageServiceInConnector = true [Messaging] MessageTransferModule = HGMessageTransferModule LureModule = HGLureModule [SimulationDataStore] - LocalServiceModule = "OpenSim.Services.Connectors.dll:SimulationDataService" + LocalServiceModule = "OpenSim.Services.SimulationService.dll:SimulationDataService" [EstateDataStore] - LocalServiceModule = "OpenSim.Services.Connectors.dll:EstateDataService" + LocalServiceModule = "OpenSim.Services.EstateService.dll:EstateDataService" [AssetService] LocalServiceModule = "OpenSim.Services.AssetService.dll:AssetService" @@ -55,8 +57,6 @@ HypergridAssetService = "OpenSim.Services.Connectors.dll:HGAssetServiceConnector" [InventoryService] - LocalServiceModule = "OpenSim.Services.InventoryService.dll:XInventoryService" - ; For HGInventoryBroker LocalGridInventoryService = "OpenSim.Services.InventoryService.dll:XInventoryService" @@ -64,9 +64,9 @@ LocalServiceModule = "OpenSim.Services.AvatarService.dll:AvatarService" [LibraryService] - LocalServiceModule = "OpenSim.Services.InventoryService.dll:LibraryService" - LibraryName = "OpenSim Library" - DefaultLibrary = "./inventory/Libraries.xml" + LocalServiceModule = "OpenSim.Services.InventoryService.dll:LibraryService" + LibraryName = "OpenSim Library" + DefaultLibrary = "./inventory/Libraries.xml" [AuthenticationService] LocalServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" @@ -76,13 +76,13 @@ LocalServiceModule = "OpenSim.Services.GridService.dll:GridService" Realm = "regions" StorageProvider = "OpenSim.Data.Null.dll" - + ; Needed to display non-default map tile images for remote regions AssetService = "OpenSim.Services.AssetService.dll:AssetService" HypergridLinker = true AllowHypergridMapSearch = true - + [PresenceService] LocalServiceModule = "OpenSim.Services.PresenceService.dll:PresenceService" StorageProvider = "OpenSim.Data.Null.dll" @@ -109,22 +109,27 @@ [Friends] Connector = "OpenSim.Services.FriendsService.dll" +[AgentPreferencesService] + LocalServiceModule = "OpenSim.Services.UserAccountService.dll:AgentPreferencesService" + [LoginService] - LocalServiceModule = "OpenSim.Services.LLLoginService.dll:LLLoginService" - UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService" - GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService" - UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService" - AuthenticationService = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" - InventoryService = "OpenSim.Services.InventoryService.dll:XInventoryService" - PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" - GridService = "OpenSim.Services.GridService.dll:GridService" - AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService" - FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService" + LocalServiceModule = "OpenSim.Services.LLLoginService.dll:LLLoginService" + UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService" + GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService" + UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService" + AuthenticationService = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" + InventoryService = "OpenSim.Services.InventoryService.dll:XInventoryService" + PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" + GridService = "OpenSim.Services.GridService.dll:GridService" + AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService" + FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService" + ; This inventory service will be used to initialize the user's inventory + HGInventoryServicePlugin = "OpenSim.Services.HypergridService.dll:HGSuitcaseInventoryService" + HGInventoryServiceConstructorArg = "HGInventoryService" + [MapImageService] - LocalServiceModule = "OpenSim.Services.MapImageService.dll:MapImageService" - ; in minutes - RefreshTime = 60 + LocalServiceModule = "OpenSim.Services.MapImageService.dll:MapImageService" [GatekeeperService] LocalServiceModule = "OpenSim.Services.HypergridService.dll:GatekeeperService" @@ -138,25 +143,27 @@ SimulationService ="OpenSim.Services.Connectors.dll:SimulationServiceConnector" [UserAgentService] - LocalServiceModule = "OpenSim.Services.HypergridService.dll:UserAgentService" - ;; for the service + LocalServiceModule = "OpenSim.Services.HypergridService.dll:UserAgentService" + ;; for the service GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService" GridService = "OpenSim.Services.GridService.dll:GridService" - GatekeeperService = "OpenSim.Services.HypergridService.dll:GatekeeperService" - PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" - FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService" - UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService" + GatekeeperService = "OpenSim.Services.HypergridService.dll:GatekeeperService" + PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" + FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService" + UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService" + + ;; This switch creates the minimum set of body parts and avatar entries for a viewer 2 to show a default "Ruth" avatar rather than a cloud. + CreateDefaultAvatarEntries = true - ;; The interface that local users get when they are in other grids ;; This greatly restricts the inventory operations while in other grids [HGInventoryService] ; For the InventoryServiceInConnector LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGSuitcaseInventoryService" - ;; alternatives: - ;; HG1.5, more permissive, not recommended, but still supported + ;; alternatives: + ;; HG1.5, more permissive, not recommended, but still supported ;LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGInventoryService" - ;; HG1.0, totally permissive, not recommended, but OK for grids with 100% trust + ;; HG1.0, totally permissive, not recommended, but OK for grids with 100% trust ;LocalServiceModule = "OpenSim.Services.InventoryService.dll:XInventoryService" UserAccountsService = "OpenSim.Services.UserAccountService.dll:UserAccountService" @@ -169,20 +176,19 @@ UserAccountsService = "OpenSim.Services.UserAccountService.dll:UserAccountService" [HGFriendsService] - LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGFriendsService" - UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService" - FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService" - UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService" - GridService = "OpenSim.Services.GridService.dll:GridService" - PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" + LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGFriendsService" + UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService" + FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService" + UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService" + GridService = "OpenSim.Services.GridService.dll:GridService" + PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" [HGInstantMessageService] - LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGInstantMessageService" - GridService = "OpenSim.Services.GridService.dll:GridService" - PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" - UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService" - InGatekeeper = True - + LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGInstantMessageService" + GridService = "OpenSim.Services.GridService.dll:GridService" + PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" + UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService" + InGatekeeper = True ;; This should always be the very last thing on this file [Includes] diff --git a/bin/config-include/osslEnable.ini b/bin/config-include/osslEnable.ini new file mode 100644 index 0000000..0a03d4c --- /dev/null +++ b/bin/config-include/osslEnable.ini @@ -0,0 +1,230 @@ +; Enable OSSL functions. +; Including this file in a region's set of INI files, causes the OpenSimulator +; specific functions to be enabled. +; See http://opensimulator.org/wiki/OSSL for a description of OSSL functions and +; refer to http://opensimulator.org/wiki/OSSL_Implemented for a list of functions. + +; The below file lists all the functions and specifies who has permission to +; execute the function. Some of the functions are for maintainance or can be +; mis-used so the permission to execute a function can be limited. Ability to +; execute a function is based on the owner of the prim holding the script. + +[XEngine] + ; Allow the use of os* functions (some are dangerous) + AllowOSFunctions = true + + ; Allow the user of mod* functions. This allows a script to pass messages + ; to a region module via the modSendCommand() function and is used by some + ; modules to extend the scripting language. + AllowMODFunctions = true + + ; Allow the use of LightShare functions. + ; The setting enable_windlight = true must also be enabled in the [LightShare] section. + AllowLightShareFunctions = true + + ; Threat level to allow. One of None, VeryLow, Low, Moderate, High, VeryHigh, Severe. + ; See http://opensimulator.org/wiki/Threat_level for more information on these levels. + ; This is the default level and can be overridden with the Allow_ specifications. + ; Blanket enabling the ossl functions is dangerous and we do not recommend setting higher + ; than 'Low' unless you have a high level of trust in all the users that can run scripts + ; in your simulator. It is safer to explicitly allow certain types of user to run + ; higher threat level OSSL functions, as detailed later on. + OSFunctionThreatLevel = VeryLow + + ; Each of the OSSL functions can be enabled or disabled individually. + ; To disable, set the value to 'false'. + ; To enable for everyone, set the value to 'true'. + ; To enable for individuals or groups, set it to a comma separated list. This checks + ; against the owner of the object containing the script. + ; The comma separated entries in the list may be one of: + ; "ESTATE_MANAGER" -- enable for estate manager + ; "ESTATE_OWNER" -- enable for estate owner + ; "PARCEL_OWNER" -- enable for parcel owner + ; "PARCEL_GROUP_MEMBER" -- enable for any member of the parcel group + ; uuid -- enable for specified ID (may be avatar or group ID) + + ; The OSSL function name is prepended with "Allow_" and it checks against + ; the owners of the containing prim. There can also be entries beginning with + ; 'Creators_". The 'Creators_" parameters can only be a list of UUIDs and it is + ; checked against the creator of the script itself. + + ; Allowing ossl functions for anyone owning a parcel can be dangerous especially if + ; a region is selling or otherwise giving away parcel ownership. By default, parcel + ; ownership or group membership does not enable OSSL functions. Uncomment the + ; appropriate line below to allow parcel ownership and groups to do restricted + ; OSSL functions. It might be better to check the list below and edit the ones + ; to enable individually. + osslParcelO = "" + osslParcelOG = "" + ; osslParcelO = "PARCEL_OWNER," + ; osslParcelOG = "PARCEL_GROUP_MEMBER,PARCEL_OWNER," + + ; There are a block of functions for creating and controlling NPCs. + ; These can be mis-used so limit use to those you can trust. + osslNPC = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + + ; ThreatLevel None + Allow_osDrawEllipse = true + Allow_osDrawFilledPolygon = true + Allow_osDrawFilledRectangle = true + Allow_osDrawImage = true + Allow_osDrawLine = true + Allow_osDrawPolygon = true + Allow_osDrawRectangle = true + Allow_osDrawText = true + Allow_osGetAgents = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetAvatarList = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetCurrentSunHour = true + Allow_osGetGender = true + Allow_osGetHealth = true + Allow_osGetInventoryDesc = true + Allow_osGetMapTexture = true + Allow_osGetRegionSize = true + Allow_osGetRezzingObject = true + Allow_osGetSunParam = true + Allow_osGetTerrainHeight = true + Allow_osIsNpc = true + Allow_osIsUUID = true + Allow_osList2Double = true + Allow_osMax = true + Allow_osMin = true + Allow_osMovePen = true + Allow_osNpcGetOwner = ${XEngine|osslNPC} + Allow_osParseJSON = true + Allow_osParseJSONNew = true + Allow_osSetFontName = true + Allow_osSetFontSize = true + Allow_osSetPenCap = true + Allow_osSetPenColor = true + Allow_osSetPenSize = true + Allow_osSetSunParam = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osTeleportOwner = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osWindActiveModelPluginName = true + Allow_osCheckODE = true ; Here for completeness. This function cannot be turned off + + ; ThreatLevel Nuisance + Allow_osSetEstateSunSettings = ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetRegionSunSettings = ESTATE_MANAGER,ESTATE_OWNER + + ; ThreatLevel VeryLow + Allow_osEjectFromGroup = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osForceBreakAllLinks = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osForceBreakLink = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetDrawStringSize = true + Allow_osGetWindParam = true + Allow_osInviteToGroup = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osReplaceString = true + Allow_osSetDynamicTextureData = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetDynamicTextureDataBlend = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetDynamicTextureDataBlendFace = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetDynamicTextureURL = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetDynamicTextureURLBlend = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetDynamicTextureURLBlendFace = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetParcelMediaURL = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetParcelSIPAddress = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetPrimFloatOnWater = true + Allow_osSetWindParam = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osTerrainFlush = ESTATE_MANAGER,ESTATE_OWNER + Allow_osUnixTimeToTimestamp = true + + ; ThreatLevel Low + Allow_osAvatarName2Key = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osFormatString = true + Allow_osKey2Name = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osListenRegex = true + Allow_osLoadedCreationDate = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osLoadedCreationID = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osLoadedCreationTime = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osMessageObject = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osRegexIsMatch = true + Allow_osGetAvatarHomeURI = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + + ; ThreatLevel Moderate + Allow_osDropAttachment = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osDropAttachmentAt = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetGridCustom = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetGridGatekeeperURI = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetGridHomeURI = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetGridLoginURI = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetGridName = true + Allow_osGetGridNick = true + Allow_osGetNumberOfAttachments = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetRegionStats = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetSimulatorMemory = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osMessageAttachments = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetSpeed = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + + ; ThreatLevel High + Allow_osCauseDamage = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osCauseHealing = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osForceAttachToAvatar = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osForceAttachToAvatarFromInventory = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osForceCreateLink = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osForceDropAttachment = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osForceDropAttachmentAt = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetAgentIP = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetLinkPrimitiveParams = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetPhysicsEngineType = true + Allow_osGetPrimitiveParams = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetRegionMapTexture = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetScriptEngineName = true + Allow_osGetSimulatorVersion = true + Allow_osMakeNotecard = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osMatchString = true + Allow_osNpcCreate = ${XEngine|osslNPC} + Allow_osNpcGetPos = ${XEngine|osslNPC} + Allow_osNpcGetRot = ${XEngine|osslNPC} + Allow_osNpcLoadAppearance = ${XEngine|osslNPC} + Allow_osNpcMoveTo = ${XEngine|osslNPC} + Allow_osNpcMoveToTarget = ${XEngine|osslNPC} + Allow_osNpcPlayAnimation = ${XEngine|osslNPC} + Allow_osNpcRemove = ${XEngine|osslNPC} + Allow_osNpcSaveAppearance = ${XEngine|osslNPC} + Allow_osNpcSay = ${XEngine|osslNPC} + Allow_osNpcSetRot = ${XEngine|osslNPC} + Allow_osNpcShout = ${XEngine|osslNPC} + Allow_osNpcSit = ${XEngine|osslNPC} + Allow_osNpcStand = ${XEngine|osslNPC} + Allow_osNpcStopAnimation = ${XEngine|osslNPC} + Allow_osNpcStopMoveToTarget = ${XEngine|osslNPC} + Allow_osNpcTouch = ${XEngine|osslNPC} + Allow_osNpcWhisper = ${XEngine|osslNPC} + Allow_osOwnerSaveAppearance = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osParcelJoin = ESTATE_MANAGER,ESTATE_OWNER + Allow_osParcelSubdivide = ESTATE_MANAGER,ESTATE_OWNER + Allow_osRegionRestart = ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetContentType = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetPrimitiveParams = false + Allow_osSetProjectionParams = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetRegionWaterHeight = ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetStateEvents = false ; deprecated + Allow_osSetTerrainHeight = ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetTerrainTexture = ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetTerrainTextureHeight = ESTATE_MANAGER,ESTATE_OWNER + + ; ThreatLevel VeryHigh + Allow_osAgentSaveAppearance = ESTATE_MANAGER,ESTATE_OWNER + ; Warning: The next function allows scripts to force animations on avatars without the user giving permission. + ; Enabling this can allow forced animations which can trigger traumatic episodes in vulnerable populations. + ; Similar things can be said for several of the 'force' functions. Enable with care and control. + ; Some of these were added as early functionality for NPCs. This has been replaced with the NPC functions. + Allow_osAvatarPlayAnimation = false + Allow_osAvatarStopAnimation = false + Allow_osForceDetachFromAvatar = false + Allow_osForceOtherSit = false + ; The notecard functions can cause a lot of load on the region if over used + Allow_osGetNotecard = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetNotecardLine = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetNumberOfNotecardLines = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osRegionNotice = ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetRot = false + Allow_osSetParcelDetails = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + + ; ThreatLevel Severe + Allow_osConsoleCommand = false + Allow_osForceAttachToOtherAvatarFromInventory = false + Allow_osGrantScriptPermissions = false + Allow_osKickAvatar = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osRevokeScriptPermissions = false + Allow_osTeleportAgent = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + diff --git a/bin/data/LICENSE-README-IMPORTANT.txt b/bin/data/LICENSE-README-IMPORTANT.txt index 86e401f..dd8671d 100644 --- a/bin/data/LICENSE-README-IMPORTANT.txt +++ b/bin/data/LICENSE-README-IMPORTANT.txt @@ -2,4 +2,4 @@ Not all of the files in this directory are licensed under the BSD license. Some These files are: -- avataranimations.xml (Derivative work of viewerart.ini, Creative Commons Attribution+Share-Alike v2.5 License) \ No newline at end of file +- avataranimations.xml (Derivative work of viewerart.ini, Creative Commons Attribution+Share-Alike v2.5 License) diff --git a/bin/data/sim.css b/bin/data/sim.css new file mode 100644 index 0000000..e584a1a --- /dev/null +++ b/bin/data/sim.css @@ -0,0 +1,85 @@ +body { + font-family: Veranda,Arial,Helvetica,sans-serif; + font-size: 12px; + background: #4A5F6D; + color: #EEEAD6; + padding: 0px; + margin: 0px; +} +.footer { + font-family: Veranda,Arial,Helvetica,sans-serif; + font-size: 10px; +} +td { + font-family: Veranda,Arial,Helvetica,sans-serif; + font-size: 12px; + padding: 4px; + margin: 4px; +} +blockquote { + font-family: Veranda,Arial,Helvetica,sans-serif; + font-style: italic; + font-size: 12px; +} +pre { + padding: 5px; + background-color: #8080B0; + color: #000000; + margin-left: 20px; + font-size: 11px; +} +:link { + color: #ffffff; +} +:visited { + color: #d0d0d0; +} +.SimSectionHeader { + font-size: 120%; +} +div.SimSectionContainer { + padding: 10px 0px 0px 20px; +} +/* SimStats ===================================== */ +#SimSimStats div { + margin-left: 20px; + background: #3A4F5D; +} +#SimSimStats table td { + text-align: right; + padding: 0px 0px 0px 5px; + margin: 0px 0px 0px 0px; +} +/* Region Stats ===================================== */ +#SimRegionStats div { + margin-left: 20px; + background: #3A4F5D; +} +#SimRegionStats table { + border: 1px; + border-style: solid; +} +#SimRegionStats table td { + text-align: right; + padding: 0px 0px 0px 5px; + margin: 0px 0px 0px 0px; +} +/* Session Stats ===================================== */ +#SimSessionStats div { + margin-left: 20px; + background: #3A4F5D; +} +#SimSessionStats table td { + text-align: right; + padding: 0px 0px 0px 5px; + margin: 0px 0px 0px 0px; +} +/* LogFile ===================================== */ +#SimLogFile div { + margin-left: 20px; +} +#SimLogFile table td { + text-align: right; + padding: 0px 0px 0px 5px; + margin: 0px 0px 0px 0px; +} diff --git a/bin/data/sim.html b/bin/data/sim.html new file mode 100644 index 0000000..82d4789 --- /dev/null +++ b/bin/data/sim.html @@ -0,0 +1,291 @@ + + + +Simulator statistics + + + + + + + + + +
+
+ + + + + +
+Region Stats +
+
+
+ + +
+Sessions +
+
+
+ + +
+Log File +
+
+
+ + +
+
+
+ + diff --git a/bin/inventory/AnimationsLibrary/AnimationsLibraryItems.xml b/bin/inventory/AnimationsLibrary/AnimationsLibraryItems.xml index 9cfadf0..255bb3e 100644 --- a/bin/inventory/AnimationsLibrary/AnimationsLibraryItems.xml +++ b/bin/inventory/AnimationsLibrary/AnimationsLibraryItems.xml @@ -1,3 +1,14 @@ + +
diff --git a/bin/inventory/BodyPartsLibrary/BodyPartsLibraryItems.xml b/bin/inventory/BodyPartsLibrary/BodyPartsLibraryItems.xml index d9adf1c..9faafc2 100644 --- a/bin/inventory/BodyPartsLibrary/BodyPartsLibraryItems.xml +++ b/bin/inventory/BodyPartsLibrary/BodyPartsLibraryItems.xml @@ -1,6 +1,18 @@ + + diff --git a/bin/inventory/ClothingLibrary/ClothingLibraryItems.xml b/bin/inventory/ClothingLibrary/ClothingLibraryItems.xml index a12bb8a..b2fc005 100644 --- a/bin/inventory/ClothingLibrary/ClothingLibraryItems.xml +++ b/bin/inventory/ClothingLibrary/ClothingLibraryItems.xml @@ -1,6 +1,18 @@ + + diff --git a/bin/inventory/GesturesLibrary/GesturesLibraryItems.xml b/bin/inventory/GesturesLibrary/GesturesLibraryItems.xml index ca3ce2d..8443eaf 100644 --- a/bin/inventory/GesturesLibrary/GesturesLibraryItems.xml +++ b/bin/inventory/GesturesLibrary/GesturesLibraryItems.xml @@ -1,3 +1,15 @@ + +
diff --git a/bin/inventory/LandmarksLibrary/LandmarksLibraryItems.xml b/bin/inventory/LandmarksLibrary/LandmarksLibraryItems.xml index 44194cd..907c83c 100644 --- a/bin/inventory/LandmarksLibrary/LandmarksLibraryItems.xml +++ b/bin/inventory/LandmarksLibrary/LandmarksLibraryItems.xml @@ -1,3 +1,15 @@ + + + + + +
- + diff --git a/bin/inventory/SoundsLibrary/SoundsLibraryItems.xml b/bin/inventory/SoundsLibrary/SoundsLibraryItems.xml index 44194cd..907c83c 100644 --- a/bin/inventory/SoundsLibrary/SoundsLibraryItems.xml +++ b/bin/inventory/SoundsLibrary/SoundsLibraryItems.xml @@ -1,3 +1,15 @@ + + + + + + diff --git a/bin/pCampBot.ini.example b/bin/pCampBot.ini.example new file mode 100644 index 0000000..2952bb0 --- /dev/null +++ b/bin/pCampBot.ini.example @@ -0,0 +1,19 @@ +; This is the example config file for pCampbot +; To use it, copy this file to pCampbot.ini and change settings if required + +[BotManager] + ; Number of milliseconds to wait between bot logins + LoginDelay = 5000 + +[Bot] + ; Control whether bots should regularly send agent updates + ; Not doing this will reduce CPU requirements for pCampbot but greatly + ; reduce the realism compared to viewers which are constantly sending AgentUpdates UDP packets. + ; Defaults to true. + SendAgentUpdates = true + + ; Control whether bots will requests textures when receiving object information + ; Not doing this will reduce CPU requirements for pCampbot but greatly + ; reduce the realism compared to viewers which requests such texture data if not already cached. + ; Defaults to true. + RequestObjectTextures = true -- cgit v1.1