<?xml version="1.0"?>
<doc>
    <assembly>
        <name>SmartFox2</name>
    </assembly>
    <members>
        <member name="T:Sfs2X.Entities.Match.StringMatch">
            <summary>
            This matcher is used in MatchExpressions to check String conditions
            </summary>
            <seealso cref="T:Sfs2X.Entities.Match.MatchExpression"/>
        </member>
        <member name="T:Sfs2X.Entities.Match.IMatcher">
            <summary>
            
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.Match.IMatcher.Symbol">
            <summary>
            Get the condition symbol of this matcher
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.Match.IMatcher.Type">
            <summary>
            Get the type of this matcher
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Match.StringMatch.EQUALS">
            <summary>
            Checks that Str1 == Str2
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Match.StringMatch.NOT_EQUALS">
            <summary>
            Checks that Str1 != Str2
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Match.StringMatch.CONTAINS">
            <summary>
            Checks that Str1.indexOf(Str2) != -1
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Match.StringMatch.STARTS_WITH">
            <summary>
            Checks that Str1 starts with characters contained in Str2
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Match.StringMatch.ENDS_WITH">
            <summary>
            Checks that Str1 end with characters contained in Str2
            </summary>
        </member>
        <member name="M:Sfs2X.Entities.Match.StringMatch.#ctor(System.String)">
            <exclude/>
        </member>
        <member name="P:Sfs2X.Entities.Match.StringMatch.Symbol">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.Match.StringMatch.Type">
            <inheritdoc />
        </member>
        <member name="T:Sfs2X.Entities.Buddy">
            <summary>
            <see cref="T:Sfs2X.Entities.SFSBuddy"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Entities.Buddy.GetVariable(System.String)">
            <summary>
            Get the BuddyVariable with the provided name.
            </summary>
            <remarks>
            Null is returned if not BuddyVariable exists with that name
            </remarks>
            <param name="varName">
            A <see cref="T:System.String"/>
            </param>
            <returns>
            A <see cref="T:Sfs2X.Entities.Variables.BuddyVariable"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Buddy.ContainsVariable(System.String)">
            <summary>
            Return true if a BuddyVariable with the provided name exists
            </summary>
            <param name="varName">
            A <see cref="T:System.String"/>
            </param>
            <returns>
            A <see cref="T:System.Boolean"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Buddy.GetOfflineVariables">
            <summary>
            Return a list of offline Buddy Variables
            </summary>
            <returns>
            A <see cref="T:System.Collections.Generic.List`1"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Buddy.GetOnlineVariables">
            <summary>
            Return a list of non-persistent Buddy Variables
            </summary>
            <returns>
            A <see cref="T:System.Collections.Generic.List`1"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Buddy.SetVariable(Sfs2X.Entities.Variables.BuddyVariable)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Buddy.SetVariables(System.Collections.Generic.ICollection{Sfs2X.Entities.Variables.BuddyVariable})">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Buddy.RemoveVariable(System.String)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Buddy.ClearVolatileVariables">
            <exclude/>
        </member>
        <member name="P:Sfs2X.Entities.Buddy.Id">
            <summary>
            The id of the Buddy 
            </summary>
            <remarks>
            The id corresponds to the current id of the User in the system
            </remarks>
        </member>
        <member name="P:Sfs2X.Entities.Buddy.Name">
            <summary>
            The name of the Buddy
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.Buddy.IsBlocked">
            <summary>
            Return true if the Buddy is blocked in the current Users' BuddyList
            </summary>
            <seealso cref="T:Sfs2X.Requests.BlockBuddyRequest"/>
        </member>
        <member name="P:Sfs2X.Entities.Buddy.IsOnline">
            <summary>
            Return true if the User is online in the BuddyList system
            </summary>
            <remarks>
            The value is stored in a reserved Buddy Variable
            </remarks>
            
            <seealso cref="T:Sfs2X.Requests.GoOnlineRequest"/>
            <seealso cref="T:Sfs2X.Entities.Variables.ReservedBuddyVariables"/>
        </member>
        <member name="P:Sfs2X.Entities.Buddy.IsTemp">
            <summary>
            Return true if the Buddy is temporary (not persistent)
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.Buddy.State">
            <summary>
            The current Buddy custom state (e.g. "Available", "Busy", etc...)
            </summary>
            <remarks>
            The value is stored in a reserved Buddy Variable
            </remarks>
            <seealso cref="T:Sfs2X.Entities.Variables.ReservedBuddyVariables"/>
        </member>
        <member name="P:Sfs2X.Entities.Buddy.NickName">
            <summary>
            An optional Buddy nickname
            </summary>
            <remarks>
            The value is stored in a reserved Buddy Variable
            </remarks>
            <seealso cref="T:Sfs2X.Entities.Variables.ReservedBuddyVariables"/>
        </member>
        <member name="P:Sfs2X.Entities.Buddy.Variables">
            <summary>
            Obtain a list of BuddyVariables.
            </summary>
            <remarks>
            Please note that by convention any variable whose name starts with the dollar sign ($)
            will be regarded as persistent and stored locally by the server.
            
            These variables are also referred to as "offline variables" because they are available
            to other Users even when the Buddy is offline.
            </remarks>
            <seealso cref="T:Sfs2X.Entities.Variables.SFSBuddyVariable"/>
            <seealso cref="T:Sfs2X.Requests.SetBuddyVariablesRequest"/>
        </member>
        <member name="T:Sfs2X.Core.SFSBuddyEvent">
            <summary>
            This class contains all the Buddy List API related events
            </summary>
        </member>
        <member name="T:Sfs2X.Core.BaseEvent">
            <summary>
            This is the Base class of all Events in the API
            </summary>
            <seealso cref="T:Sfs2X.Core.SFSEvent"/>
            <seealso cref="T:Sfs2X.Core.SFSBuddyEvent"/>
        </member>
        <member name="F:Sfs2X.Core.BaseEvent.arguments">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Core.BaseEvent.type">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Core.BaseEvent.target">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Core.BaseEvent.ToString">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Core.BaseEvent.Clone">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Core.BaseEvent.#ctor(System.String)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Core.BaseEvent.#ctor(System.String,System.Collections.Hashtable)">
            <exclude/>
        </member>
        <member name="P:Sfs2X.Core.BaseEvent.Type">
            <exclude/>
        </member>
        <member name="P:Sfs2X.Core.BaseEvent.Params">
            <summary>
            A Hashtable containing the event's parameters.
            </summary>
        </member>
        <member name="P:Sfs2X.Core.BaseEvent.Target">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Core.SFSBuddyEvent.BUDDY_LIST_INIT">
            <summary>
            The Event is fired in response to a InitBuddyListRequest.
            </summary>
            
            <remarks>
            After the Buddy List initialization the User will return to his previous Buddy state. His online/offline status, the Buddy state
            and his persistent Buddy Variables will all be loaded and broadcast in the system. In particular the online status determines if the
            User will appear online or not to other Users that have added him/her to their lists.
            <para/>
            At this stage the custom <b>Buddy states</b> are also loaded and populated locally by the API.
            <para/>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>buddyList</term>
                <description>(<b>Array</b>) a list of Buddy objects</description>
              </item>
              <item>
                <term>myVariables</term>
                <description>(<b>Array</b>) a list of the User's BuddyVariable(s)</description>
              </item>
            </list>
            </remarks>
            
            <example>
            You can access them like this:
            <code lang="C#">
            	Console.WriteLine("Buddy States: " + smartFox.BuddyManager.BuddyStates);
            </code>
            </example>
            
            <seealso cref="T:Sfs2X.Entities.SFSBuddy"/>
            <seealso cref="T:Sfs2X.Entities.Variables.SFSBuddyVariable"/>
            <seealso cref="T:Sfs2X.Requests.InitBuddyListRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSBuddyEvent.BUDDY_ADD">
            <summary>
            The Event is fired in response to a AddBuddyRequest.
            </summary>
            
            <remarks>
            After the Buddy List initialization the User will return to his previous Buddy state. His online/offline status, the Buddy state
            and his persistent Buddy Variables will all be loaded and broadcast in the system. In particular the online status determines if the
            User will appear online or not to other Users that have added him/her to their lists.
            <para/>
            At this stage the custom <b>Buddy states</b> are also loaded and populated locally by the API.
            <para/>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>buddy</term>
                <description>(<b>Buddy</b>) the Buddy that was added</description>
              </item>
            </list>
            </remarks>
            
            <seealso cref="T:Sfs2X.Entities.SFSBuddy"/>
            <seealso cref="T:Sfs2X.Requests.AddBuddyRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSBuddyEvent.BUDDY_REMOVE">
            <summary>
            The Event is fired in response to a RemoveBuddyRequest.
            </summary>
            
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>buddy</term>
                <description>(<b>Buddy</b>) the Buddy that was removed</description>
              </item>
            </list>
            </remarks>
            
            <seealso cref="T:Sfs2X.Entities.SFSBuddy"/>
            <seealso cref="T:Sfs2X.Requests.RemoveBuddyRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSBuddyEvent.BUDDY_BLOCK">
            <summary>
            The Event is fired in response to a BlockBuddyRequest.
            </summary>
            
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>buddy</term>
                <description>(<b>Buddy</b>) the Buddy that was blocked/unblocked</description>
              </item>
            </list>
            </remarks>
            
            <seealso cref="T:Sfs2X.Entities.SFSBuddy"/>
            <seealso cref="T:Sfs2X.Requests.BlockBuddyRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSBuddyEvent.BUDDY_ERROR">
            <summary>
            The Event is fired in response to a failed Buddy request, such as AddBuddy, RemoveBuddy etc...
            </summary>
            
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>errorMessage</term>
                <description>description</description>
              </listheader>
              <item>
                <term>buddy</term>
                <description>(<b>String</b>) the error message</description>
              </item>
            </list>
            </remarks>
        </member>
        <member name="F:Sfs2X.Core.SFSBuddyEvent.BUDDY_ONLINE_STATE_UPDATE">
            <summary>
            The Event is fired in response to a GoOnlineRequest.
            </summary>
            
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>buddy</term>
                <description>(<b>Buddy</b>) the Buddy that was has changed his online status</description>
              </item>
              <item>
                <term>isItMe</term>
                <description>(<b>bool</b>) true if the Buddy is actually the current User</description>
              </item>
            </list>
            </remarks>
            
            <seealso cref="T:Sfs2X.Entities.SFSBuddy"/>
            <seealso cref="T:Sfs2X.Requests.GoOnlineRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSBuddyEvent.BUDDY_VARIABLES_UPDATE">
            <summary>
            The Event is fired in response to a SetBuddyVariablesRequest.
            </summary>
            
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>buddy</term>
                <description>(<b>Buddy</b>) the Buddy that updated the BuddyVariables</description>
              </item>
              <item>
                <term>changedVars</term>
                <description>(<b>Array</b>) a list with the names of the Variables that where changed/set</description>
              </item>
              <item>
                <term>isItMe</term>
                <description>(<b>bool</b>) true if the Buddy is actually the current User</description>
              </item>
            </list>
            </remarks>
            
            <seealso cref="T:Sfs2X.Entities.SFSBuddy"/>
            <seealso cref="T:Sfs2X.Requests.SetBuddyVariablesRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSBuddyEvent.BUDDY_MESSAGE">
            <summary>
            The Event is fired in response to a BuddyMessageRequest.
            </summary>
            
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>buddy</term>
                <description>(<b>Buddy</b>) the Buddy that updated the BuddyVariables</description>
              </item>
              <item>
                <term>isItMe</term>
                <description>(<b>bool</b>) true if the Buddy is actually the current User</description>
              </item>
              <item>
                <term>message</term>
                <description>(<b>string</b>) a list with the names of the Variables that where changed/set</description>
              </item>
              <item>
                <term>data</term>
                <description>(<b>ISFSObject</b>) optional custom parameters</description>
              </item>
            </list>
            </remarks>
            
            <seealso cref="T:Sfs2X.Entities.SFSBuddy"/>
            <seealso cref="T:Sfs2X.Requests.BuddyMessageRequest"/>
        </member>
        <member name="M:Sfs2X.Core.SFSBuddyEvent.#ctor(System.String)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Core.SFSBuddyEvent.#ctor(System.String,System.Collections.Hashtable)">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Requests.BanMode">
            <summary>
            The class contains constants to specify the banishmen modality for a BanUserRequest
            </summary>
            <seealso cref="T:Sfs2X.Requests.BanUserRequest"/>
        </member>
        <member name="F:Sfs2X.Requests.BanMode.BY_ADDRESS">
            <summary>
            User is banned by IP Address
            </summary>
        </member>
        <member name="F:Sfs2X.Requests.BanMode.BY_NAME">
            <summary>
            User is banned by name
            </summary>
        </member>
        <member name="T:Sfs2X.Requests.GenericMessageRequest">
            <summary>
            
            </summary>
        </member>
        <member name="T:Sfs2X.Requests.BaseRequest">
            <summary>
            
            </summary>
        </member>
        <member name="T:Sfs2X.Requests.IRequest">
            <summary>
            
            </summary>
        </member>
        <member name="F:Sfs2X.Requests.BaseRequest.KEY_ERROR_CODE">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.BaseRequest.KEY_ERROR_PARAMS">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.GenericMessageRequest.KEY_ROOM_ID">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.GenericMessageRequest.KEY_USER_ID">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.GenericMessageRequest.KEY_MESSAGE">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.GenericMessageRequest.KEY_MESSAGE_TYPE">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.GenericMessageRequest.KEY_RECIPIENT">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.GenericMessageRequest.KEY_RECIPIENT_MODE">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.GenericMessageRequest.KEY_XTRA_PARAMS">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.GenericMessageRequest.KEY_SENDER_DATA">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.GenericMessageRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.GenericMessageRequest.Execute(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Requests.RoomPermissions">
            <summary>
            This object is part of the RoomSettings parameters used for creating a new Room. 
            </summary>
            <remarks>
            It describes the permission settings of a new Room
            </remarks>
            <seealso cref="T:Sfs2X.Requests.RoomSettings"/>
            <seealso cref="T:Sfs2X.Requests.CreateRoomRequest"/>
        </member>
        <member name="P:ComponentAce.Compression.Libs.zlib.ZOutputStream.TotalIn">
            <summary> Returns the total number of bytes input so far.</summary>
        </member>
        <member name="P:ComponentAce.Compression.Libs.zlib.ZOutputStream.TotalOut">
            <summary> Returns the total number of bytes output so far.</summary>
        </member>
        <member name="T:Sfs2X.Entities.Data.SFSObject">
            <summary>
            SFSObject
            </summary>
            <remarks>
            <b>SFSObject</b> is used from server and client side to exchange data. It can be thought of a specialized Dictionary/Map object that can contain any type of data. <br/>
            The advantage of using SFSObject is that you can fine tune the way your data will be transmitted over the network.<br/>
            For instance, a number like 100 can be transmitted as a normal <b>integer</b> (which takes 32 bits) but also a <b>short</b> (16 bit) or even a <b>byte</b> (8 bit)
            <para/>
            <b>SFSObject</b> supports many primitive data types and related arrays of primitives. It also allows to serialize class instances and rebuild them on the Java side. <br/>
            This is explained in greater detail in a separate document.
            </remarks>
            <seealso cref="T:Sfs2X.Entities.Data.SFSArray"/>
        </member>
        <member name="T:Sfs2X.Entities.Data.ISFSObject">
            <summary>
            
            </summary>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.IsNull(System.String)">
            <summary>
            Checks if a specific element in the SFSObject is null
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <returns>
            A <see cref="T:System.Boolean"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.ContainsKey(System.String)">
            <summary>
            Returns true if an element exists with the provided key
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <returns>
            A <see cref="T:System.Boolean"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.RemoveElement(System.String)">
            <summary>
            Removes an element
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.GetKeys">
            <summary>
            Return an array with all the keys in the SFSObject
            </summary>
            <returns>
            A string[]
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.Size">
            <summary>
            Return the number of elements in the SFSObject
            </summary>
            <returns>
            A <see cref="T:System.Int32"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.ToBinary">
            <summary>
            Return the binary form of the object
            </summary>
            <returns>
            A <see cref="T:Sfs2X.Util.ByteArray"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.GetDump(System.Boolean)">
            <summary>
            Return a formatted dump of the object that can logged or traced in the console for debugging purposes.
            </summary>
            <param name="format">
            turns the "pretty print" on/off
            </param>
            <returns>
            A <see cref="T:System.String"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.GetDump">
            <summary>
            Return a formatted dump of the object that can logged or traced in the console for debugging purposes.
            </summary>
            <returns>
            A <see cref="T:System.String"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.GetHexDump">
            <summary>
            Returns a detailed hex-dump of the object that can logged or traced in the console for debugging purposes.
            </summary>
            <returns>
            A <see cref="T:System.String"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.GetData(System.String)">
            <exclude />
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.GetBool(System.String)">
            <summary>
            Get the element for the provided key as a Boolean
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <returns>
            A <see cref="T:System.Boolean"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.GetByte(System.String)">
            <summary>
            Get the element for the provided key as a signed byte (8 bit) (int in AS3)
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <returns>
            A <see cref="T:System.Byte"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.GetShort(System.String)">
            <summary>
            Get the element for the provided key as a short int (16 bit) (int in AS3)
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <returns>
            A <see cref="T:System.Int16"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.GetInt(System.String)">
            <summary>
            Get the element for the provided key as an int (32 bit)
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <returns>
            A <see cref="T:System.Int32"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.GetLong(System.String)">
            <summary>
            Get the element for the provided key as a long int (64 bit) (Number in AS3)
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <returns>
            A <see cref="T:System.Int64"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.GetFloat(System.String)">
            <summary>
            Get the element for the provided key as a float (Number in AS3)
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <returns>
            A <see cref="T:System.Single"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.GetDouble(System.String)">
            <summary>
            Get the element for the provided key as a double (Number in AS3)
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <returns>
            A <see cref="T:System.Double"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.GetUtfString(System.String)">
            <summary>
            Get the element for the provided key as a UTF-8 String
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <returns>
            A <see cref="T:System.String"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.GetBoolArray(System.String)">
            <summary>
            Get the element for the provided key as an array of Booleans
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <returns>
            A bool[]
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.GetByteArray(System.String)">
            <summary>
            Get the element for the provided key as a an array of byte
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <returns>
            A <see cref="T:Sfs2X.Util.ByteArray"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.GetShortArray(System.String)">
            <summary>
            Get the element for the provided key as an array of short int
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <returns>
            A short[]
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.GetIntArray(System.String)">
            <summary>
            Get the element for the provided key as an array of int
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <returns>
            A int[]
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.GetLongArray(System.String)">
            <summary>
            Get the element for the provided key as an array of long int 
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <returns>
            A long[]
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.GetFloatArray(System.String)">
            <summary>
            Get the element for the provided key as an array of floats
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <returns>
            A float[]
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.GetDoubleArray(System.String)">
            <summary>
            Get the element for the provided key as an array of doubles 
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <returns>
            A double[]
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.GetUtfStringArray(System.String)">
            <summary>
            Get the element for the provided key as an array of UTF-8 Strings
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <returns>
            A string[]
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.GetSFSArray(System.String)">
            <summary>
            Get the element for the provided key as an <see cref="T:Sfs2X.Entities.Data.SFSArray"/> 
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <returns>
            A <see cref="T:Sfs2X.Entities.Data.ISFSArray"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.GetSFSObject(System.String)">
            <summary>
            Get the element for the provided key as an SFSObject
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <returns>
            A <see cref="T:Sfs2X.Entities.Data.ISFSObject"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.GetClass(System.String)">
            <summary>
            Get the element for the provided key as an instance of a custom Class.
            </summary>
            <remarks>
            This is an advanced feature that allows to transmit object instances between Actionscript and Java provided that both classes are definined under the same package name.
            </remarks>
            <example>
            This is an example of the same class on the server and client side:
            
            <b>Server Java code:</b>
            		<code>
            			package my.game.spacecombat
            
            			public class SpaceShip
            			{
            				private String type;
            				private String name;
            				private int firePower;
            				private int maxSpeed;
            				private List&lt;String&gt; weapons;
            
            				public SpaceShip(String name, String type)
            				{
            					this.name = name;
            					this.type = type;
            				}
            
            				// ... Getters / Setters ...
            			}
            		</code>
            
            <b>Client AS3 code:</b>
            		<code>
            		package my.game.spacecombat
            		{
            			public class SpaceShip
            			{
            				private var _type:String
            				private var _name:String
            				private var _firePower:int;
            				private var _maxSpeed:int;
            				private var _weapons:Array;
            
            				public SpaceShip(name:String, type:Strig)
            				{
            					_name = name
            					_type = type
            				}
            
            				// ... Getters / Setters ...
            			}
            		}	
            			
            		</code>
            
            	A SpaceShip instance from server side is sent to the client. This is how you get it: 
            	<code>
            		var myShipData:SpaceShip = sfsObject.getClass("spaceShip") as SpaceShip
            	</code>
            </example>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <returns>
            A <see cref="T:System.Object"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.PutNull(System.String)">
            <exclude />
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.PutBool(System.String,System.Boolean)">
            <summary>
            puts a Boolean value with the provided key 
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <param name="val">
            A <see cref="T:System.Boolean"/>
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.PutByte(System.String,System.Byte)">
            <summary>
            puts a byte value (8 bit) with the provided key
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <param name="val">
            A <see cref="T:System.Byte"/>
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.PutShort(System.String,System.Int16)">
            <summary>
            puts a short int (16 bit) with the provided key
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <param name="val">
            A <see cref="T:System.Int16"/>
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.PutInt(System.String,System.Int32)">
            <summary>
            puts an int (32 bit) with the provided key
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <param name="val">
            A <see cref="T:System.Int32"/>
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.PutLong(System.String,System.Int64)">
            <summary>
            puts a long int (64 bit) with the provided key
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <param name="val">
            A <see cref="T:System.Int64"/>
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.PutFloat(System.String,System.Single)">
            <summary>
            puts a float (32 bit) with the provided key
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <param name="val">
            A <see cref="T:System.Single"/>
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.PutDouble(System.String,System.Double)">
            <summary>
            puts a double (64 bit) with the provided key
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <param name="val">
            A <see cref="T:System.Double"/>
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.PutUtfString(System.String,System.String)">
            <summary>
            puts a UTF-8 String with the provided key
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <param name="val">
            A <see cref="T:System.String"/>
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.PutBoolArray(System.String,System.Boolean[])">
            <summary>
            puts an array of Booleans with the provided key
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <param name="val">
            A bool[]
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.PutByteArray(System.String,Sfs2X.Util.ByteArray)">
            <summary>
            puts an array of bytes with the provided key
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <param name="val">
            A <see cref="T:Sfs2X.Util.ByteArray"/>
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.PutShortArray(System.String,System.Int16[])">
            <summary>
            puts an array of short ints with the provided key
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <param name="val">
            A short[]
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.PutIntArray(System.String,System.Int32[])">
            <summary>
            puts an array of ints with the provided key
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <param name="val">
            A int[]
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.PutLongArray(System.String,System.Int64[])">
            <summary>
            puts an array of long ints with the provided key
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <param name="val">
            A long[]
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.PutFloatArray(System.String,System.Single[])">
            <summary>
            puts an array of floats with the provided key
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <param name="val">
            A float[]
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.PutDoubleArray(System.String,System.Double[])">
            <summary>
            puts an array of doubles with the provided key
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <param name="val">
            A double[]
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.PutUtfStringArray(System.String,System.String[])">
            <summary>
            puts an array of Strings with the provided key
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <param name="val">
            A string[]
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.PutSFSArray(System.String,Sfs2X.Entities.Data.ISFSArray)">
            <summary>
            puts an SFSArray with the provided key
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <param name="val">
            A <see cref="T:Sfs2X.Entities.Data.ISFSArray"/>
            </param>
            <seealso cref="T:Sfs2X.Entities.Data.SFSArray"/>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.PutSFSObject(System.String,Sfs2X.Entities.Data.ISFSObject)">
            <summary>
            puts an SFSObject with the provided key
            </summary>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <param name="val">
            A <see cref="T:Sfs2X.Entities.Data.ISFSObject"/>
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.PutClass(System.String,System.Object)">
            <summary>
            Puts an instance of a custom Class.
            </summary>
            <remarks>
            This is an advanced feature that allows to transmit object instances between .NET and Java provided that both classes are definined under the same package name.
            </remarks>
            <param name="key">
            A <see cref="T:System.String"/>
            </param>
            <param name="val">
            A <see cref="T:System.Object"/>
            </param>
            <seealso cref="M:Sfs2X.Entities.Data.ISFSObject.GetClass(System.String)"/>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSObject.Put(System.String,Sfs2X.Entities.Data.SFSDataWrapper)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Data.SFSObject.NewFromObject(System.Object)">
            <summary>
            Alternative static constructor that builds an SFSObject populated with the data found in the passed Object
            </summary>
            <param name="o">
            A <see cref="T:System.Object"/>
            </param>
            <returns>
            A <see cref="T:Sfs2X.Entities.Data.SFSObject"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.SFSObject.NewFromBinaryData(Sfs2X.Util.ByteArray)">
            <summary>
            Alternative static constructor that builds an SFSObject from a valid SFSObject binary representation
            </summary>
            <param name="ba">
            A <see cref="T:Sfs2X.Util.ByteArray"/>
            </param>
            <returns>
            A <see cref="T:Sfs2X.Entities.Data.SFSObject"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.SFSObject.NewInstance">
            <summary>
            Alternative static constructor
            </summary>
            <returns>
            A <see cref="T:Sfs2X.Entities.Data.SFSObject"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.SFSObject.#ctor">
            <summary>
            
            </summary>
        </member>
        <member name="T:Sfs2X.Entities.Match.NumberMatch">
            <summary>
            This matcher is used in MatchExpressions to check numeric conditions
            </summary>
            <seealso cref="T:Sfs2X.Entities.Match.MatchExpression"/>
        </member>
        <member name="F:Sfs2X.Entities.Match.NumberMatch.EQUALS">
            <summary>
            Checks that Num1 == Num2
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Match.NumberMatch.NOT_EQUALS">
            <summary>
            Checks that Num1 != Num2
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Match.NumberMatch.GREATER_THAN">
            <summary>
            Checks that Num1 &gt; Num2
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Match.NumberMatch.GREATER_OR_EQUAL_THAN">
            <summary>
            Checks that Num1 &gt;= Num2
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Match.NumberMatch.LESS_THAN">
            <summary>
            Checks that Num1 &lt; Num2
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Match.NumberMatch.LESS_OR_EQUAL_THAN">
            <summary>
            Checks that Num1 &lt;= Num2
            </summary>
        </member>
        <member name="M:Sfs2X.Entities.Match.NumberMatch.#ctor(System.String)">
            <exclude/>
        </member>
        <member name="P:Sfs2X.Entities.Match.NumberMatch.Symbol">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.Match.NumberMatch.Type">
            <inheritdoc />
        </member>
        <member name="F:Sfs2X.Entities.Variables.ReservedBuddyVariables.BV_ONLINE">
            <summary>
            This variable keeps track of the Online Status of the Buddy
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Variables.ReservedBuddyVariables.BV_STATE">
            <summary>
            This variable stores the custom Buddy state (e.g. "Available", "Busy" etc...)
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Variables.ReservedBuddyVariables.BV_NICKNAME">
            <summary>
            This variable stores an optional nickname for the Buddy
            </summary>
        </member>
        <member name="T:Sfs2X.Requests.ChangeRoomNameRequest">
            <summary>
            Change the name of a Room at runtime.
            </summary>
            <remarks>
            This request might fail if the Room was configured not be ranamed or if the User sending the request is not the owner of the Room. 
            <para/>
            Moderators and Administrator can override this last constraint.
            </remarks>
        </member>
        <member name="F:Sfs2X.Requests.ChangeRoomNameRequest.KEY_ROOM">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.ChangeRoomNameRequest.KEY_NAME">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.ChangeRoomNameRequest.#ctor(Sfs2X.Entities.Room,System.String)">
            <summary>
            Constructor
            </summary>
            <param name="room">
            the Room to rename
            </param>
            <param name="newName">
            the new Room name (no duplicates are allowed)
            </param>
            <example>
            <code>
            			smartFox.AddEventListener(SFSEvent.ROOM_NAME_CHANGE, OnRoomNameChange);
            			smartFox.AddEventListener(SFSEvent.ROOM_NAME_CHANGE_ERROR, OnRoomNameChangeError);
            			
            			Room theRoom = sfs.GetRoomByName("Gonzo's Room");
            			smartFox.Send(new ChangeRoomNameRequest(theRoom, "Gonzo The Great's Room"));
            
            			void OnRoomNameChange(BaseEvent evt) {
            				Console.WriteLine("Room was renamed successfully: " + (Room)evt.Params["room"]);
            				Console.WriteLine("Room old name was: " + (string)evt.Params["oldName"]);
            			}
            
            			void OnRoomNameChangeError(BaseEvent evt) {
            				Console.WriteLine("Room name change failed: " + (string)evt.Params["errorMessage"]);
            			}
            
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSEvent.ROOM_NAME_CHANGE"/>
            <seealso cref="F:Sfs2X.Core.SFSEvent.ROOM_NAME_CHANGE_ERROR"/>
            <seealso cref="T:Sfs2X.Requests.ChangeRoomCapacityRequest"/>
            <seealso cref="T:Sfs2X.Requests.ChangeRoomPasswordStateRequest"/>
        </member>
        <member name="M:Sfs2X.Requests.ChangeRoomNameRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.ChangeRoomNameRequest.Execute(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Entities.Data.SFSDataType.NULL">
            <summary>
            Null value
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Data.SFSDataType.BOOL">
            <summary>
            Boolean
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Data.SFSDataType.BYTE">
            <summary>
            Byte, signed 8 bit
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Data.SFSDataType.SHORT">
            <summary>
            Short integer, signed 16 bit
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Data.SFSDataType.INT">
            <summary>
            Integer, signed 32 bit
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Data.SFSDataType.LONG">
            <summary>
            Long integer, signed 64 bit
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Data.SFSDataType.FLOAT">
            <summary>
            Floating point decimal, signed 32 bit
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Data.SFSDataType.DOUBLE">
            <summary>
            Double precision decimal, signed 64 bit
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Data.SFSDataType.UTF_STRING">
            <summary>
            UTF-8 Encoded String
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Data.SFSDataType.BOOL_ARRAY">
            <summary>
            Array of Booleans
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Data.SFSDataType.BYTE_ARRAY">
            <summary>
            Array of Bytes (treated as ByteArray)
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Data.SFSDataType.SHORT_ARRAY">
            <summary>
            Array of Shorts
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Data.SFSDataType.INT_ARRAY">
            <summary>
            Array of Integers
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Data.SFSDataType.LONG_ARRAY">
            <summary>
            Array of Long integers
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Data.SFSDataType.FLOAT_ARRAY">
            <summary>
            Array of Floats
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Data.SFSDataType.DOUBLE_ARRAY">
            <summary>
            Array of Doubles
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Data.SFSDataType.UTF_STRING_ARRAY">
            <summary>
            Array of UTF-8 Strings
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Data.SFSDataType.SFS_ARRAY">
            <summary>
            SFSArray
            </summary>
            <seealso cref="T:Sfs2X.Entities.Data.SFSArray"/>
        </member>
        <member name="F:Sfs2X.Entities.Data.SFSDataType.SFS_OBJECT">
            <summary>
            SFSObject
            </summary>
            <seealso cref="T:Sfs2X.Entities.Data.SFSObject"/>
        </member>
        <member name="F:Sfs2X.Entities.Data.SFSDataType.CLASS">
            <summary>
            Uses SFSObject to serialize Class instances
            </summary>
        </member>
        <member name="T:Sfs2X.Requests.BlockBuddyRequest">
            <summary>
            Block/Unblock a Buddy in the User's BuddyList
            </summary>
            <remarks>
            Blocked buddies won't be able to see the the User online status and send messages or events
            </remarks>
        </member>
        <member name="F:Sfs2X.Requests.BlockBuddyRequest.KEY_BUDDY_NAME">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.BlockBuddyRequest.KEY_BUDDY_BLOCK_STATE">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.BlockBuddyRequest.#ctor(System.String,System.Boolean)">
            <summary>
            Constructor
            </summary>
            <param name="buddyName">
            the name of the buddy to add
            </param>
            <param name="blocked">
            the blocked status
            </param>
            <example>
            <code>
            			smartFox.AddEventListener(SFSBuddyEvent.BUDDY_BLOCK, OnBuddyBlock);
            			smartFox.AddEventListener(SFSBuddyEvent.BUDDY_ERROR, OnBuddyError);
            			
            			// Block a buddy in the current buddy list
            			smartFox.Send(new BlockBuddyRequest("Swedish Cook", true));
            
            			void OnBuddyAdded(BaseEvent evt) {
            				Console.WriteLine("Buddy block status was changed: " + (Buddy)evt.Params["buddy"] + ", state: " + ((Buddy)evt.Params["buddy"]).IsBlocked);
            			}
            
            			void OnBuddyError(BaseEvent evt) {
            				Console.WriteLine("Buddy error: " + evt.Params["errorMessage"]);
            			}
            
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSBuddyEvent.BUDDY_BLOCK"/>
            <seealso cref="F:Sfs2X.Core.SFSBuddyEvent.BUDDY_ERROR"/>
            <seealso cref="T:Sfs2X.Requests.AddBuddyRequest"/>
            <seealso cref="T:Sfs2X.Requests.RemoveBuddyRequest"/>
        </member>
        <member name="M:Sfs2X.Requests.BlockBuddyRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.BlockBuddyRequest.Execute(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Requests.PrivateMessageRequest">
            <summary>
            Send a chat Private Message to another User
            </summary>
            <remarks>
            Private Messages can be exchanged between Users in the same Rooms or in different Rooms.<br/>
            They can also be sent between Users that are not joined to any Rooms at all. 
            </remarks>
        </member>
        <member name="M:Sfs2X.Requests.PrivateMessageRequest.#ctor(System.String,System.Int32,Sfs2X.Entities.Data.ISFSObject)">
            <summary>
            Constructor
            </summary>
            <param name="message">
            the private chat message
            </param>
            <param name="recipientId">
            the id of the recipient User
            </param>
            <param name="parameters">
            custom extra parameters (optional)
            </param>
            <example>
            <code>
            			smartFox.AddEventListener(SFSEvent.PRIVATE_MESSAGE, OnPrivateMessage);
            			
            			User messageRecipient = smartFox.UserManager.GetUserByName("Piggy");
            
            			// Say 'Hello' to user Tom
            			smartFox.Send(new PrivateMessageRequest("Hello Piggy!", messageRecipient.Id));
            
            			void OnPrivateMessage(BaseEvent evt) {
            				Console.WriteLine("Got PM: " + (string)evt.Params["message"] + ", Sender: " + (User)evt.Params["sender"]);
            			}
            
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSEvent.PRIVATE_MESSAGE"/>
            <seealso cref="T:Sfs2X.Requests.PublicMessageRequest"/>
        </member>
        <member name="M:Sfs2X.Requests.PrivateMessageRequest.#ctor(System.String,System.Int32)">
            <summary>
            <see cref="M:Sfs2X.Requests.PrivateMessageRequest.#ctor(System.String,System.Int32,Sfs2X.Entities.Data.ISFSObject)"/>
            </summary>
        </member>
        <member name="T:Sfs2X.Requests.UnsubscribeRoomGroupRequest">
            <summary>
            Stop listening to events of a specific Room Group
            </summary>
        </member>
        <member name="F:Sfs2X.Requests.UnsubscribeRoomGroupRequest.KEY_GROUP_ID">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.UnsubscribeRoomGroupRequest.#ctor(System.String)">
            <summary>
            Constructor
            </summary>
            <param name="groupId">
            the name of the group
            </param>
            <example>
            <code>
            			smartFox.AddEventListener(SFSEvent.ROOM_GROUP_UNSUBSCRIBE, OnUnsubscribeRoomGroup);
            			smartFox.AddEventListener(SFSEvent.ROOM_GROUP_UNSUBSCRIBE_ERROR, OnUnsubscribeRoomGroupError);
            			
            			// Login as a guest user
            			smartFox.Send(new UnsubscribeRoomGroupRequest("CardGames"));
            
            			void OnUnsubscribeRoomGroup(BaseEvent evt) {
            				Console.WriteLine("Group Removed: " + (string)evt.Params["groupId"]);
            			}
            
            			void OnUnsubscribeRoomGroupError(BaseEvent evt) {
            				Console.WriteLine("Unsubscribe failure: " + (string)evt.Params["errorMessage"]);
            			}
            
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSEvent.ROOM_GROUP_UNSUBSCRIBE"/>
            <seealso cref="F:Sfs2X.Core.SFSEvent.ROOM_GROUP_UNSUBSCRIBE_ERROR"/>
            <seealso cref="T:Sfs2X.Requests.SubscribeRoomGroupRequest"/>
        </member>
        <member name="M:Sfs2X.Requests.UnsubscribeRoomGroupRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.UnsubscribeRoomGroupRequest.Execute(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Requests.RoomEvents">
            <summary>
            This class provides Room event settings that can be specified when creating a new Room via the <see cref="T:Sfs2X.Requests.CreateRoomRequest"/>
            </summary>
            <remarks>
            You can configure which events the Room will fire in the Zone:
            <ul>
            		<li><b>allowUserEnter</b>: fire an event each time a User enters/joins the Room</li>
            		<li><b>allowUserExit</b>: fire an event each time a User exits/leaves the Room</li>
            		<li><b>allowUserCountChange</b>: fire an event each time the user count/spectator count changes in the Room</li>
            		<li><b>allowUserVariablesUpdate</b>: fire an event each time a user in the Room has updated his/her UserVariables</li>
            </ul>
            
            Each of these events can be turned ON (true) or OFF (false)
            </remarks>
            <seealso cref="T:Sfs2X.Requests.RoomSettings"/>
            <seealso cref="T:Sfs2X.Requests.CreateRoomRequest"/>
        </member>
        <member name="T:Sfs2X.Controllers.SystemController">
            @private 
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.Contains(System.Object)">
            <summary>
            Returns true if the passed object is contained in the Array
            </summary>
            <param name="obj">
            A <see cref="T:System.Object"/>
            </param>
            <returns>
            A <see cref="T:System.Boolean"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.GetElementAt(System.Int32)">
            <summary>
            Returns the element at the specified index
            </summary>
            <param name="index">
            A <see cref="T:System.Int32"/>
            </param>
            <returns>
            A <see cref="T:System.Object"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.GetWrappedElementAt(System.Int32)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.RemoveElementAt(System.Int32)">
            <summary>
            Remove the element at the specified index
            </summary>
            <param name="index">
            A <see cref="T:System.Int32"/>
            </param>
            <returns>
            A <see cref="T:System.Object"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.Size">
            <summary>
            Return the number of elements in the Array
            </summary>
            <returns>
            A <see cref="T:System.Int32"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.ToBinary">
            <summary>
            Return the binary form of the object
            </summary>
            <returns>
            A <see cref="T:Sfs2X.Util.ByteArray"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.GetDump(System.Boolean)">
            <summary>
            Return a formatted dump of the object that can logged or traced in the console for debugging purposes.
            </summary>
            <param name="format">
            turns the "pretty print" on/off
            </param>
            <returns>
            A <see cref="T:System.String"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.GetDump">
            <summary>
            Return a formatted dump of the object that can logged or traced in the console for debugging purposes.
            </summary>
            <returns>
            A <see cref="T:System.String"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.GetHexDump">
            <summary>
            Returns a detailed hex-dump of the object that can logged or traced in the console for debugging purposes.
            </summary>
            <returns>
            A <see cref="T:System.String"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.AddNull">
            <summary>
            Add a null element
            </summary>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.AddBool(System.Boolean)">
            <summary>
            Add a Boolean value
            </summary>
            <param name="val">
            A <see cref="T:System.Boolean"/>
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.AddByte(System.Byte)">
            <summary>
            Add a byte value (8 bit)
            </summary>
            <param name="val">
            A <see cref="T:System.Byte"/>
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.AddShort(System.Int16)">
            <summary>
            Add a short int value (16 bit)
            </summary>
            <param name="val">
            A <see cref="T:System.Int16"/>
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.AddInt(System.Int32)">
            <summary>
            Add an int value (32 bit)
            </summary>
            <param name="val">
            A <see cref="T:System.Int32"/>
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.AddLong(System.Int64)">
            <summary>
            Add a long int value (64 bit)
            </summary>
            <param name="val">
            A <see cref="T:System.Int64"/>
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.AddFloat(System.Single)">
            <summary>
            Add a float value (32 bit)
            </summary>
            <param name="val">
            A <see cref="T:System.Single"/>
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.AddDouble(System.Double)">
            <summary>
            Add a dobule value (64 bit)
            </summary>
            <param name="val">
            A <see cref="T:System.Double"/>
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.AddUtfString(System.String)">
            <summary>
            Add a UTF-8 String
            </summary>
            <param name="val">
            A <see cref="T:System.String"/>
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.AddBoolArray(System.Boolean[])">
            <summary>
            Add an array of Booleans
            </summary>
            <param name="val">
            A bool[]
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.AddByteArray(Sfs2X.Util.ByteArray)">
            <summary>
            Add an array of bytes
            </summary>
            <param name="val">
            A <see cref="T:Sfs2X.Util.ByteArray"/>
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.AddShortArray(System.Int16[])">
            <summary>
            Add an array of short ints 
            </summary>
            <param name="val">
            A short[]
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.AddIntArray(System.Int32[])">
            <summary>
            Add an array of ints
            </summary>
            <param name="val">
            A int[]
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.AddLongArray(System.Int64[])">
            <summary>
            Add an array of long ints
            </summary>
            <param name="val">
            A long[]
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.AddFloatArray(System.Single[])">
            <summary>
            Add an array of floats
            </summary>
            <param name="val">
            A float[]
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.AddDoubleArray(System.Double[])">
            <summary>
            Add an array of doubles
            </summary>
            <param name="val">
            A double[]
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.AddUtfStringArray(System.String[])">
            <summary>
            Add an array of UTF-8 String
            </summary>
            <param name="val">
            A string[]
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.AddSFSArray(Sfs2X.Entities.Data.ISFSArray)">
            <summary>
            Add an SFSArray
            </summary>
            <param name="val">
            A <see cref="T:Sfs2X.Entities.Data.ISFSArray"/>
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.AddSFSObject(Sfs2X.Entities.Data.ISFSObject)">
            <summary>
            Add an SFSObject
            </summary>
            <param name="val">
            A <see cref="T:Sfs2X.Entities.Data.ISFSObject"/>
            </param>
            <seealso cref="T:Sfs2X.Entities.Data.SFSObject"/>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.AddClass(System.Object)">
            <summary>
            Add an instance of a custom Class.
            </summary>
            <remarks>
            This is an advanced feature that allows to transmit object instances between Actionscript and Java provided that both classes are definined under the same package name.
            </remarks>
            <example>
            This is an example of the same class on the server and client side:
            
            <b>Server Java code:</b>
            		<code>
            			package my.game.spacecombat
            
            			public class SpaceShip
            			{
            				private String type;
            				private String name;
            				private int firePower;
            				private int maxSpeed;
            				private List&lt;String&gt; weapons;
            
            				public SpaceShip(String name, String type)
            				{
            					this.name = name;
            					this.type = type;
            				}
            
            				// ... Getters / Setters ...
            			}
            		</code>
            
            <b>Client AS3 code:</b>
            		<code>
            		package my.game.spacecombat
            		{
            			public class SpaceShip
            			{
            				private var _type:String
            				private var _name:String
            				private var _firePower:int;
            				private var _maxSpeed:int;
            				private var _weapons:Array;
            
            				public SpaceShip(name:String, type:Strig)
            				{
            					_name = name
            					_type = type
            				}
            
            				// ... Getters / Setters ...
            			}
            		}	
            			
            		</code>
            
            	A SpaceShip instance from server side is sent to the client. This is how you get it: 
            	<code>
            		var myShipData:SpaceShip = sfsArray.getClass(0) as SpaceShip
            	</code>
            
            </example>
            <param name="val">
            A <see cref="T:System.Object"/>
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.Add(Sfs2X.Entities.Data.SFSDataWrapper)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.IsNull(System.Int32)">
            <summary>
            Checks if a certain element in the Array is null
            </summary>
            <param name="index">
            A <see cref="T:System.Int32"/>
            </param>
            <returns>
            A <see cref="T:System.Boolean"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.GetBool(System.Int32)">
            <summary>
            Get a Boolean element at the provided index
            </summary>
            <param name="index">
            A <see cref="T:System.Int32"/>
            </param>
            <returns>
            A <see cref="T:System.Boolean"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.GetByte(System.Int32)">
            <summary>
            Get a byte element at the provided index
            </summary>
            <param name="index">
            A <see cref="T:System.Int32"/>
            </param>
            <returns>
            A <see cref="T:System.Byte"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.GetShort(System.Int32)">
            <summary>
            Get a short int element at the provided index
            </summary>
            <param name="index">
            A <see cref="T:System.Int32"/>
            </param>
            <returns>
            A <see cref="T:System.Int16"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.GetInt(System.Int32)">
            <summary>
            Get an int element at the provided index 
            </summary>
            <param name="index">
            A <see cref="T:System.Int32"/>
            </param>
            <returns>
            A <see cref="T:System.Int32"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.GetLong(System.Int32)">
            <summary>
            Get a long int element at the provided index
            </summary>
            <param name="index">
            A <see cref="T:System.Int32"/>
            </param>
            <returns>
            A <see cref="T:System.Int64"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.GetFloat(System.Int32)">
            <summary>
            Get a float element at the provided index
            </summary>
            <param name="index">
            A <see cref="T:System.Int32"/>
            </param>
            <returns>
            A <see cref="T:System.Single"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.GetDouble(System.Int32)">
            <summary>
            Get a double element at the provided index
            </summary>
            <param name="index">
            A <see cref="T:System.Int32"/>
            </param>
            <returns>
            A <see cref="T:System.Double"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.GetUtfString(System.Int32)">
            <summary>
            Get a String element at the provided index
            </summary>
            <param name="index">
            A <see cref="T:System.Int32"/>
            </param>
            <returns>
            A <see cref="T:System.String"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.GetBoolArray(System.Int32)">
            <summary>
            Get a Boolean Array element at the provided index
            </summary>
            <param name="index">
            A <see cref="T:System.Int32"/>
            </param>
            <returns>
            A bool[]
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.GetByteArray(System.Int32)">
            <summary>
            Get a byte Array element at the provided index
            </summary>
            <param name="index">
            A <see cref="T:System.Int32"/>
            </param>
            <returns>
            A <see cref="T:Sfs2X.Util.ByteArray"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.GetShortArray(System.Int32)">
            <summary>
            Get a short Array element at the provided index
            </summary>
            <param name="index">
            A <see cref="T:System.Int32"/>
            </param>
            <returns>
            A short[]
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.GetIntArray(System.Int32)">
            <summary>
            Get a int Array element at the provided index
            </summary>
            <param name="index">
            A <see cref="T:System.Int32"/>
            </param>
            <returns>
            A int[]
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.GetLongArray(System.Int32)">
            <summary>
            Get a lomg Array element at the provided index
            </summary>
            <param name="index">
            A <see cref="T:System.Int32"/>
            </param>
            <returns>
            A long[]
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.GetFloatArray(System.Int32)">
            <summary>
            Get a float Array element at the provided index
            </summary>
            <param name="index">
            A <see cref="T:System.Int32"/>
            </param>
            <returns>
            A float[]
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.GetDoubleArray(System.Int32)">
            <summary>
            Get a double Array element at the provided index
            </summary>
            <param name="index">
            A <see cref="T:System.Int32"/>
            </param>
            <returns>
            A double[]
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.GetUtfStringArray(System.Int32)">
            <summary>
            Get a String Array element at the provided index
            </summary>
            <param name="index">
            A <see cref="T:System.Int32"/>
            </param>
            <returns>
            A string[]
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.GetSFSArray(System.Int32)">
            <summary>
            Get an SFSArray element at the provided index
            </summary>
            <param name="index">
            A <see cref="T:System.Int32"/>
            </param>
            <returns>
            A <see cref="T:Sfs2X.Entities.Data.ISFSArray"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.GetSFSObject(System.Int32)">
            <summary>
            Get an SFSObject element at the provided index
            </summary>
            <param name="index">
            A <see cref="T:System.Int32"/>
            </param>
            <returns>
            A <see cref="T:Sfs2X.Entities.Data.ISFSObject"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.ISFSArray.GetClass(System.Int32)">
            <summary>
            Get a class instance at the provided index.
            </summary>
            <param name="index">
            A <see cref="T:System.Int32"/>
            </param>
            <returns>
            A <see cref="T:System.Object"/>
            </returns>
            <seealso cref="M:Sfs2X.Entities.Data.ISFSArray.AddClass(System.Object)"/>
        </member>
        <member name="P:Sfs2X.Protocol.Serialization.DefaultSFSDataSerializer.RunningAssembly">
            <summary>
            Set this to specify the assembly you want to use when serializing/deserializing the .NET classes
            If null (default) - will look for the Type in the current assembly.
            </summary>
        </member>
        <member name="T:Sfs2X.SmartFox">
            <summary>
            SmartFox is the main class in the SmartFoxServer 2X API.
            </summary>
            <remarks>
            This class is responsible for connecting to the Server and dispatching all asynchronous events.
            <para/>
            <b>NOTE</b>: in the provided examples, <c>smartFox</c> always indicates a SmartFox instance.
            <para/>
            Version 0.9.x
            <para/>
            Author	The gotoAndPlay() Team and Thomas Hentschel Lund from Full Control<br/>
            http://www.smartfoxserver.com<br/>
            http://www.gotoandplay.it<br/>
            http://www.fullcontrol.dk<br/>
            </remarks>
        </member>
        <member name="M:Sfs2X.SmartFox.#ctor(System.Boolean)">
            <overloads>
            <summary>
            The SmartFox constructor.
            </summary>
            
            <example>
            The following example shows how to instantiate the SmartFox class enabling the debug messages.
            <code>
            SmartFox smartFox = new SmartFox(true);
            </code>
            </example>
            </overloads>		
            
            <param name="debug">
            turn on the debug messages (optional).
            </param>
        </member>
        <member name="M:Sfs2X.SmartFox.#ctor">
            
        </member>
        <member name="M:Sfs2X.SmartFox.GetSocketEngine">
            Moved to kernel namespace - TODO
            <exclude/>
        </member>
        <member name="M:Sfs2X.SmartFox.GetRoomById(System.Int32)">
            <summary>
            Finds a Room from its Id or returns null if no Room with that Id exist in the room list
            </summary>
            <param name="id">
            Room id
            </param>
            <returns>
            A <see cref="T:Sfs2X.Entities.Room"/>
            </returns>
            
            <seealso cref="P:Sfs2X.SmartFox.RoomList"/>
            <seealso cref="T:Sfs2X.Entities.SFSRoom"/>
        </member>
        <member name="M:Sfs2X.SmartFox.GetRoomByName(System.String)">
            <summary>
            Finds a Room from its name or returns null if no Room with that name exist in the room list
            </summary>
            <param name="name">
            Room name
            </param>
            <returns>
            A <see cref="T:Sfs2X.Entities.Room"/>
            </returns>
            
            <seealso cref="P:Sfs2X.SmartFox.RoomList"/>
            <seealso cref="T:Sfs2X.Entities.SFSRoom"/>
        </member>
        <member name="M:Sfs2X.SmartFox.GetRoomListFromGroup(System.String)">
            <summary>
            Return the list of Rooms from a specific Room Group
            </summary>
            <param name="groupId">
            the name of the Group
            </param>
            <returns>
            the list of rooms
            </returns>
            
            <seealso cref="T:Sfs2X.Entities.SFSRoom"/>
        </member>
        <member name="M:Sfs2X.SmartFox.KillConnection">
            <summary>
            Simulate an abrupt disconnection
            For testing/simulations only!!!
            </summary>
        </member>
        <member name="M:Sfs2X.SmartFox.Connect(System.String,System.Int32)">
            <summary>
            Establish connection with SmartFoxServer 2X.
            </summary>
            <remarks>
            If not argument is passed the client will use the settings loaded via <b>LoadConfig</b>
            </remarks>
            
            <param name="host">
            the address of the server to connect to
            </param>
            <param name="port">
            the TCP port (default port used by SFS2X is 9933)
            </param>
            <exception cref="T:System.ArgumentException">if an invalid host/address or port is passed</exception>
            
            <seealso cref="M:Sfs2X.SmartFox.LoadConfig(System.String,System.Boolean)"/>
        </member>
        <member name="M:Sfs2X.SmartFox.Connect">
            <summary>
            <see cref="M:Sfs2X.SmartFox.Connect(System.String,System.Int32)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.SmartFox.Connect(System.String)">
            <summary>
            <see cref="M:Sfs2X.SmartFox.Connect(System.String,System.Int32)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.SmartFox.Disconnect">
            <summary>
            Disconnect from SmartFoxServer.
            </summary>
        </member>
        <member name="M:Sfs2X.SmartFox.InitUDP">
            <summary>
            <see cref="M:Sfs2X.SmartFox.InitUDP(System.String,System.Int32)"/> 
            </summary>
        </member>
        <member name="M:Sfs2X.SmartFox.InitUDP(System.String)">
            <summary>
            <see cref="M:Sfs2X.SmartFox.InitUDP(System.String,System.Int32)"/> 
            </summary>
        </member>
        <member name="M:Sfs2X.SmartFox.InitUDP(System.String,System.Int32)">
            <summary>
            Initialize the UDP protocol by starting an handshake with the server. 
            </summary>
            <remarks>
            This method needs to be called only once. It can be executed at any moment provided that you already started connection to the server.<br/>
            After a successful initialization you can send UDP extension request at any moment.
            <para/>
            <h3>MTU Note:</h3>
            The <b>MTU</b> or Maximum Transmission Unit, represents the largest amount of bytes that can be sent at once before packet fragmentation occurs.<br/>
            Since the UDP protocol uses a "nothing-or-all" appraoch to the transmission, it is important to keep in mind that on average a size of 1100-1200 bytes is probably the maximum you can reach.
            If you exceed the MTU size the data will be "lost in hyperspace" (the internet).
             
            Another interesting matter is that there's no fixed size for the MTU, each operating system uses a slighlty different size. <br/>
            Because of this we suggest a conservative data size of 1000-1200 bytes per packet to avoid packet loss.<br/>
            The SFS2X protocol compression allows to send 2-3KBytes of uncompressed data which usually is squeezed down to a size of ~1000 bytes.<br/>
            <para/>
            If you have larger data to send we suggest to organize it in smaller chunks so that they don't exceed the suggested MTU size.
            <para/>
            More details about the MTU are found here: http://en.wikipedia.org/wiki/Maximum_transmission_unit
            </remarks>
            <example>
            Here is an example of usage:
            <code>
            		smartFox.AddEventListener(SFSEvent.UPD_INIT, OnUDPInit);
            		smartFox.InitUDP();
            
            		void OnUDPInit(BaseEvent evt) {
            			if ((bool)evt.Params["success"]) {
            				// Execute an extension call via UDP
            				smartFox.Send( new ExtensionRequest("udpTest", new SFSObject(), null, true) ):
            			} else {
            				Console.WriteLine("UDP init failed!");
            			}
            		}
            </code>
            </example>
            <param name="udpHost">
            A <see cref="T:System.String"/>
            </param>
            <param name="udpPort">
            A <see cref="T:System.Int32"/>
            </param>
            <seealso cref="F:Sfs2X.Core.SFSEvent.UDP_INIT"/>
        </member>
        <member name="M:Sfs2X.SmartFox.GetReconnectionSeconds">
            <exclude/>
        </member>
        <member name="M:Sfs2X.SmartFox.SetReconnectionSeconds(System.Int32)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.SmartFox.Send(Sfs2X.Requests.IRequest)">
            <summary>
            Sends a request to the Server.  
            </summary>
            <remarks>
            All the available request objects are found under the <i>requests</i> namespace. 
            </remarks>
            <param name="request">
            a request object
            </param>
            
            <example>
            This example shows how to send a login request
            		<code>
            			smartFox.Send( new LoginRequest("KermitTheFrog", "KermitPass", "TheMuppetZone") );
            		</code>
            </example>
            
            <example>
            This example shows how to send a JoinRoom request
            		<code>
            			smartFox.Send( new JoinRoomRequest("Lobby") );
            		</code>
            </example>
            
            <example>
            The following example shows how to send a custom extension request
            		<code>
            			ISFSObject parameters = SFSObject.NewInstance();
            			smartFox.Send( new ExtensionRequest("MyExt", parameters) );
            		</code>
            </example>
            
        </member>
        <member name="M:Sfs2X.SmartFox.LoadConfig(System.String,System.Boolean)">
            <summary>
            Load a client configuration file.
            </summary>
            
            <remarks>
            The SmartFox instance can be configured through an external xml configuration file loaded at run-time.<br/>
            By default, the <b>loadConfig</b> method loads a file named "sfs-config.xml", placed in the same folder of the application swf file.<br/>
            If the <i>autoConnect</i> parameter is set to <c>true</c>, On loading completion the <see cref="M:Sfs2X.SmartFox.Connect(System.String,System.Int32)"/> method is automatically called by the API, otherwise the <see cref="F:Sfs2X.Core.SFSEvent.CONFIG_LOAD_SUCCESS"/> event is dispatched.<br/>
            In case of loading error, the <see cref="F:Sfs2X.Core.SFSEvent.CONFIG_LOAD_FAILURE"/> event id fired.
            <para/>
            <b>NOTE</b>: the SmartFoxClient configuration file (client-side) should not be confused with the SmartFoxServer configuration file (server-side).
            <para/>
            The external xml configuration file has the following structure; ip, port and zone parameters are mandatory, all other parameters are optional.
            			<code>
            			&lt;SmartFoxConfig&gt;
            				&lt;ip&gt;127.0.0.1&lt;/ip&gt;
            				&lt;port&gt;9339&lt;/port&gt;
            				&lt;zone&gt;simpleChat&lt;/zone&gt;
            				&lt;debug&gt;true&lt;/debug&gt;
            				&lt;blueBoxIpAddress&gt;127.0.0.1&lt;/blueBoxIpAddress&gt;
            				&lt;blueBoxPort&gt;9339&lt;/blueBoxPort&gt;
            				&lt;smartConnect&gt;true&lt;/smartConnect&gt;
            				&lt;httpPort&gt;8080&lt;/httpPort&gt;
            				&lt;httpPollSpeed&gt;750&lt;/httpPollSpeed&gt;
            				&lt;rawProtocolSeparator&gt;%&lt;/rawProtocolSeparator&gt;
            			&lt;/SmartFoxConfig&gt;
            			</code>
            </remarks>
            
            <example>
            The following example shows how to load an external configuration file.
            			<code>
            			smartFox.AddEventListener(SFSEvent.CONFIG_LOAD_SUCCESS, OnConfigLoadSuccessHandler);
            			smartFox.AddEventListener(SFSEvent.CONFIG_LOAD_FAILURE, OnConfigLoadFailureHandler);
            			
            			smartFox.LoadConfig("testEnvironmentConfig.xml", false);
            		
            		void OnConfigLoadSuccessHandler(BaseEvent evt) {
            			Console.WriteLine("Config file loaded, now connecting...");
            			smartFox.Connect(smartFox.IpAddress, smartFox.Port);
            		}
            		
            		void OnConfigLoadFailureHandler(BaseEvent evt) {
            			Console.WriteLine("Failed loading config file: " + evt.Params["message"]);
            		}
            		</code>
            </example>
            
            <param name="filePath">
            external xml configuration file name
            </param>
            <param name="connectOnSuccess">
            a boolean flag indicating if the connection to SmartFoxServer must be attempted upon configuration loading completion
            </param>
            
            <seealso cref="F:Sfs2X.Core.SFSEvent.CONFIG_LOAD_SUCCESS"/>
            <seealso cref="F:Sfs2X.Core.SFSEvent.CONFIG_LOAD_FAILURE"/>
        </member>
        <member name="M:Sfs2X.SmartFox.LoadConfig(System.String)">
            <summary>
            <see cref="M:Sfs2X.SmartFox.LoadConfig(System.String,System.Boolean)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.SmartFox.LoadConfig(System.Boolean)">
            <summary>
            <see cref="M:Sfs2X.SmartFox.LoadConfig(System.String,System.Boolean)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.SmartFox.LoadConfig">
            <summary>
            <see cref="M:Sfs2X.SmartFox.LoadConfig(System.String,System.Boolean)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.SmartFox.AddLogListener(Sfs2X.Logging.LogLevel,Sfs2X.Core.EventListenerDelegate)">
            <summary>
            Register delegate method for log message callbacks
            </summary>
            <remarks>
            C# API only
            </remarks>
            
            <param name="logLevel">
            A <see cref="T:Sfs2X.Logging.LogLevel"/>
            </param>
            <param name="eventListener">
            A <see cref="T:Sfs2X.Core.EventListenerDelegate"/>
            </param>
        </member>
        <member name="M:Sfs2X.SmartFox.AddJoinedRoom(Sfs2X.Entities.Room)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.SmartFox.RemoveJoinedRoom(Sfs2X.Entities.Room)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.SmartFox.HandleHandShake(Sfs2X.Core.BaseEvent)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.SmartFox.HandleClientDisconnection(System.String)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.SmartFox.HandleLogout">
            <exclude/>
        </member>
        <member name="M:Sfs2X.SmartFox.ProcessEvents">
            <summary>
            Tells the API to process all event queues and execute the delegate callbacks
            </summary>
            <remarks>
            This has to be done from the client to maintain thread safety
            </remarks>
            <example>
            <code>
            	void FixedUpdate() {
            		smartFox.ProcessEvents();
            }
            </code>
            </example>
        </member>
        <member name="M:Sfs2X.SmartFox.AddEventListener(System.String,Sfs2X.Core.EventListenerDelegate)">
            <summary>
            Adds a delegate to a given API event type that will be used for callbacks
            </summary>
            <param name="eventType">The SFSEvent event to get callbacks on</param>
            <param name="listener">The delegate method to register</param>
            <example>
            <code>
            smartFox.AddEventListener(SFSEvent.CONNECTION, OnConnection);
            
            	public void OnConnection(BaseEvent evt) {
            		bool success = (bool)evt.Params["success"];
                    string error = (string)evt.Params["error"];
            		Debug.Log("On Connection callback got: " + success + " (error : " + error + ")");
            	}
            </code>
            </example>
            <seealso cref="T:Sfs2X.Core.SFSEvent"/>
        </member>
        <member name="M:Sfs2X.SmartFox.RemoveEventListener(System.String,Sfs2X.Core.EventListenerDelegate)">
            <summary>
            Removes a delegate registration from a given registered event
            </summary>
            <param name="eventType"></param>
            <param name="listener"></param>
        </member>
        <member name="M:Sfs2X.SmartFox.RemoveAllEventListeners">
            <summary>
            Removed all event listeners
            </summary>
            <remarks>
            Note: log delegates need to be removed separately
            </remarks>
        </member>
        <member name="P:Sfs2X.SmartFox.IsConnected">
            <summary>
            Returns true if the client connection is active
            </summary>
        </member>
        <member name="P:Sfs2X.SmartFox.Version">
            <summary>
            Return the API current version
            </summary>
        </member>
        <member name="P:Sfs2X.SmartFox.Config">
            <summary>
            Get the current client configuration. It can return null if the configuration was not loaded
            </summary>
            
            <seealso cref="M:Sfs2X.SmartFox.LoadConfig(System.String,System.Boolean)"/>
        </member>
        <member name="P:Sfs2X.SmartFox.CompressionThreshold">
            <summary>
            Return the current compression threshold: the value represent the maximum message size (in bytes) before the protocol compression is activated. 
            </summary>
            <remarks>
            The value is determined by the server configuration.
            </remarks>
        </member>
        <member name="P:Sfs2X.SmartFox.Debug">
            <summary>
            When set to true provides detailed debugging data for all incoming/outgoing messages
            </summary>
        </member>
        <member name="P:Sfs2X.SmartFox.CurrentIp">
            <summary>
            The address where the client is connected (if the client is connected)
            </summary>
            
            <seealso cref="M:Sfs2X.SmartFox.Connect(System.String,System.Int32)"/>
            <seealso cref="M:Sfs2X.SmartFox.LoadConfig(System.String,System.Boolean)"/>
        </member>
        <member name="P:Sfs2X.SmartFox.CurrentPort">
            <summary>
            The TCP port of the server where the client is connected (if the client is connected)
            </summary>
            
            <seealso cref="M:Sfs2X.SmartFox.Connect(System.String,System.Int32)"/>
            <seealso cref="M:Sfs2X.SmartFox.LoadConfig(System.String,System.Boolean)"/>
        </member>
        <member name="P:Sfs2X.SmartFox.CurrentZone">
            <summary>
            The current Zone in use, if user is logged in
            </summary>
            
            <seealso cref="M:Sfs2X.SmartFox.LoadConfig(System.String,System.Boolean)"/>
            <seealso cref="T:Sfs2X.Requests.LoginRequest"/>
        </member>
        <member name="P:Sfs2X.SmartFox.MySelf">
            <summary>
            This User object represents the User connected to SmartFoxServer 2X
            </summary>
            <remarks>
            The object is generated upon successful login.
            </remarks>
            <seealso cref="T:Sfs2X.Requests.LoginRequest"/>
        </member>
        <member name="P:Sfs2X.SmartFox.Logger">
            <summary>
            Get a reference to the logger
            </summary>
        </member>
        <member name="P:Sfs2X.SmartFox.LastJoinedRoom">
            <summary>
            Return the last joined Room, if any. Null is returned if there's no currently joined Room
            </summary>
            
            <seealso cref="T:Sfs2X.Requests.JoinRoomRequest"/>
        </member>
        <member name="P:Sfs2X.SmartFox.JoinedRooms">
            <summary>
            Returns a list of Rooms currently joined by the client
            </summary>
            <seealso cref="T:Sfs2X.Requests.JoinRoomRequest"/>
        </member>
        <member name="P:Sfs2X.SmartFox.RoomList">
            <summary>
            Returns the list of Rooms currently "watched" by the client.
            </summary>
            <remarks>
            The list will contain all the Rooms that are currently joined and all the Rooms from the Room Groups that are subscribed.<br/>
            At login time the User is automatically subscribed to all Room Groups specified in the Zone's <b>Default Groups</b> setting
            </remarks>
            <seealso cref="T:Sfs2X.Requests.JoinRoomRequest"/>
            <seealso cref="T:Sfs2X.Requests.SubscribeRoomGroupRequest"/>
            <seealso cref="T:Sfs2X.Requests.UnsubscribeRoomGroupRequest"/>
        </member>
        <member name="P:Sfs2X.SmartFox.RoomManager">
            <summary>
            Returns the Room Manager.
            </summary>
            <seealso cref="T:Sfs2X.Entities.Managers.SFSRoomManager"/>
        </member>
        <member name="P:Sfs2X.SmartFox.UserManager">
            <summary>
            Returns the User Manager.
            </summary>
            <seealso cref="T:Sfs2X.Entities.Managers.SFSUserManager"/>
        </member>
        <member name="P:Sfs2X.SmartFox.BuddyManager">
            <summary>
            Returns the Buddy Manager.
            </summary>
            <seealso cref="T:Sfs2X.Entities.Managers.SFSBuddyManager"/>
        </member>
        <member name="P:Sfs2X.SmartFox.UdpAvailable">
            <summary>
            The method returns true if the current runtime supports UDP.
            </summary>
            <remarks>
            UPD Protocol is available for Unity always and will always return true. Added for compatibility reasons with other APIs
            <para/>
            Using the UDP protocol in an application requires that a handshake is performed between client and server.
            By default This is NOT done by the API to avoid allocating resources that might never be used
            <para/>
            In order to activate the UDP support you will have to explicitly invoke the <b>initUDP</b> method.
            </remarks>
            <seealso cref="M:Sfs2X.SmartFox.InitUDP(System.String,System.Int32)"/>
        </member>
        <member name="P:Sfs2X.SmartFox.UdpInited">
            <summary>
            Return true if the UDP handshake has been performed successfully
            </summary>
            <seealso cref="M:Sfs2X.SmartFox.InitUDP(System.String,System.Int32)"/>
        </member>
        <member name="P:Sfs2X.SmartFox.IsJoining">
            <exclude/>
        </member>
        <member name="P:Sfs2X.SmartFox.SessionToken">
            <summary>
            Return the unique session token.
            </summary>
            <remarks>
            The Session token is a String sent by the server to the client after the initial handshake
            </remarks>
        </member>
        <member name="P:Sfs2X.SmartFox.ThreadSafeMode">
            <summary>
            When true (default) sets the API to be run with an event queue that needs to be processed from the client
            </summary>
            <remarks>
            When run in Unity, this <b>has</b> to be true. Otherwise you will get random crashes.
            </remarks>
            <seealso cref="M:Sfs2X.SmartFox.ProcessEvents"/>
        </member>
        <member name="T:Sfs2X.Requests.Game.CreateSFSGameRequest">
            <summary>
            The request launches a new public or private game, including game invitations, player matching and a lot more.
            </summary>
            <remarks>
            The game is launched via the creation of an <b>SFSGame</b>, a specialized Room type that provides advanced features during the creation phase of a game. 
            <para/>
            A more in-depth overview of the SFS2X Game API is provided in the general documentation
            </remarks>
            <seealso cref="T:Sfs2X.Requests.Game.SFSGameSettings"/>
        </member>
        <member name="F:Sfs2X.Requests.Game.CreateSFSGameRequest.KEY_IS_PUBLIC">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.Game.CreateSFSGameRequest.KEY_MIN_PLAYERS">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.Game.CreateSFSGameRequest.KEY_INVITED_PLAYERS">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.Game.CreateSFSGameRequest.KEY_SEARCHABLE_ROOMS">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.Game.CreateSFSGameRequest.KEY_PLAYER_MATCH_EXP">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.Game.CreateSFSGameRequest.KEY_SPECTATOR_MATCH_EXP">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.Game.CreateSFSGameRequest.KEY_INVITATION_EXPIRY">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.Game.CreateSFSGameRequest.KEY_LEAVE_ROOM">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.Game.CreateSFSGameRequest.KEY_NOTIFY_GAME_STARTED">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.Game.CreateSFSGameRequest.KEY_INVITATION_PARAMS">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.Game.CreateSFSGameRequest.#ctor(Sfs2X.Requests.Game.SFSGameSettings)">
            <summary>
            Constructor
            </summary>
            <param name="settings">
            the game Room settings
            </param>
            <example>
            <code>
            			// Add event listener for Room events
            			smartFox.AddEventListener(SFSEvent.ROOM_ADD, OnRoomCreated);
            			smartFox.AddEventListener(SFSEvent.ROOM_CREATION_ERROR, OnRoomError);
            			
            			// Prepare the settings for a public game
            			SFSGameSettings settings = new SFSGameSettings("DartsGame");
            			settings.MaxUsers = 2;
            			settings.MaxSpectators = 8;
            			settings.IsPublic = true;
            			settings.MinPlayersToStartGame = 2;
            			settings.NotifyGameStarted = true;
            			
            			// The Match expression for filtering users joining the Room
            			settings.PlayerMatchExpression = new MatchExpression("bestScore", NumberMatch.GREATER_THAN, 100);
            
            			// A Room Variable with a description of the Room
            			List&lt;SFSRoomVariable&gt; roomVars = new List&lt;SFSRoomVariable&gt;();
            			roomVars.Add(new SFSRoomVariable("desc", "Darts game, public, bestScore &gt; 100"));
            			settings.variables = roomVars;
            
            			// Create the Room!
            			smartFox.Send( new CreateSFSGameRequest(settings) );
            
            			void OnRoomCreated(BaseEvent evt) {
            				Console.WriteLine("Room created: " + (Room)evt.Params["room"]);
            			}
            
            			void OnRoomError(BaseEvent evt) {
            				Console.WriteLine("Room creation failure: " + (string)evt.Params["errorMessage"]);
            			}
            
            			</code>
            </example>
            <seealso cref="T:Sfs2X.Requests.Game.SFSGameSettings"/>
            <seealso cref="T:Sfs2X.Entities.Match.MatchExpression"/>
            <seealso cref="T:Sfs2X.Entities.Invitation.SFSInvitation"/>
            <seealso cref="F:Sfs2X.Core.SFSEvent.ROOM_ADD"/>
            <seealso cref="F:Sfs2X.Core.SFSEvent.ROOM_CREATION_ERROR"/>
        </member>
        <member name="M:Sfs2X.Requests.Game.CreateSFSGameRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.Game.CreateSFSGameRequest.Execute(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Entities.Match.LogicOperator">
            <summary>
            The LogicOperator is used to concatenate two MatchExpression together using a logical AND / OR operator
            </summary>
            <seealso cref="T:Sfs2X.Entities.Match.MatchExpression"/>
        </member>
        <member name="M:Sfs2X.Entities.Match.LogicOperator.#ctor(System.String)">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Entities.Managers.IBuddyManager">
            <summary>
            The BuddyList Manager interface
            </summary>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IBuddyManager.AddBuddy(Sfs2X.Entities.Buddy)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IBuddyManager.RemoveBuddyById(System.Int32)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IBuddyManager.RemoveBuddyByName(System.String)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IBuddyManager.ContainsBuddy(System.String)">
            <summary>
            Checks if a Buddy is present in the current User's Buddy List
            </summary>
            <param name="name">
            the Buddy name
            </param>
            <returns>
            true if the Buddy exists
            </returns>
            <seealso cref="T:Sfs2X.Entities.SFSBuddy"/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IBuddyManager.GetBuddyById(System.Int32)">
            <summary>
            Find a Buddy from its User Id
            </summary>
            <param name="id">
            the user id
            </param>
            <returns>
            the Buddy, or null if not found
            </returns>
            <seealso cref="T:Sfs2X.Entities.SFSBuddy"/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IBuddyManager.GetBuddyByName(System.String)">
            <summary>
            Find a Buddy from its name
            </summary>
            <param name="name">
            the Buddy name
            </param>
            <returns>
            the Buddy, or null if not found
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IBuddyManager.GetBuddyByNickName(System.String)">
            <summary>
            Find a Buddy from its optional nick name
            </summary>
            <param name="nickName">
            Athe nickname
            </param>
            <returns>
            the Buddy, or null if not found
            </returns>
            <seealso cref="T:Sfs2X.Entities.SFSBuddy"/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IBuddyManager.GetMyVariable(System.String)">
            <summary>
            Get current Users' BuddyVariable by name
            </summary>
            <param name="varName">
            the variable name
            </param>
            <returns>
            A <see cref="T:Sfs2X.Entities.Variables.BuddyVariable"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IBuddyManager.SetMyVariable(Sfs2X.Entities.Variables.BuddyVariable)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IBuddyManager.ClearAll">
            <exclude/>
        </member>
        <member name="P:Sfs2X.Entities.Managers.IBuddyManager.Inited">
            <summary>
            Checks if the current User's Buddy List is inited.
            </summary>
            <remarks>
            If not you should send an InitBuddyListRequest to the server in order to retrieve your persistent Buddy List data.
            </remarks>
            <seealso cref="T:Sfs2X.Requests.InitBuddyListRequest"/>
        </member>
        <member name="P:Sfs2X.Entities.Managers.IBuddyManager.OfflineBuddies">
            <summary>
            Get a list of all online Buddies in the User's Buddy list
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.Managers.IBuddyManager.OnlineBuddies">
            <summary>
            Get a list of all offline Buddies in the User's Buddy list
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.Managers.IBuddyManager.BuddyList">
            <summary>
            Get the User's buddy list. It could be null if the Buddy List was not initialized
            </summary>
            <seealso cref="T:Sfs2X.Requests.InitBuddyListRequest"/>
        </member>
        <member name="P:Sfs2X.Entities.Managers.IBuddyManager.BuddyStates">
            <summary>
            Get a list of Strings representing the custom Buddy states that the application can use. The custom states are sent upon initialization of the Buddy List and are configured on the server side.
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.Managers.IBuddyManager.MyVariables">
            <summary>
            Get all current User's Buddy Variables
            </summary>
            <remarks>
            This operation is valid only if the User's BuddyList has already been initialized
            </remarks>
            <seealso cref="T:Sfs2X.Entities.Variables.SFSBuddyVariable"/>
        </member>
        <member name="P:Sfs2X.Entities.Managers.IBuddyManager.MyOnlineState">
            <summary>
            Get the current User's Online State
            </summary>
            <remarks>
            This operation is valid only if the User's BuddyList has already been initialized<br/>
            The value is handled by a reserved Buddy Variable
            <para/>
            Returns true if the User is online, false otherwise
            </remarks>
            <seealso cref="T:Sfs2X.Entities.Variables.ReservedBuddyVariables"/>
        </member>
        <member name="P:Sfs2X.Entities.Managers.IBuddyManager.MyNickName">
            <summary>
            Get the current User's optional nickname
            </summary>
            <remarks>
            This operation is valid only if the User's BuddyList has already been initialized<br/>
            The value is handled by a reserved Buddy Variable
            <para/>
            Returns the Users' nickname or null if the nickname was never set
            </remarks>
            <seealso cref="T:Sfs2X.Entities.Variables.ReservedBuddyVariables"/>
        </member>
        <member name="P:Sfs2X.Entities.Managers.IBuddyManager.MyState">
            <summary>
            Get the current User's optional custom state (e.g. "Available"; "Busy", "Be right back"...)
            </summary>
            <remarks>
            This operation is valid only if the User's BuddyList has already been initialized<br/>
            The value is handled by a reserved Buddy Variable
            </remarks>
            <seealso cref="T:Sfs2X.Entities.Variables.ReservedBuddyVariables"/>
        </member>
        <member name="M:Sfs2X.Entities.Variables.UserVariable.GetBoolValue">
            <summary>
            The Variable value as Boolean
            </summary>
            <returns>
            A <see cref="T:System.Boolean"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Variables.UserVariable.GetIntValue">
            <summary>
            The Variable value as int
            </summary>
            <returns>
            A <see cref="T:System.Int32"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Variables.UserVariable.GetDoubleValue">
            <summary>
            The Variable value as Double
            </summary>
            <returns>
            A <see cref="T:System.Double"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Variables.UserVariable.GetStringValue">
            <summary>
            The Variable value as String
            </summary>
            <returns>
            A <see cref="T:System.String"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Variables.UserVariable.GetSFSObjectValue">
            <summary>
            The Variable value as SFSObject
            </summary>
            <returns>
            A <see cref="T:Sfs2X.Entities.Data.ISFSObject"/>
            </returns>
            <seealso cref="T:Sfs2X.Entities.Data.SFSObject"/>
        </member>
        <member name="M:Sfs2X.Entities.Variables.UserVariable.GetSFSArrayValue">
            <summary>
            The Variable value as SFSArray
            </summary>
            <returns>
            A <see cref="T:Sfs2X.Entities.Data.ISFSArray"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Variables.UserVariable.IsNull">
            <summary>
            Checks if the variable value is null
            </summary>
            <returns>
            A <see cref="T:System.Boolean"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Variables.UserVariable.ToSFSArray">
            <exclude/>
        </member>
        <member name="P:Sfs2X.Entities.Variables.UserVariable.Name">
            <summary>
            The Variable name
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.Variables.UserVariable.Type">
            <summary>
            The Variable Type
            </summary>
            <seealso cref="T:Sfs2X.Entities.Variables.VariableType"/>
        </member>
        <member name="P:Sfs2X.Entities.Variables.UserVariable.Value">
            <summary>
            The Variable value
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.Variables.RoomVariable.IsPrivate">
            <summary>
            Checks if the variable is private. 
            </summary>
            <remarks>
            A private RoomVariable is only modifiable by its owner (the user that created it)
            </remarks>
        </member>
        <member name="P:Sfs2X.Entities.Variables.RoomVariable.IsPersistent">
            <summary>
            Checks if the variable is persistent. 
            </summary>
            <remarks>
            A persistent RoomVariable continues to exist in a Room after the User has left it and until he disconnects
            </remarks>
        </member>
        <member name="T:Sfs2X.Requests.LoginRequest">
            <summary>
            Join one of the Zones in the Server.
            </summary>
            <remarks>
            Each Zone represents a different application running independently<br/>
            In order to join a Zone a user name and password are usually required.<br/>
            If the Zone allows guest users, user name and password are not needed and a guest name will be created on the server side<br/>
            If the Zone uses a server side extension to handle the login, you can also send a custom SFSObject with any extra parameters.<br/>
            </remarks>
        </member>
        <member name="F:Sfs2X.Requests.LoginRequest.KEY_ZONE_NAME">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.LoginRequest.KEY_USER_NAME">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.LoginRequest.KEY_PASSWORD">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.LoginRequest.KEY_PARAMS">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.LoginRequest.KEY_PRIVILEGE_ID">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.LoginRequest.KEY_ID">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.LoginRequest.KEY_ROOMLIST">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.LoginRequest.KEY_RECONNECTION_SECONDS">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.LoginRequest.#ctor(System.String,System.String,System.String,Sfs2X.Entities.Data.ISFSObject)">
            <summary>
            Constructor
            </summary>
            <param name="userName">
            the user name (optional)
            </param>
            <param name="password">
            the password (optional)
            </param>
            <param name="zoneName">
            the name of an existing Zone in the server (case sensitive, 'SimpleChat' != 'simplechat'). If no Zone is specified the SmartFox.Config.Zone parameter will be used.
            </param>
            <param name="parameters">
            the custom parameters (optional, if you use an Extension on server side to handle the login)
            </param>
            <example>
            <code>
            			smartFox.AddEventListener(SFSEvent.LOGIN, OnLogin);
            			smartFox.AddEventListener(SFSEvent.LOGIN_ERROR, OnLoginError);
            			
            			// Login passing only the user name, no password and the zone name is obtained
            			// from the previously loaded configuration
            			smartFox.Send(new LoginRequest("FozzieTheBear"));
            
            			void OnLogin(BaseEvent evt) {
            				Console.WriteLine("Login success!");
            			}
            
            			void OnLoginError(BaseEvent evt) {
            				Console.WriteLine("Login failure: " + (string)evt.Params["errorMessage"]);
            			}
            
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSEvent.LOGIN"/>
            <seealso cref="F:Sfs2X.Core.SFSEvent.LOGIN_ERROR"/>
            <seealso cref="M:Sfs2X.SmartFox.LoadConfig(System.String,System.Boolean)"/>
        </member>
        <member name="M:Sfs2X.Requests.LoginRequest.#ctor(System.String,System.String,System.String)">
            <summary>
            <see cref="M:Sfs2X.Requests.LoginRequest.#ctor(System.String,System.String,System.String,Sfs2X.Entities.Data.ISFSObject)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.LoginRequest.#ctor(System.String,System.String)">
            <summary>
            <see cref="M:Sfs2X.Requests.LoginRequest.#ctor(System.String,System.String,System.String,Sfs2X.Entities.Data.ISFSObject)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.LoginRequest.#ctor(System.String)">
            <summary>
            <see cref="M:Sfs2X.Requests.LoginRequest.#ctor(System.String,System.String,System.String,Sfs2X.Entities.Data.ISFSObject)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.LoginRequest.Execute(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.LoginRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Util.SFSErrorCodes">
            <summary>
            Provides a mean of translation between Server error codes and their relative error messages.
            </summary>
            <remarks>
            Error messages are provided by default in the English language but they can be localized and substituted in any other language.
            <para/>
            The error messages contain special placeholders that are processed at runtime and substituted with runtime data. They are in the form of a number enclosed in curly brackets such as: {0}, {1} etc... 
            <para/>
            Please be sure to maintain these placeholders while translating the messages. 
            </remarks>
        </member>
        <member name="F:Sfs2X.Entities.Variables.ReservedRoomVariables.RV_GAME_STARTED">
            <summary>
            Used by the SFSGame Room to notify the started/stopped status of the Game
            </summary>
            <seealso cref="T:Sfs2X.Requests.Game.CreateSFSGameRequest"/>
        </member>
        <member name="T:Sfs2X.Requests.Game.InvitationReplyRequest">
            <summary>
            Send a reply to an Invitation.
            </summary>
            <remarks>
            The reply can be either an ACCEPT or REFUSE. If the reply doesn't get to the inviter within the expected amount of time the system will handle it as a REFUSE.
            </remarks>
        </member>
        <member name="F:Sfs2X.Requests.Game.InvitationReplyRequest.KEY_INVITATION_ID">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.Game.InvitationReplyRequest.KEY_INVITATION_REPLY">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.Game.InvitationReplyRequest.KEY_INVITATION_PARAMS">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.Game.InvitationReplyRequest.#ctor(Sfs2X.Entities.Invitation.Invitation,Sfs2X.Entities.Invitation.InvitationReply)">
            <summary>
            <see cref="M:Sfs2X.Requests.Game.InvitationReplyRequest.#ctor(Sfs2X.Entities.Invitation.Invitation,Sfs2X.Entities.Invitation.InvitationReply,Sfs2X.Entities.Data.ISFSObject)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.Game.InvitationReplyRequest.#ctor(Sfs2X.Entities.Invitation.Invitation,Sfs2X.Entities.Invitation.InvitationReply,Sfs2X.Entities.Data.ISFSObject)">
            <summary>
            Constructor
            </summary>
            <param name="invitation">
            a reference to the received invitation
            </param>
            <param name="reply">
            the reply code
            </param>
            <param name="parameters">
            custom reply parameters
            </param>
            <example>
            <code>
            			smartFox.AddEventListener(SFSEvent.INVITATION, OnInvitationReceived);
            			smartFox.AddEventListener(SFSEvent.INVITATION_REPLY_ERROR, OnInvitationReplyError);
            			
            			// Handle an invitation
            			void OnInvitationReply(BaseEvent evt) {
            				// Let's accept this invitation			
            				smartFox.Send( new InvitationReplyRequest((Invitation)evt.Params["invitation"], InvitationReply.ACCEPT) );
            			}
            			
            			// Handle problems with the invitation reply
            			void OnInvitationReply(BaseEvent evt) {	
            				Console.WriteLine("Ach! Reply failed: " + (string)evt.Params["errorMessage"]);
            			}
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSEvent.INVITATION_REPLY_ERROR"/>
            <seealso cref="T:Sfs2X.Entities.Invitation.SFSInvitation"/>
            <seealso cref="T:Sfs2X.Entities.Invitation.InvitationReply"/>
        </member>
        <member name="M:Sfs2X.Requests.Game.InvitationReplyRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.Game.InvitationReplyRequest.Execute(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Entities.Invitation.InvitationReply">
            <summary>
            Provides two constants used for replying to an Invitation
            </summary>
            <seealso cref="T:Sfs2X.Entities.Invitation.SFSInvitation"/>
            <seealso cref="T:Sfs2X.Requests.Game.InviteUsersRequest"/>
        </member>
        <member name="F:Sfs2X.Entities.Invitation.InvitationReply.ACCEPT">
            <summary>
            Accept the Invitation
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Invitation.InvitationReply.REFUSE">
            <summary>
            Refuse the Invitation
            </summary>
        </member>
        <member name="T:Sfs2X.Entities.Match.BoolMatch">
            <summary>
            This matcher is used in MatchExpressions to check boolean conditions
            </summary>
            <seealso cref="T:Sfs2X.Entities.Match.MatchExpression"/>
        </member>
        <member name="F:Sfs2X.Entities.Match.BoolMatch.EQUALS">
            <summary>
            Checks that Bool1 == Bool2
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Match.BoolMatch.NOT_EQUALS">
            <summary>
            Checks that Bool1 != Bool2
            </summary>
        </member>
        <member name="M:Sfs2X.Entities.Match.BoolMatch.#ctor(System.String)">
            <exclude/>
        </member>
        <member name="P:Sfs2X.Entities.Match.BoolMatch.Symbol">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.Match.BoolMatch.Type">
            <inheritdoc />
        </member>
        <member name="T:Sfs2X.Util.BuddyOnlineState">
            <summary>
            Provide information on the Online Status of the Buddy
            </summary>
        </member>
        <member name="F:Sfs2X.Util.BuddyOnlineState.ONLINE">
            <summary>
            The Buddy is online
            </summary>
        </member>
        <member name="F:Sfs2X.Util.BuddyOnlineState.OFFLINE">
            <summary>
            The Buddy is offline in the Buddy system
            </summary>
        </member>
        <member name="F:Sfs2X.Util.BuddyOnlineState.LEFT_THE_SERVER">
            <summary>
            The Buddy left the server
            </summary>
        </member>
        <member name="M:Sfs2X.Entities.User.GetPlayerId(Sfs2X.Entities.Room)">
            <summary>
            Return the <b>playerId</b> for the specific Room.
            </summary>
            <remarks>
            If you don't use multi-room you can use <c>User.PlayerId</c>
            </remarks>
            <param name="room">
            A <see cref="T:Sfs2X.Entities.Room"/>
            </param>
            <returns>
            A <see cref="T:System.Int32"/>
            </returns>
            <seealso cref="P:Sfs2X.Entities.User.PlayerId"/>
        </member>
        <member name="M:Sfs2X.Entities.User.SetPlayerId(System.Int32,Sfs2X.Entities.Room)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.User.RemovePlayerId(Sfs2X.Entities.Room)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.User.IsGuest">
            <summary>
            Return true if the User is logged in as guest user
            </summary>
            <returns>
            A <see cref="T:System.Boolean"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.User.IsStandardUser">
            <summary>
            Return true if the User is logged in as standard user
            </summary>
            <returns>
            A <see cref="T:System.Boolean"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.User.IsModerator">
            <summary>
            Return true if the User is logged in as moderator user
            </summary>
            <returns>
            A <see cref="T:System.Boolean"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.User.IsAdmin">
            <summary>
            Return true if the User is logged in as administrator user
            </summary>
            <returns>
            A <see cref="T:System.Boolean"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.User.IsPlayerInRoom(Sfs2X.Entities.Room)">
            <summary>
            Return true if the User is a Player in the specified Room
            </summary>
            <param name="room">
            A <see cref="T:Sfs2X.Entities.Room"/>
            </param>
            <returns>
            A <see cref="T:System.Boolean"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.User.IsSpectatorInRoom(Sfs2X.Entities.Room)">
            <summary>
            Return true if the User is a Spectator in the specified Room
            </summary>
            <param name="room">
            A <see cref="T:Sfs2X.Entities.Room"/>
            </param>
            <returns>
            A <see cref="T:System.Boolean"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.User.IsJoinedInRoom(Sfs2X.Entities.Room)">
            <summary>
            Return true if the User is joined in the specified Room
            </summary>
            <param name="room">
            A <see cref="T:Sfs2X.Entities.Room"/>
            </param>
            <returns>
            A <see cref="T:System.Boolean"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.User.GetVariables">
            <summary>
            Get all the User Variables
            </summary>
            <returns>
            A <see cref="T:System.Collections.Generic.List`1"/>
            </returns>
            <seealso cref="T:Sfs2X.Entities.Variables.UserVariable"/>
        </member>
        <member name="M:Sfs2X.Entities.User.GetVariable(System.String)">
            <summary>
            Get a UserVariable
            </summary>
            <param name="varName">
            the name of the variable
            </param>
            <returns>
            the UserVariable or null if the variable doesn't exist
            </returns>
            <seealso cref="T:Sfs2X.Entities.Variables.UserVariable"/>
        </member>
        <member name="M:Sfs2X.Entities.User.SetVariable(Sfs2X.Entities.Variables.UserVariable)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.User.SetVariables(System.Collections.Generic.ICollection{Sfs2X.Entities.Variables.UserVariable})">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.User.ContainsVariable(System.String)">
            <summary>
            Check if a UserVariable exists 
            </summary>
            <param name="name">
            the name of the variable
            </param>
            <returns>
            true if the UserVariable exists
            </returns>
            <seealso cref="T:Sfs2X.Entities.Variables.UserVariable"/>
        </member>
        <member name="P:Sfs2X.Entities.User.Id">
            <summary>
            Get the unique User Id
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.User.Name">
            <summary>
            The user name
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.User.PlayerId">
            <summary>
            Get the <b>playerId</b> of the User.
            </summary>
            <remarks>
            The <b>playerId</b> is different from the User ID and it used to indicate which player number is the user inside a Game Room.
            Example: in a Game Room for 5 players the first client joining will have <b>playerId = 1</b>, the 2nd will have <b>playerId = 2</b> and so forth. 
            When a User leaves the Room its player slot is freed up and the next User joining the Room will take it.
            
            The <b>playerId</b> is only applicable for Game Rooms, in the other Rooms it is always == 0
            A playerId &lt; 0 indicates that the User is a spectator.
            
            If the User is joined in multiple game Rooms at the same time he will be assigned one <b>playerId</b> per Room.
            In order to obtain a specific <b>playerId</b> you can use the <c>User.GetPlayerId(Room room)</c> method.
            </remarks>
        </member>
        <member name="P:Sfs2X.Entities.User.IsPlayer">
            <summary>
            Return true if the User is a Player (playerId &gt; 0) in the last joined Room
            </summary>
            <remarks>
            Non game Rooms will always return false
            </remarks>
            <seealso cref="P:Sfs2X.SmartFox.LastJoinedRoom"/>
        </member>
        <member name="P:Sfs2X.Entities.User.IsSpectator">
            <summary>
            Return true if the User is a Spectator (playerId &lt; 0) in the last joined Room
            </summary>
            <remarks>
            Non game Rooms will always return false
            </remarks>
            <seealso cref="P:Sfs2X.SmartFox.LastJoinedRoom"/>
        </member>
        <member name="P:Sfs2X.Entities.User.PrivilegeId">
            <summary>
            Get the privilegeId of the User
            </summary>
            <seealso cref="T:Sfs2X.Entities.UserPrivileges"/>
        </member>
        <member name="P:Sfs2X.Entities.User.UserManager">
            <summary>
            Get the UserManager of this User
            </summary>
            <seealso cref="T:Sfs2X.Entities.Managers.SFSUserManager"/>
        </member>
        <member name="P:Sfs2X.Entities.User.IsItMe">
            <summary>
            Return true if the User object is the client's User object, also known as <c>SmartFox.MySelf</c>
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.User.Properties">
            <summary>
            A generic object that can be used to store any User custom data needed at runtime.
            </summary>
            <remarks>
            The values added/removed in this object are for client side use only an are never transmitted to the Server.
            </remarks>
        </member>
        <member name="M:Sfs2X.Entities.Room.AddUser(Sfs2X.Entities.User)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Room.RemoveUser(Sfs2X.Entities.User)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Room.ContainsUser(Sfs2X.Entities.User)">
            <summary>
            Returns true if the the User is found in this Room
            </summary>
            <param name="user">
            A <see cref="T:Sfs2X.Entities.User"/>
            </param>
            <returns>
            A <see cref="T:System.Boolean"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Room.GetUserByName(System.String)">
            <summary>
            Finds a User from its name
            </summary>
            <param name="name">
            the User name
            </param>
            <returns>
            the User or null if not found
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Room.GetUserById(System.Int32)">
            <summary>
            Finds a User from its Id
            </summary>
            <param name="id">
            the User Id
            </param>
            <returns>
            the User or null if not found
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Room.GetVariable(System.String)">
            <summary>
            Gets a RoomVariable in the Room
            </summary>
            <param name="name">
            the variable name
            </param>
            <returns>
            the RoomVariable or null if the variable doesn't exist
            </returns>
            <seealso cref="T:Sfs2X.Entities.Variables.RoomVariable"/>
        </member>
        <member name="M:Sfs2X.Entities.Room.GetVariables">
            <summary>
            Return the full list of RoomVariables in the Room 
            </summary>
            <returns>
            A <see cref="T:System.Collections.Generic.List`1"/>
            </returns>
            <seealso cref="T:Sfs2X.Entities.Variables.RoomVariable"/>
        </member>
        <member name="M:Sfs2X.Entities.Room.SetVariable(Sfs2X.Entities.Variables.RoomVariable)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Room.SetVariables(System.Collections.Generic.ICollection{Sfs2X.Entities.Variables.RoomVariable})">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Room.ContainsVariable(System.String)">
            <summary>
            Returns true if a RoomVariable with the passed name exists in the Room
            </summary>
            <param name="name">
            A <see cref="T:System.String"/>
            </param>
            <returns>
            A <see cref="T:System.Boolean"/>
            </returns>
            <seealso cref="T:Sfs2X.Entities.Variables.RoomVariable"/>
        </member>
        <member name="P:Sfs2X.Entities.Room.Id">
            <summary>
            The unique Id of the Room
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.Room.Name">
            <summary>
            The unique name of the Room
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.Room.GroupId">
            <summary>
            The Room <b>Group</b> name
            </summary>
            <remarks>
            Each <b>Group</b> is identified by a unique String and it represent a different 'container' for Rooms.
            The idea behind the Room Groups is to enable the developer to organize Rooms under different types or categories and let clients select only those Groups they are interested in.
            This is done via the <c>SubscribeRoomGroupRequest</c> and <c>UnsubscribeRoomGroupRequest</c> requests.
            </remarks>
            
            <seealso cref="T:Sfs2X.Requests.SubscribeRoomGroupRequest"/>
            <seealso cref="T:Sfs2X.Requests.UnsubscribeRoomGroupRequest"/>
        </member>
        <member name="P:Sfs2X.Entities.Room.IsJoined">
            <summary>
            Returns true if the Room is joined by the client User
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.Room.IsGame">
            <summary>
            Returns true is this is a game Room
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.Room.IsHidden">
            <summary>
            Returns true if the Room <b>hidden</b> flag is turned on.
            </summary>
            <remarks>
            The flag can be used to hide the rooms marked with this flag from the User  
            </remarks>
        </member>
        <member name="P:Sfs2X.Entities.Room.IsPasswordProtected">
            <summary>
            Returns true if the Room requires a password to be joined
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.Room.IsManaged">
            <exclude/>
        </member>
        <member name="P:Sfs2X.Entities.Room.UserCount">
            <summary>
            Get the number of Users in the Room
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.Room.MaxUsers">
            <summary>
            Get the max number of Users allowed in the Room
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.Room.SpectatorCount">
            <summary>
            Get the number of Spectators in the Room (applies only for game Rooms)
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.Room.MaxSpectators">
            <summary>
            Get the max number of Spectators allowed in the Room (applies only for game Rooms)
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.Room.UserList">
            <summary>
            The Room User-list
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.Room.Properties">
            <summary>
            A generic object that can be used to store any Room custom data needed at runtime.
            </summary>
            <remarks>
            The values added/removed in this object are for client side use only an are never transmitted to the Server.
            </remarks>
        </member>
        <member name="P:Sfs2X.Entities.Room.RoomManager">
            <summary>
            A reference to the RoomManager, managing this Room
            </summary>
        </member>
        <member name="M:ComponentAce.Compression.Libs.zlib.SupportClass.Identity(System.Int64)">
            <summary>
            This method returns the literal value received
            </summary>
            <param name="literal">The literal to return</param>
            <returns>The received value</returns>
        </member>
        <member name="M:ComponentAce.Compression.Libs.zlib.SupportClass.Identity(System.UInt64)">
            <summary>
            This method returns the literal value received
            </summary>
            <param name="literal">The literal to return</param>
            <returns>The received value</returns>
        </member>
        <member name="M:ComponentAce.Compression.Libs.zlib.SupportClass.Identity(System.Single)">
            <summary>
            This method returns the literal value received
            </summary>
            <param name="literal">The literal to return</param>
            <returns>The received value</returns>
        </member>
        <member name="M:ComponentAce.Compression.Libs.zlib.SupportClass.Identity(System.Double)">
            <summary>
            This method returns the literal value received
            </summary>
            <param name="literal">The literal to return</param>
            <returns>The received value</returns>
        </member>
        <member name="M:ComponentAce.Compression.Libs.zlib.SupportClass.URShift(System.Int32,System.Int32)">
            <summary>
            Performs an unsigned bitwise right shift with the specified number
            </summary>
            <param name="number">Number to operate on</param>
            <param name="bits">Ammount of bits to shift</param>
            <returns>The resulting number from the shift operation</returns>
        </member>
        <member name="M:ComponentAce.Compression.Libs.zlib.SupportClass.URShift(System.Int32,System.Int64)">
            <summary>
            Performs an unsigned bitwise right shift with the specified number
            </summary>
            <param name="number">Number to operate on</param>
            <param name="bits">Ammount of bits to shift</param>
            <returns>The resulting number from the shift operation</returns>
        </member>
        <member name="M:ComponentAce.Compression.Libs.zlib.SupportClass.URShift(System.Int64,System.Int32)">
            <summary>
            Performs an unsigned bitwise right shift with the specified number
            </summary>
            <param name="number">Number to operate on</param>
            <param name="bits">Ammount of bits to shift</param>
            <returns>The resulting number from the shift operation</returns>
        </member>
        <member name="M:ComponentAce.Compression.Libs.zlib.SupportClass.URShift(System.Int64,System.Int64)">
            <summary>
            Performs an unsigned bitwise right shift with the specified number
            </summary>
            <param name="number">Number to operate on</param>
            <param name="bits">Ammount of bits to shift</param>
            <returns>The resulting number from the shift operation</returns>
        </member>
        <member name="M:ComponentAce.Compression.Libs.zlib.SupportClass.ReadInput(System.IO.Stream,System.Byte[],System.Int32,System.Int32)">
            <summary>Reads a number of characters from the current source Stream and writes the data to the target array at the specified index.</summary>
            <param name="sourceStream">The source Stream to read from.</param>
            <param name="target">Contains the array of characteres read from the source Stream.</param>
            <param name="start">The starting index of the target array.</param>
            <param name="count">The maximum number of characters to read from the source Stream.</param>
            <returns>The number of characters read. The number will be less than or equal to count depending on the data available in the source Stream. Returns -1 if the end of the stream is reached.</returns>
        </member>
        <member name="M:ComponentAce.Compression.Libs.zlib.SupportClass.ReadInput(System.IO.TextReader,System.Byte[],System.Int32,System.Int32)">
            <summary>Reads a number of characters from the current source TextReader and writes the data to the target array at the specified index.</summary>
            <param name="sourceTextReader">The source TextReader to read from</param>
            <param name="target">Contains the array of characteres read from the source TextReader.</param>
            <param name="start">The starting index of the target array.</param>
            <param name="count">The maximum number of characters to read from the source TextReader.</param>
            <returns>The number of characters read. The number will be less than or equal to count depending on the data available in the source TextReader. Returns -1 if the end of the stream is reached.</returns>
        </member>
        <member name="M:ComponentAce.Compression.Libs.zlib.SupportClass.ToByteArray(System.String)">
            <summary>
            Converts a string to an array of bytes
            </summary>
            <param name="sourceString">The string to be converted</param>
            <returns>The new array of bytes</returns>
        </member>
        <member name="M:ComponentAce.Compression.Libs.zlib.SupportClass.ToCharArray(System.Byte[])">
            <summary>
            Converts an array of bytes to an array of chars
            </summary>
            <param name="byteArray">The array of bytes to convert</param>
            <returns>The new array of chars</returns>
        </member>
        <member name="T:Sfs2X.Entities.Data.SFSArray">
            <summary>
            SFSArray
            </summary>
            <remarks>
            <b>SFSArray</b> is used from server and client side to exchange data. It can be thought of a specialized Array/List object that can contain any type of data. The advantage of using SFSArray is that you can fine tune the way your data will be transmitted over the network.
            For instance, a number like 100 can be transmitted as a normal <b>integer</b> (which takes 32 bits) but also a <b>short</b> (16 bit) or even a <b>byte</b> (8 bit)
            <para/>
            <b>SFSArray</b> supports many primitive data types and related arrays of primitives. It also allows to serialize class instances and rebuild them on the Java side. This is explained in greater detail in a separate document.
            </remarks>
            <seealso cref="T:Sfs2X.Entities.Data.SFSObject"/>
        </member>
        <member name="M:Sfs2X.Entities.Data.SFSArray.NewFromArray(System.Collections.Generic.List{Sfs2X.Entities.Data.SFSDataWrapper})">
            <summary>
            Alternative static constructor that builds an SFSArray populated with the data found in the passed Array
            </summary>
            <param name="o">
            A <see cref="T:System.Collections.Generic.List`1"/>
            </param>
            <returns>
            A <see cref="T:Sfs2X.Entities.Data.SFSArray"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.SFSArray.NewFromBinaryData(Sfs2X.Util.ByteArray)">
            <summary>
            Alternative static constructor that builds an SFSArray from a valid SFSArray binary representation
            </summary>
            <param name="ba">
            A <see cref="T:Sfs2X.Util.ByteArray"/>
            </param>
            <returns>
            A <see cref="T:Sfs2X.Entities.Data.SFSArray"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Data.SFSArray.NewInstance">
            <summary>
            Alternative static constructor
            </summary>
            <returns>
            A <see cref="T:Sfs2X.Entities.Data.SFSArray"/>
            </returns>
        </member>
        <member name="T:Sfs2X.Entities.Invitation.SFSInvitation">
            <summary>
            Invitation object
            </summary>
            <remarks>
            An <b>Invitation</b> object provides the ability to send a generic invitation for a specific event going on
            in your application, be it a game, visiting a personal Room or another location of the virtual world etc...
            <para/>
            The SFS2X <b>Invitation Manager</b> is very simple to use. All you need to provide is:
            <ul>
            	<li><b>inviter:</b> the User starting the invitation (null == Server)</li>
            	<li><b>invitee:</b> the User to invite</li>
            	<li><b>secondsForAnswer:</b> the amount of time (in seconds) that the invitee has to accept/refuse the invitation. (default is 15 sec)</li>
            	<li><b>params:</b> any custom params to send with the invitation (e.g. a message, game name etc...)</li>
            </ul>
            </remarks>
            <seealso cref="T:Sfs2X.Requests.Game.InviteUsersRequest"/>
            <seealso cref="F:Sfs2X.Core.SFSEvent.INVITATION"/>
        </member>
        <member name="T:Sfs2X.Entities.Invitation.Invitation">
            <summary>
            Represents an Invitation object
            </summary>
            <remarks>
            For more details see the SFSInvitation implementation
            </remarks>
            <seealso cref="T:Sfs2X.Entities.Invitation.SFSInvitation"/>
        </member>
        <member name="P:Sfs2X.Entities.Invitation.Invitation.Id">
            <summary>
            The id of the invitation 
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.Invitation.Invitation.Inviter">
            <summary>
            The inviter User 
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.Invitation.Invitation.Invitee">
            <summary>
            The invited User 
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.Invitation.Invitation.SecondsForAnswer">
            <summary>
            The amount of time (seconds) allowed to reply to the invitation 
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.Invitation.Invitation.Params">
            <summary>
            A custom set of parameters. 
            </summary>
            <remarks>
            Can be used to provide a message for the invitation and any other relevant data 
            </remarks>
        </member>
        <member name="M:Sfs2X.Entities.Invitation.SFSInvitation.#ctor(Sfs2X.Entities.User,Sfs2X.Entities.User)">
            <summary>
            Constructor
            </summary>
            <param name="inviter">
            the User that sends the Invitation
            </param>
            <param name="invitee">
            the User that receives the Invitation
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Invitation.SFSInvitation.#ctor(Sfs2X.Entities.User,Sfs2X.Entities.User,System.Int32)">
            <summary>
            Constructor
            </summary>
            <param name="inviter">
            the User that sends the Invitation
            </param>
            <param name="invitee">
            the User that receives the Invitation
            </param>
            <param name="secondsForAnswer">
            the number of seconds allowed for the Invitee to reply (recommended range: 15-40 seconds)
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Invitation.SFSInvitation.#ctor(Sfs2X.Entities.User,Sfs2X.Entities.User,System.Int32,Sfs2X.Entities.Data.ISFSObject)">
            <summary>
            Constructor
            </summary>
            <param name="inviter">
            the User that sends the Invitation
            </param>
            <param name="invitee">
            the User that receives the Invitation
            </param>
            <param name="secondsForAnswer">
            the number of seconds allowed for the Invitee to reply (recommended range: 15-40 seconds)
            </param>
            <param name="parameters">
            custom params to send with the invitation
            </param>
        </member>
        <member name="P:Sfs2X.Entities.Invitation.SFSInvitation.Id">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.Invitation.SFSInvitation.Inviter">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.Invitation.SFSInvitation.Invitee">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.Invitation.SFSInvitation.SecondsForAnswer">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.Invitation.SFSInvitation.Params">
            <inheritdoc />
        </member>
        <member name="T:Sfs2X.Entities.SFSBuddy">
             <summary>
             The <b>SFSBuddy</b> class represent a Buddy in the User's <b>Buddy List</b>
             </summary>
             <remarks>
             <h2>Overview</h2>
             The <b>SFSBuddy</b> class represent a Buddy in the User's <b>Buddy List</b>.
             Each Buddy has several properties:
            
             <ul>
             	<li><b>name</b>: the name of the Buddy, corresponds to the User name</li>
             	<li><b>nickname</b>: an optional nickname (default = null)</li>
             	<li><b>isOnline</b>: whether the Buddy is online in the Buddy system or not</li>
             	<li><b>state</b>: a string representing a "state message", such as: <i>Available</i>, <i>Busy</i>...</li>
             	<li><b>isBlocked</b>: whether the Buddy is blocked in the User Buddy List</li>
             	<li><b>isTemp</b>: a temporary Buddy is not stored in the Buddy List, it will be removed at the end of the session (see below)</li>
             	<li><b>variables</b>: the Buddy variables which can be transient or persistent (see below)</li>
             </ul>
            
             <h3>Online State</h3>
             Any user can decide if they want to be online/off-line as Buddy in the Buddy system. By default a User is online 
             every time he joins the Zone, but the User can also turn off this flag at runtime and disappear from other User's buddy lists.
             The <b>Online State</b> is persistent and based on a reserved Buddy Variable.
             
             <h3>Blocked Buddies</h3>
             Buddies that are blocked won't be able to send any messages to the User, also they won't be able to see if the Buddy is online/off-line.
             
             <h3>Buddy State message</h3>
             The state message represents a typical IM Buddy state such as Available, Busy etc...
             By default the system already provides 3 default states: <b>Available</b>, <b>Away</b>, <b>Occupied</b> which can be changed or enriched at any time 
             The state message is based on a reserved Buddy Variable.
             
             <h3>Temp Buddy</h3>
             A temporary Buddy is added to the User List when another User adds me to his Buddy List. 
             This way we can see each others and exchange messages. 
             If I don't add the User as Buddy in my list the User will remain temporary and it won't be persisted. 
             
             <h3>Variables</h3>
             Buddy Variables enable each Buddy to show/send updates for specific informations to each User that has the Buddy in the list. 
             For example one could send real-time updates on his last activity (ala Twitter) or post the title of the song he's listening right now, scores, 
             rankings and whatnot.
             </remarks>
        </member>
        <member name="M:Sfs2X.Entities.SFSBuddy.FromSFSArray(Sfs2X.Entities.Data.ISFSArray)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.SFSBuddy.GetVariable(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.SFSBuddy.GetOfflineVariables">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.SFSBuddy.GetOnlineVariables">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.SFSBuddy.ContainsVariable(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.SFSBuddy.SetVariable(Sfs2X.Entities.Variables.BuddyVariable)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.SFSBuddy.SetVariables(System.Collections.Generic.ICollection{Sfs2X.Entities.Variables.BuddyVariable})">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.SFSBuddy.RemoveVariable(System.String)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.SFSBuddy.ClearVolatileVariables">
            <exclude/>
        </member>
        <member name="P:Sfs2X.Entities.SFSBuddy.Id">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.SFSBuddy.IsBlocked">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.SFSBuddy.IsTemp">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.SFSBuddy.Name">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.SFSBuddy.IsOnline">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.SFSBuddy.State">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.SFSBuddy.NickName">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.SFSBuddy.Variables">
            <inheritdoc />
        </member>
        <member name="T:Sfs2X.Requests.InitBuddyListRequest">
            <summary>
            Initializes the BuddyList system.
            </summary>
            <remarks>
            This involves loading any previously stored Buddy data from the server, such as the User's Buddy List, his previous state and his persistent Buddy Variables. 
            The init request is <b>the first operation required</b> to initialize the BuddyList system. 
            Once the Init is executed the User can have access to all his previous data and start to interact with his Buddies.
            </remarks>
        </member>
        <member name="F:Sfs2X.Requests.InitBuddyListRequest.KEY_BLIST">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.InitBuddyListRequest.KEY_BUDDY_STATES">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.InitBuddyListRequest.KEY_MY_VARS">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.InitBuddyListRequest.#ctor">
            <summary>
            Initializes the Buddy List. The initialization process is complete when the SFSBuddyEvent.BUDDY_LIST_INIT event is received.
            </summary>
            <example>
            <code>
            			smartFox.AddEventListener(SFSBuddyEvent.BUDDY_LIST_INIT, OnBuddyInited);
            			smartFox.AddEventListener(SFSBuddyEvent.BUDDY_ERROR, OnBuddyError);
            			
            			// Add a new buddy in the buddy list
            			smartFox.Send(new InitBuddyListRequest());
            
            			void OnBuddyInited(BaseEvent evt) {
            				Console.WriteLine("Buddy list was inited with success!");
            			}
            
            			void OnBuddyError(BaseEvent evt) {
            				Console.WriteLine("Buddy List error: " + (string)evt.Params["errorMessage"]);
            			}
            
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSBuddyEvent.BUDDY_LIST_INIT"/>
            <seealso cref="F:Sfs2X.Core.SFSBuddyEvent.BUDDY_ERROR"/>
            <seealso cref="T:Sfs2X.Entities.SFSBuddy"/>
            <seealso cref="T:Sfs2X.Entities.Variables.SFSBuddyVariable"/>
        </member>
        <member name="M:Sfs2X.Requests.InitBuddyListRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.InitBuddyListRequest.Execute(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Requests.ObjectMessageRequest">
            <summary>
            Send a custom data Object to all users in a Room or a sub-selection of them
            </summary>
            <remarks>
            (If you are familiar with SmartFoxServer 1.x this request the equivalent of sendObject)
            <para/>
            The request allow to send a custom data object to all users in the same Room. 
            A typical use of this request is for sending game moves to other players 
            </remarks>
        </member>
        <member name="M:Sfs2X.Requests.ObjectMessageRequest.#ctor(Sfs2X.Entities.Data.ISFSObject,Sfs2X.Entities.Room,System.Collections.Generic.ICollection{Sfs2X.Entities.User})">
            <summary>
            Constructor
            </summary>
            <param name="obj">
            the custom object
            </param>
            <param name="targetRoom">
            an optional target room. This room must be joined and by default it is the last joined Room  
            </param>
            <param name="recipients">
            an optional selection of Users in the target Room (by default the message is sent to all Users)
            </param>
            <example>
            <code>
            			smartFox.AddEventListener(SFSEvent.OBJECT_MESSAGE, OnObjectMessage);
            			
            			// The variables myCharacter and senderCharacter are local data objects
            
            			// Send a game move to all players
            			ISFSObject dataObj = new SFSObject();
            			dataObj.PutInt("x", myCharacter.x);
            			dataObj.PutInt("y", myCharacter.y);
            
            			smartFox.Send(new ObjectMessageRequest(dataObj));
            
            			void OnObjectMessage(BaseEvent evt) {
            				ISFSObject dataObj = (SFSObject)evt.Params["message"];
            				User sender = (User)evt.Params["sender"];
            				senderCharacter.x = dataObj.GetInt("x");
            				senderCharacter.y = dataObj.GetInt("y");
            			}
            
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSEvent.OBJECT_MESSAGE"/>
        </member>
        <member name="M:Sfs2X.Requests.ObjectMessageRequest.#ctor(Sfs2X.Entities.Data.ISFSObject,Sfs2X.Entities.Room)">
            <summary>
            ObjectMessageRequest(ISFSObject obj, Room targetRoom, ICollection&lt;User&gt; recipients)
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.ObjectMessageRequest.#ctor(Sfs2X.Entities.Data.ISFSObject)">
            <summary>
            ObjectMessageRequest(ISFSObject obj, Room targetRoom, ICollection&lt;User&gt; recipients)
            </summary>
        </member>
        <member name="T:Sfs2X.Requests.ExtensionRequest">
            <summary>
            Sends a request to a Zone or Room Extension.
            </summary>
            <remarks>
            Each request to an extension is characterized by two parameters:
            <ul>
            		<li><b>command name:</b> any string that identifies an action that should be executed on the server side. We recommend to use the same command name for both the client request and the server response.</li>
            		<li><b>request data:</b> you can send any simple or complex data structures to your extension(s) via the SFSObject class</li>
            </ul>
            </remarks>
        </member>
        <member name="F:Sfs2X.Requests.ExtensionRequest.KEY_CMD">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.ExtensionRequest.KEY_PARAMS">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.ExtensionRequest.KEY_ROOM">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.ExtensionRequest.#ctor(System.String,Sfs2X.Entities.Data.ISFSObject,Sfs2X.Entities.Room,System.Boolean)">
            <summary>
            Constructor
            </summary>
            <param name="extCmd">
            the command name
            </param>
            <param name="parameters">
            the custom extension request data
            </param>
            <param name="room">
            when specified it will send the request to the Room Extension. The user must be joined in that Room. 
            </param>
            <param name="useUDP">
            (optional) uses UDP to send the request
            </param>
            <example>
            <code>
            			smartFox.AddEventListener(SFSEvent.EXTENSION_RESPONSE, OnExtensionResponse);
            			
            			// Send two integers to the Zone extension and get their sum in return
            			ISFSObject parameters = new SFSObject();
            			parameters.PutInt("n1", 26);
            			parameters.PutInt("n2", 16);
            			
            			// Send request
            			smartFox.Send(new ExtensionRequest("add", parameters));
            
            			void OnExtensionResponse(BaseEvent evt) {
            				if ((string)evt.Params["cmd"] == "add") {
            					// Similarly the server sends us an object with custom data.
            					ISFSObject responseParams = (SFSObject)evt.Params["data"];
            	
            					// We expect an int called sum
            					Console.WriteLine("The sum is: " + responseParams.GetInt("sum"));
            				}
            			}
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSEvent.EXTENSION_RESPONSE"/>
        </member>
        <member name="M:Sfs2X.Requests.ExtensionRequest.#ctor(System.String,Sfs2X.Entities.Data.ISFSObject,Sfs2X.Entities.Room)">
            <summary>
            <see cref="M:Sfs2X.Requests.ExtensionRequest.#ctor(System.String,Sfs2X.Entities.Data.ISFSObject,Sfs2X.Entities.Room,System.Boolean)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.ExtensionRequest.#ctor(System.String,Sfs2X.Entities.Data.ISFSObject)">
            <summary>
            <see cref="M:Sfs2X.Requests.ExtensionRequest.#ctor(System.String,Sfs2X.Entities.Data.ISFSObject,Sfs2X.Entities.Room,System.Boolean)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.ExtensionRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.ExtensionRequest.Execute(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Requests.GenericMessageType">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Requests.ManualDisconnectionRequest">
            <summary>
            This is used by the system. Never send this directly.
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.ManualDisconnectionRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.ManualDisconnectionRequest.Execute(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Requests.ModeratorMessageRequest">
            <summary>
            Send a Moderator Message to a specific User or groups of Users
            </summary>
            <remarks>
            The sender must have the moderator privileges to be able to send these kinds of messages.<br/>
            The <b>recipient</b> parameter can be used to specify if the message is sent to a User, a Room, the Room Group or the whole Zone.
            </remarks>
            <seealso cref="T:Sfs2X.Requests.MessageRecipientMode"/>
            <seealso cref="F:Sfs2X.Core.SFSEvent.MODERATOR_MESSAGE"/>
        </member>
        <member name="M:Sfs2X.Requests.ModeratorMessageRequest.#ctor(System.String,Sfs2X.Requests.MessageRecipientMode,Sfs2X.Entities.Data.ISFSObject)">
            <summary>
            Constructor
            </summary>
            <param name="message">
            the moderator message
            </param>
            <param name="recipientMode">
            the recipient mode (message can be sent to single User, a Room, the whole Room Group or the Zone)
            </param>
            <param name="parameters">
            custom extra parameters (optional)
            </param>
            <example>
            <code>
            			smartFox.AddEventListener(SFSEvent.MODERATOR_MESSAGE, OnModeratorMessage);
            			
            			// Say 'Hello' to everyone
            			smartFox.Send(new ModeratorMessageRequest("Hello from the Moderator!"));
            
            			void OnModeratorMessage(BaseEvent evt) {
            				Console.WriteLine("Message: " + (string)evt.Params["message"] + ", Sender: " + (User)evt.Params["sender"]);
            			}
            
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSEvent.MODERATOR_MESSAGE"/>
            <seealso cref="T:Sfs2X.Requests.MessageRecipientMode"/>
            <seealso cref="T:Sfs2X.Requests.AdminMessageRequest"/>
        </member>
        <member name="M:Sfs2X.Requests.ModeratorMessageRequest.#ctor(System.String,Sfs2X.Requests.MessageRecipientMode)">
            <summary>
            <see cref="M:Sfs2X.Requests.ModeratorMessageRequest.#ctor(System.String,Sfs2X.Requests.MessageRecipientMode,Sfs2X.Entities.Data.ISFSObject)"/>
            </summary>
        </member>
        <member name="T:Sfs2X.Requests.MessageRecipientMode">
            <summary>
            This class is used to specify the recipient mode for Moderator Messages and Administrator Message.
            </summary>
            <remarks>
            There are 4 recipient modes:
            <ul>
            		<li><b>TO_USER:</b> the message will be sent to the User (passed as the <i>target</i> parameter)</li>
            		<li><b>TO_ROOM:</b> the message will be sent to all Users in the Room (passed as the <i>target</i> parameter)</li>
            		<li><b>TO_GROUP: </b> the message will be sent to all Users in the Room Group (passed as a String in the <i>target</i> parameter)</li>
            		<li><b>TO_ZONE: </b> the message will be sent to all Users in the Zone (<i>target</i> is ignored)</li>
            </ul>
            </remarks>
            <seealso cref="T:Sfs2X.Requests.ModeratorMessageRequest"/>
            <seealso cref="T:Sfs2X.Requests.AdminMessageRequest"/>
        </member>
        <member name="M:Sfs2X.Requests.MessageRecipientMode.#ctor(System.Int32,System.Object)">
            <summary>
            Constructor
            </summary>
            <param name="mode">
            the recipient mode
            </param>
            <param name="target">
            the target, depending on the specified recipient mode, as explained in the Class overview
            </param>
        </member>
        <member name="T:Sfs2X.Requests.JoinRoomRequest">
            <summary>
            Join the current User in a Room.
            </summary>
        </member>
        <member name="F:Sfs2X.Requests.JoinRoomRequest.KEY_ROOM">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.JoinRoomRequest.KEY_USER_LIST">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.JoinRoomRequest.KEY_ROOM_NAME">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.JoinRoomRequest.KEY_ROOM_ID">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.JoinRoomRequest.KEY_PASS">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.JoinRoomRequest.KEY_ROOM_TO_LEAVE">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.JoinRoomRequest.KEY_AS_SPECTATOR">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.JoinRoomRequest.#ctor(System.Object,System.String,System.Nullable{System.Int32},System.Boolean)">
            <summary>
            Constructor
            </summary>
            <param name="id">
            you can use the numeric ID of the Room or its name
            </param>
            <param name="pass">
            needed only if the Room is password protected
            </param>
            <param name="roomIdToLeave">
            the id of a previously joined Room that you want to leave once joined in the new Room (optional). The default behavior is to leave the previous Room. You can pass a negative ID to avoid leaving any Room
            </param>
            <param name="asSpectator">
            if true it indicates that you want to join the room as spectator (optional, for game Rooms only)
            </param>
            <example>
            <code>
            			smartFox.AddEventListener(SFSEvent.ROOM_JOIN, OnJoinRoom);
            			smartFox.AddEventListener(SFSEvent.ROOM_JOIN_ERROR, OnJoinRoomError);
            			
            			// Join a room called 'Lobby'
            			smartFox.Send(new JoinRoomRequest("Lobby"));
            
            			void OnJoinRoom(BaseEvent evt) {
            				Console.WriteLine("Room joined successfully: " + (Room)evt.Params["room"]);
            			}
            
            			void OnJoinRoomError(BaseEvent evt) {
            				Console.WriteLine("Join Room failure: " + (string)evt.Params["errorMessage"]);
            			}
            
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSEvent.ROOM_JOIN"/>
            <seealso cref="F:Sfs2X.Core.SFSEvent.ROOM_JOIN_ERROR"/>
            <seealso cref="T:Sfs2X.Requests.LeaveRoomRequest"/>
        </member>
        <member name="M:Sfs2X.Requests.JoinRoomRequest.#ctor(System.Object,System.String,System.Nullable{System.Int32})">
            <summary>
            <see cref="M:Sfs2X.Requests.JoinRoomRequest.#ctor(System.Object,System.String,System.Nullable{System.Int32},System.Boolean)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.JoinRoomRequest.#ctor(System.Object,System.String)">
            <summary>
            <see cref="M:Sfs2X.Requests.JoinRoomRequest.#ctor(System.Object,System.String,System.Nullable{System.Int32},System.Boolean)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.JoinRoomRequest.#ctor(System.Object)">
            <summary>
            <see cref="M:Sfs2X.Requests.JoinRoomRequest.#ctor(System.Object,System.String,System.Nullable{System.Int32},System.Boolean)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.JoinRoomRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.JoinRoomRequest.Execute(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IUserManager.ContainsUserName(System.String)">
            <summary>
            Checks if a specific User name exists in the local User list
            </summary>
            <param name="userName">
            A <see cref="T:System.String"/>
            </param>
            <returns>
            A <see cref="T:System.Boolean"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IUserManager.ContainsUserId(System.Int32)">
            <summary>
            Checks if a specific User id exists in the local User list
            </summary>
            <param name="userId">
            A <see cref="T:System.Int32"/>
            </param>
            <returns>
            A <see cref="T:System.Boolean"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IUserManager.ContainsUser(Sfs2X.Entities.User)">
            <summary>
            Checks if a specific User object exists in the local User list
            </summary>
            <param name="user">
            A <see cref="T:Sfs2X.Entities.User"/>
            </param>
            <returns>
            A <see cref="T:System.Boolean"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IUserManager.GetUserByName(System.String)">
            <summary>
            Get a User object from its name
            </summary>
            <param name="userName">
            A <see cref="T:System.String"/>
            </param>
            <returns>
            A <see cref="T:Sfs2X.Entities.User"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IUserManager.GetUserById(System.Int32)">
            <summary>
            Get a User object from its id
            </summary>
            <param name="userId">
            A <see cref="T:System.Int32"/>
            </param>
            <returns>
            A <see cref="T:Sfs2X.Entities.User"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IUserManager.AddUser(Sfs2X.Entities.User)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IUserManager.RemoveUser(Sfs2X.Entities.User)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IUserManager.RemoveUserById(System.Int32)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IUserManager.GetUserList">
            <summary>
            Get the full list of Users
            </summary>
            <returns>
            A <see cref="T:System.Collections.Generic.List`1"/>
            </returns>
        </member>
        <member name="P:Sfs2X.Entities.Managers.IUserManager.UserCount">
            <summary>
            Get the total number of Users 
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.Managers.IUserManager.SmartFoxClient">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IRoomManager.AddRoom(Sfs2X.Entities.Room,System.Boolean)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IRoomManager.AddRoom(Sfs2X.Entities.Room)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IRoomManager.AddGroup(System.String)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IRoomManager.ReplaceRoom(Sfs2X.Entities.Room,System.Boolean)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IRoomManager.ReplaceRoom(Sfs2X.Entities.Room)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IRoomManager.RemoveGroup(System.String)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IRoomManager.ChangeRoomName(Sfs2X.Entities.Room,System.String)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IRoomManager.ChangeRoomPasswordState(Sfs2X.Entities.Room,System.Boolean)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IRoomManager.ChangeRoomCapacity(Sfs2X.Entities.Room,System.Int32,System.Int32)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IRoomManager.RemoveRoom(Sfs2X.Entities.Room)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IRoomManager.RemoveRoomById(System.Int32)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IRoomManager.RemoveRoomByName(System.String)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.IRoomManager.RemoveUser(Sfs2X.Entities.User)">
            <exclude/>
        </member>
        <member name="P:Sfs2X.Entities.Managers.IRoomManager.SmartFoxClient">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Requests.RequestType">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Requests.ChangeRoomPasswordStateRequest">
            <summary>
            Changes the password of a Room at runtime.
            </summary>
            <remarks>
            The request not only changes the password of a Room but also its "password state", which indicates if a Room is password protected or not.<br/>
            This request might fail if the Room was configured to deny password runtime changes or if the User sending the request is not the owner of the Room. 
            <para/>
            Moderators and Administrator can override this last constraint.
            </remarks>
        </member>
        <member name="F:Sfs2X.Requests.ChangeRoomPasswordStateRequest.KEY_ROOM">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.ChangeRoomPasswordStateRequest.KEY_PASS">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.ChangeRoomPasswordStateRequest.#ctor(Sfs2X.Entities.Room,System.String)">
            <summary>
            Constructor
            </summary>
            <param name="room">
            the Room 
            </param>
            <param name="newPass">
            the new password (null or empty string means no password)
            </param>
            <example>
            <code>
            			smartFox.AddEventListener(SFSEvent.ROOM_PASSWORD_STATE_CHANGE, OnRoomPasswordStateChange);
            			smartFox.AddEventListener(SFSEvent.ROOM_PASSWORD_STATE_CHANGE_ERROR, OnRoomPasswordStateChangeError);
            			
            			Room theRoom = sfs.GetRoomByName("DeveloperChatRoom");
            			smartFox.Send(new ChangeRoomPasswordStateRequest(theRoom, "forloop"));
            
            			void OnRoomPasswordStateChange(BaseEvent evt) {
            				Console.WriteLine("Room password change success: " + (Room)evt.Params["room"]);
            			}
            
            			void OnRoomPasswordStateChangeError(BaseEvent evt) {
            				Console.WriteLine("Room password change failed: " + (string)evt.Params["errorMessage"]);
            			}
            
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSEvent.ROOM_PASSWORD_STATE_CHANGE"/>
            <seealso cref="F:Sfs2X.Core.SFSEvent.ROOM_PASSWORD_STATE_CHANGE_ERROR"/>
            <seealso cref="T:Sfs2X.Requests.ChangeRoomNameRequest"/>
            <seealso cref="T:Sfs2X.Requests.ChangeRoomPasswordStateRequest"/>
        </member>
        <member name="M:Sfs2X.Requests.ChangeRoomPasswordStateRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.ChangeRoomPasswordStateRequest.Execute(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Entities.SFSUser">
            <summary>
            The <b>User</b> object represent a client logged in the Server.
            </summary>
            <remarks>
            The client API don't know about all Users connected to the server side but only about those that are in the same Rooms where the client is joined.
            <para/>
            In order to interact with other Users the client can join different Rooms or use a BuddyList to keep track of and interact with his friends.
            </remarks>
        </member>
        <member name="M:Sfs2X.Entities.SFSUser.FromSFSArray(Sfs2X.Entities.Data.ISFSArray,Sfs2X.Entities.Room)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.SFSUser.#ctor(System.Int32,System.String)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.SFSUser.#ctor(System.Int32,System.String,System.Boolean)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.SFSUser.Init(System.Int32,System.String,System.Boolean)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.SFSUser.IsJoinedInRoom(Sfs2X.Entities.Room)">
            <summary>
            <see cref="M:Sfs2X.Entities.User.IsJoinedInRoom(Sfs2X.Entities.Room)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Entities.SFSUser.IsGuest">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.SFSUser.IsStandardUser">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.SFSUser.IsModerator">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.SFSUser.IsAdmin">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.SFSUser.GetPlayerId(Sfs2X.Entities.Room)">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.SFSUser.SetPlayerId(System.Int32,Sfs2X.Entities.Room)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.SFSUser.RemovePlayerId(Sfs2X.Entities.Room)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.SFSUser.IsPlayerInRoom(Sfs2X.Entities.Room)">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.SFSUser.IsSpectatorInRoom(Sfs2X.Entities.Room)">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.SFSUser.GetVariables">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.SFSUser.GetVariable(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.SFSUser.SetVariable(Sfs2X.Entities.Variables.UserVariable)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.SFSUser.SetVariables(System.Collections.Generic.ICollection{Sfs2X.Entities.Variables.UserVariable})">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.SFSUser.ContainsVariable(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.SFSUser.RemoveUserVariable(System.String)">
            <exclude/>
        </member>
        <member name="P:Sfs2X.Entities.SFSUser.Id">
            <summary>
            <see cref="P:Sfs2X.Entities.User.Id"/>
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.SFSUser.Name">
            <summary>
            <see cref="P:Sfs2X.Entities.User.Name"/>
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.SFSUser.PlayerId">
            <summary>
            <see cref="P:Sfs2X.Entities.User.PlayerId"/>
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.SFSUser.PrivilegeId">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.SFSUser.IsPlayer">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.SFSUser.IsSpectator">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.SFSUser.IsItMe">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.SFSUser.UserManager">
            <exclude/>
        </member>
        <member name="P:Sfs2X.Entities.SFSUser.Properties">
            <inheritdoc />
        </member>
        <member name="T:Sfs2X.Entities.SFSRoom">
            <summary>
            The <b>Room</b> object represent a server Room.
            </summary>
            <remarks>
            The client API don't know about all Rooms on the server side but only about those that are joined and those in the Room Groups that were subscribed.
            <para/>
            Subscribing to one or more Group allows the client to listen for Room events in specific "areas" of the Zone without having to know and download details for all Rooms available.
            <para/>
            The RoomList is created after a succesful login in the <c>SmartFox.RoomList</c> object and it is kept updated at all times by the Server.
            </remarks>
            <seealso cref="P:Sfs2X.SmartFox.RoomList"/>
            <seealso cref="T:Sfs2X.Requests.CreateRoomRequest"/>
            <seealso cref="T:Sfs2X.Requests.JoinRoomRequest"/>
            <seealso cref="T:Sfs2X.Requests.SubscribeRoomGroupRequest"/>
            <seealso cref="T:Sfs2X.Requests.UnsubscribeRoomGroupRequest"/>
            <seealso cref="T:Sfs2X.Requests.ChangeRoomNameRequest"/>
            <seealso cref="T:Sfs2X.Requests.ChangeRoomPasswordStateRequest"/>
            <seealso cref="T:Sfs2X.Requests.ChangeRoomCapacityRequest"/>
        </member>
        <member name="M:Sfs2X.Entities.SFSRoom.FromSFSArray(Sfs2X.Entities.Data.ISFSArray)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.SFSRoom.GetVariables">
            <summary>
            Returns all the Room Variables
            </summary>
            <returns>
            A <see cref="T:System.Collections.Generic.List`1"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.SFSRoom.GetVariable(System.String)">
            <summary>
            Get a Room Variable
            </summary>
            <param name="name">
            the name of the variable
            </param>
            <returns>
            the Room Variable, or null if no variable exists with that name
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.SFSRoom.GetUserByName(System.String)">
            <summary>
            Get a User from its name
            </summary>
            <param name="name">
            A <see cref="T:System.String"/>
            </param>
            <returns>
            the User, or null if no User with that name exists in the Room
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.SFSRoom.GetUserById(System.Int32)">
            <summary>
            Get a User from its ID
            </summary>
            <param name="id">
            A <see cref="T:System.Int32"/>
            </param>
            <returns>
            the User, or null if no User with that ID exists in the Room
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.SFSRoom.RemoveUser(Sfs2X.Entities.User)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.SFSRoom.SetVariable(Sfs2X.Entities.Variables.RoomVariable)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.SFSRoom.SetVariables(System.Collections.Generic.ICollection{Sfs2X.Entities.Variables.RoomVariable})">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.SFSRoom.ContainsVariable(System.String)">
            <summary>
            Check for the presence of a Room Variable 
            </summary>
            <param name="name">
            A <see cref="T:System.String"/>
            </param>
            <returns>
            true if the the Room Variable exists
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.SFSRoom.RemoveUserVariable(System.String)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.SFSRoom.AddUser(Sfs2X.Entities.User)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.SFSRoom.ContainsUser(Sfs2X.Entities.User)">
            <summary>
            Checks if a User is joined in this Room
            </summary>
            <param name="user">
            A <see cref="T:Sfs2X.Entities.User"/>
            </param>
            <returns>
            true if the User exists in the Room
            </returns>
        </member>
        <member name="P:Sfs2X.Entities.SFSRoom.Id">
            <summary>
            The unique id of the Room
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.SFSRoom.Name">
            <summary>
            The Room name
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.SFSRoom.GroupId">
            <summary>
            The Room Group. Each Room is assigned to its Group.
            </summary>
            <remarks>
            By default SmartFoxServer uses one single group called <i>default</i>
            </remarks>
        </member>
        <member name="P:Sfs2X.Entities.SFSRoom.IsGame">
            <summary>
            Determines if a Room is a Game Room
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.SFSRoom.IsHidden">
            <summary>
            Determines if the Room is hidden
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.SFSRoom.IsJoined">
            <summary>
            Returns true if the Room is joined by the current User
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.SFSRoom.IsPasswordProtected">
            <summary>
            Returns true if the Room requires a password for joining it
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.SFSRoom.IsManaged">
            <exclude/>
        </member>
        <member name="P:Sfs2X.Entities.SFSRoom.UserCount">
            <summary>
            Get the current number of users
            </summary>
            <remarks>
            If the room is joined the user count is taken from the Room's UserManager otherwise we return the static counter (which will work only if you have activated the uCount updates)
            </remarks>
        </member>
        <member name="P:Sfs2X.Entities.SFSRoom.MaxUsers">
            <summary>
            Get the maximum number of users allowed for this Room
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.SFSRoom.Capacity">
            <summary>
            Returns the max amount of users (both Users and Spectators) that can be contained in this room
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.SFSRoom.SpectatorCount">
            <summary>
            Get the number of spectators (only for Game Rooms)
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.SFSRoom.UserList">
            <summary>
            Get the full list of users in the Room
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.SFSRoom.RoomManager">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Requests.Game.SFSGameSettings">
            <summary>
            This class provides all the settings required to create an <b>SFSGame(*)</b>.
            </summary>
            <remarks>
            The <b>SFSGame(*)</b> object extends the <b>Room</b> object providing new advanced features such as Player matching, Game invitations, public and private Games, quick game joining etc... 
            <para/>
            (*) = the SFSGame class exists only on the server side as extension of the SFSRoom class. On the client side it's seen as a regular Room.
            <para/>
            <h3>Overview</h3>
            This is a quick overview of the settings that you can use to setup an <b>SFSGame</b>
            <ul>
            		<li>
            			<b>isGamePublic</b>: a public game can be joined by any Player whose variables match the SFSGame Player Match Expression.
            			Private games are based on invitations sent by the Game creator.
            		</li>
            
            		<li>
            			<b>minPlayersToStartGame</b>: the minimum number of players to start the game.
            		</li>
            
            		<li>
            			<b>invitedPlayers</b>: (private games only) a list of players invited in the Game
            		</li>
            		
            		<li>
            			<b>searchableRooms</b>: (private games only) a list of Rooms where the Game API can search for more players to invite. 
            			The API will look for more players if the number of people invited is smaller than the <b>minPlayersToStartGame</b>. This way you can add your friends to the game and let the system find more players to start it.
            		</li>
            		
            		<li>
            			<b>leaveLastJoinedRoom</b>: auto-remove players from their previous Room after successful join
            		</li>
            
            		<li>
            			<b>playerMatchExpression</b>: an expression to match players willing to play the game, by default no expression is used
            		</li>
            
            	<li>
            			<b>spectatorMatchExpression</b>: an expression to match spectators willing to play the game, by default no expression is used
            		</li>	
            
            		<li>
            			<b>invitationExpiryTime</b>: the amount of time allowed for invited players to accept / refuse
            		</li>
            		
            		<li>
            			<b>invitationParameters</b>: optional custom invitation parameters.These could provide details about the inviter, the game, an invitation message etc...
            		</li>		
            
            		<li>
            			<b>notifyGameStartedViaRoomVariable</b>: automatically update a reserved Room Variable to signal that the game is started/stopped. 
            			The Room variable uses the <b>global</b> setting to be broadcast outside of the Room. This can be used on the client side to show the game state in your game list.
            		</li>
            
            </ul>
            </remarks>
            <seealso cref="T:Sfs2X.Requests.Game.CreateSFSGameRequest"/>
            <seealso cref="T:Sfs2X.Entities.Match.MatchExpression"/>
        </member>
        <member name="T:Sfs2X.Requests.RoomSettings">
            <summary>
            This class provides the Room settings that you can pass to a <see cref="T:Sfs2X.Requests.CreateRoomRequest"/>
            </summary>
            <remarks>
            Some of these fields are mandatory and some other are populated by default if you don't specify them.
            <ul>
            		<li><b>name:</b> mandatory, each Room must have a unique name</li>
            		<li><b>password:</b> optional, by default a Room is created without a password</li>
            		<li><b>groupId:</b> optional, by default Rooms are created in the 'default' group if none is specified</li>
            		<li><b>isGame:</b> optional, by default isGame flage is set to false</li>
            		<li><b>maxUsers:</b> optional, if no value is provided the default value of 10 is used</li>
            		<li><b>maxSpectators:</b> optional, if no value is provided the default value of 0 is used</li>
            		<li><b>maxVariables:</b> optional, if no value is provided the default value of 5 is used</li>
            		<li><b>variables:</b> optional, an array of RoomVariables to be set at creation time</li>
            		<li><b>permissions:</b> optional, if no value is provided the default RoomPermissions configuration is used</li>
            		<li><b>events:</b> optional, if no value is provided the default RoomEvents configuration is used</li>
            		<li><b>extension:</b> optional. No default values</li>
            </ul>
            </remarks>
            <seealso cref="T:Sfs2X.Requests.RoomEvents"/>
            <seealso cref="T:Sfs2X.Requests.RoomPermissions"/>
            <seealso cref="T:Sfs2X.Requests.RoomExtension"/>
            <seealso cref="T:Sfs2X.Requests.CreateRoomRequest"/>
        </member>
        <member name="M:Sfs2X.Requests.RoomSettings.#ctor(System.String)">
            <summary>
            Constructor
            </summary>
            <param name="name">
            the room name
            </param>
            <seealso cref="F:Sfs2X.Core.SFSEvent.PUBLIC_MESSAGE"/>
            <seealso cref="T:Sfs2X.Requests.PrivateMessageRequest"/>
        </member>
        <member name="P:Sfs2X.Requests.RoomSettings.Name">
            <summary>
            The name of the new Room
            </summary>
        </member>
        <member name="P:Sfs2X.Requests.RoomSettings.Password">
            <summary>
            The password of the Room. If null is used the Room will not be password protected
            </summary>
        </member>
        <member name="P:Sfs2X.Requests.RoomSettings.IsGame">
            <summary>
            Indicates if this is a Game Room
            </summary>
        </member>
        <member name="P:Sfs2X.Requests.RoomSettings.MaxUsers">
            <summary>
            The maximum number of users/players allowed in the Room
            </summary>
        </member>
        <member name="P:Sfs2X.Requests.RoomSettings.MaxVariables">
            <summary>
            The maximum number of Room Variables allowed for this Room
            </summary>
        </member>
        <member name="P:Sfs2X.Requests.RoomSettings.MaxSpectators">
            <summary>
            The maximum number of spectators allowed for this Room (only for Game Rooms)
            </summary>
        </member>
        <member name="P:Sfs2X.Requests.RoomSettings.Variables">
            <summary>
            A list of Room Variables that should be attached to the newly created Room
            </summary>
            <seealso cref="T:Sfs2X.Entities.Variables.SFSRoomVariable"/>
        </member>
        <member name="P:Sfs2X.Requests.RoomSettings.Permissions">
            <summary>
            The Room Permission settings of the new Room
            </summary>
            <seealso cref="T:Sfs2X.Requests.RoomPermissions"/>
        </member>
        <member name="P:Sfs2X.Requests.RoomSettings.Events">
            <summary>
            The Room Event settings of the new Room
            </summary>
            <seealso cref="T:Sfs2X.Requests.RoomEvents"/>
        </member>
        <member name="P:Sfs2X.Requests.RoomSettings.Extension">
            <summary>
            The Extension settings for the new Room
            </summary>
            <seealso cref="T:Sfs2X.Requests.RoomExtension"/>
        </member>
        <member name="P:Sfs2X.Requests.RoomSettings.GroupId">
            <summary>
            The id of the Room Group in which the new Room should be created
            </summary>
        </member>
        <member name="P:Sfs2X.Requests.Game.SFSGameSettings.IsPublic">
            <summary>
            Check if the Game is public or private
            </summary>
        </member>
        <member name="P:Sfs2X.Requests.Game.SFSGameSettings.MinPlayersToStartGame">
            <summary>
            The minimum number of players to start the Game
            </summary>
        </member>
        <member name="P:Sfs2X.Requests.Game.SFSGameSettings.InvitedPlayers">
            <summary>
            Private games only: the list of invited Players (an Array of Users)
            </summary>
        </member>
        <member name="P:Sfs2X.Requests.Game.SFSGameSettings.SearchableRooms">
            <summary>
            Private games only: An list of room groups (Array of String) where to search for more players
            </summary>
        </member>
        <member name="P:Sfs2X.Requests.Game.SFSGameSettings.InvitationExpiryTime">
            <summary>
            The amount of time (in seconds) available for the User to reply to the invitation.
            </summary>
            <remarks>
            Suggested range 10-40 seconds
            </remarks>
        </member>
        <member name="P:Sfs2X.Requests.Game.SFSGameSettings.LeaveLastJoinedRoom">
            <summary>
            Determines if the Players will leave their previous Room when joining the Game
            </summary>
        </member>
        <member name="P:Sfs2X.Requests.Game.SFSGameSettings.NotifyGameStarted">
            <summary>
            Uses a "reserved" global Room Variable to notify the started/stopped status of the game.
            </summary>
            <remarks>
            This depends on the number of Users inside the Room.
            </remarks>
            <seealso cref="T:Sfs2X.Entities.Variables.SFSRoomVariable"/>
            <seealso cref="T:Sfs2X.Entities.Variables.ReservedRoomVariables"/>
        </member>
        <member name="P:Sfs2X.Requests.Game.SFSGameSettings.PlayerMatchExpression">
            <summary>
            A MatchExpression for filtering Users joining the Game.
            </summary>
            <remarks>
            Recommended for public Games only
            </remarks>
            <seealso cref="T:Sfs2X.Entities.Match.MatchExpression"/>
        </member>
        <member name="P:Sfs2X.Requests.Game.SFSGameSettings.SpectatorMatchExpression">
            <summary>
            A MatchExpression for filtering Spectators joining the Game.
            </summary>
            <seealso cref="T:Sfs2X.Entities.Match.MatchExpression"/>
        </member>
        <member name="P:Sfs2X.Requests.Game.SFSGameSettings.InvitationParams">
            <summary>
            An optional custom object with parameters (e.g. a message, game details etc...)
            </summary>
        </member>
        <member name="T:Sfs2X.Requests.GoOnlineRequest">
            <summary>
            Toggles the Buddy ONLINE status of the User.
            </summary>
            <remarks>
            All clients who have the current User as their Buddy in the BuddyList, will see his status change accordingly.
            Going online/offline as Buddy doesn't affect the User connection,the currently joined Zone/Rooms etc... 
            
            The ONLINE status is maintained by a reserved and persistent BuddyVariable.
            </remarks>
            
            <seealso cref="T:Sfs2X.Entities.Variables.SFSBuddyVariable"/>
            <seealso cref="T:Sfs2X.Entities.Variables.ReservedBuddyVariables"/>
        </member>
        <member name="F:Sfs2X.Requests.GoOnlineRequest.KEY_ONLINE">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.GoOnlineRequest.KEY_BUDDY_NAME">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.GoOnlineRequest.KEY_BUDDY_ID">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.GoOnlineRequest.#ctor(System.Boolean)">
            <summary>
            Constructor
            </summary>
            <param name="online">
            the Buddy Online status
            </param>
            <seealso cref="F:Sfs2X.Core.SFSBuddyEvent.BUDDY_ONLINE_STATE_UPDATE"/>
            <seealso cref="F:Sfs2X.Core.SFSBuddyEvent.BUDDY_ERROR"/>
        </member>
        <member name="M:Sfs2X.Requests.GoOnlineRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.GoOnlineRequest.Execute(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Entities.Managers.SFSBuddyManager">
            <summary>
            The class manages the current User's Buddy List
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Managers.SFSBuddyManager.buddiesByName">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Entities.Managers.SFSBuddyManager.myVariables">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Entities.Managers.SFSBuddyManager.myOnlineState">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Entities.Managers.SFSBuddyManager.myNickName">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Entities.Managers.SFSBuddyManager.myState">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Entities.Managers.SFSBuddyManager.inited">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSBuddyManager.AddBuddy(Sfs2X.Entities.Buddy)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSBuddyManager.ClearAll">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSBuddyManager.RemoveBuddyById(System.Int32)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSBuddyManager.RemoveBuddyByName(System.String)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSBuddyManager.GetBuddyById(System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSBuddyManager.ContainsBuddy(System.String)">
            <inheritdoc />		
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSBuddyManager.GetBuddyByName(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSBuddyManager.GetBuddyByNickName(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSBuddyManager.GetMyVariable(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSBuddyManager.SetMyVariable(Sfs2X.Entities.Variables.BuddyVariable)">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.Managers.SFSBuddyManager.Inited">
            <inheritdoc /> 
        </member>
        <member name="P:Sfs2X.Entities.Managers.SFSBuddyManager.OfflineBuddies">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.Managers.SFSBuddyManager.OnlineBuddies">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.Managers.SFSBuddyManager.BuddyList">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.Managers.SFSBuddyManager.MyVariables">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.Managers.SFSBuddyManager.MyOnlineState">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.Managers.SFSBuddyManager.MyNickName">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.Managers.SFSBuddyManager.MyState">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.Managers.SFSBuddyManager.BuddyStates">
            <inheritdoc />
        </member>
        <member name="T:Sfs2X.Entities.Match.RoomProperties">
            <summary>
            A list of additional properties that can be used in MatchExpressions for Room objects
            </summary>
            <seealso cref="T:Sfs2X.Entities.Match.MatchExpression"/>
        </member>
        <member name="F:Sfs2X.Entities.Match.RoomProperties.NAME">
            <summary>
            The Room name
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Match.RoomProperties.GROUP_ID">
            <summary>
            The Room group id
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Match.RoomProperties.MAX_USERS">
            <summary>
            The Room max users
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Match.RoomProperties.MAX_SPECTATORS">
            <summary>
            The Room max spectators
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Match.RoomProperties.USER_COUNT">
            <summary>
            The Room user count
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Match.RoomProperties.SPECTATOR_COUNT">
            <summary>
            The Room spectator count
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Match.RoomProperties.IS_GAME">
            <summary>
            The Room isGame flag
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Match.RoomProperties.IS_PRIVATE">
            <summary>
            The Room isPrivate flag
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Match.RoomProperties.HAS_FREE_PLAYER_SLOTS">
            <summary>
            Check if the Room has at least 1 free player slot
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Match.RoomProperties.IS_TYPE_SFSGAME">
            <summary>
            Check if the Room is of type SFSGame
            </summary>
        </member>
        <member name="T:Sfs2X.Requests.SetUserVariablesRequest">
            <summary>
            Set custom User Variables for the current User
            </summary>
            <seealso cref="T:Sfs2X.Entities.Variables.SFSUserVariable"/>
        </member>
        <member name="F:Sfs2X.Requests.SetUserVariablesRequest.KEY_USER">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.SetUserVariablesRequest.KEY_VAR_LIST">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.SetUserVariablesRequest.#ctor(System.Collections.Generic.ICollection{Sfs2X.Entities.Variables.UserVariable})">
            <summary>
            Constructor
            </summary>
            <param name="userVariables">
            an Array of UserVariables
            </param>
            <example>
            <b>Example #1</b> Shows how set a number of User variables
            		<code>
            		List&lt;UserVariable&gt; userVars = new List&lt;UserVariable&gt;();
            		roomVars.Add( new SFSUserVariable("avatarType", "SwedishCook") );
            		roomVars.Add( new SFSUserVariable("country", "Sweden") );
            		roomVars.Add( new SFSUserVariable("x", 10) );
            		roomVars.Add( new SFSUserVariable("y", 5) );
            
            		smartFox.Send ( new SetUserVariablesRequest(userVars) );
            		</code>
            
            <b>Example #2</b> Shows how to listen and react to some other User's updates
            		<code>
            		smartFox.AddEventListener(SFSEvent.USER_VARIABLES_UPDATE, OnUserVarsUpdate);
            		
            		void OnUserVarsUpdate(BaseEvent evt) {
            			List&lt;UserVariable&gt; changedVars = (List&lt;UserVariable&gt;)evt.Params["changedVars"];
            			User user = (User)evt.Params["user"];
            
            	**TODO - code in AS3 - need to port to C#**
            
            			// Check if the user changed his x &amp; y user variables
            			if (changedVars.indexOf("x") != -1 || changedVars.indexOf("y") != -1)
            			{
            				// Move the character to a new position...
            				UpdateClientPosition(user);
            			}		
            		}
            		</code>
            </example>
            <seealso cref="T:Sfs2X.Entities.Variables.SFSUserVariable"/>
        </member>
        <member name="M:Sfs2X.Requests.SetUserVariablesRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.SetUserVariablesRequest.Execute(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Requests.RoomExtension">
            <summary>
            This object is part of the RoomSettings parameters used for creating a new Room. 
            </summary>
            <remarks>
            It describes the properties of an Extension attached to the Room
            </remarks>
            <seealso cref="T:Sfs2X.Requests.RoomSettings"/>
            <seealso cref="T:Sfs2X.Requests.CreateRoomRequest"/>
        </member>
        <member name="M:Sfs2X.Requests.RoomExtension.#ctor(System.String,System.String)">
            <summary>
            Constructor
            </summary>
            <param name="id">
            the name of the extension
            </param>
            <param name="className">
            the fully qualified name of the main class in the extension
            </param>
            <seealso cref="T:Sfs2X.Requests.RoomSettings"/>
            <seealso cref="T:Sfs2X.Requests.CreateRoomRequest"/>
        </member>
        <member name="P:Sfs2X.Requests.RoomExtension.Id">
            <summary>
            The name of the extension
            </summary>
        </member>
        <member name="P:Sfs2X.Requests.RoomExtension.ClassName">
            <summary>
            The fully qualified name of the main class in the extension
            </summary>
        </member>
        <member name="P:Sfs2X.Requests.RoomExtension.PropertiesFile">
            <summary>
            An optional properties file that will be loaded on the server side when the extension is initialized
            </summary>
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSRoomManager.AddRoom(Sfs2X.Entities.Room)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSRoomManager.AddRoom(Sfs2X.Entities.Room,System.Boolean)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSRoomManager.ReplaceRoom(Sfs2X.Entities.Room)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSRoomManager.ReplaceRoom(Sfs2X.Entities.Room,System.Boolean)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSRoomManager.ChangeRoomName(Sfs2X.Entities.Room,System.String)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSRoomManager.ChangeRoomPasswordState(Sfs2X.Entities.Room,System.Boolean)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSRoomManager.ChangeRoomCapacity(Sfs2X.Entities.Room,System.Int32,System.Int32)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSRoomManager.GetRoomGroups">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSRoomManager.AddGroup(System.String)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSRoomManager.RemoveGroup(System.String)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSRoomManager.GetJoinedRooms">
            <summary>
            Return rooms joined by local user
            </summary>
            <returns>
            A <see cref="T:System.Collections.Generic.List`1"/>
            </returns>
        </member>
        <member name="P:Sfs2X.Entities.Managers.SFSRoomManager.OwnerZone">
            <exclude/>
        </member>
        <member name="P:Sfs2X.Entities.Managers.SFSRoomManager.SmartFoxClient">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Util.ClientDisconnectionReason.IDLE">
            <summary>
            Client was disconnected because he was idle for too long (depends on server settings)
            </summary>
        </member>
        <member name="F:Sfs2X.Util.ClientDisconnectionReason.KICK">
            <summary>
            Client was kicked out of the server
            </summary>
        </member>
        <member name="F:Sfs2X.Util.ClientDisconnectionReason.BAN">
            <summary>
            Client was banished from the server
            </summary>
        </member>
        <member name="F:Sfs2X.Util.ClientDisconnectionReason.MANUAL">
            <summary>
            The client manually disconnected from the server
            </summary>
        </member>
        <member name="F:Sfs2X.Util.ClientDisconnectionReason.UNKNOWN">
            <summary>
            A generic network error occurred, it's not possible to determine the cause of the disconnection
            </summary>
        </member>
        <member name="T:Sfs2X.Requests.FindUsersRequest">
            <summary>
            Search Users in the system by matching their variables and properties against a MatchExpression
            </summary>
        </member>
        <member name="F:Sfs2X.Requests.FindUsersRequest.KEY_EXPRESSION">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.FindUsersRequest.KEY_GROUP">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.FindUsersRequest.KEY_ROOM">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.FindUsersRequest.KEY_LIMIT">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.FindUsersRequest.KEY_FILTERED_USERS">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.FindUsersRequest.#ctor(Sfs2X.Entities.Match.MatchExpression)">
            <summary>
            <see cref="M:Sfs2X.Requests.FindUsersRequest.#ctor(Sfs2X.Entities.Match.MatchExpression,System.String,System.Int32)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.FindUsersRequest.#ctor(Sfs2X.Entities.Match.MatchExpression,Sfs2X.Entities.Room)">
            <summary>
            <see cref="M:Sfs2X.Requests.FindUsersRequest.#ctor(Sfs2X.Entities.Match.MatchExpression,System.String,System.Int32)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.FindUsersRequest.#ctor(Sfs2X.Entities.Match.MatchExpression,Sfs2X.Entities.Room,System.Int32)">
            <summary>
            <see cref="M:Sfs2X.Requests.FindUsersRequest.#ctor(Sfs2X.Entities.Match.MatchExpression,System.String,System.Int32)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.FindUsersRequest.#ctor(Sfs2X.Entities.Match.MatchExpression,System.String)">
            <summary>
            <see cref="M:Sfs2X.Requests.FindUsersRequest.#ctor(Sfs2X.Entities.Match.MatchExpression,System.String,System.Int32)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.FindUsersRequest.#ctor(Sfs2X.Entities.Match.MatchExpression,System.String,System.Int32)">
            <summary>
            Constructor
            </summary>
            <param name="expr">
            the match expression 
            </param>
            <param name="target">
            it can be a Room or String (the Group Id), if null the search will done in the whole Zone (default)
            </param>
            <param name="limit">
            the number of results wanted. Zero means no limit, we will get all results (default)
            </param>
            <remarks>
            target can be 
            --&gt; Room: search in that room
            --&gt; String: a valid groupId
            --&gt; null: search the whole zone
            </remarks>
            
            <example>
            <code>
            			smartFox.AddEventListener(SFSEvent.USER_FIND_RESULT, OnUserFindResult);
            
            			// Search for all Users whose 'age' User Variable is 29
            			MatchExpression expr = new MatchExpression('age', NumberMatch.EQUALS, 29);
            			smarFox.Send( new FindUserRequest(expr) );
            
            			void OnUserFindResult(BaseEvent evt){
            				// Show the array of Users
            				Console.WriteLine("Users found: " + (List&lt;User&gt;)evt.Params["users"]); 	
            			}
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSEvent.USER_FIND_RESULT"/>
            <seealso cref="T:Sfs2X.Entities.Match.UserProperties"/>
            <seealso cref="T:Sfs2X.Entities.Match.MatchExpression"/>
        </member>
        <member name="M:Sfs2X.Requests.FindUsersRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.FindUsersRequest.Execute(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Requests.Game.InviteUsersRequest">
            <summary>
            end one or more generic invitations to a list of Users.
            </summary>
            <remarks>
            Invitations can be used for different purposes such as playing games, visiting a specific Room, Buddy requests etc...
            </remarks>
            <seealso cref="T:Sfs2X.Entities.Invitation.SFSInvitation"/>
        </member>
        <member name="F:Sfs2X.Requests.Game.InviteUsersRequest.KEY_USER">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.Game.InviteUsersRequest.KEY_USER_ID">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.Game.InviteUsersRequest.KEY_INVITATION_ID">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.Game.InviteUsersRequest.KEY_TIME">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.Game.InviteUsersRequest.KEY_PARAMS">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.Game.InviteUsersRequest.KEY_INVITEE_ID">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.Game.InviteUsersRequest.KEY_INVITED_USERS">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.Game.InviteUsersRequest.KEY_REPLY_ID">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.Game.InviteUsersRequest.#ctor(System.Collections.Generic.List{System.Object},System.Int32,Sfs2X.Entities.Data.ISFSObject)">
            <summary>
            Constructor
            </summary>
            <param name="invitedUsers">
            a list of invited Users
            </param>
            <param name="secondsForReply">
            the amount of seconds allowed to the invited User to reply (recommended range 15-40 seconds)
            </param>
            <param name="parameters">
            optional custom invitation parameters 
            </param>
            <example>
            <code>
            			// Add event listener for the Invitation reply event
            			smartFox.AddEventListener(SFSEvent.INVITATION_REPLY, OnInvitationReply);
            			
            			// Prepare the invitation
            			User user1 = sfs.UserManager.GetUserByName("Piggy");
            			User user2 = sfs.UserManager.GetUserByName("Gonzo");
            			List&lt;object&gt; invitedUsers = new List&lt;object&gt;();
            			invitedUsers.Add(user1);
            			invitedUsers.Add(user2);
            
            			// Custom invitation params
            			ISFSObject parameters: = new SFSObject();
            			parameters.PutUtfString("msg", "Hi you are invited in my new place. If you accept I will send you my Room id!");
            			
            			// Send invitation
            			smartFox.Send( new InviteUsersRequest(invitedUsers, 20, params) );
            			
            			// Handle responses from invited users
            			void OnInvitationReply(BaseEvent evt) {	
            				// If User accepts the invitation, send the Room id to join (as promised)
            				if ((InvitationReply)evt.Params["reply"] == InvitationReply.ACCEPT) {
            					// Send a game move to all players
            					ISFSObject dataObj = new SFSObject();
            					dataObj.PutInt("roomId", aRoomReference.Id);
            
            					smartFox.Send(new ObjectMessageRequest(dataObj));
            				}
            
            				else ((InvitationReply)evt.Params["reply"] == InvitationReply.REFUSE) {
            					Console.WriteLine((User)evt.Params["invitee"] + " has refused the invitation.");
            				}
            			}
            
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSEvent.INVITATION_REPLY"/>
            <seealso cref="T:Sfs2X.Entities.Invitation.SFSInvitation"/>
            <seealso cref="T:Sfs2X.Entities.Invitation.InvitationReply"/>
        </member>
        <member name="M:Sfs2X.Requests.Game.InviteUsersRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.Game.InviteUsersRequest.Execute(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Entities.Managers.SFSUserManager">
            <summary>
            Manages the local Users.
            </summary>
            <remarks>
            The client side API only see the Users that are joined in the same Rooms of the current User.
            </remarks>
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSUserManager.ContainsUserName(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSUserManager.ContainsUserId(System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSUserManager.ContainsUser(Sfs2X.Entities.User)">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSUserManager.GetUserByName(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSUserManager.GetUserById(System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSUserManager.AddUser(Sfs2X.Entities.User)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSUserManager.AddUserInternal(Sfs2X.Entities.User)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSUserManager.RemoveUser(Sfs2X.Entities.User)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSUserManager.RemoveUserById(System.Int32)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSUserManager.GetUserList">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.Managers.SFSUserManager.UserCount">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.Managers.SFSUserManager.SmartFoxClient">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Managers.SFSGlobalUserManager.AddUser(Sfs2X.Entities.User)">
            <summary>
            Does not allow duplicates and keeps a reference count
            </summary>
            <param name="user">
            A <see cref="T:Sfs2X.Entities.User"/>
            </param>
        </member>
        <member name="T:Sfs2X.Core.SFSEvent">
            <summary>
            This is the main SmartFox Event class. All major system events are found here.
            </summary>
            
            <seealso cref="T:Sfs2X.Core.SFSBuddyEvent"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.HANDSHAKE">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.UDP_INIT">
            <summary>
            The Event notifies the result of the initial UDP handshake. 
            </summary>
            <remarks>
            The handshake is sent in order to establish a channel of communication between client and server.
            <para/>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>success</term>
                <description>(<b>bool</b>) true if a connection was established, false otherwise.</description>
              </item>
            </list>
            </remarks>
            <example>
            The following example shows how initialize the UDP channel
            <code>
            		sfs.AddEventListener(SFSEvent.UPD_INIT, OnUDPInit);
            		sfs.InitUDP();
            
            		void OnUDPInit(BaseEvent evt) {
            			if ((bool)evt.Params["success"] == false) {
            				Console.WriteLine("Sorry, UDP is not available. Initialization failed");
            			} else {
            				// Init OK: Execute an extension call via UDP
            				sfs.Send( new ExtensionRequest("udpTest", new SFSObject(), null, true) );
            			}
            		}
            </code>
            </example>
            <seealso cref="M:Sfs2X.SmartFox.InitUDP(System.String,System.Int32)"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.CONNECTION">
            <summary>
            The Event notifies the result of a connection attempt.
            </summary>
            
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>success</term>
                <description>(<b>bool</b>) true if a connection was established, false otherwise.</description>
              </item>
            </list>
            </remarks>
            
            <example>
            The following example shows how to start a connection
            <code>
            SmartFox smartFox = new SmartFox();
            smartFox.AddEventListener(SFSEvent.OnConnection, OnConnection);
            
            void OnConnection(BaseEvent evt) {
            	if ((bool)evt.Params["success"])
            		Console.WriteLine("Connection was established");
            	else
            		Console.WriteLine("Connection failed");
            	}
            </code>
            </example>
            
            <seealso cref="F:Sfs2X.Core.SFSEvent.CONNECTION_RETRY"/>
            <seealso cref="F:Sfs2X.Core.SFSEvent.CONNECTION_RESUME"/>
            <seealso cref="F:Sfs2X.Core.SFSEvent.CONNECTION_LOST"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.CONNECTION_LOST">
            <summary>
            The Event notifies the disconnection from the Server.
            </summary>
            
            <remarks>
            When possible the API will also provide a reason for the disconnection:
            <ul>
            <li><b>Idle</b>: the connection was dropped because the User was inactive for too long</li>
            <li><b>Manual</b>: the User requested the disconnection</li>
            <li><b>Kick</b>: the connection was dropped because the User was kicked</li>
            <li><b>Ban</b>: the connection was dropped because the User was banned</li>
            <li><b>Unknown</b>: the connection was lost for reasons outside of the API (slow or bad connection, network problems etc...)</li>
            </ul>
            <para/>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>reason</term>
                <description>(<b>String</b>) the reason of the disconnection.</description>
              </item>
            </list>
            </remarks>
            
            <example>
            The following example shows how to handle a disconnection
            <code>
            SmartFox smartFox = new SmartFox();
            smartFox.AddEventListener(SFSEvent.OnConnectionLost, OnConnectionLost);
            
            void OnConnectionLost(BaseEvent evt) {
            	Console.WriteLine("Connection was lost, Reason: " + (string)evt.Params["reason"]);
            	}
            </code>
            </example>
            
            <seealso cref="F:Sfs2X.Core.SFSEvent.CONNECTION_RETRY"/>
            <seealso cref="F:Sfs2X.Core.SFSEvent.CONNECTION_RESUME"/>
            <seealso cref="F:Sfs2X.Core.SFSEvent.CONNECTION"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.CONNECTION_RETRY">
             <summary>
             The Event notifies the disconnection from the Server.
             </summary>
             
             <remarks>
             SmartFoxServer 2X provides a powerful new feature that allows a broken connection to be re-established transparently
             without loosing any of the current application state. This allows any player to get back in the game without fear of loosing 
             the match because of a sloppy internet connection. 
             <para/>
             When this event is dispatched the API enter a "freeze" mode where no new requests can be sent until the reconnection is 
             successfully performed. It is highly recommended to handle this event and freeze your application interface accordingly until the
             <see cref="F:Sfs2X.Core.SFSEvent.CONNECTION_RESUME"/> event is fired.
             </remarks>
             
             <example>
             The following example shows how to handle a reconnection
             <code>
            	SmartFox smartFox = new SmartFox();
            	smartFox.AddEventListener(SFSEvent.CONNECTION_RETRY, OnConnectionRetry);
            	smartFox.AddEventListener(SFSEvent.CONNECTION_RESUME, OnConnectionResume);
            			
            			void OnConnectionRetry(BaseEvent evt) {
            				// Freeze your GUI and provide some feedback to the Player
            			}
            
            			void OnConnectionResume(BaseEvent evt) {
            				// Unfreeze the GUI and let the player continue with the game...
            			}
             </code>
             </example>
             
             <seealso cref="F:Sfs2X.Core.SFSEvent.CONNECTION_LOST"/>
             <seealso cref="F:Sfs2X.Core.SFSEvent.CONNECTION_RESUME"/>
             <seealso cref="F:Sfs2X.Core.SFSEvent.CONNECTION"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.CONNECTION_RESUME">
            <summary>
            The Event is dispatched after a temporary disconnection, when the connection to the Server has been re-establisehd.
            </summary>
            
            <remarks>
            SmartFoxServer 2X provides a powerful new feature that allows a broken connection to be re-established transparently
            without loosing any of the current application state. This allows any player to get back in the game without fear of loosing 
            the match because of a sloppy internet connection or a sudden disconnection. 
            <para/>
            In case the re-connection attempts fails an <see cref="F:Sfs2X.Core.SFSEvent.CONNECTION_LOST"/> event will be fired.
            </remarks>
            
            <example>
            The following example shows how to handle a reconnection
            			<code>
            			SmartFox smartFox = new SmartFox();
            			smartFox.AddEventListener(SFSEvent.OnConnectionRetry, OnConnectionRetry);
            			smartFox.AddEventListener(SFSEvent.OnConnectionResumed, OnConnectionResumed);
            			smartFox.AddEventListener(SFSEvent.OnConnectionResumed, OnConnectionLost);
            			
            			void OnConnectionRetry(BaseEvent evt) {
            				// Freeze your GUI and provide some feedback to the Player
            			}
            
            			void OnConnectionResumed(BaseEvent evt) {
            				// Unfreeze the GUI and let the player continue with the game...
            			}
            
            			void OnConnectionLost(BaseEvent evt) {
            				Console.WriteLine("Ouch, connection was lost. Reason: " + (string)evt.Params["reason"]);
            			}
            			</code>
            </example>
            
            <seealso cref="F:Sfs2X.Core.SFSEvent.CONNECTION_LOST"/>
            <seealso cref="F:Sfs2X.Core.SFSEvent.CONNECTION_RESUME"/>
            <seealso cref="F:Sfs2X.Core.SFSEvent.CONNECTION"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.CONFIG_LOAD_SUCCESS">
            <summary>
            Dispatched when the external SmartFox configuration file has been loaded successfully.
            </summary>
            <remarks>
            This event is dispatched only if the <i>connectOnSuccess</i> parameter of the <see cref="M:Sfs2X.SmartFox.LoadConfig(System.String,System.Boolean)"/> method is set to <c>false</c> otherwise the connection is made and the related <see cref="F:Sfs2X.Core.SFSEvent.CONNECTION"/> event is fired.
            <para/>
            No parameters are provided.
            </remarks>
            
            <example>
            The following example shows how to handle a successful configuration loading.
            			<code>
            			smartFox.AddEventListener(SFSEvent.CONFIG_LOAD_SUCCESS, OnConfigLoadSuccess);
            			smartFox.LoadConfig("testEnvironmentConfig.xml", false);
            			
            			void OnConfigLoadSuccessHandler(BaseEvent evt) {
            				Console.WriteLine("Config file loaded, now connecting...");
            				smartFox.Connect(smartFox.CurrentIp, smartFox.CurrentPort);
            			}
            			</code>
            
            </example>
            
            <seealso cref="F:Sfs2X.Core.SFSEvent.CONFIG_LOAD_FAILURE"/>
            <seealso cref="M:Sfs2X.SmartFox.LoadConfig(System.String,System.Boolean)"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.CONFIG_LOAD_FAILURE">
            <summary>
            Dispatched when an error occurs while loading the external SmartFox configuration file.
            </summary>
            <remarks>
            Typically this event is received when the configuration is not found or its not accessible (no read permissions)
            </remarks>
            
            <example>
            The following example shows how to handle a potential error in configuration loading.
            			<code>
            			smartFox.AddEventListener(SFSEvent.CONFIG_LOAD_FAILURE, OnConfigLoadFailure);
            			smartFox.LoadConfig("testEnvironmentConfig.xml");
            			
            			void OnConfigLoadFailureHandler(BaseEvent evt) {
            				Console.WriteLine("Failed loading config file.);
            			}
            			</code>
            </example>
            
            <seealso cref="F:Sfs2X.Core.SFSEvent.CONFIG_LOAD_SUCCESS"/>
            <seealso cref="M:Sfs2X.SmartFox.LoadConfig(System.String,System.Boolean)"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.LOGIN">
            <summary>
            The Event is dispatched in response to a login request.
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>user</term>
                <description>(<b>User</b>) the User object</description>
              </item>
              <item>
                <term>data</term>
                <description>(<b>SFSObject</b>) a custom object with extra params (if you have added custom server side logic)</description>
              </item>
            </list>
            </remarks>
            
            <example>
            The following example shows how to handle a login event
            			<code>
            			smartFox.AddEventListener(SFSEvent.LOGIN, OnLogin);
            			
            			void OnLogin(BaseEvent evt) {
            				Console.WriteLine("Hi, I have just logged in as: " + ((User)evt.Params["user"]).Name);
            			}
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSEvent.LOGIN_ERROR"/>
            <seealso cref="T:Sfs2X.Requests.LoginRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.LOGIN_ERROR">
            <summary>
            The Event is dispatched in response to a failed login request.
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>errorMessage</term>
                <description>(<b>String</b>) the error message</description>
              </item>
            </list>
            </remarks>
            <example>
            The following example shows how to handle a login failure event
            			<code>
            			smartFox.AddEventListener(SFSEvent.LOGIN_ERROR, OnLoginError);
            			
            			void OnLoginError(BaseEvent evt) {
            				Console.WriteLine("Login Failed. Reason: " + (string)evt.Params["errorMessage"]);
            			}
            			</code>
            </example> 
            <seealso cref="F:Sfs2X.Core.SFSEvent.LOGIN"/>
            <seealso cref="T:Sfs2X.Requests.LoginRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.LOGOUT">
            <summary>
            The Event is dispatched in response to a logout request.
            </summary>
            <remarks>
            Usually this event needs to be handled when you want to logout from the current Zone and join another one.
            <para/>
            In order to perform the operation correctly you need to do as follows:
            <ul>
            	<li>Send a LogoutRequest to the Server</li>
            	<li>Handle the OnLogout event on the client</li>
            	<li>Perform a new login in the new Zone</li>
            </ul>
            <para/>
            No parameters are passed for this event
            </remarks>
            <example>
            The following example shows how to handle a logout event
            			<code>
            			smartFox.AddEventListener(SFSEvent.LOGOUT, OnLogout);
            			
            			void OnLogout(BaseEvent evt) {
            				Console.WriteLine("Logout was successful");
            				// Proceed with more logic here...
            			}
            			</code>
            </example>
            <seealso cref="T:Sfs2X.Requests.LogoutRequest"/>
            <seealso cref="T:Sfs2X.Requests.LoginRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.ROOM_ADD">
            <summary>
            The Event is dispatched when a new Room was created inside the Zone under any of the Room Groups that the User is listening for.
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>room</term>
                <description>(<b>Room</b>) the room object</description>
              </item>
            </list>
            </remarks>
            <example>
            The following example shows how to handle the event
            			<code>
            			smartFox.AddEventListener(SFSEvent.ROOM_ADD, OnRoomAdded);
            			
            			void OnRoomAdded(BaseEvent evt) {
            				Console.WriteLine("A new Room was added: " + (Room)evt.Params["room"]);
            			}
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSEvent.ROOM_REMOVE"/>
            <seealso cref="T:Sfs2X.Requests.CreateRoomRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.ROOM_REMOVE">
            <summary>
            The Event is dispatched whenever a Room is removed from the Zone, under any of the Room Groups that the User is listening for.
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>room</term>
                <description>(<b>Room</b>) the room object</description>
              </item>
            </list>
            </remarks>
            <example>
            The following example shows how to handle the event
            			<code>
            			smartFox.AddEventListener(SFSEvent.ROOM_REMOVE, OnRoomRemoved);
            			
            			void OnRoomRemoved(BaseEvent evt) {
            				Console.WriteLine("A new Room was removed: " + (Room)evt.Params["room"]);
            			}
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSEvent.ROOM_ADD"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.ROOM_CREATION_ERROR">
            <summary>
            The Event is dispatched in response to a failed create room request.
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>errorMessage</term>
                <description>(<b>String</b>) the error message</description>
              </item>
            </list>
            </remarks>
            <example>
            The following example shows how to handle the event
            			<code>
            			smartFox.AddEventListener(SFSEvent.ROOM_CREATION_ERROR, OnRoomCreationError);
            			
            			void OnRoomCreationError(BaseEvent evt) {
            				Console.WriteLine("Room Creation Error: " + (string)evt.Params["errorMessage"]);
            			}
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSEvent.ROOM_ADD"/>
            <seealso cref="T:Sfs2X.Requests.CreateRoomRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.ROOM_JOIN">
            <summary>
            The Event is dispatched in response to a JoinRoomRequest.
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>room</term>
                <description>(<b>Room</b>) the joined Room </description>
              </item>
            </list>
            </remarks>
            <example>
            The following example shows how to handle the event
            			<code>
            			smartFox.AddEventListener(SFSEvent.ROOM_JOIN, OnJoinRoom);
            			
            			void OnJoinRoom(BaseEvent evt) {
            				Room room = (Room)evt.Params["room"];
            				Console.WriteLine("The Room " + room.Name + " was succesfully joined!");
            			}
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSEvent.ROOM_JOIN_ERROR"/>
            <seealso cref="T:Sfs2X.Requests.JoinRoomRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.ROOM_JOIN_ERROR">
            <summary>
            The Event is dispatched in response to a failed JoinRoomRequest.
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>errorMessage</term>
                <description>(<b>String</b>) the error message</description>
              </item>
            </list>
            </remarks>
            <example>
            The following example shows how to handle the event
            			<code>
            			smartFox.AddEventListener(SFSEvent.ROOM_JOIN_ERROR, OnJoinRoomError);
            			
            			void OnJoinRoomError(BaseEvent evt) {
            				Console.WriteLine("Join Room Failure: " + (string)evt.Params["errorMessage"]);
            			}
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSEvent.ROOM_JOIN"/>
            <seealso cref="T:Sfs2X.Requests.JoinRoomRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.USER_ENTER_ROOM">
            <summary>
            The Event is fired whenever a User enters one of the Rooms where the current User is joined.
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>user</term>
                <description>(<b>User</b>) the User object</description>
              </item>
              <item>
                <term>room</term>
                <description>(<b>Room</b>) the Room object</description>
              </item>
            </list>
            </remarks>
            <example>
            The following example shows how to handle the event
            			<code>
            			smartFox.AddEventListener(SFSEvent.USER_ENTER_ROOM, OnUserEnterRoom);
            			
            			void OnUserEnterRoom(BaseEvent evt) {
            				Room room = (Room)evt.Params["room"];
            				User user = (User)evt.Params["user"];
            
            				Console.WriteLine("User: " + user.Name + " has just joined Room: " + room.Name);
            			}
            			</code>
            </example>	
            <seealso cref="F:Sfs2X.Core.SFSEvent.USER_EXIT_ROOM"/>
            <seealso cref="F:Sfs2X.Core.SFSEvent.ROOM_JOIN"/>
            <seealso cref="T:Sfs2X.Requests.JoinRoomRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.USER_EXIT_ROOM">
            <summary>
            The Event is fired whenever a User leaves one of the Rooms where the current User is joined.
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>user</term>
                <description>(<b>User</b>) the User object</description>
              </item>
              <item>
                <term>room</term>
                <description>(<b>Room</b>) the Room object</description>
              </item>
            </list>
            </remarks>
            <example>
            The following example shows how to handle the event
            			<code>
            			smartFox.AddEventListener(SFSEvent.USER_EXIT_ROOM, OnUserExitRoom);
            			
            			void OnUserExitRoom(BaseEvent evt) {
            				Room room = (Room)evt.Params["room"];
            				User user = (User)evt.Params["user"];
            
            				Console.WriteLine("User: " + user.Name + " has just left Room: " + room.Name);
            			}
            			</code>
            </example>	
            <seealso cref="F:Sfs2X.Core.SFSEvent.USER_ENTER_ROOM"/>
            <seealso cref="F:Sfs2X.Core.SFSEvent.ROOM_JOIN"/>
            <seealso cref="T:Sfs2X.Requests.LeaveRoomRequest"/> 
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.USER_COUNT_CHANGE">
            <summary>
            The Event is fired whenever the number of users/spectators in a Room changes.
            </summary>
            <remarks>
            The client receives updates for all Rooms inside the Room Groups that he is listening to.
            <para/>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>room</term>
                <description>(<b>Room</b>) the Room  </description>
              </item>
              <item>
                <term>uCount</term>
                <description>(<b>int</b>) the new user count</description>
              </item>
              <item>
                <term>sCount</term>
                <description>(<b>int</b>) the new spectator count</description>
              </item>
            </list>
            </remarks>
            <example>
            The following example shows how to handle the event
            			<code>
            			smartFox.AddEventListener(SFSEvent.USER_COUNT_CHANGE, OnUserCountChange);
            			
            			void OnUserCountChange(BaseEvent evt) {
            				Room room = (Room)evt.Params["room"];
            				int uCount = (int)evt.Params["uCount"];
            				int sCount = (int)evt.Params["sCount"];
            
            				Console.WriteLine("Room: " + room.Name + " contains " + uCount + " users and " + sCount + " spectators");
            			}
            			</code>
            </example>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.PUBLIC_MESSAGE">
            <summary>
            The Event is fired when a User sends a public message.
            </summary>
            <remarks>
            Also the User receives this event every time he sends a public message. 
            <para/>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>room</term>
                <description>(<b>Room</b>) the target Room</description>
              </item>
              <item>
                <term>sender</term>
                <description>(<b>User</b>) the sender</description>
              </item>
              <item>
                <term>message</term>
                <description>(<b>String</b>) the message</description>
              </item>
              <item>
                <term>data</term>
                <description>(<b>ISFSObject</b>) an object with custom data</description>
              </item>
            </list>
            </remarks>
            <example>
            The following example shows how to handle the event
            			<code>
            			smartFox.AddEventListener(SFSEvent.PUBLIC_MESSAGE, OnPublicMessage);
            			
            			void OnPublicMessage(BaseEvent evt) {
            				User sender = (User)evt.Params["sender"];
            				Console.WriteLine(sender.Name + ": " + evt.Params["message"]);
            			}
            			</code>
            </example>
            <seealso cref="T:Sfs2X.Requests.PublicMessageRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.PRIVATE_MESSAGE">
            <summary>
            The Event is fired when a User receives a private message.
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>sender</term>
                <description>(<b>User</b>) the sender of the message </description>
              </item>
              <item>
                <term>message</term>
                <description>(<b>String</b>) the message </description>
              </item>
              <item>
                <term>data</term>
                <description>(<b>ISFSObject</b>) an object with custom data </description>
              </item>
            </list>
            </remarks>
            <example>
            The following example shows how to handle the event
            			<code>
            			smartFox.AddEventListener(SFSEvent.PRIVATE_MESSAGE, OnPrivateMessage);
            			
            			void OnPrivateMessage(BaseEvent evt) {
            				User sender = (User)evt.Params["sender"];
            				Console.WriteLine("PM: " + (string)evt.Params["message"] + ", from: " + sender.Name);
            			}
            			</code>
            </example>
            <seealso cref="T:Sfs2X.Requests.PrivateMessageRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.MODERATOR_MESSAGE">
            <summary>
            The Event is fired when a User receives a Moderator message.
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>sender</term>
                <description>(<b>User</b>) the sender of the message </description>
              </item>
              <item>
                <term>message</term>
                <description>(<b>String</b>) the message </description>
              </item>
              <item>
                <term>data</term>
                <description>(<b>ISFSObject</b>) an object with custom data</description>
              </item>
            </list>
            </remarks>
            <example>
            The following example shows how to handle the event
            			<code>
            			smartFox.AddEventListener(SFSEvent.MODERATOR_MESSAGE, OnModeratorMessage);
            			
            			void OnModeratorMessage(BaseEvent evt) {
            				User sender = (User)evt.Params["sender"];
            				Console.WriteLine("Moderator says: " + (string)evt.Params["message"] + ", from: " + sender.Name);
            			}
            			</code>
            </example>
            <seealso cref="T:Sfs2X.Requests.ModeratorMessageRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.ADMIN_MESSAGE">
            <summary>
            The Event is fired when a User receives an Admin message.
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>sender</term>
                <description>(<b>User</b>) the sender of the message  </description>
              </item>
              <item>
                <term>message</term>
                <description>(<b>String</b>) the message</description>
              </item>
              <item>
                <term>data</term>
                <description>(<b>ISFSObject</b>) an object with custom data </description>
              </item>
            </list>
            </remarks>
            <example>
            The following example shows how to handle the event
            			<code>
            			smartFox.AddEventListener(SFSEvent.ADMIN_MESSAGE, OnAdminMessage);
            			
            			void OnAdminMessage(BaseEvent evt) {
            				Console.WriteLine("Admin says: " + (string)evt.Params["message"]);
            			}
            			</code>
            </example>
            <seealso cref="T:Sfs2X.Requests.AdminMessageRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.OBJECT_MESSAGE">
            <summary>
            This Event is received when a User has sent an ObjectMessage request
            </summary>
            <remarks>
            The object sent by the sender can contain custom data, such as a game move etc...
            <para/>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>sender</term>
                <description>(<b>User</b>) the sender of the message  </description>
              </item>
              <item>
                <term>message</term>
                <description>(<b>ISFSObject</b>) the object data </description>
              </item>
            </list>
            </remarks>
            <example>
            The following example shows how to handle the event
            			<code>
            			smartFox.AddEventListener(SFSEvent.OBJECT_MESSAGE, OnObjectMessage);
            			
            			void OnObjectMessage(BaseEvent evt) {
            				ISFSObject obj = (SFSObject)evt.Params["message"];
            				// dumps the data object
            				Console.WriteLine("Received data: " + obj.GetDump());
            			}
            			</code>
            </example>
            <seealso cref="T:Sfs2X.Requests.ObjectMessageRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.EXTENSION_RESPONSE">
            <summary>
            The Event is fired every time a server-side Extension sends a message, usually in response to an ExtensionRequest. 
            </summary>
            <remarks>
            A server Extension can send messages at any moment, not just in response to a specific client request
            <para/>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>cmd</term>
                <description>(<b>String</b>) the name of the "command" (or "action id") associated with the message </description>
              </item>
              <item>
                <term>params</term>
                <description>(<b>ISFSObject</b>) custom parameters</description>
              </item>
              <item>
                <term>packetId</term>
                <description>(<b>long</b>) (optional) the id of the packet for an UDP message, the id is an auto increment value sent by the server. It can be used to detect out of order UDP packets.</description>
              </item>
            </list>
            </remarks>
            <seealso cref="T:Sfs2X.Requests.ExtensionRequest"/>
            <seealso cref="T:Sfs2X.Entities.Data.SFSObject"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.ROOM_VARIABLES_UPDATE">
            <summary>
            The Event is fired in response to a SetRoomVariablesRequest
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>room</term>
                <description>(<b>Room</b>) the Room in which the event occurred</description>
              </item>
              <item>
                <term>changedVars</term>
                <description>(<b>Array</b>) the list of variable names that where modified or created</description>
              </item>
            </list>
            </remarks>
            <seealso cref="T:Sfs2X.Requests.SetRoomVariablesRequest"/>
            <seealso cref="T:Sfs2X.Entities.Variables.SFSRoomVariable"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.USER_VARIABLES_UPDATE">
            <summary>
            The Event is fired in response to a SetUserVariablesRequest
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>user</term>
                <description>(<b>User</b>) the User that created or modified the Variables</description>
              </item>
              <item>
                <term>changedVars</term>
                <description>(<b>Array</b>) the list of variable names that where modified or created</description>
              </item>
            </list>
            </remarks>
            <seealso cref="T:Sfs2X.Requests.SetUserVariablesRequest"/>
            <seealso cref="T:Sfs2X.Entities.Variables.SFSUserVariable"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.ROOM_GROUP_SUBSCRIBE">
            <summary>
            The Event is fired in response to a SubscribeRoomGroupRequest
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>groupId</term>
                <description>(<b>String</b>) the name of the group that was subscribed</description>
              </item>
              <item>
                <term>newRooms</term>
                <description>(<b>Array</b>) the list of rooms contained in the new group </description>
              </item>
            </list>
            </remarks>
            <seealso cref="T:Sfs2X.Requests.SubscribeRoomGroupRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.ROOM_GROUP_UNSUBSCRIBE">
            <summary>
            The Event is fired in response to an UnsubscribeRoomGroupRequest
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>groupId</term>
                <description>(<b>String</b>) the name of thr group that was unsubscribed</description>
              </item>
            </list>
            </remarks>
            <seealso cref="T:Sfs2X.Requests.UnsubscribeRoomGroupRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.ROOM_GROUP_SUBSCRIBE_ERROR">
            <summary>
            The Event is fired in response to a failed SubscribeRoomGroupRequest
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>errorMessage</term>
                <description>(<b>String</b>) the error message</description>
              </item>
            </list>
            </remarks>
            <seealso cref="T:Sfs2X.Requests.SubscribeRoomGroupRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.ROOM_GROUP_UNSUBSCRIBE_ERROR">
            <summary>
            The Event is fired in response to a failed UnsubscribeRoomGroupRequest
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>errorMessage</term>
                <description>(<b>String</b>) the error message</description>
              </item>
            </list>
            </remarks>
            <seealso cref="T:Sfs2X.Requests.UnsubscribeRoomGroupRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.SPECTATOR_TO_PLAYER">
            <summary>
            The Event is fired in response to a successful SpectatorToPlayerRequest
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>room</term>
                <description>(<b>Room</b>) the Room where the spectator became a player</description>
              </item>
              <item>
                <term>user</term>
                <description>(<b>User</b>) the User who became a player</description>
              </item>
              <item>
                <term>playerId</term>
                <description>(<b>int</b>) the new playerId of the User</description>
              </item>
            </list>
            </remarks>
            <seealso cref="T:Sfs2X.Requests.SpectatorToPlayerRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.PLAYER_TO_SPECTATOR">
            <summary>
            The Event is fired in response to a failed PlayerToSpectatorRequest
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>room</term>
                <description>(<b>Room</b>) the Room where the player became a spectator</description>
              </item>
              <item>
                <term>user</term>
                <description>(<b>User</b>) the User who became a spectator</description>
              </item>
            </list>
            </remarks>
            <seealso cref="T:Sfs2X.Requests.PlayerToSpectatorRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.SPECTATOR_TO_PLAYER_ERROR">
            <summary>
            The Event is fired in response to a failed SpectatorToPlayerRequest
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>errorMessage</term>
                <description>(<b>String</b>) the error message</description>
              </item>
            </list>
            </remarks>
            <seealso cref="T:Sfs2X.Requests.SpectatorToPlayerRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.PLAYER_TO_SPECTATOR_ERROR">
            <summary>
            The Event is fired in response to a failed UnsubscribeRoomGroupRequest
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>errorMessage</term>
                <description>(<b>String</b>) the error message</description>
              </item>
            </list>
            </remarks>
            <seealso cref="T:Sfs2X.Requests.PlayerToSpectatorRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.ROOM_NAME_CHANGE">
            <summary>
            The Event is fired in response to a ChangeRoomNameRequest
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>room</term>
                <description>(<b>Room</b>) the Room where the change occurred</description>
              </item>
              <item>
                <term>oldName</term>
                <description>(<b>String</b>) the old Room name</description>
              </item>
            </list>
            </remarks>
            <seealso cref="T:Sfs2X.Requests.ChangeRoomNameRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.ROOM_NAME_CHANGE_ERROR">
            <summary>
            The Event is fired in response to a failed ChangeRoomNameRequest
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>errorMessage</term>
                <description>(<b>String</b>) the error message</description>
              </item>
            </list>
            </remarks>
            <seealso cref="T:Sfs2X.Requests.ChangeRoomNameRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.ROOM_PASSWORD_STATE_CHANGE">
            <summary>
            The Event is fired in response to a ChangeRoomPasswordStateRequest.
            </summary>
            <remarks>
            In particular this event when the <b>password state</b> is changed. For example when a non-password protected Room is assigned a password, or vice-versa 
            <para/>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>room</term>
                <description>(<b>Room</b>) the Room where the change occurred</description>
              </item>
            </list>
            </remarks>
            <seealso cref="T:Sfs2X.Requests.ChangeRoomPasswordStateRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.ROOM_PASSWORD_STATE_CHANGE_ERROR">
            <summary>
            The Event is fired in response to a failed ChangeRoomPasswordStateRequest
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>errorMessage</term>
                <description>(<b>String</b>) the error message</description>
              </item>
            </list>
            </remarks>
            <seealso cref="T:Sfs2X.Requests.ChangeRoomPasswordStateRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.ROOM_CAPACITY_CHANGE">
            <summary>
            The Event is fired in response to a ChangeRoomCapacityRequest
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>room</term>
                <description>(<b>Room</b>) the Room where the change occurred</description>
              </item>
            </list>
            </remarks>
            <seealso cref="T:Sfs2X.Requests.ChangeRoomCapacityRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.ROOM_CAPACITY_CHANGE_ERROR">
            <summary>
            The Event is fired in response to a failed ChangeRoomCapacityRequest
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>errorMessage</term>
                <description>(<b>String</b>) the error message</description>
              </item>
            </list>
            </remarks>
            <seealso cref="T:Sfs2X.Requests.ChangeRoomCapacityRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.ROOM_FIND_RESULT">
            <summary>
            The Event is fired in response to a FindRoomsRequest
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>rooms</term>
                <description>(<b>Array</b>) a list of Rooms matching the request criteria. If no Room was found the list will be empty.</description>
              </item>
            </list>
            </remarks>
            <seealso cref="T:Sfs2X.Requests.FindRoomsRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.USER_FIND_RESULT">
            <summary>
            The Event is fired in response to a FindUsersRequest
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>rooms</term>
                <description>(<b>Array</b>) a list of Users matching the request criteria. If no User was found the list will be empty.</description>
              </item>
            </list>
            </remarks>
            <seealso cref="T:Sfs2X.Requests.FindUsersRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.INVITATION">
            <summary>
            The Event is fired when another User has sent you an Invitation
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>invitation</term>
                <description>(<b>Invitation</b>) the invitation object</description>
              </item>
            </list>
            </remarks>
            <seealso cref="T:Sfs2X.Requests.Game.InviteUsersRequest"/>
            <seealso cref="T:Sfs2X.Entities.Invitation.SFSInvitation"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.INVITATION_REPLY">
            <summary>
            The Event is fired when a User sends a reply to your Invitation
            </summary>
            <remarks>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>invitee</term>
                <description>(<b>User</b>) the User that was invited</description>
              </item>
              <item>
                <term>reply</term>
                <description>(<b>int</b>) the <i>reply code</i>. It can be either InvitationReply.ACCEPT or InvitationReply.REFUSE</description>
              </item>
              <item>
                <term>data</term>
                <description>(<b>ISFSObject</b>) additional custom paramters (e.g. a reason for the refusal, a message etc...)</description>
              </item>
            </list>
            </remarks>
            <seealso cref="T:Sfs2X.Entities.Invitation.InvitationReply"/>
            <seealso cref="T:Sfs2X.Requests.Game.InviteUsersRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.INVITATION_REPLY_ERROR">
            <summary>
            The Event is fired in response to a failed InvitationReplyRequest
            </summary>
            <remarks>
            The failure is usually caused by a late reply which doesn't make it to the server within the expected time
            <para/>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>errorMessage</term>
                <description>(<b>String</b>) the error message</description>
              </item>
            </list>
            </remarks>
            
            <seealso cref="T:Sfs2X.Requests.Game.InvitationReplyRequest"/>
            <seealso cref="T:Sfs2X.Requests.Game.InviteUsersRequest"/>
        </member>
        <member name="F:Sfs2X.Core.SFSEvent.DEBUG_MESSAGE">
            <summary>
            Event fired for all log messages 
            </summary>
            <remarks>
            Unity API only
            <para/>
            The <see cref="P:Sfs2X.Core.BaseEvent.Params"/> object contains the following parameters.
            <list type="table">
              <listheader>
                <term>parameter</term>
                <description>description</description>
              </listheader>
              <item>
                <term>message</term>
                <description>(<b>String</b>) the log message</description>
              </item>
            </list>
            </remarks>
            <example>
            <code>
            	smartFox.AddLogListener(LogLevel.DEBUG, OnDebugMessage);
            
            	void OnDebugMessage(BaseEvent evt) {
            		string message = (string)evt.Params["message"];
            		Console.WriteLine("[SFS DEBUG] " + message);
            	}
            </code>
            </example>
        </member>
        <member name="M:Sfs2X.Core.SFSEvent.#ctor(System.String,System.Collections.Hashtable)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Core.SFSEvent.#ctor(System.String)">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Requests.KickUserRequest">
            <summary>
            Kicks a User out of the server (for moderators and admins only)
            </summary>
            <remarks>
            Allows to send a custom message and to set a delay in seconds.
            </remarks>
        </member>
        <member name="F:Sfs2X.Requests.KickUserRequest.KEY_USER_ID">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.KickUserRequest.KEY_MESSAGE">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.KickUserRequest.KEY_DELAY">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.KickUserRequest.#ctor(System.Int32)">
            <summary>
            <see cref="M:Sfs2X.Requests.KickUserRequest.#ctor(System.Int32,System.String,System.Int32)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.KickUserRequest.#ctor(System.Int32,System.String)">
            <summary>
            <see cref="M:Sfs2X.Requests.KickUserRequest.#ctor(System.Int32,System.String,System.Int32)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.KickUserRequest.#ctor(System.Int32,System.String,System.Int32)">
            <summary>
            Constructor
            </summary>
            <param name="userId">
            the id of the User to be kicked out of the server
            </param>
            <param name="message">
            a custom kick message, if null the message configured on the server side will be used
            </param>
            <param name="delaySeconds">
            a delay in seconds between the message (immediate) and the kick (delayed). Default is 5 seconds
            </param>
            <example>
            <code>
            			User userToKick = smartFox.UserManager.GetUserByName("Swedish Cook"); 
            
            			// Kick client, using default message configured on server side and default delay time (== 5sec)
            			smartFox.Send(new KickUserRequest(userToKick));
            			</code>
            </example>
            <seealso cref="T:Sfs2X.Requests.BanUserRequest"/>
        </member>
        <member name="M:Sfs2X.Requests.KickUserRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.KickUserRequest.Execute(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Requests.AdminMessageRequest">
            <summary>
            Send a Admin Message to a specific User or groups of Users
            </summary>
            <remarks>
            The sender must have the admin privileges to be able to send these kinds of messages.<br/>
            The <b>recipient</b> parameter can be used to specify if the message is sent to a User, a Room, the Room Group or the whole Zone.
            </remarks>
            
            <seealso cref="T:Sfs2X.Requests.MessageRecipientMode"/>
            <seealso cref="F:Sfs2X.Core.SFSEvent.ADMIN_MESSAGE"/>
        </member>
        <member name="M:Sfs2X.Requests.AdminMessageRequest.#ctor(System.String,Sfs2X.Requests.MessageRecipientMode,Sfs2X.Entities.Data.ISFSObject)">
            <summary/>
            Constructor
            <example>
            <code>
            			smartFox.AddEventListener(SFSEvent.ADMIN_MESSAGE, OnAdminMessage);
            			
            			// Say 'Hello' to every one
            			smartFox.Send(new AdminMessageRequest("Hello from the Moderator!"));
            
            			void OnAdminMessage(BaseEvent evt) {
            				Console.WriteLine("Message: " + (string)evt.Params["message"] + ", Sender: " + (User)evt.Params["sender"]);
            			}
            
            		</code>
            </example>
            
            <param name="message">
            the admin message
            </param>
            <param name="recipientMode">
            the recipient mode (message can be sent to single User, a Room, the whole Room Group or the Zone)
            </param>
            <param name="parameters">
            custom extra parameters
            </param>
            
            <seealso cref="F:Sfs2X.Core.SFSEvent.ADMIN_MESSAGE"/>
            <seealso cref="T:Sfs2X.Requests.MessageRecipientMode"/>
            <seealso cref="T:Sfs2X.Requests.ModeratorMessageRequest"/>
        </member>
        <member name="M:Sfs2X.Requests.AdminMessageRequest.#ctor(System.String,Sfs2X.Requests.MessageRecipientMode)">
            <summary>
            <see cref="M:Sfs2X.Requests.AdminMessageRequest.#ctor(System.String,Sfs2X.Requests.MessageRecipientMode,Sfs2X.Entities.Data.ISFSObject)"/>
            </summary>
        </member>
        <member name="T:Sfs2X.Requests.LeaveRoomRequest">
            <summary>
            Leaves a currently joined Room
            </summary>
        </member>
        <member name="F:Sfs2X.Requests.LeaveRoomRequest.KEY_ROOM_ID">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.LeaveRoomRequest.#ctor(Sfs2X.Entities.Room)">
            <summary>
            Constructor
            </summary>
            <param name="room">
            any joined Room that you want to leave, if null the last joined Room will be left
            </param>
            <example>
            <code>
            			smartFox.AddEventListener(SFSEvent.USER_EXIT_ROOM, OnUserExitRoom);
            			
            			// leave the last joined room
            			smartFox.Send(new LeaveRoomRequest());
            
            			void OnUserExitRoom(BaseEvent evt) {
            				Console.WriteLine("Room was left: " + (Room)evt.Params["room"]);
            			}
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSEvent.USER_EXIT_ROOM"/>
            <seealso cref="T:Sfs2X.Requests.JoinRoomRequest"/>
        </member>
        <member name="M:Sfs2X.Requests.LeaveRoomRequest.#ctor">
            <summary>
            <see cref="M:Sfs2X.Requests.LeaveRoomRequest.#ctor(Sfs2X.Entities.Room)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.LeaveRoomRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.LeaveRoomRequest.Execute(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Logging.LoggerEvent.ToString">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Entities.Variables.SFSBuddyVariable">
            <summary>
            BuddyVariables are custom values attached to any Buddy in a BuddyList.
            </summary>
            <remarks>
            They work with the same principle of the User/Room Variables.<br/>
            The only difference is the logic by which they get propagated to other Users. While RoomVariables are broadcast to all clients in the same Room, BuddyVariables are updated to all Users who have the BuddyVariable owner in their BuddyLists.
             <para/>
            BuddyVariables support basic data types and nested complex objects:
            
            <ul>
            		<li>Null</li>
            		<li>Bool</li>
            		<li>Int</li>
            		<li>Double</li>
            		<li>String</li>
            		<li>SFSObject</li>
            		<li>SFSArray</li>
            </ul>
            
            Also there is a special convention that allows certain Variables to be "offline" Buddy Variables. <br/>
            All variable names starting with a dollar sign ($) will set the BuddyVariable as persistent and make them available at any time whether the owner is online or not.
            </remarks>
            <seealso cref="T:Sfs2X.Entities.SFSBuddy"/>
            <seealso cref="T:Sfs2X.Requests.SetBuddyVariablesRequest"/>
            <seealso cref="F:Sfs2X.Core.SFSBuddyEvent.BUDDY_VARIABLES_UPDATE"/>
        </member>
        <member name="P:Sfs2X.Entities.Variables.BuddyVariable.IsOffline">
            <summary>
            Return true if this is an offline Buddy Variable
            </summary>
            <remarks>
            By convention any Buddy Variable whose name starts with the dollar sign ($)
            will be regarded as persistent and stored locally by the server.
            
            These variables are also referred to as "offline variables" because they are available
            to other Users even when the Buddy is offline.
            </remarks>
        </member>
        <member name="M:Sfs2X.Entities.Variables.SFSBuddyVariable.FromSFSArray(Sfs2X.Entities.Data.ISFSArray)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Variables.SFSBuddyVariable.#ctor(System.String,System.Object)">
            <param name="name">
            the name of the variable
            </param>
            <param name="val">
            the variable value ( can be Boolean, int, Number, String, SFSObject, SFSArray )
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Variables.SFSBuddyVariable.#ctor(System.String,System.Object,System.Int32)">
            <param name="name">
            the name of the variable
            </param>
            <param name="val">
            the variable value ( can be Boolean, int, Number, String, SFSObject, SFSArray )
            </param>
            <param name="type">
            it's usually not necessary to pass this parameter as the variable value is auto-detected
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Variables.SFSBuddyVariable.GetBoolValue">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.Variables.SFSBuddyVariable.GetIntValue">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.Variables.SFSBuddyVariable.GetDoubleValue">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.Variables.SFSBuddyVariable.GetStringValue">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.Variables.SFSBuddyVariable.GetSFSObjectValue">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.Variables.SFSBuddyVariable.GetSFSArrayValue">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.Variables.SFSBuddyVariable.IsNull">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.Variables.SFSBuddyVariable.ToSFSArray">
            <exclude/>
        </member>
        <member name="P:Sfs2X.Entities.Variables.SFSBuddyVariable.IsOffline">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.Variables.SFSBuddyVariable.Name">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.Variables.SFSBuddyVariable.Type">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.Variables.SFSBuddyVariable.Value">
            <inheritdoc />
        </member>
        <member name="T:Sfs2X.Requests.SpectatorToPlayerRequest">
            <summary>
            Attempt to turn the current User from Spectator into a Player (in a Game Room)
            </summary>
            <remarks>
            This could fail if no Player slots are available in the Room at the time of the request
            </remarks>
        </member>
        <member name="F:Sfs2X.Requests.SpectatorToPlayerRequest.KEY_ROOM_ID">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.SpectatorToPlayerRequest.KEY_USER_ID">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.SpectatorToPlayerRequest.KEY_PLAYER_ID">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.SpectatorToPlayerRequest.#ctor">
            <summary>
            <see cref="M:Sfs2X.Requests.SpectatorToPlayerRequest.#ctor(Sfs2X.Entities.Room)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.SpectatorToPlayerRequest.#ctor(Sfs2X.Entities.Room)">
            <summary>
            Constructor
            </summary>
            <param name="targetRoom">
            the Room where the change has to be performed, a null value indicates the last joined Room (default)
            </param>
            <example>
            <code>
            			smartFox.AddEventListener(SFSEvent.SPECTATOR_TO_PLAYER, OnPlayerOk);
            			smartFox.AddEventListener(SFSEvent.SPECTATOR_TO_PLAYER_ERROR, OnPlayerError);
            			
            			smartFox.Send(new SpectatorToPlayerRequest());
            
            			void OnPlayerOk(BaseEvent evt) {
            				Console.WriteLine("Success! I am now a Player in this Game!");
            			}
            
            			void OnPlayerError(BaseEvent evt) {
            				Console.WriteLine("I was not able to become Player in the Game ");
            			}
            
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSEvent.SPECTATOR_TO_PLAYER"/>
            <seealso cref="F:Sfs2X.Core.SFSEvent.SPECTATOR_TO_PLAYER_ERROR"/>
            <seealso cref="T:Sfs2X.Requests.PlayerToSpectatorRequest"/>
        </member>
        <member name="M:Sfs2X.Requests.SpectatorToPlayerRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.SpectatorToPlayerRequest.Execute(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Requests.PlayerToSpectatorRequest">
            <summary>
            Attempt to turn the current User from Player to a Spectator (in a Game Room)
            </summary>
            <remarks>
            This could fail if no Spectator slots are available in the Room at the time of the request
            </remarks>
        </member>
        <member name="F:Sfs2X.Requests.PlayerToSpectatorRequest.KEY_ROOM_ID">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.PlayerToSpectatorRequest.KEY_USER_ID">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.PlayerToSpectatorRequest.#ctor">
            <summary>
            <see cref="M:Sfs2X.Requests.PlayerToSpectatorRequest.#ctor(Sfs2X.Entities.Room)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.PlayerToSpectatorRequest.#ctor(Sfs2X.Entities.Room)">
            <summary>
            Constructor
            </summary>
            <param name="targetRoom">
            the Room where the change has to be performed, a null value indicates the last joined Room (default)
            </param>
            <example>
            <code>
            			smartFox.AddEventListener(SFSEvent.PLAYER_TO_SPECTATOR, OnSpectatorOk);
            			smartFox.AddEventListener(SFSEvent.PLAYER_TO_SPECTATOR_ERROR, OnSpectatorError);
            			
            			smartFox.Send(new PlayerToSpectatorRequest());
            
            			void OnSpectatorOk(BaseEvent evt) {
            				Console.WriteLine("Success! I am now a spectator in this Game!");
            			}
            
            			void OnSpectatorError(BaseEvent evt) {
            				Console.WriteLine("I was not able to become spectator in the Game ");
            			}
            
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSEvent.PLAYER_TO_SPECTATOR"/>
            <seealso cref="F:Sfs2X.Core.SFSEvent.PLAYER_TO_SPECTATOR_ERROR"/>
            <seealso cref="T:Sfs2X.Requests.SpectatorToPlayerRequest"/>
        </member>
        <member name="M:Sfs2X.Requests.PlayerToSpectatorRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.PlayerToSpectatorRequest.Execute(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Entities.Variables.SFSUserVariable">
            <summary>
            The UserVariable class is used to represent variables maintained on the Server side and automatically updated to the clients.
            </summary>
            <seealso cref="T:Sfs2X.Entities.User"/>
            <seealso cref="T:Sfs2X.Requests.SetUserVariablesRequest"/>
        </member>
        <member name="M:Sfs2X.Entities.Variables.SFSUserVariable.FromSFSArray(Sfs2X.Entities.Data.ISFSArray)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Variables.SFSUserVariable.#ctor(System.String,System.Object)">
            <overrides>
            <summary>
            Contructor for SFSUserVariable
            </summary>
            </overrides>
            <param name="name">
            the name of the variable
            </param>
            <param name="val">
            the variable value ( can be Boolean, int, Number, String, SFSObject, SFSArray )
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Variables.SFSUserVariable.#ctor(System.String,System.Object,System.Int32)">
            <param name="name">
            the name of the variable
            </param>
            <param name="val">
            the variable value ( can be Boolean, int, Number, String, SFSObject, SFSArray )
            </param>
            <param name="type">
            it's usually not necessary to pass this parameter as the variable value is auto-detected
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Variables.SFSUserVariable.GetBoolValue">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.Variables.SFSUserVariable.GetIntValue">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.Variables.SFSUserVariable.GetDoubleValue">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.Variables.SFSUserVariable.GetStringValue">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.Variables.SFSUserVariable.GetSFSObjectValue">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.Variables.SFSUserVariable.GetSFSArrayValue">
            <inheritdoc />
        </member>
        <member name="M:Sfs2X.Entities.Variables.SFSUserVariable.IsNull">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.Variables.SFSUserVariable.Name">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.Variables.SFSUserVariable.Type">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.Variables.SFSUserVariable.Value">
            <inheritdoc />
        </member>
        <member name="T:Sfs2X.Requests.SubscribeRoomGroupRequest">
            <summary>
            Subscribe to the events of a Room Group
            </summary>
        </member>
        <member name="F:Sfs2X.Requests.SubscribeRoomGroupRequest.KEY_GROUP_ID">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.SubscribeRoomGroupRequest.KEY_ROOM_LIST">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.SubscribeRoomGroupRequest.#ctor(System.String)">
            <summary>
            Constructor
            </summary>
            <param name="groupId">
            the name of the group
            </param>
            <example>
            <code>
            			smartFox.AddEventListener(SFSEvent.ROOM_GROUP_SUBSCRIBE, OnSubscribeRoomGroup);
            			smartFox.AddEventListener(SFSEvent.ROOM_GROUP_SUBSCRIBE_ERROR, OnSubscribeRoomGroupError);
            			
            			// Login as a guest user
            			smartFox.Send(new SubscribeRoomGroupRequest("CardGames"));
            
            			void OnSubscribeRoomGroup(BaseEvent evt) {
            				Console.WriteLine("Subscription done. New rooms are:" + (List&lt;Room&gt;)evt.Params["newRooms"]);
            			}
            
            			void OnSubscribeRoomGroupError(BaseEvent evt) {
            				Console.WriteLine("Subscription failure: " + (string)evt.Params["errorMessage"]);
            			}
            
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSEvent.ROOM_GROUP_SUBSCRIBE"/>
            <seealso cref="F:Sfs2X.Core.SFSEvent.ROOM_GROUP_SUBSCRIBE_ERROR"/>
            <seealso cref="T:Sfs2X.Requests.UnsubscribeRoomGroupRequest"/>
        </member>
        <member name="M:Sfs2X.Requests.SubscribeRoomGroupRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.SubscribeRoomGroupRequest.Execute(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="P:ComponentAce.Compression.Libs.zlib.ZInputStream.TotalIn">
            <summary> Returns the total number of bytes input so far.</summary>
        </member>
        <member name="P:ComponentAce.Compression.Libs.zlib.ZInputStream.TotalOut">
            <summary> Returns the total number of bytes output so far.</summary>
        </member>
        <member name="T:Sfs2X.Entities.Data.SFSDataWrapper">
            <summary>
            A wrapper object used by SFSObject and SFSArray to encapsulate data and relative types
            </summary>
        </member>
        <member name="T:Sfs2X.Entities.Match.UserProperties">
            <summary>
            A list of additional properties that can be used in MatchExpressions for User objects
            </summary>
            <seealso cref="T:Sfs2X.Entities.Match.MatchExpression"/>
        </member>
        <member name="F:Sfs2X.Entities.Match.UserProperties.NAME">
            <summary>
            The user name
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Match.UserProperties.IS_PLAYER">
            <summary>
            The isPlayer flag
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Match.UserProperties.IS_SPECTATOR">
            <summary>
            The isSpectator flag
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Match.UserProperties.IS_NPC">
            <summary>
            The isNPC flag
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Match.UserProperties.PRIVILEGE_ID">
            <summary>
            The User privilege Id
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.Match.UserProperties.IS_IN_ANY_ROOM">
            <summary>
            Checks if User.lastJoinedRoom == null, in other words the User is not joined in any Room
            </summary>
        </member>
        <member name="T:Sfs2X.Requests.BuddyMessageRequest">
            <summary>
            BuddyMessage(s) are similar to private chat messages but are specifically designed for the Buddy List system.
            </summary>
            <remarks>
            They don't require any Room parameter, nor they require that Users are joined into any particular Room. Additionally the Buddy Message
            performs specific validation such as making sure that the recipient is in the User's BuddyList and verifies the Buddy block status.
            </remarks>
        </member>
        <member name="M:Sfs2X.Requests.BuddyMessageRequest.#ctor(System.String,Sfs2X.Entities.Buddy,Sfs2X.Entities.Data.ISFSObject)">
            <summary>
            Constructor
            </summary>
            <param name="message">
            the message
            </param>
            <param name="targetBuddy">
            the recipient of the message
            </param>
            <param name="parameters">
            custom parameters (e.g. the textfield font and color, a sender avatar id, or any other data...)
            </param>
            <example>
            <code>
            			smartFox.AddEventListener(SFSBuddyEvent.BUDDY_MESSAGE, OnBuddyMessage);
            			
            			// Obtain the recipient of the message
            			Buddy kermitTheFrog = sfs.BuddyListManager.GetBuddyByName("KermitTheFrog");
            
            			// Block a buddy in the current buddy list
            			smartFox.Send(new BuddyMessageRequest("Hello Kermit!", kermitTheFrog));
            
            			void OnBuddyMessage(BaseEvent evt) {
            				bool isItMe = (bool)evt.Params["isItMe"];
            				Buddy buddy = (Buddy)evt.Params["buddy"];
            				
            				if (isItMe)
            					Console.WriteLine("I said: " + (string)evt.Params["message"]);
            				else
            					Console.WriteLine(buddy.Name + " said: " + (string)evt.Params["message"]);
            			}
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSBuddyEvent.BUDDY_MESSAGE"/>
            <seealso cref="T:Sfs2X.Requests.AddBuddyRequest"/>
            <seealso cref="T:Sfs2X.Requests.RemoveBuddyRequest"/>
            <seealso cref="T:Sfs2X.Requests.BlockBuddyRequest"/>
        </member>
        <member name="T:Sfs2X.Requests.SetRoomVariablesRequest">
            <summary>
            Set custom Room Variables in a Room
            </summary>
            <seealso cref="T:Sfs2X.Entities.Variables.SFSRoomVariable"/>
        </member>
        <member name="F:Sfs2X.Requests.SetRoomVariablesRequest.KEY_VAR_ROOM">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.SetRoomVariablesRequest.KEY_VAR_LIST">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.SetRoomVariablesRequest.#ctor(System.Collections.Generic.ICollection{Sfs2X.Entities.Variables.RoomVariable},Sfs2X.Entities.Room)">
            <summary>
            Constructor
            </summary>
            <param name="roomVariables">
            an Array of RoomVariables
            </param>
            <param name="room">
            the target Room
            </param>
            <example>
            <b>Example #1</b>
            		<code>
            		List&lt;RoomVariable&gt; roomVars = new List&lt;RoomVariable&gt;();
            		roomVars.Add( new SFSRoomVariable("gameStarted", false) );
            		roomVars.Add( new SFSRoomVariable("gameType", "Snooker") );
            		roomVars.Add( new SFSRoomVariable("minRank", 10) );
            
            		smartFox.Send ( new SetRoomVariablesRequest(roomVars, sfs.MySelf.LastJoinedRoom) );
            		</code>
            <b>Example #2</b>
            		<code>
            		smartFox.AddEventListener(SFSEvent.ROOM_VARIABLES_UPDATE, OnRoomVarsUpdate);
            		
            		void OnRoomVarsUpdate(BaseEvent evt) {
            			List&lt;RoomVariable&gt; changedVars = (List&lt;RoomVariable&gt;)evt.Params["changedVars"];
            			Room room = (Room)evt.Params["room"];
            
            			// Check if the gameStarted variable was changed
            			SFSRoomVariable startVar = changedVars[0];
            			if (startVar != null &amp;&amp; startVar.Name == "gameStarted" &amp;&amp; startVar.GetBoolValue() == true) {
            				Console.WriteLine("Game Starts!");
            			} else {
            				Console.WriteLine("Game was Stopped!");
            			}		
            		}
            		</code>
            </example>
        </member>
        <member name="M:Sfs2X.Requests.SetRoomVariablesRequest.#ctor(System.Collections.Generic.ICollection{Sfs2X.Entities.Variables.RoomVariable})">
            <summary>
            <see cref="M:Sfs2X.Requests.SetRoomVariablesRequest.#ctor(System.Collections.Generic.ICollection{Sfs2X.Entities.Variables.RoomVariable},Sfs2X.Entities.Room)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.SetRoomVariablesRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.SetRoomVariablesRequest.Execute(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Requests.CreateRoomRequest">
            <summary>
            Creates a new Room in the current Zone
            </summary>
        </member>
        <member name="F:Sfs2X.Requests.CreateRoomRequest.KEY_ROOM">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.CreateRoomRequest.KEY_NAME">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.CreateRoomRequest.KEY_PASSWORD">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.CreateRoomRequest.KEY_GROUP_ID">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.CreateRoomRequest.KEY_ISGAME">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.CreateRoomRequest.KEY_MAXUSERS">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.CreateRoomRequest.KEY_MAXSPECTATORS">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.CreateRoomRequest.KEY_MAXVARS">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.CreateRoomRequest.KEY_ROOMVARS">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.CreateRoomRequest.KEY_PERMISSIONS">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.CreateRoomRequest.KEY_EVENTS">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.CreateRoomRequest.KEY_EXTID">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.CreateRoomRequest.KEY_EXTCLASS">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.CreateRoomRequest.KEY_EXTPROP">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.CreateRoomRequest.KEY_AUTOJOIN">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.CreateRoomRequest.KEY_ROOM_TO_LEAVE">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.CreateRoomRequest.#ctor(Sfs2X.Requests.RoomSettings,System.Boolean,Sfs2X.Entities.Room)">
            <summary>
            Constructor
            </summary>
            <param name="settings">
            the new room settings, see <see cref="T:Sfs2X.Requests.RoomSettings"/> for all the details
            </param>
            <param name="autoJoin">
            if true the Room will be joined as soon as it is created
            </param>
            <param name="roomToLeave">
            indicates which Room should be left once the join has succeeded
            </param>
            <example>
            <code>
            			smartFox.AddEventListener(SFSEvent.ROOM_ADDED, OnRoomAdded);
            			smartFox.AddEventListener(SFSEvent.ROOM_CREATION_ERROR, OnRoomCreationError);
            			
            			// Create a new Chat Room
            			RoomSettings settings = new RoomSettings("Animal Chat Room");
            			settings.MaxUsers = 40;
            			settings.GroupId = "ChatGroup";
            
            			smartFox.Send(new CreateRoomRequest(settings));
            
            			void OnRoomAdded(BaseEvent evt) {
            				Console.WriteLine("A new Room was added: " + (Room)evt.Params["room"] );
            			}
            
            			void OnRoomCreationError(BaseEvent evt) {
            				Console.WriteLine("An error occurred while attempting to create the Room: " + (string)evt.Params["errorMessage"]);
            			}
            
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSEvent.ROOM_ADD"/>
            <seealso cref="T:Sfs2X.Requests.RoomSettings"/>		
        </member>
        <member name="M:Sfs2X.Requests.CreateRoomRequest.#ctor(Sfs2X.Requests.RoomSettings,System.Boolean)">
            <summary>
            <see cref="M:Sfs2X.Requests.CreateRoomRequest.#ctor(Sfs2X.Requests.RoomSettings,System.Boolean,Sfs2X.Entities.Room)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.CreateRoomRequest.#ctor(Sfs2X.Requests.RoomSettings)">
            <summary>
            <see cref="M:Sfs2X.Requests.CreateRoomRequest.#ctor(Sfs2X.Requests.RoomSettings,System.Boolean,Sfs2X.Entities.Room)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.CreateRoomRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.CreateRoomRequest.Execute(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Requests.HandshakeRequest">
            <summary>
            This request is used by the API sub-system at connection time. It's not intended for other uses.
            </summary>
        </member>
        <member name="F:Sfs2X.Requests.HandshakeRequest.KEY_SESSION_TOKEN">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.HandshakeRequest.KEY_API">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.HandshakeRequest.KEY_COMPRESSION_THRESHOLD">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.HandshakeRequest.KEY_RECONNECTION_TOKEN">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.HandshakeRequest.KEY_CLIENT_TYPE">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Entities.Match.MatchExpression">
             <summary>
             <b>Match Expressions</b> are built like "if" conditions in any common programming language.
             </summary>
             <remarks>
             <h2>Overview</h2>
             <b>Match Expressions</b> are built like "if" conditions in any common programming language. 
             They work like queries in a database and can be used to search for Rooms or Users using custom criteria. 
             These expressions are extremely easy to create and concatenate and they can be used for many different filtering operations within the SFS2X framework.
            
              This is a quick example:
             <pre>
             MatchExpression exp = new MatchExpression('rank', NumberMatch.GREATER_THAN, 5).and('country', StringMatch.EQUALS, 'Italy')
             </pre>
            
              Expressions are made of three elements: 
            	<ul> 
            		<li>Variable name</li> 
            		<li>Match operator</li> 
            		<li>Value</li> 
            	</ul>
             Additionally any number of expressions can be linked together with a logical <b>AND</b> / <b>OR</b> operator, just like in regular code. 
             In the above example we have created an expression that will check for a rank value &gt; 5 and a country value == "Italy".
              
             The search options are not just limited to User/Room Variables name. In fact the Matching engine provides two extra classes, <b>RoomProperties</b> and <b>UserProperties</b>, 
             where you can access many specific attributes of the Room and User class.
             
             This is an example of matching specific Room properties and Variables:
             <pre>
             // Prepare match expression
             MatchExpression exp = new MatchExpression(RoomProperties.IS_GAME, BoolMatch.EQUALS, true).and
             					(RoomProperties.HAS_FREE_PLAYER_SLOTS, BoolMatch.EQUALS, true).and
             					("isGameStarted", BoolMatch.EQUALS, false);
             
             // Search Rooms
             List&lt;Rooms&gt; joinableRooms = sfsApi.findRooms(zone.getRoomListFromGroup("chess"), exp, 0);
             </pre>
             
             <h3>Advanced features</h3>
             	the Match expression offer advanced capabilities of searching through nested data structures such as <strong>SFSObject</strong> and <strong>SFSArray</strong>. 
             	This is done via a very simple <strong>dot-syntax</strong>. Here's an example of how it works:
             <pre>
             MatchExpression exp = new MatchExpression("europe.italy.capital", StringMatch.EQUALS, "Rome")
             </pre>
             
             	The above example goes down deep into an SFSObject called <em>europe</em>, taking the <em>italy</em> object (another SFSObject) and finally reading its String field <em>capital</em> and matching it with another String.
             	Here is one more examples using SFSObject and SFSArray:
             
             <pre>
             MatchExpression exp = new MatchExpression("europe.italy.majorCities.3.name", StringMatch.EQUALS, "Milan")
             </pre>	
             
             From the <em>italy</em> object we obtain a <em>majorCities</em> SFSArray and we grab the third item in it (the <strong>.3</strong> expression means 'give me the element at index == 3'). 
             The item is again an SFSObject whose <em>name</em> property we finally compare to a String.
             
             	The power of <b>Match Expression</b> doesn't end here. You can run multiple passes of matching if you need complex searches to be performed. For example you can run a first match and obtain a list of filtered Rooms and then use it to apply another expression to further refine your search, and so on and so forth. 
             	<para/>
             The power of <b>Match Expression</b> doesn't end here. You can run multiple passes of matching if you need complex searches to be performed. For example you can run a first match and obtain a list of filtered Rooms and then use it to apply another expression to further refine your search, and so on and so forth. 
             </remarks>
             
             <seealso cref="T:Sfs2X.Entities.Match.RoomProperties"/>
             <seealso cref="T:Sfs2X.Entities.Match.UserProperties"/>
        </member>
        <member name="M:Sfs2X.Entities.Match.MatchExpression.ChainedMatchExpression(System.String,Sfs2X.Entities.Match.IMatcher,System.Object,Sfs2X.Entities.Match.LogicOperator,Sfs2X.Entities.Match.MatchExpression)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Match.MatchExpression.#ctor(System.String,Sfs2X.Entities.Match.IMatcher,System.Object)">
            <summary>
            Constructor
            </summary>
            <param name="varName">
            name of the variable/property to match
            </param>
            <param name="condition">
            the match condition
            </param>
            <param name="varValue">
            the value to match against
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Match.MatchExpression.And(System.String,Sfs2X.Entities.Match.IMatcher,System.Object)">
            <summary>
            Concatenate the current expression with a new one using the logical AND operator
            </summary>
            <param name="varName">
            name of the variable/property to match
            </param>
            <param name="condition">
            the match condition
            </param>
            <param name="varValue">
            the value to match against
            </param>
            <returns>
            a new MatchExpression 
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Match.MatchExpression.Or(System.String,Sfs2X.Entities.Match.IMatcher,System.Object)">
            <summary>
            Concatenate the current expression with a new one using the logical OR operator
            </summary>
            <param name="varName">
            name of the variable/property to match
            </param>
            <param name="condition">
            the match condition
            </param>
            <param name="varValue">
            the value to match against
            </param>
            <returns>
            A <see cref="T:Sfs2X.Entities.Match.MatchExpression"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Match.MatchExpression.HasNext">
            <summary>
            Check if the current expression is concatenated to another one via a logic operator
            </summary>
            <returns>
            A <see cref="T:System.Boolean"/>
            </returns>
            <seealso cref="T:Sfs2X.Entities.Match.LogicOperator"/>
        </member>
        <member name="M:Sfs2X.Entities.Match.MatchExpression.Next">
            <summary>
            Get the next expression chained to the current one.
            </summary>
            <returns>
            the next expression chained to the current one.
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Match.MatchExpression.Rewind">
            <summary>
            Rewinds the cursor to the first expression in the chain and return the MatchExpression at the top of the chain of expressions
            </summary>
            <returns>
            A <see cref="T:Sfs2X.Entities.Match.MatchExpression"/>
            </returns>
        </member>
        <member name="M:Sfs2X.Entities.Match.MatchExpression.AsString">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Match.MatchExpression.ToSFSArray">
            <exclude/>
        </member>
        <member name="P:Sfs2X.Entities.Match.MatchExpression.VarName">
            <summary>
            Get the name of the variable or property that is being matched.
            </summary>
            <remarks>
            This can be the name of a User/Room variable or a property from the classes listed below.
            </remarks>
            <seealso cref="T:Sfs2X.Entities.Match.RoomProperties"/>
            <seealso cref="T:Sfs2X.Entities.Match.UserProperties"/>
        </member>
        <member name="P:Sfs2X.Entities.Match.MatchExpression.Condition">
            <summary>
            Get the condition used for matching
            </summary>
            <seealso cref="T:Sfs2X.Entities.Match.BoolMatch"/>
            <seealso cref="T:Sfs2X.Entities.Match.NumberMatch"/>
            <seealso cref="T:Sfs2X.Entities.Match.StringMatch"/>
        </member>
        <member name="P:Sfs2X.Entities.Match.MatchExpression.VarValue">
            <summary>
            The value used to test the condition in the expression
            </summary>
        </member>
        <member name="P:Sfs2X.Entities.Match.MatchExpression.LogicOp">
            <summary>
            Get the current logic operator, could be null if the expression has no other concatenated expressions
            </summary>
            <seealso cref="T:Sfs2X.Entities.Match.LogicOperator"/>
        </member>
        <member name="T:Sfs2X.Requests.FindRoomsRequest">
            <summary>
            Search Rooms in the system by matching their variables and properties against a MatchExpression
            </summary>
        </member>
        <member name="F:Sfs2X.Requests.FindRoomsRequest.KEY_EXPRESSION">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.FindRoomsRequest.KEY_GROUP">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.FindRoomsRequest.KEY_LIMIT">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.FindRoomsRequest.KEY_FILTERED_ROOMS">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.FindRoomsRequest.#ctor(Sfs2X.Entities.Match.MatchExpression)">
            <summary>
            <see cref="M:Sfs2X.Requests.FindRoomsRequest.#ctor(Sfs2X.Entities.Match.MatchExpression,System.String,System.Int32)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.FindRoomsRequest.#ctor(Sfs2X.Entities.Match.MatchExpression,System.String)">
            <summary>
            <see cref="M:Sfs2X.Requests.FindRoomsRequest.#ctor(Sfs2X.Entities.Match.MatchExpression,System.String,System.Int32)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.FindRoomsRequest.#ctor(Sfs2X.Entities.Match.MatchExpression,System.String,System.Int32)">
            <summary>
            Constructor
            </summary>
            <param name="expr">
            the match expression 
            </param>
            <param name="groupId">
            the id of the Room Group where to perform the search, if null the search will be Zone-wide (default)
            </param>
            <param name="limit">
            the number of results wanted. Zero means no limit, we will get all results (default)
            </param>
            <example>
            <code>
            			smartFox.AddEventListener(SFSEvent.ROOM_FIND_RESULT, OnRoomFindResult);
            
            			// Search for all Rooms whose 'country' Room Variable == 'Sweden'
            			MatchExpression expr = new MatchExpression('country', StringMatch.EQUALS, 'Sweden');
            			smartFox.Send( new FindRoomRequest(expr) );
            
            			void OnRoomFindResult(BaseEvent evt) {
            				// Show the List of Rooms
            				Console.WriteLine("Rooms found: " + (List&lt;Room&gt;)evt.Params["rooms"]);
            			}
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSEvent.ROOM_FIND_RESULT"/>
            <seealso cref="T:Sfs2X.Entities.Match.MatchExpression"/>
            <seealso cref="T:Sfs2X.Entities.Match.RoomProperties"/>
        </member>
        <member name="M:Sfs2X.Requests.FindRoomsRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.FindRoomsRequest.Execute(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Requests.ChangeRoomCapacityRequest">
            <summary>
            Change the capacity of a Room (maxUsers and maxSpectators) at runtime.
            </summary>
            <remarks>
            This request might fail if the Room was configured not be re-sizable or if the User sending the request
            is not the owner of the Room. Moderators and Administrator can override this last constraint.
            <para/>
            It is possible to "shrink" the Room capacity so that maxUsers &lt; userCount. <br/>
            In this case nothing will happen to the "extra" users.<br/>
            As soon as clients will leave the Room the userCount will get down to the new maxUsers value.
            </remarks>
        </member>
        <member name="F:Sfs2X.Requests.ChangeRoomCapacityRequest.KEY_ROOM">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.ChangeRoomCapacityRequest.KEY_USER_SIZE">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.ChangeRoomCapacityRequest.KEY_SPEC_SIZE">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.ChangeRoomCapacityRequest.#ctor(Sfs2X.Entities.Room,System.Int32,System.Int32)">
            <summary>
            Constructor
            </summary>
            <param name="room">
            the Room to resize
            </param>
            <param name="newMaxUsers">
            the new maxUsers value (use -1 if don't want to change the current value)
            </param>
            <param name="newMaxSpect">
            the new maxSpect value (use -1 if don't want to change the current value)
            </param>
            <example>
            <code>
            			smartFox.AddEventListener(SFSEvent.ROOM_CAPACITY_CHANGE, OnRoomCapacityChange);
            			smartFox.AddEventListener(SFSEvent.ROOM_CAPACITY_CHANGE_ERROR, OnRoomCapacityChangeError);
            			
            			Room theRoom = sfs.GetRoomByName("DeveloperChatRoom");
            
            			// Resize the room to have 100 users and zero spectators
            			smartFox.Send(new ChangeRoomCapacityRequest(theRoom, 100, 0));
            
            			void OnRoomCapacityChange(BaseEvent evt) {
            				Console.WriteLine("Room capacity was changed successfully: " + (Room)evt.Params["room"]);
            			}
            
            			void OnRoomCapacityChangeError(BaseEvent evt) {
            				Console.WriteLine("Room capacity change failed: " + (string)evt.Params["errorMessage"]);
            			}
            
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSEvent.ROOM_CAPACITY_CHANGE"/>
            <seealso cref="F:Sfs2X.Core.SFSEvent.ROOM_CAPACITY_CHANGE_ERROR"/>
            <seealso cref="T:Sfs2X.Requests.ChangeRoomNameRequest"/>
            <seealso cref="T:Sfs2X.Requests.ChangeRoomPasswordStateRequest"/>
        </member>
        <member name="M:Sfs2X.Requests.ChangeRoomCapacityRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.ChangeRoomCapacityRequest.Execute(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Controllers.ExtensionController">
            @private 
        </member>
        <member name="T:Sfs2X.Requests.Game.QuickGameJoinRequest">
            <summary>
            Quick join a User in a public game.
            </summary>
            <remarks>
            By providing a MatchExpression and a list of Rooms or Groups the system can search for matching Rooms and immediately teleport the player in the game action.
            </remarks>
        </member>
        <member name="F:Sfs2X.Requests.Game.QuickGameJoinRequest.KEY_ROOM_LIST">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.Game.QuickGameJoinRequest.KEY_GROUP_LIST">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.Game.QuickGameJoinRequest.KEY_ROOM_TO_LEAVE">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.Game.QuickGameJoinRequest.KEY_MATCH_EXPRESSION">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.Game.QuickGameJoinRequest.#ctor(Sfs2X.Entities.Match.MatchExpression,System.Collections.Generic.List{System.String})">
            <summary>
            <see cref="M:Sfs2X.Requests.Game.QuickGameJoinRequest.#ctor(Sfs2X.Entities.Match.MatchExpression,System.Collections.Generic.List{System.String},Sfs2X.Entities.Room)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.Game.QuickGameJoinRequest.#ctor(Sfs2X.Entities.Match.MatchExpression,System.Collections.Generic.List{System.String},Sfs2X.Entities.Room)">
            <summary>
            Constructor
            </summary>
            <param name="matchExpression">
            a MatchExpression to filter Rooms
            </param>
            <param name="whereToSearch">
            this parameter accepts a List of Room objects or a List of Strings representing valid Room Group names
            </param>
            <param name="roomToLeave">
            an optional Room that the User will leave after joining the game
            </param>
            <example>
            <code>
            			// Add event listener for the Invitation reply event
            			smartFox.AddEventListener(SFSEvent.ROOM_JOIN, OnRoomJoin);
            			
            			MatchExpression exp = new MatchExpression("type", StringMatch.EQUALS, "Darts").And("bestScore", NumberMatch.LESS_THAN, 400);
            
            			// Search the "games" Group for a free public game of Darts with a bestScore variable &lt; 400 
            			smartFox.Send( new QuickJoinGameRequest(exp, ["games"], sfs.MySelf.LastJoinedRoom) );
            			
            			// Handle responses from invited users
            			void OnRoomJoin(BaseEvent evt) {	
            				Console.WriteLine("Successfully joined in Room: " + (Room)evt.Params["room"]);
            			}
            
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSEvent.ROOM_JOIN"/>
            <seealso cref="T:Sfs2X.Entities.Match.MatchExpression"/>
        </member>
        <member name="M:Sfs2X.Requests.Game.QuickGameJoinRequest.#ctor(Sfs2X.Entities.Match.MatchExpression,System.Collections.Generic.List{Sfs2X.Entities.Room})">
            <summary>
            <see cref="M:Sfs2X.Requests.Game.QuickGameJoinRequest.#ctor(Sfs2X.Entities.Match.MatchExpression,System.Collections.Generic.List{System.String},Sfs2X.Entities.Room)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.Game.QuickGameJoinRequest.#ctor(Sfs2X.Entities.Match.MatchExpression,System.Collections.Generic.List{Sfs2X.Entities.Room},Sfs2X.Entities.Room)">
            <summary>
            <see cref="M:Sfs2X.Requests.Game.QuickGameJoinRequest.#ctor(Sfs2X.Entities.Match.MatchExpression,System.Collections.Generic.List{System.String},Sfs2X.Entities.Room)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.Game.QuickGameJoinRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.Game.QuickGameJoinRequest.Execute(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Requests.SetBuddyVariablesRequest">
            <summary>
            Sets one or more BuddyVariables for the current User. This will update all Users in the Zona who have this User as Buddy in their Buddy Lists.
            </summary>
        </member>
        <member name="F:Sfs2X.Requests.SetBuddyVariablesRequest.KEY_BUDDY_NAME">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.SetBuddyVariablesRequest.KEY_BUDDY_VARS">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.SetBuddyVariablesRequest.#ctor(System.Collections.Generic.List{Sfs2X.Entities.Variables.BuddyVariable})">
            <summary>
            Constructor
            </summary>
            <param name="buddyVariables">
            an Array of BuddyVariables
            </param>
            <example>
            <code>
            			// Add event listener for BuddyVariables
            			smartFox.AddEventListener(SFSBuddyEvent.BUDDY_VARIABLES_UPDATE, OnBuddyVarsUpdate);
            			
            			// This function could be invoked by a button click in the application GUI
            			// It updates a BuddyVariable with the title of the current track that the Users is listening to
            			void UpdateCurrentMusicVariable() {
            				BuddyVariable currentTrack = new SFSBuddyVariable("track", "Beethoven's 8th Symphony");
            				List&lt;BuddyVariable&gt; myVars = new List&lt;BuddyVariable&gt;();
            				myVars.Add(currentTrack);
            				smartFox.Send(new SetBuddyVariablesRequest(myVars));
            			}
            			
            			// This function will handle any Variables update from Buddies in our BuddyList
            			void OnBuddyVarsUpdate(BaseEvent evt) {
            				Console.WriteLine("Buddy variables update from: " + (Buddy)evt.Params["buddy"]);
            			}
            
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSBuddyEvent.BUDDY_VARIABLES_UPDATE"/>
            <seealso cref="T:Sfs2X.Entities.Variables.SFSBuddyVariable"/>
        </member>
        <member name="M:Sfs2X.Requests.SetBuddyVariablesRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.SetBuddyVariablesRequest.Execute(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Requests.RemoveBuddyRequest">
            <summary>
            Remove a new Buddy fron the current Buddy List
            </summary>
        </member>
        <member name="F:Sfs2X.Requests.RemoveBuddyRequest.KEY_BUDDY_NAME">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.RemoveBuddyRequest.#ctor(System.String)">
            <summary>
            Constructor
            </summary>
            <param name="buddyName">
            the name of the buddy to remove
            </param>
            <example>
            <code>
            			smartFox.AddEventListener(SFSBuddyEvent.BUDDY_REMOVE, OnBuddyRemoved);
            			smartFox.AddEventListener(SFSBuddyEvent.BUDDY_ERROR, OnBuddyError);
            			
            			// Remove a buddy from the buddy list
            			smartFox.Send(new RemoveBuddyRequest("Gonzo The Great"));
            
            			void OnBuddyRemoved(BaseEvent evt) {
            				Console.WriteLine("Buddy was removed: " + (Buddy)evt.Params["buddy"]);
            			}
            
            			void OnBuddyError(BaseEvent evt) {
            				Console.WriteLine("Buddy error: " + (string)evt.Params["errorMessage"]);
            			}
            
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSBuddyEvent.BUDDY_REMOVE"/>
            <seealso cref="F:Sfs2X.Core.SFSBuddyEvent.BUDDY_ERROR"/>
            <seealso cref="T:Sfs2X.Requests.AddBuddyRequest"/>
        </member>
        <member name="M:Sfs2X.Requests.RemoveBuddyRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.RemoveBuddyRequest.Execute(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Requests.AddBuddyRequest">
            <summary>
            Add a new Buddy to the current Buddy List
            </summary>
        </member>
        <member name="F:Sfs2X.Requests.AddBuddyRequest.KEY_BUDDY_NAME">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.AddBuddyRequest.#ctor(System.String)">
            <summary>
            Constructor
            </summary>
            <param name="buddyName">
            the name of the buddy to add
            </param>
            <example>
            <code>
            			smartFox.AddEventListener(SFSBuddyEvent.BUDDY_ADD, OnBuddyAdded);
            			smartFox.AddEventListener(SFSBuddyEvent.BUDDY_ERROR, OnBuddyError);
            			
            			// Add a new buddy in the buddy list
            			smartFox.Send(new AddBuddyRequest("Swedish Cook"));
            
            			void OnBuddyAdded(BaseEvent evt) {
            				Console.WriteLine("Buddy was added: " + (Buddy)evt.Params["buddy"]);
            			}
            
            			void OnBuddyError(BaseEvent evt) {
            				Console.WriteLine("Buddy error: " + (string)evt.Params["errorMessage"]);
            			}
            
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSBuddyEvent.BUDDY_ADD"/>
            <seealso cref="F:Sfs2X.Core.SFSBuddyEvent.BUDDY_ERROR"/>
            <seealso cref="T:Sfs2X.Requests.RemoveBuddyRequest"/>
        </member>
        <member name="M:Sfs2X.Requests.AddBuddyRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.AddBuddyRequest.Execute(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="T:Sfs2X.Requests.BanUserRequest">
            <summary>
            Banish a User from the system (for moderators and admins only)
            </summary>
            <remarks>
            Allows to send a custom message and to set a delay in seconds. It also allows to choose banning by user name or user IP address
            </remarks>
        </member>
        <member name="F:Sfs2X.Requests.BanUserRequest.KEY_USER_ID">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.BanUserRequest.KEY_MESSAGE">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.BanUserRequest.KEY_DELAY">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Requests.BanUserRequest.KEY_BAN_MODE">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.BanUserRequest.#ctor(System.Int32)">
            <summary>
            <see cref="M:Sfs2X.Requests.BanUserRequest.#ctor(System.Int32,System.String,Sfs2X.Requests.BanMode,System.Int32)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.BanUserRequest.#ctor(System.Int32,System.String)">
            <summary>
            <see cref="M:Sfs2X.Requests.BanUserRequest.#ctor(System.Int32,System.String,Sfs2X.Requests.BanMode,System.Int32)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.BanUserRequest.#ctor(System.Int32,System.String,Sfs2X.Requests.BanMode)">
            <summary>
            <see cref="M:Sfs2X.Requests.BanUserRequest.#ctor(System.Int32,System.String,Sfs2X.Requests.BanMode,System.Int32)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.BanUserRequest.#ctor(System.Int32,System.String,Sfs2X.Requests.BanMode,System.Int32)">
            <summary>
            Constructor
            </summary>
            <param name="userId">
            the id of the User to be banned
            </param>
            <param name="message">
            a custom ban message, if null the message configured on the server side will be used
            </param>
            <param name="banMode">
            choose between banning by Ip Address or User name, see {@link BanMode}Â class
            </param>
            <param name="delaySeconds">
            a delay in seconds between the message (immediate) and the kick (delayed). Default is 5 seconds
            </param>
            <example>
            <code>
            		User userToBan = sfs.UserManager.GetUserByName("Waldorf"); 
            
            		// Ban client by name, using default message configured on server side and default delay time (== 5sec)
            		smartFox.Send(new BanUserRequest(userToBan));
            </code>
            </example>
        </member>
        <member name="M:Sfs2X.Requests.BanUserRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.BanUserRequest.Execute(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="F:Sfs2X.Entities.UserPrivileges.GUEST">
            <summary>
            Guest user, usually the lowest level in the permission scale
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.UserPrivileges.STANDARD">
            <summary>
            The standard user is usally registered in system and uses a unique name and password to login
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.UserPrivileges.MODERATOR">
            <summary>
            The moderator has powers to send ModeratorMessages, kicking users and banning them
            </summary>
        </member>
        <member name="F:Sfs2X.Entities.UserPrivileges.ADMINISTRATOR">
            <summary>
            The administrator has powers to send AdminMessages, kicking users and banning them
            </summary>
        </member>
        <member name="T:Sfs2X.Requests.PublicMessageRequest">
            <summary>
            Sends a chat Public Message to other users in the Room
            </summary>
            <remarks>
            Public Messages are broadcast to all users in the specified Room
            <para/>
            An optional custom SFSObject can be sent together with the message. The extra parameters can be used to transmit information 
            about the font and color of the message or any other properties that are relevant to the message.
            </remarks>
        </member>
        <member name="M:Sfs2X.Requests.PublicMessageRequest.#ctor(System.String,Sfs2X.Entities.Data.ISFSObject,Sfs2X.Entities.Room)">
            <summary>
            Constructor
            </summary>
            <param name="message">
            the chat message
            </param>
            <param name="parameters">
            custom extra parameters (optional)
            </param>
            <param name="targetRoom">
            he target room (optional). By default it is used the last joined Room
            </param>
            <example>
            <code>
            			smartFox.AddEventListener(SFSEvent.PUBLIC_MESSAGE, OnPublicMessage);
            			
            			// Say 'Hello' to every one
            			smartFox.Send(new PublicMessageRequest("Hello everyone!"));
            
            			void OnPublicMessage(BaseEvent evt) {
            				Console.WriteLine("Message: " + (string)evt.Params["message"] + ", Sender: " + (User)evt.Params["sender"]);
            			}
            
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSEvent.PUBLIC_MESSAGE"/>
            <seealso cref="T:Sfs2X.Requests.PrivateMessageRequest"/>
        </member>
        <member name="M:Sfs2X.Requests.PublicMessageRequest.#ctor(System.String,Sfs2X.Entities.Data.ISFSObject)">
            <summary>
            <see cref="M:Sfs2X.Requests.PublicMessageRequest.#ctor(System.String,Sfs2X.Entities.Data.ISFSObject,Sfs2X.Entities.Room)"/>
            </summary>
        </member>
        <member name="M:Sfs2X.Requests.PublicMessageRequest.#ctor(System.String)">
            <summary>
            <see cref="M:Sfs2X.Requests.PublicMessageRequest.#ctor(System.String,Sfs2X.Entities.Data.ISFSObject,Sfs2X.Entities.Room)"/>
            </summary>
        </member>
        <member name="T:Sfs2X.Entities.Variables.SFSRoomVariable">
            <summary>
            The RoomVariable class is used to represent variables maintained on the Server side and automatically updated to the clients. 
            </summary>
            <remarks>
            They are particularly useful to "attach" any custom data to each Room such as the current game status and other Room-specific properties etc...
            <para/>
            RoomVariables support basic data types and nested complex objects:
            <ul>
            		<li>Null</li>
            		<li>Bool</li>
            		<li>Int</li>
            		<li>Double</li>
            		<li>String</li>
            		<li>SFSObject</li>
            		<li>SFSArray</li>
            </ul>
            
            <para/>
            RoomVariables also support different flags:
            <ul>
            		<li><b>Private</b>: a private variable can only be modified by its creator</li>
            		<li><b>Persistent</b>: a persistent variable will continue to exist even if its creator has left the room. </li>
            		<li><b>Global</b>: a global variable will fire updates not only to all Users in the Room but also to all Users in the Room Group</li>
            </ul>
            </remarks>
            <seealso cref="T:Sfs2X.Entities.SFSRoom"/>
            <seealso cref="T:Sfs2X.Requests.SetRoomVariablesRequest"/>
        </member>
        <member name="M:Sfs2X.Entities.Variables.SFSRoomVariable.FromSFSArray(Sfs2X.Entities.Data.ISFSArray)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Entities.Variables.SFSRoomVariable.#ctor(System.String,System.Object)">
            <overrides>
            <summary>
            
            </summary>
            </overrides>
            <param name="name">
            the name of the variable
            </param>
            <param name="val">
            the variable value ( can be Boolean, int, Number, String, SFSObject, SFSArray )
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Variables.SFSRoomVariable.#ctor(System.String,System.Object,System.Int32)">
            <param name="name">
            the name of the variable
            </param>
            <param name="val">
            the variable value ( can be Boolean, int, Number, String, SFSObject, SFSArray )
            </param>
            <param name="type">
            it's usually not necessary to pass this parameter as the variable value is auto-detected
            </param>
        </member>
        <member name="M:Sfs2X.Entities.Variables.SFSRoomVariable.ToSFSArray">
            <exclude/>
        </member>
        <member name="P:Sfs2X.Entities.Variables.SFSRoomVariable.IsPrivate">
            <inheritdoc />
        </member>
        <member name="P:Sfs2X.Entities.Variables.SFSRoomVariable.IsPersistent">
            <inheritdoc />
        </member>
        <member name="T:Sfs2X.Requests.LogoutRequest">
            <summary>
            Log out of the current Zone
            </summary>
            <remarks>
            This will not shut down the connection and User will be able to login again in the same Zone or another one
            </remarks>
        </member>
        <member name="F:Sfs2X.Requests.LogoutRequest.KEY_ZONE_NAME">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Requests.LogoutRequest.#ctor">
            <summary>
            Constructor
            </summary>
            <example>
            <code>
            			smartFox.AddEventListener(SFSEvent.LOGOUT, OnLogout);
            			
            			smartFox.Send(new LogoutRequest());
            
            			void OnLogout(BaseEvent evt) {
            				Console.WriteLine("Logout done!");
            			}
            			</code>
            </example>
            <seealso cref="F:Sfs2X.Core.SFSEvent.LOGOUT"/>
            <seealso cref="T:Sfs2X.Requests.LoginRequest"/>
        </member>
        <member name="M:Sfs2X.Requests.LogoutRequest.Validate(Sfs2X.SmartFox)">
            <exclude/>
        </member>
        <member name="M:Sfs2X.Util.ConfigLoader.LoadConfig(System.String)">
            <summary>
            By default load a file called sfs-config.xml located in the same folder of the application
            </summary>
            <param name="filePath">
            Path to config file
            </param>
        </member>
        <member name="T:Sfs2X.Util.ConfigData">
            <summary>
            Stores the client configuration data loaded from an external XML file
            </summary>
        </member>
    </members>
</doc>
