From 8eaebd1f42becb371c21710ffebed600f609b446 Mon Sep 17 00:00:00 2001 From: Ahmed Schrute Date: Thu, 27 Jan 2022 10:39:20 -0800 Subject: [PATCH 01/25] Bump version 3.1.0 --- grpc/EngineTests/EngineTests.csproj | 2 +- .../MobiledgeX.MatchingEngineGrpc.csproj | 4 ++-- grpc/MobiledgeX.MatchingEngineGrpc.sln | 2 +- grpc/SampleApp/SampleApp.csproj | 2 +- rest/Doxygen/Doxygen.csproj | 2 +- rest/EngineTests/EngineTests.csproj | 2 +- rest/Makefile | 2 +- rest/MatchingEngineSDK.sln | 2 +- .../MatchingEngineSDKRestLibrary.csproj | 8 ++++---- rest/RestSample/RestSample.csproj | 2 +- 10 files changed, 14 insertions(+), 14 deletions(-) diff --git a/grpc/EngineTests/EngineTests.csproj b/grpc/EngineTests/EngineTests.csproj index aadfa9e9..3b8d9bd3 100644 --- a/grpc/EngineTests/EngineTests.csproj +++ b/grpc/EngineTests/EngineTests.csproj @@ -4,7 +4,7 @@ netcoreapp3.1 false - 3.0.10 + 3.1.0 diff --git a/grpc/MatchingEngineGrpc/MobiledgeX.MatchingEngineGrpc.csproj b/grpc/MatchingEngineGrpc/MobiledgeX.MatchingEngineGrpc.csproj index 6dd5efa1..d946d98c 100644 --- a/grpc/MatchingEngineGrpc/MobiledgeX.MatchingEngineGrpc.csproj +++ b/grpc/MatchingEngineGrpc/MobiledgeX.MatchingEngineGrpc.csproj @@ -2,13 +2,13 @@ MobiledgeX.MatchingEngineGrpc - 3.0.10 + 3.1.0 MobiledgeX, Inc MobiledgeX, Inc. netstandard2.0 true Copyright 2018-2021 MobiledgeX, Inc. All rights and licenses reserved. - 3.0.10 + 3.1.0 true MobiledgeX, Inc. MobiledgeX MatchingEngine SDK gRPC Library diff --git a/grpc/MobiledgeX.MatchingEngineGrpc.sln b/grpc/MobiledgeX.MatchingEngineGrpc.sln index 418b2d4d..2b595ac3 100644 --- a/grpc/MobiledgeX.MatchingEngineGrpc.sln +++ b/grpc/MobiledgeX.MatchingEngineGrpc.sln @@ -27,6 +27,6 @@ Global {16CB5C2A-0BE4-49FF-8271-14A38784BC9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(MonoDevelopProperties) = preSolution - version = 3.0.10 + version = 3.1.0 EndGlobalSection EndGlobal diff --git a/grpc/SampleApp/SampleApp.csproj b/grpc/SampleApp/SampleApp.csproj index ab9cee90..4fcf537e 100644 --- a/grpc/SampleApp/SampleApp.csproj +++ b/grpc/SampleApp/SampleApp.csproj @@ -3,7 +3,7 @@ Exe net5.0 - 3.0.10 + 3.1.0 diff --git a/rest/Doxygen/Doxygen.csproj b/rest/Doxygen/Doxygen.csproj index 1b58763b..01e76949 100644 --- a/rest/Doxygen/Doxygen.csproj +++ b/rest/Doxygen/Doxygen.csproj @@ -5,7 +5,7 @@ Exe v4.7.2 Doxygen - 3.0.9 + 3.1.0 full diff --git a/rest/EngineTests/EngineTests.csproj b/rest/EngineTests/EngineTests.csproj index 8d882605..d40dbc23 100644 --- a/rest/EngineTests/EngineTests.csproj +++ b/rest/EngineTests/EngineTests.csproj @@ -4,7 +4,7 @@ netcoreapp3.1 false - 3.0.9 + 3.1.0 diff --git a/rest/Makefile b/rest/Makefile index e7dbf603..5ecc27ff 100755 --- a/rest/Makefile +++ b/rest/Makefile @@ -20,7 +20,7 @@ BINOUT := $(APPLIBBASE)/lib SOLUTIONLOG := /tmp/$(VSPROJECTROOT)_out.log PUBLISHLOG := /tmp/nuget_out.log -REST_SDK_VERSION=3.0.9 +REST_SDK_VERSION=3.1.0 NUGET_RELEASE_SERVER := https://artifactory.mobiledgex.net/api/nuget/nuget-releases/ DOXYGENROOT := Doxygen diff --git a/rest/MatchingEngineSDK.sln b/rest/MatchingEngineSDK.sln index d4950b4e..6fb18fbd 100644 --- a/rest/MatchingEngineSDK.sln +++ b/rest/MatchingEngineSDK.sln @@ -52,7 +52,7 @@ Global EndGlobalSection GlobalSection(MonoDevelopProperties) = preSolution description = MatchingEngineSDK Library based on REST backend - version = 3.0.9 + version = 3.1.0 Policies = $0 $0.DotNetNamingPolicy = $1 $1.DirectoryNamespaceAssociation = PrefixedHierarchical diff --git a/rest/MatchingEngineSDKRestLibrary/MatchingEngineSDKRestLibrary.csproj b/rest/MatchingEngineSDKRestLibrary/MatchingEngineSDKRestLibrary.csproj index 816d62eb..4289eb70 100644 --- a/rest/MatchingEngineSDKRestLibrary/MatchingEngineSDKRestLibrary.csproj +++ b/rest/MatchingEngineSDKRestLibrary/MatchingEngineSDKRestLibrary.csproj @@ -2,9 +2,9 @@ netstandard2.0 - 3.0.10 + 3.1.0 true - 3.0.10 + 3.1.0 MobiledgeX, Inc. MobiledgeX MatchingEngineSDK Rest Library MobiledgeX, Inc. @@ -12,8 +12,8 @@ MobiledgeX MatchingEngineSDK Rest Library MobiledgeX.MatchingEngineSDKRestLibrary MobiledgeX MatchingEngine - 3.0.10 - 3.0.10 + 3.1.0 + 3.1.0 Copyright 2018-2021 MobiledgeX, Inc. All rights and licenses reserved. diff --git a/rest/RestSample/RestSample.csproj b/rest/RestSample/RestSample.csproj index b7ef73a8..1709f497 100644 --- a/rest/RestSample/RestSample.csproj +++ b/rest/RestSample/RestSample.csproj @@ -4,7 +4,7 @@ Exe netcoreapp2.1 7.1 - 3.0.9 + 3.1.0 From 021e7af4df75c454f380cdfa47a5f9c98e206364 Mon Sep 17 00:00:00 2001 From: Ahmed Schrute Date: Wed, 2 Feb 2022 11:02:14 -0800 Subject: [PATCH 02/25] QoSSession Protocols --- .../MatchingEngineSDKRestLibrary.csproj | 6 +- .../Protocol/QosSession.cs | 273 ++++++++++++++++++ 2 files changed, 276 insertions(+), 3 deletions(-) create mode 100644 rest/MatchingEngineSDKRestLibrary/Protocol/QosSession.cs diff --git a/rest/MatchingEngineSDKRestLibrary/MatchingEngineSDKRestLibrary.csproj b/rest/MatchingEngineSDKRestLibrary/MatchingEngineSDKRestLibrary.csproj index 816d62eb..aab65c95 100644 --- a/rest/MatchingEngineSDKRestLibrary/MatchingEngineSDKRestLibrary.csproj +++ b/rest/MatchingEngineSDKRestLibrary/MatchingEngineSDKRestLibrary.csproj @@ -2,7 +2,7 @@ netstandard2.0 - 3.0.10 + 3.0.9 true 3.0.10 MobiledgeX, Inc. @@ -25,12 +25,12 @@ - lib\Debug\netstandard2.0 + lib\Debug\netstandard2.0\netstandard2.0 TRACE;DEBUG;NETSTANDARD; - lib\Release\netstandard2.0 + lib\Release\netstandard2.0\netstandard2.0 diff --git a/rest/MatchingEngineSDKRestLibrary/Protocol/QosSession.cs b/rest/MatchingEngineSDKRestLibrary/Protocol/QosSession.cs new file mode 100644 index 00000000..0a7080b2 --- /dev/null +++ b/rest/MatchingEngineSDKRestLibrary/Protocol/QosSession.cs @@ -0,0 +1,273 @@ +/** + * Copyright 2018-2022 MobiledgeX, Inc. All rights and licenses reserved. + * MobiledgeX, Inc. 156 2nd Street #408, San Francisco, CA 94105 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; +using System.Runtime.Serialization; +using System.Collections.Generic; +using System.Collections; + +namespace DistributedMatchEngine +{ + /*! + * QosSessionProfile + * Defines the Quality of Service session, used for session creation and deletion. + * \ingroup classes_datastructs + */ + [DataContract] + public enum QosSessionProfile + { + /// + /// Specifies that no priority session should be created. + /// + [EnumMember] + QOS_NO_PRIORITY = 0, + /// + /// Corresponds to a specific set of network parameters for low latency that will be + /// negotiated with the network provider in advance. + /// + [EnumMember] + QOS_LOW_LATENCY = 1, + /// + /// Downlink traffic from AppInst to client is prioritized up to 20Mbps. + /// + [EnumMember] + QOS_THROUGHPUT_DOWN_S = 2, + /// + /// Downlink traffic from AppInst to client is prioritized up to 50Mbps. + /// + [EnumMember] + QOS_THROUGHPUT_DOWN_M = 3, + /// + /// Downlink traffic from AppInst to client is prioritized up to 100Mbps. + /// + [EnumMember] + QOS_THROUGHPUT_DOWN_L = 4 + } + + [DataContract] + public enum QosSessionProtocol + { + [EnumMember] + TCP = 0, + [EnumMember] + UDP = 1, + [EnumMember] + ANY = 2 + } + + [DataContract] + enum QosSessionResult + { + [EnumMember] + QOS_NOT_ATTEMPTED = 0, + [EnumMember] + QOS_SESSION_CREATED = 1, + [EnumMember] + QOS_SESSION_FAILED = 2 + } + + [DataContract] + public enum DeleteStatus + { + [EnumMember] + QDEL_UNKNOWN = 0, + [EnumMember] + QDEL_DELETED = 1, + [EnumMember] + QDEL_NOT_FOUND = 2 + } + + /*! + * QosPrioritySessionCreateRequest + * Requests the creation of a quality of service session. + * Required(session_cookie, ip_user_equipment, ip_application_server, profile) + * \ingroup classes_datastructs + */ + [DataContract] + public class QosPrioritySessionCreateRequest + { + [DataMember] + public UInt32 ver; + /// + /// Session Cookie from RegisterClientRequest. + /// + [DataMember] + public string session_cookie; + /// + /// QOS Priority Session duration in seconds. (optional) + /// + [DataMember(EmitDefaultValue = false)] + public UInt32 session_duration; + /// + /// IP address of mobile device. + /// + [DataMember] + public string ip_user_equipment; + /// + /// IP address of the application server. + /// + [DataMember] + public string ip_application_server; + /// + /// A list of single ports or port ranges on the user equipment.(optional) + /// + [DataMember(EmitDefaultValue = false)] + public string port_user_equipment; + /// + /// A list of single ports or port ranges on the application server.(optional) + /// + [DataMember(EmitDefaultValue = false)] + public string port_application_server; + /// + /// The used transport protocol for the uplink. (optional) + /// + [DataMember(EmitDefaultValue = false)] + public QosSessionProtocol protocol_in; + /// + /// The used transport protocol for the downlink.(optional) + /// + [DataMember(EmitDefaultValue = false)] + public QosSessionProtocol protocol_out; + /// + /// QOS Priority Session profile name. + /// + [DataMember] + public QosSessionProfile profile; + /// + /// URI of the callback receiver. Allows asynchronous delivery of session related events. (optional) + /// + [DataMember(EmitDefaultValue = false)] + public string notification_uri; + /// + /// Authentification token for callback API. (optional) + /// + [DataMember(EmitDefaultValue = false)] + public string notification_auth_token; + /// + /// Vendor specific data. (optional) + /// + public Dictionary tags; + + [DataMember(Name = "tags", EmitDefaultValue = false)] + internal Hashtable htags; + } + /*! + * QosPrioritySessionReply + * Reply object received via QosPrioritySessionCreateRequest + * \ingroup classes_datastructs + */ + [DataContract] + public class QosPrioritySessionReply + { + [DataMember] + public UInt32 ver = 1; + /// + /// QOS Priority Session duration in seconds. + /// + [DataMember] + public UInt32 session_duration; + /// + /// QOS Priority Session profile name. + /// + [DataMember] + public QosSessionProfile profile; + /// + /// Session ID in UUID format. + /// + [DataMember] + public string session_id; + /// + /// Timestamp of session start in seconds since unix epoch. + /// + [DataMember] + public UInt32 started_at; + /// + /// Timestamp of session expiration if the session was not deleted in seconds since unix epoch. + /// + [DataMember] + public UInt32 expires_at; + /// + /// HTTP Status Code of call to operator's API server. + /// + [DataMember] + public UInt32 http_status; + public Dictionary tags; + /// + /// Vendor specific data. (optional) + /// + [DataMember(Name = "tags", EmitDefaultValue = false)] + internal Hashtable htags; + } + /*! + * QosPrioritySessionDeleteRequest + * Requests the deletion of running quality of service session. + * Required(session_cookie, profile, session_id) + * \ingroup classes_datastructs + */ + [DataContract] + public class QosPrioritySessionDeleteRequest + { + /// + /// Reserved for future use. + /// + [DataMember] + public UInt32 ver; + /// + /// Session Cookie from RegisterClientRequest. + /// + [DataMember] + public string session_cookie; + /// + /// QOS Priority Session profile name. + /// + [DataMember] + public QosSessionProfile profile; + /// + /// QOS Priority Session ID to be deleted. + /// + [DataMember] + public string session_id; + public Dictionary tags; + /// + /// Vendor specific data. (optional) + /// + [DataMember(Name = "tags", EmitDefaultValue = false)] + internal Hashtable htags; + } + /*! + * QosPrioritySessionDeleteReply + * Reply object received via QosPrioritySessionDeleteRequest + * \ingroup classes_datastructs + */ + [DataContract] + public class QosPrioritySessionDeleteReply + { + [DataMember] + public UInt32 ver; + /// + /// Status return. + /// + [DataMember] + public DeleteStatus status; + public Dictionary tags; + /// + /// Vendor specific data. (optional) + /// + [DataMember(Name = "tags", EmitDefaultValue = false)] + internal Hashtable htags; + } +} From cb20ac2d20b9baa56b5b4b741bde129b6e2b86a3 Mon Sep 17 00:00:00 2001 From: Ahmed Schrute Date: Thu, 3 Feb 2022 14:42:09 -0800 Subject: [PATCH 03/25] rest qos main api calls --- .../DistributedMatchEngine.cs | 229 +++++++++++++++++- .../Protocol/FindCloudlet.cs | 4 + .../Protocol/QosSession.cs | 4 +- rest/MatchingEngineSDKRestLibrary/Util.cs | 39 +++ 4 files changed, 272 insertions(+), 4 deletions(-) diff --git a/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs b/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs index dad56097..43bdd6ee 100644 --- a/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs +++ b/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs @@ -225,6 +225,8 @@ public partial class MatchingEngine : IDisposable private string getfqdnlistAPI = "/v1/getfqdnlist"; private string appofficialfqdnAPI = "/v1/getappofficialfqdn"; private string qospositionkpiAPI = "/v1/getqospositionkpi"; + private string qosprioritycreateAPI = "/v1/qosprioritysessioncreate"; + private string qosprioritydeleteAPI = "/v1/qosprioritysessiondelete"; internal string streamedgeeventAPI = "/v1/streamedgeevent"; public const int DEFAULT_REST_TIMEOUT_MS = 10000; @@ -241,6 +243,10 @@ public partial class MatchingEngine : IDisposable string authToken { get; set; } + string qosSessionId { get; set; } + + + // Global local endpoint override for FindCloudlet, NetTest, and GetConnection API helpers. // This is used for background App related operations like EdgeEvents processing, if set. // Default routing otherwise. @@ -759,7 +765,6 @@ private RegisterClientRequest UpdateRequestForDeviceInfo(RegisterClientRequest r return request; } - private FindCloudletRequest UpdateRequestForQoSNetworkPriority(FindCloudletRequest request, IPEndPoint localEndPoint) { if (localEndPoint == null || localEndPoint.AddressFamily != AddressFamily.InterNetwork) @@ -1872,7 +1877,227 @@ public async Task GetQosPositionKpi(string host, uint port var qosPositionKpiStream = new QosPositionKpiStream(responseStream); return qosPositionKpiStream; - } + } + + public QosPrioritySessionCreateRequest CreateQosPriorityCreateRequest + (QosSessionProfile sessionProfile, + FindCloudletReply findCloudletReply, + QosSessionProtocol protocolIn = QosSessionProtocol.ANY, + QosSessionProtocol protocolOut = QosSessionProtocol.ANY, + UInt32 duration= 0, + string applicationPort = "", + string serverPort = "", + string notificationUri = "", + string notificationAuthToken = "", + Dictionary tags = null, + IPEndPoint localEndPoint = null) + { + if(findCloudletReply == null || findCloudletReply.status != FindCloudletReply.FindStatus.Found) + { + Log.E("FindCloudletReply is malformed"); + return null; + } + if(findCloudletReply.qos_result == QosSessionResult.QOS_SESSION_CREATED) + { + Log.E("There is active QoS session, please delete the current session first."); + return null; + } + if(sessionCookie == null || sessionCookie == "") + { + Log.E("Session cookie is null, please call register client prior to calling CreateQosPrioritySessionCreateRequest"); + return null; + } + if(!Uri.IsWellFormedUriString(notificationUri, UriKind.Absolute)) + { + Log.E("notification uri is malformed"); + return null; + } + if (localEndPoint == null || localEndPoint.AddressFamily != AddressFamily.InterNetwork) + { + IPEndPoint endPoint = Util.GetDefaultLocalEndPointIPV4(); + if (endPoint == null) + { + throw new Exception("Couldn't find an IPV4 address for the supplied localEndPoint"); + } + localEndPoint = endPoint; + } + + string ipApplicationServer = Util.GetHostIPV4Address(findCloudletReply.fqdn); + if(ipApplicationServer == null || ipApplicationServer == "") + { + Log.E("Couldn't find an ipv4 for the application server"); + return null; + } + + QosPrioritySessionCreateRequest request = new QosPrioritySessionCreateRequest + { + ver = 1, + profile = sessionProfile, + session_cookie = sessionCookie, + protocol_in = protocolIn, + protocol_out = protocolOut, + session_duration = duration, + port_application_server = serverPort, + port_user_equipment = applicationPort, + notification_uri = notificationUri, + notification_auth_token = notificationAuthToken, + ip_application_server = ipApplicationServer, + ip_user_equipment = localEndPoint.Address.ToString(), + tags = tags + }; + return request; + } + + public async Task CreateQOSPrioritySession(QosPrioritySessionCreateRequest req) + { + return await CreateQOSPrioritySession(GenerateDmeHostAddress(), defaultDmeRestPort, req); + } + + public async Task CreateQOSPrioritySession(string host, uint port, QosPrioritySessionCreateRequest req) + { + req.htags = Tag.DictionaryToHashtable(req.tags); + DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(QosPrioritySessionCreateRequest), serializerSettings); + MemoryStream ms = new MemoryStream(); + serializer.WriteObject(ms, req); + string jsonStr = Util.StreamToString(ms); + + Stream responseStream; + try + { + responseStream = await PostRequest(CreateUri(host, port) + qosprioritycreateAPI, jsonStr); + if (responseStream == null || !responseStream.CanRead) + { + Log.E("Unreadable CreateQosSession stream!"); + return null; + } + } + catch (HttpException he) + { + Log.E("Exception hit: DME Server host: " + host + ", status: " + he.HttpStatusCode + ", Message: " + he.Message); + throw he; + } + catch (HttpRequestException hre) + { + Log.E("Exception during CreateQosSession. DME Server used: " + host + ", Message: " + hre.Message); + throw hre; + } + + string responseStr = Util.StreamToString(responseStream); + byte[] byteArray = Encoding.ASCII.GetBytes(responseStr); + ms = new MemoryStream(byteArray); + DataContractJsonSerializer deserializer = new DataContractJsonSerializer(typeof(QosPrioritySessionCreateReply), serializerSettings); + QosPrioritySessionCreateReply reply = (QosPrioritySessionCreateReply)deserializer.ReadObject(ms); + if (reply.tags == null) + { + reply.tags = Tag.HashtableToDictionary(reply.htags); + } + if(reply.http_status == 201) + { + Log.D("Session created successfully"); + qosSessionId = reply.session_id; + } + else + { + if(reply.http_status == 400 || reply.http_status == 405) + { + Log.E("Invalid Input for QoSCreateRequest"); + } + if (reply.http_status == 401) + { + Log.E(" Unauthorized, missing or incorrect authentication."); + } + if (reply.http_status == 500) + { + Log.E(" Session not created."); + } + if (reply.http_status == 503) + { + Log.E("Service temporarily unavailable"); + } + Log.E("Failed to create QoSPrioritySession"); + } + return reply; + } + + public QosPrioritySessionDeleteRequest CreateQosPriorityDeleteRequest + (QosSessionProfile sessionProfile, + Dictionary tags = null) + { + if (sessionCookie == null || sessionCookie == "") + { + Log.E("Session cookie is null, please call register client prior to calling CreateQosPrioritySessionCreateRequest"); + return null; + } + if (qosSessionId == null || qosSessionId == "") + { + Log.E("QosSessionId is null"); + return null; + } + QosPrioritySessionDeleteRequest request = new QosPrioritySessionDeleteRequest + { + ver = 1, + session_cookie = sessionCookie, + profile = sessionProfile, + session_id = qosSessionId, + tags = tags + }; + return request; + } + + public async Task DeleteQOSPrioritySession(QosPrioritySessionCreateRequest req) + { + return await DeleteQOSPrioritySession(GenerateDmeHostAddress(), defaultDmeRestPort, req); + } + + public async Task DeleteQOSPrioritySession(string host, uint port, QosPrioritySessionCreateRequest req) + { + req.htags = Tag.DictionaryToHashtable(req.tags); + DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(QosPrioritySessionCreateRequest), serializerSettings); + MemoryStream ms = new MemoryStream(); + serializer.WriteObject(ms, req); + string jsonStr = Util.StreamToString(ms); + + Stream responseStream; + try + { + responseStream = await PostRequest(CreateUri(host, port) + qosprioritycreateAPI, jsonStr); + if (responseStream == null || !responseStream.CanRead) + { + Log.E("Unreadable DeleteQosSessionStream stream!"); + return null; + } + } + catch (HttpException he) + { + Log.E("Exception hit: DME Server host: " + host + ", status: " + he.HttpStatusCode + ", Message: " + he.Message); + throw he; + } + catch (HttpRequestException hre) + { + Log.E("Exception during DeleteQosSession. DME Server used: " + host + ", Message: " + hre.Message); + throw hre; + } + + string responseStr = Util.StreamToString(responseStream); + byte[] byteArray = Encoding.ASCII.GetBytes(responseStr); + ms = new MemoryStream(byteArray); + DataContractJsonSerializer deserializer = new DataContractJsonSerializer(typeof(QosPrioritySessionDeleteReply), serializerSettings); + QosPrioritySessionDeleteReply reply = (QosPrioritySessionDeleteReply)deserializer.ReadObject(ms); + if (reply.tags == null) + { + reply.tags = Tag.HashtableToDictionary(reply.htags); + } + if (reply.status == DeleteStatus.QDEL_DELETED) + { + Log.D("Qos session deleted successfully"); + qosSessionId = null; + } + else + { + Log.E($"Failed to delete Qos session, Delete status: {reply.status}"); + } + return reply; + } private FqdnListRequest CreateFqdnListRequest(UInt32 cellID = 0, Dictionary tags = null) { diff --git a/rest/MatchingEngineSDKRestLibrary/Protocol/FindCloudlet.cs b/rest/MatchingEngineSDKRestLibrary/Protocol/FindCloudlet.cs index 2b101ff7..a2d59ba9 100644 --- a/rest/MatchingEngineSDKRestLibrary/Protocol/FindCloudlet.cs +++ b/rest/MatchingEngineSDKRestLibrary/Protocol/FindCloudlet.cs @@ -114,6 +114,10 @@ private string find_status_string //! Location of the cloudlet [DataMember] public Loc cloudlet_location; + + [DataMember] + public QosSessionResult qos_result; + //! Session Cookie for specific EdgeEvents for specific AppInst [DataMember] public string edge_events_cookie; diff --git a/rest/MatchingEngineSDKRestLibrary/Protocol/QosSession.cs b/rest/MatchingEngineSDKRestLibrary/Protocol/QosSession.cs index 0a7080b2..50573032 100644 --- a/rest/MatchingEngineSDKRestLibrary/Protocol/QosSession.cs +++ b/rest/MatchingEngineSDKRestLibrary/Protocol/QosSession.cs @@ -70,7 +70,7 @@ public enum QosSessionProtocol } [DataContract] - enum QosSessionResult + public enum QosSessionResult { [EnumMember] QOS_NOT_ATTEMPTED = 0, @@ -171,7 +171,7 @@ public class QosPrioritySessionCreateRequest * \ingroup classes_datastructs */ [DataContract] - public class QosPrioritySessionReply + public class QosPrioritySessionCreateReply { [DataMember] public UInt32 ver = 1; diff --git a/rest/MatchingEngineSDKRestLibrary/Util.cs b/rest/MatchingEngineSDKRestLibrary/Util.cs index 6d46e181..d757d4eb 100644 --- a/rest/MatchingEngineSDKRestLibrary/Util.cs +++ b/rest/MatchingEngineSDKRestLibrary/Util.cs @@ -16,7 +16,9 @@ */ using System; +using System.Collections.Generic; using System.IO; +using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; @@ -125,5 +127,42 @@ public static byte[] GetStagingCertRawBytes() byte[] certBytes = Encoding.ASCII.GetBytes(certText); return certBytes; } + + public static string GetHostIPV4Address(string host) + { + try + { + if (host == "" || host.Length > 255) + { + if (host.Length > 255) + { + Log.D($"{host} is more than 255 characters"); + } + return null; + } + List addresses = Dns.GetHostAddresses(host).ToList(); + IPAddress ipv4Address = addresses.Find(ip => ip.AddressFamily == AddressFamily.InterNetwork); + if(ipv4Address == null) + { + ipv4Address = addresses.Find(ip => ip.IsIPv4MappedToIPv6 == true); + if(ipv4Address == null) + { + return null; + } + ipv4Address = ipv4Address.MapToIPv4(); + } + return ipv4Address.ToString(); + } + catch(SocketException se) + { + Log.E($"Error is encountered when resolving {host}, SocketException: {se.Message}"); + return null; + } + catch(ArgumentException ae) + { + Log.E($"{host} is an invalid host address, SocketException: {ae.Message}"); + return null; + } + } } } From 1af7ce3db799c1284d32fd0b37e8cf99fbfa60bb Mon Sep 17 00:00:00 2001 From: Ahmed Schrute Date: Thu, 3 Feb 2022 14:49:35 -0800 Subject: [PATCH 04/25] version fix, nits --- .../DistributedMatchEngine.cs | 8 ++------ .../MatchingEngineSDKRestLibrary.csproj | 6 +++--- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs b/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs index 43bdd6ee..7889e0ef 100644 --- a/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs +++ b/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs @@ -240,13 +240,9 @@ public partial class MatchingEngine : IDisposable public string sessionCookie { get; set; } string tokenServerURI; private bool disposedValue; - string authToken { get; set; } - string qosSessionId { get; set; } - - // Global local endpoint override for FindCloudlet, NetTest, and GetConnection API helpers. // This is used for background App related operations like EdgeEvents processing, if set. // Default routing otherwise. @@ -1899,12 +1895,12 @@ public QosPrioritySessionCreateRequest CreateQosPriorityCreateRequest } if(findCloudletReply.qos_result == QosSessionResult.QOS_SESSION_CREATED) { - Log.E("There is active QoS session, please delete the current session first."); + Log.E("There is an active QoS session, please delete the current session first."); return null; } if(sessionCookie == null || sessionCookie == "") { - Log.E("Session cookie is null, please call register client prior to calling CreateQosPrioritySessionCreateRequest"); + Log.E("Session cookie is null, please call RegisterClient and FindCloudlet prior to calling CreateQosPrioritySessionCreateRequest"); return null; } if(!Uri.IsWellFormedUriString(notificationUri, UriKind.Absolute)) diff --git a/rest/MatchingEngineSDKRestLibrary/MatchingEngineSDKRestLibrary.csproj b/rest/MatchingEngineSDKRestLibrary/MatchingEngineSDKRestLibrary.csproj index aab65c95..816d62eb 100644 --- a/rest/MatchingEngineSDKRestLibrary/MatchingEngineSDKRestLibrary.csproj +++ b/rest/MatchingEngineSDKRestLibrary/MatchingEngineSDKRestLibrary.csproj @@ -2,7 +2,7 @@ netstandard2.0 - 3.0.9 + 3.0.10 true 3.0.10 MobiledgeX, Inc. @@ -25,12 +25,12 @@ - lib\Debug\netstandard2.0\netstandard2.0 + lib\Debug\netstandard2.0 TRACE;DEBUG;NETSTANDARD; - lib\Release\netstandard2.0\netstandard2.0 + lib\Release\netstandard2.0 From 5c60667449504ed6e00edcb6d6629e278fe86953 Mon Sep 17 00:00:00 2001 From: Ahmed Schrute Date: Thu, 3 Feb 2022 16:15:10 -0800 Subject: [PATCH 05/25] accept 200 qos reply --- rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs b/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs index 7889e0ef..1a7f6c0b 100644 --- a/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs +++ b/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs @@ -1987,14 +1987,14 @@ public async Task CreateQOSPrioritySession(string { reply.tags = Tag.HashtableToDictionary(reply.htags); } - if(reply.http_status == 201) + if (reply.http_status == 201 || reply.http_status == 200) { Log.D("Session created successfully"); qosSessionId = reply.session_id; } else { - if(reply.http_status == 400 || reply.http_status == 405) + if (reply.http_status == 400 || reply.http_status == 405) { Log.E("Invalid Input for QoSCreateRequest"); } From c50aeed4bbf756f50dbb935b353c77897ac43544 Mon Sep 17 00:00:00 2001 From: Ahmed Schrute Date: Fri, 4 Feb 2022 11:33:21 -0800 Subject: [PATCH 06/25] Include qos proto updates --- .../Protocol/App-clientGrpc.cs | 138 + grpc/MatchingEngineGrpc/Protocol/AppClient.cs | 2335 ++++++++++++++--- .../Protocol/Edgeprotogen.cs | 4 +- grpc/MatchingEngineGrpc/Protocol/Loc.cs | 32 +- 4 files changed, 2061 insertions(+), 448 deletions(-) diff --git a/grpc/MatchingEngineGrpc/Protocol/App-clientGrpc.cs b/grpc/MatchingEngineGrpc/Protocol/App-clientGrpc.cs index 0f4ec3c9..dc2e9abe 100644 --- a/grpc/MatchingEngineGrpc/Protocol/App-clientGrpc.cs +++ b/grpc/MatchingEngineGrpc/Protocol/App-clientGrpc.cs @@ -20,6 +20,10 @@ public static partial class MatchEngineApi static readonly grpc::Marshaller __Marshaller_distributed_match_engine_FindCloudletRequest = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::DistributedMatchEngine.FindCloudletRequest.Parser.ParseFrom); static readonly grpc::Marshaller __Marshaller_distributed_match_engine_FindCloudletReply = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::DistributedMatchEngine.FindCloudletReply.Parser.ParseFrom); static readonly grpc::Marshaller __Marshaller_distributed_match_engine_PlatformFindCloudletRequest = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::DistributedMatchEngine.PlatformFindCloudletRequest.Parser.ParseFrom); + static readonly grpc::Marshaller __Marshaller_distributed_match_engine_QosPrioritySessionCreateRequest = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::DistributedMatchEngine.QosPrioritySessionCreateRequest.Parser.ParseFrom); + static readonly grpc::Marshaller __Marshaller_distributed_match_engine_QosPrioritySessionReply = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::DistributedMatchEngine.QosPrioritySessionReply.Parser.ParseFrom); + static readonly grpc::Marshaller __Marshaller_distributed_match_engine_QosPrioritySessionDeleteRequest = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::DistributedMatchEngine.QosPrioritySessionDeleteRequest.Parser.ParseFrom); + static readonly grpc::Marshaller __Marshaller_distributed_match_engine_QosPrioritySessionDeleteReply = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::DistributedMatchEngine.QosPrioritySessionDeleteReply.Parser.ParseFrom); static readonly grpc::Marshaller __Marshaller_distributed_match_engine_VerifyLocationRequest = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::DistributedMatchEngine.VerifyLocationRequest.Parser.ParseFrom); static readonly grpc::Marshaller __Marshaller_distributed_match_engine_VerifyLocationReply = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::DistributedMatchEngine.VerifyLocationReply.Parser.ParseFrom); static readonly grpc::Marshaller __Marshaller_distributed_match_engine_GetLocationRequest = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::DistributedMatchEngine.GetLocationRequest.Parser.ParseFrom); @@ -58,6 +62,20 @@ public static partial class MatchEngineApi __Marshaller_distributed_match_engine_PlatformFindCloudletRequest, __Marshaller_distributed_match_engine_FindCloudletReply); + static readonly grpc::Method __Method_QosPrioritySessionCreate = new grpc::Method( + grpc::MethodType.Unary, + __ServiceName, + "QosPrioritySessionCreate", + __Marshaller_distributed_match_engine_QosPrioritySessionCreateRequest, + __Marshaller_distributed_match_engine_QosPrioritySessionReply); + + static readonly grpc::Method __Method_QosPrioritySessionDelete = new grpc::Method( + grpc::MethodType.Unary, + __ServiceName, + "QosPrioritySessionDelete", + __Marshaller_distributed_match_engine_QosPrioritySessionDeleteRequest, + __Marshaller_distributed_match_engine_QosPrioritySessionDeleteReply); + static readonly grpc::Method __Method_VerifyLocation = new grpc::Method( grpc::MethodType.Unary, __ServiceName, @@ -341,6 +359,126 @@ protected MatchEngineApiClient(ClientBaseConfiguration configuration) : base(con } /// /// + /// QosPrioritySessionCreate + /// + /// Creates a QOS priority session (latency or throughput priority) from the client + /// to the app inst by making a call to the operator's priority session API server. + /// + /// The request to send to the server. + /// The initial metadata to send with the call. This parameter is optional. + /// An optional deadline for the call. The call will be cancelled if deadline is hit. + /// An optional token for canceling the call. + /// The response received from the server. + public virtual global::DistributedMatchEngine.QosPrioritySessionReply QosPrioritySessionCreate(global::DistributedMatchEngine.QosPrioritySessionCreateRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken)) + { + return QosPrioritySessionCreate(request, new grpc::CallOptions(headers, deadline, cancellationToken)); + } + /// + /// + /// QosPrioritySessionCreate + /// + /// Creates a QOS priority session (latency or throughput priority) from the client + /// to the app inst by making a call to the operator's priority session API server. + /// + /// The request to send to the server. + /// The options for the call. + /// The response received from the server. + public virtual global::DistributedMatchEngine.QosPrioritySessionReply QosPrioritySessionCreate(global::DistributedMatchEngine.QosPrioritySessionCreateRequest request, grpc::CallOptions options) + { + return CallInvoker.BlockingUnaryCall(__Method_QosPrioritySessionCreate, null, options, request); + } + /// + /// + /// QosPrioritySessionCreate + /// + /// Creates a QOS priority session (latency or throughput priority) from the client + /// to the app inst by making a call to the operator's priority session API server. + /// + /// The request to send to the server. + /// The initial metadata to send with the call. This parameter is optional. + /// An optional deadline for the call. The call will be cancelled if deadline is hit. + /// An optional token for canceling the call. + /// The call object. + public virtual grpc::AsyncUnaryCall QosPrioritySessionCreateAsync(global::DistributedMatchEngine.QosPrioritySessionCreateRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken)) + { + return QosPrioritySessionCreateAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken)); + } + /// + /// + /// QosPrioritySessionCreate + /// + /// Creates a QOS priority session (latency or throughput priority) from the client + /// to the app inst by making a call to the operator's priority session API server. + /// + /// The request to send to the server. + /// The options for the call. + /// The call object. + public virtual grpc::AsyncUnaryCall QosPrioritySessionCreateAsync(global::DistributedMatchEngine.QosPrioritySessionCreateRequest request, grpc::CallOptions options) + { + return CallInvoker.AsyncUnaryCall(__Method_QosPrioritySessionCreate, null, options, request); + } + /// + /// + /// QosPrioritySessionDelete + /// + /// Deletes a previously created QOS priority session by making a call to the operator's + /// priority session API server. + /// + /// The request to send to the server. + /// The initial metadata to send with the call. This parameter is optional. + /// An optional deadline for the call. The call will be cancelled if deadline is hit. + /// An optional token for canceling the call. + /// The response received from the server. + public virtual global::DistributedMatchEngine.QosPrioritySessionDeleteReply QosPrioritySessionDelete(global::DistributedMatchEngine.QosPrioritySessionDeleteRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken)) + { + return QosPrioritySessionDelete(request, new grpc::CallOptions(headers, deadline, cancellationToken)); + } + /// + /// + /// QosPrioritySessionDelete + /// + /// Deletes a previously created QOS priority session by making a call to the operator's + /// priority session API server. + /// + /// The request to send to the server. + /// The options for the call. + /// The response received from the server. + public virtual global::DistributedMatchEngine.QosPrioritySessionDeleteReply QosPrioritySessionDelete(global::DistributedMatchEngine.QosPrioritySessionDeleteRequest request, grpc::CallOptions options) + { + return CallInvoker.BlockingUnaryCall(__Method_QosPrioritySessionDelete, null, options, request); + } + /// + /// + /// QosPrioritySessionDelete + /// + /// Deletes a previously created QOS priority session by making a call to the operator's + /// priority session API server. + /// + /// The request to send to the server. + /// The initial metadata to send with the call. This parameter is optional. + /// An optional deadline for the call. The call will be cancelled if deadline is hit. + /// An optional token for canceling the call. + /// The call object. + public virtual grpc::AsyncUnaryCall QosPrioritySessionDeleteAsync(global::DistributedMatchEngine.QosPrioritySessionDeleteRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken)) + { + return QosPrioritySessionDeleteAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken)); + } + /// + /// + /// QosPrioritySessionDelete + /// + /// Deletes a previously created QOS priority session by making a call to the operator's + /// priority session API server. + /// + /// The request to send to the server. + /// The options for the call. + /// The call object. + public virtual grpc::AsyncUnaryCall QosPrioritySessionDeleteAsync(global::DistributedMatchEngine.QosPrioritySessionDeleteRequest request, grpc::CallOptions options) + { + return CallInvoker.AsyncUnaryCall(__Method_QosPrioritySessionDelete, null, options, request); + } + /// + /// /// VerifyLocation /// /// Verifies that the GPS coordinates accurately report the actual location of the device. diff --git a/grpc/MatchingEngineGrpc/Protocol/AppClient.cs b/grpc/MatchingEngineGrpc/Protocol/AppClient.cs index ed741b54..58fb71ff 100644 --- a/grpc/MatchingEngineGrpc/Protocol/AppClient.cs +++ b/grpc/MatchingEngineGrpc/Protocol/AppClient.cs @@ -51,220 +51,275 @@ static AppClientReflection() { "bnRfdG9rZW4YBCABKAkSTQoEdGFncxhkIAMoCzI/LmRpc3RyaWJ1dGVkX21h", "dGNoX2VuZ2luZS5QbGF0Zm9ybUZpbmRDbG91ZGxldFJlcXVlc3QuVGFnc0Vu", "dHJ5GisKCVRhZ3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6", - "AjgBIrMDChFGaW5kQ2xvdWRsZXRSZXBseRILCgN2ZXIYASABKA0SRgoGc3Rh", + "AjgBIvgEChFGaW5kQ2xvdWRsZXRSZXBseRILCgN2ZXIYASABKA0SRgoGc3Rh", "dHVzGAIgASgOMjYuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkZpbmRDbG91", "ZGxldFJlcGx5LkZpbmRTdGF0dXMSDAoEZnFkbhgDIAEoCRIwCgVwb3J0cxgE", "IAMoCzIhLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5BcHBQb3J0EjgKEWNs", "b3VkbGV0X2xvY2F0aW9uGAUgASgLMh0uZGlzdHJpYnV0ZWRfbWF0Y2hfZW5n", - "aW5lLkxvYxIaChJlZGdlX2V2ZW50c19jb29raWUYBiABKAkSQwoEdGFncxhk", - "IAMoCzI1LmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5GaW5kQ2xvdWRsZXRS", - "ZXBseS5UYWdzRW50cnkaKwoJVGFnc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2", - "YWx1ZRgCIAEoCToCOAEiQQoKRmluZFN0YXR1cxIQCgxGSU5EX1VOS05PV04Q", - "ABIOCgpGSU5EX0ZPVU5EEAESEQoNRklORF9OT1RGT1VORBACIqYCChVWZXJp", - "ZnlMb2NhdGlvblJlcXVlc3QSCwoDdmVyGAEgASgNEhYKDnNlc3Npb25fY29v", - "a2llGAIgASgJEhQKDGNhcnJpZXJfbmFtZRgDIAEoCRIzCgxncHNfbG9jYXRp", - "b24YBCABKAsyHS5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuTG9jEhgKEHZl", - "cmlmeV9sb2NfdG9rZW4YBSABKAkSRwoEdGFncxhkIAMoCzI5LmRpc3RyaWJ1", - "dGVkX21hdGNoX2VuZ2luZS5WZXJpZnlMb2NhdGlvblJlcXVlc3QuVGFnc0Vu", + "aW5lLkxvYxIaChJlZGdlX2V2ZW50c19jb29raWUYBiABKAkSUAoKcW9zX3Jl", + "c3VsdBgHIAEoDjI8LmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5GaW5kQ2xv", + "dWRsZXRSZXBseS5Rb3NTZXNzaW9uUmVzdWx0EhUKDXFvc19lcnJvcl9tc2cY", + "CCABKAkSQwoEdGFncxhkIAMoCzI1LmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2lu", + "ZS5GaW5kQ2xvdWRsZXRSZXBseS5UYWdzRW50cnkaKwoJVGFnc0VudHJ5EgsK", + "A2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiQQoKRmluZFN0YXR1cxIQ", + "CgxGSU5EX1VOS05PV04QABIOCgpGSU5EX0ZPVU5EEAESEQoNRklORF9OT1RG", + "T1VORBACIloKEFFvc1Nlc3Npb25SZXN1bHQSFQoRUU9TX05PVF9BVFRFTVBU", + "RUQQABIXChNRT1NfU0VTU0lPTl9DUkVBVEVEEAESFgoSUU9TX1NFU1NJT05f", + "RkFJTEVEEAIi2AQKH1Fvc1ByaW9yaXR5U2Vzc2lvbkNyZWF0ZVJlcXVlc3QS", + "CwoDdmVyGAEgASgNEhYKDnNlc3Npb25fY29va2llGAIgASgJEhgKEHNlc3Np", + "b25fZHVyYXRpb24YAyABKA0SGQoRaXBfdXNlcl9lcXVpcG1lbnQYBCABKAkS", + "HQoVaXBfYXBwbGljYXRpb25fc2VydmVyGAUgASgJEhsKE3BvcnRfdXNlcl9l", + "cXVpcG1lbnQYBiABKAkSHwoXcG9ydF9hcHBsaWNhdGlvbl9zZXJ2ZXIYByAB", + "KAkSQQoLcHJvdG9jb2xfaW4YCCABKA4yLC5kaXN0cmlidXRlZF9tYXRjaF9l", + "bmdpbmUuUW9zU2Vzc2lvblByb3RvY29sEkIKDHByb3RvY29sX291dBgJIAEo", + "DjIsLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5Rb3NTZXNzaW9uUHJvdG9j", + "b2wSPAoHcHJvZmlsZRgKIAEoDjIrLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2lu", + "ZS5Rb3NTZXNzaW9uUHJvZmlsZRIYChBub3RpZmljYXRpb25fdXJpGAsgASgJ", + "Eh8KF25vdGlmaWNhdGlvbl9hdXRoX3Rva2VuGAwgASgJElEKBHRhZ3MYZCAD", + "KAsyQy5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuUW9zUHJpb3JpdHlTZXNz", + "aW9uQ3JlYXRlUmVxdWVzdC5UYWdzRW50cnkaKwoJVGFnc0VudHJ5EgsKA2tl", + "eRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEixwIKF1Fvc1ByaW9yaXR5U2Vz", + "c2lvblJlcGx5EgsKA3ZlchgBIAEoDRIYChBzZXNzaW9uX2R1cmF0aW9uGAIg", + "ASgNEjwKB3Byb2ZpbGUYAyABKA4yKy5kaXN0cmlidXRlZF9tYXRjaF9lbmdp", + "bmUuUW9zU2Vzc2lvblByb2ZpbGUSEgoKc2Vzc2lvbl9pZBgEIAEoCRISCgpz", + "dGFydGVkX2F0GAUgASgNEhIKCmV4cGlyZXNfYXQYBiABKA0SEwoLaHR0cF9z", + "dGF0dXMYByABKA0SSQoEdGFncxhkIAMoCzI7LmRpc3RyaWJ1dGVkX21hdGNo", + "X2VuZ2luZS5Rb3NQcmlvcml0eVNlc3Npb25SZXBseS5UYWdzRW50cnkaKwoJ", + "VGFnc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEimAIK", + "H1Fvc1ByaW9yaXR5U2Vzc2lvbkRlbGV0ZVJlcXVlc3QSCwoDdmVyGAEgASgN", + "EhYKDnNlc3Npb25fY29va2llGAIgASgJEjwKB3Byb2ZpbGUYAyABKA4yKy5k", + "aXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuUW9zU2Vzc2lvblByb2ZpbGUSEgoK", + "c2Vzc2lvbl9pZBgEIAEoCRJRCgR0YWdzGGQgAygLMkMuZGlzdHJpYnV0ZWRf", + "bWF0Y2hfZW5naW5lLlFvc1ByaW9yaXR5U2Vzc2lvbkRlbGV0ZVJlcXVlc3Qu", + "VGFnc0VudHJ5GisKCVRhZ3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUY", + "AiABKAk6AjgBIsgCCh1Rb3NQcmlvcml0eVNlc3Npb25EZWxldGVSZXBseRIL", + "CgN2ZXIYASABKA0SVAoGc3RhdHVzGAIgASgOMkQuZGlzdHJpYnV0ZWRfbWF0", + "Y2hfZW5naW5lLlFvc1ByaW9yaXR5U2Vzc2lvbkRlbGV0ZVJlcGx5LkRlbGV0", + "ZVN0YXR1cxJPCgR0YWdzGGQgAygLMkEuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5n", + "aW5lLlFvc1ByaW9yaXR5U2Vzc2lvbkRlbGV0ZVJlcGx5LlRhZ3NFbnRyeRor", + "CglUYWdzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJG", + "CgxEZWxldGVTdGF0dXMSEAoMUURFTF9VTktOT1dOEAASEAoMUURFTF9ERUxF", + "VEVEEAESEgoOUURFTF9OT1RfRk9VTkQQAiKmAgoVVmVyaWZ5TG9jYXRpb25S", + "ZXF1ZXN0EgsKA3ZlchgBIAEoDRIWCg5zZXNzaW9uX2Nvb2tpZRgCIAEoCRIU", + "CgxjYXJyaWVyX25hbWUYAyABKAkSMwoMZ3BzX2xvY2F0aW9uGAQgASgLMh0u", + "ZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkxvYxIYChB2ZXJpZnlfbG9jX3Rv", + "a2VuGAUgASgJEkcKBHRhZ3MYZCADKAsyOS5kaXN0cmlidXRlZF9tYXRjaF9l", + "bmdpbmUuVmVyaWZ5TG9jYXRpb25SZXF1ZXN0LlRhZ3NFbnRyeRorCglUYWdz", + "RW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUoECAYQB1IH", + "Y2VsbF9pZCK7BQoTVmVyaWZ5TG9jYXRpb25SZXBseRILCgN2ZXIYASABKA0S", + "TwoMdG93ZXJfc3RhdHVzGAIgASgOMjkuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5n", + "aW5lLlZlcmlmeUxvY2F0aW9uUmVwbHkuVG93ZXJTdGF0dXMSXAoTZ3BzX2xv", + "Y2F0aW9uX3N0YXR1cxgDIAEoDjI/LmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2lu", + "ZS5WZXJpZnlMb2NhdGlvblJlcGx5LkdQU0xvY2F0aW9uU3RhdHVzEiAKGGdw", + "c19sb2NhdGlvbl9hY2N1cmFjeV9rbRgEIAEoARJFCgR0YWdzGGQgAygLMjcu", + "ZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLlZlcmlmeUxvY2F0aW9uUmVwbHku", + "VGFnc0VudHJ5GisKCVRhZ3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUY", + "AiABKAk6AjgBImgKC1Rvd2VyU3RhdHVzEhEKDVRPV0VSX1VOS05PV04QABIg", + "ChxDT05ORUNURURfVE9fU1BFQ0lGSUVEX1RPV0VSEAESJAogTk9UX0NPTk5F", + "Q1RFRF9UT19TUEVDSUZJRURfVE9XRVIQAiLnAQoRR1BTTG9jYXRpb25TdGF0", + "dXMSDwoLTE9DX1VOS05PV04QABIQCgxMT0NfVkVSSUZJRUQQARIdChlMT0Nf", + "TUlTTUFUQ0hfU0FNRV9DT1VOVFJZEAISHgoaTE9DX01JU01BVENIX09USEVS", + "X0NPVU5UUlkQAxIdChlMT0NfUk9BTUlOR19DT1VOVFJZX01BVENIEAQSIAoc", + "TE9DX1JPQU1JTkdfQ09VTlRSWV9NSVNNQVRDSBAFEhoKFkxPQ19FUlJPUl9V", + "TkFVVEhPUklaRUQQBhITCg9MT0NfRVJST1JfT1RIRVIQByLRAQoSR2V0TG9j", + "YXRpb25SZXF1ZXN0EgsKA3ZlchgBIAEoDRIWCg5zZXNzaW9uX2Nvb2tpZRgC", + "IAEoCRIUCgxjYXJyaWVyX25hbWUYAyABKAkSRAoEdGFncxhkIAMoCzI2LmRp", + "c3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5HZXRMb2NhdGlvblJlcXVlc3QuVGFn", + "c0VudHJ5GisKCVRhZ3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiAB", + "KAk6AjgBSgQIBBAFUgdjZWxsX2lkIvECChBHZXRMb2NhdGlvblJlcGx5EgsK", + "A3ZlchgBIAEoDRJECgZzdGF0dXMYAiABKA4yNC5kaXN0cmlidXRlZF9tYXRj", + "aF9lbmdpbmUuR2V0TG9jYXRpb25SZXBseS5Mb2NTdGF0dXMSFAoMY2Fycmll", + "cl9uYW1lGAMgASgJEg0KBXRvd2VyGAQgASgEEjcKEG5ldHdvcmtfbG9jYXRp", + "b24YBSABKAsyHS5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuTG9jEkIKBHRh", + "Z3MYZCADKAsyNC5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuR2V0TG9jYXRp", + "b25SZXBseS5UYWdzRW50cnkaKwoJVGFnc0VudHJ5EgsKA2tleRgBIAEoCRIN", + "CgV2YWx1ZRgCIAEoCToCOAEiOwoJTG9jU3RhdHVzEg8KC0xPQ19VTktOT1dO", + "EAASDQoJTE9DX0ZPVU5EEAESDgoKTE9DX0RFTklFRBACIpUCChJBcHBJbnN0", + "TGlzdFJlcXVlc3QSCwoDdmVyGAEgASgNEhYKDnNlc3Npb25fY29va2llGAIg", + "ASgJEhQKDGNhcnJpZXJfbmFtZRgDIAEoCRIzCgxncHNfbG9jYXRpb24YBCAB", + "KAsyHS5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuTG9jEg0KBWxpbWl0GAYg", + "ASgNEkQKBHRhZ3MYZCADKAsyNi5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUu", + "QXBwSW5zdExpc3RSZXF1ZXN0LlRhZ3NFbnRyeRorCglUYWdzRW50cnkSCwoD", + "a2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUoECAUQBlIHY2VsbF9pZCKf", + "AQoLQXBwaW5zdGFuY2USEAoIYXBwX25hbWUYASABKAkSEAoIYXBwX3ZlcnMY", + "AiABKAkSDAoEZnFkbhgDIAEoCRIwCgVwb3J0cxgEIAMoCzIhLmRpc3RyaWJ1", + "dGVkX21hdGNoX2VuZ2luZS5BcHBQb3J0EhAKCG9yZ19uYW1lGAUgASgJEhoK", + "EmVkZ2VfZXZlbnRzX2Nvb2tpZRgGIAEoCSLDAQoQQ2xvdWRsZXRMb2NhdGlv", + "bhIUCgxjYXJyaWVyX25hbWUYASABKAkSFQoNY2xvdWRsZXRfbmFtZRgCIAEo", + "CRIzCgxncHNfbG9jYXRpb24YAyABKAsyHS5kaXN0cmlidXRlZF9tYXRjaF9l", + "bmdpbmUuTG9jEhAKCGRpc3RhbmNlGAQgASgBEjsKDGFwcGluc3RhbmNlcxgF", + "IAMoCzIlLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5BcHBpbnN0YW5jZSLP", + "AgoQQXBwSW5zdExpc3RSZXBseRILCgN2ZXIYASABKA0SQwoGc3RhdHVzGAIg", + "ASgOMjMuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkFwcEluc3RMaXN0UmVw", + "bHkuQUlTdGF0dXMSPQoJY2xvdWRsZXRzGAMgAygLMiouZGlzdHJpYnV0ZWRf", + "bWF0Y2hfZW5naW5lLkNsb3VkbGV0TG9jYXRpb24SQgoEdGFncxhkIAMoCzI0", + "LmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5BcHBJbnN0TGlzdFJlcGx5LlRh", + "Z3NFbnRyeRorCglUYWdzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIg", + "ASgJOgI4ASI5CghBSVN0YXR1cxIQCgxBSV9VTkRFRklORUQQABIOCgpBSV9T", + "VUNDRVNTEAESCwoHQUlfRkFJTBACIrUBCg9GcWRuTGlzdFJlcXVlc3QSCwoD", + "dmVyGAEgASgNEhYKDnNlc3Npb25fY29va2llGAIgASgJEkEKBHRhZ3MYZCAD", + "KAsyMy5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuRnFkbkxpc3RSZXF1ZXN0", + "LlRhZ3NFbnRyeRorCglUYWdzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVl", + "GAIgASgJOgI4AUoECAMQBFIHY2VsbF9pZCJsCgdBcHBGcWRuEhAKCGFwcF9u", + "YW1lGAEgASgJEhAKCGFwcF92ZXJzGAIgASgJEhAKCG9yZ19uYW1lGAMgASgJ", + "Eg0KBWZxZG5zGAQgAygJEhwKFGFuZHJvaWRfcGFja2FnZV9uYW1lGAUgASgJ", + "Ir0CCg1GcWRuTGlzdFJlcGx5EgsKA3ZlchgBIAEoDRI0CglhcHBfZnFkbnMY", + "AyADKAsyIS5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuQXBwRnFkbhJACgZz", + "dGF0dXMYBCABKA4yMC5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuRnFkbkxp", + "c3RSZXBseS5GTFN0YXR1cxI/CgR0YWdzGGQgAygLMjEuZGlzdHJpYnV0ZWRf", + "bWF0Y2hfZW5naW5lLkZxZG5MaXN0UmVwbHkuVGFnc0VudHJ5GisKCVRhZ3NF", + "bnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIjkKCEZMU3Rh", + "dHVzEhAKDEZMX1VOREVGSU5FRBAAEg4KCkZMX1NVQ0NFU1MQARILCgdGTF9G", + "QUlMEAIi6QEKFkFwcE9mZmljaWFsRnFkblJlcXVlc3QSCwoDdmVyGAEgASgN", + "EhYKDnNlc3Npb25fY29va2llGAIgASgJEjMKDGdwc19sb2NhdGlvbhgDIAEo", + "CzIdLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5Mb2MSSAoEdGFncxhkIAMo", + "CzI6LmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5BcHBPZmZpY2lhbEZxZG5S", + "ZXF1ZXN0LlRhZ3NFbnRyeRorCglUYWdzRW50cnkSCwoDa2V5GAEgASgJEg0K", + "BXZhbHVlGAIgASgJOgI4ASKEAwoUQXBwT2ZmaWNpYWxGcWRuUmVwbHkSCwoD", + "dmVyGAEgASgNEhkKEWFwcF9vZmZpY2lhbF9mcWRuGAIgASgJEhQKDGNsaWVu", + "dF90b2tlbhgDIAEoCRJICgZzdGF0dXMYBCABKA4yOC5kaXN0cmlidXRlZF9t", + "YXRjaF9lbmdpbmUuQXBwT2ZmaWNpYWxGcWRuUmVwbHkuQU9GU3RhdHVzEjAK", + "BXBvcnRzGAUgAygLMiEuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkFwcFBv", + "cnQSRgoEdGFncxhkIAMoCzI4LmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5B", + "cHBPZmZpY2lhbEZxZG5SZXBseS5UYWdzRW50cnkaKwoJVGFnc0VudHJ5EgsK", + "A2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiPQoJQU9GU3RhdHVzEhEK", + "DUFPRl9VTkRFRklORUQQABIPCgtBT0ZfU1VDQ0VTUxABEgwKCEFPRl9GQUlM", + "EAIi9gIKFkR5bmFtaWNMb2NHcm91cFJlcXVlc3QSCwoDdmVyGAEgASgNEhYK", + "DnNlc3Npb25fY29va2llGAIgASgJEg0KBWxnX2lkGAMgASgEEk8KCWNvbW1f", + "dHlwZRgLIAEoDjI8LmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5EeW5hbWlj", + "TG9jR3JvdXBSZXF1ZXN0LkRsZ0NvbW1UeXBlEhEKCXVzZXJfZGF0YRgMIAEo", + "CRJICgR0YWdzGGQgAygLMjouZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkR5", + "bmFtaWNMb2NHcm91cFJlcXVlc3QuVGFnc0VudHJ5GisKCVRhZ3NFbnRyeRIL", + "CgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIj4KC0RsZ0NvbW1UeXBl", + "EhEKDURMR19VTkRFRklORUQQABIOCgpETEdfU0VDVVJFEAESDAoIRExHX09Q", + "RU4QAkoECA0QDlIHY2VsbF9pZCL5AQoURHluYW1pY0xvY0dyb3VwUmVwbHkS", + "CwoDdmVyGAEgASgNEjUKBnN0YXR1cxgCIAEoDjIlLmRpc3RyaWJ1dGVkX21h", + "dGNoX2VuZ2luZS5SZXBseVN0YXR1cxISCgplcnJvcl9jb2RlGAMgASgNEhQK", + "DGdyb3VwX2Nvb2tpZRgFIAEoCRJGCgR0YWdzGGQgAygLMjguZGlzdHJpYnV0", + "ZWRfbWF0Y2hfZW5naW5lLkR5bmFtaWNMb2NHcm91cFJlcGx5LlRhZ3NFbnRy", + "eRorCglUYWdzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4", + "ASJWCgtRb3NQb3NpdGlvbhISCgpwb3NpdGlvbmlkGAEgASgDEjMKDGdwc19s", + "b2NhdGlvbhgCIAEoCzIdLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5Mb2Mi", + "TwoNQmFuZFNlbGVjdGlvbhIOCgZyYXRfMmcYASADKAkSDgoGcmF0XzNnGAIg", + "AygJEg4KBnJhdF80ZxgDIAMoCRIOCgZyYXRfNWcYBCADKAkizAIKElFvc1Bv", + "c2l0aW9uUmVxdWVzdBILCgN2ZXIYASABKA0SFgoOc2Vzc2lvbl9jb29raWUY", + "AiABKAkSOAoJcG9zaXRpb25zGAMgAygLMiUuZGlzdHJpYnV0ZWRfbWF0Y2hf", + "ZW5naW5lLlFvc1Bvc2l0aW9uEhQKDGx0ZV9jYXRlZ29yeRgEIAEoBRI/Cg5i", + "YW5kX3NlbGVjdGlvbhgFIAEoCzInLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2lu", + "ZS5CYW5kU2VsZWN0aW9uEkQKBHRhZ3MYZCADKAsyNi5kaXN0cmlidXRlZF9t", + "YXRjaF9lbmdpbmUuUW9zUG9zaXRpb25SZXF1ZXN0LlRhZ3NFbnRyeRorCglU", + "YWdzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUoECAYQ", + "B1IHY2VsbF9pZCLSAgoUUW9zUG9zaXRpb25LcGlSZXN1bHQSEgoKcG9zaXRp", + "b25pZBgBIAEoAxIzCgxncHNfbG9jYXRpb24YAiABKAsyHS5kaXN0cmlidXRl", + "ZF9tYXRjaF9lbmdpbmUuTG9jEhwKFGRsdXNlcnRocm91Z2hwdXRfbWluGAMg", + "ASgCEhwKFGRsdXNlcnRocm91Z2hwdXRfYXZnGAQgASgCEhwKFGRsdXNlcnRo", + "cm91Z2hwdXRfbWF4GAUgASgCEhwKFHVsdXNlcnRocm91Z2hwdXRfbWluGAYg", + "ASgCEhwKFHVsdXNlcnRocm91Z2hwdXRfYXZnGAcgASgCEhwKFHVsdXNlcnRo", + "cm91Z2hwdXRfbWF4GAggASgCEhMKC2xhdGVuY3lfbWluGAkgASgCEhMKC2xh", + "dGVuY3lfYXZnGAogASgCEhMKC2xhdGVuY3lfbWF4GAsgASgCIpcCChNRb3NQ", + "b3NpdGlvbktwaVJlcGx5EgsKA3ZlchgBIAEoDRI1CgZzdGF0dXMYAiABKA4y", + "JS5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuUmVwbHlTdGF0dXMSSAoQcG9z", + "aXRpb25fcmVzdWx0cxgDIAMoCzIuLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2lu", + "ZS5Rb3NQb3NpdGlvbktwaVJlc3VsdBJFCgR0YWdzGGQgAygLMjcuZGlzdHJp", + "YnV0ZWRfbWF0Y2hfZW5naW5lLlFvc1Bvc2l0aW9uS3BpUmVwbHkuVGFnc0Vu", "dHJ5GisKCVRhZ3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6", - "AjgBSgQIBhAHUgdjZWxsX2lkIrsFChNWZXJpZnlMb2NhdGlvblJlcGx5EgsK", - "A3ZlchgBIAEoDRJPCgx0b3dlcl9zdGF0dXMYAiABKA4yOS5kaXN0cmlidXRl", - "ZF9tYXRjaF9lbmdpbmUuVmVyaWZ5TG9jYXRpb25SZXBseS5Ub3dlclN0YXR1", - "cxJcChNncHNfbG9jYXRpb25fc3RhdHVzGAMgASgOMj8uZGlzdHJpYnV0ZWRf", - "bWF0Y2hfZW5naW5lLlZlcmlmeUxvY2F0aW9uUmVwbHkuR1BTTG9jYXRpb25T", - "dGF0dXMSIAoYZ3BzX2xvY2F0aW9uX2FjY3VyYWN5X2ttGAQgASgBEkUKBHRh", - "Z3MYZCADKAsyNy5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuVmVyaWZ5TG9j", - "YXRpb25SZXBseS5UYWdzRW50cnkaKwoJVGFnc0VudHJ5EgsKA2tleRgBIAEo", - "CRINCgV2YWx1ZRgCIAEoCToCOAEiaAoLVG93ZXJTdGF0dXMSEQoNVE9XRVJf", - "VU5LTk9XThAAEiAKHENPTk5FQ1RFRF9UT19TUEVDSUZJRURfVE9XRVIQARIk", - "CiBOT1RfQ09OTkVDVEVEX1RPX1NQRUNJRklFRF9UT1dFUhACIucBChFHUFNM", - "b2NhdGlvblN0YXR1cxIPCgtMT0NfVU5LTk9XThAAEhAKDExPQ19WRVJJRklF", - "RBABEh0KGUxPQ19NSVNNQVRDSF9TQU1FX0NPVU5UUlkQAhIeChpMT0NfTUlT", - "TUFUQ0hfT1RIRVJfQ09VTlRSWRADEh0KGUxPQ19ST0FNSU5HX0NPVU5UUllf", - "TUFUQ0gQBBIgChxMT0NfUk9BTUlOR19DT1VOVFJZX01JU01BVENIEAUSGgoW", - "TE9DX0VSUk9SX1VOQVVUSE9SSVpFRBAGEhMKD0xPQ19FUlJPUl9PVEhFUhAH", - "ItEBChJHZXRMb2NhdGlvblJlcXVlc3QSCwoDdmVyGAEgASgNEhYKDnNlc3Np", - "b25fY29va2llGAIgASgJEhQKDGNhcnJpZXJfbmFtZRgDIAEoCRJECgR0YWdz", - "GGQgAygLMjYuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkdldExvY2F0aW9u", - "UmVxdWVzdC5UYWdzRW50cnkaKwoJVGFnc0VudHJ5EgsKA2tleRgBIAEoCRIN", - "CgV2YWx1ZRgCIAEoCToCOAFKBAgEEAVSB2NlbGxfaWQi8QIKEEdldExvY2F0", - "aW9uUmVwbHkSCwoDdmVyGAEgASgNEkQKBnN0YXR1cxgCIAEoDjI0LmRpc3Ry", - "aWJ1dGVkX21hdGNoX2VuZ2luZS5HZXRMb2NhdGlvblJlcGx5LkxvY1N0YXR1", - "cxIUCgxjYXJyaWVyX25hbWUYAyABKAkSDQoFdG93ZXIYBCABKAQSNwoQbmV0", - "d29ya19sb2NhdGlvbhgFIAEoCzIdLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2lu", - "ZS5Mb2MSQgoEdGFncxhkIAMoCzI0LmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2lu", - "ZS5HZXRMb2NhdGlvblJlcGx5LlRhZ3NFbnRyeRorCglUYWdzRW50cnkSCwoD", - "a2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASI7CglMb2NTdGF0dXMSDwoL", - "TE9DX1VOS05PV04QABINCglMT0NfRk9VTkQQARIOCgpMT0NfREVOSUVEEAIi", - "lQIKEkFwcEluc3RMaXN0UmVxdWVzdBILCgN2ZXIYASABKA0SFgoOc2Vzc2lv", - "bl9jb29raWUYAiABKAkSFAoMY2Fycmllcl9uYW1lGAMgASgJEjMKDGdwc19s", - "b2NhdGlvbhgEIAEoCzIdLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5Mb2MS", - "DQoFbGltaXQYBiABKA0SRAoEdGFncxhkIAMoCzI2LmRpc3RyaWJ1dGVkX21h", - "dGNoX2VuZ2luZS5BcHBJbnN0TGlzdFJlcXVlc3QuVGFnc0VudHJ5GisKCVRh", - "Z3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBSgQIBRAG", - "UgdjZWxsX2lkIp8BCgtBcHBpbnN0YW5jZRIQCghhcHBfbmFtZRgBIAEoCRIQ", - "CghhcHBfdmVycxgCIAEoCRIMCgRmcWRuGAMgASgJEjAKBXBvcnRzGAQgAygL", - "MiEuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkFwcFBvcnQSEAoIb3JnX25h", - "bWUYBSABKAkSGgoSZWRnZV9ldmVudHNfY29va2llGAYgASgJIsMBChBDbG91", - "ZGxldExvY2F0aW9uEhQKDGNhcnJpZXJfbmFtZRgBIAEoCRIVCg1jbG91ZGxl", - "dF9uYW1lGAIgASgJEjMKDGdwc19sb2NhdGlvbhgDIAEoCzIdLmRpc3RyaWJ1", - "dGVkX21hdGNoX2VuZ2luZS5Mb2MSEAoIZGlzdGFuY2UYBCABKAESOwoMYXBw", - "aW5zdGFuY2VzGAUgAygLMiUuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkFw", - "cGluc3RhbmNlIs8CChBBcHBJbnN0TGlzdFJlcGx5EgsKA3ZlchgBIAEoDRJD", - "CgZzdGF0dXMYAiABKA4yMy5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuQXBw", - "SW5zdExpc3RSZXBseS5BSVN0YXR1cxI9CgljbG91ZGxldHMYAyADKAsyKi5k", - "aXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuQ2xvdWRsZXRMb2NhdGlvbhJCCgR0", - "YWdzGGQgAygLMjQuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkFwcEluc3RM", - "aXN0UmVwbHkuVGFnc0VudHJ5GisKCVRhZ3NFbnRyeRILCgNrZXkYASABKAkS", - "DQoFdmFsdWUYAiABKAk6AjgBIjkKCEFJU3RhdHVzEhAKDEFJX1VOREVGSU5F", - "RBAAEg4KCkFJX1NVQ0NFU1MQARILCgdBSV9GQUlMEAIitQEKD0ZxZG5MaXN0", - "UmVxdWVzdBILCgN2ZXIYASABKA0SFgoOc2Vzc2lvbl9jb29raWUYAiABKAkS", - "QQoEdGFncxhkIAMoCzIzLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5GcWRu", - "TGlzdFJlcXVlc3QuVGFnc0VudHJ5GisKCVRhZ3NFbnRyeRILCgNrZXkYASAB", - "KAkSDQoFdmFsdWUYAiABKAk6AjgBSgQIAxAEUgdjZWxsX2lkImwKB0FwcEZx", - "ZG4SEAoIYXBwX25hbWUYASABKAkSEAoIYXBwX3ZlcnMYAiABKAkSEAoIb3Jn", - "X25hbWUYAyABKAkSDQoFZnFkbnMYBCADKAkSHAoUYW5kcm9pZF9wYWNrYWdl", - "X25hbWUYBSABKAkivQIKDUZxZG5MaXN0UmVwbHkSCwoDdmVyGAEgASgNEjQK", - "CWFwcF9mcWRucxgDIAMoCzIhLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5B", - "cHBGcWRuEkAKBnN0YXR1cxgEIAEoDjIwLmRpc3RyaWJ1dGVkX21hdGNoX2Vu", - "Z2luZS5GcWRuTGlzdFJlcGx5LkZMU3RhdHVzEj8KBHRhZ3MYZCADKAsyMS5k", - "aXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuRnFkbkxpc3RSZXBseS5UYWdzRW50", - "cnkaKwoJVGFnc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToC", - "OAEiOQoIRkxTdGF0dXMSEAoMRkxfVU5ERUZJTkVEEAASDgoKRkxfU1VDQ0VT", - "UxABEgsKB0ZMX0ZBSUwQAiLpAQoWQXBwT2ZmaWNpYWxGcWRuUmVxdWVzdBIL", - "CgN2ZXIYASABKA0SFgoOc2Vzc2lvbl9jb29raWUYAiABKAkSMwoMZ3BzX2xv", - "Y2F0aW9uGAMgASgLMh0uZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkxvYxJI", - "CgR0YWdzGGQgAygLMjouZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkFwcE9m", - "ZmljaWFsRnFkblJlcXVlc3QuVGFnc0VudHJ5GisKCVRhZ3NFbnRyeRILCgNr", - "ZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIoQDChRBcHBPZmZpY2lhbEZx", - "ZG5SZXBseRILCgN2ZXIYASABKA0SGQoRYXBwX29mZmljaWFsX2ZxZG4YAiAB", - "KAkSFAoMY2xpZW50X3Rva2VuGAMgASgJEkgKBnN0YXR1cxgEIAEoDjI4LmRp", - "c3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5BcHBPZmZpY2lhbEZxZG5SZXBseS5B", - "T0ZTdGF0dXMSMAoFcG9ydHMYBSADKAsyIS5kaXN0cmlidXRlZF9tYXRjaF9l", - "bmdpbmUuQXBwUG9ydBJGCgR0YWdzGGQgAygLMjguZGlzdHJpYnV0ZWRfbWF0", - "Y2hfZW5naW5lLkFwcE9mZmljaWFsRnFkblJlcGx5LlRhZ3NFbnRyeRorCglU", - "YWdzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASI9CglB", - "T0ZTdGF0dXMSEQoNQU9GX1VOREVGSU5FRBAAEg8KC0FPRl9TVUNDRVNTEAES", - "DAoIQU9GX0ZBSUwQAiL2AgoWRHluYW1pY0xvY0dyb3VwUmVxdWVzdBILCgN2", - "ZXIYASABKA0SFgoOc2Vzc2lvbl9jb29raWUYAiABKAkSDQoFbGdfaWQYAyAB", - "KAQSTwoJY29tbV90eXBlGAsgASgOMjwuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5n", - "aW5lLkR5bmFtaWNMb2NHcm91cFJlcXVlc3QuRGxnQ29tbVR5cGUSEQoJdXNl", - "cl9kYXRhGAwgASgJEkgKBHRhZ3MYZCADKAsyOi5kaXN0cmlidXRlZF9tYXRj", - "aF9lbmdpbmUuRHluYW1pY0xvY0dyb3VwUmVxdWVzdC5UYWdzRW50cnkaKwoJ", - "VGFnc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiPgoL", - "RGxnQ29tbVR5cGUSEQoNRExHX1VOREVGSU5FRBAAEg4KCkRMR19TRUNVUkUQ", - "ARIMCghETEdfT1BFThACSgQIDRAOUgdjZWxsX2lkIvkBChREeW5hbWljTG9j", - "R3JvdXBSZXBseRILCgN2ZXIYASABKA0SNQoGc3RhdHVzGAIgASgOMiUuZGlz", - "dHJpYnV0ZWRfbWF0Y2hfZW5naW5lLlJlcGx5U3RhdHVzEhIKCmVycm9yX2Nv", - "ZGUYAyABKA0SFAoMZ3JvdXBfY29va2llGAUgASgJEkYKBHRhZ3MYZCADKAsy", - "OC5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuRHluYW1pY0xvY0dyb3VwUmVw", - "bHkuVGFnc0VudHJ5GisKCVRhZ3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFs", - "dWUYAiABKAk6AjgBIlYKC1Fvc1Bvc2l0aW9uEhIKCnBvc2l0aW9uaWQYASAB", - "KAMSMwoMZ3BzX2xvY2F0aW9uGAIgASgLMh0uZGlzdHJpYnV0ZWRfbWF0Y2hf", - "ZW5naW5lLkxvYyJPCg1CYW5kU2VsZWN0aW9uEg4KBnJhdF8yZxgBIAMoCRIO", - "CgZyYXRfM2cYAiADKAkSDgoGcmF0XzRnGAMgAygJEg4KBnJhdF81ZxgEIAMo", - "CSLMAgoSUW9zUG9zaXRpb25SZXF1ZXN0EgsKA3ZlchgBIAEoDRIWCg5zZXNz", - "aW9uX2Nvb2tpZRgCIAEoCRI4Cglwb3NpdGlvbnMYAyADKAsyJS5kaXN0cmli", - "dXRlZF9tYXRjaF9lbmdpbmUuUW9zUG9zaXRpb24SFAoMbHRlX2NhdGVnb3J5", - "GAQgASgFEj8KDmJhbmRfc2VsZWN0aW9uGAUgASgLMicuZGlzdHJpYnV0ZWRf", - "bWF0Y2hfZW5naW5lLkJhbmRTZWxlY3Rpb24SRAoEdGFncxhkIAMoCzI2LmRp", - "c3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5Rb3NQb3NpdGlvblJlcXVlc3QuVGFn", + "AjgBIsQFCg9DbGllbnRFZGdlRXZlbnQSFgoOc2Vzc2lvbl9jb29raWUYASAB", + "KAkSGgoSZWRnZV9ldmVudHNfY29va2llGAIgASgJEk0KCmV2ZW50X3R5cGUY", + "AyABKA4yOS5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuQ2xpZW50RWRnZUV2", + "ZW50LkNsaWVudEV2ZW50VHlwZRIzCgxncHNfbG9jYXRpb24YBCABKAsyHS5k", + "aXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuTG9jEjEKB3NhbXBsZXMYBSADKAsy", + "IC5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuU2FtcGxlEkYKEmRldmljZV9p", + "bmZvX3N0YXRpYxgGIAEoCzIqLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5E", + "ZXZpY2VJbmZvU3RhdGljEkgKE2RldmljZV9pbmZvX2R5bmFtaWMYByABKAsy", + "Ky5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuRGV2aWNlSW5mb0R5bmFtaWMS", + "FAoMY3VzdG9tX2V2ZW50GAggASgJEkEKBHRhZ3MYZCADKAsyMy5kaXN0cmli", + "dXRlZF9tYXRjaF9lbmdpbmUuQ2xpZW50RWRnZUV2ZW50LlRhZ3NFbnRyeRor", + "CglUYWdzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASKt", + "AQoPQ2xpZW50RXZlbnRUeXBlEhEKDUVWRU5UX1VOS05PV04QABIZChVFVkVO", + "VF9JTklUX0NPTk5FQ1RJT04QARIeChpFVkVOVF9URVJNSU5BVEVfQ09OTkVD", + "VElPThACEhkKFUVWRU5UX0xBVEVOQ1lfU0FNUExFUxADEhkKFUVWRU5UX0xP", + "Q0FUSU9OX1VQREFURRAEEhYKEkVWRU5UX0NVU1RPTV9FVkVOVBAFIp8GCg9T", + "ZXJ2ZXJFZGdlRXZlbnQSTQoKZXZlbnRfdHlwZRgBIAEoDjI5LmRpc3RyaWJ1", + "dGVkX21hdGNoX2VuZ2luZS5TZXJ2ZXJFZGdlRXZlbnQuU2VydmVyRXZlbnRU", + "eXBlEj8KDmNsb3VkbGV0X3N0YXRlGAIgASgOMicuZGlzdHJpYnV0ZWRfbWF0", + "Y2hfZW5naW5lLkNsb3VkbGV0U3RhdGUSRQoRbWFpbnRlbmFuY2Vfc3RhdGUY", + "AyABKA4yKi5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuTWFpbnRlbmFuY2VT", + "dGF0ZRI7CgxoZWFsdGhfY2hlY2sYBCABKA4yJS5kaXN0cmlidXRlZF9tYXRj", + "aF9lbmdpbmUuSGVhbHRoQ2hlY2sSOAoKc3RhdGlzdGljcxgFIAEoCzIkLmRp", + "c3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5TdGF0aXN0aWNzEkEKDG5ld19jbG91", + "ZGxldBgGIAEoCzIrLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5GaW5kQ2xv", + "dWRsZXRSZXBseRIRCgllcnJvcl9tc2cYByABKAkSQQoEdGFncxhkIAMoCzIz", + "LmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5TZXJ2ZXJFZGdlRXZlbnQuVGFn", "c0VudHJ5GisKCVRhZ3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiAB", - "KAk6AjgBSgQIBhAHUgdjZWxsX2lkItICChRRb3NQb3NpdGlvbktwaVJlc3Vs", - "dBISCgpwb3NpdGlvbmlkGAEgASgDEjMKDGdwc19sb2NhdGlvbhgCIAEoCzId", - "LmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5Mb2MSHAoUZGx1c2VydGhyb3Vn", - "aHB1dF9taW4YAyABKAISHAoUZGx1c2VydGhyb3VnaHB1dF9hdmcYBCABKAIS", - "HAoUZGx1c2VydGhyb3VnaHB1dF9tYXgYBSABKAISHAoUdWx1c2VydGhyb3Vn", - "aHB1dF9taW4YBiABKAISHAoUdWx1c2VydGhyb3VnaHB1dF9hdmcYByABKAIS", - "HAoUdWx1c2VydGhyb3VnaHB1dF9tYXgYCCABKAISEwoLbGF0ZW5jeV9taW4Y", - "CSABKAISEwoLbGF0ZW5jeV9hdmcYCiABKAISEwoLbGF0ZW5jeV9tYXgYCyAB", - "KAIilwIKE1Fvc1Bvc2l0aW9uS3BpUmVwbHkSCwoDdmVyGAEgASgNEjUKBnN0", - "YXR1cxgCIAEoDjIlLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5SZXBseVN0", - "YXR1cxJIChBwb3NpdGlvbl9yZXN1bHRzGAMgAygLMi4uZGlzdHJpYnV0ZWRf", - "bWF0Y2hfZW5naW5lLlFvc1Bvc2l0aW9uS3BpUmVzdWx0EkUKBHRhZ3MYZCAD", - "KAsyNy5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuUW9zUG9zaXRpb25LcGlS", - "ZXBseS5UYWdzRW50cnkaKwoJVGFnc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2", - "YWx1ZRgCIAEoCToCOAEixAUKD0NsaWVudEVkZ2VFdmVudBIWCg5zZXNzaW9u", - "X2Nvb2tpZRgBIAEoCRIaChJlZGdlX2V2ZW50c19jb29raWUYAiABKAkSTQoK", - "ZXZlbnRfdHlwZRgDIAEoDjI5LmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5D", - "bGllbnRFZGdlRXZlbnQuQ2xpZW50RXZlbnRUeXBlEjMKDGdwc19sb2NhdGlv", - "bhgEIAEoCzIdLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5Mb2MSMQoHc2Ft", - "cGxlcxgFIAMoCzIgLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5TYW1wbGUS", - "RgoSZGV2aWNlX2luZm9fc3RhdGljGAYgASgLMiouZGlzdHJpYnV0ZWRfbWF0", - "Y2hfZW5naW5lLkRldmljZUluZm9TdGF0aWMSSAoTZGV2aWNlX2luZm9fZHlu", - "YW1pYxgHIAEoCzIrLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5EZXZpY2VJ", - "bmZvRHluYW1pYxIUCgxjdXN0b21fZXZlbnQYCCABKAkSQQoEdGFncxhkIAMo", - "CzIzLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5DbGllbnRFZGdlRXZlbnQu", - "VGFnc0VudHJ5GisKCVRhZ3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUY", - "AiABKAk6AjgBIq0BCg9DbGllbnRFdmVudFR5cGUSEQoNRVZFTlRfVU5LTk9X", - "ThAAEhkKFUVWRU5UX0lOSVRfQ09OTkVDVElPThABEh4KGkVWRU5UX1RFUk1J", - "TkFURV9DT05ORUNUSU9OEAISGQoVRVZFTlRfTEFURU5DWV9TQU1QTEVTEAMS", - "GQoVRVZFTlRfTE9DQVRJT05fVVBEQVRFEAQSFgoSRVZFTlRfQ1VTVE9NX0VW", - "RU5UEAUinwYKD1NlcnZlckVkZ2VFdmVudBJNCgpldmVudF90eXBlGAEgASgO", - "MjkuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLlNlcnZlckVkZ2VFdmVudC5T", - "ZXJ2ZXJFdmVudFR5cGUSPwoOY2xvdWRsZXRfc3RhdGUYAiABKA4yJy5kaXN0", - "cmlidXRlZF9tYXRjaF9lbmdpbmUuQ2xvdWRsZXRTdGF0ZRJFChFtYWludGVu", - "YW5jZV9zdGF0ZRgDIAEoDjIqLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5N", - "YWludGVuYW5jZVN0YXRlEjsKDGhlYWx0aF9jaGVjaxgEIAEoDjIlLmRpc3Ry", - "aWJ1dGVkX21hdGNoX2VuZ2luZS5IZWFsdGhDaGVjaxI4CgpzdGF0aXN0aWNz", - "GAUgASgLMiQuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLlN0YXRpc3RpY3MS", - "QQoMbmV3X2Nsb3VkbGV0GAYgASgLMisuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5n", - "aW5lLkZpbmRDbG91ZGxldFJlcGx5EhEKCWVycm9yX21zZxgHIAEoCRJBCgR0", - "YWdzGGQgAygLMjMuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLlNlcnZlckVk", - "Z2VFdmVudC5UYWdzRW50cnkaKwoJVGFnc0VudHJ5EgsKA2tleRgBIAEoCRIN", - "CgV2YWx1ZRgCIAEoCToCOAEi9wEKD1NlcnZlckV2ZW50VHlwZRIRCg1FVkVO", - "VF9VTktOT1dOEAASGQoVRVZFTlRfSU5JVF9DT05ORUNUSU9OEAESGQoVRVZF", - "TlRfTEFURU5DWV9SRVFVRVNUEAISGwoXRVZFTlRfTEFURU5DWV9QUk9DRVNT", - "RUQQAxIYChRFVkVOVF9DTE9VRExFVF9TVEFURRAEEh4KGkVWRU5UX0NMT1VE", - "TEVUX01BSU5URU5BTkNFEAUSGAoURVZFTlRfQVBQSU5TVF9IRUFMVEgQBhIZ", - "ChVFVkVOVF9DTE9VRExFVF9VUERBVEUQBxIPCgtFVkVOVF9FUlJPUhAIKj0K", - "B0lEVHlwZXMSEAoMSURfVU5ERUZJTkVEEAASCAoESU1FSRABEgoKBk1TSVNE", - "ThACEgoKBklQQUREUhADKjwKC1JlcGx5U3RhdHVzEhAKDFJTX1VOREVGSU5F", - "RBAAEg4KClJTX1NVQ0NFU1MQARILCgdSU19GQUlMEAIyxgwKDk1hdGNoRW5n", - "aW5lQXBpEo8BCg5SZWdpc3RlckNsaWVudBIvLmRpc3RyaWJ1dGVkX21hdGNo", - "X2VuZ2luZS5SZWdpc3RlckNsaWVudFJlcXVlc3QaLS5kaXN0cmlidXRlZF9t", - "YXRjaF9lbmdpbmUuUmVnaXN0ZXJDbGllbnRSZXBseSIdgtPkkwIXIhIvdjEv", - "cmVnaXN0ZXJjbGllbnQ6ASoShwEKDEZpbmRDbG91ZGxldBItLmRpc3RyaWJ1", - "dGVkX21hdGNoX2VuZ2luZS5GaW5kQ2xvdWRsZXRSZXF1ZXN0GisuZGlzdHJp", - "YnV0ZWRfbWF0Y2hfZW5naW5lLkZpbmRDbG91ZGxldFJlcGx5IhuC0+STAhUi", - "EC92MS9maW5kY2xvdWRsZXQ6ASoSnwEKFFBsYXRmb3JtRmluZENsb3VkbGV0", - "EjUuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLlBsYXRmb3JtRmluZENsb3Vk", - "bGV0UmVxdWVzdBorLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5GaW5kQ2xv", - "dWRsZXRSZXBseSIjgtPkkwIdIhgvdjEvcGxhdGZvcm1maW5kY2xvdWRsZXQ6", - "ASoSjwEKDlZlcmlmeUxvY2F0aW9uEi8uZGlzdHJpYnV0ZWRfbWF0Y2hfZW5n", - "aW5lLlZlcmlmeUxvY2F0aW9uUmVxdWVzdBotLmRpc3RyaWJ1dGVkX21hdGNo", - "X2VuZ2luZS5WZXJpZnlMb2NhdGlvblJlcGx5Ih2C0+STAhciEi92MS92ZXJp", - "Znlsb2NhdGlvbjoBKhKDAQoLR2V0TG9jYXRpb24SLC5kaXN0cmlidXRlZF9t", - "YXRjaF9lbmdpbmUuR2V0TG9jYXRpb25SZXF1ZXN0GiouZGlzdHJpYnV0ZWRf", - "bWF0Y2hfZW5naW5lLkdldExvY2F0aW9uUmVwbHkiGoLT5JMCFCIPL3YxL2dl", - "dGxvY2F0aW9uOgEqEpEBCg5BZGRVc2VyVG9Hcm91cBIwLmRpc3RyaWJ1dGVk", - "X21hdGNoX2VuZ2luZS5EeW5hbWljTG9jR3JvdXBSZXF1ZXN0Gi4uZGlzdHJp", - "YnV0ZWRfbWF0Y2hfZW5naW5lLkR5bmFtaWNMb2NHcm91cFJlcGx5Ih2C0+ST", - "AhciEi92MS9hZGR1c2VydG9ncm91cDoBKhKJAQoOR2V0QXBwSW5zdExpc3QS", - "LC5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuQXBwSW5zdExpc3RSZXF1ZXN0", - "GiouZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkFwcEluc3RMaXN0UmVwbHki", - "HYLT5JMCFyISL3YxL2dldGFwcGluc3RsaXN0OgEqEn0KC0dldEZxZG5MaXN0", - "EikuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkZxZG5MaXN0UmVxdWVzdBon", - "LmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5GcWRuTGlzdFJlcGx5IhqC0+ST", - "AhQiDy92MS9nZXRmcWRubGlzdDoBKhKZAQoSR2V0QXBwT2ZmaWNpYWxGcWRu", - "EjAuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkFwcE9mZmljaWFsRnFkblJl", - "cXVlc3QaLi5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuQXBwT2ZmaWNpYWxG", - "cWRuUmVwbHkiIYLT5JMCGyIWL3YxL2dldGFwcG9mZmljaWFsZnFkbjoBKhKU", - "AQoRR2V0UW9zUG9zaXRpb25LcGkSLC5kaXN0cmlidXRlZF9tYXRjaF9lbmdp", - "bmUuUW9zUG9zaXRpb25SZXF1ZXN0Gi0uZGlzdHJpYnV0ZWRfbWF0Y2hfZW5n", - "aW5lLlFvc1Bvc2l0aW9uS3BpUmVwbHkiIILT5JMCGiIVL3YxL2dldHFvc3Bv", - "c2l0aW9ua3BpOgEqMAESiwEKD1N0cmVhbUVkZ2VFdmVudBIpLmRpc3RyaWJ1", - "dGVkX21hdGNoX2VuZ2luZS5DbGllbnRFZGdlRXZlbnQaKS5kaXN0cmlidXRl", - "ZF9tYXRjaF9lbmdpbmUuU2VydmVyRWRnZUV2ZW50Ih6C0+STAhgiEy92MS9z", - "dHJlYW1lZGdlZXZlbnQ6ASooATABYgZwcm90bzM=")); + "KAk6AjgBIvcBCg9TZXJ2ZXJFdmVudFR5cGUSEQoNRVZFTlRfVU5LTk9XThAA", + "EhkKFUVWRU5UX0lOSVRfQ09OTkVDVElPThABEhkKFUVWRU5UX0xBVEVOQ1lf", + "UkVRVUVTVBACEhsKF0VWRU5UX0xBVEVOQ1lfUFJPQ0VTU0VEEAMSGAoURVZF", + "TlRfQ0xPVURMRVRfU1RBVEUQBBIeChpFVkVOVF9DTE9VRExFVF9NQUlOVEVO", + "QU5DRRAFEhgKFEVWRU5UX0FQUElOU1RfSEVBTFRIEAYSGQoVRVZFTlRfQ0xP", + "VURMRVRfVVBEQVRFEAcSDwoLRVZFTlRfRVJST1IQCCo9CgdJRFR5cGVzEhAK", + "DElEX1VOREVGSU5FRBAAEggKBElNRUkQARIKCgZNU0lTRE4QAhIKCgZJUEFE", + "RFIQAyo8CgtSZXBseVN0YXR1cxIQCgxSU19VTkRFRklORUQQABIOCgpSU19T", + "VUNDRVNTEAESCwoHUlNfRkFJTBACKo4BChFRb3NTZXNzaW9uUHJvZmlsZRIT", + "Cg9RT1NfTk9fUFJJT1JJVFkQABITCg9RT1NfTE9XX0xBVEVOQ1kQARIZChVR", + "T1NfVEhST1VHSFBVVF9ET1dOX1MQAhIZChVRT1NfVEhST1VHSFBVVF9ET1dO", + "X00QAxIZChVRT1NfVEhST1VHSFBVVF9ET1dOX0wQBCovChJRb3NTZXNzaW9u", + "UHJvdG9jb2wSBwoDVENQEAASBwoDVURQEAESBwoDQU5ZEAIytA8KDk1hdGNo", + "RW5naW5lQXBpEo8BCg5SZWdpc3RlckNsaWVudBIvLmRpc3RyaWJ1dGVkX21h", + "dGNoX2VuZ2luZS5SZWdpc3RlckNsaWVudFJlcXVlc3QaLS5kaXN0cmlidXRl", + "ZF9tYXRjaF9lbmdpbmUuUmVnaXN0ZXJDbGllbnRSZXBseSIdgtPkkwIXIhIv", + "djEvcmVnaXN0ZXJjbGllbnQ6ASoShwEKDEZpbmRDbG91ZGxldBItLmRpc3Ry", + "aWJ1dGVkX21hdGNoX2VuZ2luZS5GaW5kQ2xvdWRsZXRSZXF1ZXN0GisuZGlz", + "dHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkZpbmRDbG91ZGxldFJlcGx5IhuC0+ST", + "AhUiEC92MS9maW5kY2xvdWRsZXQ6ASoSnwEKFFBsYXRmb3JtRmluZENsb3Vk", + "bGV0EjUuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLlBsYXRmb3JtRmluZENs", + "b3VkbGV0UmVxdWVzdBorLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5GaW5k", + "Q2xvdWRsZXRSZXBseSIjgtPkkwIdIhgvdjEvcGxhdGZvcm1maW5kY2xvdWRs", + "ZXQ6ASoSsQEKGFFvc1ByaW9yaXR5U2Vzc2lvbkNyZWF0ZRI5LmRpc3RyaWJ1", + "dGVkX21hdGNoX2VuZ2luZS5Rb3NQcmlvcml0eVNlc3Npb25DcmVhdGVSZXF1", + "ZXN0GjEuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLlFvc1ByaW9yaXR5U2Vz", + "c2lvblJlcGx5IieC0+STAiEiHC92MS9xb3Nwcmlvcml0eXNlc3Npb25jcmVh", + "dGU6ASoStwEKGFFvc1ByaW9yaXR5U2Vzc2lvbkRlbGV0ZRI5LmRpc3RyaWJ1", + "dGVkX21hdGNoX2VuZ2luZS5Rb3NQcmlvcml0eVNlc3Npb25EZWxldGVSZXF1", + "ZXN0GjcuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLlFvc1ByaW9yaXR5U2Vz", + "c2lvbkRlbGV0ZVJlcGx5IieC0+STAiEiHC92MS9xb3Nwcmlvcml0eXNlc3Np", + "b25kZWxldGU6ASoSjwEKDlZlcmlmeUxvY2F0aW9uEi8uZGlzdHJpYnV0ZWRf", + "bWF0Y2hfZW5naW5lLlZlcmlmeUxvY2F0aW9uUmVxdWVzdBotLmRpc3RyaWJ1", + "dGVkX21hdGNoX2VuZ2luZS5WZXJpZnlMb2NhdGlvblJlcGx5Ih2C0+STAhci", + "Ei92MS92ZXJpZnlsb2NhdGlvbjoBKhKDAQoLR2V0TG9jYXRpb24SLC5kaXN0", + "cmlidXRlZF9tYXRjaF9lbmdpbmUuR2V0TG9jYXRpb25SZXF1ZXN0GiouZGlz", + "dHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkdldExvY2F0aW9uUmVwbHkiGoLT5JMC", + "FCIPL3YxL2dldGxvY2F0aW9uOgEqEpEBCg5BZGRVc2VyVG9Hcm91cBIwLmRp", + "c3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5EeW5hbWljTG9jR3JvdXBSZXF1ZXN0", + "Gi4uZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkR5bmFtaWNMb2NHcm91cFJl", + "cGx5Ih2C0+STAhciEi92MS9hZGR1c2VydG9ncm91cDoBKhKJAQoOR2V0QXBw", + "SW5zdExpc3QSLC5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuQXBwSW5zdExp", + "c3RSZXF1ZXN0GiouZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkFwcEluc3RM", + "aXN0UmVwbHkiHYLT5JMCFyISL3YxL2dldGFwcGluc3RsaXN0OgEqEn0KC0dl", + "dEZxZG5MaXN0EikuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkZxZG5MaXN0", + "UmVxdWVzdBonLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5GcWRuTGlzdFJl", + "cGx5IhqC0+STAhQiDy92MS9nZXRmcWRubGlzdDoBKhKZAQoSR2V0QXBwT2Zm", + "aWNpYWxGcWRuEjAuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkFwcE9mZmlj", + "aWFsRnFkblJlcXVlc3QaLi5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuQXBw", + "T2ZmaWNpYWxGcWRuUmVwbHkiIYLT5JMCGyIWL3YxL2dldGFwcG9mZmljaWFs", + "ZnFkbjoBKhKUAQoRR2V0UW9zUG9zaXRpb25LcGkSLC5kaXN0cmlidXRlZF9t", + "YXRjaF9lbmdpbmUuUW9zUG9zaXRpb25SZXF1ZXN0Gi0uZGlzdHJpYnV0ZWRf", + "bWF0Y2hfZW5naW5lLlFvc1Bvc2l0aW9uS3BpUmVwbHkiIILT5JMCGiIVL3Yx", + "L2dldHFvc3Bvc2l0aW9ua3BpOgEqMAESiwEKD1N0cmVhbUVkZ2VFdmVudBIp", + "LmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5DbGllbnRFZGdlRXZlbnQaKS5k", + "aXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuU2VydmVyRWRnZUV2ZW50Ih6C0+ST", + "AhgiEy92MS9zdHJlYW1lZGdlZXZlbnQ6ASooATABYgZwcm90bzM=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Google.Api.AnnotationsReflection.Descriptor, global::DistributedMatchEngine.LocReflection.Descriptor, global::DistributedMatchEngine.AppcommonReflection.Descriptor, }, - new pbr::GeneratedClrTypeInfo(new[] {typeof(global::DistributedMatchEngine.IDTypes), typeof(global::DistributedMatchEngine.ReplyStatus), }, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(new[] {typeof(global::DistributedMatchEngine.IDTypes), typeof(global::DistributedMatchEngine.ReplyStatus), typeof(global::DistributedMatchEngine.QosSessionProfile), typeof(global::DistributedMatchEngine.QosSessionProtocol), }, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::DistributedMatchEngine.RegisterClientRequest), global::DistributedMatchEngine.RegisterClientRequest.Parser, new[]{ "Ver", "OrgName", "AppName", "AppVers", "CarrierName", "AuthToken", "UniqueIdType", "UniqueId", "Tags" }, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), new pbr::GeneratedClrTypeInfo(typeof(global::DistributedMatchEngine.RegisterClientReply), global::DistributedMatchEngine.RegisterClientReply.Parser, new[]{ "Ver", "Status", "SessionCookie", "TokenServerUri", "UniqueIdType", "UniqueId", "Tags" }, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), new pbr::GeneratedClrTypeInfo(typeof(global::DistributedMatchEngine.FindCloudletRequest), global::DistributedMatchEngine.FindCloudletRequest.Parser, new[]{ "Ver", "SessionCookie", "CarrierName", "GpsLocation", "Tags" }, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), new pbr::GeneratedClrTypeInfo(typeof(global::DistributedMatchEngine.PlatformFindCloudletRequest), global::DistributedMatchEngine.PlatformFindCloudletRequest.Parser, new[]{ "Ver", "SessionCookie", "CarrierName", "ClientToken", "Tags" }, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), - new pbr::GeneratedClrTypeInfo(typeof(global::DistributedMatchEngine.FindCloudletReply), global::DistributedMatchEngine.FindCloudletReply.Parser, new[]{ "Ver", "Status", "Fqdn", "Ports", "CloudletLocation", "EdgeEventsCookie", "Tags" }, null, new[]{ typeof(global::DistributedMatchEngine.FindCloudletReply.Types.FindStatus) }, new pbr::GeneratedClrTypeInfo[] { null, }), + new pbr::GeneratedClrTypeInfo(typeof(global::DistributedMatchEngine.FindCloudletReply), global::DistributedMatchEngine.FindCloudletReply.Parser, new[]{ "Ver", "Status", "Fqdn", "Ports", "CloudletLocation", "EdgeEventsCookie", "QosResult", "QosErrorMsg", "Tags" }, null, new[]{ typeof(global::DistributedMatchEngine.FindCloudletReply.Types.FindStatus), typeof(global::DistributedMatchEngine.FindCloudletReply.Types.QosSessionResult) }, new pbr::GeneratedClrTypeInfo[] { null, }), + new pbr::GeneratedClrTypeInfo(typeof(global::DistributedMatchEngine.QosPrioritySessionCreateRequest), global::DistributedMatchEngine.QosPrioritySessionCreateRequest.Parser, new[]{ "Ver", "SessionCookie", "SessionDuration", "IpUserEquipment", "IpApplicationServer", "PortUserEquipment", "PortApplicationServer", "ProtocolIn", "ProtocolOut", "Profile", "NotificationUri", "NotificationAuthToken", "Tags" }, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), + new pbr::GeneratedClrTypeInfo(typeof(global::DistributedMatchEngine.QosPrioritySessionReply), global::DistributedMatchEngine.QosPrioritySessionReply.Parser, new[]{ "Ver", "SessionDuration", "Profile", "SessionId", "StartedAt", "ExpiresAt", "HttpStatus", "Tags" }, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), + new pbr::GeneratedClrTypeInfo(typeof(global::DistributedMatchEngine.QosPrioritySessionDeleteRequest), global::DistributedMatchEngine.QosPrioritySessionDeleteRequest.Parser, new[]{ "Ver", "SessionCookie", "Profile", "SessionId", "Tags" }, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), + new pbr::GeneratedClrTypeInfo(typeof(global::DistributedMatchEngine.QosPrioritySessionDeleteReply), global::DistributedMatchEngine.QosPrioritySessionDeleteReply.Parser, new[]{ "Ver", "Status", "Tags" }, null, new[]{ typeof(global::DistributedMatchEngine.QosPrioritySessionDeleteReply.Types.DeleteStatus) }, new pbr::GeneratedClrTypeInfo[] { null, }), new pbr::GeneratedClrTypeInfo(typeof(global::DistributedMatchEngine.VerifyLocationRequest), global::DistributedMatchEngine.VerifyLocationRequest.Parser, new[]{ "Ver", "SessionCookie", "CarrierName", "GpsLocation", "VerifyLocToken", "Tags" }, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), new pbr::GeneratedClrTypeInfo(typeof(global::DistributedMatchEngine.VerifyLocationReply), global::DistributedMatchEngine.VerifyLocationReply.Parser, new[]{ "Ver", "TowerStatus", "GpsLocationStatus", "GpsLocationAccuracyKm", "Tags" }, null, new[]{ typeof(global::DistributedMatchEngine.VerifyLocationReply.Types.TowerStatus), typeof(global::DistributedMatchEngine.VerifyLocationReply.Types.GPSLocationStatus) }, new pbr::GeneratedClrTypeInfo[] { null, }), new pbr::GeneratedClrTypeInfo(typeof(global::DistributedMatchEngine.GetLocationRequest), global::DistributedMatchEngine.GetLocationRequest.Parser, new[]{ "Ver", "SessionCookie", "CarrierName", "Tags" }, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), @@ -306,6 +361,36 @@ public enum ReplyStatus { [pbr::OriginalName("RS_FAIL")] RsFail = 2, } + public enum QosSessionProfile { + /// + /// Specifies that no priority session should be created + /// + [pbr::OriginalName("QOS_NO_PRIORITY")] QosNoPriority = 0, + /// + /// Corresponds to a specific set of network parameters for low latency that will be + /// negotiated with the network provider in advance + /// + [pbr::OriginalName("QOS_LOW_LATENCY")] QosLowLatency = 1, + /// + /// Downlink traffic from AppInst to client is prioritized up to 20Mbps + /// + [pbr::OriginalName("QOS_THROUGHPUT_DOWN_S")] QosThroughputDownS = 2, + /// + /// Downlink traffic from AppInst to client is prioritized up to 50Mbps + /// + [pbr::OriginalName("QOS_THROUGHPUT_DOWN_M")] QosThroughputDownM = 3, + /// + /// Downlink traffic from AppInst to client is prioritized up to 100Mbps + /// + [pbr::OriginalName("QOS_THROUGHPUT_DOWN_L")] QosThroughputDownL = 4, + } + + public enum QosSessionProtocol { + [pbr::OriginalName("TCP")] Tcp = 0, + [pbr::OriginalName("UDP")] Udp = 1, + [pbr::OriginalName("ANY")] Any = 2, + } + #endregion #region Messages @@ -1290,19 +1375,1537 @@ public void MergeFrom(pb::CodedInputStream input) { Ver = input.ReadUInt32(); break; } - case 18: { - SessionCookie = input.ReadString(); + case 18: { + SessionCookie = input.ReadString(); + break; + } + case 26: { + CarrierName = input.ReadString(); + break; + } + case 34: { + if (gpsLocation_ == null) { + GpsLocation = new global::DistributedMatchEngine.Loc(); + } + input.ReadMessage(GpsLocation); + break; + } + case 802: { + tags_.AddEntriesFrom(input, _map_tags_codec); + break; + } + } + } + } + + } + + public sealed partial class PlatformFindCloudletRequest : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PlatformFindCloudletRequest()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::DistributedMatchEngine.AppClientReflection.Descriptor.MessageTypes[3]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public PlatformFindCloudletRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public PlatformFindCloudletRequest(PlatformFindCloudletRequest other) : this() { + ver_ = other.ver_; + sessionCookie_ = other.sessionCookie_; + carrierName_ = other.carrierName_; + clientToken_ = other.clientToken_; + tags_ = other.tags_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public PlatformFindCloudletRequest Clone() { + return new PlatformFindCloudletRequest(this); + } + + /// Field number for the "ver" field. + public const int VerFieldNumber = 1; + private uint ver_; + /// + /// + /// API version + /// + /// _(hidden)_ Reserved for future use + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public uint Ver { + get { return ver_; } + set { + ver_ = value; + } + } + + /// Field number for the "session_cookie" field. + public const int SessionCookieFieldNumber = 2; + private string sessionCookie_ = ""; + /// + /// + /// Session Cookie + /// + /// Session Cookie from RegisterClientRequest + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string SessionCookie { + get { return sessionCookie_; } + set { + sessionCookie_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "carrier_name" field. + public const int CarrierNameFieldNumber = 3; + private string carrierName_ = ""; + /// + /// + /// Carrier Name + /// + /// _(optional)_ By default, all SDKs will automatically fill in this parameter with the MCC+MNC of your current provider. Only override this parameter if you need to filter for a specific carrier on the DME. The DME will filter for App instances that are associated with the specified carrier. + /// If you wish to search for any app instance on the DME regardless of carrier name, you can input “” to consider all carriers as “Any”. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string CarrierName { + get { return carrierName_; } + set { + carrierName_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "client_token" field. + public const int ClientTokenFieldNumber = 4; + private string clientToken_ = ""; + /// + /// + /// Client Token + /// + /// Token with encoded client data + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string ClientToken { + get { return clientToken_; } + set { + clientToken_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "tags" field. + public const int TagsFieldNumber = 100; + private static readonly pbc::MapField.Codec _map_tags_codec + = new pbc::MapField.Codec(pb::FieldCodec.ForString(10), pb::FieldCodec.ForString(18), 802); + private readonly pbc::MapField tags_ = new pbc::MapField(); + /// + /// + /// Tags + /// + /// _(optional)_ Vendor specific data + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::MapField Tags { + get { return tags_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as PlatformFindCloudletRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(PlatformFindCloudletRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Ver != other.Ver) return false; + if (SessionCookie != other.SessionCookie) return false; + if (CarrierName != other.CarrierName) return false; + if (ClientToken != other.ClientToken) return false; + if (!Tags.Equals(other.Tags)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (Ver != 0) hash ^= Ver.GetHashCode(); + if (SessionCookie.Length != 0) hash ^= SessionCookie.GetHashCode(); + if (CarrierName.Length != 0) hash ^= CarrierName.GetHashCode(); + if (ClientToken.Length != 0) hash ^= ClientToken.GetHashCode(); + hash ^= Tags.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (Ver != 0) { + output.WriteRawTag(8); + output.WriteUInt32(Ver); + } + if (SessionCookie.Length != 0) { + output.WriteRawTag(18); + output.WriteString(SessionCookie); + } + if (CarrierName.Length != 0) { + output.WriteRawTag(26); + output.WriteString(CarrierName); + } + if (ClientToken.Length != 0) { + output.WriteRawTag(34); + output.WriteString(ClientToken); + } + tags_.WriteTo(output, _map_tags_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (Ver != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Ver); + } + if (SessionCookie.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(SessionCookie); + } + if (CarrierName.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(CarrierName); + } + if (ClientToken.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(ClientToken); + } + size += tags_.CalculateSize(_map_tags_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(PlatformFindCloudletRequest other) { + if (other == null) { + return; + } + if (other.Ver != 0) { + Ver = other.Ver; + } + if (other.SessionCookie.Length != 0) { + SessionCookie = other.SessionCookie; + } + if (other.CarrierName.Length != 0) { + CarrierName = other.CarrierName; + } + if (other.ClientToken.Length != 0) { + ClientToken = other.ClientToken; + } + tags_.Add(other.tags_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + Ver = input.ReadUInt32(); + break; + } + case 18: { + SessionCookie = input.ReadString(); + break; + } + case 26: { + CarrierName = input.ReadString(); + break; + } + case 34: { + ClientToken = input.ReadString(); + break; + } + case 802: { + tags_.AddEntriesFrom(input, _map_tags_codec); + break; + } + } + } + } + + } + + public sealed partial class FindCloudletReply : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new FindCloudletReply()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::DistributedMatchEngine.AppClientReflection.Descriptor.MessageTypes[4]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public FindCloudletReply() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public FindCloudletReply(FindCloudletReply other) : this() { + ver_ = other.ver_; + status_ = other.status_; + fqdn_ = other.fqdn_; + ports_ = other.ports_.Clone(); + cloudletLocation_ = other.cloudletLocation_ != null ? other.cloudletLocation_.Clone() : null; + edgeEventsCookie_ = other.edgeEventsCookie_; + qosResult_ = other.qosResult_; + qosErrorMsg_ = other.qosErrorMsg_; + tags_ = other.tags_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public FindCloudletReply Clone() { + return new FindCloudletReply(this); + } + + /// Field number for the "ver" field. + public const int VerFieldNumber = 1; + private uint ver_; + /// + /// + /// API version + /// + /// _(hidden)_ Reserved for future use + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public uint Ver { + get { return ver_; } + set { + ver_ = value; + } + } + + /// Field number for the "status" field. + public const int StatusFieldNumber = 2; + private global::DistributedMatchEngine.FindCloudletReply.Types.FindStatus status_ = 0; + /// + /// Status return + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::DistributedMatchEngine.FindCloudletReply.Types.FindStatus Status { + get { return status_; } + set { + status_ = value; + } + } + + /// Field number for the "fqdn" field. + public const int FqdnFieldNumber = 3; + private string fqdn_ = ""; + /// + /// Fully Qualified Domain Name of the Closest App instance + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string Fqdn { + get { return fqdn_; } + set { + fqdn_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "ports" field. + public const int PortsFieldNumber = 4; + private static readonly pb::FieldCodec _repeated_ports_codec + = pb::FieldCodec.ForMessage(34, global::DistributedMatchEngine.AppPort.Parser); + private readonly pbc::RepeatedField ports_ = new pbc::RepeatedField(); + /// + /// List of Service Endpoints for AppInst + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField Ports { + get { return ports_; } + } + + /// Field number for the "cloudlet_location" field. + public const int CloudletLocationFieldNumber = 5; + private global::DistributedMatchEngine.Loc cloudletLocation_; + /// + /// Location of the cloudlet + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::DistributedMatchEngine.Loc CloudletLocation { + get { return cloudletLocation_; } + set { + cloudletLocation_ = value; + } + } + + /// Field number for the "edge_events_cookie" field. + public const int EdgeEventsCookieFieldNumber = 6; + private string edgeEventsCookie_ = ""; + /// + /// Session Cookie for specific EdgeEvents for specific AppInst + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string EdgeEventsCookie { + get { return edgeEventsCookie_; } + set { + edgeEventsCookie_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "qos_result" field. + public const int QosResultFieldNumber = 7; + private global::DistributedMatchEngine.FindCloudletReply.Types.QosSessionResult qosResult_ = 0; + /// + /// Result of QOS priority session creation attempt + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::DistributedMatchEngine.FindCloudletReply.Types.QosSessionResult QosResult { + get { return qosResult_; } + set { + qosResult_ = value; + } + } + + /// Field number for the "qos_error_msg" field. + public const int QosErrorMsgFieldNumber = 8; + private string qosErrorMsg_ = ""; + /// + /// Error message in case of QOS_SESSION_FAILED + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string QosErrorMsg { + get { return qosErrorMsg_; } + set { + qosErrorMsg_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "tags" field. + public const int TagsFieldNumber = 100; + private static readonly pbc::MapField.Codec _map_tags_codec + = new pbc::MapField.Codec(pb::FieldCodec.ForString(10), pb::FieldCodec.ForString(18), 802); + private readonly pbc::MapField tags_ = new pbc::MapField(); + /// + /// _(optional)_ Vendor specific data + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::MapField Tags { + get { return tags_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as FindCloudletReply); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(FindCloudletReply other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Ver != other.Ver) return false; + if (Status != other.Status) return false; + if (Fqdn != other.Fqdn) return false; + if(!ports_.Equals(other.ports_)) return false; + if (!object.Equals(CloudletLocation, other.CloudletLocation)) return false; + if (EdgeEventsCookie != other.EdgeEventsCookie) return false; + if (QosResult != other.QosResult) return false; + if (QosErrorMsg != other.QosErrorMsg) return false; + if (!Tags.Equals(other.Tags)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (Ver != 0) hash ^= Ver.GetHashCode(); + if (Status != 0) hash ^= Status.GetHashCode(); + if (Fqdn.Length != 0) hash ^= Fqdn.GetHashCode(); + hash ^= ports_.GetHashCode(); + if (cloudletLocation_ != null) hash ^= CloudletLocation.GetHashCode(); + if (EdgeEventsCookie.Length != 0) hash ^= EdgeEventsCookie.GetHashCode(); + if (QosResult != 0) hash ^= QosResult.GetHashCode(); + if (QosErrorMsg.Length != 0) hash ^= QosErrorMsg.GetHashCode(); + hash ^= Tags.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (Ver != 0) { + output.WriteRawTag(8); + output.WriteUInt32(Ver); + } + if (Status != 0) { + output.WriteRawTag(16); + output.WriteEnum((int) Status); + } + if (Fqdn.Length != 0) { + output.WriteRawTag(26); + output.WriteString(Fqdn); + } + ports_.WriteTo(output, _repeated_ports_codec); + if (cloudletLocation_ != null) { + output.WriteRawTag(42); + output.WriteMessage(CloudletLocation); + } + if (EdgeEventsCookie.Length != 0) { + output.WriteRawTag(50); + output.WriteString(EdgeEventsCookie); + } + if (QosResult != 0) { + output.WriteRawTag(56); + output.WriteEnum((int) QosResult); + } + if (QosErrorMsg.Length != 0) { + output.WriteRawTag(66); + output.WriteString(QosErrorMsg); + } + tags_.WriteTo(output, _map_tags_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (Ver != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Ver); + } + if (Status != 0) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Status); + } + if (Fqdn.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Fqdn); + } + size += ports_.CalculateSize(_repeated_ports_codec); + if (cloudletLocation_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(CloudletLocation); + } + if (EdgeEventsCookie.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(EdgeEventsCookie); + } + if (QosResult != 0) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) QosResult); + } + if (QosErrorMsg.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(QosErrorMsg); + } + size += tags_.CalculateSize(_map_tags_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(FindCloudletReply other) { + if (other == null) { + return; + } + if (other.Ver != 0) { + Ver = other.Ver; + } + if (other.Status != 0) { + Status = other.Status; + } + if (other.Fqdn.Length != 0) { + Fqdn = other.Fqdn; + } + ports_.Add(other.ports_); + if (other.cloudletLocation_ != null) { + if (cloudletLocation_ == null) { + CloudletLocation = new global::DistributedMatchEngine.Loc(); + } + CloudletLocation.MergeFrom(other.CloudletLocation); + } + if (other.EdgeEventsCookie.Length != 0) { + EdgeEventsCookie = other.EdgeEventsCookie; + } + if (other.QosResult != 0) { + QosResult = other.QosResult; + } + if (other.QosErrorMsg.Length != 0) { + QosErrorMsg = other.QosErrorMsg; + } + tags_.Add(other.tags_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + Ver = input.ReadUInt32(); + break; + } + case 16: { + Status = (global::DistributedMatchEngine.FindCloudletReply.Types.FindStatus) input.ReadEnum(); + break; + } + case 26: { + Fqdn = input.ReadString(); + break; + } + case 34: { + ports_.AddEntriesFrom(input, _repeated_ports_codec); + break; + } + case 42: { + if (cloudletLocation_ == null) { + CloudletLocation = new global::DistributedMatchEngine.Loc(); + } + input.ReadMessage(CloudletLocation); + break; + } + case 50: { + EdgeEventsCookie = input.ReadString(); + break; + } + case 56: { + QosResult = (global::DistributedMatchEngine.FindCloudletReply.Types.QosSessionResult) input.ReadEnum(); + break; + } + case 66: { + QosErrorMsg = input.ReadString(); + break; + } + case 802: { + tags_.AddEntriesFrom(input, _map_tags_codec); + break; + } + } + } + } + + #region Nested types + /// Container for nested types declared in the FindCloudletReply message type. + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static partial class Types { + public enum FindStatus { + [pbr::OriginalName("FIND_UNKNOWN")] FindUnknown = 0, + [pbr::OriginalName("FIND_FOUND")] FindFound = 1, + [pbr::OriginalName("FIND_NOTFOUND")] FindNotfound = 2, + } + + public enum QosSessionResult { + [pbr::OriginalName("QOS_NOT_ATTEMPTED")] QosNotAttempted = 0, + [pbr::OriginalName("QOS_SESSION_CREATED")] QosSessionCreated = 1, + [pbr::OriginalName("QOS_SESSION_FAILED")] QosSessionFailed = 2, + } + + } + #endregion + + } + + public sealed partial class QosPrioritySessionCreateRequest : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new QosPrioritySessionCreateRequest()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::DistributedMatchEngine.AppClientReflection.Descriptor.MessageTypes[5]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public QosPrioritySessionCreateRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public QosPrioritySessionCreateRequest(QosPrioritySessionCreateRequest other) : this() { + ver_ = other.ver_; + sessionCookie_ = other.sessionCookie_; + sessionDuration_ = other.sessionDuration_; + ipUserEquipment_ = other.ipUserEquipment_; + ipApplicationServer_ = other.ipApplicationServer_; + portUserEquipment_ = other.portUserEquipment_; + portApplicationServer_ = other.portApplicationServer_; + protocolIn_ = other.protocolIn_; + protocolOut_ = other.protocolOut_; + profile_ = other.profile_; + notificationUri_ = other.notificationUri_; + notificationAuthToken_ = other.notificationAuthToken_; + tags_ = other.tags_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public QosPrioritySessionCreateRequest Clone() { + return new QosPrioritySessionCreateRequest(this); + } + + /// Field number for the "ver" field. + public const int VerFieldNumber = 1; + private uint ver_; + /// + /// + /// API version + /// + /// _(hidden)_ Reserved for future use + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public uint Ver { + get { return ver_; } + set { + ver_ = value; + } + } + + /// Field number for the "session_cookie" field. + public const int SessionCookieFieldNumber = 2; + private string sessionCookie_ = ""; + /// + /// + /// Session Cookie from RegisterClientRequest + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string SessionCookie { + get { return sessionCookie_; } + set { + sessionCookie_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "session_duration" field. + public const int SessionDurationFieldNumber = 3; + private uint sessionDuration_; + /// + /// + /// _(optional)_ QOS Priority Session duration in seconds + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public uint SessionDuration { + get { return sessionDuration_; } + set { + sessionDuration_ = value; + } + } + + /// Field number for the "ip_user_equipment" field. + public const int IpUserEquipmentFieldNumber = 4; + private string ipUserEquipment_ = ""; + /// + /// + /// IP address of mobile device + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string IpUserEquipment { + get { return ipUserEquipment_; } + set { + ipUserEquipment_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "ip_application_server" field. + public const int IpApplicationServerFieldNumber = 5; + private string ipApplicationServer_ = ""; + /// + /// + /// IP address of the application server + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string IpApplicationServer { + get { return ipApplicationServer_; } + set { + ipApplicationServer_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "port_user_equipment" field. + public const int PortUserEquipmentFieldNumber = 6; + private string portUserEquipment_ = ""; + /// + /// + /// _(optional)_ A list of single ports or port ranges on the user equipment. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string PortUserEquipment { + get { return portUserEquipment_; } + set { + portUserEquipment_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "port_application_server" field. + public const int PortApplicationServerFieldNumber = 7; + private string portApplicationServer_ = ""; + /// + /// + /// _(optional)_ A list of single ports or port ranges on the application server + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string PortApplicationServer { + get { return portApplicationServer_; } + set { + portApplicationServer_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "protocol_in" field. + public const int ProtocolInFieldNumber = 8; + private global::DistributedMatchEngine.QosSessionProtocol protocolIn_ = 0; + /// + /// + /// _(optional)_ The used transport protocol for the uplink + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::DistributedMatchEngine.QosSessionProtocol ProtocolIn { + get { return protocolIn_; } + set { + protocolIn_ = value; + } + } + + /// Field number for the "protocol_out" field. + public const int ProtocolOutFieldNumber = 9; + private global::DistributedMatchEngine.QosSessionProtocol protocolOut_ = 0; + /// + /// + /// _(optional)_ The used transport protocol for the downlink + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::DistributedMatchEngine.QosSessionProtocol ProtocolOut { + get { return protocolOut_; } + set { + protocolOut_ = value; + } + } + + /// Field number for the "profile" field. + public const int ProfileFieldNumber = 10; + private global::DistributedMatchEngine.QosSessionProfile profile_ = 0; + /// + /// + /// QOS Priority Session profile name + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::DistributedMatchEngine.QosSessionProfile Profile { + get { return profile_; } + set { + profile_ = value; + } + } + + /// Field number for the "notification_uri" field. + public const int NotificationUriFieldNumber = 11; + private string notificationUri_ = ""; + /// + /// + /// _(optional)_ URI of the callback receiver. Allows asynchronous delivery of session related events. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string NotificationUri { + get { return notificationUri_; } + set { + notificationUri_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "notification_auth_token" field. + public const int NotificationAuthTokenFieldNumber = 12; + private string notificationAuthToken_ = ""; + /// + /// + /// _(optional)_ Authentification token for callback API + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string NotificationAuthToken { + get { return notificationAuthToken_; } + set { + notificationAuthToken_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "tags" field. + public const int TagsFieldNumber = 100; + private static readonly pbc::MapField.Codec _map_tags_codec + = new pbc::MapField.Codec(pb::FieldCodec.ForString(10), pb::FieldCodec.ForString(18), 802); + private readonly pbc::MapField tags_ = new pbc::MapField(); + /// + /// + /// _(optional)_ Vendor specific data + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::MapField Tags { + get { return tags_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as QosPrioritySessionCreateRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(QosPrioritySessionCreateRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Ver != other.Ver) return false; + if (SessionCookie != other.SessionCookie) return false; + if (SessionDuration != other.SessionDuration) return false; + if (IpUserEquipment != other.IpUserEquipment) return false; + if (IpApplicationServer != other.IpApplicationServer) return false; + if (PortUserEquipment != other.PortUserEquipment) return false; + if (PortApplicationServer != other.PortApplicationServer) return false; + if (ProtocolIn != other.ProtocolIn) return false; + if (ProtocolOut != other.ProtocolOut) return false; + if (Profile != other.Profile) return false; + if (NotificationUri != other.NotificationUri) return false; + if (NotificationAuthToken != other.NotificationAuthToken) return false; + if (!Tags.Equals(other.Tags)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (Ver != 0) hash ^= Ver.GetHashCode(); + if (SessionCookie.Length != 0) hash ^= SessionCookie.GetHashCode(); + if (SessionDuration != 0) hash ^= SessionDuration.GetHashCode(); + if (IpUserEquipment.Length != 0) hash ^= IpUserEquipment.GetHashCode(); + if (IpApplicationServer.Length != 0) hash ^= IpApplicationServer.GetHashCode(); + if (PortUserEquipment.Length != 0) hash ^= PortUserEquipment.GetHashCode(); + if (PortApplicationServer.Length != 0) hash ^= PortApplicationServer.GetHashCode(); + if (ProtocolIn != 0) hash ^= ProtocolIn.GetHashCode(); + if (ProtocolOut != 0) hash ^= ProtocolOut.GetHashCode(); + if (Profile != 0) hash ^= Profile.GetHashCode(); + if (NotificationUri.Length != 0) hash ^= NotificationUri.GetHashCode(); + if (NotificationAuthToken.Length != 0) hash ^= NotificationAuthToken.GetHashCode(); + hash ^= Tags.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (Ver != 0) { + output.WriteRawTag(8); + output.WriteUInt32(Ver); + } + if (SessionCookie.Length != 0) { + output.WriteRawTag(18); + output.WriteString(SessionCookie); + } + if (SessionDuration != 0) { + output.WriteRawTag(24); + output.WriteUInt32(SessionDuration); + } + if (IpUserEquipment.Length != 0) { + output.WriteRawTag(34); + output.WriteString(IpUserEquipment); + } + if (IpApplicationServer.Length != 0) { + output.WriteRawTag(42); + output.WriteString(IpApplicationServer); + } + if (PortUserEquipment.Length != 0) { + output.WriteRawTag(50); + output.WriteString(PortUserEquipment); + } + if (PortApplicationServer.Length != 0) { + output.WriteRawTag(58); + output.WriteString(PortApplicationServer); + } + if (ProtocolIn != 0) { + output.WriteRawTag(64); + output.WriteEnum((int) ProtocolIn); + } + if (ProtocolOut != 0) { + output.WriteRawTag(72); + output.WriteEnum((int) ProtocolOut); + } + if (Profile != 0) { + output.WriteRawTag(80); + output.WriteEnum((int) Profile); + } + if (NotificationUri.Length != 0) { + output.WriteRawTag(90); + output.WriteString(NotificationUri); + } + if (NotificationAuthToken.Length != 0) { + output.WriteRawTag(98); + output.WriteString(NotificationAuthToken); + } + tags_.WriteTo(output, _map_tags_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (Ver != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Ver); + } + if (SessionCookie.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(SessionCookie); + } + if (SessionDuration != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(SessionDuration); + } + if (IpUserEquipment.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(IpUserEquipment); + } + if (IpApplicationServer.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(IpApplicationServer); + } + if (PortUserEquipment.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(PortUserEquipment); + } + if (PortApplicationServer.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(PortApplicationServer); + } + if (ProtocolIn != 0) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ProtocolIn); + } + if (ProtocolOut != 0) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ProtocolOut); + } + if (Profile != 0) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Profile); + } + if (NotificationUri.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(NotificationUri); + } + if (NotificationAuthToken.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(NotificationAuthToken); + } + size += tags_.CalculateSize(_map_tags_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(QosPrioritySessionCreateRequest other) { + if (other == null) { + return; + } + if (other.Ver != 0) { + Ver = other.Ver; + } + if (other.SessionCookie.Length != 0) { + SessionCookie = other.SessionCookie; + } + if (other.SessionDuration != 0) { + SessionDuration = other.SessionDuration; + } + if (other.IpUserEquipment.Length != 0) { + IpUserEquipment = other.IpUserEquipment; + } + if (other.IpApplicationServer.Length != 0) { + IpApplicationServer = other.IpApplicationServer; + } + if (other.PortUserEquipment.Length != 0) { + PortUserEquipment = other.PortUserEquipment; + } + if (other.PortApplicationServer.Length != 0) { + PortApplicationServer = other.PortApplicationServer; + } + if (other.ProtocolIn != 0) { + ProtocolIn = other.ProtocolIn; + } + if (other.ProtocolOut != 0) { + ProtocolOut = other.ProtocolOut; + } + if (other.Profile != 0) { + Profile = other.Profile; + } + if (other.NotificationUri.Length != 0) { + NotificationUri = other.NotificationUri; + } + if (other.NotificationAuthToken.Length != 0) { + NotificationAuthToken = other.NotificationAuthToken; + } + tags_.Add(other.tags_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + Ver = input.ReadUInt32(); + break; + } + case 18: { + SessionCookie = input.ReadString(); + break; + } + case 24: { + SessionDuration = input.ReadUInt32(); + break; + } + case 34: { + IpUserEquipment = input.ReadString(); + break; + } + case 42: { + IpApplicationServer = input.ReadString(); + break; + } + case 50: { + PortUserEquipment = input.ReadString(); + break; + } + case 58: { + PortApplicationServer = input.ReadString(); + break; + } + case 64: { + ProtocolIn = (global::DistributedMatchEngine.QosSessionProtocol) input.ReadEnum(); + break; + } + case 72: { + ProtocolOut = (global::DistributedMatchEngine.QosSessionProtocol) input.ReadEnum(); + break; + } + case 80: { + Profile = (global::DistributedMatchEngine.QosSessionProfile) input.ReadEnum(); + break; + } + case 90: { + NotificationUri = input.ReadString(); + break; + } + case 98: { + NotificationAuthToken = input.ReadString(); + break; + } + case 802: { + tags_.AddEntriesFrom(input, _map_tags_codec); + break; + } + } + } + } + + } + + public sealed partial class QosPrioritySessionReply : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new QosPrioritySessionReply()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::DistributedMatchEngine.AppClientReflection.Descriptor.MessageTypes[6]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public QosPrioritySessionReply() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public QosPrioritySessionReply(QosPrioritySessionReply other) : this() { + ver_ = other.ver_; + sessionDuration_ = other.sessionDuration_; + profile_ = other.profile_; + sessionId_ = other.sessionId_; + startedAt_ = other.startedAt_; + expiresAt_ = other.expiresAt_; + httpStatus_ = other.httpStatus_; + tags_ = other.tags_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public QosPrioritySessionReply Clone() { + return new QosPrioritySessionReply(this); + } + + /// Field number for the "ver" field. + public const int VerFieldNumber = 1; + private uint ver_; + /// + /// + /// API version + /// + /// _(hidden)_ Reserved for future use + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public uint Ver { + get { return ver_; } + set { + ver_ = value; + } + } + + /// Field number for the "session_duration" field. + public const int SessionDurationFieldNumber = 2; + private uint sessionDuration_; + /// + /// + /// QOS Priority Session duration in seconds + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public uint SessionDuration { + get { return sessionDuration_; } + set { + sessionDuration_ = value; + } + } + + /// Field number for the "profile" field. + public const int ProfileFieldNumber = 3; + private global::DistributedMatchEngine.QosSessionProfile profile_ = 0; + /// + /// + /// QOS Priority Session profile name + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::DistributedMatchEngine.QosSessionProfile Profile { + get { return profile_; } + set { + profile_ = value; + } + } + + /// Field number for the "session_id" field. + public const int SessionIdFieldNumber = 4; + private string sessionId_ = ""; + /// + /// + /// Session ID in UUID format + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string SessionId { + get { return sessionId_; } + set { + sessionId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "started_at" field. + public const int StartedAtFieldNumber = 5; + private uint startedAt_; + /// + /// + /// Timestamp of session start in seconds since unix epoch + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public uint StartedAt { + get { return startedAt_; } + set { + startedAt_ = value; + } + } + + /// Field number for the "expires_at" field. + public const int ExpiresAtFieldNumber = 6; + private uint expiresAt_; + /// + /// + /// Timestamp of session expiration if the session was not deleted in seconds since unix epoch + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public uint ExpiresAt { + get { return expiresAt_; } + set { + expiresAt_ = value; + } + } + + /// Field number for the "http_status" field. + public const int HttpStatusFieldNumber = 7; + private uint httpStatus_; + /// + /// + /// HTTP Status Code of call to operator's API server. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public uint HttpStatus { + get { return httpStatus_; } + set { + httpStatus_ = value; + } + } + + /// Field number for the "tags" field. + public const int TagsFieldNumber = 100; + private static readonly pbc::MapField.Codec _map_tags_codec + = new pbc::MapField.Codec(pb::FieldCodec.ForString(10), pb::FieldCodec.ForString(18), 802); + private readonly pbc::MapField tags_ = new pbc::MapField(); + /// + /// + /// _(optional)_ Vendor specific data + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::MapField Tags { + get { return tags_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as QosPrioritySessionReply); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(QosPrioritySessionReply other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Ver != other.Ver) return false; + if (SessionDuration != other.SessionDuration) return false; + if (Profile != other.Profile) return false; + if (SessionId != other.SessionId) return false; + if (StartedAt != other.StartedAt) return false; + if (ExpiresAt != other.ExpiresAt) return false; + if (HttpStatus != other.HttpStatus) return false; + if (!Tags.Equals(other.Tags)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (Ver != 0) hash ^= Ver.GetHashCode(); + if (SessionDuration != 0) hash ^= SessionDuration.GetHashCode(); + if (Profile != 0) hash ^= Profile.GetHashCode(); + if (SessionId.Length != 0) hash ^= SessionId.GetHashCode(); + if (StartedAt != 0) hash ^= StartedAt.GetHashCode(); + if (ExpiresAt != 0) hash ^= ExpiresAt.GetHashCode(); + if (HttpStatus != 0) hash ^= HttpStatus.GetHashCode(); + hash ^= Tags.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (Ver != 0) { + output.WriteRawTag(8); + output.WriteUInt32(Ver); + } + if (SessionDuration != 0) { + output.WriteRawTag(16); + output.WriteUInt32(SessionDuration); + } + if (Profile != 0) { + output.WriteRawTag(24); + output.WriteEnum((int) Profile); + } + if (SessionId.Length != 0) { + output.WriteRawTag(34); + output.WriteString(SessionId); + } + if (StartedAt != 0) { + output.WriteRawTag(40); + output.WriteUInt32(StartedAt); + } + if (ExpiresAt != 0) { + output.WriteRawTag(48); + output.WriteUInt32(ExpiresAt); + } + if (HttpStatus != 0) { + output.WriteRawTag(56); + output.WriteUInt32(HttpStatus); + } + tags_.WriteTo(output, _map_tags_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (Ver != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Ver); + } + if (SessionDuration != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(SessionDuration); + } + if (Profile != 0) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Profile); + } + if (SessionId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(SessionId); + } + if (StartedAt != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(StartedAt); + } + if (ExpiresAt != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(ExpiresAt); + } + if (HttpStatus != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(HttpStatus); + } + size += tags_.CalculateSize(_map_tags_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(QosPrioritySessionReply other) { + if (other == null) { + return; + } + if (other.Ver != 0) { + Ver = other.Ver; + } + if (other.SessionDuration != 0) { + SessionDuration = other.SessionDuration; + } + if (other.Profile != 0) { + Profile = other.Profile; + } + if (other.SessionId.Length != 0) { + SessionId = other.SessionId; + } + if (other.StartedAt != 0) { + StartedAt = other.StartedAt; + } + if (other.ExpiresAt != 0) { + ExpiresAt = other.ExpiresAt; + } + if (other.HttpStatus != 0) { + HttpStatus = other.HttpStatus; + } + tags_.Add(other.tags_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + Ver = input.ReadUInt32(); + break; + } + case 16: { + SessionDuration = input.ReadUInt32(); + break; + } + case 24: { + Profile = (global::DistributedMatchEngine.QosSessionProfile) input.ReadEnum(); + break; + } + case 34: { + SessionId = input.ReadString(); break; } - case 26: { - CarrierName = input.ReadString(); + case 40: { + StartedAt = input.ReadUInt32(); break; } - case 34: { - if (gpsLocation_ == null) { - GpsLocation = new global::DistributedMatchEngine.Loc(); - } - input.ReadMessage(GpsLocation); + case 48: { + ExpiresAt = input.ReadUInt32(); + break; + } + case 56: { + HttpStatus = input.ReadUInt32(); break; } case 802: { @@ -1315,15 +2918,15 @@ public void MergeFrom(pb::CodedInputStream input) { } - public sealed partial class PlatformFindCloudletRequest : pb::IMessage { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PlatformFindCloudletRequest()); + public sealed partial class QosPrioritySessionDeleteRequest : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new QosPrioritySessionDeleteRequest()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public static pbr::MessageDescriptor Descriptor { - get { return global::DistributedMatchEngine.AppClientReflection.Descriptor.MessageTypes[3]; } + get { return global::DistributedMatchEngine.AppClientReflection.Descriptor.MessageTypes[7]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -1332,25 +2935,25 @@ public sealed partial class PlatformFindCloudletRequest : pb::IMessageField number for the "ver" field. @@ -1375,8 +2978,6 @@ public uint Ver { private string sessionCookie_ = ""; /// /// - /// Session Cookie - /// /// Session Cookie from RegisterClientRequest /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -1387,38 +2988,33 @@ public string SessionCookie { } } - /// Field number for the "carrier_name" field. - public const int CarrierNameFieldNumber = 3; - private string carrierName_ = ""; + /// Field number for the "profile" field. + public const int ProfileFieldNumber = 3; + private global::DistributedMatchEngine.QosSessionProfile profile_ = 0; /// /// - /// Carrier Name - /// - /// _(optional)_ By default, all SDKs will automatically fill in this parameter with the MCC+MNC of your current provider. Only override this parameter if you need to filter for a specific carrier on the DME. The DME will filter for App instances that are associated with the specified carrier. - /// If you wish to search for any app instance on the DME regardless of carrier name, you can input “” to consider all carriers as “Any”. + /// QOS Priority Session profile name /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public string CarrierName { - get { return carrierName_; } + public global::DistributedMatchEngine.QosSessionProfile Profile { + get { return profile_; } set { - carrierName_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + profile_ = value; } } - /// Field number for the "client_token" field. - public const int ClientTokenFieldNumber = 4; - private string clientToken_ = ""; + /// Field number for the "session_id" field. + public const int SessionIdFieldNumber = 4; + private string sessionId_ = ""; /// /// - /// Client Token - /// - /// Token with encoded client data + /// QOS Priority Session ID to be deleted /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public string ClientToken { - get { return clientToken_; } + public string SessionId { + get { return sessionId_; } set { - clientToken_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + sessionId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); } } @@ -1429,8 +3025,6 @@ public string ClientToken { private readonly pbc::MapField tags_ = new pbc::MapField(); /// /// - /// Tags - /// /// _(optional)_ Vendor specific data /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -1440,11 +3034,11 @@ public string ClientToken { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { - return Equals(other as PlatformFindCloudletRequest); + return Equals(other as QosPrioritySessionDeleteRequest); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public bool Equals(PlatformFindCloudletRequest other) { + public bool Equals(QosPrioritySessionDeleteRequest other) { if (ReferenceEquals(other, null)) { return false; } @@ -1453,8 +3047,8 @@ public bool Equals(PlatformFindCloudletRequest other) { } if (Ver != other.Ver) return false; if (SessionCookie != other.SessionCookie) return false; - if (CarrierName != other.CarrierName) return false; - if (ClientToken != other.ClientToken) return false; + if (Profile != other.Profile) return false; + if (SessionId != other.SessionId) return false; if (!Tags.Equals(other.Tags)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -1464,8 +3058,8 @@ public override int GetHashCode() { int hash = 1; if (Ver != 0) hash ^= Ver.GetHashCode(); if (SessionCookie.Length != 0) hash ^= SessionCookie.GetHashCode(); - if (CarrierName.Length != 0) hash ^= CarrierName.GetHashCode(); - if (ClientToken.Length != 0) hash ^= ClientToken.GetHashCode(); + if (Profile != 0) hash ^= Profile.GetHashCode(); + if (SessionId.Length != 0) hash ^= SessionId.GetHashCode(); hash ^= Tags.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); @@ -1488,13 +3082,13 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(18); output.WriteString(SessionCookie); } - if (CarrierName.Length != 0) { - output.WriteRawTag(26); - output.WriteString(CarrierName); + if (Profile != 0) { + output.WriteRawTag(24); + output.WriteEnum((int) Profile); } - if (ClientToken.Length != 0) { + if (SessionId.Length != 0) { output.WriteRawTag(34); - output.WriteString(ClientToken); + output.WriteString(SessionId); } tags_.WriteTo(output, _map_tags_codec); if (_unknownFields != null) { @@ -1511,11 +3105,11 @@ public int CalculateSize() { if (SessionCookie.Length != 0) { size += 1 + pb::CodedOutputStream.ComputeStringSize(SessionCookie); } - if (CarrierName.Length != 0) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(CarrierName); + if (Profile != 0) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Profile); } - if (ClientToken.Length != 0) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(ClientToken); + if (SessionId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(SessionId); } size += tags_.CalculateSize(_map_tags_codec); if (_unknownFields != null) { @@ -1525,7 +3119,7 @@ public int CalculateSize() { } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public void MergeFrom(PlatformFindCloudletRequest other) { + public void MergeFrom(QosPrioritySessionDeleteRequest other) { if (other == null) { return; } @@ -1535,11 +3129,11 @@ public void MergeFrom(PlatformFindCloudletRequest other) { if (other.SessionCookie.Length != 0) { SessionCookie = other.SessionCookie; } - if (other.CarrierName.Length != 0) { - CarrierName = other.CarrierName; + if (other.Profile != 0) { + Profile = other.Profile; } - if (other.ClientToken.Length != 0) { - ClientToken = other.ClientToken; + if (other.SessionId.Length != 0) { + SessionId = other.SessionId; } tags_.Add(other.tags_); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); @@ -1561,12 +3155,12 @@ public void MergeFrom(pb::CodedInputStream input) { SessionCookie = input.ReadString(); break; } - case 26: { - CarrierName = input.ReadString(); + case 24: { + Profile = (global::DistributedMatchEngine.QosSessionProfile) input.ReadEnum(); break; } case 34: { - ClientToken = input.ReadString(); + SessionId = input.ReadString(); break; } case 802: { @@ -1579,15 +3173,15 @@ public void MergeFrom(pb::CodedInputStream input) { } - public sealed partial class FindCloudletReply : pb::IMessage { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new FindCloudletReply()); + public sealed partial class QosPrioritySessionDeleteReply : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new QosPrioritySessionDeleteReply()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public static pbr::MessageDescriptor Descriptor { - get { return global::DistributedMatchEngine.AppClientReflection.Descriptor.MessageTypes[4]; } + get { return global::DistributedMatchEngine.AppClientReflection.Descriptor.MessageTypes[8]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -1596,27 +3190,23 @@ public sealed partial class FindCloudletReply : pb::IMessage } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public FindCloudletReply() { + public QosPrioritySessionDeleteReply() { OnConstruction(); } partial void OnConstruction(); [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public FindCloudletReply(FindCloudletReply other) : this() { + public QosPrioritySessionDeleteReply(QosPrioritySessionDeleteReply other) : this() { ver_ = other.ver_; status_ = other.status_; - fqdn_ = other.fqdn_; - ports_ = other.ports_.Clone(); - cloudletLocation_ = other.cloudletLocation_ != null ? other.cloudletLocation_.Clone() : null; - edgeEventsCookie_ = other.edgeEventsCookie_; tags_ = other.tags_.Clone(); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public FindCloudletReply Clone() { - return new FindCloudletReply(this); + public QosPrioritySessionDeleteReply Clone() { + return new QosPrioritySessionDeleteReply(this); } /// Field number for the "ver" field. @@ -1638,79 +3228,25 @@ public uint Ver { /// Field number for the "status" field. public const int StatusFieldNumber = 2; - private global::DistributedMatchEngine.FindCloudletReply.Types.FindStatus status_ = 0; + private global::DistributedMatchEngine.QosPrioritySessionDeleteReply.Types.DeleteStatus status_ = 0; /// - /// Status return + /// Status return. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public global::DistributedMatchEngine.FindCloudletReply.Types.FindStatus Status { + public global::DistributedMatchEngine.QosPrioritySessionDeleteReply.Types.DeleteStatus Status { get { return status_; } set { status_ = value; } } - /// Field number for the "fqdn" field. - public const int FqdnFieldNumber = 3; - private string fqdn_ = ""; - /// - /// Fully Qualified Domain Name of the Closest App instance - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public string Fqdn { - get { return fqdn_; } - set { - fqdn_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } - } - - /// Field number for the "ports" field. - public const int PortsFieldNumber = 4; - private static readonly pb::FieldCodec _repeated_ports_codec - = pb::FieldCodec.ForMessage(34, global::DistributedMatchEngine.AppPort.Parser); - private readonly pbc::RepeatedField ports_ = new pbc::RepeatedField(); - /// - /// List of Service Endpoints for AppInst - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public pbc::RepeatedField Ports { - get { return ports_; } - } - - /// Field number for the "cloudlet_location" field. - public const int CloudletLocationFieldNumber = 5; - private global::DistributedMatchEngine.Loc cloudletLocation_; - /// - /// Location of the cloudlet - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public global::DistributedMatchEngine.Loc CloudletLocation { - get { return cloudletLocation_; } - set { - cloudletLocation_ = value; - } - } - - /// Field number for the "edge_events_cookie" field. - public const int EdgeEventsCookieFieldNumber = 6; - private string edgeEventsCookie_ = ""; - /// - /// Session Cookie for specific EdgeEvents for specific AppInst - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public string EdgeEventsCookie { - get { return edgeEventsCookie_; } - set { - edgeEventsCookie_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } - } - /// Field number for the "tags" field. public const int TagsFieldNumber = 100; private static readonly pbc::MapField.Codec _map_tags_codec = new pbc::MapField.Codec(pb::FieldCodec.ForString(10), pb::FieldCodec.ForString(18), 802); private readonly pbc::MapField tags_ = new pbc::MapField(); /// + /// /// _(optional)_ Vendor specific data /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -1720,11 +3256,11 @@ public string EdgeEventsCookie { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { - return Equals(other as FindCloudletReply); + return Equals(other as QosPrioritySessionDeleteReply); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public bool Equals(FindCloudletReply other) { + public bool Equals(QosPrioritySessionDeleteReply other) { if (ReferenceEquals(other, null)) { return false; } @@ -1733,10 +3269,6 @@ public bool Equals(FindCloudletReply other) { } if (Ver != other.Ver) return false; if (Status != other.Status) return false; - if (Fqdn != other.Fqdn) return false; - if(!ports_.Equals(other.ports_)) return false; - if (!object.Equals(CloudletLocation, other.CloudletLocation)) return false; - if (EdgeEventsCookie != other.EdgeEventsCookie) return false; if (!Tags.Equals(other.Tags)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -1746,10 +3278,6 @@ public override int GetHashCode() { int hash = 1; if (Ver != 0) hash ^= Ver.GetHashCode(); if (Status != 0) hash ^= Status.GetHashCode(); - if (Fqdn.Length != 0) hash ^= Fqdn.GetHashCode(); - hash ^= ports_.GetHashCode(); - if (cloudletLocation_ != null) hash ^= CloudletLocation.GetHashCode(); - if (EdgeEventsCookie.Length != 0) hash ^= EdgeEventsCookie.GetHashCode(); hash ^= Tags.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); @@ -1772,19 +3300,6 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(16); output.WriteEnum((int) Status); } - if (Fqdn.Length != 0) { - output.WriteRawTag(26); - output.WriteString(Fqdn); - } - ports_.WriteTo(output, _repeated_ports_codec); - if (cloudletLocation_ != null) { - output.WriteRawTag(42); - output.WriteMessage(CloudletLocation); - } - if (EdgeEventsCookie.Length != 0) { - output.WriteRawTag(50); - output.WriteString(EdgeEventsCookie); - } tags_.WriteTo(output, _map_tags_codec); if (_unknownFields != null) { _unknownFields.WriteTo(output); @@ -1800,16 +3315,6 @@ public int CalculateSize() { if (Status != 0) { size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Status); } - if (Fqdn.Length != 0) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(Fqdn); - } - size += ports_.CalculateSize(_repeated_ports_codec); - if (cloudletLocation_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(CloudletLocation); - } - if (EdgeEventsCookie.Length != 0) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(EdgeEventsCookie); - } size += tags_.CalculateSize(_map_tags_codec); if (_unknownFields != null) { size += _unknownFields.CalculateSize(); @@ -1818,7 +3323,7 @@ public int CalculateSize() { } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public void MergeFrom(FindCloudletReply other) { + public void MergeFrom(QosPrioritySessionDeleteReply other) { if (other == null) { return; } @@ -1828,19 +3333,6 @@ public void MergeFrom(FindCloudletReply other) { if (other.Status != 0) { Status = other.Status; } - if (other.Fqdn.Length != 0) { - Fqdn = other.Fqdn; - } - ports_.Add(other.ports_); - if (other.cloudletLocation_ != null) { - if (cloudletLocation_ == null) { - CloudletLocation = new global::DistributedMatchEngine.Loc(); - } - CloudletLocation.MergeFrom(other.CloudletLocation); - } - if (other.EdgeEventsCookie.Length != 0) { - EdgeEventsCookie = other.EdgeEventsCookie; - } tags_.Add(other.tags_); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -1858,26 +3350,7 @@ public void MergeFrom(pb::CodedInputStream input) { break; } case 16: { - Status = (global::DistributedMatchEngine.FindCloudletReply.Types.FindStatus) input.ReadEnum(); - break; - } - case 26: { - Fqdn = input.ReadString(); - break; - } - case 34: { - ports_.AddEntriesFrom(input, _repeated_ports_codec); - break; - } - case 42: { - if (cloudletLocation_ == null) { - CloudletLocation = new global::DistributedMatchEngine.Loc(); - } - input.ReadMessage(CloudletLocation); - break; - } - case 50: { - EdgeEventsCookie = input.ReadString(); + Status = (global::DistributedMatchEngine.QosPrioritySessionDeleteReply.Types.DeleteStatus) input.ReadEnum(); break; } case 802: { @@ -1889,13 +3362,13 @@ public void MergeFrom(pb::CodedInputStream input) { } #region Nested types - /// Container for nested types declared in the FindCloudletReply message type. + /// Container for nested types declared in the QosPrioritySessionDeleteReply message type. [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public static partial class Types { - public enum FindStatus { - [pbr::OriginalName("FIND_UNKNOWN")] FindUnknown = 0, - [pbr::OriginalName("FIND_FOUND")] FindFound = 1, - [pbr::OriginalName("FIND_NOTFOUND")] FindNotfound = 2, + public enum DeleteStatus { + [pbr::OriginalName("QDEL_UNKNOWN")] QdelUnknown = 0, + [pbr::OriginalName("QDEL_DELETED")] QdelDeleted = 1, + [pbr::OriginalName("QDEL_NOT_FOUND")] QdelNotFound = 2, } } @@ -1911,7 +3384,7 @@ public sealed partial class VerifyLocationRequest : pb::IMessage { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public static pbr::MessageDescriptor Descriptor { - get { return global::DistributedMatchEngine.AppClientReflection.Descriptor.MessageTypes[8]; } + get { return global::DistributedMatchEngine.AppClientReflection.Descriptor.MessageTypes[12]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -3012,7 +4485,7 @@ public sealed partial class AppInstListRequest : pb::IMessage { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public static pbr::MessageDescriptor Descriptor { - get { return global::DistributedMatchEngine.AppClientReflection.Descriptor.MessageTypes[10]; } + get { return global::DistributedMatchEngine.AppClientReflection.Descriptor.MessageTypes[14]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -3583,7 +5056,7 @@ public sealed partial class CloudletLocation : pb::IMessage { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public static pbr::MessageDescriptor Descriptor { - get { return global::DistributedMatchEngine.AppClientReflection.Descriptor.MessageTypes[11]; } + get { return global::DistributedMatchEngine.AppClientReflection.Descriptor.MessageTypes[15]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -3837,7 +5310,7 @@ public sealed partial class AppInstListReply : pb::IMessage { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public static pbr::MessageDescriptor Descriptor { - get { return global::DistributedMatchEngine.AppClientReflection.Descriptor.MessageTypes[12]; } + get { return global::DistributedMatchEngine.AppClientReflection.Descriptor.MessageTypes[16]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -4059,7 +5532,7 @@ public sealed partial class FqdnListRequest : pb::IMessage { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public static pbr::MessageDescriptor Descriptor { - get { return global::DistributedMatchEngine.AppClientReflection.Descriptor.MessageTypes[13]; } + get { return global::DistributedMatchEngine.AppClientReflection.Descriptor.MessageTypes[17]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -4248,7 +5721,7 @@ public sealed partial class AppFqdn : pb::IMessage { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public static pbr::MessageDescriptor Descriptor { - get { return global::DistributedMatchEngine.AppClientReflection.Descriptor.MessageTypes[14]; } + get { return global::DistributedMatchEngine.AppClientReflection.Descriptor.MessageTypes[18]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -4496,7 +5969,7 @@ public sealed partial class FqdnListReply : pb::IMessage { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public static pbr::MessageDescriptor Descriptor { - get { return global::DistributedMatchEngine.AppClientReflection.Descriptor.MessageTypes[15]; } + get { return global::DistributedMatchEngine.AppClientReflection.Descriptor.MessageTypes[19]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -4718,7 +6191,7 @@ public sealed partial class AppOfficialFqdnRequest : pb::IMessage { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public static pbr::MessageDescriptor Descriptor { - get { return global::DistributedMatchEngine.AppClientReflection.Descriptor.MessageTypes[20]; } + get { return global::DistributedMatchEngine.AppClientReflection.Descriptor.MessageTypes[24]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -5949,7 +7422,7 @@ public sealed partial class BandSelection : pb::IMessage { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public static pbr::MessageDescriptor Descriptor { - get { return global::DistributedMatchEngine.AppClientReflection.Descriptor.MessageTypes[21]; } + get { return global::DistributedMatchEngine.AppClientReflection.Descriptor.MessageTypes[25]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -6136,7 +7609,7 @@ public sealed partial class QosPositionRequest : pb::IMessage { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public static pbr::MessageDescriptor Descriptor { - get { return global::DistributedMatchEngine.AppClientReflection.Descriptor.MessageTypes[25]; } + get { return global::DistributedMatchEngine.AppClientReflection.Descriptor.MessageTypes[29]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -7459,7 +8932,7 @@ public sealed partial class ServerEdgeEvent : pb::IMessage { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public static pbr::MessageDescriptor Descriptor { - get { return global::DistributedMatchEngine.AppClientReflection.Descriptor.MessageTypes[26]; } + get { return global::DistributedMatchEngine.AppClientReflection.Descriptor.MessageTypes[30]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] diff --git a/grpc/MatchingEngineGrpc/Protocol/Edgeprotogen.cs b/grpc/MatchingEngineGrpc/Protocol/Edgeprotogen.cs index cad3854e..d7bd25ca 100644 --- a/grpc/MatchingEngineGrpc/Protocol/Edgeprotogen.cs +++ b/grpc/MatchingEngineGrpc/Protocol/Edgeprotogen.cs @@ -26,7 +26,9 @@ static EdgeprotogenReflection() { string.Concat( "ChJlZGdlcHJvdG9nZW4ucHJvdG8SDGVkZ2Vwcm90b2dlbhogZ29vZ2xlL3By", "b3RvYnVmL2Rlc2NyaXB0b3IucHJvdG86OQoMZW51bV9iYWNrZW5kEiEuZ29v", - "Z2xlLnByb3RvYnVmLkVudW1WYWx1ZU9wdGlvbnMY4o4DIAEoCGIGcHJvdG8z")); + "Z2xlLnByb3RvYnVmLkVudW1WYWx1ZU9wdGlvbnMY4o4DIAEoCDpGChtjdXN0", + "b21feWFtbF9qc29uX21hcnNoYWxlcnMSHy5nb29nbGUucHJvdG9idWYuTWVz", + "c2FnZU9wdGlvbnMY7I4DIAEoCGIGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { pbr::FileDescriptor.DescriptorProtoFileDescriptor, }, new pbr::GeneratedClrTypeInfo(null, null)); diff --git a/grpc/MatchingEngineGrpc/Protocol/Loc.cs b/grpc/MatchingEngineGrpc/Protocol/Loc.cs index 194f7f14..876eaf9e 100644 --- a/grpc/MatchingEngineGrpc/Protocol/Loc.cs +++ b/grpc/MatchingEngineGrpc/Protocol/Loc.cs @@ -24,23 +24,23 @@ public static partial class LocReflection { static LocReflection() { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( - "Cglsb2MucHJvdG8SGGRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZSIrCglUaW1l", - "c3RhbXASDwoHc2Vjb25kcxgBIAEoAxINCgVuYW5vcxgCIAEoBSLLAQoDTG9j", - "EhAKCGxhdGl0dWRlGAEgASgBEhEKCWxvbmdpdHVkZRgCIAEoARIbChNob3Jp", - "em9udGFsX2FjY3VyYWN5GAMgASgBEhkKEXZlcnRpY2FsX2FjY3VyYWN5GAQg", - "ASgBEhAKCGFsdGl0dWRlGAUgASgBEg4KBmNvdXJzZRgGIAEoARINCgVzcGVl", - "ZBgHIAEoARI2Cgl0aW1lc3RhbXAYCCABKAsyIy5kaXN0cmlidXRlZF9tYXRj", - "aF9lbmdpbmUuVGltZXN0YW1wIrYBCgZTYW1wbGUSDQoFdmFsdWUYASABKAES", - "NgoJdGltZXN0YW1wGAIgASgLMiMuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5l", - "LlRpbWVzdGFtcBI4CgR0YWdzGGQgAygLMiouZGlzdHJpYnV0ZWRfbWF0Y2hf", - "ZW5naW5lLlNhbXBsZS5UYWdzRW50cnkaKwoJVGFnc0VudHJ5EgsKA2tleRgB", - "IAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiowEKClN0YXRpc3RpY3MSCwoDYXZn", - "GAEgASgBEgsKA21pbhgCIAEoARILCgNtYXgYAyABKAESDwoHc3RkX2RldhgE", - "IAEoARIQCgh2YXJpYW5jZRgFIAEoARITCgtudW1fc2FtcGxlcxgGIAEoBBI2", - "Cgl0aW1lc3RhbXAYByABKAsyIy5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUu", - "VGltZXN0YW1wYgZwcm90bzM=")); + "Cglsb2MucHJvdG8SGGRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZRoSZWRnZXBy", + "b3RvZ2VuLnByb3RvIjEKCVRpbWVzdGFtcBIPCgdzZWNvbmRzGAEgASgDEg0K", + "BW5hbm9zGAIgASgFOgTg9hgBIssBCgNMb2MSEAoIbGF0aXR1ZGUYASABKAES", + "EQoJbG9uZ2l0dWRlGAIgASgBEhsKE2hvcml6b250YWxfYWNjdXJhY3kYAyAB", + "KAESGQoRdmVydGljYWxfYWNjdXJhY3kYBCABKAESEAoIYWx0aXR1ZGUYBSAB", + "KAESDgoGY291cnNlGAYgASgBEg0KBXNwZWVkGAcgASgBEjYKCXRpbWVzdGFt", + "cBgIIAEoCzIjLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5UaW1lc3RhbXAi", + "tgEKBlNhbXBsZRINCgV2YWx1ZRgBIAEoARI2Cgl0aW1lc3RhbXAYAiABKAsy", + "Iy5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuVGltZXN0YW1wEjgKBHRhZ3MY", + "ZCADKAsyKi5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuU2FtcGxlLlRhZ3NF", + "bnRyeRorCglUYWdzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJ", + "OgI4ASKjAQoKU3RhdGlzdGljcxILCgNhdmcYASABKAESCwoDbWluGAIgASgB", + "EgsKA21heBgDIAEoARIPCgdzdGRfZGV2GAQgASgBEhAKCHZhcmlhbmNlGAUg", + "ASgBEhMKC251bV9zYW1wbGVzGAYgASgEEjYKCXRpbWVzdGFtcBgHIAEoCzIj", + "LmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5UaW1lc3RhbXBiBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { }, + new pbr::FileDescriptor[] { global::Edgeprotogen.EdgeprotogenReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::DistributedMatchEngine.Timestamp), global::DistributedMatchEngine.Timestamp.Parser, new[]{ "Seconds", "Nanos" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::DistributedMatchEngine.Loc), global::DistributedMatchEngine.Loc.Parser, new[]{ "Latitude", "Longitude", "HorizontalAccuracy", "VerticalAccuracy", "Altitude", "Course", "Speed", "Timestamp" }, null, null, null), From 08e0ce2376bf02acc0d0ccd6c97b0e6ddfc17da7 Mon Sep 17 00:00:00 2001 From: Ahmed Schrute Date: Fri, 4 Feb 2022 12:39:10 -0800 Subject: [PATCH 07/25] Initial api functions --- .../api/DistributedMatchEngine.cs | 201 +++++++++++++++++- grpc/MatchingEngineGrpc/api/Util.cs | 66 ++++++ 2 files changed, 266 insertions(+), 1 deletion(-) diff --git a/grpc/MatchingEngineGrpc/api/DistributedMatchEngine.cs b/grpc/MatchingEngineGrpc/api/DistributedMatchEngine.cs index dc929a4e..d5db76d8 100644 --- a/grpc/MatchingEngineGrpc/api/DistributedMatchEngine.cs +++ b/grpc/MatchingEngineGrpc/api/DistributedMatchEngine.cs @@ -237,6 +237,7 @@ public partial class MatchingEngine : IDisposable // This is used for background App related operations like EdgeEvents processing, if set. // Default routing otherwise. public string LocalIP { get; set; } + private string qosSessionId { get; set; } // For Event Consumers public delegate void EdgeEventsDelegate(ServerEdgeEvent serverEdgeEvent); @@ -1648,7 +1649,205 @@ public AsyncServerStreamingCall GetQosPositionKpi(string ho Log.E("GetQosPositionKpi exception using DME Server: " + host + ", status: " + e.StatusCode + ", Message: " + e.Message); throw e; } - } + } + + public QosPrioritySessionCreateRequest CreateQosPrioritySessionCreateRequest( + QosSessionProfile sessionProfile, + FindCloudletReply findCloudletReply, + QosSessionProtocol protocolIn = QosSessionProtocol.Any, + QosSessionProtocol protocolOut = QosSessionProtocol.Any, + UInt32 duration = 0, + string applicationPort = "", + string serverPort = "", + string notificationUri = "", + string notificationAuthToken = "", + Dictionary tags = null, + IPEndPoint localEndPoint = null) + { + if (findCloudletReply == null || findCloudletReply.Status != FindStatus.FindFound) + { + Log.E("FindCloudletReply is malformed"); + return null; + } + if (findCloudletReply.QosResult == QosSessionResult.QosSessionCreated) + { + Log.E("There is an active QoS session, please delete the current session first."); + return null; + } + if (sessionCookie == null || sessionCookie == "") + { + Log.E("Session cookie is null, please call RegisterClient and FindCloudlet prior to calling CreateQosPrioritySessionCreateRequest"); + return null; + } + if (!Uri.IsWellFormedUriString(notificationUri, UriKind.Absolute)) + { + Log.E("notification uri is malformed"); + return null; + } + if (localEndPoint == null || localEndPoint.AddressFamily != AddressFamily.InterNetwork) + { + IPEndPoint endPoint = Util.GetDefaultLocalEndPointIPV4(); + if (endPoint == null) + { + throw new Exception("Couldn't find an IPV4 address for the supplied localEndPoint"); + } + localEndPoint = endPoint; + } + + string ipApplicationServer = Util.GetHostIPV4Address(findCloudletReply.Fqdn); + if (ipApplicationServer == null || ipApplicationServer == "") + { + Log.E("Couldn't find an ipv4 for the application server"); + return null; + } + + QosPrioritySessionCreateRequest request = new QosPrioritySessionCreateRequest + { + Ver = 1, + Profile = sessionProfile, + SessionCookie = sessionCookie, + ProtocolIn = protocolIn, + ProtocolOut = protocolOut, + SessionDuration = duration, + PortApplicationServer = serverPort, + PortUserEquipment = applicationPort, + NotificationUri = notificationUri, + NotificationAuthToken = notificationAuthToken, + IpApplicationServer = ipApplicationServer, + IpUserEquipment = localEndPoint.Address.ToString() + }; + if (tags != null) + { + foreach (var entry in tags) + { + request.Tags.Add(entry.Key, entry.Value); + } + } + return request; + } + + public async Task CreateQOSPrioritySession(QosPrioritySessionCreateRequest req) + { + return await CreateQOSPrioritySession(GenerateDmeHostAddress(), defaultDmeGrpcPort, req); + } + + public async Task CreateQOSPrioritySession(string host, uint port, QosPrioritySessionCreateRequest request) + { + Channel channel = ChannelPicker(host, port); + try + { + var client = new MatchEngineApi.MatchEngineApiClient(channel); + + var call = client.QosPrioritySessionCreateAsync( + request, + new CallOptions() + .WithDeadline(DateTime.UtcNow.AddMilliseconds(GrpcTimeout.TotalMilliseconds)) + ); + var responseTask = call.ResponseAsync.ConfigureAwait(false); + var reply = await responseTask; + + if (reply.HttpStatus == 201 || reply.HttpStatus == 200) + { + Log.D("Session created successfully"); + qosSessionId = reply.SessionId; + } + else + { + if (reply.HttpStatus == 400 || reply.HttpStatus == 405) + { + Log.E("Invalid Input for QoSCreateRequest"); + } + if (reply.HttpStatus == 401) + { + Log.E(" Unauthorized, missing or incorrect authentication."); + } + if (reply.HttpStatus == 500) + { + Log.E(" Session not created."); + } + if (reply.HttpStatus == 503) + { + Log.E("Service temporarily unavailable"); + } + Log.E("Failed to create QoSPrioritySession"); + } + return reply; + } + catch (RpcException e) + { + Log.E("Exception during CreateQOSPrioritySession. DME Server used: " + host + ", Message: " + e.Message); + throw e; + } + } + + public QosPrioritySessionDeleteRequest CreateQosPriorityDeleteRequest + (QosSessionProfile sessionProfile, + Dictionary tags = null) + { + if (sessionCookie == null || sessionCookie == "") + { + Log.E("Session cookie is null, please call register client prior to calling CreateQosPrioritySessionCreateRequest"); + return null; + } + if (qosSessionId == null || qosSessionId == "") + { + Log.E("QosSessionId is null"); + return null; + } + QosPrioritySessionDeleteRequest request = new QosPrioritySessionDeleteRequest + { + Ver = 1, + SessionCookie = sessionCookie, + Profile = sessionProfile, + SessionId = qosSessionId + }; + if (tags != null) + { + foreach (var entry in tags) + { + request.Tags.Add(entry.Key, entry.Value); + } + } + return request; + } + + public async Task DeleteQOSPrioritySession(QosPrioritySessionDeleteRequest req) + { + return await DeleteQOSPrioritySession(GenerateDmeHostAddress(), defaultDmeGrpcPort, req); + } + + public async Task DeleteQOSPrioritySession(string host, uint port, QosPrioritySessionDeleteRequest request) + { + Channel channel = ChannelPicker(host, port); + try + { + var client = new MatchEngineApi.MatchEngineApiClient(channel); + + var call = client.QosPrioritySessionDeleteAsync( + request, + new CallOptions() + .WithDeadline(DateTime.UtcNow.AddMilliseconds(GrpcTimeout.TotalMilliseconds)) + ); + var responseTask = call.ResponseAsync.ConfigureAwait(false); + var reply = await responseTask; + + if (reply.Status == QosPrioritySessionDeleteReply.Types.DeleteStatus.QdelDeleted) + { + Log.D("Qos session deleted successfully"); + qosSessionId = null; + } + else + { + Log.E($"Failed to delete Qos session, Delete status: {reply.Status}"); + } + return reply; + } + catch (RpcException e) + { + Log.E("Exception during DeleteQOSPrioritySession. DME Server used: " + host + ", Message: " + e.Message); + throw e; + } + } private FqdnListRequest CreateFqdnListRequest(UInt32 cellID = 0, Dictionary tags = null) { diff --git a/grpc/MatchingEngineGrpc/api/Util.cs b/grpc/MatchingEngineGrpc/api/Util.cs index 5d277904..b8c85ad5 100644 --- a/grpc/MatchingEngineGrpc/api/Util.cs +++ b/grpc/MatchingEngineGrpc/api/Util.cs @@ -16,7 +16,11 @@ */ using System; +using System.Collections.Generic; using System.IO; +using System.Linq; +using System.Net; +using System.Net.Sockets; using System.Runtime.Serialization; using System.Threading.Tasks; @@ -95,5 +99,67 @@ public async static Task GetLocationFromDevice() return loc; }); } + + public static string GetHostIPV4Address(string host) + { + try + { + if (host == "" || host.Length > 255) + { + if (host.Length > 255) + { + Log.D($"{host} is more than 255 characters"); + } + return null; + } + List addresses = Dns.GetHostAddresses(host).ToList(); + IPAddress ipv4Address = addresses.Find(ip => ip.AddressFamily == AddressFamily.InterNetwork); + if (ipv4Address == null) + { + ipv4Address = addresses.Find(ip => ip.IsIPv4MappedToIPv6 == true); + if (ipv4Address == null) + { + return null; + } + ipv4Address = ipv4Address.MapToIPv4(); + } + return ipv4Address.ToString(); + } + catch (SocketException se) + { + Log.E($"Error is encountered when resolving {host}, SocketException: {se.Message}"); + return null; + } + catch (ArgumentException ae) + { + Log.E($"{host} is an invalid host address, SocketException: {ae.Message}"); + return null; + } + } + + public static IPEndPoint GetDefaultLocalEndPointIPV4() + { + IPEndPoint defaultEndPoint = null; + using (Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, 0)) + { + try + { + socket.Connect(MatchingEngine.wifiOnlyDmeHost, 38001); + if (socket.LocalEndPoint.AddressFamily == AddressFamily.InterNetwork) + { + defaultEndPoint = socket.LocalEndPoint as IPEndPoint; + } + else + { + Log.S("LocalIP is not IPV4, returning null."); + } + } + catch (SocketException se) + { + Log.E("Exception trying to acquire endpoint: " + se.Message); + } + } + return defaultEndPoint; + } } } From 2abb506a9211a3c55b9d0f980ddfefe4e4453266 Mon Sep 17 00:00:00 2001 From: Ahmed Schrute Date: Fri, 4 Feb 2022 12:41:08 -0800 Subject: [PATCH 08/25] Fix method signature --- rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs b/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs index 1a7f6c0b..7297183a 100644 --- a/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs +++ b/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs @@ -2040,12 +2040,12 @@ public QosPrioritySessionDeleteRequest CreateQosPriorityDeleteRequest return request; } - public async Task DeleteQOSPrioritySession(QosPrioritySessionCreateRequest req) + public async Task DeleteQOSPrioritySession(QosPrioritySessionDeleteRequest req) { return await DeleteQOSPrioritySession(GenerateDmeHostAddress(), defaultDmeRestPort, req); } - public async Task DeleteQOSPrioritySession(string host, uint port, QosPrioritySessionCreateRequest req) + public async Task DeleteQOSPrioritySession(string host, uint port, QosPrioritySessionDeleteRequest req) { req.htags = Tag.DictionaryToHashtable(req.tags); DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(QosPrioritySessionCreateRequest), serializerSettings); From e2ae44987a19f3116309c8fd9b78fbd93d0e334c Mon Sep 17 00:00:00 2001 From: Ahmed Schrute Date: Fri, 4 Feb 2022 13:24:11 -0800 Subject: [PATCH 09/25] update DeleteQOSPrioritySession params --- grpc/MatchingEngineGrpc/api/DistributedMatchEngine.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/grpc/MatchingEngineGrpc/api/DistributedMatchEngine.cs b/grpc/MatchingEngineGrpc/api/DistributedMatchEngine.cs index d5db76d8..fd79d6f4 100644 --- a/grpc/MatchingEngineGrpc/api/DistributedMatchEngine.cs +++ b/grpc/MatchingEngineGrpc/api/DistributedMatchEngine.cs @@ -1811,9 +1811,9 @@ public QosPrioritySessionDeleteRequest CreateQosPriorityDeleteRequest return request; } - public async Task DeleteQOSPrioritySession(QosPrioritySessionDeleteRequest req) + public async Task DeleteQOSPrioritySession(QosPrioritySessionDeleteRequest request) { - return await DeleteQOSPrioritySession(GenerateDmeHostAddress(), defaultDmeGrpcPort, req); + return await DeleteQOSPrioritySession(GenerateDmeHostAddress(), defaultDmeGrpcPort, request); } public async Task DeleteQOSPrioritySession(string host, uint port, QosPrioritySessionDeleteRequest request) From f90e7fe79c50fe81dd21c20529fe644478a0b0c0 Mon Sep 17 00:00:00 2001 From: Ahmed Schrute Date: Mon, 7 Feb 2022 15:38:25 -0500 Subject: [PATCH 10/25] QosSessionResult Enum parsing fix, Update enums --- .../DistributedMatchEngine.cs | 2 +- .../Protocol/FindCloudlet.cs | 36 +++++++++++++++++-- .../Protocol/QosSession.cs | 21 +++-------- 3 files changed, 40 insertions(+), 19 deletions(-) diff --git a/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs b/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs index e505da3b..6abe6846 100644 --- a/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs +++ b/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs @@ -1752,7 +1752,7 @@ public QosPrioritySessionCreateRequest CreateQosPriorityCreateRequest Log.E("FindCloudletReply is malformed"); return null; } - if(findCloudletReply.qos_result == QosSessionResult.QOS_SESSION_CREATED) + if(findCloudletReply.qos_result == FindCloudletReply.QosSessionResult.SessionCreated) { Log.E("There is an active QoS session, please delete the current session first."); return null; diff --git a/rest/MatchingEngineSDKRestLibrary/Protocol/FindCloudlet.cs b/rest/MatchingEngineSDKRestLibrary/Protocol/FindCloudlet.cs index a2d59ba9..54aa63f3 100644 --- a/rest/MatchingEngineSDKRestLibrary/Protocol/FindCloudlet.cs +++ b/rest/MatchingEngineSDKRestLibrary/Protocol/FindCloudlet.cs @@ -79,6 +79,16 @@ public enum FindStatus Notfound = 2 } + public enum QosSessionResult + { + [EnumMember] + NotAttempted = 0, + [EnumMember] + SessionCreated = 1, + [EnumMember] + SessionFailed = 2 + } + [DataMember] public UInt32 ver; @@ -115,8 +125,30 @@ private string find_status_string [DataMember] public Loc cloudlet_location; - [DataMember] - public QosSessionResult qos_result; + [DataMember(Name = "qos_result")] + private string qosResult + { + get + { + return qos_result.ToString(); + } + set + { + try + { + qos_result = (QosSessionResult)Enum.Parse(typeof(QosSessionResult), value); + } + catch + { + qos_result = QosSessionResult.SessionFailed; + } + } + } + + public QosSessionResult qos_result = QosSessionResult.SessionFailed; + + + public string qos_error_msg; //! Session Cookie for specific EdgeEvents for specific AppInst [DataMember] diff --git a/rest/MatchingEngineSDKRestLibrary/Protocol/QosSession.cs b/rest/MatchingEngineSDKRestLibrary/Protocol/QosSession.cs index 50573032..e8f53cac 100644 --- a/rest/MatchingEngineSDKRestLibrary/Protocol/QosSession.cs +++ b/rest/MatchingEngineSDKRestLibrary/Protocol/QosSession.cs @@ -34,28 +34,28 @@ public enum QosSessionProfile /// Specifies that no priority session should be created. /// [EnumMember] - QOS_NO_PRIORITY = 0, + NoPriority = 0, /// /// Corresponds to a specific set of network parameters for low latency that will be /// negotiated with the network provider in advance. /// [EnumMember] - QOS_LOW_LATENCY = 1, + LowLatency = 1, /// /// Downlink traffic from AppInst to client is prioritized up to 20Mbps. /// [EnumMember] - QOS_THROUGHPUT_DOWN_S = 2, + ThroughputDownS = 2, /// /// Downlink traffic from AppInst to client is prioritized up to 50Mbps. /// [EnumMember] - QOS_THROUGHPUT_DOWN_M = 3, + ThroughputDownM = 3, /// /// Downlink traffic from AppInst to client is prioritized up to 100Mbps. /// [EnumMember] - QOS_THROUGHPUT_DOWN_L = 4 + ThroughputDownL = 4 } [DataContract] @@ -69,17 +69,6 @@ public enum QosSessionProtocol ANY = 2 } - [DataContract] - public enum QosSessionResult - { - [EnumMember] - QOS_NOT_ATTEMPTED = 0, - [EnumMember] - QOS_SESSION_CREATED = 1, - [EnumMember] - QOS_SESSION_FAILED = 2 - } - [DataContract] public enum DeleteStatus { From 1619c58a1a048858e5bba4d9fc8a278fef7fbfb4 Mon Sep 17 00:00:00 2001 From: Ahmed Schrute Date: Mon, 7 Feb 2022 15:49:33 -0500 Subject: [PATCH 11/25] Enums first letter or before underscore is uppercase --- .../DistributedMatchEngine.cs | 6 +++--- .../Protocol/QosSession.cs | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs b/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs index 6abe6846..efa3bb82 100644 --- a/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs +++ b/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs @@ -1737,8 +1737,8 @@ public async Task GetQosPositionKpi(string host, uint port public QosPrioritySessionCreateRequest CreateQosPriorityCreateRequest (QosSessionProfile sessionProfile, FindCloudletReply findCloudletReply, - QosSessionProtocol protocolIn = QosSessionProtocol.ANY, - QosSessionProtocol protocolOut = QosSessionProtocol.ANY, + QosSessionProtocol protocolIn = QosSessionProtocol.Any, + QosSessionProtocol protocolOut = QosSessionProtocol.Any, UInt32 duration= 0, string applicationPort = "", string serverPort = "", @@ -1942,7 +1942,7 @@ public async Task DeleteQOSPrioritySession(string { reply.tags = Tag.HashtableToDictionary(reply.htags); } - if (reply.status == DeleteStatus.QDEL_DELETED) + if (reply.status == DeleteStatus.Deleted) { Log.D("Qos session deleted successfully"); qosSessionId = null; diff --git a/rest/MatchingEngineSDKRestLibrary/Protocol/QosSession.cs b/rest/MatchingEngineSDKRestLibrary/Protocol/QosSession.cs index e8f53cac..f2c3f2c4 100644 --- a/rest/MatchingEngineSDKRestLibrary/Protocol/QosSession.cs +++ b/rest/MatchingEngineSDKRestLibrary/Protocol/QosSession.cs @@ -62,22 +62,22 @@ public enum QosSessionProfile public enum QosSessionProtocol { [EnumMember] - TCP = 0, + Tcp = 0, [EnumMember] - UDP = 1, + Udp = 1, [EnumMember] - ANY = 2 + Any = 2 } [DataContract] public enum DeleteStatus { [EnumMember] - QDEL_UNKNOWN = 0, + Unknown = 0, [EnumMember] - QDEL_DELETED = 1, + Deleted = 1, [EnumMember] - QDEL_NOT_FOUND = 2 + NotFound = 2 } /*! From ecf3eab0059e3d0b4e45d8cbe8be1b7bddf90442 Mon Sep 17 00:00:00 2001 From: Ahmed Schrute Date: Mon, 7 Feb 2022 16:04:55 -0500 Subject: [PATCH 12/25] Remove duplicate code --- grpc/MatchingEngineGrpc/api/Util.cs | 25 ------------------------- 1 file changed, 25 deletions(-) diff --git a/grpc/MatchingEngineGrpc/api/Util.cs b/grpc/MatchingEngineGrpc/api/Util.cs index 52673481..9c12dab4 100644 --- a/grpc/MatchingEngineGrpc/api/Util.cs +++ b/grpc/MatchingEngineGrpc/api/Util.cs @@ -161,30 +161,5 @@ public static string GetHostIPV4Address(string host) return null; } } - - public static IPEndPoint GetDefaultLocalEndPointIPV4() - { - IPEndPoint defaultEndPoint = null; - using (Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, 0)) - { - try - { - socket.Connect(MatchingEngine.wifiOnlyDmeHost, 38001); - if (socket.LocalEndPoint.AddressFamily == AddressFamily.InterNetwork) - { - defaultEndPoint = socket.LocalEndPoint as IPEndPoint; - } - else - { - Log.S("LocalIP is not IPV4, returning null."); - } - } - catch (SocketException se) - { - Log.E("Exception trying to acquire endpoint: " + se.Message); - } - } - return defaultEndPoint; - } } } From d1a05e547b7a04cf6e1d374e108ffffd9603b1fe Mon Sep 17 00:00:00 2001 From: Ahmed Schrute Date: Tue, 8 Feb 2022 11:24:19 -0500 Subject: [PATCH 13/25] QoS API Docs (Rest & gRPC) --- .../api/DistributedMatchEngine.cs | 73 ++++++++++++++- .../DistributedMatchEngine.cs | 92 ++++++++++++++++--- 2 files changed, 147 insertions(+), 18 deletions(-) diff --git a/grpc/MatchingEngineGrpc/api/DistributedMatchEngine.cs b/grpc/MatchingEngineGrpc/api/DistributedMatchEngine.cs index e3e1951f..5b548e24 100644 --- a/grpc/MatchingEngineGrpc/api/DistributedMatchEngine.cs +++ b/grpc/MatchingEngineGrpc/api/DistributedMatchEngine.cs @@ -1580,14 +1580,44 @@ public AsyncServerStreamingCall GetQosPositionKpi(string ho } } + /// + /// Creates the create request for a QoS priority session + /// + /// The QosSessionProfile, choose an option from the following: + /// (QOS_NO_PRIORITY, QOS_LOW_LATENCY, QOS_THROUGHPUT_DOWN_S, QOS_THROUGHPUT_DOWN_M, QOS_THROUGHPUT_DOWN_L) + /// the FindCloudletReply to be used, findCloudletReply is used for retrieving the following: + /// + /// SessionCookie, IPAddress of the server, Detecting if there is a QoS session created already + /// + /// if findCloudletReply.Status is not "Found" the function will return a null value + /// + /// A string representing a list of single ports or port ranges on the user equipment + /// range of ports ex. "5000-5500" + /// comma delimited ports ex. "5000,6000" + /// a mix of both ex. "5000-5500,4000,6000" + /// + /// A string representing a list of single ports or port ranges on the application server + /// range of ports ex. "5000-5500" + /// comma delimited ports ex. "5000,6000" + /// a mix of both ex. "5000-5500,4000,6000" + /// + /// (Optional) The used transport protocol for the uplink (default QosSessionProtocol.Any) + /// (Optional) The used transport protocol for the downlink (default QosSessionProtocol.Any) + /// (Optional) QoS priority session duration in seconds + /// (Optional) URI of the callback receiver. Allows asynchronous delivery of session related events, malformed uri will result in a null value + /// (Optional) Authentification token for callback API + /// (Optional) Vendor specific data + /// (Optional) IPV4 address of the device, if not supplied the SDK will determine the IPV4 address of the device. + /// QosPrioritySessionCreateRequest object + /// \section getqospriorityloadexample-grpc Example public QosPrioritySessionCreateRequest CreateQosPrioritySessionCreateRequest( QosSessionProfile sessionProfile, FindCloudletReply findCloudletReply, + string applicationPort, + string serverPort, QosSessionProtocol protocolIn = QosSessionProtocol.Any, QosSessionProtocol protocolOut = QosSessionProtocol.Any, UInt32 duration = 0, - string applicationPort = "", - string serverPort = "", string notificationUri = "", string notificationAuthToken = "", Dictionary tags = null, @@ -1655,11 +1685,25 @@ public QosPrioritySessionCreateRequest CreateQosPrioritySessionCreateRequest( return request; } - public async Task CreateQOSPrioritySession(QosPrioritySessionCreateRequest req) + /// + /// Creates QoS priority session + /// + /// QosPrioritySessionCreateRequest object + /// QosPrioritySessionReply object + /// \section getqospriorityloadexample-grpc Example + public async Task CreateQOSPrioritySession(QosPrioritySessionCreateRequest request) { - return await CreateQOSPrioritySession(GenerateDmeHostAddress(), defaultDmeGrpcPort, req); + return await CreateQOSPrioritySession(GenerateDmeHostAddress(), defaultDmeGrpcPort, request); } + /// + /// Creates QoS priority session + /// + /// (string) dme host + /// (uint) dme port + /// QosPrioritySessionCreateRequest object + /// QosPrioritySessionReply object + /// \section getqospriorityloadexample-grpc Example public async Task CreateQOSPrioritySession(string host, uint port, QosPrioritySessionCreateRequest request) { Channel channel = ChannelPicker(host, port); @@ -1709,6 +1753,13 @@ public async Task CreateQOSPrioritySession(string host, } } + /// + /// Creates DeleteRequest for deleting a running QoSPrioritySession, returns null if no QoS sessionId is stored in matchingEngine + /// + /// The QosSessionProfile to delete + /// (Optional) Vendor specific data + /// QosPrioritySessionDeleteRequest object + /// \section getqospriorityloadexample-grpc Example public QosPrioritySessionDeleteRequest CreateQosPriorityDeleteRequest (QosSessionProfile sessionProfile, Dictionary tags = null) @@ -1740,11 +1791,25 @@ public QosPrioritySessionDeleteRequest CreateQosPriorityDeleteRequest return request; } + /// + /// Deletes QoS priority session + /// + /// QosPrioritySessionDeleteRequest object + /// QosPrioritySessionDeleteReply object + /// \section getqospriorityloadexample-grpc Example public async Task DeleteQOSPrioritySession(QosPrioritySessionDeleteRequest request) { return await DeleteQOSPrioritySession(GenerateDmeHostAddress(), defaultDmeGrpcPort, request); } + /// + /// Deletes QoS priority session + /// + /// (string) dme host + /// (uint) dme port + /// QosPrioritySessionDeleteRequest object + /// QosPrioritySessionDeleteReply object + /// \section getqospriorityloadexample-grpc Example public async Task DeleteQOSPrioritySession(string host, uint port, QosPrioritySessionDeleteRequest request) { Channel channel = ChannelPicker(host, port); diff --git a/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs b/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs index efa3bb82..ac6bd8b7 100644 --- a/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs +++ b/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs @@ -1733,15 +1733,44 @@ public async Task GetQosPositionKpi(string host, uint port return qosPositionKpiStream; } - + /// + /// Creates the create request for a QoS priority session + /// + /// The QosSessionProfile choose an option from the following: + /// (NoPriority, LowLatency, ThroughputDownS, ThroughputDownM, ThroughputDownL) + /// the FindCloudletReply to be used, findCloudletReply is used for retrieving the following information + /// + /// SessionCookie, IPAddress of the server, Detecting if there is a QoS session created already + /// + /// if findCloudletReply.Status is not "Found" the function will return a null value + /// + /// A string representing a list of single ports or port ranges on the user equipment + /// range of ports ex. "5000-5500" + /// comma delimited ports ex. "5000,6000" + /// a mix of both ex. "5000-5500,4000,6000" + /// + /// A string representing a list of single ports or port ranges on the application server + /// range of ports ex. "5000-5500" + /// comma delimited ports ex. "5000,6000" + /// a mix of both ex. "5000-5500,4000,6000" + /// + /// (Optional) The used transport protocol for the uplink (default QosSessionProtocol.Any) + /// (Optional) The used transport protocol for the downlink (default QosSessionProtocol.Any) + /// (Optional) QoS Priority Session duration in seconds + /// (Optional) URI of the callback receiver. Allows asynchronous delivery of session related events, malformed uri will result in a null value + /// (Optional) Authentification token for callback API + /// (Optional) Vendor specific data + /// (Optional) IPV4 Address of the device, if not supplied the SDK will determine the IPV4 address of the device. + /// QosPrioritySessionCreateRequest object + /// \section getqospriorityloadexample-grpc Example public QosPrioritySessionCreateRequest CreateQosPriorityCreateRequest (QosSessionProfile sessionProfile, FindCloudletReply findCloudletReply, + string applicationPort, + string serverPort, QosSessionProtocol protocolIn = QosSessionProtocol.Any, QosSessionProtocol protocolOut = QosSessionProtocol.Any, UInt32 duration= 0, - string applicationPort = "", - string serverPort = "", string notificationUri = "", string notificationAuthToken = "", Dictionary tags = null, @@ -1803,17 +1832,31 @@ public QosPrioritySessionCreateRequest CreateQosPriorityCreateRequest return request; } - public async Task CreateQOSPrioritySession(QosPrioritySessionCreateRequest req) + /// + /// Creates QoS priority session + /// + /// QosPrioritySessionCreateRequest object + /// QosPrioritySessionReply object + /// \section getqospriorityloadexample Example + public async Task CreateQOSPrioritySession(QosPrioritySessionCreateRequest request) { - return await CreateQOSPrioritySession(GenerateDmeHostAddress(), defaultDmeRestPort, req); + return await CreateQOSPrioritySession(GenerateDmeHostAddress(), defaultDmeRestPort, request); } - public async Task CreateQOSPrioritySession(string host, uint port, QosPrioritySessionCreateRequest req) + /// + /// Creates QoS priority session + /// + /// (string) dme host + /// (uint) dme port + /// QosPrioritySessionCreateRequest object + /// QosPrioritySessionReply object + /// \section getqospriorityloadexample Example + public async Task CreateQOSPrioritySession(string host, uint port, QosPrioritySessionCreateRequest request) { - req.htags = Tag.DictionaryToHashtable(req.tags); + request.htags = Tag.DictionaryToHashtable(request.tags); DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(QosPrioritySessionCreateRequest), serializerSettings); MemoryStream ms = new MemoryStream(); - serializer.WriteObject(ms, req); + serializer.WriteObject(ms, request); string jsonStr = Util.StreamToString(ms); Stream responseStream; @@ -1874,6 +1917,13 @@ public async Task CreateQOSPrioritySession(string return reply; } + /// + /// Creates DeleteRequest for deleting a running QoSPrioritySession, returns null if no QoSSessionId is stored in matchingEngine + /// + /// The QosSessionProfile to delete + /// (Optional) Vendor specific data + /// QosPrioritySessionDeleteRequest object + /// \section getqospriorityloadexample Example public QosPrioritySessionDeleteRequest CreateQosPriorityDeleteRequest (QosSessionProfile sessionProfile, Dictionary tags = null) @@ -1899,23 +1949,37 @@ public QosPrioritySessionDeleteRequest CreateQosPriorityDeleteRequest return request; } - public async Task DeleteQOSPrioritySession(QosPrioritySessionDeleteRequest req) + /// + /// Deletes QoS priority session + /// + /// QosPrioritySessionDeleteRequest object + /// QosPrioritySessionDeleteReply object + /// \section getqospriorityloadexample Example + public async Task DeleteQOSPrioritySession(QosPrioritySessionDeleteRequest request) { - return await DeleteQOSPrioritySession(GenerateDmeHostAddress(), defaultDmeRestPort, req); + return await DeleteQOSPrioritySession(GenerateDmeHostAddress(), defaultDmeRestPort, request); } - public async Task DeleteQOSPrioritySession(string host, uint port, QosPrioritySessionDeleteRequest req) + /// + /// Deletes QoS priority session + /// + /// (string) dme host + /// (uint) dme port + /// QosPrioritySessionDeleteRequest object + /// QosPrioritySessionDeleteReply object + /// \section getqospriorityloadexample Example + public async Task DeleteQOSPrioritySession(string host, uint port, QosPrioritySessionDeleteRequest request) { - req.htags = Tag.DictionaryToHashtable(req.tags); + request.htags = Tag.DictionaryToHashtable(request.tags); DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(QosPrioritySessionCreateRequest), serializerSettings); MemoryStream ms = new MemoryStream(); - serializer.WriteObject(ms, req); + serializer.WriteObject(ms, request); string jsonStr = Util.StreamToString(ms); Stream responseStream; try { - responseStream = await PostRequest(CreateUri(host, port) + qosprioritycreateAPI, jsonStr); + responseStream = await PostRequest(CreateUri(host, port) + qosprioritydeleteAPI, jsonStr); if (responseStream == null || !responseStream.CanRead) { Log.E("Unreadable DeleteQosSessionStream stream!"); From 57b559665fe0d5d9e47cd3967df8bd503203e328 Mon Sep 17 00:00:00 2001 From: Ahmed Schrute Date: Fri, 25 Feb 2022 10:46:46 -0800 Subject: [PATCH 14/25] Add StartEdgeEvents Method, update proto, update unit tests --- grpc/EngineTests/UnitTest1.cs | 43 ++-- grpc/MatchingEngineGrpc/Protocol/AppClient.cs | 224 +++++++++--------- grpc/MatchingEngineGrpc/Protocol/Appcommon.cs | 38 +-- .../api/DistributedMatchEngine.cs | 9 + 4 files changed, 163 insertions(+), 151 deletions(-) diff --git a/grpc/EngineTests/UnitTest1.cs b/grpc/EngineTests/UnitTest1.cs index 9e74babd..be2e7f21 100644 --- a/grpc/EngineTests/UnitTest1.cs +++ b/grpc/EngineTests/UnitTest1.cs @@ -39,10 +39,14 @@ namespace Tests public class Tests { // Test to an alternate server: - const string dmeHost = "eu-mexdemo." + MatchingEngine.baseDmeHost; - const string orgName = "MobiledgeX-Samples"; - const string appName = "sdktest"; - const string appVers = "9.0"; + //const string dmeHost = "eu-mexdemo." + MatchingEngine.baseDmeHost; + //const string orgName = "MobiledgeX-Samples"; + //const string appName = "sdktest"; + //const string appVers = "9.0"; + const string dmeHost = "us-qa." + MatchingEngine.baseDmeHost; + const string orgName = "automation_dev_org"; + const string appName = "automation-sdk-porttest"; + const string appVers = "1.0"; static MatchingEngine me; @@ -178,10 +182,8 @@ public async static Task TestEdgeEventsConnection_Latencies() int port = port1.PublicPort; Assert.True(port > 0, "Port must be bigger than 0!"); - Assert.True(me.EdgeEventsConnection != null); - - me.EdgeEventsConnection.Open(); - + bool startEdgeEvents = me.StartEdgeEvents(); + Assert.True(startEdgeEvents, "Failed to start edge events"); // In case you're using edgebox locally: //host = "127.0.0.1"; //port = 50051; @@ -239,8 +241,8 @@ public async static Task TestTCPConnection() } catch (Exception e) { - Assert.Fail("TestFailed, Exception thrown"); - Console.WriteLine("TCP socket exception is " + e); + Assert.Fail("TestFailed, Exceptions thrown "+ e.Message + e.Data + e.Source + e.StackTrace); + Console.WriteLine("TCP socket exception is " + e.Message); } Console.WriteLine("TestTCPConnection finished."); } @@ -1016,10 +1018,10 @@ public async static Task TestOpenEdgeEventsConnection(string CarrierName, bool u DeviceModel = "VS Studio", DeviceOs = ".NET" }; - me.EdgeEventsConnection.Open( - deviceInfoStatic: useDeviceInofStaticInConstructor == true ? deviceInfoStatic : null, - deviceInfoDynamic: useDeviceInfoDynamicInConstructor == true ? deviceInfoDynamic : null + bool startEdgeEvents = me.StartEdgeEvents(deviceInfoStatic: useDeviceInofStaticInConstructor == true ? deviceInfoStatic : null, + deviceInfoDynamic: useDeviceInfoDynamicInConstructor == true ? deviceInfoDynamic : null ); + Assert.True(startEdgeEvents, "Failed to start edge events"); ServerEdgeEvent latestServerEvent = null; me.EdgeEventsReceiver += (ServerEdgeEvent) => { @@ -1052,8 +1054,8 @@ public async static Task TestRestartEdgeEventsConnection() int port = port1.PublicPort; Assert.True(port > 0, "Port must be bigger than 0!"); - Assert.True(me.EdgeEventsConnection != null); - me.EdgeEventsConnection.Open(); + bool startEdgeEvents = me.StartEdgeEvents(); + Assert.True(startEdgeEvents, "Failed to start edge events"); ServerEdgeEvent latestServerEvent = null; me.EdgeEventsReceiver += (ServerEdgeEvent) => { @@ -1071,7 +1073,8 @@ public async static Task TestRestartEdgeEventsConnection() latestServerEvent = ServerEdgeEvent; }; me.RestartEdgeEventsConnection(latestServerEvent.NewCloudlet, dmeHost, MatchingEngine.defaultDmeGrpcPort); - me.EdgeEventsConnection.Open(); + startEdgeEvents = me.StartEdgeEvents(); + Assert.True(startEdgeEvents, "Failed to start edge events"); me.EdgeEventsReceiver += (ServerEdgeEvent) => { latestServerEvent = ServerEdgeEvent; @@ -1110,8 +1113,8 @@ public async static Task TestCloseEdgeEventsConnection(string testTypeStr) bool latencySamplesSent; Assert.True(port > 0, "Port must be bigger than 0!"); - Assert.True(me.EdgeEventsConnection != null); - me.EdgeEventsConnection.Open(); + bool startEdgeEvents = me.StartEdgeEvents(); + Assert.True(startEdgeEvents, "Failed to start edge events"); ServerEdgeEvent latestServerEvent = null; me.EdgeEventsReceiver += (ServerEdgeEvent) => { @@ -1171,8 +1174,8 @@ public async static Task TestPauseAndResumeEdgeEventsConnectionUpdates(string te bool latencySamplesSent; Assert.True(port > 0, "Port must be bigger than 0!"); - Assert.True(me.EdgeEventsConnection != null); - me.EdgeEventsConnection.Open(); + bool startEdgeEvents = me.StartEdgeEvents(); + Assert.True(startEdgeEvents, "Failed to start edge events"); ServerEdgeEvent latestServerEvent = null; me.EdgeEventsReceiver += (ServerEdgeEvent) => { diff --git a/grpc/MatchingEngineGrpc/Protocol/AppClient.cs b/grpc/MatchingEngineGrpc/Protocol/AppClient.cs index 58fb71ff..e5dc1150 100644 --- a/grpc/MatchingEngineGrpc/Protocol/AppClient.cs +++ b/grpc/MatchingEngineGrpc/Protocol/AppClient.cs @@ -200,114 +200,114 @@ static AppClientReflection() { "eRorCglUYWdzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4", "ASJWCgtRb3NQb3NpdGlvbhISCgpwb3NpdGlvbmlkGAEgASgDEjMKDGdwc19s", "b2NhdGlvbhgCIAEoCzIdLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5Mb2Mi", - "TwoNQmFuZFNlbGVjdGlvbhIOCgZyYXRfMmcYASADKAkSDgoGcmF0XzNnGAIg", - "AygJEg4KBnJhdF80ZxgDIAMoCRIOCgZyYXRfNWcYBCADKAkizAIKElFvc1Bv", - "c2l0aW9uUmVxdWVzdBILCgN2ZXIYASABKA0SFgoOc2Vzc2lvbl9jb29raWUY", - "AiABKAkSOAoJcG9zaXRpb25zGAMgAygLMiUuZGlzdHJpYnV0ZWRfbWF0Y2hf", - "ZW5naW5lLlFvc1Bvc2l0aW9uEhQKDGx0ZV9jYXRlZ29yeRgEIAEoBRI/Cg5i", - "YW5kX3NlbGVjdGlvbhgFIAEoCzInLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2lu", - "ZS5CYW5kU2VsZWN0aW9uEkQKBHRhZ3MYZCADKAsyNi5kaXN0cmlidXRlZF9t", - "YXRjaF9lbmdpbmUuUW9zUG9zaXRpb25SZXF1ZXN0LlRhZ3NFbnRyeRorCglU", - "YWdzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUoECAYQ", - "B1IHY2VsbF9pZCLSAgoUUW9zUG9zaXRpb25LcGlSZXN1bHQSEgoKcG9zaXRp", - "b25pZBgBIAEoAxIzCgxncHNfbG9jYXRpb24YAiABKAsyHS5kaXN0cmlidXRl", - "ZF9tYXRjaF9lbmdpbmUuTG9jEhwKFGRsdXNlcnRocm91Z2hwdXRfbWluGAMg", - "ASgCEhwKFGRsdXNlcnRocm91Z2hwdXRfYXZnGAQgASgCEhwKFGRsdXNlcnRo", - "cm91Z2hwdXRfbWF4GAUgASgCEhwKFHVsdXNlcnRocm91Z2hwdXRfbWluGAYg", - "ASgCEhwKFHVsdXNlcnRocm91Z2hwdXRfYXZnGAcgASgCEhwKFHVsdXNlcnRo", - "cm91Z2hwdXRfbWF4GAggASgCEhMKC2xhdGVuY3lfbWluGAkgASgCEhMKC2xh", - "dGVuY3lfYXZnGAogASgCEhMKC2xhdGVuY3lfbWF4GAsgASgCIpcCChNRb3NQ", - "b3NpdGlvbktwaVJlcGx5EgsKA3ZlchgBIAEoDRI1CgZzdGF0dXMYAiABKA4y", - "JS5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuUmVwbHlTdGF0dXMSSAoQcG9z", - "aXRpb25fcmVzdWx0cxgDIAMoCzIuLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2lu", - "ZS5Rb3NQb3NpdGlvbktwaVJlc3VsdBJFCgR0YWdzGGQgAygLMjcuZGlzdHJp", - "YnV0ZWRfbWF0Y2hfZW5naW5lLlFvc1Bvc2l0aW9uS3BpUmVwbHkuVGFnc0Vu", - "dHJ5GisKCVRhZ3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6", - "AjgBIsQFCg9DbGllbnRFZGdlRXZlbnQSFgoOc2Vzc2lvbl9jb29raWUYASAB", - "KAkSGgoSZWRnZV9ldmVudHNfY29va2llGAIgASgJEk0KCmV2ZW50X3R5cGUY", - "AyABKA4yOS5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuQ2xpZW50RWRnZUV2", - "ZW50LkNsaWVudEV2ZW50VHlwZRIzCgxncHNfbG9jYXRpb24YBCABKAsyHS5k", - "aXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuTG9jEjEKB3NhbXBsZXMYBSADKAsy", - "IC5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuU2FtcGxlEkYKEmRldmljZV9p", - "bmZvX3N0YXRpYxgGIAEoCzIqLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5E", - "ZXZpY2VJbmZvU3RhdGljEkgKE2RldmljZV9pbmZvX2R5bmFtaWMYByABKAsy", - "Ky5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuRGV2aWNlSW5mb0R5bmFtaWMS", - "FAoMY3VzdG9tX2V2ZW50GAggASgJEkEKBHRhZ3MYZCADKAsyMy5kaXN0cmli", - "dXRlZF9tYXRjaF9lbmdpbmUuQ2xpZW50RWRnZUV2ZW50LlRhZ3NFbnRyeRor", - "CglUYWdzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASKt", - "AQoPQ2xpZW50RXZlbnRUeXBlEhEKDUVWRU5UX1VOS05PV04QABIZChVFVkVO", - "VF9JTklUX0NPTk5FQ1RJT04QARIeChpFVkVOVF9URVJNSU5BVEVfQ09OTkVD", - "VElPThACEhkKFUVWRU5UX0xBVEVOQ1lfU0FNUExFUxADEhkKFUVWRU5UX0xP", - "Q0FUSU9OX1VQREFURRAEEhYKEkVWRU5UX0NVU1RPTV9FVkVOVBAFIp8GCg9T", - "ZXJ2ZXJFZGdlRXZlbnQSTQoKZXZlbnRfdHlwZRgBIAEoDjI5LmRpc3RyaWJ1", - "dGVkX21hdGNoX2VuZ2luZS5TZXJ2ZXJFZGdlRXZlbnQuU2VydmVyRXZlbnRU", - "eXBlEj8KDmNsb3VkbGV0X3N0YXRlGAIgASgOMicuZGlzdHJpYnV0ZWRfbWF0", - "Y2hfZW5naW5lLkNsb3VkbGV0U3RhdGUSRQoRbWFpbnRlbmFuY2Vfc3RhdGUY", - "AyABKA4yKi5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuTWFpbnRlbmFuY2VT", - "dGF0ZRI7CgxoZWFsdGhfY2hlY2sYBCABKA4yJS5kaXN0cmlidXRlZF9tYXRj", - "aF9lbmdpbmUuSGVhbHRoQ2hlY2sSOAoKc3RhdGlzdGljcxgFIAEoCzIkLmRp", - "c3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5TdGF0aXN0aWNzEkEKDG5ld19jbG91", - "ZGxldBgGIAEoCzIrLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5GaW5kQ2xv", - "dWRsZXRSZXBseRIRCgllcnJvcl9tc2cYByABKAkSQQoEdGFncxhkIAMoCzIz", - "LmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5TZXJ2ZXJFZGdlRXZlbnQuVGFn", - "c0VudHJ5GisKCVRhZ3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiAB", - "KAk6AjgBIvcBCg9TZXJ2ZXJFdmVudFR5cGUSEQoNRVZFTlRfVU5LTk9XThAA", - "EhkKFUVWRU5UX0lOSVRfQ09OTkVDVElPThABEhkKFUVWRU5UX0xBVEVOQ1lf", - "UkVRVUVTVBACEhsKF0VWRU5UX0xBVEVOQ1lfUFJPQ0VTU0VEEAMSGAoURVZF", - "TlRfQ0xPVURMRVRfU1RBVEUQBBIeChpFVkVOVF9DTE9VRExFVF9NQUlOVEVO", - "QU5DRRAFEhgKFEVWRU5UX0FQUElOU1RfSEVBTFRIEAYSGQoVRVZFTlRfQ0xP", - "VURMRVRfVVBEQVRFEAcSDwoLRVZFTlRfRVJST1IQCCo9CgdJRFR5cGVzEhAK", - "DElEX1VOREVGSU5FRBAAEggKBElNRUkQARIKCgZNU0lTRE4QAhIKCgZJUEFE", - "RFIQAyo8CgtSZXBseVN0YXR1cxIQCgxSU19VTkRFRklORUQQABIOCgpSU19T", - "VUNDRVNTEAESCwoHUlNfRkFJTBACKo4BChFRb3NTZXNzaW9uUHJvZmlsZRIT", - "Cg9RT1NfTk9fUFJJT1JJVFkQABITCg9RT1NfTE9XX0xBVEVOQ1kQARIZChVR", - "T1NfVEhST1VHSFBVVF9ET1dOX1MQAhIZChVRT1NfVEhST1VHSFBVVF9ET1dO", - "X00QAxIZChVRT1NfVEhST1VHSFBVVF9ET1dOX0wQBCovChJRb3NTZXNzaW9u", - "UHJvdG9jb2wSBwoDVENQEAASBwoDVURQEAESBwoDQU5ZEAIytA8KDk1hdGNo", - "RW5naW5lQXBpEo8BCg5SZWdpc3RlckNsaWVudBIvLmRpc3RyaWJ1dGVkX21h", - "dGNoX2VuZ2luZS5SZWdpc3RlckNsaWVudFJlcXVlc3QaLS5kaXN0cmlidXRl", - "ZF9tYXRjaF9lbmdpbmUuUmVnaXN0ZXJDbGllbnRSZXBseSIdgtPkkwIXIhIv", - "djEvcmVnaXN0ZXJjbGllbnQ6ASoShwEKDEZpbmRDbG91ZGxldBItLmRpc3Ry", - "aWJ1dGVkX21hdGNoX2VuZ2luZS5GaW5kQ2xvdWRsZXRSZXF1ZXN0GisuZGlz", - "dHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkZpbmRDbG91ZGxldFJlcGx5IhuC0+ST", - "AhUiEC92MS9maW5kY2xvdWRsZXQ6ASoSnwEKFFBsYXRmb3JtRmluZENsb3Vk", - "bGV0EjUuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLlBsYXRmb3JtRmluZENs", - "b3VkbGV0UmVxdWVzdBorLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5GaW5k", - "Q2xvdWRsZXRSZXBseSIjgtPkkwIdIhgvdjEvcGxhdGZvcm1maW5kY2xvdWRs", - "ZXQ6ASoSsQEKGFFvc1ByaW9yaXR5U2Vzc2lvbkNyZWF0ZRI5LmRpc3RyaWJ1", - "dGVkX21hdGNoX2VuZ2luZS5Rb3NQcmlvcml0eVNlc3Npb25DcmVhdGVSZXF1", - "ZXN0GjEuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLlFvc1ByaW9yaXR5U2Vz", - "c2lvblJlcGx5IieC0+STAiEiHC92MS9xb3Nwcmlvcml0eXNlc3Npb25jcmVh", - "dGU6ASoStwEKGFFvc1ByaW9yaXR5U2Vzc2lvbkRlbGV0ZRI5LmRpc3RyaWJ1", - "dGVkX21hdGNoX2VuZ2luZS5Rb3NQcmlvcml0eVNlc3Npb25EZWxldGVSZXF1", - "ZXN0GjcuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLlFvc1ByaW9yaXR5U2Vz", - "c2lvbkRlbGV0ZVJlcGx5IieC0+STAiEiHC92MS9xb3Nwcmlvcml0eXNlc3Np", - "b25kZWxldGU6ASoSjwEKDlZlcmlmeUxvY2F0aW9uEi8uZGlzdHJpYnV0ZWRf", - "bWF0Y2hfZW5naW5lLlZlcmlmeUxvY2F0aW9uUmVxdWVzdBotLmRpc3RyaWJ1", - "dGVkX21hdGNoX2VuZ2luZS5WZXJpZnlMb2NhdGlvblJlcGx5Ih2C0+STAhci", - "Ei92MS92ZXJpZnlsb2NhdGlvbjoBKhKDAQoLR2V0TG9jYXRpb24SLC5kaXN0", - "cmlidXRlZF9tYXRjaF9lbmdpbmUuR2V0TG9jYXRpb25SZXF1ZXN0GiouZGlz", - "dHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkdldExvY2F0aW9uUmVwbHkiGoLT5JMC", - "FCIPL3YxL2dldGxvY2F0aW9uOgEqEpEBCg5BZGRVc2VyVG9Hcm91cBIwLmRp", - "c3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5EeW5hbWljTG9jR3JvdXBSZXF1ZXN0", - "Gi4uZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkR5bmFtaWNMb2NHcm91cFJl", - "cGx5Ih2C0+STAhciEi92MS9hZGR1c2VydG9ncm91cDoBKhKJAQoOR2V0QXBw", - "SW5zdExpc3QSLC5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuQXBwSW5zdExp", - "c3RSZXF1ZXN0GiouZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkFwcEluc3RM", - "aXN0UmVwbHkiHYLT5JMCFyISL3YxL2dldGFwcGluc3RsaXN0OgEqEn0KC0dl", - "dEZxZG5MaXN0EikuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkZxZG5MaXN0", - "UmVxdWVzdBonLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5GcWRuTGlzdFJl", - "cGx5IhqC0+STAhQiDy92MS9nZXRmcWRubGlzdDoBKhKZAQoSR2V0QXBwT2Zm", - "aWNpYWxGcWRuEjAuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkFwcE9mZmlj", - "aWFsRnFkblJlcXVlc3QaLi5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuQXBw", - "T2ZmaWNpYWxGcWRuUmVwbHkiIYLT5JMCGyIWL3YxL2dldGFwcG9mZmljaWFs", - "ZnFkbjoBKhKUAQoRR2V0UW9zUG9zaXRpb25LcGkSLC5kaXN0cmlidXRlZF9t", - "YXRjaF9lbmdpbmUuUW9zUG9zaXRpb25SZXF1ZXN0Gi0uZGlzdHJpYnV0ZWRf", - "bWF0Y2hfZW5naW5lLlFvc1Bvc2l0aW9uS3BpUmVwbHkiIILT5JMCGiIVL3Yx", - "L2dldHFvc3Bvc2l0aW9ua3BpOgEqMAESiwEKD1N0cmVhbUVkZ2VFdmVudBIp", - "LmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5DbGllbnRFZGdlRXZlbnQaKS5k", - "aXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuU2VydmVyRWRnZUV2ZW50Ih6C0+ST", - "AhgiEy92MS9zdHJlYW1lZGdlZXZlbnQ6ASooATABYgZwcm90bzM=")); + "SwoNQmFuZFNlbGVjdGlvbhINCgVyYXQyZxgBIAMoCRINCgVyYXQzZxgCIAMo", + "CRINCgVyYXQ0ZxgDIAMoCRINCgVyYXQ1ZxgEIAMoCSLMAgoSUW9zUG9zaXRp", + "b25SZXF1ZXN0EgsKA3ZlchgBIAEoDRIWCg5zZXNzaW9uX2Nvb2tpZRgCIAEo", + "CRI4Cglwb3NpdGlvbnMYAyADKAsyJS5kaXN0cmlidXRlZF9tYXRjaF9lbmdp", + "bmUuUW9zUG9zaXRpb24SFAoMbHRlX2NhdGVnb3J5GAQgASgFEj8KDmJhbmRf", + "c2VsZWN0aW9uGAUgASgLMicuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkJh", + "bmRTZWxlY3Rpb24SRAoEdGFncxhkIAMoCzI2LmRpc3RyaWJ1dGVkX21hdGNo", + "X2VuZ2luZS5Rb3NQb3NpdGlvblJlcXVlc3QuVGFnc0VudHJ5GisKCVRhZ3NF", + "bnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBSgQIBhAHUgdj", + "ZWxsX2lkItICChRRb3NQb3NpdGlvbktwaVJlc3VsdBISCgpwb3NpdGlvbmlk", + "GAEgASgDEjMKDGdwc19sb2NhdGlvbhgCIAEoCzIdLmRpc3RyaWJ1dGVkX21h", + "dGNoX2VuZ2luZS5Mb2MSHAoUZGx1c2VydGhyb3VnaHB1dF9taW4YAyABKAIS", + "HAoUZGx1c2VydGhyb3VnaHB1dF9hdmcYBCABKAISHAoUZGx1c2VydGhyb3Vn", + "aHB1dF9tYXgYBSABKAISHAoUdWx1c2VydGhyb3VnaHB1dF9taW4YBiABKAIS", + "HAoUdWx1c2VydGhyb3VnaHB1dF9hdmcYByABKAISHAoUdWx1c2VydGhyb3Vn", + "aHB1dF9tYXgYCCABKAISEwoLbGF0ZW5jeV9taW4YCSABKAISEwoLbGF0ZW5j", + "eV9hdmcYCiABKAISEwoLbGF0ZW5jeV9tYXgYCyABKAIilwIKE1Fvc1Bvc2l0", + "aW9uS3BpUmVwbHkSCwoDdmVyGAEgASgNEjUKBnN0YXR1cxgCIAEoDjIlLmRp", + "c3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5SZXBseVN0YXR1cxJIChBwb3NpdGlv", + "bl9yZXN1bHRzGAMgAygLMi4uZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLlFv", + "c1Bvc2l0aW9uS3BpUmVzdWx0EkUKBHRhZ3MYZCADKAsyNy5kaXN0cmlidXRl", + "ZF9tYXRjaF9lbmdpbmUuUW9zUG9zaXRpb25LcGlSZXBseS5UYWdzRW50cnka", + "KwoJVGFnc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEi", + "xAUKD0NsaWVudEVkZ2VFdmVudBIWCg5zZXNzaW9uX2Nvb2tpZRgBIAEoCRIa", + "ChJlZGdlX2V2ZW50c19jb29raWUYAiABKAkSTQoKZXZlbnRfdHlwZRgDIAEo", + "DjI5LmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5DbGllbnRFZGdlRXZlbnQu", + "Q2xpZW50RXZlbnRUeXBlEjMKDGdwc19sb2NhdGlvbhgEIAEoCzIdLmRpc3Ry", + "aWJ1dGVkX21hdGNoX2VuZ2luZS5Mb2MSMQoHc2FtcGxlcxgFIAMoCzIgLmRp", + "c3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5TYW1wbGUSRgoSZGV2aWNlX2luZm9f", + "c3RhdGljGAYgASgLMiouZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkRldmlj", + "ZUluZm9TdGF0aWMSSAoTZGV2aWNlX2luZm9fZHluYW1pYxgHIAEoCzIrLmRp", + "c3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5EZXZpY2VJbmZvRHluYW1pYxIUCgxj", + "dXN0b21fZXZlbnQYCCABKAkSQQoEdGFncxhkIAMoCzIzLmRpc3RyaWJ1dGVk", + "X21hdGNoX2VuZ2luZS5DbGllbnRFZGdlRXZlbnQuVGFnc0VudHJ5GisKCVRh", + "Z3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIq0BCg9D", + "bGllbnRFdmVudFR5cGUSEQoNRVZFTlRfVU5LTk9XThAAEhkKFUVWRU5UX0lO", + "SVRfQ09OTkVDVElPThABEh4KGkVWRU5UX1RFUk1JTkFURV9DT05ORUNUSU9O", + "EAISGQoVRVZFTlRfTEFURU5DWV9TQU1QTEVTEAMSGQoVRVZFTlRfTE9DQVRJ", + "T05fVVBEQVRFEAQSFgoSRVZFTlRfQ1VTVE9NX0VWRU5UEAUinwYKD1NlcnZl", + "ckVkZ2VFdmVudBJNCgpldmVudF90eXBlGAEgASgOMjkuZGlzdHJpYnV0ZWRf", + "bWF0Y2hfZW5naW5lLlNlcnZlckVkZ2VFdmVudC5TZXJ2ZXJFdmVudFR5cGUS", + "PwoOY2xvdWRsZXRfc3RhdGUYAiABKA4yJy5kaXN0cmlidXRlZF9tYXRjaF9l", + "bmdpbmUuQ2xvdWRsZXRTdGF0ZRJFChFtYWludGVuYW5jZV9zdGF0ZRgDIAEo", + "DjIqLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5NYWludGVuYW5jZVN0YXRl", + "EjsKDGhlYWx0aF9jaGVjaxgEIAEoDjIlLmRpc3RyaWJ1dGVkX21hdGNoX2Vu", + "Z2luZS5IZWFsdGhDaGVjaxI4CgpzdGF0aXN0aWNzGAUgASgLMiQuZGlzdHJp", + "YnV0ZWRfbWF0Y2hfZW5naW5lLlN0YXRpc3RpY3MSQQoMbmV3X2Nsb3VkbGV0", + "GAYgASgLMisuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkZpbmRDbG91ZGxl", + "dFJlcGx5EhEKCWVycm9yX21zZxgHIAEoCRJBCgR0YWdzGGQgAygLMjMuZGlz", + "dHJpYnV0ZWRfbWF0Y2hfZW5naW5lLlNlcnZlckVkZ2VFdmVudC5UYWdzRW50", + "cnkaKwoJVGFnc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToC", + "OAEi9wEKD1NlcnZlckV2ZW50VHlwZRIRCg1FVkVOVF9VTktOT1dOEAASGQoV", + "RVZFTlRfSU5JVF9DT05ORUNUSU9OEAESGQoVRVZFTlRfTEFURU5DWV9SRVFV", + "RVNUEAISGwoXRVZFTlRfTEFURU5DWV9QUk9DRVNTRUQQAxIYChRFVkVOVF9D", + "TE9VRExFVF9TVEFURRAEEh4KGkVWRU5UX0NMT1VETEVUX01BSU5URU5BTkNF", + "EAUSGAoURVZFTlRfQVBQSU5TVF9IRUFMVEgQBhIZChVFVkVOVF9DTE9VRExF", + "VF9VUERBVEUQBxIPCgtFVkVOVF9FUlJPUhAIKj0KB0lEVHlwZXMSEAoMSURf", + "VU5ERUZJTkVEEAASCAoESU1FSRABEgoKBk1TSVNEThACEgoKBklQQUREUhAD", + "KjwKC1JlcGx5U3RhdHVzEhAKDFJTX1VOREVGSU5FRBAAEg4KClJTX1NVQ0NF", + "U1MQARILCgdSU19GQUlMEAIqjgEKEVFvc1Nlc3Npb25Qcm9maWxlEhMKD1FP", + "U19OT19QUklPUklUWRAAEhMKD1FPU19MT1dfTEFURU5DWRABEhkKFVFPU19U", + "SFJPVUdIUFVUX0RPV05fUxACEhkKFVFPU19USFJPVUdIUFVUX0RPV05fTRAD", + "EhkKFVFPU19USFJPVUdIUFVUX0RPV05fTBAEKi8KElFvc1Nlc3Npb25Qcm90", + "b2NvbBIHCgNUQ1AQABIHCgNVRFAQARIHCgNBTlkQAjK0DwoOTWF0Y2hFbmdp", + "bmVBcGkSjwEKDlJlZ2lzdGVyQ2xpZW50Ei8uZGlzdHJpYnV0ZWRfbWF0Y2hf", + "ZW5naW5lLlJlZ2lzdGVyQ2xpZW50UmVxdWVzdBotLmRpc3RyaWJ1dGVkX21h", + "dGNoX2VuZ2luZS5SZWdpc3RlckNsaWVudFJlcGx5Ih2C0+STAhciEi92MS9y", + "ZWdpc3RlcmNsaWVudDoBKhKHAQoMRmluZENsb3VkbGV0Ei0uZGlzdHJpYnV0", + "ZWRfbWF0Y2hfZW5naW5lLkZpbmRDbG91ZGxldFJlcXVlc3QaKy5kaXN0cmli", + "dXRlZF9tYXRjaF9lbmdpbmUuRmluZENsb3VkbGV0UmVwbHkiG4LT5JMCFSIQ", + "L3YxL2ZpbmRjbG91ZGxldDoBKhKfAQoUUGxhdGZvcm1GaW5kQ2xvdWRsZXQS", + "NS5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuUGxhdGZvcm1GaW5kQ2xvdWRs", + "ZXRSZXF1ZXN0GisuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkZpbmRDbG91", + "ZGxldFJlcGx5IiOC0+STAh0iGC92MS9wbGF0Zm9ybWZpbmRjbG91ZGxldDoB", + "KhKxAQoYUW9zUHJpb3JpdHlTZXNzaW9uQ3JlYXRlEjkuZGlzdHJpYnV0ZWRf", + "bWF0Y2hfZW5naW5lLlFvc1ByaW9yaXR5U2Vzc2lvbkNyZWF0ZVJlcXVlc3Qa", + "MS5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuUW9zUHJpb3JpdHlTZXNzaW9u", + "UmVwbHkiJ4LT5JMCISIcL3YxL3Fvc3ByaW9yaXR5c2Vzc2lvbmNyZWF0ZToB", + "KhK3AQoYUW9zUHJpb3JpdHlTZXNzaW9uRGVsZXRlEjkuZGlzdHJpYnV0ZWRf", + "bWF0Y2hfZW5naW5lLlFvc1ByaW9yaXR5U2Vzc2lvbkRlbGV0ZVJlcXVlc3Qa", + "Ny5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuUW9zUHJpb3JpdHlTZXNzaW9u", + "RGVsZXRlUmVwbHkiJ4LT5JMCISIcL3YxL3Fvc3ByaW9yaXR5c2Vzc2lvbmRl", + "bGV0ZToBKhKPAQoOVmVyaWZ5TG9jYXRpb24SLy5kaXN0cmlidXRlZF9tYXRj", + "aF9lbmdpbmUuVmVyaWZ5TG9jYXRpb25SZXF1ZXN0Gi0uZGlzdHJpYnV0ZWRf", + "bWF0Y2hfZW5naW5lLlZlcmlmeUxvY2F0aW9uUmVwbHkiHYLT5JMCFyISL3Yx", + "L3ZlcmlmeWxvY2F0aW9uOgEqEoMBCgtHZXRMb2NhdGlvbhIsLmRpc3RyaWJ1", + "dGVkX21hdGNoX2VuZ2luZS5HZXRMb2NhdGlvblJlcXVlc3QaKi5kaXN0cmli", + "dXRlZF9tYXRjaF9lbmdpbmUuR2V0TG9jYXRpb25SZXBseSIagtPkkwIUIg8v", + "djEvZ2V0bG9jYXRpb246ASoSkQEKDkFkZFVzZXJUb0dyb3VwEjAuZGlzdHJp", + "YnV0ZWRfbWF0Y2hfZW5naW5lLkR5bmFtaWNMb2NHcm91cFJlcXVlc3QaLi5k", + "aXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuRHluYW1pY0xvY0dyb3VwUmVwbHki", + "HYLT5JMCFyISL3YxL2FkZHVzZXJ0b2dyb3VwOgEqEokBCg5HZXRBcHBJbnN0", + "TGlzdBIsLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5BcHBJbnN0TGlzdFJl", + "cXVlc3QaKi5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuQXBwSW5zdExpc3RS", + "ZXBseSIdgtPkkwIXIhIvdjEvZ2V0YXBwaW5zdGxpc3Q6ASoSfQoLR2V0RnFk", + "bkxpc3QSKS5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuRnFkbkxpc3RSZXF1", + "ZXN0GicuZGlzdHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkZxZG5MaXN0UmVwbHki", + "GoLT5JMCFCIPL3YxL2dldGZxZG5saXN0OgEqEpkBChJHZXRBcHBPZmZpY2lh", + "bEZxZG4SMC5kaXN0cmlidXRlZF9tYXRjaF9lbmdpbmUuQXBwT2ZmaWNpYWxG", + "cWRuUmVxdWVzdBouLmRpc3RyaWJ1dGVkX21hdGNoX2VuZ2luZS5BcHBPZmZp", + "Y2lhbEZxZG5SZXBseSIhgtPkkwIbIhYvdjEvZ2V0YXBwb2ZmaWNpYWxmcWRu", + "OgEqEpQBChFHZXRRb3NQb3NpdGlvbktwaRIsLmRpc3RyaWJ1dGVkX21hdGNo", + "X2VuZ2luZS5Rb3NQb3NpdGlvblJlcXVlc3QaLS5kaXN0cmlidXRlZF9tYXRj", + "aF9lbmdpbmUuUW9zUG9zaXRpb25LcGlSZXBseSIggtPkkwIaIhUvdjEvZ2V0", + "cW9zcG9zaXRpb25rcGk6ASowARKLAQoPU3RyZWFtRWRnZUV2ZW50EikuZGlz", + "dHJpYnV0ZWRfbWF0Y2hfZW5naW5lLkNsaWVudEVkZ2VFdmVudBopLmRpc3Ry", + "aWJ1dGVkX21hdGNoX2VuZ2luZS5TZXJ2ZXJFZGdlRXZlbnQiHoLT5JMCGCIT", + "L3YxL3N0cmVhbWVkZ2VldmVudDoBKigBMAFiBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Google.Api.AnnotationsReflection.Descriptor, global::DistributedMatchEngine.LocReflection.Descriptor, global::DistributedMatchEngine.AppcommonReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::DistributedMatchEngine.IDTypes), typeof(global::DistributedMatchEngine.ReplyStatus), typeof(global::DistributedMatchEngine.QosSessionProfile), typeof(global::DistributedMatchEngine.QosSessionProtocol), }, new pbr::GeneratedClrTypeInfo[] { @@ -7451,7 +7451,7 @@ public BandSelection Clone() { return new BandSelection(this); } - /// Field number for the "rat_2g" field. + /// Field number for the "rat2g" field. public const int Rat2GFieldNumber = 1; private static readonly pb::FieldCodec _repeated_rat2G_codec = pb::FieldCodec.ForString(10); @@ -7464,7 +7464,7 @@ public BandSelection Clone() { get { return rat2G_; } } - /// Field number for the "rat_3g" field. + /// Field number for the "rat3g" field. public const int Rat3GFieldNumber = 2; private static readonly pb::FieldCodec _repeated_rat3G_codec = pb::FieldCodec.ForString(18); @@ -7474,7 +7474,7 @@ public BandSelection Clone() { get { return rat3G_; } } - /// Field number for the "rat_4g" field. + /// Field number for the "rat4g" field. public const int Rat4GFieldNumber = 3; private static readonly pb::FieldCodec _repeated_rat4G_codec = pb::FieldCodec.ForString(26); @@ -7484,7 +7484,7 @@ public BandSelection Clone() { get { return rat4G_; } } - /// Field number for the "rat_5g" field. + /// Field number for the "rat5g" field. public const int Rat5GFieldNumber = 4; private static readonly pb::FieldCodec _repeated_rat5G_codec = pb::FieldCodec.ForString(34); diff --git a/grpc/MatchingEngineGrpc/Protocol/Appcommon.cs b/grpc/MatchingEngineGrpc/Protocol/Appcommon.cs index f224cd09..4a02bf9f 100644 --- a/grpc/MatchingEngineGrpc/Protocol/Appcommon.cs +++ b/grpc/MatchingEngineGrpc/Protocol/Appcommon.cs @@ -35,23 +35,23 @@ static AppcommonReflection() { "Y2VJbmZvRHluYW1pYxIZChFkYXRhX25ldHdvcmtfdHlwZRgBIAEoCRIXCg9z", "aWduYWxfc3RyZW5ndGgYAiABKAQSFAoMY2Fycmllcl9uYW1lGAMgASgJKj8K", "BkxQcm90bxITCg9MX1BST1RPX1VOS05PV04QABIPCgtMX1BST1RPX1RDUBAB", - "Eg8KC0xfUFJPVE9fVURQEAIqqAEKC0hlYWx0aENoZWNrEhgKFEhFQUxUSF9D", - "SEVDS19VTktOT1dOEAASJAogSEVBTFRIX0NIRUNLX0ZBSUxfUk9PVExCX09G", - "RkxJTkUQARIhCh1IRUFMVEhfQ0hFQ0tfRkFJTF9TRVJWRVJfRkFJTBACEhMK", - "D0hFQUxUSF9DSEVDS19PSxADEiEKHUhFQUxUSF9DSEVDS19DTE9VRExFVF9P", - "RkZMSU5FEAQq7wEKDUNsb3VkbGV0U3RhdGUSGgoWQ0xPVURMRVRfU1RBVEVf", - "VU5LTk9XThAAEhkKFUNMT1VETEVUX1NUQVRFX0VSUk9SUxABEhgKFENMT1VE", - "TEVUX1NUQVRFX1JFQURZEAISGgoWQ0xPVURMRVRfU1RBVEVfT0ZGTElORRAD", - "Eh4KGkNMT1VETEVUX1NUQVRFX05PVF9QUkVTRU5UEAQSFwoTQ0xPVURMRVRf", - "U1RBVEVfSU5JVBAFEhoKFkNMT1VETEVUX1NUQVRFX1VQR1JBREUQBhIcChhD", - "TE9VRExFVF9TVEFURV9ORUVEX1NZTkMQByrAAgoQTWFpbnRlbmFuY2VTdGF0", - "ZRIUChBOT1JNQUxfT1BFUkFUSU9OEAASFQoRTUFJTlRFTkFOQ0VfU1RBUlQQ", - "ARIcChJGQUlMT1ZFUl9SRVFVRVNURUQQAhoEkPYYARIXCg1GQUlMT1ZFUl9E", - "T05FEAMaBJD2GAESGAoORkFJTE9WRVJfRVJST1IQBBoEkPYYARIhCh1NQUlO", - "VEVOQU5DRV9TVEFSVF9OT19GQUlMT1ZFUhAFEhcKDUNSTV9SRVFVRVNURUQQ", - "BhoEkPYYARIfChVDUk1fVU5ERVJfTUFJTlRFTkFOQ0UQBxoEkPYYARITCglD", - "Uk1fRVJST1IQCBoEkPYYARIfChVOT1JNQUxfT1BFUkFUSU9OX0lOSVQQCRoE", - "kPYYARIbChFVTkRFUl9NQUlOVEVOQU5DRRAfGgSQ9hgBYgZwcm90bzM=")); + "Eg8KC0xfUFJPVE9fVURQEAIqngEKC0hlYWx0aENoZWNrEhgKFEhFQUxUSF9D", + "SEVDS19VTktOT1dOEAASHwobSEVBTFRIX0NIRUNLX1JPT1RMQl9PRkZMSU5F", + "EAESHAoYSEVBTFRIX0NIRUNLX1NFUlZFUl9GQUlMEAISEwoPSEVBTFRIX0NI", + "RUNLX09LEAMSIQodSEVBTFRIX0NIRUNLX0NMT1VETEVUX09GRkxJTkUQBCrv", + "AQoNQ2xvdWRsZXRTdGF0ZRIaChZDTE9VRExFVF9TVEFURV9VTktOT1dOEAAS", + "GQoVQ0xPVURMRVRfU1RBVEVfRVJST1JTEAESGAoUQ0xPVURMRVRfU1RBVEVf", + "UkVBRFkQAhIaChZDTE9VRExFVF9TVEFURV9PRkZMSU5FEAMSHgoaQ0xPVURM", + "RVRfU1RBVEVfTk9UX1BSRVNFTlQQBBIXChNDTE9VRExFVF9TVEFURV9JTklU", + "EAUSGgoWQ0xPVURMRVRfU1RBVEVfVVBHUkFERRAGEhwKGENMT1VETEVUX1NU", + "QVRFX05FRURfU1lOQxAHKsACChBNYWludGVuYW5jZVN0YXRlEhQKEE5PUk1B", + "TF9PUEVSQVRJT04QABIVChFNQUlOVEVOQU5DRV9TVEFSVBABEhwKEkZBSUxP", + "VkVSX1JFUVVFU1RFRBACGgSQ9hgBEhcKDUZBSUxPVkVSX0RPTkUQAxoEkPYY", + "ARIYCg5GQUlMT1ZFUl9FUlJPUhAEGgSQ9hgBEiEKHU1BSU5URU5BTkNFX1NU", + "QVJUX05PX0ZBSUxPVkVSEAUSFwoNQ1JNX1JFUVVFU1RFRBAGGgSQ9hgBEh8K", + "FUNSTV9VTkRFUl9NQUlOVEVOQU5DRRAHGgSQ9hgBEhMKCUNSTV9FUlJPUhAI", + "GgSQ9hgBEh8KFU5PUk1BTF9PUEVSQVRJT05fSU5JVBAJGgSQ9hgBEhsKEVVO", + "REVSX01BSU5URU5BTkNFEB8aBJD2GAFiBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { pbr::FileDescriptor.DescriptorProtoFileDescriptor, global::Edgeprotogen.EdgeprotogenReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::DistributedMatchEngine.LProto), typeof(global::DistributedMatchEngine.HealthCheck), typeof(global::DistributedMatchEngine.CloudletState), typeof(global::DistributedMatchEngine.MaintenanceState), }, new pbr::GeneratedClrTypeInfo[] { @@ -101,11 +101,11 @@ public enum HealthCheck { /// /// Health Check failure due to RootLB being offline /// - [pbr::OriginalName("HEALTH_CHECK_FAIL_ROOTLB_OFFLINE")] FailRootlbOffline = 1, + [pbr::OriginalName("HEALTH_CHECK_ROOTLB_OFFLINE")] RootlbOffline = 1, /// /// Health Check failure due to Backend server being unavailable /// - [pbr::OriginalName("HEALTH_CHECK_FAIL_SERVER_FAIL")] FailServerFail = 2, + [pbr::OriginalName("HEALTH_CHECK_SERVER_FAIL")] ServerFail = 2, /// /// Health Check is ok /// diff --git a/grpc/MatchingEngineGrpc/api/DistributedMatchEngine.cs b/grpc/MatchingEngineGrpc/api/DistributedMatchEngine.cs index 5b548e24..5074fe05 100644 --- a/grpc/MatchingEngineGrpc/api/DistributedMatchEngine.cs +++ b/grpc/MatchingEngineGrpc/api/DistributedMatchEngine.cs @@ -342,6 +342,15 @@ EdgeEventsConnection GetEdgeEventsConnection() return EdgeEventsConnection; } + public bool StartEdgeEvents(string dmeHost = null, uint dmePort = 0, DeviceInfoDynamic deviceInfoDynamic = null, DeviceInfoStatic deviceInfoStatic = null) + { + EdgeEventsConnection = GetEdgeEventsConnection(edgeEventsCookie, dmeHost, dmePort); + if (EdgeEventsConnection == null) + { + return false; + } + return EdgeEventsConnection.Open(deviceInfoDynamic, deviceInfoStatic); + } public EdgeEventsConnection RestartEdgeEventsConnection(FindCloudletReply newCloudlet, string dmeHost = null, uint dmePort = 0) { From 19e4adeced84a901f7c6ceb97a40aeaf37983636 Mon Sep 17 00:00:00 2001 From: Ahmed Schrute Date: Fri, 25 Feb 2022 10:52:36 -0800 Subject: [PATCH 15/25] nit remove extra comment --- grpc/EngineTests/UnitTest1.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grpc/EngineTests/UnitTest1.cs b/grpc/EngineTests/UnitTest1.cs index be2e7f21..634e227f 100644 --- a/grpc/EngineTests/UnitTest1.cs +++ b/grpc/EngineTests/UnitTest1.cs @@ -241,7 +241,7 @@ public async static Task TestTCPConnection() } catch (Exception e) { - Assert.Fail("TestFailed, Exceptions thrown "+ e.Message + e.Data + e.Source + e.StackTrace); + Assert.Fail("TestFailed, Exception thrown "+ e.Message); Console.WriteLine("TCP socket exception is " + e.Message); } Console.WriteLine("TestTCPConnection finished."); From a55930e3141395f8266c9b1fa5dd9ad1f80ab09e Mon Sep 17 00:00:00 2001 From: Ahmed Schrute Date: Thu, 3 Mar 2022 22:49:09 -0800 Subject: [PATCH 16/25] Fix TLS TCP check, fix GetHTTPConnection test --- grpc/EngineTests/UnitTest1.cs | 14 ++++++++------ rest/EngineTests/UnitTest1.cs | 9 +++++---- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/grpc/EngineTests/UnitTest1.cs b/grpc/EngineTests/UnitTest1.cs index 634e227f..dc3274c9 100644 --- a/grpc/EngineTests/UnitTest1.cs +++ b/grpc/EngineTests/UnitTest1.cs @@ -265,9 +265,10 @@ public async static Task TestHTTPConnection() HttpClient httpClient = await me.GetHTTPClient(uri); Assert.ByVal(httpClient, Is.Not.Null); - HttpResponseMessage response = await httpClient.GetAsync(httpClient.BaseAddress + "/automation.html"); + HttpResponseMessage response = await httpClient.GetAsync(httpClient.BaseAddress + "automation.html"); response.EnsureSuccessStatusCode(); string responseBody = await response.Content.ReadAsStringAsync(); + Console.WriteLine(responseBody); Assert.ByVal(responseBody, Is.Not.Null); string responseBodyTest = "" + @@ -293,7 +294,8 @@ public async static Task TestHTTPConnection() } [Test] - public async static Task TestTCPTLSConnection() + [TestCase("Ahmed-Org","sdk-test","9.0","eu-stage.dme.mobiledgex.net")] + public async static Task TestTCPTLSConnection(string org_name, string app_name, string app_vers, string dme_host) { // TLS on TCP Connection Test try @@ -302,10 +304,10 @@ public async static Task TestTCPTLSConnection() FindCloudletReply reply1 = null; // Overide, test to another server: - reply1 = await me.RegisterAndFindCloudlet(dmeHost, MatchingEngine.defaultDmeGrpcPort, - orgName: orgName, - appName: appName, - appVersion: appVers, + reply1 = await me.RegisterAndFindCloudlet(dme_host, MatchingEngine.defaultDmeGrpcPort, + orgName: org_name, + appName: app_name, + appVersion: app_vers, loc: loc); diff --git a/rest/EngineTests/UnitTest1.cs b/rest/EngineTests/UnitTest1.cs index f7c25a33..2acc409f 100644 --- a/rest/EngineTests/UnitTest1.cs +++ b/rest/EngineTests/UnitTest1.cs @@ -370,7 +370,8 @@ public async static Task TestHTTPConnection() } [Test] - public async static Task TestTCPTLSConnection() + [TestCase("Ahmed-Org","sdk-test","9.0","eu-stage.dme.mobiledgex.net")] + public async static Task TestTCPTLSConnection(string org_name, string app_name, string app_vers, string dmeHost) { MatchingEngine.ServerRequiresClientCertificateAuthentication(false); @@ -382,9 +383,9 @@ public async static Task TestTCPTLSConnection() FindCloudletReply reply1 = null; reply1 = await me.RegisterAndFindCloudlet(dmeHost, MatchingEngine.defaultDmeRestPort, - orgName: orgName, - appName: appName, - appVersion: appVers, + orgName: org_name, + appName: app_name, + appVersion: app_vers, loc: loc); int knownPort = 2015; From f7a39c3499a6b3a162b9e5d34ee1a753f28e02fb Mon Sep 17 00:00:00 2001 From: Garner Lee <1672745+lgarner@users.noreply.github.com> Date: Wed, 2 Mar 2022 12:59:10 -0800 Subject: [PATCH 17/25] EDGECLOUD-6227: Remove CellID and UniqueID entirely. --- grpc/EngineTests/NetworkTests1.cs | 8 +- grpc/EngineTests/UnitTest1.cs | 36 +---- grpc/MatchingEngineGrpc/api/CarrierInfo.cs | 6 - .../api/DistributedMatchEngine.cs | 131 ++--------------- grpc/MatchingEngineGrpc/api/MelMessaging.cs | 39 ----- grpc/MatchingEngineGrpc/api/UniqueID.cs | 49 ------- grpc/SampleApp/SampleApp.cs | 20 +-- rest/EngineTests/NetworkTests1.cs | 6 - rest/EngineTests/QATests.cs | 25 +--- rest/EngineTests/UnitTest1.cs | 67 +-------- .../CarrierInfo.cs | 6 - .../DistributedMatchEngine.cs | 134 ++---------------- .../MelMessaging.cs | 22 --- rest/MatchingEngineSDKRestLibrary/UniqueID.cs | 49 ------- rest/RestSample/RestSample.cs | 32 +---- 15 files changed, 38 insertions(+), 592 deletions(-) delete mode 100644 grpc/MatchingEngineGrpc/api/MelMessaging.cs delete mode 100644 grpc/MatchingEngineGrpc/api/UniqueID.cs delete mode 100644 rest/MatchingEngineSDKRestLibrary/MelMessaging.cs delete mode 100644 rest/MatchingEngineSDKRestLibrary/UniqueID.cs diff --git a/grpc/EngineTests/NetworkTests1.cs b/grpc/EngineTests/NetworkTests1.cs index 1907fdfb..dbb3b33c 100644 --- a/grpc/EngineTests/NetworkTests1.cs +++ b/grpc/EngineTests/NetworkTests1.cs @@ -40,11 +40,6 @@ string CarrierInfo.GetMccMnc() return ""; } - ulong CarrierInfo.GetCellID() - { - return 0; - } - public ulong GetSignalStrength() { return 0; @@ -62,10 +57,9 @@ public void Setup() // Create a network interface abstraction, with named WiFi and Cellular interfaces. CarrierInfo carrierInfo = new TestCarrierInfo(); NetInterface netInterface = new SimpleNetInterface(new MacNetworkInterfaceName()); - UniqueID uniqueIdInterface = new EmptyUniqueID(); // pass in unknown interfaces at compile and runtime. - me = new MatchingEngine(carrierInfo, netInterface, uniqueIdInterface); + me = new MatchingEngine(carrierInfo, netInterface); } public NetworkTests1() diff --git a/grpc/EngineTests/UnitTest1.cs b/grpc/EngineTests/UnitTest1.cs index dc3274c9..5e9ffd76 100644 --- a/grpc/EngineTests/UnitTest1.cs +++ b/grpc/EngineTests/UnitTest1.cs @@ -17,7 +17,6 @@ using NUnit.Framework; using DistributedMatchEngine; -using DistributedMatchEngine.Mel; using System.Collections.Generic; using System.IO; using System.Text; @@ -62,11 +61,6 @@ string CarrierInfo.GetMccMnc() return null; } - ulong CarrierInfo.GetCellID() - { - return 0; - } - public ulong GetSignalStrength() { return 0; @@ -78,19 +72,6 @@ public string GetDataNetworkType() } } - class TestUniqueID : UniqueID - { - string UniqueID.GetUniqueIDType() - { - return "uniqueIdTypeModel"; - } - - string UniqueID.GetUniqueID() - { - return "uniqueId"; - } - } - class TestDeviceInfo : DeviceInfoApp { public DeviceInfoDynamic GetDeviceInfoDynamic() @@ -120,27 +101,16 @@ public bool IsPingSupported() } } - public class TestMelMessaging : MelMessagingInterface - { - public bool IsMelEnabled() { return false; } - public string GetMelVersion() { return ""; } - public string GetUid() { return ""; } - public string SetToken(string token, string app_name) { return ""; } - public string GetManufacturer() { return "DummyManufacturer"; } - } - [SetUp] public void Setup() { // Create a network interface abstraction, with named WiFi and Cellular interfaces. CarrierInfo carrierInfo = new TestCarrierInfo(); NetInterface netInterface = new SimpleNetInterface(new MacNetworkInterfaceName()); - UniqueID uniqueIdInterface = new TestUniqueID(); DeviceInfoApp deviceInfo = new TestDeviceInfo(); // pass in unknown interfaces at compile and runtime. - me = new MatchingEngine(carrierInfo, netInterface, uniqueIdInterface, deviceInfo); - me.SetMelMessaging(new TestMelMessaging()); + me = new MatchingEngine(carrierInfo, netInterface, deviceInfo); } [TearDown] @@ -951,10 +921,6 @@ public void TestUniqueIdText() appName: appName, appVersion: appVers); - // Micro Test: - TestMelMessaging mt = new TestMelMessaging(); - Assert.AreEqual("DummyManufacturer", mt.GetManufacturer()); - // It's the actual RegisterClient DME call that grabs the latest // values for hashed Advertising ID and unique ID, and does so as late // as possible. diff --git a/grpc/MatchingEngineGrpc/api/CarrierInfo.cs b/grpc/MatchingEngineGrpc/api/CarrierInfo.cs index 39cc27b7..07ba3b7a 100644 --- a/grpc/MatchingEngineGrpc/api/CarrierInfo.cs +++ b/grpc/MatchingEngineGrpc/api/CarrierInfo.cs @@ -28,7 +28,6 @@ public interface CarrierInfo { string GetCurrentCarrierName(); string GetMccMnc(); - ulong GetCellID(); ulong GetSignalStrength(); string GetDataNetworkType(); } @@ -49,11 +48,6 @@ public string GetMccMnc() throw new NotImplementedException("Required CarrierInfo interface function: GetMccMnc() is not defined!"); } - public ulong GetCellID() - { - throw new NotImplementedException("Required CarrierInfo interface function: GetCellID() is not defined!"); - } - public ulong GetSignalStrength() { throw new NotImplementedException("Required CarrierInfo interface function: GetSingalStength() is not defined!"); diff --git a/grpc/MatchingEngineGrpc/api/DistributedMatchEngine.cs b/grpc/MatchingEngineGrpc/api/DistributedMatchEngine.cs index 5074fe05..c25ab055 100644 --- a/grpc/MatchingEngineGrpc/api/DistributedMatchEngine.cs +++ b/grpc/MatchingEngineGrpc/api/DistributedMatchEngine.cs @@ -26,7 +26,6 @@ using System.Threading.Tasks; using DistributedMatchEngine.PerformanceMetrics; -using DistributedMatchEngine.Mel; using System.Net.Sockets; using Grpc.Core; using Google.Protobuf.Collections; @@ -210,9 +209,7 @@ public partial class MatchingEngine : IDisposable public CarrierInfo carrierInfo { get; set; } public NetInterface netInterface { get; set; } - public UniqueID uniqueID { get; set; } public DeviceInfoApp deviceInfo { get; private set; } - private MelMessagingInterface melMessaging { get; set; } internal DataContractJsonSerializerSettings serializerSettings = new DataContractJsonSerializerSettings { @@ -260,13 +257,12 @@ public void InvokeEdgeEventsReciever(ServerEdgeEvent serverEdgeEvent) /*! * Constructor for MatchingEngine class. * \param carrierInfo (CarrierInfo): - * \param netInterface (NetInterface): - * \param uniqueID (UniqueID): + * \param netInterface (NetInterface): * \param deviceInfo (DeviceInfo): * \section meconstructorexample Example * \snippet RestSample.cs meconstructorexample */ - public MatchingEngine(CarrierInfo carrierInfo = null, NetInterface netInterface = null, UniqueID uniqueID = null, DeviceInfoApp deviceInfo = null) + public MatchingEngine(CarrierInfo carrierInfo = null, NetInterface netInterface = null, DeviceInfoApp deviceInfo = null) { httpClient = new HttpClient(); httpClient.Timeout = TimeSpan.FromMilliseconds(DEFAULT_GRPC_TIMEOUT_MS); @@ -288,15 +284,6 @@ public MatchingEngine(CarrierInfo carrierInfo = null, NetInterface netInterface this.netInterface = netInterface; } - if (uniqueID == null) - { - this.uniqueID = new EmptyUniqueID(); - } - else - { - this.uniqueID = uniqueID; - } - if (deviceInfo == null) { this.deviceInfo = new EmptyDeviceInfo(); @@ -306,9 +293,6 @@ public MatchingEngine(CarrierInfo carrierInfo = null, NetInterface netInterface this.deviceInfo = deviceInfo; } - // Default to empty. - SetMelMessaging(null); - // Setup a dummy event delegate for monitoring events: EdgeEventsReceiver += (ServerEdgeEvent serverEdgeEvent) => { @@ -372,22 +356,6 @@ public EdgeEventsConnection RestartEdgeEventsConnection(FindCloudletReply newClo return EdgeEventsConnection; } - /*! - * A device specific interface. - * @private - */ - public void SetMelMessaging(MelMessagingInterface melInterface) - { - if (melInterface != null) - { - this.melMessaging = melInterface; - } - else - { - this.melMessaging = new EmptyMelMessaging(); - } - } - /*! * Set the REST timeout for DME APIs. * \param timeout_in_milliseconds (int) @@ -403,33 +371,6 @@ public TimeSpan SetTimeout(int timeout_in_milliseconds) return httpClient.Timeout = TimeSpan.FromMilliseconds(DEFAULT_GRPC_TIMEOUT_MS); } - /*! - * GetUniqueIDType - * \ingroup functions_dmeutils - */ - public string GetUniqueIDType() - { - return uniqueID.GetUniqueIDType(); - } - - /*! - * GetUniqueID - * \ingroup functions_dmeutils - */ - public string GetUniqueID() - { - return uniqueID.GetUniqueID(); - } - - /*! - * GetCellID - * \ingroup functions_dmeutils - */ - public ulong GetCellID() - { - return carrierInfo.GetCellID(); - } - /*! * GetDeviceInfoStatic * \ingroup functions_dmeutils @@ -710,16 +651,13 @@ internal Channel ChannelPicker(string host, uint port) * \param appName (string): Application name * \param appVersion (string): Application version * \param authToken (string): Optional authentication token for application. If none supplied, default is null. - * \param cellID (UInt32): Optional cell tower id. If none supplied, default is 0. - * \param uniqueIDType (string): Optional - * \param uniqueID (string): Optional * \param tags (Tag[]): Optional * \return RegisterClientRequest * \section createregisterexample Example * \snippet RestSample.cs createregisterexample */ public RegisterClientRequest CreateRegisterClientRequest(string orgName, string appName, string appVersion, string authToken = "", - UInt32 cellID = 0, string uniqueIDType = "", string uniqueID = "", Dictionary tags = null) + Dictionary tags = null) { var request = new RegisterClientRequest { @@ -733,14 +671,6 @@ public RegisterClientRequest CreateRegisterClientRequest(string orgName, string { request.AuthToken = authToken; } - if (uniqueID != null && !uniqueID.Trim().Equals("")) - { - request.UniqueId = uniqueID; - } - if (uniqueIDType != null && !uniqueIDType.Trim().Equals("")) - { - request.UniqueIdType = uniqueIDType; - } CopyTagField(request.Tags, tags); @@ -764,24 +694,6 @@ public async Task RegisterClient(RegisterClientRequest requ return await RegisterClient(GenerateDmeHostAddress(), dmePort, request); } - private RegisterClientRequest UpdateRequestForUniqueID(RegisterClientRequest request) - { - string uid = melMessaging.GetUid(); - string aUniqueIdType = GetUniqueIDType(); // Read: device model - string aUniqueId = GetUniqueID(); - string manufacturer = melMessaging.GetManufacturer(); - - if (manufacturer != null && - aUniqueIdType != null && aUniqueIdType.Length > 0 && - aUniqueId != null && aUniqueId.Length > 0) - { - request.UniqueIdType = manufacturer + ":" + aUniqueIdType + ":HASHED_ID"; - request.UniqueId = aUniqueId; - } - - return request; - } - private FindCloudletRequest UpdateRequestForQoSNetworkPriority(FindCloudletRequest request, IPEndPoint localEndPoint) { if (localEndPoint == null || localEndPoint.AddressFamily != AddressFamily.InterNetwork) @@ -843,9 +755,6 @@ public async Task RegisterClient(string host, uint port, Re }; CopyTagField(oldRequest.Tags, request.Tags); - // DeviceInfo - request = UpdateRequestForUniqueID(request); - // One time use Channel: Channel channel = ChannelPicker(host, port); @@ -889,13 +798,12 @@ public async Task RegisterClient(string host, uint port, Re * \ingroup functions_dmeapis * \param loc (Loc): User location * \param carrierName (string): Optional device carrier (if not provided, carrier information will be pulled from device) - * \param cellID (UInt32): Optional cell tower id. If none supplied, default is 0. * \param tags (Tag[]): Optional * \return FindCloudletRequest * \section createfindcloudletexample Example * \snippet RestSample.cs createfindcloudletexample */ - public FindCloudletRequest CreateFindCloudletRequest(Loc loc, string carrierName = null, UInt32 cellID = 0, Dictionary tags = null) + public FindCloudletRequest CreateFindCloudletRequest(Loc loc, string carrierName = null, Dictionary tags = null) { if (sessionCookie == null) { @@ -1243,20 +1151,17 @@ public async Task FindCloudletPerformanceMode(string host, ui * \param loc (Loc): User location * \param carrierName (string): Optional device carrier (if not provided, carrier information will be pulled from device) * \param authToken (string): Optional authentication token for application. If none supplied, default is null. - * \param cellID (UInt32): Optional cell tower id. If none supplied, default is 0. - * \param uniqueIDType (string): Optional - * \param uniqueID (string): Optional * \param tags (Dictionary): Optional * \param mode (FindCloudletMode): Optional. Default is PROXIMITY. PROXIMITY will just return the findCloudletReply sent by DME (Generic REST API to findcloudlet endpoint). PERFORMANCE will test all app insts deployed on the specified carrier network and return the cloudlet with the lowest latency (Note: PERFORMANCE may take some time to return). Default value if mode parameter is not supplied is PROXIMITY. * \return Task */ public async Task RegisterAndFindCloudlet( string orgName, string appName, string appVersion, Loc loc, string carrierName = "", string authToken = null, - UInt32 cellID = 0, string uniqueIDType = null, string uniqueID = null, Dictionary tags = null, FindCloudletMode mode = FindCloudletMode.PROXIMITY) + Dictionary tags = null, FindCloudletMode mode = FindCloudletMode.PROXIMITY) { return await RegisterAndFindCloudlet(GenerateDmeHostAddress(), dmePort, orgName, appName, appVersion, loc, - carrierName, authToken, cellID, uniqueIDType, uniqueID, tags, mode); + carrierName, authToken, tags, mode); } /*! @@ -1270,16 +1175,13 @@ public async Task RegisterAndFindCloudlet( * \param loc (Loc): User location * \param carrierName (string): Optional device carrier (if not provided, carrier information will be pulled from device) * \param authToken (string): Optional authentication token for application. If none supplied, default is null. - * \param cellID (UInt32): Optional cell tower id. If none supplied, default is 0. - * \param uniqueIDType (string): Optional - * \param uniqueID (string): Optional * \param tags (Tag[]): Optional * \param mode (FindCloudletMode): Optional. Default is PROXIMITY. PROXIMITY will just return the findCloudletReply sent by DME (Generic REST API to findcloudlet endpoint). PERFORMANCE will test all app insts deployed on the specified carrier network and return the cloudlet with the lowest latency (Note: PERFORMANCE may take some time to return). Default value if mode parameter is not supplied is PROXIMITY. * \return Task */ public async Task RegisterAndFindCloudlet(string host, uint port, string orgName, string appName, string appVersion, Loc loc, string carrierName = "", string authToken = "", - UInt32 cellID = 0, string uniqueIDType = null, string uniqueID = null, Dictionary tags = null, FindCloudletMode mode = FindCloudletMode.PROXIMITY) + Dictionary tags = null, FindCloudletMode mode = FindCloudletMode.PROXIMITY) { // Register Client RegisterClientRequest registerRequest = CreateRegisterClientRequest( @@ -1287,9 +1189,6 @@ public async Task RegisterAndFindCloudlet(string host, uint p appName: appName, appVersion: appVersion, authToken: authToken, - cellID: cellID, - uniqueIDType: uniqueIDType, - uniqueID: uniqueID, tags: tags); RegisterClientReply registerClientReply = await RegisterClient(host, port, registerRequest) .ConfigureAwait(false); @@ -1304,7 +1203,6 @@ public async Task RegisterAndFindCloudlet(string host, uint p FindCloudletRequest findCloudletRequest = CreateFindCloudletRequest( loc: loc, carrierName: carrierName, - cellID: cellID, tags: tags); FindCloudletReply findCloudletReply = await FindCloudlet(host, port, findCloudletRequest, mode) .ConfigureAwait(false); @@ -1322,13 +1220,12 @@ public async Task RegisterAndFindCloudlet(string host, uint p * \ingroup functions_dmeapis * \param loc (Loc): User location * \param carrierName (string): Optional device carrier (if not provided, carrier information will be pulled from device) - * \param cellID (UInt32): Optional cell tower id. If none supplied, default is 0. * \param tags (Tag[]): Optional * \return VerifyLocationRequest * \section createverifylocationexample Example * \snippet RestSample.cs createverifylocationexample */ - public VerifyLocationRequest CreateVerifyLocationRequest(Loc loc, string carrierName = null, UInt32 cellID = 0, Dictionary tags = null) + public VerifyLocationRequest CreateVerifyLocationRequest(Loc loc, string carrierName = null, Dictionary tags = null) { if (sessionCookie == null) { @@ -1353,7 +1250,7 @@ public VerifyLocationRequest CreateVerifyLocationRequest(Loc loc, string carrier } /*! - * Makes sure that the user's location is not spoofed based on cellID and gps location. + * Makes sure that the user's location is not spoofed based on gps location. * Returns the Cell Tower status (CONNECTED_TO_SPECIFIED_TOWER if successful) and Gps Location status (LOC_VERIFIED if successful). * Also provides the distance between where the user claims to be and where carrier believes user to be (via gps and cell id) in km. * \ingroup functions_dmeapis @@ -1410,13 +1307,12 @@ public async Task VerifyLocation(string host, uint port, Ve * \ingroup functions_dmeapis * \param loc (Loc): User location * \param carrierName (string): Optional device carrier (if not provided, carrier information will be pulled from device) - * \param cellID (UInt32): Optional cell tower id. If none supplied, default is 0. * \param tags (Tag[]): Optional * \return AppInstListRequest * \section createappinstexample Example * \snippet RestSample.cs createappinstexample */ - public AppInstListRequest CreateAppInstListRequest(Loc loc, string carrierName = null, UInt32 cellID = 0, Dictionary tags = null) + public AppInstListRequest CreateAppInstListRequest(Loc loc, string carrierName = null, Dictionary tags = null) { if (sessionCookie == null) { @@ -1501,14 +1397,13 @@ public async Task GetAppInstList(string host, uint port, AppIn * \param QosPositions (List QosPositions, Int32 lteCategory, BandSelection bandSelection, - UInt32 cellID = 0, Dictionary tags = null) + Dictionary tags = null) { if (sessionCookie == null) { @@ -1852,7 +1747,7 @@ public async Task DeleteQOSPrioritySession(string } } - private FqdnListRequest CreateFqdnListRequest(UInt32 cellID = 0, Dictionary tags = null) + private FqdnListRequest CreateFqdnListRequest(Dictionary tags = null) { if (sessionCookie == null) { @@ -1902,7 +1797,7 @@ private async Task GetFqdnList(string host, uint port, FqdnListRe } private DynamicLocGroupRequest CreateDynamicLocGroupRequest(DlgCommType dlgCommType, UInt64 lgId = 0, - string userData = null, UInt32 cellID = 0, Dictionary tags = null) + string userData = null, Dictionary tags = null) { if (sessionCookie == null) { diff --git a/grpc/MatchingEngineGrpc/api/MelMessaging.cs b/grpc/MatchingEngineGrpc/api/MelMessaging.cs deleted file mode 100644 index d28f47b6..00000000 --- a/grpc/MatchingEngineGrpc/api/MelMessaging.cs +++ /dev/null @@ -1,39 +0,0 @@ -/** - * Copyright 2018-2021 MobiledgeX, Inc. All rights and licenses reserved. - * MobiledgeX, Inc. 156 2nd Street #408, San Francisco, CA 94105 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -using System; - -namespace DistributedMatchEngine.Mel -{ - public interface MelMessagingInterface - { - bool IsMelEnabled(); - string GetMelVersion(); - string GetUid(); - string SetToken(string token, string app_name); - string GetManufacturer(); - } - - public class EmptyMelMessaging : MelMessagingInterface - { - public bool IsMelEnabled() { return false; } - public string GetMelVersion() { return ""; } - public string GetUid() { return ""; } - public string SetToken(string token, string app_name) { return ""; } - public string GetManufacturer() { return ""; } - } -} diff --git a/grpc/MatchingEngineGrpc/api/UniqueID.cs b/grpc/MatchingEngineGrpc/api/UniqueID.cs deleted file mode 100644 index 675dd69b..00000000 --- a/grpc/MatchingEngineGrpc/api/UniqueID.cs +++ /dev/null @@ -1,49 +0,0 @@ -/** - * Copyright 2018-2021 MobiledgeX, Inc. All rights and licenses reserved. - * MobiledgeX, Inc. 156 2nd Street #408, San Francisco, CA 94105 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -using System; - -namespace DistributedMatchEngine -{ - /*! - * UniqeID interface for the platform - * Function implemented per platform - * \ingroup classes_integration - */ - public interface UniqueID - { - string GetUniqueIDType(); - string GetUniqueID(); - } - - /*! - * Empty implementation of CarrierInfo interface - * \ingroup classes_integration - */ - public class EmptyUniqueID : UniqueID - { - public string GetUniqueIDType() - { - throw new NotImplementedException("Required UniqueID interface function: GetUniqueIDType() is not defined!"); - } - - public string GetUniqueID() - { - throw new NotImplementedException("Required UniqueID interface function: GetUniqueID() is not defined"); - } - } -} diff --git a/grpc/SampleApp/SampleApp.cs b/grpc/SampleApp/SampleApp.cs index 2774b031..ba692c84 100644 --- a/grpc/SampleApp/SampleApp.cs +++ b/grpc/SampleApp/SampleApp.cs @@ -103,20 +103,6 @@ public ulong GetSignalStrength() } } - // This interface is optional but is used in the sample. - class DummyUniqueID : UniqueID - { - string UniqueID.GetUniqueIDType() - { - return "dummyModel"; - } - - string UniqueID.GetUniqueID() - { - return "abcdef0123456789"; - } - } - class DummyDeviceInfo : DeviceInfoApp { @@ -308,8 +294,7 @@ public async Task RunSampleFlowA() me = new MatchingEngine( netInterface: new SimpleNetInterface(new MacNetworkInterfaceName()), carrierInfo: new DummyCarrierInfo(), - deviceInfo: new DummyDeviceInfo(), - uniqueID: new DummyUniqueID()); + deviceInfo: new DummyDeviceInfo()); location = GetLocation(); locs = new Loc[] { sanfran, paloalto, anchorage, austin }; string uri = dmeHost + ":" + dmePort; @@ -533,8 +518,7 @@ public async Task RunSampleFlow() me = new MatchingEngine( netInterface: new SimpleNetInterface(new MacNetworkInterfaceName()), carrierInfo: new DummyCarrierInfo(), - deviceInfo: new DummyDeviceInfo(), - uniqueID: new DummyUniqueID()); + deviceInfo: new DummyDeviceInfo()); me.useOnlyWifi = true; me.useSSL = true; // false --> Local testing only. location = GetLocation(); diff --git a/rest/EngineTests/NetworkTests1.cs b/rest/EngineTests/NetworkTests1.cs index 0ca8fa52..c17d7a7a 100644 --- a/rest/EngineTests/NetworkTests1.cs +++ b/rest/EngineTests/NetworkTests1.cs @@ -48,11 +48,6 @@ string CarrierInfo.GetMccMnc() return ""; } - ulong CarrierInfo.GetCellID() - { - return 0; - } - public string GetDataNetworkPath() { return ""; @@ -70,7 +65,6 @@ public void Setup() // Create a network interface abstraction, with named WiFi and Cellular interfaces. CarrierInfo carrierInfo = new TestCarrierInfo(); NetInterface netInterface = new SimpleNetInterface(new MacNetworkInterfaceName()); - UniqueID uniqueIdInterface = new EmptyUniqueID(); // pass in unknown interfaces at compile and runtime. me = new MatchingEngine(carrierInfo, netInterface); diff --git a/rest/EngineTests/QATests.cs b/rest/EngineTests/QATests.cs index b2931843..a7d05faa 100644 --- a/rest/EngineTests/QATests.cs +++ b/rest/EngineTests/QATests.cs @@ -24,18 +24,7 @@ public class QATests public QATests() { } - public class DummyUniqueID : UniqueID - { - string UniqueID.GetUniqueIDType() - { - return "dummyModel"; - } - string UniqueID.GetUniqueID() - { - return "abcdef0123456789"; - } - } public class DummyDeviceInfo : DeviceInfo { DummyCarrierInfo carrierInfo = new DummyCarrierInfo(); @@ -59,10 +48,6 @@ public bool IsPingSupported() } public class DummyCarrierInfo : CarrierInfo { - public ulong GetCellID() - { - return 0; - } public string GetCurrentCarrierName() { @@ -170,7 +155,7 @@ async Task getCurrentCarrierName() { carrierName = await getCurrentCarrierName(); Console.WriteLine("RegisterClientRest Testcase"); - MatchingEngine me = new MatchingEngine(null, new SimpleNetInterface(new LinuxNetworkInterfaceName()), new DummyUniqueID(), new DummyDeviceInfo()); + MatchingEngine me = new MatchingEngine(null, new SimpleNetInterface(new LinuxNetworkInterfaceName()), new DummyDeviceInfo()); // Start location task: var locTask = Util.GetLocationFromDevice(); @@ -331,7 +316,7 @@ public async static Task TestFindCloudlet() { Console.WriteLine("FindCloudletSuccessRest Testcase"); - MatchingEngine me = new MatchingEngine(null, new SimpleNetInterface(new LinuxNetworkInterfaceName()), new DummyUniqueID(), new DummyDeviceInfo()); + MatchingEngine me = new MatchingEngine(null, new SimpleNetInterface(new LinuxNetworkInterfaceName()), new DummyDeviceInfo()); me.SetTimeout(15000); var locTask = Util.GetLocationFromDevice(); @@ -496,7 +481,7 @@ public async static Task TestVerifyLocation(string locLat, string locLong, doubl Console.WriteLine("VerifyLocationRest Testcase"); - MatchingEngine me = new MatchingEngine(new DummyCarrierInfo(), new SimpleNetInterface(new LinuxNetworkInterfaceName()), new DummyUniqueID(), new DummyDeviceInfo()); + MatchingEngine me = new MatchingEngine(new DummyCarrierInfo(), new SimpleNetInterface(new LinuxNetworkInterfaceName()), new DummyDeviceInfo()); Console.WriteLine("Seting the location in the Location Server"); SetLocation(locLat, locLong); @@ -576,12 +561,12 @@ public async static Task TestGetUDPConnection() Console.WriteLine("Get UDP Connections Testcase!!"); CarrierInfo dummyCarrier = new DummyCarrierInfo(); - MatchingEngine me = new MatchingEngine(dummyCarrier, new SimpleNetInterface(new LinuxNetworkInterfaceName()), new DummyUniqueID(), new DummyDeviceInfo()); + MatchingEngine me = new MatchingEngine(dummyCarrier, new SimpleNetInterface(new LinuxNetworkInterfaceName()), new DummyDeviceInfo()); me.SetTimeout(15000); FindCloudletReply findCloudletInfo = null; var locTask = Util.GetLocationFromDevice(); - var registerClientRequest = me.CreateRegisterClientRequest(orgName, appName, appVers, developerAuthToken, (uint)me.carrierInfo.GetCellID(), me.GetUniqueIDType(), me.GetUniqueIDType()); + var registerClientRequest = me.CreateRegisterClientRequest(orgName, appName, appVers, developerAuthToken); RegisterClientReply registerClientReply; registerClientReply = await me.RegisterClient(dmeHost, MatchingEngine.defaultDmeRestPort, registerClientRequest); Assert.True(registerClientReply.status == ReplyStatus.Success, "GetUDPConnectionTest RegisterClient Failed"); diff --git a/rest/EngineTests/UnitTest1.cs b/rest/EngineTests/UnitTest1.cs index 2acc409f..6d1b455a 100644 --- a/rest/EngineTests/UnitTest1.cs +++ b/rest/EngineTests/UnitTest1.cs @@ -17,7 +17,6 @@ using NUnit.Framework; using DistributedMatchEngine; -using DistributedMatchEngine.Mel; using System.Collections.Generic; using System.IO; @@ -63,11 +62,6 @@ string CarrierInfo.GetMccMnc() return null; } - ulong CarrierInfo.GetCellID() - { - return 0; - } - public string GetDataNetworkPath() { return ""; @@ -79,19 +73,6 @@ public ulong GetSignalStrength() } } - public class TestUniqueID : UniqueID - { - string UniqueID.GetUniqueIDType() - { - return "uniqueIdTypeModel"; - } - - string UniqueID.GetUniqueID() - { - return "uniqueId"; - } - } - public class TestDeviceInfo : DeviceInfo { Dictionary DeviceInfo.GetDeviceInfo() @@ -105,27 +86,16 @@ public bool IsPingSupported() } } - public class TestMelMessaging : MelMessagingInterface - { - public bool IsMelEnabled() { return false; } - public string GetMelVersion() { return ""; } - public string GetUid() { return ""; } - public string SetToken(string token, string app_name) { return ""; } - public string GetManufacturer() { return "DummyManufacturer"; } - } - [SetUp] public void Setup() { // Create a network interface abstraction, with named WiFi and Cellular interfaces. CarrierInfo carrierInfo = new TestCarrierInfo(); NetInterface netInterface = new SimpleNetInterface(new MacNetworkInterfaceName()); - UniqueID uniqueIdInterface = new TestUniqueID(); DeviceInfo deviceInfo = new TestDeviceInfo(); // pass in unknown interfaces at compile and runtime. - me = new MatchingEngine(carrierInfo, netInterface, uniqueIdInterface, deviceInfo); - me.SetMelMessaging(new TestMelMessaging()); + me = new MatchingEngine(carrierInfo, netInterface, deviceInfo); } private MemoryStream getMemoryStream(string jsonStr) @@ -1032,41 +1002,6 @@ public async static Task TestNetTestLocalEndpointsMac() } } - [Test] - public async static Task TestUniqueIdText() - { - RegisterClientRequest req1; - - - try - { - req1 = me.CreateRegisterClientRequest( - orgName: orgName, - appName: appName, - appVersion: appVers); - - TestMelMessaging mt = new TestMelMessaging(); - Assert.AreEqual("DummyManufacturer", mt.GetManufacturer()); - - // It's the actual RegisterClient DME call that grabs the latest - // values for hashed Advertising ID and unique ID, and does so as late - // as possible. - // It's the actual send, not the message creation where it is filled in. - - Console.WriteLine("Testing null"); - Assert.AreEqual(null, req1.unique_id_type); - Assert.AreEqual(null, req1.unique_id); - } - catch (Exception e) - { - Assert.Fail("Excepton while testing: " + e.Message); - if (e.InnerException != null) - { - Console.WriteLine("Inner Exception: " + e.InnerException.Message + ",\nStacktrace: " + e.InnerException.StackTrace); - } - } - } - [Test] public void TestDictionary() { diff --git a/rest/MatchingEngineSDKRestLibrary/CarrierInfo.cs b/rest/MatchingEngineSDKRestLibrary/CarrierInfo.cs index a20d57f2..f491f6f5 100644 --- a/rest/MatchingEngineSDKRestLibrary/CarrierInfo.cs +++ b/rest/MatchingEngineSDKRestLibrary/CarrierInfo.cs @@ -28,7 +28,6 @@ public interface CarrierInfo { string GetCurrentCarrierName(); string GetMccMnc(); - ulong GetCellID(); string GetDataNetworkPath(); ulong GetSignalStrength(); } @@ -49,11 +48,6 @@ public string GetMccMnc() throw new NotImplementedException("Required CarrierInfo interface function: GetMccMnc() is not defined!"); } - public ulong GetCellID() - { - throw new NotImplementedException("Required CarrierInfo interface function: GetCellID() is not defined!"); - } - public string GetDataNetworkPath() { throw new NotImplementedException("Required CarrierInfo interface function: GetDataNetworkPath() is not defined!"); diff --git a/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs b/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs index ac6bd8b7..611c1f17 100644 --- a/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs +++ b/rest/MatchingEngineSDKRestLibrary/DistributedMatchEngine.cs @@ -27,9 +27,7 @@ using System.Threading.Tasks; using DistributedMatchEngine.PerformanceMetrics; -using DistributedMatchEngine.Mel; using System.Net.Sockets; -using System.Runtime.Serialization; /*! @@ -207,9 +205,7 @@ public partial class MatchingEngine : IDisposable public CarrierInfo carrierInfo { get; set; } public NetInterface netInterface { get; set; } - public UniqueID uniqueID { get; set; } public DeviceInfo deviceInfo { get; private set; } - private MelMessagingInterface melMessaging { get; set; } internal DataContractJsonSerializerSettings serializerSettings = new DataContractJsonSerializerSettings { @@ -258,13 +254,12 @@ public partial class MatchingEngine : IDisposable /*! * Constructor for MatchingEngine class. * \param carrierInfo (CarrierInfo): - * \param netInterface (NetInterface): - * \param uniqueID (UniqueID): + * \param netInterface (NetInterface): * \param deviceInfo (DeviceInfo): * \section meconstructorexample Example * \snippet RestSample.cs meconstructorexample */ - public MatchingEngine(CarrierInfo carrierInfo = null, NetInterface netInterface = null, UniqueID uniqueID = null, DeviceInfo deviceInfo = null) + public MatchingEngine(CarrierInfo carrierInfo = null, NetInterface netInterface = null, DeviceInfo deviceInfo = null) { httpClient = new HttpClient(); httpClient.Timeout = TimeSpan.FromMilliseconds(DEFAULT_REST_TIMEOUT_MS); @@ -286,15 +281,6 @@ public MatchingEngine(CarrierInfo carrierInfo = null, NetInterface netInterface this.netInterface = netInterface; } - if (uniqueID == null) - { - this.uniqueID = new EmptyUniqueID(); - } - else - { - this.uniqueID = uniqueID; - } - if (deviceInfo == null) { this.deviceInfo = new EmptyDeviceInfo(); @@ -304,9 +290,6 @@ public MatchingEngine(CarrierInfo carrierInfo = null, NetInterface netInterface this.deviceInfo = deviceInfo; } - // Default to empty. - SetMelMessaging(null); - // Setup a dummy event delegate for monitoring events: EventBusReciever += (ServerEdgeEvent serverEdgeEvent) => { @@ -351,22 +334,6 @@ DMEConnection GetDMEConnection() return DmeConnection; } - /*! - * A device specific interface. - * @private - */ - public void SetMelMessaging(MelMessagingInterface melInterface) - { - if (melInterface != null) - { - this.melMessaging = melInterface; - } - else - { - this.melMessaging = new EmptyMelMessaging(); - } - } - /*! * Set the REST timeout for DME APIs. * \param timeout_in_milliseconds (int) @@ -382,33 +349,6 @@ public TimeSpan SetTimeout(int timeout_in_milliseconds) return httpClient.Timeout = TimeSpan.FromMilliseconds(DEFAULT_REST_TIMEOUT_MS); } - /*! - * GetUniqueIDType - * \ingroup functions_dmeutils - */ - public string GetUniqueIDType() - { - return uniqueID.GetUniqueIDType(); - } - - /*! - * GetUniqueID - * \ingroup functions_dmeutils - */ - public string GetUniqueID() - { - return uniqueID.GetUniqueID(); - } - - /*! - * GetCellID - * \ingroup functions_dmeutils - */ - public ulong GetCellID() - { - return carrierInfo.GetCellID(); - } - /*! * Returns the carrier's mcc+mnc which is mapped to a carrier in the backend (ie. 26201 -> GDDT). * MCC stands for Mobile Country Code and MNC stands for Mobile Network Code. @@ -654,16 +594,13 @@ private string RetrieveToken(string aTokenServerURI) * \param appName (string): Application name * \param appVersion (string): Application version * \param authToken (string): Optional authentication token for application. If none supplied, default is null. - * \param cellID (UInt32): Optional cell tower id. If none supplied, default is 0. - * \param uniqueIDType (string): Optional - * \param uniqueID (string): Optional * \param tags (Tag[]): Optional * \return RegisterClientRequest * \section createregisterexample Example * \snippet RestSample.cs createregisterexample */ public RegisterClientRequest CreateRegisterClientRequest(string orgName, string appName, string appVersion, string authToken = null, - UInt32 cellID = 0, string uniqueIDType = null, string uniqueID = null, Dictionary tags = null) + Dictionary tags = null) { return new RegisterClientRequest { @@ -672,9 +609,6 @@ public RegisterClientRequest CreateRegisterClientRequest(string orgName, string app_name = appName, app_vers = appVersion, auth_token = authToken, - cell_id = cellID, - unique_id_type = uniqueIDType, - unique_id = uniqueID, tags = tags }; } @@ -712,24 +646,6 @@ public async Task RegisterClient(RegisterClientRequest requ return await RegisterClient(GenerateDmeHostAddress(), defaultDmeRestPort, request); } - private RegisterClientRequest UpdateRequestForUniqueID(RegisterClientRequest request) - { - string uid = melMessaging.GetUid(); - string aUniqueIdType = GetUniqueIDType(); // Read: device model - string aUniqueId = GetUniqueID(); - string manufacturer = melMessaging.GetManufacturer(); - - if (manufacturer != null && - aUniqueIdType != null && aUniqueIdType.Length > 0 && - aUniqueId != null && aUniqueId.Length > 0) - { - request.unique_id_type = manufacturer + ":" + aUniqueIdType + ":HASHED_ID"; - request.unique_id = aUniqueId; - } - - return request; - } - private RegisterClientRequest UpdateRequestForDeviceInfo(RegisterClientRequest request) { Dictionary dict = deviceInfo.GetDeviceInfo(); @@ -816,12 +732,10 @@ public async Task RegisterClient(string host, uint port, Re app_name = oldRequest.app_name, app_vers = oldRequest.app_vers, auth_token = oldRequest.auth_token, - cell_id = oldRequest.cell_id, tags = oldRequest.tags }; // DeviceInfo - request = UpdateRequestForUniqueID(request); request = UpdateRequestForDeviceInfo(request); if (request.tags != null) { @@ -830,7 +744,7 @@ public async Task RegisterClient(string host, uint port, Re // Debug Log Serialization issues: Log.D("Pre Serialize: Request Reference" + request); Log.D("Pre Serialize OrgName: " + request.org_name + ", " + "AppName: " + request.app_name + ", AppVer: " + request.app_vers); - Log.D("Pre Serialize AuthToken: " + request.auth_token + ", " + "CellID: " + request.cell_id + ", Ver: " + request.ver); + Log.D("Pre Serialize AuthToken: " + request.auth_token + ", " + ", Ver: " + request.ver); Log.D("Pre Serialize Tag Reference: " + request.tags); if (request.tags != null) { Log.D("Pre Serialize Tags Count: " + request.tags.Count); @@ -916,13 +830,12 @@ public async Task RegisterClient(string host, uint port, Re * \ingroup functions_dmeapis * \param loc (Loc): User location * \param carrierName (string): Optional device carrier (if not provided, carrier information will be pulled from device) - * \param cellID (UInt32): Optional cell tower id. If none supplied, default is 0. * \param tags (Tag[]): Optional * \return FindCloudletRequest * \section createfindcloudletexample Example * \snippet RestSample.cs createfindcloudletexample */ - public FindCloudletRequest CreateFindCloudletRequest(Loc loc, string carrierName = null, UInt32 cellID = 0, Dictionary tags = null) + public FindCloudletRequest CreateFindCloudletRequest(Loc loc, string carrierName = null, Dictionary tags = null) { if (sessionCookie == null) { @@ -938,7 +851,6 @@ public FindCloudletRequest CreateFindCloudletRequest(Loc loc, string carrierName session_cookie = this.sessionCookie, gps_location = loc, carrier_name = carrierName, - cell_id = cellID, tags = tags }; } @@ -1319,20 +1231,17 @@ public async Task FindCloudletPerformanceMode(string host, ui * \param loc (Loc): User location * \param carrierName (string): Optional device carrier (if not provided, carrier information will be pulled from device) * \param authToken (string): Optional authentication token for application. If none supplied, default is null. - * \param cellID (UInt32): Optional cell tower id. If none supplied, default is 0. - * \param uniqueIDType (string): Optional - * \param uniqueID (string): Optional * \param tags (Dictionary): Optional * \param mode (FindCloudletMode): Optional. Default is PROXIMITY. PROXIMITY will just return the findCloudletReply sent by DME (Generic REST API to findcloudlet endpoint). PERFORMANCE will test all app insts deployed on the specified carrier network and return the cloudlet with the lowest latency (Note: PERFORMANCE may take some time to return). Default value if mode parameter is not supplied is PROXIMITY. * \return Task */ public async Task RegisterAndFindCloudlet( string orgName, string appName, string appVersion, Loc loc, string carrierName = "", string authToken = null, - UInt32 cellID = 0, string uniqueIDType = null, string uniqueID = null, Dictionary tags = null, FindCloudletMode mode = FindCloudletMode.PROXIMITY) + Dictionary tags = null, FindCloudletMode mode = FindCloudletMode.PROXIMITY) { return await RegisterAndFindCloudlet(GenerateDmeHostAddress(), defaultDmeRestPort, orgName, appName, appVersion, loc, - carrierName, authToken, cellID, uniqueIDType, uniqueID, tags, mode); + carrierName, authToken, tags, mode); } /*! @@ -1346,16 +1255,13 @@ public async Task RegisterAndFindCloudlet( * \param loc (Loc): User location * \param carrierName (string): Optional device carrier (if not provided, carrier information will be pulled from device) * \param authToken (string): Optional authentication token for application. If none supplied, default is null. - * \param cellID (UInt32): Optional cell tower id. If none supplied, default is 0. - * \param uniqueIDType (string): Optional - * \param uniqueID (string): Optional * \param tags (Tag[]): Optional * \param mode (FindCloudletMode): Optional. Default is PROXIMITY. PROXIMITY will just return the findCloudletReply sent by DME (Generic REST API to findcloudlet endpoint). PERFORMANCE will test all app insts deployed on the specified carrier network and return the cloudlet with the lowest latency (Note: PERFORMANCE may take some time to return). Default value if mode parameter is not supplied is PROXIMITY. * \return Task */ public async Task RegisterAndFindCloudlet(string host, uint port, string orgName, string appName, string appVersion, Loc loc, string carrierName = "", string authToken = null, - UInt32 cellID = 0, string uniqueIDType = null, string uniqueID = null, Dictionary tags = null, FindCloudletMode mode = FindCloudletMode.PROXIMITY) + Dictionary tags = null, FindCloudletMode mode = FindCloudletMode.PROXIMITY) { // Register Client RegisterClientRequest registerRequest = CreateRegisterClientRequest( @@ -1363,9 +1269,6 @@ public async Task RegisterAndFindCloudlet(string host, uint p appName: appName, appVersion: appVersion, authToken: authToken, - cellID: cellID, - uniqueIDType: uniqueIDType, - uniqueID: uniqueID, tags: tags); RegisterClientReply registerClientReply = await RegisterClient(host, port, registerRequest); if (registerClientReply.tags == null) @@ -1380,7 +1283,6 @@ public async Task RegisterAndFindCloudlet(string host, uint p FindCloudletRequest findCloudletRequest = CreateFindCloudletRequest( loc: loc, carrierName: carrierName, - cellID: cellID, tags: tags); FindCloudletReply findCloudletReply = await FindCloudlet(host, port, findCloudletRequest, mode); if (findCloudletReply.tags == null) @@ -1396,13 +1298,12 @@ public async Task RegisterAndFindCloudlet(string host, uint p * \ingroup functions_dmeapis * \param loc (Loc): User location * \param carrierName (string): Optional device carrier (if not provided, carrier information will be pulled from device) - * \param cellID (UInt32): Optional cell tower id. If none supplied, default is 0. * \param tags (Tag[]): Optional * \return VerifyLocationRequest * \section createverifylocationexample Example * \snippet RestSample.cs createverifylocationexample */ - public VerifyLocationRequest CreateVerifyLocationRequest(Loc loc, string carrierName = null, UInt32 cellID = 0, Dictionary tags = null) + public VerifyLocationRequest CreateVerifyLocationRequest(Loc loc, string carrierName = null, Dictionary tags = null) { if (sessionCookie == null) { @@ -1420,7 +1321,6 @@ public VerifyLocationRequest CreateVerifyLocationRequest(Loc loc, string carrier gps_location = loc, carrier_name = carrierName, verify_loc_token = null, - cell_id = cellID, tags = tags }; } @@ -1458,7 +1358,7 @@ private VerifyLocationReply.GPSLocationStatus ParseGpsLocationStatus(string resp } /*! - * Makes sure that the user's location is not spoofed based on cellID and gps location. + * Makes sure that the user's location is not spoofed based on gps location. * Returns the Cell Tower status (CONNECTED_TO_SPECIFIED_TOWER if successful) and Gps Location status (LOC_VERIFIED if successful). * Also provides the distance between where the user claims to be and where carrier believes user to be (via gps and cell id) in km. * \ingroup functions_dmeapis @@ -1540,13 +1440,12 @@ public async Task VerifyLocation(string host, uint port, Ve * \ingroup functions_dmeapis * \param loc (Loc): User location * \param carrierName (string): Optional device carrier (if not provided, carrier information will be pulled from device) - * \param cellID (UInt32): Optional cell tower id. If none supplied, default is 0. * \param tags (Tag[]): Optional * \return AppInstListRequest * \section createappinstexample Example * \snippet RestSample.cs createappinstexample */ - public AppInstListRequest CreateAppInstListRequest(Loc loc, string carrierName = null, UInt32 cellID = 0, Dictionary tags = null) + public AppInstListRequest CreateAppInstListRequest(Loc loc, string carrierName = null, Dictionary tags = null) { if (sessionCookie == null) { @@ -1568,7 +1467,6 @@ public AppInstListRequest CreateAppInstListRequest(Loc loc, string carrierName = session_cookie = this.sessionCookie, gps_location = loc, carrier_name = carrierName, - cell_id = cellID, tags = tags }; } @@ -1666,14 +1564,13 @@ public async Task GetAppInstList(string host, uint port, AppIn * \param QosPositions (List QosPositions, Int32 lteCategory, BandSelection bandSelection, - UInt32 cellID = 0, Dictionary tags = null) + Dictionary tags = null) { if (sessionCookie == null) { @@ -1687,7 +1584,6 @@ public QosPositionRequest CreateQosPositionRequest(List QosPosition session_cookie = this.sessionCookie, lte_category = lteCategory, band_selection = bandSelection, - cell_id = cellID, tags = tags }; } @@ -2018,7 +1914,7 @@ public async Task DeleteQOSPrioritySession(string return reply; } - private FqdnListRequest CreateFqdnListRequest(UInt32 cellID = 0, Dictionary tags = null) + private FqdnListRequest CreateFqdnListRequest(Dictionary tags = null) { if (sessionCookie == null) { @@ -2029,7 +1925,6 @@ private FqdnListRequest CreateFqdnListRequest(UInt32 cellID = 0, Dictionary GetFqdnList(string host, uint port, FqdnListRe } private DynamicLocGroupRequest CreateDynamicLocGroupRequest(DlgCommType dlgCommType, UInt64 lgId = 0, - string userData = null, UInt32 cellID = 0, Dictionary tags = null) + string userData = null, Dictionary tags = null) { if (sessionCookie == null) { @@ -2114,7 +2009,6 @@ private DynamicLocGroupRequest CreateDynamicLocGroupRequest(DlgCommType dlgCommT comm_type = dlgCommType, lg_id = lgId, user_data = userData, - cell_id = cellID, tags = tags }; } diff --git a/rest/MatchingEngineSDKRestLibrary/MelMessaging.cs b/rest/MatchingEngineSDKRestLibrary/MelMessaging.cs deleted file mode 100644 index 3e8aec1d..00000000 --- a/rest/MatchingEngineSDKRestLibrary/MelMessaging.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; - -namespace DistributedMatchEngine.Mel -{ - public interface MelMessagingInterface - { - bool IsMelEnabled(); - string GetMelVersion(); - string GetUid(); - string SetToken(string token, string app_name); - string GetManufacturer(); - } - - public class EmptyMelMessaging : MelMessagingInterface - { - public bool IsMelEnabled() { return false; } - public string GetMelVersion() { return ""; } - public string GetUid() { return ""; } - public string SetToken(string token, string app_name) { return ""; } - public string GetManufacturer() { return ""; } - } -} diff --git a/rest/MatchingEngineSDKRestLibrary/UniqueID.cs b/rest/MatchingEngineSDKRestLibrary/UniqueID.cs deleted file mode 100644 index 675dd69b..00000000 --- a/rest/MatchingEngineSDKRestLibrary/UniqueID.cs +++ /dev/null @@ -1,49 +0,0 @@ -/** - * Copyright 2018-2021 MobiledgeX, Inc. All rights and licenses reserved. - * MobiledgeX, Inc. 156 2nd Street #408, San Francisco, CA 94105 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -using System; - -namespace DistributedMatchEngine -{ - /*! - * UniqeID interface for the platform - * Function implemented per platform - * \ingroup classes_integration - */ - public interface UniqueID - { - string GetUniqueIDType(); - string GetUniqueID(); - } - - /*! - * Empty implementation of CarrierInfo interface - * \ingroup classes_integration - */ - public class EmptyUniqueID : UniqueID - { - public string GetUniqueIDType() - { - throw new NotImplementedException("Required UniqueID interface function: GetUniqueIDType() is not defined!"); - } - - public string GetUniqueID() - { - throw new NotImplementedException("Required UniqueID interface function: GetUniqueID() is not defined"); - } - } -} diff --git a/rest/RestSample/RestSample.cs b/rest/RestSample/RestSample.cs index d8bc9fd9..9b303305 100644 --- a/rest/RestSample/RestSample.cs +++ b/rest/RestSample/RestSample.cs @@ -23,26 +23,11 @@ using System.IO; using DistributedMatchEngine; -using DistributedMatchEngine.Mel; using DistributedMatchEngine.PerformanceMetrics; using static DistributedMatchEngine.PerformanceMetrics.NetTest; namespace RestSample { - // This interface is optional but is used in the sample. - class DummyUniqueID : UniqueID - { - string UniqueID.GetUniqueIDType() - { - return "dummyModel"; - } - - string UniqueID.GetUniqueID() - { - return "abcdef0123456789"; - } - } - class DummyDeviceInfo : DeviceInfo { DummyCarrierInfo carrierInfo = new DummyCarrierInfo(); @@ -67,11 +52,6 @@ public bool IsPingSupported() class DummyCarrierInfo : CarrierInfo { - public ulong GetCellID() - { - return 0; - } - public string GetCurrentCarrierName() { return "26201"; @@ -93,15 +73,6 @@ public ulong GetSignalStrength() } } - public class TestMelMessaging : MelMessagingInterface - { - public bool IsMelEnabled() { return false; } - public string GetMelVersion() { return ""; } - public string GetUid() { return ""; } - public string SetToken(string token, string app_name) { return ""; } - public string GetManufacturer() { return "DummyManufacturer"; } - } - class Program { static string carrierName = ""; @@ -234,10 +205,9 @@ async static Task Main(string[] args) Console.WriteLine("MobiledgeX RestSample!"); //! [meconstructorexample] - MatchingEngine me = new MatchingEngine(new DummyCarrierInfo(), new SimpleNetInterface(new MacNetworkInterfaceName()), new DummyUniqueID(), new DummyDeviceInfo()); + MatchingEngine me = new MatchingEngine(new DummyCarrierInfo(), new SimpleNetInterface(new MacNetworkInterfaceName()), new DummyDeviceInfo()); //! [meconstructorexample] - me.SetMelMessaging(new TestMelMessaging()); me.SetTimeout(15000); me.useSSL = true; fallbackDmeHost = me.GenerateDmeHostAddress(); // WiFi if not overridden in test sample. From 1a20f6e34b3444ddfa375255a270cc29913ea026 Mon Sep 17 00:00:00 2001 From: Garner Lee <1672745+lgarner@users.noreply.github.com> Date: Wed, 2 Mar 2022 13:06:16 -0800 Subject: [PATCH 18/25] Update docs. --- docs/annotated.html | 59 +- ...ndroid_network_interface_name-members.html | 19 +- ...ne_1_1_android_network_interface_name.html | 25 +- ...gine_1_1_android_network_interface_name.js | 4 - ..._engine_1_1_dme_dns_exception-members.html | 17 +- ...ed_match_engine_1_1_dme_dns_exception.html | 23 +- ...uted_match_engine_1_1_dme_dns_exception.js | 4 - ...engine_1_1_empty_carrier_info-members.html | 22 +- ...d_match_engine_1_1_empty_carrier_info.html | 125 +++- ...ted_match_engine_1_1_empty_carrier_info.js | 6 - ..._engine_1_1_empty_device_info-members.html | 18 +- ...ed_match_engine_1_1_empty_device_info.html | 28 +- ...uted_match_engine_1_1_empty_device_info.js | 4 - ...ngine_1_1_empty_net_interface-members.html | 21 +- ..._match_engine_1_1_empty_net_interface.html | 161 ++++- ...ed_match_engine_1_1_empty_net_interface.js | 8 - ...h_engine_1_1_empty_unique_i_d-members.html | 131 ---- ...ted_match_engine_1_1_empty_unique_i_d.html | 151 ---- ...buted_match_engine_1_1_empty_unique_i_d.js | 5 - ...uted_match_engine_1_1_empty_unique_i_d.png | Bin 932 -> 0 bytes ...e_1_1_find_cloudlet_exception-members.html | 19 +- ...ch_engine_1_1_find_cloudlet_exception.html | 25 +- ...atch_engine_1_1_find_cloudlet_exception.js | 5 - ..._1_1_get_connection_exception-members.html | 19 +- ...h_engine_1_1_get_connection_exception.html | 25 +- ...tch_engine_1_1_get_connection_exception.js | 6 - ...tch_engine_1_1_http_exception-members.html | 21 +- ...buted_match_engine_1_1_http_exception.html | 31 +- ...ributed_match_engine_1_1_http_exception.js | 7 - ..._i_o_s_network_interface_name-members.html | 19 +- ...gine_1_1_i_o_s_network_interface_name.html | 25 +- ...engine_1_1_i_o_s_network_interface_name.js | 4 - ..._linux_network_interface_name-members.html | 19 +- ...gine_1_1_linux_network_interface_name.html | 25 +- ...engine_1_1_linux_network_interface_name.js | 4 - ..._1_mac_network_interface_name-members.html | 19 +- ...engine_1_1_mac_network_interface_name.html | 31 +- ...h_engine_1_1_mac_network_interface_name.js | 4 - ...ch_engine_1_1_matching_engine-members.html | 146 ++-- ...uted_match_engine_1_1_matching_engine.html | 659 ++++++++++++++---- ...ibuted_match_engine_1_1_matching_engine.js | 71 -- ...ne_1_1_network_interface_name-members.html | 19 +- ...tch_engine_1_1_network_interface_name.html | 25 +- ...match_engine_1_1_network_interface_name.js | 5 - ...formance_metrics_1_1_net_test-members.html | 31 +- ..._1_1_performance_metrics_1_1_net_test.html | 99 ++- ...ne_1_1_performance_metrics_1_1_net_test.js | 21 - ...metrics_1_1_net_test_1_1_site-members.html | 33 +- ...ormance_metrics_1_1_net_test_1_1_site.html | 65 +- ...1_1_register_client_exception-members.html | 19 +- ..._engine_1_1_register_client_exception.html | 25 +- ...ch_engine_1_1_register_client_exception.js | 5 - ..._1_1_session_cookie_exception-members.html | 19 +- ...h_engine_1_1_session_cookie_exception.html | 25 +- ...tch_engine_1_1_session_cookie_exception.js | 5 - ...gine_1_1_simple_net_interface-members.html | 23 +- ...match_engine_1_1_simple_net_interface.html | 131 +++- ...d_match_engine_1_1_simple_net_interface.js | 9 - ...ch_engine_1_1_token_exception-members.html | 19 +- ...uted_match_engine_1_1_token_exception.html | 25 +- ...ibuted_match_engine_1_1_token_exception.js | 5 - ...dows10_network_interface_name-members.html | 19 +- ..._1_1_windows10_network_interface_name.html | 25 +- ...ne_1_1_windows10_network_interface_name.js | 4 - docs/classes.html | 54 +- .../dir_1148ebc2b25b55095aebf6f4cbb6efca.html | 17 +- .../dir_30b70476ec8aab96ebd1769ad485ab3d.html | 17 +- .../dir_a3b073fb155ff047429f77c9e027984d.html | 21 +- .../dir_b11bf98dc8097a22eb9f403524057828.html | 17 +- docs/doxygen.css | 58 +- docs/functions.html | 222 ++---- docs/functions_enum.html | 18 +- docs/functions_func.html | 203 ++---- docs/functions_prop.html | 22 +- docs/functions_vars.html | 22 +- docs/group__classes.html | 19 +- docs/group__classes__datastructs.html | 17 +- docs/group__classes__integration.html | 23 +- docs/group__classes__integration.js | 63 +- docs/group__classes__util.html | 19 +- docs/group__classes__util.js | 29 +- docs/group__exceptions.html | 19 +- docs/group__exceptions__dme.html | 19 +- docs/group__exceptions__dme.js | 31 +- docs/group__exceptions__getconnection.html | 19 +- docs/group__exceptions__getconnection.js | 6 +- docs/group__functiongroups.html | 19 +- docs/group__functions__dmeapis.html | 352 ++++------ docs/group__functions__dmeapis.js | 34 +- docs/group__functions__dmeutils.html | 91 +-- docs/group__functions__dmeutils.js | 9 +- docs/group__functions__getconnection.html | 159 +++-- docs/group__functions__getconnection.js | 14 +- .../group__functions__getconnectionutils.html | 79 ++- docs/group__functions__getconnectionutils.js | 18 +- docs/group__namespaces.html | 28 +- docs/group__namespaces.js | 5 + docs/hierarchy.html | 19 +- docs/index.html | 27 +- ...match_engine_1_1_carrier_info-members.html | 22 +- ...ributed_match_engine_1_1_carrier_info.html | 34 +- ...stributed_match_engine_1_1_carrier_info.js | 6 - ...atch_engine_1_1_net_interface-members.html | 21 +- ...ibuted_match_engine_1_1_net_interface.html | 31 +- ...tributed_match_engine_1_1_net_interface.js | 8 - ...d_match_engine_1_1_unique_i_d-members.html | 131 ---- ...stributed_match_engine_1_1_unique_i_d.html | 151 ---- ...distributed_match_engine_1_1_unique_i_d.js | 5 - ...istributed_match_engine_1_1_unique_i_d.png | Bin 940 -> 0 bytes docs/jquery.js | 4 +- docs/modules.html | 17 +- docs/modules.js | 2 +- docs/namespace_distributed_match_engine.html | 75 +- ...pace_distributed_match_engine_1_1_mel.html | 122 ---- ..._match_engine_1_1_performance_metrics.html | 21 +- docs/namespacemembers.html | 18 +- docs/namespacemembers_enum.html | 18 +- docs/navtree.css | 1 + docs/navtree.js | 9 +- docs/navtreedata.js | 23 - docs/navtreeindex0.js | 139 +--- docs/resize.js | 20 +- docs/search/all_0.html | 6 +- docs/search/all_1.html | 6 +- docs/search/all_1.js | 20 +- docs/search/all_10.html | 6 +- docs/search/all_10.js | 2 +- docs/search/all_11.html | 6 +- docs/search/all_11.js | 2 +- docs/search/all_2.html | 6 +- docs/search/all_2.js | 10 +- docs/search/all_3.html | 6 +- docs/search/all_3.js | 13 +- docs/search/all_4.html | 6 +- docs/search/all_4.js | 8 +- docs/search/all_5.html | 6 +- docs/search/all_5.js | 47 +- docs/search/all_6.html | 6 +- docs/search/all_6.js | 2 +- docs/search/all_7.html | 6 +- docs/search/all_7.js | 2 +- docs/search/all_8.html | 6 +- docs/search/all_8.js | 2 +- docs/search/all_9.html | 6 +- docs/search/all_9.js | 12 +- docs/search/all_a.html | 6 +- docs/search/all_a.js | 8 +- docs/search/all_b.html | 6 +- docs/search/all_b.js | 2 +- docs/search/all_c.html | 6 +- docs/search/all_c.js | 8 +- docs/search/all_d.html | 6 +- docs/search/all_d.js | 13 +- docs/search/all_e.html | 6 +- docs/search/all_e.js | 4 +- docs/search/all_f.html | 6 +- docs/search/all_f.js | 3 +- docs/search/classes_0.html | 6 +- docs/search/classes_0.js | 2 +- docs/search/classes_1.html | 6 +- docs/search/classes_1.js | 2 +- docs/search/classes_2.html | 6 +- docs/search/classes_2.js | 2 +- docs/search/classes_3.html | 6 +- docs/search/classes_3.js | 7 +- docs/search/classes_4.html | 6 +- docs/search/classes_4.js | 2 +- docs/search/classes_5.html | 6 +- docs/search/classes_5.js | 2 +- docs/search/classes_6.html | 6 +- docs/search/classes_6.js | 2 +- docs/search/classes_7.html | 6 +- docs/search/classes_7.js | 2 +- docs/search/classes_8.html | 6 +- docs/search/classes_8.js | 2 +- docs/search/classes_9.html | 6 +- docs/search/classes_9.js | 4 +- docs/search/classes_a.html | 6 +- docs/search/classes_a.js | 6 +- docs/search/classes_b.html | 6 +- docs/search/classes_b.js | 2 +- docs/search/classes_c.html | 6 +- docs/search/classes_c.js | 6 +- docs/search/classes_d.html | 6 +- docs/search/classes_d.js | 2 +- docs/search/classes_e.html | 6 +- docs/search/classes_e.js | 2 +- docs/search/classes_f.js | 4 - docs/search/enums_0.html | 6 +- docs/search/enums_0.js | 2 +- docs/search/enums_1.html | 6 +- docs/search/enums_1.js | 2 +- docs/search/functions_0.html | 6 +- docs/search/functions_0.js | 2 +- docs/search/functions_1.html | 6 +- docs/search/functions_1.js | 15 +- docs/search/functions_2.html | 6 +- docs/search/functions_2.js | 2 +- docs/search/functions_3.html | 6 +- docs/search/functions_3.js | 2 +- docs/search/functions_4.html | 6 +- docs/search/functions_4.js | 22 +- docs/search/functions_5.html | 6 +- docs/search/functions_5.js | 20 +- docs/search/functions_6.html | 6 +- docs/search/functions_6.js | 3 +- docs/search/functions_7.html | 6 +- docs/search/functions_7.js | 4 +- docs/search/functions_8.html | 6 +- docs/search/functions_8.js | 7 +- docs/search/functions_9.html | 6 +- docs/search/functions_9.js | 4 +- .../{classes_f.html => functions_a.html} | 8 +- docs/search/functions_a.js | 4 + docs/search/groups_0.html | 6 +- docs/search/groups_0.js | 2 +- docs/search/groups_1.html | 6 +- docs/search/groups_1.js | 2 +- docs/search/groups_2.html | 6 +- docs/search/groups_2.js | 2 +- docs/search/groups_3.html | 6 +- docs/search/groups_3.js | 6 +- docs/search/groups_4.html | 6 +- docs/search/groups_4.js | 8 +- docs/search/groups_5.html | 6 +- docs/search/groups_5.js | 2 +- docs/search/groups_6.html | 6 +- docs/search/groups_6.js | 2 +- docs/search/groups_7.html | 6 +- docs/search/groups_7.js | 2 +- docs/search/namespaces_0.html | 6 +- docs/search/namespaces_0.js | 5 +- docs/search/pages_0.html | 37 + docs/search/pages_0.js | 4 + docs/search/properties_0.html | 6 +- docs/search/properties_0.js | 2 +- docs/search/properties_1.html | 6 +- docs/search/properties_1.js | 2 +- docs/search/search.css | 9 +- docs/search/search.js | 68 +- docs/search/searchdata.js | 13 +- docs/search/variables_0.html | 6 +- docs/search/variables_0.js | 2 +- docs/search/variables_1.html | 6 +- docs/search/variables_1.js | 2 +- 245 files changed, 2725 insertions(+), 3435 deletions(-) delete mode 100644 docs/class_distributed_match_engine_1_1_android_network_interface_name.js delete mode 100644 docs/class_distributed_match_engine_1_1_dme_dns_exception.js delete mode 100644 docs/class_distributed_match_engine_1_1_empty_carrier_info.js delete mode 100644 docs/class_distributed_match_engine_1_1_empty_device_info.js delete mode 100644 docs/class_distributed_match_engine_1_1_empty_net_interface.js delete mode 100644 docs/class_distributed_match_engine_1_1_empty_unique_i_d-members.html delete mode 100644 docs/class_distributed_match_engine_1_1_empty_unique_i_d.html delete mode 100644 docs/class_distributed_match_engine_1_1_empty_unique_i_d.js delete mode 100644 docs/class_distributed_match_engine_1_1_empty_unique_i_d.png delete mode 100644 docs/class_distributed_match_engine_1_1_find_cloudlet_exception.js delete mode 100644 docs/class_distributed_match_engine_1_1_get_connection_exception.js delete mode 100644 docs/class_distributed_match_engine_1_1_http_exception.js delete mode 100644 docs/class_distributed_match_engine_1_1_i_o_s_network_interface_name.js delete mode 100644 docs/class_distributed_match_engine_1_1_linux_network_interface_name.js delete mode 100644 docs/class_distributed_match_engine_1_1_mac_network_interface_name.js delete mode 100644 docs/class_distributed_match_engine_1_1_matching_engine.js delete mode 100644 docs/class_distributed_match_engine_1_1_network_interface_name.js delete mode 100644 docs/class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.js delete mode 100644 docs/class_distributed_match_engine_1_1_register_client_exception.js delete mode 100644 docs/class_distributed_match_engine_1_1_session_cookie_exception.js delete mode 100644 docs/class_distributed_match_engine_1_1_simple_net_interface.js delete mode 100644 docs/class_distributed_match_engine_1_1_token_exception.js delete mode 100644 docs/class_distributed_match_engine_1_1_windows10_network_interface_name.js create mode 100644 docs/group__namespaces.js delete mode 100644 docs/interface_distributed_match_engine_1_1_carrier_info.js delete mode 100644 docs/interface_distributed_match_engine_1_1_net_interface.js delete mode 100644 docs/interface_distributed_match_engine_1_1_unique_i_d-members.html delete mode 100644 docs/interface_distributed_match_engine_1_1_unique_i_d.html delete mode 100644 docs/interface_distributed_match_engine_1_1_unique_i_d.js delete mode 100644 docs/interface_distributed_match_engine_1_1_unique_i_d.png delete mode 100644 docs/namespace_distributed_match_engine_1_1_mel.html delete mode 100644 docs/search/classes_f.js rename docs/search/{classes_f.html => functions_a.html} (78%) create mode 100644 docs/search/functions_a.js create mode 100644 docs/search/pages_0.html create mode 100644 docs/search/pages_0.js diff --git a/docs/annotated.html b/docs/annotated.html index 0ee0e63b..d410fd95 100644 --- a/docs/annotated.html +++ b/docs/annotated.html @@ -4,7 +4,7 @@ - + C# SDK: Class List @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -107,8 +107,7 @@
-
-
Class List
+
Class List
@@ -149,7 +146,7 @@
    + doxygen 1.9.3
diff --git a/docs/class_distributed_match_engine_1_1_android_network_interface_name-members.html b/docs/class_distributed_match_engine_1_1_android_network_interface_name-members.html index 059dba81..f04c669e 100644 --- a/docs/class_distributed_match_engine_1_1_android_network_interface_name-members.html +++ b/docs/class_distributed_match_engine_1_1_android_network_interface_name-members.html @@ -4,7 +4,7 @@ - + C# SDK: Member List @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -107,15 +107,14 @@
-
-
DistributedMatchEngine.AndroidNetworkInterfaceName Member List
+
DistributedMatchEngine.AndroidNetworkInterfaceName Member List
@@ -125,7 +124,7 @@
    + doxygen 1.9.3
diff --git a/docs/class_distributed_match_engine_1_1_android_network_interface_name.html b/docs/class_distributed_match_engine_1_1_android_network_interface_name.html index 903ccd69..00e301c1 100644 --- a/docs/class_distributed_match_engine_1_1_android_network_interface_name.html +++ b/docs/class_distributed_match_engine_1_1_android_network_interface_name.html @@ -4,7 +4,7 @@ - + C# SDK: DistributedMatchEngine.AndroidNetworkInterfaceName Class Reference @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -109,8 +109,7 @@
-
-
DistributedMatchEngine.AndroidNetworkInterfaceName Class Reference
+
DistributedMatchEngine.AndroidNetworkInterfaceName Class Reference
@@ -123,18 +122,18 @@
- - -

+

Additional Inherited Members

- Public Attributes inherited from DistributedMatchEngine.NetworkInterfaceName
+
Regex CELLULAR = null
 
+
Regex WIFI = null
 

Detailed Description

-

Android Network Interface aliases for Cellular and Wifi interfaces. Use this to instantiate NetInterface if using Android device

+

Android Network Interface aliases for Cellular and Wifi interfaces. Use this to instantiate NetInterface if using Android device

@@ -144,7 +143,7 @@ + doxygen 1.9.3 diff --git a/docs/class_distributed_match_engine_1_1_android_network_interface_name.js b/docs/class_distributed_match_engine_1_1_android_network_interface_name.js deleted file mode 100644 index 60c3648e..00000000 --- a/docs/class_distributed_match_engine_1_1_android_network_interface_name.js +++ /dev/null @@ -1,4 +0,0 @@ -var class_distributed_match_engine_1_1_android_network_interface_name = -[ - [ "AndroidNetworkInterfaceName", "class_distributed_match_engine_1_1_android_network_interface_name.html#a488446ee09d0e68dceb2e6d8db1be5ef", null ] -]; \ No newline at end of file diff --git a/docs/class_distributed_match_engine_1_1_dme_dns_exception-members.html b/docs/class_distributed_match_engine_1_1_dme_dns_exception-members.html index 6a8c04f0..4f805ab9 100644 --- a/docs/class_distributed_match_engine_1_1_dme_dns_exception-members.html +++ b/docs/class_distributed_match_engine_1_1_dme_dns_exception-members.html @@ -4,7 +4,7 @@ - + C# SDK: Member List @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -107,8 +107,7 @@
-
-
DistributedMatchEngine.DmeDnsException Member List
+
DistributedMatchEngine.DmeDnsException Member List
@@ -123,7 +122,7 @@
    + doxygen 1.9.3
diff --git a/docs/class_distributed_match_engine_1_1_dme_dns_exception.html b/docs/class_distributed_match_engine_1_1_dme_dns_exception.html index 17ba989a..b8e65447 100644 --- a/docs/class_distributed_match_engine_1_1_dme_dns_exception.html +++ b/docs/class_distributed_match_engine_1_1_dme_dns_exception.html @@ -4,7 +4,7 @@ - + C# SDK: DistributedMatchEngine.DmeDnsException Class Reference @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -110,21 +110,20 @@ -
-
DistributedMatchEngine.DmeDnsException Class Reference
+
DistributedMatchEngine.DmeDnsException Class Reference

Inherits Exception.

- -

+

Public Member Functions

+
 DmeDnsException (string message, Exception InnerException=null)
 

Detailed Description

-

Occurs when MobiledgeX does not have user's MCC and MNC mapped to a DME

+

Occurs when MobiledgeX does not have user's MCC and MNC mapped to a DME

@@ -134,7 +133,7 @@ + doxygen 1.9.3 diff --git a/docs/class_distributed_match_engine_1_1_dme_dns_exception.js b/docs/class_distributed_match_engine_1_1_dme_dns_exception.js deleted file mode 100644 index ff8db54b..00000000 --- a/docs/class_distributed_match_engine_1_1_dme_dns_exception.js +++ /dev/null @@ -1,4 +0,0 @@ -var class_distributed_match_engine_1_1_dme_dns_exception = -[ - [ "DmeDnsException", "class_distributed_match_engine_1_1_dme_dns_exception.html#a8f4bc9747ad87d393c94f7047f1c15ce", null ] -]; \ No newline at end of file diff --git a/docs/class_distributed_match_engine_1_1_empty_carrier_info-members.html b/docs/class_distributed_match_engine_1_1_empty_carrier_info-members.html index 9ecb9706..5b0d451a 100644 --- a/docs/class_distributed_match_engine_1_1_empty_carrier_info-members.html +++ b/docs/class_distributed_match_engine_1_1_empty_carrier_info-members.html @@ -4,7 +4,7 @@ - + C# SDK: Member List @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -107,16 +107,16 @@
-
-
DistributedMatchEngine.EmptyCarrierInfo Member List
+
DistributedMatchEngine.EmptyCarrierInfo Member List
@@ -125,7 +125,7 @@
    + doxygen 1.9.3
diff --git a/docs/class_distributed_match_engine_1_1_empty_carrier_info.html b/docs/class_distributed_match_engine_1_1_empty_carrier_info.html index b1777536..0bbbfe2d 100644 --- a/docs/class_distributed_match_engine_1_1_empty_carrier_info.html +++ b/docs/class_distributed_match_engine_1_1_empty_carrier_info.html @@ -4,7 +4,7 @@ - + C# SDK: DistributedMatchEngine.EmptyCarrierInfo Class Reference @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -110,8 +110,7 @@ -
-
DistributedMatchEngine.EmptyCarrierInfo Class Reference
+
DistributedMatchEngine.EmptyCarrierInfo Class Reference
@@ -124,21 +123,109 @@
- - + - + - - + + + + + + + + + + + +

+

Public Member Functions

-string GetCurrentCarrierName ()
string GetCurrentCarrierName ()
 
-string GetMccMnc ()
string GetMccMnc ()
 
-ulong GetCellID ()
 
string GetDataNetworkPath ()
 
ulong GetSignalStrength ()
 
+string GetCurrentCarrierName ()
 
+string GetMccMnc ()
 
+string GetDataNetworkPath ()
 
+ulong GetSignalStrength ()
 

Detailed Description

-

Empty implementation of CarrierInfo interface

-
+

Empty implementation of CarrierInfo interface

+

Member Function Documentation

+ +

◆ GetCurrentCarrierName()

+ +
+
+ + + + + + + +
string DistributedMatchEngine.EmptyCarrierInfo.GetCurrentCarrierName ()
+
+
+ +

◆ GetDataNetworkPath()

+ +
+
+ + + + + + + +
string DistributedMatchEngine.EmptyCarrierInfo.GetDataNetworkPath ()
+
+
+ +

◆ GetMccMnc()

+ +
+
+ + + + + + + +
string DistributedMatchEngine.EmptyCarrierInfo.GetMccMnc ()
+
+
+ +

◆ GetSignalStrength()

+ +
+
+ + + + + + + +
ulong DistributedMatchEngine.EmptyCarrierInfo.GetSignalStrength ()
+
+
+ @@ -147,7 +234,7 @@ + doxygen 1.9.3 diff --git a/docs/class_distributed_match_engine_1_1_empty_carrier_info.js b/docs/class_distributed_match_engine_1_1_empty_carrier_info.js deleted file mode 100644 index f5d2a995..00000000 --- a/docs/class_distributed_match_engine_1_1_empty_carrier_info.js +++ /dev/null @@ -1,6 +0,0 @@ -var class_distributed_match_engine_1_1_empty_carrier_info = -[ - [ "GetCellID", "class_distributed_match_engine_1_1_empty_carrier_info.html#abe445778fd4db30533637b12bcac39ef", null ], - [ "GetCurrentCarrierName", "class_distributed_match_engine_1_1_empty_carrier_info.html#a7893093bd2558bd461406f441c27eac7", null ], - [ "GetMccMnc", "class_distributed_match_engine_1_1_empty_carrier_info.html#ac3730414c82d37ea6ce366a374cd85ec", null ] -]; \ No newline at end of file diff --git a/docs/class_distributed_match_engine_1_1_empty_device_info-members.html b/docs/class_distributed_match_engine_1_1_empty_device_info-members.html index 299d0136..5595fe84 100644 --- a/docs/class_distributed_match_engine_1_1_empty_device_info-members.html +++ b/docs/class_distributed_match_engine_1_1_empty_device_info-members.html @@ -4,7 +4,7 @@ - + C# SDK: Member List @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -107,14 +107,14 @@
-
-
DistributedMatchEngine.EmptyDeviceInfo Member List
+
DistributedMatchEngine.EmptyDeviceInfo Member List

This is the complete list of members for DistributedMatchEngine.EmptyDeviceInfo, including all inherited members.

+
GetDeviceInfo() (defined in DistributedMatchEngine.EmptyDeviceInfo)DistributedMatchEngine.EmptyDeviceInfo
IsPingSupported() (defined in DistributedMatchEngine.EmptyDeviceInfo)DistributedMatchEngine.EmptyDeviceInfo
@@ -123,7 +123,7 @@
    + doxygen 1.9.3
diff --git a/docs/class_distributed_match_engine_1_1_empty_device_info.html b/docs/class_distributed_match_engine_1_1_empty_device_info.html index 80168e08..aedf9d53 100644 --- a/docs/class_distributed_match_engine_1_1_empty_device_info.html +++ b/docs/class_distributed_match_engine_1_1_empty_device_info.html @@ -4,7 +4,7 @@ - + C# SDK: DistributedMatchEngine.EmptyDeviceInfo Class Reference @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -110,21 +110,23 @@ -
-
DistributedMatchEngine.EmptyDeviceInfo Class Reference
+
DistributedMatchEngine.EmptyDeviceInfo Class Reference

Inherits DistributedMatchEngine.DeviceInfo.

- - - + + +

+

Public Member Functions

+
Dictionary< string, string > GetDeviceInfo ()
 
 
+bool IsPingSupported ()
 

Detailed Description

-

Empty implementation of DeviceInfo interface

+

Empty implementation of DeviceInfo interface

@@ -134,7 +136,7 @@ + doxygen 1.9.3 diff --git a/docs/class_distributed_match_engine_1_1_empty_device_info.js b/docs/class_distributed_match_engine_1_1_empty_device_info.js deleted file mode 100644 index 5dcff719..00000000 --- a/docs/class_distributed_match_engine_1_1_empty_device_info.js +++ /dev/null @@ -1,4 +0,0 @@ -var class_distributed_match_engine_1_1_empty_device_info = -[ - [ "GetDeviceInfo", "class_distributed_match_engine_1_1_empty_device_info.html#a06708f7d81e935f0fcf1227a2389cbd4", null ] -]; \ No newline at end of file diff --git a/docs/class_distributed_match_engine_1_1_empty_net_interface-members.html b/docs/class_distributed_match_engine_1_1_empty_net_interface-members.html index 31f35e2e..c12f05bc 100644 --- a/docs/class_distributed_match_engine_1_1_empty_net_interface-members.html +++ b/docs/class_distributed_match_engine_1_1_empty_net_interface-members.html @@ -4,7 +4,7 @@ - + C# SDK: Member List @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -107,17 +107,16 @@
-
-
DistributedMatchEngine.EmptyNetInterface Member List
+
DistributedMatchEngine.EmptyNetInterface Member List

This is the complete list of members for DistributedMatchEngine.EmptyNetInterface, including all inherited members.

- + - +
GetIPAddress(String netInterface, AddressFamily addressFamily=AddressFamily.InterNetwork) (defined in DistributedMatchEngine.EmptyNetInterface)DistributedMatchEngine.EmptyNetInterface
GetNetworkInterfaceName() (defined in DistributedMatchEngine.EmptyNetInterface)DistributedMatchEngine.EmptyNetInterface
GetNetworkInterfaceName() (defined in DistributedMatchEngine.EmptyNetInterface)DistributedMatchEngine.EmptyNetInterface
HasCellular() (defined in DistributedMatchEngine.EmptyNetInterface)DistributedMatchEngine.EmptyNetInterface
HasWifi() (defined in DistributedMatchEngine.EmptyNetInterface)DistributedMatchEngine.EmptyNetInterface
HasWifi() (defined in DistributedMatchEngine.EmptyNetInterface)DistributedMatchEngine.EmptyNetInterface
SetNetworkInterfaceName(NetworkInterfaceName networkInterfaceName) (defined in DistributedMatchEngine.EmptyNetInterface)DistributedMatchEngine.EmptyNetInterface
@@ -127,7 +126,7 @@
    + doxygen 1.9.3
diff --git a/docs/class_distributed_match_engine_1_1_empty_net_interface.html b/docs/class_distributed_match_engine_1_1_empty_net_interface.html index c3c5d347..5f8cacd1 100644 --- a/docs/class_distributed_match_engine_1_1_empty_net_interface.html +++ b/docs/class_distributed_match_engine_1_1_empty_net_interface.html @@ -4,7 +4,7 @@ - + C# SDK: DistributedMatchEngine.EmptyNetInterface Class Reference @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -110,8 +110,7 @@ -
-
DistributedMatchEngine.EmptyNetInterface Class Reference
+
DistributedMatchEngine.EmptyNetInterface Class Reference
@@ -124,27 +123,145 @@
- - + - + - + - + - + + + + + + + + + + +

+

Public Member Functions

-NetworkInterfaceName GetNetworkInterfaceName ()
NetworkInterfaceName GetNetworkInterfaceName ()
 
-void SetNetworkInterfaceName (NetworkInterfaceName networkInterfaceName)
void SetNetworkInterfaceName (NetworkInterfaceName networkInterfaceName)
 
-string GetIPAddress (String netInterface, AddressFamily addressFamily=AddressFamily.InterNetwork)
string GetIPAddress (String netInterface, AddressFamily addressFamily=AddressFamily.InterNetwork)
 
-bool HasWifi ()
bool HasWifi ()
 
-bool HasCellular ()
bool HasCellular ()
 
+NetworkInterfaceName GetNetworkInterfaceName ()
 
+void SetNetworkInterfaceName (NetworkInterfaceName networkInterfaceName)
 
+string GetIPAddress (String netInterfaceType, AddressFamily adressFamily=AddressFamily.InterNetwork)
 
+bool HasWifi ()
 
+bool HasCellular ()
 

Detailed Description

-

Empty implementation of CarrierInfo interface

-
+

Empty implementation of CarrierInfo interface

+

Member Function Documentation

+ +

◆ GetIPAddress()

+ +
+
+ + + + + + + + + + + + + + + + + + +
string DistributedMatchEngine.EmptyNetInterface.GetIPAddress (String netInterface,
AddressFamily addressFamily = AddressFamily.InterNetwork 
)
+
+
+ +

◆ GetNetworkInterfaceName()

+ +
+
+ + + + + + + +
NetworkInterfaceName DistributedMatchEngine.EmptyNetInterface.GetNetworkInterfaceName ()
+
+
+ +

◆ HasCellular()

+ +
+
+ + + + + + + +
bool DistributedMatchEngine.EmptyNetInterface.HasCellular ()
+
+
+ +

◆ HasWifi()

+ +
+
+ + + + + + + +
bool DistributedMatchEngine.EmptyNetInterface.HasWifi ()
+
+
+ +

◆ SetNetworkInterfaceName()

+ +
+
+ + + + + + + + +
void DistributedMatchEngine.EmptyNetInterface.SetNetworkInterfaceName (NetworkInterfaceName networkInterfaceName)
+
+
+ @@ -153,7 +270,7 @@ + doxygen 1.9.3 diff --git a/docs/class_distributed_match_engine_1_1_empty_net_interface.js b/docs/class_distributed_match_engine_1_1_empty_net_interface.js deleted file mode 100644 index 18d8d8b4..00000000 --- a/docs/class_distributed_match_engine_1_1_empty_net_interface.js +++ /dev/null @@ -1,8 +0,0 @@ -var class_distributed_match_engine_1_1_empty_net_interface = -[ - [ "GetIPAddress", "class_distributed_match_engine_1_1_empty_net_interface.html#a7339673498c6a7ac6dc0c03c779bd936", null ], - [ "GetNetworkInterfaceName", "class_distributed_match_engine_1_1_empty_net_interface.html#a3893b568e044a571384b75bf1df028ff", null ], - [ "HasCellular", "class_distributed_match_engine_1_1_empty_net_interface.html#a66fd658b77609ed1c98eeda2e07949ba", null ], - [ "HasWifi", "class_distributed_match_engine_1_1_empty_net_interface.html#a9890e2f580bce047dddb2335f4e738ab", null ], - [ "SetNetworkInterfaceName", "class_distributed_match_engine_1_1_empty_net_interface.html#a8e5d10a75cab3b00dc461dd8ae1dc5b6", null ] -]; \ No newline at end of file diff --git a/docs/class_distributed_match_engine_1_1_empty_unique_i_d-members.html b/docs/class_distributed_match_engine_1_1_empty_unique_i_d-members.html deleted file mode 100644 index b2dd1ea4..00000000 --- a/docs/class_distributed_match_engine_1_1_empty_unique_i_d-members.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - - -C# SDK: Member List - - - - - - - - - - - - - - - -
-​ - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
DistributedMatchEngine.EmptyUniqueID Member List
-
-
- -

This is the complete list of members for DistributedMatchEngine.EmptyUniqueID, including all inherited members.

- - - -
GetUniqueID() (defined in DistributedMatchEngine.EmptyUniqueID)DistributedMatchEngine.EmptyUniqueID
GetUniqueIDType() (defined in DistributedMatchEngine.EmptyUniqueID)DistributedMatchEngine.EmptyUniqueID
-
- - - - - diff --git a/docs/class_distributed_match_engine_1_1_empty_unique_i_d.html b/docs/class_distributed_match_engine_1_1_empty_unique_i_d.html deleted file mode 100644 index eec691a1..00000000 --- a/docs/class_distributed_match_engine_1_1_empty_unique_i_d.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - - - -C# SDK: DistributedMatchEngine.EmptyUniqueID Class Reference - - - - - - - - - - - - - - - -
-​ - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
DistributedMatchEngine.EmptyUniqueID Class Reference
-
-
-
-Inheritance diagram for DistributedMatchEngine.EmptyUniqueID:
-
-
- - -DistributedMatchEngine.UniqueID - -
- - - - - - -

-Public Member Functions

-string GetUniqueIDType ()
 
-string GetUniqueID ()
 
-

Detailed Description

-

Empty implementation of CarrierInfo interface

-
-
- - - - - diff --git a/docs/class_distributed_match_engine_1_1_empty_unique_i_d.js b/docs/class_distributed_match_engine_1_1_empty_unique_i_d.js deleted file mode 100644 index 652b758b..00000000 --- a/docs/class_distributed_match_engine_1_1_empty_unique_i_d.js +++ /dev/null @@ -1,5 +0,0 @@ -var class_distributed_match_engine_1_1_empty_unique_i_d = -[ - [ "GetUniqueID", "class_distributed_match_engine_1_1_empty_unique_i_d.html#a0533b798d3884baa6dfe688c8f9d244e", null ], - [ "GetUniqueIDType", "class_distributed_match_engine_1_1_empty_unique_i_d.html#a181a67242c21bcd09882ded9265d869b", null ] -]; \ No newline at end of file diff --git a/docs/class_distributed_match_engine_1_1_empty_unique_i_d.png b/docs/class_distributed_match_engine_1_1_empty_unique_i_d.png deleted file mode 100644 index 281adda65b76512458d8391d20f62f4711404af2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 932 zcmeAS@N?(olHy`uVBq!ia0vp^uYfp!gBeIFNK57eDTx4|5ZC|z{{xvX-h3_XKQsZz z0^(ugG{8FOy=D%<4cY@ySJX>mV zcj@BFTX%mq_Nw2$QLMT$=Jpob>E!{^+n+t*WY ziSv>i9_42T-3zkV>Zx~HJ6Gh;3_KgZR&EY+7$^&->v0&e>EtuG8cJW%BXUWyE^d?By8X$zn(q%Y?)5yq7`&#jVehWQceBmxswXo(y(N}rD|#huLgh{; zUfr}>U9AJQvNPotF_ldDwjie^+WXBtvAxHWU-NC>YsqtB@9xCbsH)~pNvY?XnRA_M z%_g~;c*?suCrlR&mx^DLsQ6~VGwm~hdDoO|k2dUBdUN@wX@?%xT4lHInrtyyshE&J!2fS{bu4{UF%Zg_u-^}gj zC&cq*KbDy+d?kx_`HFKdFUIY7H>s*!?fHt_pD$%^PwE%nT{Uy{-5)=fymD`e-KE4#gC+rvEV4S&}ii^`h3QESIOrrVF@vKFp9us3F_=#8+mr>=-*2A_N! zl{@3osT$UIb>WP0t8WWOAD-+O{;v)cag2UfPbN1+?H2(?UW2#j>C1-uMMWPRg-5~L h&wF%Ee`5K|Y$Rgn`90|kKQK!%c)I$ztaD0e0s!}!z-j;h diff --git a/docs/class_distributed_match_engine_1_1_find_cloudlet_exception-members.html b/docs/class_distributed_match_engine_1_1_find_cloudlet_exception-members.html index 7f3f266d..4ab643c1 100644 --- a/docs/class_distributed_match_engine_1_1_find_cloudlet_exception-members.html +++ b/docs/class_distributed_match_engine_1_1_find_cloudlet_exception-members.html @@ -4,7 +4,7 @@ - + C# SDK: Member List @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -107,15 +107,14 @@
-
-
DistributedMatchEngine.FindCloudletException Member List
+
DistributedMatchEngine.FindCloudletException Member List

This is the complete list of members for DistributedMatchEngine.FindCloudletException, including all inherited members.

- +
FindCloudletException(string message) (defined in DistributedMatchEngine.FindCloudletException)DistributedMatchEngine.FindCloudletException
FindCloudletException(string message, Exception innerException) (defined in DistributedMatchEngine.FindCloudletException)DistributedMatchEngine.FindCloudletException
FindCloudletException(string message, Exception innerException) (defined in DistributedMatchEngine.FindCloudletException)DistributedMatchEngine.FindCloudletException
@@ -124,7 +123,7 @@
    + doxygen 1.9.3
diff --git a/docs/class_distributed_match_engine_1_1_find_cloudlet_exception.html b/docs/class_distributed_match_engine_1_1_find_cloudlet_exception.html index 8480d521..a8158d5d 100644 --- a/docs/class_distributed_match_engine_1_1_find_cloudlet_exception.html +++ b/docs/class_distributed_match_engine_1_1_find_cloudlet_exception.html @@ -4,7 +4,7 @@ - + C# SDK: DistributedMatchEngine.FindCloudletException Class Reference @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -110,24 +110,23 @@ -
-
DistributedMatchEngine.FindCloudletException Class Reference
+
DistributedMatchEngine.FindCloudletException Class Reference

Inherits Exception.

- - -

+

Public Member Functions

+
 FindCloudletException (string message)
 
+
 FindCloudletException (string message, Exception innerException)
 

Detailed Description

-

FindCloudlet failure

+

FindCloudlet failure

@@ -137,7 +136,7 @@ + doxygen 1.9.3 diff --git a/docs/class_distributed_match_engine_1_1_find_cloudlet_exception.js b/docs/class_distributed_match_engine_1_1_find_cloudlet_exception.js deleted file mode 100644 index 9dd3fc90..00000000 --- a/docs/class_distributed_match_engine_1_1_find_cloudlet_exception.js +++ /dev/null @@ -1,5 +0,0 @@ -var class_distributed_match_engine_1_1_find_cloudlet_exception = -[ - [ "FindCloudletException", "class_distributed_match_engine_1_1_find_cloudlet_exception.html#ad3a8da89be3b2c37666169d6e1ea6d9b", null ], - [ "FindCloudletException", "class_distributed_match_engine_1_1_find_cloudlet_exception.html#a9e7034bb748654642687d43efb0aa1dd", null ] -]; \ No newline at end of file diff --git a/docs/class_distributed_match_engine_1_1_get_connection_exception-members.html b/docs/class_distributed_match_engine_1_1_get_connection_exception-members.html index bed509bc..3d8ec3a2 100644 --- a/docs/class_distributed_match_engine_1_1_get_connection_exception-members.html +++ b/docs/class_distributed_match_engine_1_1_get_connection_exception-members.html @@ -4,7 +4,7 @@ - + C# SDK: Member List @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -107,15 +107,14 @@
-
-
DistributedMatchEngine.GetConnectionException Member List
+
DistributedMatchEngine.GetConnectionException Member List

This is the complete list of members for DistributedMatchEngine.GetConnectionException, including all inherited members.

- +
GetConnectionException() (defined in DistributedMatchEngine.GetConnectionException)DistributedMatchEngine.GetConnectionException
GetConnectionException(string message) (defined in DistributedMatchEngine.GetConnectionException)DistributedMatchEngine.GetConnectionException
GetConnectionException(string message) (defined in DistributedMatchEngine.GetConnectionException)DistributedMatchEngine.GetConnectionException
GetConnectionException(string message, Exception inner) (defined in DistributedMatchEngine.GetConnectionException)DistributedMatchEngine.GetConnectionException
@@ -125,7 +124,7 @@
    + doxygen 1.9.3
diff --git a/docs/class_distributed_match_engine_1_1_get_connection_exception.html b/docs/class_distributed_match_engine_1_1_get_connection_exception.html index b897e68e..4bad35c4 100644 --- a/docs/class_distributed_match_engine_1_1_get_connection_exception.html +++ b/docs/class_distributed_match_engine_1_1_get_connection_exception.html @@ -4,7 +4,7 @@ - + C# SDK: DistributedMatchEngine.GetConnectionException Class Reference @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -110,24 +110,23 @@ -
-
DistributedMatchEngine.GetConnectionException Class Reference
+
DistributedMatchEngine.GetConnectionException Class Reference

Inherits Exception.

- - -

+

Public Member Functions

+
 GetConnectionException (string message)
 
+
 GetConnectionException (string message, Exception inner)
 

Detailed Description

-
@@ -137,7 +136,7 @@ + doxygen 1.9.3 diff --git a/docs/class_distributed_match_engine_1_1_get_connection_exception.js b/docs/class_distributed_match_engine_1_1_get_connection_exception.js deleted file mode 100644 index 875598f4..00000000 --- a/docs/class_distributed_match_engine_1_1_get_connection_exception.js +++ /dev/null @@ -1,6 +0,0 @@ -var class_distributed_match_engine_1_1_get_connection_exception = -[ - [ "GetConnectionException", "class_distributed_match_engine_1_1_get_connection_exception.html#a554790c800226857313dc4730c19d54d", null ], - [ "GetConnectionException", "class_distributed_match_engine_1_1_get_connection_exception.html#abadfcb529e25385feeb66c3fe729d85e", null ], - [ "GetConnectionException", "class_distributed_match_engine_1_1_get_connection_exception.html#aa665cb48acaec9ddb5c7ad6c15fff0d5", null ] -]; \ No newline at end of file diff --git a/docs/class_distributed_match_engine_1_1_http_exception-members.html b/docs/class_distributed_match_engine_1_1_http_exception-members.html index 487af997..b1e9e62f 100644 --- a/docs/class_distributed_match_engine_1_1_http_exception-members.html +++ b/docs/class_distributed_match_engine_1_1_http_exception-members.html @@ -4,7 +4,7 @@ - + C# SDK: Member List @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -107,17 +107,16 @@
-
-
DistributedMatchEngine.HttpException Member List
+
DistributedMatchEngine.HttpException Member List

This is the complete list of members for DistributedMatchEngine.HttpException, including all inherited members.

- + - +
ErrorCode (defined in DistributedMatchEngine.HttpException)DistributedMatchEngine.HttpException
HttpException(string message, HttpStatusCode statusCode, int errorCode) (defined in DistributedMatchEngine.HttpException)DistributedMatchEngine.HttpException
HttpException(string message, HttpStatusCode statusCode, int errorCode) (defined in DistributedMatchEngine.HttpException)DistributedMatchEngine.HttpException
HttpException(string message, HttpStatusCode statusCode, int errorCode, Exception innerException) (defined in DistributedMatchEngine.HttpException)DistributedMatchEngine.HttpException
HttpStatusCode (defined in DistributedMatchEngine.HttpException)DistributedMatchEngine.HttpException
HttpStatusCode (defined in DistributedMatchEngine.HttpException)DistributedMatchEngine.HttpException
@@ -126,7 +125,7 @@
    + doxygen 1.9.3
diff --git a/docs/class_distributed_match_engine_1_1_http_exception.html b/docs/class_distributed_match_engine_1_1_http_exception.html index 9a5d6afc..ed4af52d 100644 --- a/docs/class_distributed_match_engine_1_1_http_exception.html +++ b/docs/class_distributed_match_engine_1_1_http_exception.html @@ -4,7 +4,7 @@ - + C# SDK: DistributedMatchEngine.HttpException Class Reference @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -111,33 +111,32 @@ Public Member Functions | Properties | List of all members -
-
DistributedMatchEngine.HttpException Class Reference
+
DistributedMatchEngine.HttpException Class Reference

Inherits Exception.

- - -

+

Public Member Functions

+
 HttpException (string message, HttpStatusCode statusCode, int errorCode)
 
+
 HttpException (string message, HttpStatusCode statusCode, int errorCode, Exception innerException)
 
- - -

+

Properties

+
HttpStatusCode HttpStatusCode [get, set]
 
+
int ErrorCode [get, set]
 

Detailed Description

-

MatchingEngine APIs are implemented via HTTP REST calls. This occurs if MatchingEngine API post request fails.

+

MatchingEngine APIs are implemented via HTTP REST calls. This occurs if MatchingEngine API post request fails.

@@ -147,7 +146,7 @@ + doxygen 1.9.3 diff --git a/docs/class_distributed_match_engine_1_1_http_exception.js b/docs/class_distributed_match_engine_1_1_http_exception.js deleted file mode 100644 index 4b17f12d..00000000 --- a/docs/class_distributed_match_engine_1_1_http_exception.js +++ /dev/null @@ -1,7 +0,0 @@ -var class_distributed_match_engine_1_1_http_exception = -[ - [ "HttpException", "class_distributed_match_engine_1_1_http_exception.html#a8cf180108e147a043b0d74d0b0f7f22a", null ], - [ "HttpException", "class_distributed_match_engine_1_1_http_exception.html#a4d81de71f4f7a21349d0d8b208fdfa6e", null ], - [ "ErrorCode", "class_distributed_match_engine_1_1_http_exception.html#aba8c866bfad1a4375ac416280f2f3e59", null ], - [ "HttpStatusCode", "class_distributed_match_engine_1_1_http_exception.html#ad0f538576431a453dac3894e9138f31c", null ] -]; \ No newline at end of file diff --git a/docs/class_distributed_match_engine_1_1_i_o_s_network_interface_name-members.html b/docs/class_distributed_match_engine_1_1_i_o_s_network_interface_name-members.html index 5df32ffc..5cc0d200 100644 --- a/docs/class_distributed_match_engine_1_1_i_o_s_network_interface_name-members.html +++ b/docs/class_distributed_match_engine_1_1_i_o_s_network_interface_name-members.html @@ -4,7 +4,7 @@ - + C# SDK: Member List @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -107,15 +107,14 @@
-
-
DistributedMatchEngine.IOSNetworkInterfaceName Member List
+
DistributedMatchEngine.IOSNetworkInterfaceName Member List
@@ -125,7 +124,7 @@
    + doxygen 1.9.3
diff --git a/docs/class_distributed_match_engine_1_1_i_o_s_network_interface_name.html b/docs/class_distributed_match_engine_1_1_i_o_s_network_interface_name.html index 0aa1560a..ce2b1fdc 100644 --- a/docs/class_distributed_match_engine_1_1_i_o_s_network_interface_name.html +++ b/docs/class_distributed_match_engine_1_1_i_o_s_network_interface_name.html @@ -4,7 +4,7 @@ - + C# SDK: DistributedMatchEngine.IOSNetworkInterfaceName Class Reference @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -109,8 +109,7 @@
-
-
DistributedMatchEngine.IOSNetworkInterfaceName Class Reference
+
DistributedMatchEngine.IOSNetworkInterfaceName Class Reference
@@ -123,18 +122,18 @@
- - -

+

Additional Inherited Members

- Public Attributes inherited from DistributedMatchEngine.NetworkInterfaceName
+
Regex CELLULAR = null
 
+
Regex WIFI = null
 

Detailed Description

-

IOS Network Interface aliases for Cellular and Wifi interfaces. Use this to instantiate NetInterface if using IOS device

+

IOS Network Interface aliases for Cellular and Wifi interfaces. Use this to instantiate NetInterface if using IOS device

@@ -144,7 +143,7 @@ + doxygen 1.9.3 diff --git a/docs/class_distributed_match_engine_1_1_i_o_s_network_interface_name.js b/docs/class_distributed_match_engine_1_1_i_o_s_network_interface_name.js deleted file mode 100644 index 990a35ba..00000000 --- a/docs/class_distributed_match_engine_1_1_i_o_s_network_interface_name.js +++ /dev/null @@ -1,4 +0,0 @@ -var class_distributed_match_engine_1_1_i_o_s_network_interface_name = -[ - [ "IOSNetworkInterfaceName", "class_distributed_match_engine_1_1_i_o_s_network_interface_name.html#a0778b1d3a7a4a9f0d8f280cdc7971e44", null ] -]; \ No newline at end of file diff --git a/docs/class_distributed_match_engine_1_1_linux_network_interface_name-members.html b/docs/class_distributed_match_engine_1_1_linux_network_interface_name-members.html index 7e24bd97..3ae31d62 100644 --- a/docs/class_distributed_match_engine_1_1_linux_network_interface_name-members.html +++ b/docs/class_distributed_match_engine_1_1_linux_network_interface_name-members.html @@ -4,7 +4,7 @@ - + C# SDK: Member List @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -107,15 +107,14 @@
-
-
DistributedMatchEngine.LinuxNetworkInterfaceName Member List
+
DistributedMatchEngine.LinuxNetworkInterfaceName Member List
@@ -125,7 +124,7 @@
    + doxygen 1.9.3
diff --git a/docs/class_distributed_match_engine_1_1_linux_network_interface_name.html b/docs/class_distributed_match_engine_1_1_linux_network_interface_name.html index a46622c4..349592b1 100644 --- a/docs/class_distributed_match_engine_1_1_linux_network_interface_name.html +++ b/docs/class_distributed_match_engine_1_1_linux_network_interface_name.html @@ -4,7 +4,7 @@ - + C# SDK: DistributedMatchEngine.LinuxNetworkInterfaceName Class Reference @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -109,8 +109,7 @@
-
-
DistributedMatchEngine.LinuxNetworkInterfaceName Class Reference
+
DistributedMatchEngine.LinuxNetworkInterfaceName Class Reference
@@ -123,18 +122,18 @@
- - -

+

Additional Inherited Members

- Public Attributes inherited from DistributedMatchEngine.NetworkInterfaceName
+
Regex CELLULAR = null
 
+
Regex WIFI = null
 

Detailed Description

-

Linux Network Interface aliases for Cellular and Wifi interfaces. Use this to instantiate NetInterface if using Linux device

+

Linux Network Interface aliases for Cellular and Wifi interfaces. Use this to instantiate NetInterface if using Linux device

@@ -144,7 +143,7 @@ + doxygen 1.9.3 diff --git a/docs/class_distributed_match_engine_1_1_linux_network_interface_name.js b/docs/class_distributed_match_engine_1_1_linux_network_interface_name.js deleted file mode 100644 index 1acd098b..00000000 --- a/docs/class_distributed_match_engine_1_1_linux_network_interface_name.js +++ /dev/null @@ -1,4 +0,0 @@ -var class_distributed_match_engine_1_1_linux_network_interface_name = -[ - [ "LinuxNetworkInterfaceName", "class_distributed_match_engine_1_1_linux_network_interface_name.html#ab82bfcf43a6255f40a386a910025221e", null ] -]; \ No newline at end of file diff --git a/docs/class_distributed_match_engine_1_1_mac_network_interface_name-members.html b/docs/class_distributed_match_engine_1_1_mac_network_interface_name-members.html index 49087ecd..3e093659 100644 --- a/docs/class_distributed_match_engine_1_1_mac_network_interface_name-members.html +++ b/docs/class_distributed_match_engine_1_1_mac_network_interface_name-members.html @@ -4,7 +4,7 @@ - + C# SDK: Member List @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -107,15 +107,14 @@
-
-
DistributedMatchEngine.MacNetworkInterfaceName Member List
+
DistributedMatchEngine.MacNetworkInterfaceName Member List
@@ -125,7 +124,7 @@
    + doxygen 1.9.3
diff --git a/docs/class_distributed_match_engine_1_1_mac_network_interface_name.html b/docs/class_distributed_match_engine_1_1_mac_network_interface_name.html index 7ebf2508..baa0b87e 100644 --- a/docs/class_distributed_match_engine_1_1_mac_network_interface_name.html +++ b/docs/class_distributed_match_engine_1_1_mac_network_interface_name.html @@ -4,7 +4,7 @@ - + C# SDK: DistributedMatchEngine.MacNetworkInterfaceName Class Reference @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -110,8 +110,7 @@ -
-
DistributedMatchEngine.MacNetworkInterfaceName Class Reference
+
DistributedMatchEngine.MacNetworkInterfaceName Class Reference
@@ -124,25 +123,25 @@
-

+

Public Member Functions

 MacNetworkInterfaceName ()
 
- - -

+

Additional Inherited Members

- Public Attributes inherited from DistributedMatchEngine.NetworkInterfaceName
+
Regex CELLULAR = null
 
+
Regex WIFI = null
 

Detailed Description

-

Mac Network Interface aliases for Cellular and Wifi interfaces. Use this to instantiate NetInterface if using Mac device

+

Mac Network Interface aliases for Cellular and Wifi interfaces. Use this to instantiate NetInterface if using Mac device

Constructor & Destructor Documentation

- +

◆ MacNetworkInterfaceName()

@@ -169,7 +168,7 @@

DistributedMatchEngine + doxygen 1.9.3 diff --git a/docs/class_distributed_match_engine_1_1_mac_network_interface_name.js b/docs/class_distributed_match_engine_1_1_mac_network_interface_name.js deleted file mode 100644 index 979de50c..00000000 --- a/docs/class_distributed_match_engine_1_1_mac_network_interface_name.js +++ /dev/null @@ -1,4 +0,0 @@ -var class_distributed_match_engine_1_1_mac_network_interface_name = -[ - [ "MacNetworkInterfaceName", "class_distributed_match_engine_1_1_mac_network_interface_name.html#a8074270d34e9890ef0cbb3032a6b6b5c", null ] -]; \ No newline at end of file diff --git a/docs/class_distributed_match_engine_1_1_matching_engine-members.html b/docs/class_distributed_match_engine_1_1_matching_engine-members.html index 930e47c4..59a11ccf 100644 --- a/docs/class_distributed_match_engine_1_1_matching_engine-members.html +++ b/docs/class_distributed_match_engine_1_1_matching_engine-members.html @@ -4,7 +4,7 @@ - + C# SDK: Member List @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -107,90 +107,90 @@
-
-
DistributedMatchEngine.MatchingEngine Member List
+
DistributedMatchEngine.MatchingEngine Member List

This is the complete list of members for DistributedMatchEngine.MatchingEngine, including all inherited members.

- + - - - - - + + + + + + + + + - + - + - + + + - + - + - + - - - + + + - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + +
AddClientCert(string clientCertPath)DistributedMatchEngine.MatchingEnginestatic
baseDmeHost (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEnginestatic
baseDmeHost (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEnginestatic
carrierInfo (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
carrierNameDefault (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEnginestatic
CreateAppInstListRequest(Loc loc, string carrierName=null, UInt32 cellID=0, Dictionary< string, string > tags=null)DistributedMatchEngine.MatchingEngine
CreateFindCloudletRequest(Loc loc, string carrierName=null, UInt32 cellID=0, Dictionary< string, string > tags=null)DistributedMatchEngine.MatchingEngine
CreateQosPositionRequest(List< QosPosition > QosPositions, Int32 lteCategory, BandSelection bandSelection, UInt32 cellID=0, Dictionary< string, string > tags=null)DistributedMatchEngine.MatchingEngine
CreateRegisterClientRequest(string orgName, string appName, string appVersion, string authToken=null, UInt32 cellID=0, string uniqueIDType=null, string uniqueID=null, Dictionary< string, string > tags=null)DistributedMatchEngine.MatchingEngine
carrierNameDefault (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEnginestatic
CreateAppInstListRequest(Loc loc, string carrierName=null, Dictionary< string, string > tags=null)DistributedMatchEngine.MatchingEngine
CreateFindCloudletRequest(Loc loc, string carrierName=null, Dictionary< string, string > tags=null)DistributedMatchEngine.MatchingEngine
CreateQosPositionRequest(List< QosPosition > QosPositions, Int32 lteCategory, BandSelection bandSelection, Dictionary< string, string > tags=null)DistributedMatchEngine.MatchingEngine
CreateQosPriorityCreateRequest(QosSessionProfile sessionProfile, FindCloudletReply findCloudletReply, string applicationPort, string serverPort, QosSessionProtocol protocolIn=QosSessionProtocol.Any, QosSessionProtocol protocolOut=QosSessionProtocol.Any, UInt32 duration=0, string notificationUri="", string notificationAuthToken="", Dictionary< string, string > tags=null, IPEndPoint localEndPoint=null)DistributedMatchEngine.MatchingEngine
CreateQosPriorityDeleteRequest(QosSessionProfile sessionProfile, Dictionary< string, string > tags=null)DistributedMatchEngine.MatchingEngine
CreateQOSPrioritySession(QosPrioritySessionCreateRequest request)DistributedMatchEngine.MatchingEngine
CreateQOSPrioritySession(string host, uint port, QosPrioritySessionCreateRequest request)DistributedMatchEngine.MatchingEngine
CreateRegisterClientRequest(string orgName, string appName, string appVersion, string authToken=null, Dictionary< string, string > tags=null)DistributedMatchEngine.MatchingEngine
CreateUrl(FindCloudletReply findCloudletReply, AppPort appPort, string protocol, int desiredPort=0, string path="")DistributedMatchEngine.MatchingEngine
CreateVerifyLocationRequest(Loc loc, string carrierName=null, UInt32 cellID=0, Dictionary< string, string > tags=null)DistributedMatchEngine.MatchingEngine
CreateVerifyLocationRequest(Loc loc, string carrierName=null, Dictionary< string, string > tags=null)DistributedMatchEngine.MatchingEngine
DEFAULT_GETCONNECTION_TIMEOUT_MSDistributedMatchEngine.MatchingEnginestatic
DEFAULT_REST_TIMEOUT_MS (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEnginestatic
DEFAULT_REST_TIMEOUT_MS (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEnginestatic
defaultDmeRestPort (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEnginestatic
deviceInfo (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
DeleteQOSPrioritySession(QosPrioritySessionDeleteRequest request)DistributedMatchEngine.MatchingEngine
DeleteQOSPrioritySession(string host, uint port, QosPrioritySessionDeleteRequest request)DistributedMatchEngine.MatchingEngine
deviceInfo (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
Dispose(bool disposing) (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngineprotectedvirtual
Dispose() (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
Dispose() (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
DmeConnection (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
EnableEnhancedLocationServicesDistributedMatchEngine.MatchingEnginestatic
EnableEnhancedLocationServicesDistributedMatchEngine.MatchingEnginestatic
EnableSSLProtocols(SslProtocols[] protocols)DistributedMatchEngine.MatchingEnginestatic
EventBusDelegate(ServerEdgeEvent serverEdgeEvent) (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
EventBusDelegate(ServerEdgeEvent serverEdgeEvent) (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
EventBusReciever (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
FindCloudlet(FindCloudletRequest request, FindCloudletMode mode=FindCloudletMode.PROXIMITY, IPEndPoint localEndPoint=null)DistributedMatchEngine.MatchingEngine
FindCloudlet(string host, uint port, FindCloudletRequest request, FindCloudletMode mode=FindCloudletMode.PROXIMITY, IPEndPoint localEndPoint=null)DistributedMatchEngine.MatchingEngine
FindCloudletPerformanceMode(string host, uint port, FindCloudletRequest request, int testPort=0, int numOfSamples=5, IPEndPoint localEndPoint=null) (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
FindCloudlet(FindCloudletRequest request, FindCloudletMode mode=FindCloudletMode.PROXIMITY, IPEndPoint localEndPoint=null)DistributedMatchEngine.MatchingEngine
FindCloudlet(string host, uint port, FindCloudletRequest request, FindCloudletMode mode=FindCloudletMode.PROXIMITY, IPEndPoint localEndPoint=null)DistributedMatchEngine.MatchingEngine
FindCloudletPerformanceMode(string host, uint port, FindCloudletRequest request, int testPort=0, int numOfSamples=5, IPEndPoint localEndPoint=null) (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
GenerateDmeHostAddress()DistributedMatchEngine.MatchingEngine
GetAppInstList(AppInstListRequest request)DistributedMatchEngine.MatchingEngine
GetAppInstList(string host, uint port, AppInstListRequest request)DistributedMatchEngine.MatchingEngine
GetAppPortsByProtocol(FindCloudletReply reply, LProto proto)DistributedMatchEngine.MatchingEngine
GetAppInstList(AppInstListRequest request)DistributedMatchEngine.MatchingEngine
GetAppInstList(string host, uint port, AppInstListRequest request)DistributedMatchEngine.MatchingEngine
GetAppPortsByProtocol(FindCloudletReply reply, LProto proto)DistributedMatchEngine.MatchingEngine
GetAvailableCellularName(NetworkInterfaceName networkInterfaceName) (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
GetAvailableWiFiName(NetworkInterfaceName networkInterfaceName) (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
GetAvailableWiFiName(NetworkInterfaceName networkInterfaceName) (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
GetCarrierName()DistributedMatchEngine.MatchingEngine
GetCellID()DistributedMatchEngine.MatchingEngine
GetDMEConnection(string edgeEventCookie, string dmeHost=null, uint dmePort=0)DistributedMatchEngine.MatchingEngine
GetHost(FindCloudletReply findCloudletReply, AppPort appPort)DistributedMatchEngine.MatchingEngine
GetHTTPClient(FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, string path="")DistributedMatchEngine.MatchingEngine
GetHTTPClient(Uri uri) (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
GetHTTPSClient(FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, string path="")DistributedMatchEngine.MatchingEngine
GetIPAddressByFamily(string sourceNetInterfaceName, AddressFamily addressfamily=AddressFamily.InterNetwork) (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
GetIPEndPointByHostName(string hostName, uint port=0) (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
GetIPEndPointByName(string interfaceName, uint port=0, AddressFamily addressFamily=AddressFamily.InterNetwork)DistributedMatchEngine.MatchingEngine
GetPort(AppPort appPort, int desiredPort=0)DistributedMatchEngine.MatchingEngine
GetQosPositionKpi(QosPositionRequest request)DistributedMatchEngine.MatchingEngine
GetQosPositionKpi(string host, uint port, QosPositionRequest request)DistributedMatchEngine.MatchingEngine
GetSecureWebsocketConnection(FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, string path="")DistributedMatchEngine.MatchingEngine
GetSecureWebsocketConnection(Uri uri, int timeoutMs, bool waitForOpen=true) (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
GetTCPAppPorts(FindCloudletReply reply)DistributedMatchEngine.MatchingEngine
GetTCPConnection(FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, IPEndPoint localEndPoint=null)DistributedMatchEngine.MatchingEngine
GetTCPConnection(string host, int port, int timeoutMs, IPEndPoint localEndPoint=null) (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
GetTCPTLSConnection(FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, bool allowSelfSignedCerts=false, IPEndPoint localEndPoint=null)DistributedMatchEngine.MatchingEngine
GetTCPTLSConnection(string host, int port, int timeoutMs, bool allowSelfSignedCerts=false, IPEndPoint localEndPoint=null) (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
GetUDPAppPorts(FindCloudletReply reply)DistributedMatchEngine.MatchingEngine
GetUDPConnection(FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, IPEndPoint localEndPoint=null)DistributedMatchEngine.MatchingEngine
GetUDPConnection(string host, int port, int timeoutMs, IPEndPoint localEndPoint=null) (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
GetUniqueID()DistributedMatchEngine.MatchingEngine
GetUniqueIDType()DistributedMatchEngine.MatchingEngine
GetWebsocketConnection(FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, string path="")DistributedMatchEngine.MatchingEngine
GetWebsocketConnection(Uri uri, int timeoutMs, bool waitForOpen=true) (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
LastRegisterClientRequest (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
LocalIP (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
MatchingEngine(CarrierInfo carrierInfo=null, NetInterface netInterface=null, UniqueID uniqueID=null, DeviceInfo deviceInfo=null)DistributedMatchEngine.MatchingEngine
netInterface (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
RegisterAndFindCloudlet(string orgName, string appName, string appVersion, Loc loc, string carrierName="", string authToken=null, UInt32 cellID=0, string uniqueIDType=null, string uniqueID=null, Dictionary< string, string > tags=null, FindCloudletMode mode=FindCloudletMode.PROXIMITY)DistributedMatchEngine.MatchingEngine
RegisterAndFindCloudlet(string host, uint port, string orgName, string appName, string appVersion, Loc loc, string carrierName="", string authToken=null, UInt32 cellID=0, string uniqueIDType=null, string uniqueID=null, Dictionary< string, string > tags=null, FindCloudletMode mode=FindCloudletMode.PROXIMITY)DistributedMatchEngine.MatchingEngine
RegisterClient(RegisterClientRequest request)DistributedMatchEngine.MatchingEngine
RegisterClient(string host, uint port, RegisterClientRequest request)DistributedMatchEngine.MatchingEngine
ServerRequiresClientCertificateAuthentication(bool required)DistributedMatchEngine.MatchingEnginestatic
sessionCookie (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
SetMelMessaging(MelMessagingInterface melInterface)DistributedMatchEngine.MatchingEngine
GetDMEConnection(string edgeEventCookie, string dmeHost=null, uint dmePort=0)DistributedMatchEngine.MatchingEngine
GetHost(FindCloudletReply findCloudletReply, AppPort appPort)DistributedMatchEngine.MatchingEngine
GetHTTPClient(FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, string path="")DistributedMatchEngine.MatchingEngine
GetHTTPClient(Uri uri) (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
GetHTTPSClient(FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, string path="")DistributedMatchEngine.MatchingEngine
GetIPAddressByFamily(string sourceNetInterfaceName, AddressFamily addressfamily=AddressFamily.InterNetwork) (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
GetIPEndPointByHostName(string hostName, uint port=0) (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
GetIPEndPointByName(string interfaceName, uint port=0, AddressFamily addressFamily=AddressFamily.InterNetwork)DistributedMatchEngine.MatchingEngine
GetPort(AppPort appPort, int desiredPort=0)DistributedMatchEngine.MatchingEngine
GetQosPositionKpi(QosPositionRequest request)DistributedMatchEngine.MatchingEngine
GetQosPositionKpi(string host, uint port, QosPositionRequest request)DistributedMatchEngine.MatchingEngine
GetSecureWebsocketConnection(FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, string path="")DistributedMatchEngine.MatchingEngine
GetSecureWebsocketConnection(Uri uri, int timeoutMs, bool waitForOpen=true) (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
GetTCPAppPorts(FindCloudletReply reply)DistributedMatchEngine.MatchingEngine
GetTCPConnection(FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, IPEndPoint localEndPoint=null)DistributedMatchEngine.MatchingEngine
GetTCPConnection(string host, int port, int timeoutMs, IPEndPoint localEndPoint=null) (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
GetTCPTLSConnection(FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, bool allowSelfSignedCerts=false, IPEndPoint localEndPoint=null)DistributedMatchEngine.MatchingEngine
GetTCPTLSConnection(string host, int port, int timeoutMs, bool allowSelfSignedCerts=false, IPEndPoint localEndPoint=null)DistributedMatchEngine.MatchingEngine
GetUDPAppPorts(FindCloudletReply reply)DistributedMatchEngine.MatchingEngine
GetUDPConnection(FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, IPEndPoint localEndPoint=null)DistributedMatchEngine.MatchingEngine
GetUDPConnection(string host, int port, int timeoutMs, IPEndPoint localEndPoint=null) (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
GetWebsocketConnection(FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, string path="")DistributedMatchEngine.MatchingEngine
GetWebsocketConnection(Uri uri, int timeoutMs, bool waitForOpen=true) (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
LastRegisterClientRequest (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
LocalIP (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
MatchingEngine(CarrierInfo carrierInfo=null, NetInterface netInterface=null, DeviceInfo deviceInfo=null)DistributedMatchEngine.MatchingEngine
netInterface (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
RegisterAndFindCloudlet(string orgName, string appName, string appVersion, Loc loc, string carrierName="", string authToken=null, Dictionary< string, string > tags=null, FindCloudletMode mode=FindCloudletMode.PROXIMITY)DistributedMatchEngine.MatchingEngine
RegisterAndFindCloudlet(string host, uint port, string orgName, string appName, string appVersion, Loc loc, string carrierName="", string authToken=null, Dictionary< string, string > tags=null, FindCloudletMode mode=FindCloudletMode.PROXIMITY)DistributedMatchEngine.MatchingEngine
RegisterClient(RegisterClientRequest request)DistributedMatchEngine.MatchingEngine
RegisterClient(string host, uint port, RegisterClientRequest request)DistributedMatchEngine.MatchingEngine
ServerRequiresClientCertificateAuthentication(bool required)DistributedMatchEngine.MatchingEnginestatic
sessionCookie (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
SetTimeout(int timeout_in_milliseconds)DistributedMatchEngine.MatchingEngine
TAG (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEnginestatic
uniqueID (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
useOnlyWifi (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
useSSL (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
VerifyLocation(VerifyLocationRequest request)DistributedMatchEngine.MatchingEngine
VerifyLocation(string host, uint port, VerifyLocationRequest request)DistributedMatchEngine.MatchingEngine
wifiCarrier (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEnginestatic
wifiOnlyDmeHost (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEnginestatic
TAG (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEnginestatic
useOnlyWifi (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
useSSL (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine
VerifyLocation(VerifyLocationRequest request)DistributedMatchEngine.MatchingEngine
VerifyLocation(string host, uint port, VerifyLocationRequest request)DistributedMatchEngine.MatchingEngine
wifiCarrier (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEnginestatic
wifiOnlyDmeHost (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEnginestatic
@@ -199,7 +199,7 @@
    + doxygen 1.9.3
diff --git a/docs/class_distributed_match_engine_1_1_matching_engine.html b/docs/class_distributed_match_engine_1_1_matching_engine.html index e34226ee..629a1496 100644 --- a/docs/class_distributed_match_engine_1_1_matching_engine.html +++ b/docs/class_distributed_match_engine_1_1_matching_engine.html @@ -4,7 +4,7 @@ - + C# SDK: DistributedMatchEngine.MatchingEngine Class Reference @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -114,136 +114,145 @@ Protected Member Functions | Properties | List of all members -
-
DistributedMatchEngine.MatchingEngine Class Reference
+
DistributedMatchEngine.MatchingEngine Class Reference

Inherits IDisposable.

- - - - + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - + + + + - - + - - + - - + - + - - - - - - - - - - + + + + + +

+

Public Member Functions

+
delegate void EventBusDelegate (ServerEdgeEvent serverEdgeEvent)
 
 MatchingEngine (CarrierInfo carrierInfo=null, NetInterface netInterface=null, UniqueID uniqueID=null, DeviceInfo deviceInfo=null)
 
 MatchingEngine (CarrierInfo carrierInfo=null, NetInterface netInterface=null, DeviceInfo deviceInfo=null)
 
DMEConnection GetDMEConnection (string edgeEventCookie, string dmeHost=null, uint dmePort=0)
 
void SetMelMessaging (MelMessagingInterface melInterface)
 
TimeSpan SetTimeout (int timeout_in_milliseconds)
 
string GetUniqueIDType ()
 
string GetUniqueID ()
 
ulong GetCellID ()
 
string GetCarrierName ()
 
string GenerateDmeHostAddress ()
 
RegisterClientRequest CreateRegisterClientRequest (string orgName, string appName, string appVersion, string authToken=null, UInt32 cellID=0, string uniqueIDType=null, string uniqueID=null, Dictionary< string, string > tags=null)
 
async Task< RegisterClientReply > RegisterClient (RegisterClientRequest request)
 
async Task< RegisterClientReply > RegisterClient (string host, uint port, RegisterClientRequest request)
 
FindCloudletRequest CreateFindCloudletRequest (Loc loc, string carrierName=null, UInt32 cellID=0, Dictionary< string, string > tags=null)
 
async Task< FindCloudletReply > FindCloudlet (FindCloudletRequest request, FindCloudletMode mode=FindCloudletMode.PROXIMITY, IPEndPoint localEndPoint=null)
 
async Task< FindCloudletReply > FindCloudlet (string host, uint port, FindCloudletRequest request, FindCloudletMode mode=FindCloudletMode.PROXIMITY, IPEndPoint localEndPoint=null)
 
+
RegisterClientRequest CreateRegisterClientRequest (string orgName, string appName, string appVersion, string authToken=null, Dictionary< string, string > tags=null)
 
async Task< RegisterClientReply > RegisterClient (RegisterClientRequest request)
 
async Task< RegisterClientReply > RegisterClient (string host, uint port, RegisterClientRequest request)
 
FindCloudletRequest CreateFindCloudletRequest (Loc loc, string carrierName=null, Dictionary< string, string > tags=null)
 
async Task< FindCloudletReply > FindCloudlet (FindCloudletRequest request, FindCloudletMode mode=FindCloudletMode.PROXIMITY, IPEndPoint localEndPoint=null)
 
async Task< FindCloudletReply > FindCloudlet (string host, uint port, FindCloudletRequest request, FindCloudletMode mode=FindCloudletMode.PROXIMITY, IPEndPoint localEndPoint=null)
 
async Task< FindCloudletReply > FindCloudletPerformanceMode (string host, uint port, FindCloudletRequest request, int testPort=0, int numOfSamples=5, IPEndPoint localEndPoint=null)
 
async Task< FindCloudletReply > RegisterAndFindCloudlet (string orgName, string appName, string appVersion, Loc loc, string carrierName="", string authToken=null, UInt32 cellID=0, string uniqueIDType=null, string uniqueID=null, Dictionary< string, string > tags=null, FindCloudletMode mode=FindCloudletMode.PROXIMITY)
 
async Task< FindCloudletReply > RegisterAndFindCloudlet (string host, uint port, string orgName, string appName, string appVersion, Loc loc, string carrierName="", string authToken=null, UInt32 cellID=0, string uniqueIDType=null, string uniqueID=null, Dictionary< string, string > tags=null, FindCloudletMode mode=FindCloudletMode.PROXIMITY)
 
VerifyLocationRequest CreateVerifyLocationRequest (Loc loc, string carrierName=null, UInt32 cellID=0, Dictionary< string, string > tags=null)
 
async Task< VerifyLocationReply > VerifyLocation (VerifyLocationRequest request)
 
async Task< VerifyLocationReply > VerifyLocation (string host, uint port, VerifyLocationRequest request)
 
AppInstListRequest CreateAppInstListRequest (Loc loc, string carrierName=null, UInt32 cellID=0, Dictionary< string, string > tags=null)
 
async Task< AppInstListReply > GetAppInstList (AppInstListRequest request)
 
async Task< AppInstListReply > GetAppInstList (string host, uint port, AppInstListRequest request)
 
QosPositionRequest CreateQosPositionRequest (List< QosPosition > QosPositions, Int32 lteCategory, BandSelection bandSelection, UInt32 cellID=0, Dictionary< string, string > tags=null)
 
async Task< QosPositionKpiStream > GetQosPositionKpi (QosPositionRequest request)
 
async Task< QosPositionKpiStream > GetQosPositionKpi (string host, uint port, QosPositionRequest request)
 
+
 
async Task< FindCloudletReply > RegisterAndFindCloudlet (string orgName, string appName, string appVersion, Loc loc, string carrierName="", string authToken=null, Dictionary< string, string > tags=null, FindCloudletMode mode=FindCloudletMode.PROXIMITY)
 
async Task< FindCloudletReply > RegisterAndFindCloudlet (string host, uint port, string orgName, string appName, string appVersion, Loc loc, string carrierName="", string authToken=null, Dictionary< string, string > tags=null, FindCloudletMode mode=FindCloudletMode.PROXIMITY)
 
VerifyLocationRequest CreateVerifyLocationRequest (Loc loc, string carrierName=null, Dictionary< string, string > tags=null)
 
async Task< VerifyLocationReply > VerifyLocation (VerifyLocationRequest request)
 
async Task< VerifyLocationReply > VerifyLocation (string host, uint port, VerifyLocationRequest request)
 
AppInstListRequest CreateAppInstListRequest (Loc loc, string carrierName=null, Dictionary< string, string > tags=null)
 
async Task< AppInstListReply > GetAppInstList (AppInstListRequest request)
 
async Task< AppInstListReply > GetAppInstList (string host, uint port, AppInstListRequest request)
 
QosPositionRequest CreateQosPositionRequest (List< QosPosition > QosPositions, Int32 lteCategory, BandSelection bandSelection, Dictionary< string, string > tags=null)
 
async Task< QosPositionKpiStream > GetQosPositionKpi (QosPositionRequest request)
 
async Task< QosPositionKpiStream > GetQosPositionKpi (string host, uint port, QosPositionRequest request)
 
QosPrioritySessionCreateRequest CreateQosPriorityCreateRequest (QosSessionProfile sessionProfile, FindCloudletReply findCloudletReply, string applicationPort, string serverPort, QosSessionProtocol protocolIn=QosSessionProtocol.Any, QosSessionProtocol protocolOut=QosSessionProtocol.Any, UInt32 duration=0, string notificationUri="", string notificationAuthToken="", Dictionary< string, string > tags=null, IPEndPoint localEndPoint=null)
 Creates the create request for a QoS priority session More...
 
async Task< QosPrioritySessionCreateReply > CreateQOSPrioritySession (QosPrioritySessionCreateRequest request)
 Creates QoS priority session More...
 
async Task< QosPrioritySessionCreateReply > CreateQOSPrioritySession (string host, uint port, QosPrioritySessionCreateRequest request)
 Creates QoS priority session More...
 
QosPrioritySessionDeleteRequest CreateQosPriorityDeleteRequest (QosSessionProfile sessionProfile, Dictionary< string, string > tags=null)
 Creates DeleteRequest for deleting a running QoSPrioritySession, returns null if no QoSSessionId is stored in matchingEngine More...
 
async Task< QosPrioritySessionDeleteReply > DeleteQOSPrioritySession (QosPrioritySessionDeleteRequest request)
 Deletes QoS priority session More...
 
async Task< QosPrioritySessionDeleteReply > DeleteQOSPrioritySession (string host, uint port, QosPrioritySessionDeleteRequest request)
 Deletes QoS priority session More...
 
void Dispose ()
 
async Task< Socket > GetTCPConnection (FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, IPEndPoint localEndPoint=null)
 
async Task< SslStream > GetTCPTLSConnection (FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, bool allowSelfSignedCerts=false, IPEndPoint localEndPoint=null)
 
async Task< Socket > GetUDPConnection (FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, IPEndPoint localEndPoint=null)
 
async Task< HttpClient > GetHTTPClient (FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, string path="")
 
async Task< HttpClient > GetHTTPSClient (FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, string path="")
 
async Task< ClientWebSocket > GetWebsocketConnection (FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, string path="")
 
async Task< ClientWebSocket > GetSecureWebsocketConnection (FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, string path="")
 
+
async Task< Socket > GetTCPConnection (FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, IPEndPoint localEndPoint=null)
 
async Task< SslStream > GetTCPTLSConnection (FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, bool allowSelfSignedCerts=false, IPEndPoint localEndPoint=null)
 
async Task< Socket > GetUDPConnection (FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, IPEndPoint localEndPoint=null)
 
async Task< HttpClient > GetHTTPClient (FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, string path="")
 
async Task< HttpClient > GetHTTPSClient (FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, string path="")
 
async Task< ClientWebSocket > GetWebsocketConnection (FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, string path="")
 
async Task< ClientWebSocket > GetSecureWebsocketConnection (FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, string path="")
 
async Task< Socket > GetTCPConnection (string host, int port, int timeoutMs, IPEndPoint localEndPoint=null)
 
-async Task< SslStream > GetTCPTLSConnection (string host, int port, int timeoutMs, bool allowSelfSignedCerts=false, IPEndPoint localEndPoint=null)
 
+
 
async Task< SslStream > GetTCPTLSConnection (string host, int port, int timeoutMs, bool allowSelfSignedCerts=false, IPEndPoint localEndPoint=null)
 GetTCPTLSConnection helper function More...
 
async Task< Socket > GetUDPConnection (string host, int port, int timeoutMs, IPEndPoint localEndPoint=null)
 
+
 
async Task< HttpClient > GetHTTPClient (Uri uri)
 
+
 
async Task< ClientWebSocket > GetWebsocketConnection (Uri uri, int timeoutMs, bool waitForOpen=true)
 
+
 
async Task< ClientWebSocket > GetSecureWebsocketConnection (Uri uri, int timeoutMs, bool waitForOpen=true)
 
 
string CreateUrl (FindCloudletReply findCloudletReply, AppPort appPort, string protocol, int desiredPort=0, string path="")
 
string GetHost (FindCloudletReply findCloudletReply, AppPort appPort)
 
int GetPort (AppPort appPort, int desiredPort=0)
 
+
string GetAvailableCellularName (NetworkInterfaceName networkInterfaceName)
 
+
string GetAvailableWiFiName (NetworkInterfaceName networkInterfaceName)
 
IPEndPoint GetIPEndPointByName (string interfaceName, uint port=0, AddressFamily addressFamily=AddressFamily.InterNetwork)
 
+
IPEndPoint GetIPEndPointByHostName (string hostName, uint port=0)
 
+
IPAddress GetIPAddressByFamily (string sourceNetInterfaceName, AddressFamily addressfamily=AddressFamily.InterNetwork)
 
Dictionary< int, AppPort > GetAppPortsByProtocol (FindCloudletReply reply, LProto proto)
 
Dictionary< int, AppPort > GetTCPAppPorts (FindCloudletReply reply)
 
Dictionary< int, AppPort > GetUDPAppPorts (FindCloudletReply reply)
 
Dictionary< int, AppPort > GetAppPortsByProtocol (FindCloudletReply reply, LProto proto)
 
Dictionary< int, AppPort > GetTCPAppPorts (FindCloudletReply reply)
 
Dictionary< int, AppPort > GetUDPAppPorts (FindCloudletReply reply)
 
- @@ -252,81 +261,78 @@

+

Static Public Member Functions

static void ServerRequiresClientCertificateAuthentication (bool required)
 
static void AddClientCert (string clientCertPath)
 
- - - - - - - -

+

Static Public Attributes

+
const string TAG = "MatchingEngine"
 
+
const UInt32 defaultDmeRestPort = 38001
 
+
const string carrierNameDefault = "wifi"
 
+
const string wifiCarrier = "wifi"
 
+
const string wifiOnlyDmeHost = wifiCarrier + "." + baseDmeHost
 
+
const string baseDmeHost = "dme.mobiledgex.net"
 
+
const int DEFAULT_REST_TIMEOUT_MS = 10000
 
const int DEFAULT_GETCONNECTION_TIMEOUT_MS = 10000
 
- -

+

Protected Member Functions

+
virtual void Dispose (bool disposing)
 
- - - - - - - - - - - - -

+

Properties

static bool EnableEnhancedLocationServices = false [get, set]
 
+
CarrierInfo carrierInfo [get, set]
 
+
NetInterface netInterface [get, set]
 
-UniqueID uniqueID [get, set]
 
+
DeviceInfo deviceInfo [get]
 
+
bool useOnlyWifi = false [get, set]
 
+
bool useSSL = true [get, set]
 
+
string sessionCookie [get, set]
 
+
string LocalIP [get, set]
 
+
EventBusDelegate EventBusReciever [get, set]
 
+
DMEConnection DmeConnection [get, set]
 
+
RegisterClientRequest LastRegisterClientRequest [get]
 

Detailed Description

-

Main MobiledgeX SDK class. This class provides functions to find nearest cloudlet with the developer's application instance deployed and to connect to that application instance.

+

Main MobiledgeX SDK class. This class provides functions to find nearest cloudlet with the developer's application instance deployed and to connect to that application instance.

Constructor & Destructor Documentation

- -

◆ MatchingEngine()

+ +

◆ MatchingEngine()

@@ -343,12 +349,6 @@

NetInterface  netInterface = null, - - - - UniqueID  - uniqueID = null, - @@ -362,24 +362,347 @@

-

Constructor for MatchingEngine class.

Parameters
+

Constructor for MatchingEngine class.

Parameters
-
carrierInfo(CarrierInfo):
netInterface(NetInterface):
uniqueID(UniqueID):
deviceInfo(DeviceInfo):

Example

-
MatchingEngine me = new MatchingEngine(new DummyCarrierInfo(), new SimpleNetInterface(new MacNetworkInterfaceName()), new DummyUniqueID(), new DummyDeviceInfo());
-
MatchingEngine(CarrierInfo carrierInfo=null, NetInterface netInterface=null, UniqueID uniqueID=null, DeviceInfo deviceInfo=null)
Definition: DistributedMatchEngine.cs:265
-
+
MatchingEngine me = new MatchingEngine(new DummyCarrierInfo(), new SimpleNetInterface(new MacNetworkInterfaceName()), new DummyDeviceInfo());
+
MatchingEngine(CarrierInfo carrierInfo=null, NetInterface netInterface=null, DeviceInfo deviceInfo=null)
Definition: DistributedMatchEngine.cs:262
+

Member Function Documentation

- + +

◆ CreateQosPriorityCreateRequest()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
QosPrioritySessionCreateRequest DistributedMatchEngine.MatchingEngine.CreateQosPriorityCreateRequest (QosSessionProfile sessionProfile,
FindCloudletReply findCloudletReply,
string applicationPort,
string serverPort,
QosSessionProtocol protocolIn = QosSessionProtocol.Any,
QosSessionProtocol protocolOut = QosSessionProtocol.Any,
UInt32 duration = 0,
string notificationUri = "",
string notificationAuthToken = "",
Dictionary< string, string > tags = null,
IPEndPoint localEndPoint = null 
)
+
+ +

Creates the create request for a QoS priority session

+
Parameters
+ + +
sessionProfileThe QosSessionProfile choose an option from the following:
+
+
+

(NoPriority, LowLatency, ThroughputDownS, ThroughputDownM, ThroughputDownL)

+
Parameters
+ + +
findCloudletReplythe FindCloudletReply to be used, findCloudletReply is used for retrieving the following information
+
+
+

SessionCookie, IPAddress of the server, Detecting if there is a QoS session created already

+

if findCloudletReply.Status is not "Found" the function will return a null value

+
Parameters
+ + +
applicationPortA string representing a list of single ports or port ranges on the user equipment
+
+
+

range of ports ex. "5000-5500"

+

comma delimited ports ex. "5000,6000"

+

a mix of both ex. "5000-5500,4000,6000"

+
Parameters
+ + +
serverPortA string representing a list of single ports or port ranges on the application server
+
+
+

range of ports ex. "5000-5500"

+

comma delimited ports ex. "5000,6000"

+

a mix of both ex. "5000-5500,4000,6000"

+
Parameters
+ + + + + + + + +
protocolIn(Optional) The used transport protocol for the uplink (default QosSessionProtocol.Any)
protocolOut(Optional) The used transport protocol for the downlink (default QosSessionProtocol.Any)
duration(Optional) QoS Priority Session duration in seconds
notificationUri(Optional) URI of the callback receiver. Allows asynchronous delivery of session related events, malformed uri will result in a null value
notificationAuthToken(Optional) Authentification token for callback API
tags(Optional) Vendor specific data
localEndPoint(Optional) IPV4 Address of the device, if not supplied the SDK will determine the IPV4 address of the device.
+
+
+
Returns
QosPrioritySessionCreateRequest object
+

+Example

+ +
+
+ +

◆ CreateQosPriorityDeleteRequest()

+ +
+
+ + + + + + + + + + + + + + + + + + +
QosPrioritySessionDeleteRequest DistributedMatchEngine.MatchingEngine.CreateQosPriorityDeleteRequest (QosSessionProfile sessionProfile,
Dictionary< string, string > tags = null 
)
+
+ +

Creates DeleteRequest for deleting a running QoSPrioritySession, returns null if no QoSSessionId is stored in matchingEngine

+
Parameters
+ + + +
sessionProfileThe QosSessionProfile to delete
tags(Optional) Vendor specific data
+
+
+
Returns
QosPrioritySessionDeleteRequest object
+

+Example

+ +
+
+ +

◆ CreateQOSPrioritySession() [1/2]

+ +
+
+ + + + + + + + +
async Task< QosPrioritySessionCreateReply > DistributedMatchEngine.MatchingEngine.CreateQOSPrioritySession (QosPrioritySessionCreateRequest request)
+
+ +

Creates QoS priority session

+
Parameters
+ + +
requestQosPrioritySessionCreateRequest object
+
+
+
Returns
QosPrioritySessionReply object
+

+Example

+ +
+
+ +

◆ CreateQOSPrioritySession() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
async Task< QosPrioritySessionCreateReply > DistributedMatchEngine.MatchingEngine.CreateQOSPrioritySession (string host,
uint port,
QosPrioritySessionCreateRequest request 
)
+
+ +

Creates QoS priority session

+
Parameters
+ + + + +
host(string) dme host
port(uint) dme port
requestQosPrioritySessionCreateRequest object
+
+
+
Returns
QosPrioritySessionReply object
+

+Example

+ +
+
+ +

◆ DeleteQOSPrioritySession() [1/2]

+ +
+
+ + + + + + + + +
async Task< QosPrioritySessionDeleteReply > DistributedMatchEngine.MatchingEngine.DeleteQOSPrioritySession (QosPrioritySessionDeleteRequest request)
+
+ +

Deletes QoS priority session

+
Parameters
+ + +
requestQosPrioritySessionDeleteRequest object
+
+
+
Returns
QosPrioritySessionDeleteReply object
+

+Example

+ +
+
+ +

◆ DeleteQOSPrioritySession() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
async Task< QosPrioritySessionDeleteReply > DistributedMatchEngine.MatchingEngine.DeleteQOSPrioritySession (string host,
uint port,
QosPrioritySessionDeleteRequest request 
)
+
+ +

Deletes QoS priority session

+
Parameters
+ + + + +
host(string) dme host
port(uint) dme port
requestQosPrioritySessionDeleteRequest object
+
+
+
Returns
QosPrioritySessionDeleteReply object
+

+Example

+ +
+
+

◆ GetDMEConnection()

- +

◆ GetIPEndPointByName()

- -

◆ SetMelMessaging()

+ +

◆ GetTCPTLSConnection()

- + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void DistributedMatchEngine.MatchingEngine.SetMelMessaging async Task< SslStream > DistributedMatchEngine.MatchingEngine.GetTCPTLSConnection (MelMessagingInterface melInterface)string host,
int port,
int timeoutMs,
bool allowSelfSignedCerts = false,
IPEndPoint localEndPoint = null 
)
-

A device specific interface.

+ +

GetTCPTLSConnection helper function

+
Parameters
+ + + + + + +
host
port
timeoutMs
allowSelfSignedCertsWorks in Debug Mode only
localEndPoint
+
+
+
Returns

Member Data Documentation

- +

◆ DEFAULT_GETCONNECTION_TIMEOUT_MS

Property Documentation

-
+

◆ EnableEnhancedLocationServices

@@ -512,7 +875,7 @@

-

Enable edge features. If enabled, this may cause permission prompts on some target devices due to the MatchingEngine probing the current network state for edge capabilities. Edge features may be degraded if not enabled.

+

Enable edge features. If enabled, this may cause permission prompts on some target devices due to the MatchingEngine probing the current network state for edge capabilities. Edge features may be degraded if not enabled.

@@ -525,7 +888,7 @@

DistributedMatchEngine + doxygen 1.9.3 diff --git a/docs/class_distributed_match_engine_1_1_matching_engine.js b/docs/class_distributed_match_engine_1_1_matching_engine.js deleted file mode 100644 index 6bd73fa6..00000000 --- a/docs/class_distributed_match_engine_1_1_matching_engine.js +++ /dev/null @@ -1,71 +0,0 @@ -var class_distributed_match_engine_1_1_matching_engine = -[ - [ "MatchingEngine", "class_distributed_match_engine_1_1_matching_engine.html#ac16acdd9772a7aa9d023b3d3a9e27629", null ], - [ "CreateAppInstListRequest", "group__functions__dmeapis.html#ga6aadad2b1ae1d94dca6c363a31f966d2", null ], - [ "CreateFindCloudletRequest", "group__functions__dmeapis.html#gae61072f92ed0b4acdcfce85b91bdbe8c", null ], - [ "CreateQosPositionRequest", "group__functions__dmeapis.html#ga1383f141a4895a4ff08e8199c1b6d13d", null ], - [ "CreateRegisterClientRequest", "group__functions__dmeapis.html#ga297b9bb13f27bc0a8816d91d3163e5ab", null ], - [ "CreateUrl", "group__functions__getconnectionutils.html#ga7ac7bc02634716174be9dbab28118391", null ], - [ "CreateVerifyLocationRequest", "group__functions__dmeapis.html#ga90cb3eeb18f927dd54e12c004f5a77c5", null ], - [ "Dispose", "class_distributed_match_engine_1_1_matching_engine.html#add0271d7ba69b76af12740122d30170c", null ], - [ "Dispose", "class_distributed_match_engine_1_1_matching_engine.html#af7cd154459793294fbbd28835b6a1dff", null ], - [ "EventBusDelegate", "class_distributed_match_engine_1_1_matching_engine.html#ad9f92096c471f4ad44a9e8dbb644c352", null ], - [ "FindCloudlet", "group__functions__dmeapis.html#ga7a59f3a8bdd685821005e95dc4353bc0", null ], - [ "FindCloudlet", "group__functions__dmeapis.html#ga0e82440ee800b0a94a66b5c8122d895f", null ], - [ "FindCloudletPerformanceMode", "class_distributed_match_engine_1_1_matching_engine.html#adb3750ae5017bbca8365f06e565b212f", null ], - [ "GenerateDmeHostAddress", "group__functions__dmeutils.html#ga4489b0a2311aa4fe5596964eab140d26", null ], - [ "GetAppInstList", "group__functions__dmeapis.html#gac63a90bad5c1f004fcb861219b8656a9", null ], - [ "GetAppInstList", "group__functions__dmeapis.html#ga50403db7c59c6ab6e9a6100953a6bea8", null ], - [ "GetAppPortsByProtocol", "group__functions__getconnectionutils.html#gac2e6e66c846f429806591e2d4ef589b4", null ], - [ "GetAvailableCellularName", "class_distributed_match_engine_1_1_matching_engine.html#a0e33bedfafc9199ae56662f4c03b1a81", null ], - [ "GetAvailableWiFiName", "class_distributed_match_engine_1_1_matching_engine.html#acd281b0c055bcdf32ae4bccb4e4d054a", null ], - [ "GetCarrierName", "group__functions__dmeutils.html#ga5b28acc2b0bf0713ef20f2891358e96e", null ], - [ "GetCellID", "group__functions__dmeutils.html#ga9948a89f47ddc7201fe804da46d2ae83", null ], - [ "GetDMEConnection", "class_distributed_match_engine_1_1_matching_engine.html#aca5884416725d9f86442450ff5a1d1cc", null ], - [ "GetHost", "group__functions__getconnectionutils.html#gad2e00c6d66235c604404044a77a4ab04", null ], - [ "GetHTTPClient", "group__functions__getconnection.html#ga82aa14e4ba2826595f45f812bd7d3360", null ], - [ "GetHTTPClient", "class_distributed_match_engine_1_1_matching_engine.html#a39f9b04c18751afa77df28975f5ea9a5", null ], - [ "GetHTTPSClient", "group__functions__getconnection.html#gac03219f5677caaa8bc5cf32c12d3f139", null ], - [ "GetIPAddressByFamily", "class_distributed_match_engine_1_1_matching_engine.html#a18bf4960971dafe39cc0a96deff19db5", null ], - [ "GetIPEndPointByHostName", "class_distributed_match_engine_1_1_matching_engine.html#ac2e75841417ed2aa21ead6c163241c11", null ], - [ "GetIPEndPointByName", "class_distributed_match_engine_1_1_matching_engine.html#ad904617a5601c7cb6d03f8207e4f6ca1", null ], - [ "GetPort", "group__functions__getconnectionutils.html#gab7ca97c5fb8ada690b549435b022209c", null ], - [ "GetQosPositionKpi", "group__functions__dmeapis.html#gae88c62b86815ccd938066523386687a7", null ], - [ "GetQosPositionKpi", "group__functions__dmeapis.html#ga9373572536454f554dbef9a55190ac72", null ], - [ "GetSecureWebsocketConnection", "group__functions__getconnection.html#ga9e9050f07966ab43447e3a9e05fccc8a", null ], - [ "GetSecureWebsocketConnection", "class_distributed_match_engine_1_1_matching_engine.html#a59369749bd66af19a3cfc495982d6aad", null ], - [ "GetTCPAppPorts", "group__functions__getconnectionutils.html#ga87518ec8da12f1b4d8549acdd7276629", null ], - [ "GetTCPConnection", "group__functions__getconnection.html#ga441781cabf9695a6f874f7905303e9a4", null ], - [ "GetTCPConnection", "class_distributed_match_engine_1_1_matching_engine.html#af519dfb96d8b4634884ca4b35d3eda47", null ], - [ "GetTCPTLSConnection", "group__functions__getconnection.html#gad06f333abb41b258174aa4fe11f79256", null ], - [ "GetTCPTLSConnection", "class_distributed_match_engine_1_1_matching_engine.html#a6ce8f98ff7eb759b4874c0bff32fe96a", null ], - [ "GetUDPAppPorts", "group__functions__getconnectionutils.html#ga6b23316b958094626ef317626130f73d", null ], - [ "GetUDPConnection", "group__functions__getconnection.html#ga9fd278179ea8642681d2273ccc01a6bc", null ], - [ "GetUDPConnection", "class_distributed_match_engine_1_1_matching_engine.html#a527685b07a3907c9692a118683d3db45", null ], - [ "GetUniqueID", "group__functions__dmeutils.html#gab99bcbc61b344d1ddb5c1b6a0933fe6d", null ], - [ "GetUniqueIDType", "group__functions__dmeutils.html#gac3dc722da1f37f5246b2246c63f48c2c", null ], - [ "GetWebsocketConnection", "group__functions__getconnection.html#ga67cc33f6d042e23067a94491f6a33197", null ], - [ "GetWebsocketConnection", "class_distributed_match_engine_1_1_matching_engine.html#a503dc5f7db88a6442b2899e54a0ef05a", null ], - [ "RegisterAndFindCloudlet", "group__functions__dmeapis.html#ga45f3a06fe3bc6a36901d997c450e896f", null ], - [ "RegisterAndFindCloudlet", "group__functions__dmeapis.html#ga6f7ba630220f28313513e6643bda6ae8", null ], - [ "RegisterClient", "group__functions__dmeapis.html#ga747cb0d0aa3d5b2ce0455edbd6d61852", null ], - [ "RegisterClient", "group__functions__dmeapis.html#ga36bfcf871c4cf937589e671741cf794c", null ], - [ "SetMelMessaging", "class_distributed_match_engine_1_1_matching_engine.html#a970d7a81886ff5b9ebae802154ce6350", null ], - [ "SetTimeout", "group__functions__dmeutils.html#gad826defc3bd843f58de0c2edeea02810", null ], - [ "VerifyLocation", "group__functions__dmeapis.html#ga0a883bcda8fb24b5702f194a3ddcafdb", null ], - [ "VerifyLocation", "group__functions__dmeapis.html#ga53d8e4cab28fd865e52126c52489d5c7", null ], - [ "authToken", "class_distributed_match_engine_1_1_matching_engine.html#a3aad87664f8cef6ac05e86f253b3f1c2", null ], - [ "carrierInfo", "class_distributed_match_engine_1_1_matching_engine.html#a5cd003a317dea1afaea1075e02cc5916", null ], - [ "deviceInfo", "class_distributed_match_engine_1_1_matching_engine.html#a9baa353b36e2ecb1ecc80136771c09a7", null ], - [ "DmeConnection", "class_distributed_match_engine_1_1_matching_engine.html#aa579e1b08ed5c255939a6ed69b8f5de4", null ], - [ "dmePort", "class_distributed_match_engine_1_1_matching_engine.html#a34e34fe5089e84c569c129895f45c80f", null ], - [ "EventBusReciever", "class_distributed_match_engine_1_1_matching_engine.html#a9a22edaaf274813213c140dae3b6b455", null ], - [ "LastRegisterClientRequest", "class_distributed_match_engine_1_1_matching_engine.html#a0fe76389eabd69ad0cafaeae23b81823", null ], - [ "LocalIP", "class_distributed_match_engine_1_1_matching_engine.html#aec9cfe8f1a7d6b1ec27f322e4ca2e4ba", null ], - [ "melMessaging", "class_distributed_match_engine_1_1_matching_engine.html#ab574348b32f0554c13723db3d1601a97", null ], - [ "netInterface", "class_distributed_match_engine_1_1_matching_engine.html#a75353c52dbca3646acf0e9cabb29cb9a", null ], - [ "sessionCookie", "class_distributed_match_engine_1_1_matching_engine.html#a023bef34a2adbf66643890fa83fb2272", null ], - [ "uniqueID", "class_distributed_match_engine_1_1_matching_engine.html#a60826c78095312199871a21c5d7e0075", null ], - [ "useOnlyWifi", "class_distributed_match_engine_1_1_matching_engine.html#afa2f91cb553c4bdd787bad3cdb674bea", null ], - [ "useSSL", "class_distributed_match_engine_1_1_matching_engine.html#a935736acdefdbd9f434deb7dbf53890a", null ] -]; \ No newline at end of file diff --git a/docs/class_distributed_match_engine_1_1_network_interface_name-members.html b/docs/class_distributed_match_engine_1_1_network_interface_name-members.html index 100919db..d30851e4 100644 --- a/docs/class_distributed_match_engine_1_1_network_interface_name-members.html +++ b/docs/class_distributed_match_engine_1_1_network_interface_name-members.html @@ -4,7 +4,7 @@ - + C# SDK: Member List @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -107,15 +107,14 @@
-
-
DistributedMatchEngine.NetworkInterfaceName Member List
+
DistributedMatchEngine.NetworkInterfaceName Member List
@@ -124,7 +123,7 @@
    + doxygen 1.9.3
diff --git a/docs/class_distributed_match_engine_1_1_network_interface_name.html b/docs/class_distributed_match_engine_1_1_network_interface_name.html index 2e877d3c..49855560 100644 --- a/docs/class_distributed_match_engine_1_1_network_interface_name.html +++ b/docs/class_distributed_match_engine_1_1_network_interface_name.html @@ -4,7 +4,7 @@ - + C# SDK: DistributedMatchEngine.NetworkInterfaceName Class Reference @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -110,8 +110,7 @@ -
-
DistributedMatchEngine.NetworkInterfaceName Class Reference
+
DistributedMatchEngine.NetworkInterfaceName Class Reference
@@ -128,17 +127,17 @@
- - -

+

Public Attributes

+
Regex CELLULAR = null
 
+
Regex WIFI = null
 

Detailed Description

-

Base Network Interface Name. Aliases for Cellular and Wifi interfaces. Implement this class based on platform/device

+

Base Network Interface Name. Aliases for Cellular and Wifi interfaces. Implement this class based on platform/device

@@ -148,7 +147,7 @@ + doxygen 1.9.3 diff --git a/docs/class_distributed_match_engine_1_1_network_interface_name.js b/docs/class_distributed_match_engine_1_1_network_interface_name.js deleted file mode 100644 index cbeb5501..00000000 --- a/docs/class_distributed_match_engine_1_1_network_interface_name.js +++ /dev/null @@ -1,5 +0,0 @@ -var class_distributed_match_engine_1_1_network_interface_name = -[ - [ "CELLULAR", "class_distributed_match_engine_1_1_network_interface_name.html#a0572eca81068e318b78bdc9962f5d128", null ], - [ "WIFI", "class_distributed_match_engine_1_1_network_interface_name.html#a0389a972e2c5bee23e81f1814152bd74", null ] -]; \ No newline at end of file diff --git a/docs/class_distributed_match_engine_1_1_performance_metrics_1_1_net_test-members.html b/docs/class_distributed_match_engine_1_1_performance_metrics_1_1_net_test-members.html index c20994ae..c1d803eb 100644 --- a/docs/class_distributed_match_engine_1_1_performance_metrics_1_1_net_test-members.html +++ b/docs/class_distributed_match_engine_1_1_performance_metrics_1_1_net_test-members.html @@ -4,7 +4,7 @@ - + C# SDK: Member List @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -107,27 +107,26 @@
-
-
DistributedMatchEngine.PerformanceMetrics.NetTest Member List
+
DistributedMatchEngine.PerformanceMetrics.NetTest Member List

This is the complete list of members for DistributedMatchEngine.PerformanceMetrics.NetTest, including all inherited members.

- + - + - + - + - + - + - +
ConnectAndDisconnect(Site site) (defined in DistributedMatchEngine.PerformanceMetrics.NetTest)DistributedMatchEngine.PerformanceMetrics.NetTest
ConnectAndDisconnectSocket(Site site) (defined in DistributedMatchEngine.PerformanceMetrics.NetTest)DistributedMatchEngine.PerformanceMetrics.NetTest
ConnectAndDisconnectSocket(Site site) (defined in DistributedMatchEngine.PerformanceMetrics.NetTest)DistributedMatchEngine.PerformanceMetrics.NetTest
Dispose() (defined in DistributedMatchEngine.PerformanceMetrics.NetTest)DistributedMatchEngine.PerformanceMetrics.NetTest
doTest(bool enable) (defined in DistributedMatchEngine.PerformanceMetrics.NetTest)DistributedMatchEngine.PerformanceMetrics.NetTest
doTest(bool enable) (defined in DistributedMatchEngine.PerformanceMetrics.NetTest)DistributedMatchEngine.PerformanceMetrics.NetTest
GetSortedSites() (defined in DistributedMatchEngine.PerformanceMetrics.NetTest)DistributedMatchEngine.PerformanceMetrics.NetTest
NetTest(MatchingEngine matchingEngine)DistributedMatchEngine.PerformanceMetrics.NetTest
NetTest(MatchingEngine matchingEngine)DistributedMatchEngine.PerformanceMetrics.NetTest
Ping(Site site) (defined in DistributedMatchEngine.PerformanceMetrics.NetTest)DistributedMatchEngine.PerformanceMetrics.NetTest
PingIntervalMS (defined in DistributedMatchEngine.PerformanceMetrics.NetTest)DistributedMatchEngine.PerformanceMetrics.NetTest
PingIntervalMS (defined in DistributedMatchEngine.PerformanceMetrics.NetTest)DistributedMatchEngine.PerformanceMetrics.NetTest
RunNetTest()DistributedMatchEngine.PerformanceMetrics.NetTest
RunNetTest(int numSamples)DistributedMatchEngine.PerformanceMetrics.NetTest
RunNetTest(int numSamples)DistributedMatchEngine.PerformanceMetrics.NetTest
runTest (defined in DistributedMatchEngine.PerformanceMetrics.NetTest)DistributedMatchEngine.PerformanceMetrics.NetTest
sites (defined in DistributedMatchEngine.PerformanceMetrics.NetTest)DistributedMatchEngine.PerformanceMetrics.NetTest
sites (defined in DistributedMatchEngine.PerformanceMetrics.NetTest)DistributedMatchEngine.PerformanceMetrics.NetTest
TestSite(Site site) (defined in DistributedMatchEngine.PerformanceMetrics.NetTest)DistributedMatchEngine.PerformanceMetrics.NetTest
TestTimeoutMS (defined in DistributedMatchEngine.PerformanceMetrics.NetTest)DistributedMatchEngine.PerformanceMetrics.NetTest
TestTimeoutMS (defined in DistributedMatchEngine.PerformanceMetrics.NetTest)DistributedMatchEngine.PerformanceMetrics.NetTest
TestType enum nameDistributedMatchEngine.PerformanceMetrics.NetTest
@@ -137,7 +136,7 @@
    + doxygen 1.9.3
diff --git a/docs/class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html b/docs/class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html index 187d1cb8..8ba88962 100644 --- a/docs/class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html +++ b/docs/class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html @@ -4,7 +4,7 @@ - + C# SDK: DistributedMatchEngine.PerformanceMetrics.NetTest Class Reference @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -114,79 +114,78 @@ Public Attributes | Properties | List of all members -
-
DistributedMatchEngine.PerformanceMetrics.NetTest Class Reference
+
DistributedMatchEngine.PerformanceMetrics.NetTest Class Reference

Inherits IDisposable.

-

+

Classes

class  Site
 
- -

+

Public Types

enum class  TestType { PING = 0 +
enum  TestType { PING = 0 , CONNECT = 1 }
 
- - - - + - - + - - - - + + - - - +

+

Public Member Functions

 NetTest (MatchingEngine matchingEngine)
 
+
async Task< Double > ConnectAndDisconnectSocket (Site site)
 
+
 
async Task< Double > ConnectAndDisconnect (Site site)
 
+
 
double Ping (Site site)
 
+
bool doTest (bool enable)
 
async void RunNetTest ()
 
async Task< Site[]> RunNetTest (int numSamples)
 
+
async Task< Site[]> RunNetTest (int numSamples)
 
async Task TestSite (Site site)
 
+
Site[] GetSortedSites ()
 
+
 
void Dispose ()
 
- - -

+

Public Attributes

+
bool runTest = false
 
+
int TestTimeoutMS = 5000
 
- - -

+

Properties

+
int PingIntervalMS = 5000 [get, set]
 
+
ConcurrentQueue< Sitesites [get]
 

Detailed Description

-

Class that allows developers to easily test latency of their various backend servers. This is used in the implementation of FindCloudlet Performance Mode.

-
static async Task NetTest(MatchingEngine matchingEngine)
+

Class that allows developers to easily test latency of their various backend servers. This is used in the implementation of FindCloudlet Performance Mode.

+
static async Task NetTest(MatchingEngine matchingEngine)
{
// Init NetTest
-
var netTest = new NetTest(matchingEngine);
+
var netTest = new NetTest(matchingEngine);
// Register and FindCloudlet to find appinst to test
var registerClientRequest = matchingEngine.CreateRegisterClientRequest(orgName, appName, appVers);
@@ -205,7 +204,7 @@
Dictionary<int, AppPort> appPorts = matchingEngine.GetTCPAppPorts(findCloudletReply);
int port = findCloudletReply.ports[0].public_port; // We happen to know it's the first one.
AppPort appPort = appPorts[port];
-
Site site1 = new Site { host = appPort.fqdn_prefix + findCloudletReply.fqdn, port = port, testType = TestType.CONNECT };
+
Site site1 = new Site { host = appPort.fqdn_prefix + findCloudletReply.fqdn, port = port, testType = TestType.CONNECT };
netTest.sites.Enqueue(site1);
// Create local test site
@@ -241,32 +240,24 @@
}
NetTest(MatchingEngine matchingEngine)
Definition: NetTest.cs:150
-

Member Enumeration Documentation

- +

Member Enumeration Documentation

+

◆ TestType

-

TestType is either PING or CONNECT, where PING is ICMP Ping (not implemented) and CONNECT is is actually setting up a connection and then disconnecting immediately.

+

TestType is either PING or CONNECT, where PING is ICMP Ping (not implemented) and CONNECT is is actually setting up a connection and then disconnecting immediately.

Constructor & Destructor Documentation

- +

◆ NetTest()

@@ -281,7 +272,7 @@

-

NetTest constructor

Parameters
+

NetTest constructor

Parameters
matchingEngine(MatchingEngine)
@@ -291,7 +282,7 @@

Member Function Documentation

- +

◆ RunNetTest() [1/2]

@@ -305,18 +296,18 @@

-

NetTest Runloop Tests the list of Sites in a loop until developer cancels. Developer can access the array of sites from the NetTest object or the ordered list by calling netTest.returnSortedSites()

+

NetTest Runloop Tests the list of Sites in a loop until developer cancels. Developer can access the array of sites from the NetTest object or the ordered list by calling netTest.returnSortedSites()

- -

◆ RunNetTest() [2/2]

+ +

◆ RunNetTest() [2/2]

- + @@ -324,7 +315,7 @@

-

Tests each site in the list of sites for numSamples and returns a list of Sites in order from lowest latency to highest.

Parameters
+

Tests each site in the list of sites for numSamples and returns a list of Sites in order from lowest latency to highest.

Parameters

async Task<Site[]> DistributedMatchEngine.PerformanceMetrics.NetTest.RunNetTest async Task< Site[]> DistributedMatchEngine.PerformanceMetrics.NetTest.RunNetTest ( int  numSamples)
numSamples(int): Number of tests per site
@@ -343,7 +334,7 @@

DistributedMatchEngine + doxygen 1.9.3

diff --git a/docs/class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.js b/docs/class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.js deleted file mode 100644 index d4417461..00000000 --- a/docs/class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.js +++ /dev/null @@ -1,21 +0,0 @@ -var class_distributed_match_engine_1_1_performance_metrics_1_1_net_test = -[ - [ "TestType", "class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#a5ee6e4a739af58d57286e1871af78ef5", [ - [ "PING", "class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#a5ee6e4a739af58d57286e1871af78ef5ae07ff41a486c27c095a15898dcca34d1", null ], - [ "CONNECT", "class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#a5ee6e4a739af58d57286e1871af78ef5ab57e2519e26151feacdbe52076bc39ec", null ] - ] ], - [ "NetTest", "class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#a7337e9ad57657fa0c395fff978cf143c", null ], - [ "ConnectAndDisconnect", "class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#a8eef9fb00fd03ed054b5b51d334385b2", null ], - [ "ConnectAndDisconnectSocket", "class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#a7077b5cede81dc8582cf51813515a1f4", null ], - [ "Dispose", "class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#aed82e9439c45daa3a8a45c4e6396fb83", null ], - [ "doTest", "class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#aec40969d5405b350b8ec3d4549aea5ec", null ], - [ "GetSortedSites", "class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#adfbbd25bce315fe4bbf5dcf9dd1a980f", null ], - [ "Ping", "class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#abc013c7e3b093f05d159e9a6e6d1ad65", null ], - [ "RunNetTest", "class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#aba56c8468b60bf5a7efc5718ac7d0300", null ], - [ "RunNetTest", "class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#ab847f2d76c2ad71895bb28d8e07ff786", null ], - [ "TestSite", "class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#af08dd65db1b316fc4ab179cd709003f5", null ], - [ "runTest", "class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#ab2fe69b367cdfb46a9db3c13fa6facc9", null ], - [ "TestTimeoutMS", "class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#a0077ac337f44516ae26bfab6faf15c57", null ], - [ "PingIntervalMS", "class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#a70b84d6b1f9625ce9634ce016c5cfe15", null ], - [ "sites", "class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#a3115497acd69372303363c4718ba998f", null ] -]; \ No newline at end of file diff --git a/docs/class_distributed_match_engine_1_1_performance_metrics_1_1_net_test_1_1_site-members.html b/docs/class_distributed_match_engine_1_1_performance_metrics_1_1_net_test_1_1_site-members.html index b7e0852c..da0963bc 100644 --- a/docs/class_distributed_match_engine_1_1_performance_metrics_1_1_net_test_1_1_site-members.html +++ b/docs/class_distributed_match_engine_1_1_performance_metrics_1_1_net_test_1_1_site-members.html @@ -4,7 +4,7 @@ - + C# SDK: Member List @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@
- +
@@ -107,29 +107,28 @@
-
-
DistributedMatchEngine.PerformanceMetrics.NetTest.Site Member List
+
DistributedMatchEngine.PerformanceMetrics.NetTest.Site Member List

This is the complete list of members for DistributedMatchEngine.PerformanceMetrics.NetTest.Site, including all inherited members.

- + - + - + - + - + - + - + - +
addSample(double time) (defined in DistributedMatchEngine.PerformanceMetrics.NetTest.Site)DistributedMatchEngine.PerformanceMetrics.NetTest.Site
appInstDistributedMatchEngine.PerformanceMetrics.NetTest.Site
appInstDistributedMatchEngine.PerformanceMetrics.NetTest.Site
average (defined in DistributedMatchEngine.PerformanceMetrics.NetTest.Site)DistributedMatchEngine.PerformanceMetrics.NetTest.Site
cloudletLocation (defined in DistributedMatchEngine.PerformanceMetrics.NetTest.Site)DistributedMatchEngine.PerformanceMetrics.NetTest.Site
cloudletLocation (defined in DistributedMatchEngine.PerformanceMetrics.NetTest.Site)DistributedMatchEngine.PerformanceMetrics.NetTest.Site
DEFAULT_NUM_SAMPLES (defined in DistributedMatchEngine.PerformanceMetrics.NetTest.Site)DistributedMatchEngine.PerformanceMetrics.NetTest.Sitestatic
host (defined in DistributedMatchEngine.PerformanceMetrics.NetTest.Site)DistributedMatchEngine.PerformanceMetrics.NetTest.Site
host (defined in DistributedMatchEngine.PerformanceMetrics.NetTest.Site)DistributedMatchEngine.PerformanceMetrics.NetTest.Site
L7Path (defined in DistributedMatchEngine.PerformanceMetrics.NetTest.Site)DistributedMatchEngine.PerformanceMetrics.NetTest.Site
lastPingMs (defined in DistributedMatchEngine.PerformanceMetrics.NetTest.Site)DistributedMatchEngine.PerformanceMetrics.NetTest.Site
lastPingMs (defined in DistributedMatchEngine.PerformanceMetrics.NetTest.Site)DistributedMatchEngine.PerformanceMetrics.NetTest.Site
localEndPoint (defined in DistributedMatchEngine.PerformanceMetrics.NetTest.Site)DistributedMatchEngine.PerformanceMetrics.NetTest.Site
port (defined in DistributedMatchEngine.PerformanceMetrics.NetTest.Site)DistributedMatchEngine.PerformanceMetrics.NetTest.Site
port (defined in DistributedMatchEngine.PerformanceMetrics.NetTest.Site)DistributedMatchEngine.PerformanceMetrics.NetTest.Site
recalculateStats() (defined in DistributedMatchEngine.PerformanceMetrics.NetTest.Site)DistributedMatchEngine.PerformanceMetrics.NetTest.Site
samples (defined in DistributedMatchEngine.PerformanceMetrics.NetTest.Site)DistributedMatchEngine.PerformanceMetrics.NetTest.Site
samples (defined in DistributedMatchEngine.PerformanceMetrics.NetTest.Site)DistributedMatchEngine.PerformanceMetrics.NetTest.Site
Site(TestType testType=TestType.CONNECT, int numSamples=DEFAULT_NUM_SAMPLES, IPEndPoint localEndPoint=null)DistributedMatchEngine.PerformanceMetrics.NetTest.Site
sizeDistributedMatchEngine.PerformanceMetrics.NetTest.Site
sizeDistributedMatchEngine.PerformanceMetrics.NetTest.Site
stddev (defined in DistributedMatchEngine.PerformanceMetrics.NetTest.Site)DistributedMatchEngine.PerformanceMetrics.NetTest.Site
testType (defined in DistributedMatchEngine.PerformanceMetrics.NetTest.Site)DistributedMatchEngine.PerformanceMetrics.NetTest.Site
testType (defined in DistributedMatchEngine.PerformanceMetrics.NetTest.Site)DistributedMatchEngine.PerformanceMetrics.NetTest.Site
@@ -138,7 +137,7 @@
    + doxygen 1.9.3
diff --git a/docs/class_distributed_match_engine_1_1_performance_metrics_1_1_net_test_1_1_site.html b/docs/class_distributed_match_engine_1_1_performance_metrics_1_1_net_test_1_1_site.html index 6f6fdd13..c40f4f17 100644 --- a/docs/class_distributed_match_engine_1_1_performance_metrics_1_1_net_test_1_1_site.html +++ b/docs/class_distributed_match_engine_1_1_performance_metrics_1_1_net_test_1_1_site.html @@ -4,7 +4,7 @@ - + C# SDK: DistributedMatchEngine.PerformanceMetrics.NetTest.Site Class Reference @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -113,72 +113,71 @@ Static Public Attributes | Properties | List of all members -
-
DistributedMatchEngine.PerformanceMetrics.NetTest.Site Class Reference
+
DistributedMatchEngine.PerformanceMetrics.NetTest.Site Class Reference
- - -

+

Public Member Functions

 Site (TestType testType=TestType.CONNECT, int numSamples=DEFAULT_NUM_SAMPLES, IPEndPoint localEndPoint=null)
 
+
void addSample (double time)
 
+
void recalculateStats ()
 
- - - - - - - - - - -

+

Public Attributes

+
string host
 
+
int port
 
+
string L7Path
 
+
double lastPingMs
 
+
TestType testType
 
+
double[] samples
 
+
double average
 
+
double stddev
 
Appinstance appInst
 
+
Loc cloudletLocation
 
+
IPEndPoint localEndPoint
 
- -

+

Static Public Attributes

+
const int DEFAULT_NUM_SAMPLES = 3
 
-

+

Properties

int size [get]
 

Detailed Description

-

Object used by NetTest to test latency of server. Each site object contains the server path or host + port, avg latency, standard deviation, list of latency times, and the TestType. TestType is either PING or CONNECT, where PING is ICMP Ping (not implemented) and CONNECT is is actually setting up a connection and then disconnecting immediately.

+

Object used by NetTest to test latency of server. Each site object contains the server path or host + port, avg latency, standard deviation, list of latency times, and the TestType. TestType is either PING or CONNECT, where PING is ICMP Ping (not implemented) and CONNECT is is actually setting up a connection and then disconnecting immediately.

Constructor & Destructor Documentation

- +

◆ Site()

@@ -209,7 +208,7 @@

-

Constructor for Site class.

Parameters
+

Constructor for Site class.

Parameters
@@ -220,7 +219,7 @@

Member Data Documentation

- +

◆ appInst

Property Documentation

- +

◆ size

@@ -268,7 +267,7 @@

DistributedMatchEngine + doxygen 1.9.3 diff --git a/docs/class_distributed_match_engine_1_1_register_client_exception-members.html b/docs/class_distributed_match_engine_1_1_register_client_exception-members.html index 3eaa420d..37ff04e5 100644 --- a/docs/class_distributed_match_engine_1_1_register_client_exception-members.html +++ b/docs/class_distributed_match_engine_1_1_register_client_exception-members.html @@ -4,7 +4,7 @@ - + C# SDK: Member List @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@

testType(TestType): Optional. Defaults to CONNECT
numSamples(int): Optional. Size of rolling sample set. Defaults to 3

- +
@@ -107,15 +107,14 @@
-
-
DistributedMatchEngine.RegisterClientException Member List
+
DistributedMatchEngine.RegisterClientException Member List

This is the complete list of members for DistributedMatchEngine.RegisterClientException, including all inherited members.

- +
RegisterClientException(string message) (defined in DistributedMatchEngine.RegisterClientException)DistributedMatchEngine.RegisterClientException
RegisterClientException(string message, Exception innerException) (defined in DistributedMatchEngine.RegisterClientException)DistributedMatchEngine.RegisterClientException
RegisterClientException(string message, Exception innerException) (defined in DistributedMatchEngine.RegisterClientException)DistributedMatchEngine.RegisterClientException
@@ -124,7 +123,7 @@
    + doxygen 1.9.3
diff --git a/docs/class_distributed_match_engine_1_1_register_client_exception.html b/docs/class_distributed_match_engine_1_1_register_client_exception.html index 9c91bfc7..450103db 100644 --- a/docs/class_distributed_match_engine_1_1_register_client_exception.html +++ b/docs/class_distributed_match_engine_1_1_register_client_exception.html @@ -4,7 +4,7 @@ - + C# SDK: DistributedMatchEngine.RegisterClientException Class Reference @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -110,24 +110,23 @@ -
-
DistributedMatchEngine.RegisterClientException Class Reference
+
DistributedMatchEngine.RegisterClientException Class Reference

Inherits Exception.

- - -

+

Public Member Functions

+
 RegisterClientException (string message)
 
+
 RegisterClientException (string message, Exception innerException)
 

Detailed Description

-

RegisterClient failure

+

RegisterClient failure

@@ -137,7 +136,7 @@ + doxygen 1.9.3 diff --git a/docs/class_distributed_match_engine_1_1_register_client_exception.js b/docs/class_distributed_match_engine_1_1_register_client_exception.js deleted file mode 100644 index b38158cc..00000000 --- a/docs/class_distributed_match_engine_1_1_register_client_exception.js +++ /dev/null @@ -1,5 +0,0 @@ -var class_distributed_match_engine_1_1_register_client_exception = -[ - [ "RegisterClientException", "class_distributed_match_engine_1_1_register_client_exception.html#a3cdab5b6998adb1a26253a4ac4400fde", null ], - [ "RegisterClientException", "class_distributed_match_engine_1_1_register_client_exception.html#add97108998772bf8bd21fd2a1126036c", null ] -]; \ No newline at end of file diff --git a/docs/class_distributed_match_engine_1_1_session_cookie_exception-members.html b/docs/class_distributed_match_engine_1_1_session_cookie_exception-members.html index 6735a27a..d7d05290 100644 --- a/docs/class_distributed_match_engine_1_1_session_cookie_exception-members.html +++ b/docs/class_distributed_match_engine_1_1_session_cookie_exception-members.html @@ -4,7 +4,7 @@ - + C# SDK: Member List @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -107,15 +107,14 @@
-
-
DistributedMatchEngine.SessionCookieException Member List
+
DistributedMatchEngine.SessionCookieException Member List

This is the complete list of members for DistributedMatchEngine.SessionCookieException, including all inherited members.

- +
SessionCookieException(string message) (defined in DistributedMatchEngine.SessionCookieException)DistributedMatchEngine.SessionCookieException
SessionCookieException(string message, Exception innerException) (defined in DistributedMatchEngine.SessionCookieException)DistributedMatchEngine.SessionCookieException
SessionCookieException(string message, Exception innerException) (defined in DistributedMatchEngine.SessionCookieException)DistributedMatchEngine.SessionCookieException
@@ -124,7 +123,7 @@
    + doxygen 1.9.3
diff --git a/docs/class_distributed_match_engine_1_1_session_cookie_exception.html b/docs/class_distributed_match_engine_1_1_session_cookie_exception.html index 083dbbc9..fd8f8387 100644 --- a/docs/class_distributed_match_engine_1_1_session_cookie_exception.html +++ b/docs/class_distributed_match_engine_1_1_session_cookie_exception.html @@ -4,7 +4,7 @@ - + C# SDK: DistributedMatchEngine.SessionCookieException Class Reference @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -110,24 +110,23 @@ -
-
DistributedMatchEngine.SessionCookieException Class Reference
+
DistributedMatchEngine.SessionCookieException Class Reference

Inherits Exception.

- - -

+

Public Member Functions

+
 SessionCookieException (string message)
 
+
 SessionCookieException (string message, Exception innerException)
 

Detailed Description

-

RegisterClient generates a session cookie on success. If a developer calls another MatchingEngine API before a successful RegisterClient, this exception will probably occur.

+

RegisterClient generates a session cookie on success. If a developer calls another MatchingEngine API before a successful RegisterClient, this exception will probably occur.

@@ -137,7 +136,7 @@ + doxygen 1.9.3 diff --git a/docs/class_distributed_match_engine_1_1_session_cookie_exception.js b/docs/class_distributed_match_engine_1_1_session_cookie_exception.js deleted file mode 100644 index 6681b9f2..00000000 --- a/docs/class_distributed_match_engine_1_1_session_cookie_exception.js +++ /dev/null @@ -1,5 +0,0 @@ -var class_distributed_match_engine_1_1_session_cookie_exception = -[ - [ "SessionCookieException", "class_distributed_match_engine_1_1_session_cookie_exception.html#ad72e4d921117391756b734068599929e", null ], - [ "SessionCookieException", "class_distributed_match_engine_1_1_session_cookie_exception.html#a165eb9d4f2352dbeaf284f4523296e37", null ] -]; \ No newline at end of file diff --git a/docs/class_distributed_match_engine_1_1_simple_net_interface-members.html b/docs/class_distributed_match_engine_1_1_simple_net_interface-members.html index 5e33da7a..8942bf58 100644 --- a/docs/class_distributed_match_engine_1_1_simple_net_interface-members.html +++ b/docs/class_distributed_match_engine_1_1_simple_net_interface-members.html @@ -4,7 +4,7 @@ - + C# SDK: Member List @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -107,19 +107,18 @@
-
-
DistributedMatchEngine.SimpleNetInterface Member List
+
DistributedMatchEngine.SimpleNetInterface Member List

This is the complete list of members for DistributedMatchEngine.SimpleNetInterface, including all inherited members.

- + - + - +
GetIPAddress(string sourceNetInterfaceName, AddressFamily addressfamily=AddressFamily.InterNetwork) (defined in DistributedMatchEngine.SimpleNetInterface)DistributedMatchEngine.SimpleNetInterface
GetIPAddress(String netInterfaceType, AddressFamily adressFamily=AddressFamily.InterNetwork) (defined in DistributedMatchEngine.NetInterface)DistributedMatchEngine.NetInterface
GetIPAddress(String netInterfaceType, AddressFamily adressFamily=AddressFamily.InterNetwork) (defined in DistributedMatchEngine.NetInterface)DistributedMatchEngine.NetInterface
GetNetworkInterfaceName() (defined in DistributedMatchEngine.SimpleNetInterface)DistributedMatchEngine.SimpleNetInterface
HasCellular() (defined in DistributedMatchEngine.SimpleNetInterface)DistributedMatchEngine.SimpleNetInterface
HasCellular() (defined in DistributedMatchEngine.SimpleNetInterface)DistributedMatchEngine.SimpleNetInterface
HasWifi() (defined in DistributedMatchEngine.SimpleNetInterface)DistributedMatchEngine.SimpleNetInterface
SetNetworkInterfaceName(NetworkInterfaceName networkInterfaceName) (defined in DistributedMatchEngine.SimpleNetInterface)DistributedMatchEngine.SimpleNetInterface
SetNetworkInterfaceName(NetworkInterfaceName networkInterfaceName) (defined in DistributedMatchEngine.SimpleNetInterface)DistributedMatchEngine.SimpleNetInterface
SimpleNetInterface(NetworkInterfaceName networkInterfaceName) (defined in DistributedMatchEngine.SimpleNetInterface)DistributedMatchEngine.SimpleNetInterface
@@ -129,7 +128,7 @@
    + doxygen 1.9.3
diff --git a/docs/class_distributed_match_engine_1_1_simple_net_interface.html b/docs/class_distributed_match_engine_1_1_simple_net_interface.html index f1e2792e..6d3573f2 100644 --- a/docs/class_distributed_match_engine_1_1_simple_net_interface.html +++ b/docs/class_distributed_match_engine_1_1_simple_net_interface.html @@ -4,7 +4,7 @@ - + C# SDK: DistributedMatchEngine.SimpleNetInterface Class Reference @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -110,8 +110,7 @@ -
-
DistributedMatchEngine.SimpleNetInterface Class Reference
+
DistributedMatchEngine.SimpleNetInterface Class Reference
@@ -124,34 +123,120 @@
- - - + - + - - + - + - + + + + + + + +

+

Public Member Functions

+
 SimpleNetInterface (NetworkInterfaceName networkInterfaceName)
 
-NetworkInterfaceName GetNetworkInterfaceName ()
NetworkInterfaceName GetNetworkInterfaceName ()
 
-void SetNetworkInterfaceName (NetworkInterfaceName networkInterfaceName)
void SetNetworkInterfaceName (NetworkInterfaceName networkInterfaceName)
 
+
string GetIPAddress (string sourceNetInterfaceName, AddressFamily addressfamily=AddressFamily.InterNetwork)
 
-bool HasCellular ()
bool HasCellular ()
 
-bool HasWifi ()
bool HasWifi ()
 
- Public Member Functions inherited from DistributedMatchEngine.NetInterface
+
+NetworkInterfaceName GetNetworkInterfaceName ()
 
+void SetNetworkInterfaceName (NetworkInterfaceName networkInterfaceName)
 
string GetIPAddress (String netInterfaceType, AddressFamily adressFamily=AddressFamily.InterNetwork)
 
+bool HasWifi ()
 
+bool HasCellular ()
 

Detailed Description

-

A generic network interface for most systems, with an interface names parameter.

-
+

A generic network interface for most systems, with an interface names parameter.

+

Member Function Documentation

+ +

◆ GetNetworkInterfaceName()

+ +
+
+ + + + + + + +
NetworkInterfaceName DistributedMatchEngine.SimpleNetInterface.GetNetworkInterfaceName ()
+
+
+ +

◆ HasCellular()

+ +
+
+ + + + + + + +
bool DistributedMatchEngine.SimpleNetInterface.HasCellular ()
+
+
+ +

◆ HasWifi()

+ +
+
+ + + + + + + +
bool DistributedMatchEngine.SimpleNetInterface.HasWifi ()
+
+
+ +

◆ SetNetworkInterfaceName()

+ +
+
+ + + + + + + + +
void DistributedMatchEngine.SimpleNetInterface.SetNetworkInterfaceName (NetworkInterfaceName networkInterfaceName)
+
+
+ @@ -160,7 +245,7 @@ + doxygen 1.9.3 diff --git a/docs/class_distributed_match_engine_1_1_simple_net_interface.js b/docs/class_distributed_match_engine_1_1_simple_net_interface.js deleted file mode 100644 index 02af4662..00000000 --- a/docs/class_distributed_match_engine_1_1_simple_net_interface.js +++ /dev/null @@ -1,9 +0,0 @@ -var class_distributed_match_engine_1_1_simple_net_interface = -[ - [ "SimpleNetInterface", "class_distributed_match_engine_1_1_simple_net_interface.html#a00f34f972db5d26c698e548ba1f06b21", null ], - [ "GetIPAddress", "class_distributed_match_engine_1_1_simple_net_interface.html#ae6de64886eb95f3c128c85d6a99ff89c", null ], - [ "GetNetworkInterfaceName", "class_distributed_match_engine_1_1_simple_net_interface.html#adacb58f150412df60054838c204daf76", null ], - [ "HasCellular", "class_distributed_match_engine_1_1_simple_net_interface.html#acbf448d6c1b687499e6734decdaa3acd", null ], - [ "HasWifi", "class_distributed_match_engine_1_1_simple_net_interface.html#a604a96a5f850f3adf48044431e1b1233", null ], - [ "SetNetworkInterfaceName", "class_distributed_match_engine_1_1_simple_net_interface.html#a5848dd717eac0c845362216ceaade6f1", null ] -]; \ No newline at end of file diff --git a/docs/class_distributed_match_engine_1_1_token_exception-members.html b/docs/class_distributed_match_engine_1_1_token_exception-members.html index f9fbc3fd..46b63adf 100644 --- a/docs/class_distributed_match_engine_1_1_token_exception-members.html +++ b/docs/class_distributed_match_engine_1_1_token_exception-members.html @@ -4,7 +4,7 @@ - + C# SDK: Member List @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -107,15 +107,14 @@
-
-
DistributedMatchEngine.TokenException Member List
+
DistributedMatchEngine.TokenException Member List

This is the complete list of members for DistributedMatchEngine.TokenException, including all inherited members.

- +
TokenException(string message) (defined in DistributedMatchEngine.TokenException)DistributedMatchEngine.TokenException
TokenException(string message, Exception innerException) (defined in DistributedMatchEngine.TokenException)DistributedMatchEngine.TokenException
TokenException(string message, Exception innerException) (defined in DistributedMatchEngine.TokenException)DistributedMatchEngine.TokenException
@@ -124,7 +123,7 @@
    + doxygen 1.9.3
diff --git a/docs/class_distributed_match_engine_1_1_token_exception.html b/docs/class_distributed_match_engine_1_1_token_exception.html index 208cdc1f..f98e5ff5 100644 --- a/docs/class_distributed_match_engine_1_1_token_exception.html +++ b/docs/class_distributed_match_engine_1_1_token_exception.html @@ -4,7 +4,7 @@ - + C# SDK: DistributedMatchEngine.TokenException Class Reference @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -110,24 +110,23 @@ -
-
DistributedMatchEngine.TokenException Class Reference
+
DistributedMatchEngine.TokenException Class Reference

Inherits Exception.

- - -

+

Public Member Functions

+
 TokenException (string message)
 
+
 TokenException (string message, Exception innerException)
 

Detailed Description

-
@@ -137,7 +136,7 @@ + doxygen 1.9.3 diff --git a/docs/class_distributed_match_engine_1_1_token_exception.js b/docs/class_distributed_match_engine_1_1_token_exception.js deleted file mode 100644 index 3a3e0796..00000000 --- a/docs/class_distributed_match_engine_1_1_token_exception.js +++ /dev/null @@ -1,5 +0,0 @@ -var class_distributed_match_engine_1_1_token_exception = -[ - [ "TokenException", "class_distributed_match_engine_1_1_token_exception.html#a4b6373c0eec00af6732a18a3b5247939", null ], - [ "TokenException", "class_distributed_match_engine_1_1_token_exception.html#a8e1854c70b8cbad2141b8f3049693738", null ] -]; \ No newline at end of file diff --git a/docs/class_distributed_match_engine_1_1_windows10_network_interface_name-members.html b/docs/class_distributed_match_engine_1_1_windows10_network_interface_name-members.html index 26580f5b..1eae908c 100644 --- a/docs/class_distributed_match_engine_1_1_windows10_network_interface_name-members.html +++ b/docs/class_distributed_match_engine_1_1_windows10_network_interface_name-members.html @@ -4,7 +4,7 @@ - + C# SDK: Member List @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -107,15 +107,14 @@
-
-
DistributedMatchEngine.Windows10NetworkInterfaceName Member List
+
DistributedMatchEngine.Windows10NetworkInterfaceName Member List
@@ -125,7 +124,7 @@
    + doxygen 1.9.3
diff --git a/docs/class_distributed_match_engine_1_1_windows10_network_interface_name.html b/docs/class_distributed_match_engine_1_1_windows10_network_interface_name.html index 27f2578d..2d61bd5a 100644 --- a/docs/class_distributed_match_engine_1_1_windows10_network_interface_name.html +++ b/docs/class_distributed_match_engine_1_1_windows10_network_interface_name.html @@ -4,7 +4,7 @@ - + C# SDK: DistributedMatchEngine.Windows10NetworkInterfaceName Class Reference @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -109,8 +109,7 @@
-
-
DistributedMatchEngine.Windows10NetworkInterfaceName Class Reference
+
DistributedMatchEngine.Windows10NetworkInterfaceName Class Reference
@@ -123,18 +122,18 @@
- - -

+

Additional Inherited Members

- Public Attributes inherited from DistributedMatchEngine.NetworkInterfaceName
+
Regex CELLULAR = null
 
+
Regex WIFI = null
 

Detailed Description

-

Windows10 Network Interface aliases for Cellular and Wifi interfaces. Use this to instantiate NetInterface if using Windows10 device

+

Windows10 Network Interface aliases for Cellular and Wifi interfaces. Use this to instantiate NetInterface if using Windows10 device

@@ -144,7 +143,7 @@ + doxygen 1.9.3 diff --git a/docs/class_distributed_match_engine_1_1_windows10_network_interface_name.js b/docs/class_distributed_match_engine_1_1_windows10_network_interface_name.js deleted file mode 100644 index 32c78c38..00000000 --- a/docs/class_distributed_match_engine_1_1_windows10_network_interface_name.js +++ /dev/null @@ -1,4 +0,0 @@ -var class_distributed_match_engine_1_1_windows10_network_interface_name = -[ - [ "Windows10NetworkInterfaceName", "class_distributed_match_engine_1_1_windows10_network_interface_name.html#a7afac28c2d355bb164d93985680b26a5", null ] -]; \ No newline at end of file diff --git a/docs/classes.html b/docs/classes.html index 161ee35f..89b908cc 100644 --- a/docs/classes.html +++ b/docs/classes.html @@ -4,7 +4,7 @@ - + C# SDK: Class Index @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -107,59 +107,55 @@
-
-
Class Index
+
Class Index
@@ -170,7 +166,7 @@
    + doxygen 1.9.3
diff --git a/docs/dir_1148ebc2b25b55095aebf6f4cbb6efca.html b/docs/dir_1148ebc2b25b55095aebf6f4cbb6efca.html index 62db9472..03be20b2 100644 --- a/docs/dir_1148ebc2b25b55095aebf6f4cbb6efca.html +++ b/docs/dir_1148ebc2b25b55095aebf6f4cbb6efca.html @@ -4,7 +4,7 @@ - + C# SDK: Doxygen Directory Reference @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -102,8 +102,7 @@
-
-
Doxygen Directory Reference
+
Doxygen Directory Reference
@@ -115,7 +114,7 @@ + doxygen 1.9.3 diff --git a/docs/dir_30b70476ec8aab96ebd1769ad485ab3d.html b/docs/dir_30b70476ec8aab96ebd1769ad485ab3d.html index 7a7e45c3..dc5ad2dc 100644 --- a/docs/dir_30b70476ec8aab96ebd1769ad485ab3d.html +++ b/docs/dir_30b70476ec8aab96ebd1769ad485ab3d.html @@ -4,7 +4,7 @@ - + C# SDK: src Directory Reference @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -102,8 +102,7 @@
-
-
src Directory Reference
+
src Directory Reference
@@ -115,7 +114,7 @@ + doxygen 1.9.3 diff --git a/docs/dir_a3b073fb155ff047429f77c9e027984d.html b/docs/dir_a3b073fb155ff047429f77c9e027984d.html index c14e23ce..ab3841da 100644 --- a/docs/dir_a3b073fb155ff047429f77c9e027984d.html +++ b/docs/dir_a3b073fb155ff047429f77c9e027984d.html @@ -4,7 +4,7 @@ - + C# SDK: MatchingEngineSDKRestLibrary Directory Reference @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -102,13 +102,14 @@
-
-
MatchingEngineSDKRestLibrary Directory Reference
+
MatchingEngineSDKRestLibrary Directory Reference
- + +

+

Directories

directory  PerformanceMetrics
 
@@ -119,7 +120,7 @@ + doxygen 1.9.3 diff --git a/docs/dir_b11bf98dc8097a22eb9f403524057828.html b/docs/dir_b11bf98dc8097a22eb9f403524057828.html index aba2b9f9..ed18b2cd 100644 --- a/docs/dir_b11bf98dc8097a22eb9f403524057828.html +++ b/docs/dir_b11bf98dc8097a22eb9f403524057828.html @@ -4,7 +4,7 @@ - + C# SDK: PerformanceMetrics Directory Reference @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -102,8 +102,7 @@
-
-
PerformanceMetrics Directory Reference
+
PerformanceMetrics Directory Reference
@@ -115,7 +114,7 @@ + doxygen 1.9.3 diff --git a/docs/doxygen.css b/docs/doxygen.css index ffbff022..90367372 100644 --- a/docs/doxygen.css +++ b/docs/doxygen.css @@ -1,4 +1,4 @@ -/* The standard CSS for doxygen 1.9.1 */ +/* The standard CSS for doxygen 1.9.3 */ body, table, div, p, dl { font: 400 14px/22px Roboto,sans-serif; @@ -228,6 +228,33 @@ a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { color: #4665A2; } +a.code.hl_class { /* style for links to class names in code snippets */ } +a.code.hl_struct { /* style for links to struct names in code snippets */ } +a.code.hl_union { /* style for links to union names in code snippets */ } +a.code.hl_interface { /* style for links to interface names in code snippets */ } +a.code.hl_protocol { /* style for links to protocol names in code snippets */ } +a.code.hl_category { /* style for links to category names in code snippets */ } +a.code.hl_exception { /* style for links to exception names in code snippets */ } +a.code.hl_service { /* style for links to service names in code snippets */ } +a.code.hl_singleton { /* style for links to singleton names in code snippets */ } +a.code.hl_concept { /* style for links to concept names in code snippets */ } +a.code.hl_namespace { /* style for links to namespace names in code snippets */ } +a.code.hl_package { /* style for links to package names in code snippets */ } +a.code.hl_define { /* style for links to macro names in code snippets */ } +a.code.hl_function { /* style for links to function names in code snippets */ } +a.code.hl_variable { /* style for links to variable names in code snippets */ } +a.code.hl_typedef { /* style for links to typedef names in code snippets */ } +a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ } +a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ } +a.code.hl_signal { /* style for links to Qt signal names in code snippets */ } +a.code.hl_slot { /* style for links to Qt slot names in code snippets */ } +a.code.hl_friend { /* style for links to friend names in code snippets */ } +a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ } +a.code.hl_property { /* style for links to property names in code snippets */ } +a.code.hl_event { /* style for links to event names in code snippets */ } +a.code.hl_sequence { /* style for links to sequence names in code snippets */ } +a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } + /* @end */ dl.el { @@ -235,7 +262,7 @@ dl.el { } ul { - overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ + overflow: visible; } #side-nav ul { @@ -313,6 +340,7 @@ div.line.glow { span.lineno { padding-right: 4px; + margin-right: 9px; text-align: right; border-right: 2px solid #0F0; background-color: #E8E8E8; @@ -439,6 +467,12 @@ img.footer { vertical-align: middle; } +.compoundTemplParams { + color: #4665A2; + font-size: 80%; + line-height: 120%; +} + /* @group Code Colorization */ span.keyword { @@ -1322,6 +1356,11 @@ dl.section dd { } +#projectrow +{ + height: 56px; +} + #projectlogo { text-align: center; @@ -1337,18 +1376,19 @@ dl.section dd { #projectalign { vertical-align: middle; + padding-left: 0.5em; } #projectname { - font: 300% Tahoma, Arial,sans-serif; + font: 200% Tahoma, Arial,sans-serif; margin: 0px; padding: 2px 0px; } #projectbrief { - font: 120% Tahoma, Arial,sans-serif; + font: 90% Tahoma, Arial,sans-serif; margin: 0px; padding: 0px; } @@ -1487,6 +1527,10 @@ span.emoji { */ } +span.obfuscator { + display: none; +} + .PageDocRTL-title div.toc li.level1 { margin-left: 0 !important; margin-right: 0; @@ -1541,7 +1585,7 @@ tr.heading h2 { #powerTip { cursor: default; - white-space: nowrap; + /*white-space: nowrap;*/ background-color: white; border: 1px solid gray; border-radius: 4px 4px 4px 4px; @@ -1780,6 +1824,10 @@ table.DocNodeLTR { margin-left: 0; } +code.JavaDocCode + direction:ltr; +} + tt, code, kbd, samp { display: inline-block; diff --git a/docs/functions.html b/docs/functions.html index 7edf925c..0bcfcf5e 100644 --- a/docs/functions.html +++ b/docs/functions.html @@ -4,7 +4,7 @@ - + C# SDK: Class Members @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -134,189 +134,97 @@
Here is a list of all documented class members with links to the class documentation for each member:
-

- a -

@@ -326,7 +234,7 @@

- v -

diff --git a/docs/interface_distributed_match_engine_1_1_carrier_info.js b/docs/interface_distributed_match_engine_1_1_carrier_info.js deleted file mode 100644 index 5f0398e3..00000000 --- a/docs/interface_distributed_match_engine_1_1_carrier_info.js +++ /dev/null @@ -1,6 +0,0 @@ -var interface_distributed_match_engine_1_1_carrier_info = -[ - [ "GetCellID", "interface_distributed_match_engine_1_1_carrier_info.html#a1ba678ff74716325bd585bfca52a5795", null ], - [ "GetCurrentCarrierName", "interface_distributed_match_engine_1_1_carrier_info.html#a3c3425f5948fe9340cca6989e398c966", null ], - [ "GetMccMnc", "interface_distributed_match_engine_1_1_carrier_info.html#a19ec0ff8f67eee0024b555bef2f2946f", null ] -]; \ No newline at end of file diff --git a/docs/interface_distributed_match_engine_1_1_net_interface-members.html b/docs/interface_distributed_match_engine_1_1_net_interface-members.html index 84a47aa1..51621770 100644 --- a/docs/interface_distributed_match_engine_1_1_net_interface-members.html +++ b/docs/interface_distributed_match_engine_1_1_net_interface-members.html @@ -4,7 +4,7 @@ - + C# SDK: Member List @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -107,17 +107,16 @@
-
-
DistributedMatchEngine.NetInterface Member List
+
DistributedMatchEngine.NetInterface Member List

This is the complete list of members for DistributedMatchEngine.NetInterface, including all inherited members.

- + - +
GetIPAddress(String netInterfaceType, AddressFamily adressFamily=AddressFamily.InterNetwork) (defined in DistributedMatchEngine.NetInterface)DistributedMatchEngine.NetInterface
GetNetworkInterfaceName() (defined in DistributedMatchEngine.NetInterface)DistributedMatchEngine.NetInterface
GetNetworkInterfaceName() (defined in DistributedMatchEngine.NetInterface)DistributedMatchEngine.NetInterface
HasCellular() (defined in DistributedMatchEngine.NetInterface)DistributedMatchEngine.NetInterface
HasWifi() (defined in DistributedMatchEngine.NetInterface)DistributedMatchEngine.NetInterface
HasWifi() (defined in DistributedMatchEngine.NetInterface)DistributedMatchEngine.NetInterface
SetNetworkInterfaceName(NetworkInterfaceName networkInterfaceName) (defined in DistributedMatchEngine.NetInterface)DistributedMatchEngine.NetInterface
@@ -127,7 +126,7 @@
    + doxygen 1.9.3
diff --git a/docs/interface_distributed_match_engine_1_1_net_interface.html b/docs/interface_distributed_match_engine_1_1_net_interface.html index a01d518f..1483d3a5 100644 --- a/docs/interface_distributed_match_engine_1_1_net_interface.html +++ b/docs/interface_distributed_match_engine_1_1_net_interface.html @@ -4,7 +4,7 @@ - + C# SDK: DistributedMatchEngine.NetInterface Interface Reference @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -110,8 +110,7 @@ -
-
DistributedMatchEngine.NetInterface Interface Reference
+
DistributedMatchEngine.NetInterface Interface Reference
@@ -125,26 +124,26 @@
- - - - - -

+

Public Member Functions

+
NetworkInterfaceName GetNetworkInterfaceName ()
 
+
void SetNetworkInterfaceName (NetworkInterfaceName networkInterfaceName)
 
+
string GetIPAddress (String netInterfaceType, AddressFamily adressFamily=AddressFamily.InterNetwork)
 
+
bool HasWifi ()
 
+
bool HasCellular ()
 

Detailed Description

-

NetInterface interface for the platform Function implemented per platform

+

NetInterface interface for the platform Function implemented per platform

@@ -154,7 +153,7 @@ + doxygen 1.9.3 diff --git a/docs/interface_distributed_match_engine_1_1_net_interface.js b/docs/interface_distributed_match_engine_1_1_net_interface.js deleted file mode 100644 index 4eb71ec3..00000000 --- a/docs/interface_distributed_match_engine_1_1_net_interface.js +++ /dev/null @@ -1,8 +0,0 @@ -var interface_distributed_match_engine_1_1_net_interface = -[ - [ "GetIPAddress", "interface_distributed_match_engine_1_1_net_interface.html#ab6e1010c4dc4a64f7081f82bed797a8d", null ], - [ "GetNetworkInterfaceName", "interface_distributed_match_engine_1_1_net_interface.html#a529f9cb0be2abeacfef5d2cb3d95e138", null ], - [ "HasCellular", "interface_distributed_match_engine_1_1_net_interface.html#a612ce8727c95fecd675be5a8b1f543e7", null ], - [ "HasWifi", "interface_distributed_match_engine_1_1_net_interface.html#af555c0d0e08ec2a8c467aa65f788ae47", null ], - [ "SetNetworkInterfaceName", "interface_distributed_match_engine_1_1_net_interface.html#a1fe3923280458f0fc1ec536bfb9e83ba", null ] -]; \ No newline at end of file diff --git a/docs/interface_distributed_match_engine_1_1_unique_i_d-members.html b/docs/interface_distributed_match_engine_1_1_unique_i_d-members.html deleted file mode 100644 index 95d836b1..00000000 --- a/docs/interface_distributed_match_engine_1_1_unique_i_d-members.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - - -C# SDK: Member List - - - - - - - - - - - - - - - -
-​ - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
DistributedMatchEngine.UniqueID Member List
-
-
- -

This is the complete list of members for DistributedMatchEngine.UniqueID, including all inherited members.

- - - -
GetUniqueID() (defined in DistributedMatchEngine.UniqueID)DistributedMatchEngine.UniqueID
GetUniqueIDType() (defined in DistributedMatchEngine.UniqueID)DistributedMatchEngine.UniqueID
-
- - - - - diff --git a/docs/interface_distributed_match_engine_1_1_unique_i_d.html b/docs/interface_distributed_match_engine_1_1_unique_i_d.html deleted file mode 100644 index 709d2606..00000000 --- a/docs/interface_distributed_match_engine_1_1_unique_i_d.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - - - -C# SDK: DistributedMatchEngine.UniqueID Interface Reference - - - - - - - - - - - - - - - -
-​ - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
DistributedMatchEngine.UniqueID Interface Reference
-
-
-
-Inheritance diagram for DistributedMatchEngine.UniqueID:
-
-
- - -DistributedMatchEngine.EmptyUniqueID - -
- - - - - - -

-Public Member Functions

-string GetUniqueIDType ()
 
-string GetUniqueID ()
 
-

Detailed Description

-

UniqeID interface for the platform Function implemented per platform

-
-
- - - - - diff --git a/docs/interface_distributed_match_engine_1_1_unique_i_d.js b/docs/interface_distributed_match_engine_1_1_unique_i_d.js deleted file mode 100644 index cb0a0bb4..00000000 --- a/docs/interface_distributed_match_engine_1_1_unique_i_d.js +++ /dev/null @@ -1,5 +0,0 @@ -var interface_distributed_match_engine_1_1_unique_i_d = -[ - [ "GetUniqueID", "interface_distributed_match_engine_1_1_unique_i_d.html#a4bf3c8ed565aa7c92d37fc5bef56edf3", null ], - [ "GetUniqueIDType", "interface_distributed_match_engine_1_1_unique_i_d.html#af03cda24e7dca33d2eaede68bc1080f1", null ] -]; \ No newline at end of file diff --git a/docs/interface_distributed_match_engine_1_1_unique_i_d.png b/docs/interface_distributed_match_engine_1_1_unique_i_d.png deleted file mode 100644 index 5005bfd2114ebe3f48751b15bd34307199f75356..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 940 zcmeAS@N?(olHy`uVBq!ia0vp^uYfp!gBeIFNK57eDTx4|5ZC|z{{xvX-h3_XKQsZz z0^RFD(0WNwNNjhujf_z54J0N+NSibvSd*&YSw#?RHEwjG& zEHFPb6 z=a!olysQs3+JC9>ZMo^Upy-~^!(U}@&yP`>Z-Q~wymEfRp9CI`4``xqwlp2 zRDa#+VJG`N-*M~wsD|vn+gD`nXS#Fwe>c~M&G2w~`*@$u=}#<-d*byQ(qCAvSbse^ zVt(^4$6q4X*cYDT<1v`0rgb0#uDp}WU=|^P56w~6OKW$>z23F%z1V6MTSwv0Np6>2 zrY^ZSC2;!N{QVxzFCRUgGk<4e+72F*@ZHt_lOAi@zL{laS3TKN>$upAuOR`mr=K}1 znpKhXC_7N~<-9&0{y^20i?^_yys&uLL){m)@~8jp|NExDytQ!$>!A&fkQh=c0LIYQ zdmdsJQ;a+22{rO+yGiA*Ni4eIde(i$;yG(vcXe?VF1)$AX!@mxwN}~fyCz#qmMWci z>Y-6$`d){#*%AI1&%6xGR&TYKa<)}HdbR9b2aZ@P2iX8ugB!_Cl&8#l)l2} zm%cMM_IAm3*&B7?$@*K5MwrIjZ+u(EzxP7PgSfS~_;PlqrM{ZA<>eE@u-VH*X1+gg z_x&oBz2V#Kw_f}3WT|%je~znlS*kBX=2}f#6188%^liB3u8@s3wa>RN^13wJG*C6u l#5crK%2$2`FyQ+y$g^`B^f<^@wF0vigQu&X%Q~loCIFgf%(wsm diff --git a/docs/jquery.js b/docs/jquery.js index 103c32d7..c9ed3d99 100644 --- a/docs/jquery.js +++ b/docs/jquery.js @@ -1,5 +1,5 @@ -/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 - + C# SDK: Modules @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -102,8 +102,7 @@
-
-
Modules
+
Modules
Here is a list of all modules:
@@ -131,7 +130,7 @@
    + doxygen 1.9.3
diff --git a/docs/modules.js b/docs/modules.js index c87994eb..be574960 100644 --- a/docs/modules.js +++ b/docs/modules.js @@ -1,6 +1,6 @@ var modules = [ - [ "Namespaces", "group__namespaces.html", null ], + [ "Namespaces", "group__namespaces.html", "group__namespaces" ], [ "Classes", "group__classes.html", "group__classes" ], [ "Function Groups", "group__functiongroups.html", "group__functiongroups" ], [ "Exceptions", "group__exceptions.html", "group__exceptions" ] diff --git a/docs/namespace_distributed_match_engine.html b/docs/namespace_distributed_match_engine.html index 073c5f76..0e8640f9 100644 --- a/docs/namespace_distributed_match_engine.html +++ b/docs/namespace_distributed_match_engine.html @@ -4,7 +4,7 @@ - + C# SDK: DistributedMatchEngine Namespace Reference @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@
- + @@ -106,98 +106,85 @@ Namespaces | Classes | Enumerations -
-
DistributedMatchEngine Namespace Reference
+
DistributedMatchEngine Namespace Reference
-

+

Namespaces

namespace  PerformanceMetrics
 
- - - - + - + - - - + - + - + - - - + - + - - - + - + + + + + - + - +

+

Classes

interface  CarrierInfo
 
class  EmptyCarrierInfo
class  AndroidNetworkInterfaceName
 
class  EmptyDeviceInfo
interface  CarrierInfo
 
class  DmeDnsException
 
class  HttpException
 
class  TokenException
class  EmptyCarrierInfo
 
class  RegisterClientException
class  EmptyDeviceInfo
 
class  SessionCookieException
class  EmptyNetInterface
 
class  FindCloudletException
 
class  MatchingEngine
 
class  GetConnectionException
 
class  NetworkInterfaceName
class  HttpException
 
class  IOSNetworkInterfaceName
 
class  AndroidNetworkInterfaceName
class  LinuxNetworkInterfaceName
 
class  MacNetworkInterfaceName
 
class  LinuxNetworkInterfaceName
 
class  Windows10NetworkInterfaceName
class  MatchingEngine
 
interface  NetInterface
 
class  EmptyNetInterface
class  NetworkInterfaceName
 
class  RegisterClientException
 
class  SessionCookieException
 
class  SimpleNetInterface
 
interface  UniqueID
class  TokenException
 
class  EmptyUniqueID
class  Windows10NetworkInterfaceName
 
- - -

+

Enumerations

enum class  OperatingSystem { ANDROID +
enum  OperatingSystem { ANDROID , IOS , OTHER }
 
enum class  FindCloudletMode { PROXIMITY +
enum  FindCloudletMode { PROXIMITY , PERFORMANCE }
 

Detailed Description

-

DistributedMatchEngine Namespace

+

Enumeration Type Documentation

- +

◆ FindCloudletMode

- - - - - -
enum DistributedMatchEngine.FindCloudletMode
-
-strong
-

Two modes to call FindCloudlet. First is Proximity (default) which finds the nearest cloudlet based on gps location with application instance Second is Performance. This mode will test all cloudlets with application instance deployed to find cloudlet with lowest latency. This mode takes longer to finish because of latency test.

+

Two modes to call FindCloudlet. First is Proximity (default) which finds the nearest cloudlet based on gps location with application instance Second is Performance. This mode will test all cloudlets with application instance deployed to find cloudlet with lowest latency. This mode takes longer to finish because of latency test.

@@ -210,7 +197,7 @@

DistributedMatchEngine + doxygen 1.9.3

diff --git a/docs/namespace_distributed_match_engine_1_1_mel.html b/docs/namespace_distributed_match_engine_1_1_mel.html deleted file mode 100644 index c2093145..00000000 --- a/docs/namespace_distributed_match_engine_1_1_mel.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - - -C# SDK: DistributedMatchEngine.Mel Namespace Reference - - - - - - - - - - - - - - - -
-​ - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
DistributedMatchEngine.Mel Namespace Reference
-
-
-
-
- - - - - diff --git a/docs/namespace_distributed_match_engine_1_1_performance_metrics.html b/docs/namespace_distributed_match_engine_1_1_performance_metrics.html index 0decea77..80d00e28 100644 --- a/docs/namespace_distributed_match_engine_1_1_performance_metrics.html +++ b/docs/namespace_distributed_match_engine_1_1_performance_metrics.html @@ -4,7 +4,7 @@ - + C# SDK: DistributedMatchEngine.PerformanceMetrics Namespace Reference @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@
- + @@ -104,18 +104,17 @@
-
-
DistributedMatchEngine.PerformanceMetrics Namespace Reference
+
DistributedMatchEngine.PerformanceMetrics Namespace Reference
-

+

Classes

class  NetTest
 

Detailed Description

-
@@ -125,7 +124,7 @@ + doxygen 1.9.3 diff --git a/docs/namespacemembers.html b/docs/namespacemembers.html index 7ca0b236..4b3eff7a 100644 --- a/docs/namespacemembers.html +++ b/docs/namespacemembers.html @@ -4,7 +4,7 @@ - + C# SDK: Namespace Members @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -109,9 +109,7 @@
Here is a list of all documented namespace members with links to the namespaces they belong to:
@@ -121,7 +119,7 @@
    + doxygen 1.9.3
diff --git a/docs/namespacemembers_enum.html b/docs/namespacemembers_enum.html index 782d1b0f..517dc898 100644 --- a/docs/namespacemembers_enum.html +++ b/docs/namespacemembers_enum.html @@ -4,7 +4,7 @@ - + C# SDK: Namespace Members @@ -18,7 +18,7 @@ @@ -41,10 +41,10 @@ - + @@ -109,9 +109,7 @@
 
@@ -121,7 +119,7 @@
    + doxygen 1.9.3
diff --git a/docs/navtree.css b/docs/navtree.css index 33341a67..d8a311a2 100644 --- a/docs/navtree.css +++ b/docs/navtree.css @@ -87,6 +87,7 @@ position: absolute; left: 0px; width: 250px; + overflow : hidden; } .ui-resizable .ui-resizable-handle { diff --git a/docs/navtree.js b/docs/navtree.js index 1e272d31..27983687 100644 --- a/docs/navtree.js +++ b/docs/navtree.js @@ -325,11 +325,14 @@ function selectAndHighlight(hash,n) $(n.itemDiv).addClass('selected'); $(n.itemDiv).attr('id','selected'); } + var topOffset=5; + if (typeof page_layout!=='undefined' && page_layout==1) { + topOffset+=$('#top').outerHeight(); + } if ($('#nav-tree-contents .item:first').hasClass('selected')) { - $('#nav-sync').css('top','30px'); - } else { - $('#nav-sync').css('top','5px'); + topOffset+=25; } + $('#nav-sync').css('top',topOffset+'px'); showRoot(); } diff --git a/docs/navtreedata.js b/docs/navtreedata.js index 24cb09e2..46091693 100644 --- a/docs/navtreedata.js +++ b/docs/navtreedata.js @@ -26,29 +26,6 @@ var NAVTREE = [ [ "C# SDK", "index.html", [ [ "Classes", "annotated.html", [ - [ "NetTest", "class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html", "class_distributed_match_engine_1_1_performance_metrics_1_1_net_test" ], - [ "CarrierInfo", "interface_distributed_match_engine_1_1_carrier_info.html", "interface_distributed_match_engine_1_1_carrier_info" ], - [ "EmptyCarrierInfo", "class_distributed_match_engine_1_1_empty_carrier_info.html", "class_distributed_match_engine_1_1_empty_carrier_info" ], - [ "EmptyDeviceInfo", "class_distributed_match_engine_1_1_empty_device_info.html", "class_distributed_match_engine_1_1_empty_device_info" ], - [ "DmeDnsException", "class_distributed_match_engine_1_1_dme_dns_exception.html", "class_distributed_match_engine_1_1_dme_dns_exception" ], - [ "HttpException", "class_distributed_match_engine_1_1_http_exception.html", "class_distributed_match_engine_1_1_http_exception" ], - [ "TokenException", "class_distributed_match_engine_1_1_token_exception.html", "class_distributed_match_engine_1_1_token_exception" ], - [ "RegisterClientException", "class_distributed_match_engine_1_1_register_client_exception.html", "class_distributed_match_engine_1_1_register_client_exception" ], - [ "SessionCookieException", "class_distributed_match_engine_1_1_session_cookie_exception.html", "class_distributed_match_engine_1_1_session_cookie_exception" ], - [ "FindCloudletException", "class_distributed_match_engine_1_1_find_cloudlet_exception.html", "class_distributed_match_engine_1_1_find_cloudlet_exception" ], - [ "MatchingEngine", "class_distributed_match_engine_1_1_matching_engine.html", "class_distributed_match_engine_1_1_matching_engine" ], - [ "GetConnectionException", "class_distributed_match_engine_1_1_get_connection_exception.html", "class_distributed_match_engine_1_1_get_connection_exception" ], - [ "NetworkInterfaceName", "class_distributed_match_engine_1_1_network_interface_name.html", "class_distributed_match_engine_1_1_network_interface_name" ], - [ "IOSNetworkInterfaceName", "class_distributed_match_engine_1_1_i_o_s_network_interface_name.html", "class_distributed_match_engine_1_1_i_o_s_network_interface_name" ], - [ "AndroidNetworkInterfaceName", "class_distributed_match_engine_1_1_android_network_interface_name.html", "class_distributed_match_engine_1_1_android_network_interface_name" ], - [ "MacNetworkInterfaceName", "class_distributed_match_engine_1_1_mac_network_interface_name.html", "class_distributed_match_engine_1_1_mac_network_interface_name" ], - [ "LinuxNetworkInterfaceName", "class_distributed_match_engine_1_1_linux_network_interface_name.html", "class_distributed_match_engine_1_1_linux_network_interface_name" ], - [ "Windows10NetworkInterfaceName", "class_distributed_match_engine_1_1_windows10_network_interface_name.html", "class_distributed_match_engine_1_1_windows10_network_interface_name" ], - [ "NetInterface", "interface_distributed_match_engine_1_1_net_interface.html", "interface_distributed_match_engine_1_1_net_interface" ], - [ "EmptyNetInterface", "class_distributed_match_engine_1_1_empty_net_interface.html", "class_distributed_match_engine_1_1_empty_net_interface" ], - [ "SimpleNetInterface", "class_distributed_match_engine_1_1_simple_net_interface.html", "class_distributed_match_engine_1_1_simple_net_interface" ], - [ "UniqueID", "interface_distributed_match_engine_1_1_unique_i_d.html", "interface_distributed_match_engine_1_1_unique_i_d" ], - [ "EmptyUniqueID", "class_distributed_match_engine_1_1_empty_unique_i_d.html", "class_distributed_match_engine_1_1_empty_unique_i_d" ], [ "Class Index", "classes.html", null ] ] ], [ "Modules", "modules.html", "modules" ] diff --git a/docs/navtreeindex0.js b/docs/navtreeindex0.js index b2fa1983..5bb25bc1 100644 --- a/docs/navtreeindex0.js +++ b/docs/navtreeindex0.js @@ -1,91 +1,34 @@ var NAVTREEINDEX0 = { "class_distributed_match_engine_1_1_android_network_interface_name.html":[1,1,0,5], -"class_distributed_match_engine_1_1_android_network_interface_name.html#a488446ee09d0e68dceb2e6d8db1be5ef":[1,1,0,5,0], "class_distributed_match_engine_1_1_dme_dns_exception.html":[1,3,0,0], -"class_distributed_match_engine_1_1_dme_dns_exception.html#a8f4bc9747ad87d393c94f7047f1c15ce":[1,3,0,0,0], "class_distributed_match_engine_1_1_empty_carrier_info.html":[1,1,0,1], -"class_distributed_match_engine_1_1_empty_carrier_info.html#a7893093bd2558bd461406f441c27eac7":[1,1,0,1,1], -"class_distributed_match_engine_1_1_empty_carrier_info.html#abe445778fd4db30533637b12bcac39ef":[1,1,0,1,0], -"class_distributed_match_engine_1_1_empty_carrier_info.html#ac3730414c82d37ea6ce366a374cd85ec":[1,1,0,1,2], "class_distributed_match_engine_1_1_empty_device_info.html":[1,1,0,2], -"class_distributed_match_engine_1_1_empty_device_info.html#a06708f7d81e935f0fcf1227a2389cbd4":[1,1,0,2,0], "class_distributed_match_engine_1_1_empty_net_interface.html":[1,1,0,10], -"class_distributed_match_engine_1_1_empty_net_interface.html#a3893b568e044a571384b75bf1df028ff":[1,1,0,10,1], -"class_distributed_match_engine_1_1_empty_net_interface.html#a66fd658b77609ed1c98eeda2e07949ba":[1,1,0,10,2], -"class_distributed_match_engine_1_1_empty_net_interface.html#a7339673498c6a7ac6dc0c03c779bd936":[1,1,0,10,0], -"class_distributed_match_engine_1_1_empty_net_interface.html#a8e5d10a75cab3b00dc461dd8ae1dc5b6":[1,1,0,10,4], -"class_distributed_match_engine_1_1_empty_net_interface.html#a9890e2f580bce047dddb2335f4e738ab":[1,1,0,10,3], -"class_distributed_match_engine_1_1_empty_unique_i_d.html":[1,1,0,12], -"class_distributed_match_engine_1_1_empty_unique_i_d.html#a0533b798d3884baa6dfe688c8f9d244e":[1,1,0,12,0], -"class_distributed_match_engine_1_1_empty_unique_i_d.html#a181a67242c21bcd09882ded9265d869b":[1,1,0,12,1], "class_distributed_match_engine_1_1_find_cloudlet_exception.html":[1,3,0,5], -"class_distributed_match_engine_1_1_find_cloudlet_exception.html#a9e7034bb748654642687d43efb0aa1dd":[1,3,0,5,1], -"class_distributed_match_engine_1_1_find_cloudlet_exception.html#ad3a8da89be3b2c37666169d6e1ea6d9b":[1,3,0,5,0], "class_distributed_match_engine_1_1_get_connection_exception.html":[1,3,1,0], -"class_distributed_match_engine_1_1_get_connection_exception.html#a554790c800226857313dc4730c19d54d":[1,3,1,0,0], -"class_distributed_match_engine_1_1_get_connection_exception.html#aa665cb48acaec9ddb5c7ad6c15fff0d5":[1,3,1,0,2], -"class_distributed_match_engine_1_1_get_connection_exception.html#abadfcb529e25385feeb66c3fe729d85e":[1,3,1,0,1], "class_distributed_match_engine_1_1_http_exception.html":[1,3,0,1], -"class_distributed_match_engine_1_1_http_exception.html#a4d81de71f4f7a21349d0d8b208fdfa6e":[1,3,0,1,1], -"class_distributed_match_engine_1_1_http_exception.html#a8cf180108e147a043b0d74d0b0f7f22a":[1,3,0,1,0], -"class_distributed_match_engine_1_1_http_exception.html#aba8c866bfad1a4375ac416280f2f3e59":[1,3,0,1,2], -"class_distributed_match_engine_1_1_http_exception.html#ad0f538576431a453dac3894e9138f31c":[1,3,0,1,3], "class_distributed_match_engine_1_1_i_o_s_network_interface_name.html":[1,1,0,4], -"class_distributed_match_engine_1_1_i_o_s_network_interface_name.html#a0778b1d3a7a4a9f0d8f280cdc7971e44":[1,1,0,4,0], "class_distributed_match_engine_1_1_linux_network_interface_name.html":[1,1,0,7], -"class_distributed_match_engine_1_1_linux_network_interface_name.html#ab82bfcf43a6255f40a386a910025221e":[1,1,0,7,0], "class_distributed_match_engine_1_1_mac_network_interface_name.html":[1,1,0,6], "class_distributed_match_engine_1_1_mac_network_interface_name.html#a8074270d34e9890ef0cbb3032a6b6b5c":[1,1,0,6,0], "class_distributed_match_engine_1_1_network_interface_name.html":[1,1,0,3], -"class_distributed_match_engine_1_1_network_interface_name.html#a0389a972e2c5bee23e81f1814152bd74":[1,1,0,3,1], -"class_distributed_match_engine_1_1_network_interface_name.html#a0572eca81068e318b78bdc9962f5d128":[1,1,0,3,0], "class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html":[1,1,1,0], -"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#a0077ac337f44516ae26bfab6faf15c57":[1,1,1,0,12], -"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#a3115497acd69372303363c4718ba998f":[1,1,1,0,14], "class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#a5ee6e4a739af58d57286e1871af78ef5":[1,1,1,0,0], "class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#a5ee6e4a739af58d57286e1871af78ef5ab57e2519e26151feacdbe52076bc39ec":[1,1,1,0,0,1], "class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#a5ee6e4a739af58d57286e1871af78ef5ae07ff41a486c27c095a15898dcca34d1":[1,1,1,0,0,0], -"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#a7077b5cede81dc8582cf51813515a1f4":[1,1,1,0,3], -"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#a70b84d6b1f9625ce9634ce016c5cfe15":[1,1,1,0,13], "class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#a7337e9ad57657fa0c395fff978cf143c":[1,1,1,0,1], -"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#a8eef9fb00fd03ed054b5b51d334385b2":[1,1,1,0,2], -"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#ab2fe69b367cdfb46a9db3c13fa6facc9":[1,1,1,0,11], -"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#ab847f2d76c2ad71895bb28d8e07ff786":[1,1,1,0,9], -"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#aba56c8468b60bf5a7efc5718ac7d0300":[1,1,1,0,8], -"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#abc013c7e3b093f05d159e9a6e6d1ad65":[1,1,1,0,7], -"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#adfbbd25bce315fe4bbf5dcf9dd1a980f":[1,1,1,0,6], -"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#aec40969d5405b350b8ec3d4549aea5ec":[1,1,1,0,5], -"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#aed82e9439c45daa3a8a45c4e6396fb83":[1,1,1,0,4], -"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#af08dd65db1b316fc4ab179cd709003f5":[1,1,1,0,10], +"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#aba56c8468b60bf5a7efc5718ac7d0300":[1,1,1,0,2], +"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#ad269d063b47600523668b260a015ce49":[1,1,1,0,3], "class_distributed_match_engine_1_1_performance_metrics_1_1_net_test_1_1_site.html":[1,1,1,1], -"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test_1_1_site.html#a31a352ad805debe5b8e7e7d1a4648ec7":[1,1,1,1,12], -"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test_1_1_site.html#a3552467b98c0aea22ca633be692c3f16":[1,1,1,1,5], -"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test_1_1_site.html#a46fae38ba96289a31042927331afb54c":[1,1,1,1,4], -"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test_1_1_site.html#a684b5977649e9077a13ca939b70ee871":[1,1,1,1,3], -"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test_1_1_site.html#a6ac599b46ae77ca3009faf9496a2d85c":[1,1,1,1,13], -"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test_1_1_site.html#a7bf93a5aac21c46c527ecced1dc58318":[1,1,1,1,8], -"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test_1_1_site.html#a9f7201930fa5e5785f5af5f62baee701":[1,1,1,1,14], -"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test_1_1_site.html#aa7c618d96242f17642d9d641db52e0aa":[1,1,1,1,7], -"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test_1_1_site.html#aa8e1030b32843e87e875fa176babde54":[1,1,1,1,9], -"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test_1_1_site.html#ad25b3a046b932c8a3c49c7cf3075e44e":[1,1,1,1,1], -"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test_1_1_site.html#ad7681e373797bba6014eb07ea71d72e8":[1,1,1,1,11], -"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test_1_1_site.html#adaf9fd2ab57fbd480b48a0cca7a1a7e3":[1,1,1,1,10], -"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test_1_1_site.html#ae678a8751f4f7997ff9b3cffc9fdf185":[1,1,1,1,6], +"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test_1_1_site.html#a684b5977649e9077a13ca939b70ee871":[1,1,1,1,1], +"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test_1_1_site.html#a9f7201930fa5e5785f5af5f62baee701":[1,1,1,1,2], "class_distributed_match_engine_1_1_performance_metrics_1_1_net_test_1_1_site.html#aebc4252660782df5572760641a4e6488":[1,1,1,1,0], -"class_distributed_match_engine_1_1_performance_metrics_1_1_net_test_1_1_site.html#af075de8c7c62abf5508cde3216374a49":[1,1,1,1,2], "class_distributed_match_engine_1_1_register_client_exception.html":[1,3,0,3], -"class_distributed_match_engine_1_1_register_client_exception.html#a3cdab5b6998adb1a26253a4ac4400fde":[1,3,0,3,0], -"class_distributed_match_engine_1_1_register_client_exception.html#add97108998772bf8bd21fd2a1126036c":[1,3,0,3,1], "class_distributed_match_engine_1_1_session_cookie_exception.html":[1,3,0,4], -"class_distributed_match_engine_1_1_session_cookie_exception.html#a165eb9d4f2352dbeaf284f4523296e37":[1,3,0,4,1], -"class_distributed_match_engine_1_1_session_cookie_exception.html#ad72e4d921117391756b734068599929e":[1,3,0,4,0], "class_distributed_match_engine_1_1_token_exception.html":[1,3,0,2], -"class_distributed_match_engine_1_1_token_exception.html#a4b6373c0eec00af6732a18a3b5247939":[1,3,0,2,0], -"class_distributed_match_engine_1_1_token_exception.html#a8e1854c70b8cbad2141b8f3049693738":[1,3,0,2,1], "class_distributed_match_engine_1_1_windows10_network_interface_name.html":[1,1,0,8], -"class_distributed_match_engine_1_1_windows10_network_interface_name.html#a7afac28c2d355bb164d93985680b26a5":[1,1,0,8,0], -"classes.html":[0,23], +"classes.html":[0,0], "group__classes.html":[1,1], "group__classes__datastructs.html":[1,1,2], "group__classes__integration.html":[1,1,0], @@ -95,63 +38,51 @@ var NAVTREEINDEX0 = "group__exceptions__getconnection.html":[1,3,1], "group__functiongroups.html":[1,2], "group__functions__dmeapis.html":[1,2,0], -"group__functions__dmeapis.html#ga0a883bcda8fb24b5702f194a3ddcafdb":[1,2,0,15], -"group__functions__dmeapis.html#ga0e82440ee800b0a94a66b5c8122d895f":[1,2,0,6], -"group__functions__dmeapis.html#ga1383f141a4895a4ff08e8199c1b6d13d":[1,2,0,2], -"group__functions__dmeapis.html#ga297b9bb13f27bc0a8816d91d3163e5ab":[1,2,0,3], -"group__functions__dmeapis.html#ga36bfcf871c4cf937589e671741cf794c":[1,2,0,14], -"group__functions__dmeapis.html#ga45f3a06fe3bc6a36901d997c450e896f":[1,2,0,11], -"group__functions__dmeapis.html#ga50403db7c59c6ab6e9a6100953a6bea8":[1,2,0,8], -"group__functions__dmeapis.html#ga53d8e4cab28fd865e52126c52489d5c7":[1,2,0,16], -"group__functions__dmeapis.html#ga6aadad2b1ae1d94dca6c363a31f966d2":[1,2,0,0], -"group__functions__dmeapis.html#ga6f7ba630220f28313513e6643bda6ae8":[1,2,0,12], -"group__functions__dmeapis.html#ga747cb0d0aa3d5b2ce0455edbd6d61852":[1,2,0,13], -"group__functions__dmeapis.html#ga7a59f3a8bdd685821005e95dc4353bc0":[1,2,0,5], -"group__functions__dmeapis.html#ga90cb3eeb18f927dd54e12c004f5a77c5":[1,2,0,4], -"group__functions__dmeapis.html#ga9373572536454f554dbef9a55190ac72":[1,2,0,10], -"group__functions__dmeapis.html#gac63a90bad5c1f004fcb861219b8656a9":[1,2,0,7], -"group__functions__dmeapis.html#gae61072f92ed0b4acdcfce85b91bdbe8c":[1,2,0,1], -"group__functions__dmeapis.html#gae88c62b86815ccd938066523386687a7":[1,2,0,9], +"group__functions__dmeapis.html#ga0508618df12de15547b706bc00563efe":[1,2,0,3], +"group__functions__dmeapis.html#ga16601fee6c881e9816cce92100f9d32e":[1,2,0,6], +"group__functions__dmeapis.html#ga1adf852b870b0e6368f3808a99276a5c":[1,2,0,4], +"group__functions__dmeapis.html#ga1c5858790440968e46781057c8536e4d":[1,2,0,5], +"group__functions__dmeapis.html#ga325b795e66030b2458382fd903c09783":[1,2,0,1], +"group__functions__dmeapis.html#ga3fb993a00f47e9a576e9128431442544":[1,2,0,8], +"group__functions__dmeapis.html#ga5892948a66fd2355f9d17ef3a565122f":[1,2,0,11], +"group__functions__dmeapis.html#ga5a80f5086c98999fbb2e90c7e053c069":[1,2,0,9], +"group__functions__dmeapis.html#ga601a7acd1483ea09101dc03e18619106":[1,2,0,14], +"group__functions__dmeapis.html#ga746f33f6351cc3fc828ad7189026a01d":[1,2,0,2], +"group__functions__dmeapis.html#ga762e0294be4c18f2d7ae1cf553d69b9c":[1,2,0,12], +"group__functions__dmeapis.html#ga7887c7986d1343cd1ed71f40072d035c":[1,2,0,16], +"group__functions__dmeapis.html#ga8a3ddc311aa0e524cb913701258b7ba5":[1,2,0,0], +"group__functions__dmeapis.html#gab14b6f855946ab0cd8ac103563d7c306":[1,2,0,15], +"group__functions__dmeapis.html#gac3664388a2c1249c53fcdb1a39a17ef0":[1,2,0,7], +"group__functions__dmeapis.html#gae6f0da0f2b74eb2351ab5f97efcd7843":[1,2,0,13], +"group__functions__dmeapis.html#gaf42d7896bf6e0602d58c0f62fde23a17":[1,2,0,10], "group__functions__dmeutils.html":[1,2,1], "group__functions__dmeutils.html#ga4489b0a2311aa4fe5596964eab140d26":[1,2,1,0], "group__functions__dmeutils.html#ga5b28acc2b0bf0713ef20f2891358e96e":[1,2,1,1], -"group__functions__dmeutils.html#ga9948a89f47ddc7201fe804da46d2ae83":[1,2,1,2], -"group__functions__dmeutils.html#gab99bcbc61b344d1ddb5c1b6a0933fe6d":[1,2,1,3], -"group__functions__dmeutils.html#gac3dc722da1f37f5246b2246c63f48c2c":[1,2,1,4], -"group__functions__dmeutils.html#gad826defc3bd843f58de0c2edeea02810":[1,2,1,5], +"group__functions__dmeutils.html#gad826defc3bd843f58de0c2edeea02810":[1,2,1,2], "group__functions__getconnection.html":[1,2,2], -"group__functions__getconnection.html#ga441781cabf9695a6f874f7905303e9a4":[1,2,2,3], -"group__functions__getconnection.html#ga67cc33f6d042e23067a94491f6a33197":[1,2,2,6], -"group__functions__getconnection.html#ga82aa14e4ba2826595f45f812bd7d3360":[1,2,2,0], -"group__functions__getconnection.html#ga9e9050f07966ab43447e3a9e05fccc8a":[1,2,2,2], -"group__functions__getconnection.html#ga9fd278179ea8642681d2273ccc01a6bc":[1,2,2,5], -"group__functions__getconnection.html#gac03219f5677caaa8bc5cf32c12d3f139":[1,2,2,1], -"group__functions__getconnection.html#gad06f333abb41b258174aa4fe11f79256":[1,2,2,4], +"group__functions__getconnection.html#ga104d3d82becaf049ddfc6a3ac5c375db":[1,2,2,4], +"group__functions__getconnection.html#ga37eea72d47e8318a304bffe8356dfbfd":[1,2,2,0], +"group__functions__getconnection.html#ga7af06cbd5099bf717337be21be17f8cc":[1,2,2,3], +"group__functions__getconnection.html#ga7ca39a18994b754a691dbae3e0441563":[1,2,2,2], +"group__functions__getconnection.html#ga8bd90150cdeab7bf85d999f4176694b2":[1,2,2,6], +"group__functions__getconnection.html#gaa1c1ce7897cf803745c6bc0dc2448f85":[1,2,2,5], +"group__functions__getconnection.html#gaa2b967a24b86ea8a89386e3d763e280e":[1,2,2,1], "group__functions__getconnectionutils.html":[1,2,3], +"group__functions__getconnectionutils.html#ga12f57ab82783b48a37979f1d6ea22edd":[1,2,3,7], "group__functions__getconnectionutils.html#ga1fb2844c1f32a2fe6deb733a03b1a5fb":[1,2,3,8], -"group__functions__getconnectionutils.html#ga6b23316b958094626ef317626130f73d":[1,2,3,7], "group__functions__getconnectionutils.html#ga7ac7bc02634716174be9dbab28118391":[1,2,3,1], -"group__functions__getconnectionutils.html#ga87518ec8da12f1b4d8549acdd7276629":[1,2,3,6], +"group__functions__getconnectionutils.html#gaa224bc913baec01e560469bed7c2ad2d":[1,2,3,3], "group__functions__getconnectionutils.html#gab032a68931ae13f78c039634f66cfa19":[1,2,3,0], "group__functions__getconnectionutils.html#gab7ca97c5fb8ada690b549435b022209c":[1,2,3,5], -"group__functions__getconnectionutils.html#gac2e6e66c846f429806591e2d4ef589b4":[1,2,3,3], "group__functions__getconnectionutils.html#gad2e00c6d66235c604404044a77a4ab04":[1,2,3,4], +"group__functions__getconnectionutils.html#gada333feb4a12f0242b36675cdb3246dc":[1,2,3,6], "group__functions__getconnectionutils.html#gae0f12497ca7cd290c0ce07b910cbcf0c":[1,2,3,2], "group__namespaces.html":[1,0], "index.html":[], "interface_distributed_match_engine_1_1_carrier_info.html":[1,1,0,0], -"interface_distributed_match_engine_1_1_carrier_info.html#a19ec0ff8f67eee0024b555bef2f2946f":[1,1,0,0,2], -"interface_distributed_match_engine_1_1_carrier_info.html#a1ba678ff74716325bd585bfca52a5795":[1,1,0,0,0], -"interface_distributed_match_engine_1_1_carrier_info.html#a3c3425f5948fe9340cca6989e398c966":[1,1,0,0,1], "interface_distributed_match_engine_1_1_net_interface.html":[1,1,0,9], -"interface_distributed_match_engine_1_1_net_interface.html#a1fe3923280458f0fc1ec536bfb9e83ba":[1,1,0,9,4], -"interface_distributed_match_engine_1_1_net_interface.html#a529f9cb0be2abeacfef5d2cb3d95e138":[1,1,0,9,1], -"interface_distributed_match_engine_1_1_net_interface.html#a612ce8727c95fecd675be5a8b1f543e7":[1,1,0,9,2], -"interface_distributed_match_engine_1_1_net_interface.html#ab6e1010c4dc4a64f7081f82bed797a8d":[1,1,0,9,0], -"interface_distributed_match_engine_1_1_net_interface.html#af555c0d0e08ec2a8c467aa65f788ae47":[1,1,0,9,3], -"interface_distributed_match_engine_1_1_unique_i_d.html":[1,1,0,11], -"interface_distributed_match_engine_1_1_unique_i_d.html#a4bf3c8ed565aa7c92d37fc5bef56edf3":[1,1,0,11,0], -"interface_distributed_match_engine_1_1_unique_i_d.html#af03cda24e7dca33d2eaede68bc1080f1":[1,1,0,11,1], "modules.html":[1], +"namespace_distributed_match_engine.html":[1,0,0], +"namespace_distributed_match_engine_1_1_performance_metrics.html":[1,0,1], "pages.html":[] }; diff --git a/docs/resize.js b/docs/resize.js index e1ad0fe3..7fe30d10 100644 --- a/docs/resize.js +++ b/docs/resize.js @@ -53,7 +53,7 @@ function initResizable() date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week expiration = date.toGMTString(); } - document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/"; + document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; SameSite=Lax; expires=" + expiration+"; path=/"; } function resizeWidth() @@ -75,10 +75,20 @@ function initResizable() { var headerHeight = header.outerHeight(); var footerHeight = footer.outerHeight(); - var windowHeight = $(window).height() - headerHeight - footerHeight; - content.css({height:windowHeight + "px"}); - navtree.css({height:windowHeight + "px"}); - sidenav.css({height:windowHeight + "px"}); + var windowHeight = $(window).height(); + var contentHeight,navtreeHeight,sideNavHeight; + if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */ + contentHeight = windowHeight - headerHeight - footerHeight; + navtreeHeight = contentHeight; + sideNavHeight = contentHeight; + } else if (page_layout==1) { /* DISABLE_INDEX=YES */ + contentHeight = windowHeight - footerHeight; + navtreeHeight = windowHeight - headerHeight; + sideNavHeight = windowHeight; + } + content.css({height:contentHeight + "px"}); + navtree.css({height:navtreeHeight + "px"}); + sidenav.css({height:sideNavHeight + "px"}); var width=$(window).width(); if (width!=collapsedWidth) { if (width=desktop_vp) { diff --git a/docs/search/all_0.html b/docs/search/all_0.html index 1ec5b2d5..c36c9af5 100644 --- a/docs/search/all_0.html +++ b/docs/search/all_0.html @@ -2,7 +2,7 @@ - + @@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
+ @@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
+ + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/docs/search/pages_0.js b/docs/search/pages_0.js new file mode 100644 index 00000000..fc9bb14b --- /dev/null +++ b/docs/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['c_23_20sdk_0',['C# SDK',['../index.html',1,'']]] +]; diff --git a/docs/search/properties_0.html b/docs/search/properties_0.html index 91e93064..bd1f64c7 100644 --- a/docs/search/properties_0.html +++ b/docs/search/properties_0.html @@ -2,7 +2,7 @@ - + @@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
@@ -12,14 +12,14 @@
Loading...
Searching...
No Matches
+ + + + + + + + + + + + + +
+​ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
DistributedMatchEngine.EmptyUniqueID Member List
+
+
+ +

This is the complete list of members for DistributedMatchEngine.EmptyUniqueID, including all inherited members.

+ + + +
GetUniqueID() (defined in DistributedMatchEngine.EmptyUniqueID)DistributedMatchEngine.EmptyUniqueID
GetUniqueIDType() (defined in DistributedMatchEngine.EmptyUniqueID)DistributedMatchEngine.EmptyUniqueID
+
+ + + + + diff --git a/docs/class_distributed_match_engine_1_1_empty_unique_i_d.html b/docs/class_distributed_match_engine_1_1_empty_unique_i_d.html new file mode 100644 index 00000000..6f00734f --- /dev/null +++ b/docs/class_distributed_match_engine_1_1_empty_unique_i_d.html @@ -0,0 +1,193 @@ + + + + + + + + +C# SDK: DistributedMatchEngine.EmptyUniqueID Class Reference + + + + + + + + + + + + + + + +
+​ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
DistributedMatchEngine.EmptyUniqueID Class Reference
+
+
+
+Inheritance diagram for DistributedMatchEngine.EmptyUniqueID:
+
+
+ + +DistributedMatchEngine.UniqueID + +
+ + + + + + + + + + +

+Public Member Functions

string GetUniqueIDType ()
 
string GetUniqueID ()
 
+string GetUniqueIDType ()
 
+string GetUniqueID ()
 
+

Detailed Description

+

Empty implementation of CarrierInfo interface

+

Member Function Documentation

+ +

◆ GetUniqueID()

+ +
+
+ + + + + + + +
string DistributedMatchEngine.EmptyUniqueID.GetUniqueID ()
+
+
+ +

◆ GetUniqueIDType()

+ +
+
+ + + + + + + +
string DistributedMatchEngine.EmptyUniqueID.GetUniqueIDType ()
+
+
+
+
+ + + + + diff --git a/docs/class_distributed_match_engine_1_1_empty_unique_i_d.png b/docs/class_distributed_match_engine_1_1_empty_unique_i_d.png new file mode 100644 index 0000000000000000000000000000000000000000..281adda65b76512458d8391d20f62f4711404af2 GIT binary patch literal 932 zcmeAS@N?(olHy`uVBq!ia0vp^uYfp!gBeIFNK57eDTx4|5ZC|z{{xvX-h3_XKQsZz z0^(ugG{8FOy=D%<4cY@ySJX>mV zcj@BFTX%mq_Nw2$QLMT$=Jpob>E!{^+n+t*WY ziSv>i9_42T-3zkV>Zx~HJ6Gh;3_KgZR&EY+7$^&->v0&e>EtuG8cJW%BXUWyE^d?By8X$zn(q%Y?)5yq7`&#jVehWQceBmxswXo(y(N}rD|#huLgh{; zUfr}>U9AJQvNPotF_ldDwjie^+WXBtvAxHWU-NC>YsqtB@9xCbsH)~pNvY?XnRA_M z%_g~;c*?suCrlR&mx^DLsQ6~VGwm~hdDoO|k2dUBdUN@wX@?%xT4lHInrtyyshE&J!2fS{bu4{UF%Zg_u-^}gj zC&cq*KbDy+d?kx_`HFKdFUIY7H>s*!?fHt_pD$%^PwE%nT{Uy{-5)=fymD`e-KE4#gC+rvEV4S&}ii^`h3QESIOrrVF@vKFp9us3F_=#8+mr>=-*2A_N! zl{@3osT$UIb>WP0t8WWOAD-+O{;v)cag2UfPbN1+?H2(?UW2#j>C1-uMMWPRg-5~L h&wF%Ee`5K|Y$Rgn`90|kKQK!%c)I$ztaD0e0s!}!z-j;h literal 0 HcmV?d00001 diff --git a/docs/class_distributed_match_engine_1_1_matching_engine-members.html b/docs/class_distributed_match_engine_1_1_matching_engine-members.html index 59a11ccf..07ce4468 100644 --- a/docs/class_distributed_match_engine_1_1_matching_engine-members.html +++ b/docs/class_distributed_match_engine_1_1_matching_engine-members.html @@ -124,7 +124,7 @@ CreateQosPriorityDeleteRequest(QosSessionProfile sessionProfile, Dictionary< string, string > tags=null)DistributedMatchEngine.MatchingEngine CreateQOSPrioritySession(QosPrioritySessionCreateRequest request)DistributedMatchEngine.MatchingEngine CreateQOSPrioritySession(string host, uint port, QosPrioritySessionCreateRequest request)DistributedMatchEngine.MatchingEngine - CreateRegisterClientRequest(string orgName, string appName, string appVersion, string authToken=null, Dictionary< string, string > tags=null)DistributedMatchEngine.MatchingEngine + CreateRegisterClientRequest(string orgName, string appName, string appVersion, string authToken=null, string uniqueIDType=null, string uniqueID=null, Dictionary< string, string > tags=null)DistributedMatchEngine.MatchingEngine CreateUrl(FindCloudletReply findCloudletReply, AppPort appPort, string protocol, int desiredPort=0, string path="")DistributedMatchEngine.MatchingEngine CreateVerifyLocationRequest(Loc loc, string carrierName=null, Dictionary< string, string > tags=null)DistributedMatchEngine.MatchingEngine DEFAULT_GETCONNECTION_TIMEOUT_MSDistributedMatchEngine.MatchingEnginestatic @@ -171,26 +171,29 @@ GetUDPAppPorts(FindCloudletReply reply)DistributedMatchEngine.MatchingEngine GetUDPConnection(FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, IPEndPoint localEndPoint=null)DistributedMatchEngine.MatchingEngine GetUDPConnection(string host, int port, int timeoutMs, IPEndPoint localEndPoint=null) (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine + GetUniqueID()DistributedMatchEngine.MatchingEngine + GetUniqueIDType()DistributedMatchEngine.MatchingEngine GetWebsocketConnection(FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, string path="")DistributedMatchEngine.MatchingEngine GetWebsocketConnection(Uri uri, int timeoutMs, bool waitForOpen=true) (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine LastRegisterClientRequest (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine LocalIP (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine - MatchingEngine(CarrierInfo carrierInfo=null, NetInterface netInterface=null, DeviceInfo deviceInfo=null)DistributedMatchEngine.MatchingEngine + MatchingEngine(CarrierInfo carrierInfo=null, NetInterface netInterface=null, UniqueID uniqueID=null, DeviceInfo deviceInfo=null)DistributedMatchEngine.MatchingEngine netInterface (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine - RegisterAndFindCloudlet(string orgName, string appName, string appVersion, Loc loc, string carrierName="", string authToken=null, Dictionary< string, string > tags=null, FindCloudletMode mode=FindCloudletMode.PROXIMITY)DistributedMatchEngine.MatchingEngine - RegisterAndFindCloudlet(string host, uint port, string orgName, string appName, string appVersion, Loc loc, string carrierName="", string authToken=null, Dictionary< string, string > tags=null, FindCloudletMode mode=FindCloudletMode.PROXIMITY)DistributedMatchEngine.MatchingEngine + RegisterAndFindCloudlet(string orgName, string appName, string appVersion, Loc loc, string carrierName="", string authToken=null, string uniqueIDType=null, string uniqueID=null, Dictionary< string, string > tags=null, FindCloudletMode mode=FindCloudletMode.PROXIMITY)DistributedMatchEngine.MatchingEngine + RegisterAndFindCloudlet(string host, uint port, string orgName, string appName, string appVersion, Loc loc, string carrierName="", string authToken=null, string uniqueIDType=null, string uniqueID=null, Dictionary< string, string > tags=null, FindCloudletMode mode=FindCloudletMode.PROXIMITY)DistributedMatchEngine.MatchingEngine RegisterClient(RegisterClientRequest request)DistributedMatchEngine.MatchingEngine RegisterClient(string host, uint port, RegisterClientRequest request)DistributedMatchEngine.MatchingEngine ServerRequiresClientCertificateAuthentication(bool required)DistributedMatchEngine.MatchingEnginestatic sessionCookie (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine SetTimeout(int timeout_in_milliseconds)DistributedMatchEngine.MatchingEngine TAG (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEnginestatic - useOnlyWifi (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine - useSSL (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine - VerifyLocation(VerifyLocationRequest request)DistributedMatchEngine.MatchingEngine - VerifyLocation(string host, uint port, VerifyLocationRequest request)DistributedMatchEngine.MatchingEngine - wifiCarrier (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEnginestatic - wifiOnlyDmeHost (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEnginestatic + uniqueID (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine + useOnlyWifi (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine + useSSL (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEngine + VerifyLocation(VerifyLocationRequest request)DistributedMatchEngine.MatchingEngine + VerifyLocation(string host, uint port, VerifyLocationRequest request)DistributedMatchEngine.MatchingEngine + wifiCarrier (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEnginestatic + wifiOnlyDmeHost (defined in DistributedMatchEngine.MatchingEngine)DistributedMatchEngine.MatchingEnginestatic diff --git a/docs/class_distributed_match_engine_1_1_matching_engine.html b/docs/class_distributed_match_engine_1_1_matching_engine.html index 629a1496..7d754a75 100644 --- a/docs/class_distributed_match_engine_1_1_matching_engine.html +++ b/docs/class_distributed_match_engine_1_1_matching_engine.html @@ -125,18 +125,22 @@ delegate void EventBusDelegate (ServerEdgeEvent serverEdgeEvent)   - MatchingEngine (CarrierInfo carrierInfo=null, NetInterface netInterface=null, DeviceInfo deviceInfo=null) -  + MatchingEngine (CarrierInfo carrierInfo=null, NetInterface netInterface=null, UniqueID uniqueID=null, DeviceInfo deviceInfo=null) +  DMEConnection GetDMEConnection (string edgeEventCookie, string dmeHost=null, uint dmePort=0)   TimeSpan SetTimeout (int timeout_in_milliseconds)   +string GetUniqueIDType () +  +string GetUniqueID () +  string GetCarrierName ()   string GenerateDmeHostAddress ()   -RegisterClientRequest CreateRegisterClientRequest (string orgName, string appName, string appVersion, string authToken=null, Dictionary< string, string > tags=null) -  +RegisterClientRequest CreateRegisterClientRequest (string orgName, string appName, string appVersion, string authToken=null, string uniqueIDType=null, string uniqueID=null, Dictionary< string, string > tags=null) +  async Task< RegisterClientReply > RegisterClient (RegisterClientRequest request)   async Task< RegisterClientReply > RegisterClient (string host, uint port, RegisterClientRequest request) @@ -150,10 +154,10 @@ async Task< FindCloudletReply > FindCloudletPerformanceMode (string host, uint port, FindCloudletRequest request, int testPort=0, int numOfSamples=5, IPEndPoint localEndPoint=null)   -async Task< FindCloudletReply > RegisterAndFindCloudlet (string orgName, string appName, string appVersion, Loc loc, string carrierName="", string authToken=null, Dictionary< string, string > tags=null, FindCloudletMode mode=FindCloudletMode.PROXIMITY) -  -async Task< FindCloudletReply > RegisterAndFindCloudlet (string host, uint port, string orgName, string appName, string appVersion, Loc loc, string carrierName="", string authToken=null, Dictionary< string, string > tags=null, FindCloudletMode mode=FindCloudletMode.PROXIMITY) -  +async Task< FindCloudletReply > RegisterAndFindCloudlet (string orgName, string appName, string appVersion, Loc loc, string carrierName="", string authToken=null, string uniqueIDType=null, string uniqueID=null, Dictionary< string, string > tags=null, FindCloudletMode mode=FindCloudletMode.PROXIMITY) +  +async Task< FindCloudletReply > RegisterAndFindCloudlet (string host, uint port, string orgName, string appName, string appVersion, Loc loc, string carrierName="", string authToken=null, string uniqueIDType=null, string uniqueID=null, Dictionary< string, string > tags=null, FindCloudletMode mode=FindCloudletMode.PROXIMITY) +  VerifyLocationRequest CreateVerifyLocationRequest (Loc loc, string carrierName=null, Dictionary< string, string > tags=null)   async Task< VerifyLocationReply > VerifyLocation (VerifyLocationRequest request) @@ -303,6 +307,9 @@ NetInterface netInterface [get, set]   + +UniqueID uniqueID [get, set] DeviceInfo deviceInfo [get]   @@ -331,8 +338,8 @@

Detailed Description

Main MobiledgeX SDK class. This class provides functions to find nearest cloudlet with the developer's application instance deployed and to connect to that application instance.

Constructor & Destructor Documentation

- -

◆ MatchingEngine()

+ +

◆ MatchingEngine()

@@ -349,6 +356,12 @@

NetInterface  netInterface = null, + + + + UniqueID  + uniqueID = null, + @@ -366,14 +379,15 @@

carrierInfo(CarrierInfo): netInterface(NetInterface): + uniqueID(UniqueID): deviceInfo(DeviceInfo):

Example

-
MatchingEngine me = new MatchingEngine(new DummyCarrierInfo(), new SimpleNetInterface(new MacNetworkInterfaceName()), new DummyDeviceInfo());
-
MatchingEngine(CarrierInfo carrierInfo=null, NetInterface netInterface=null, DeviceInfo deviceInfo=null)
Definition: DistributedMatchEngine.cs:262
+
MatchingEngine me = new MatchingEngine(new DummyCarrierInfo(), new SimpleNetInterface(new MacNetworkInterfaceName()), new DummyUniqueID(), new DummyDeviceInfo());
+
MatchingEngine(CarrierInfo carrierInfo=null, NetInterface netInterface=null, UniqueID uniqueID=null, DeviceInfo deviceInfo=null)
Definition: DistributedMatchEngine.cs:264

diff --git a/docs/classes.html b/docs/classes.html index 89b908cc..b499b786 100644 --- a/docs/classes.html +++ b/docs/classes.html @@ -110,7 +110,7 @@
Class Index
-
A | C | D | E | F | G | H | I | L | M | N | R | S | T | W
+
A | C | D | E | F | G | H | I | L | M | N | R | S | T | U | W
diff --git a/docs/functions.html b/docs/functions.html index 0bcfcf5e..3c742153 100644 --- a/docs/functions.html +++ b/docs/functions.html @@ -147,7 +147,7 @@

- c -

@@ -188,13 +188,15 @@

- g -

- m -

@@ -204,7 +206,7 @@

- n -

diff --git a/docs/group__classes__integration.js b/docs/group__classes__integration.js index be48bdd1..3e71c94c 100644 --- a/docs/group__classes__integration.js +++ b/docs/group__classes__integration.js @@ -12,5 +12,7 @@ var group__classes__integration = [ "DistributedMatchEngine.LinuxNetworkInterfaceName", "class_distributed_match_engine_1_1_linux_network_interface_name.html", null ], [ "DistributedMatchEngine.Windows10NetworkInterfaceName", "class_distributed_match_engine_1_1_windows10_network_interface_name.html", null ], [ "DistributedMatchEngine.NetInterface", "interface_distributed_match_engine_1_1_net_interface.html", null ], - [ "DistributedMatchEngine.EmptyNetInterface", "class_distributed_match_engine_1_1_empty_net_interface.html", null ] + [ "DistributedMatchEngine.EmptyNetInterface", "class_distributed_match_engine_1_1_empty_net_interface.html", null ], + [ "DistributedMatchEngine.UniqueID", "interface_distributed_match_engine_1_1_unique_i_d.html", null ], + [ "DistributedMatchEngine.EmptyUniqueID", "class_distributed_match_engine_1_1_empty_unique_i_d.html", null ] ]; \ No newline at end of file diff --git a/docs/group__functions__dmeapis.html b/docs/group__functions__dmeapis.html index 7ef1addb..4de45189 100644 --- a/docs/group__functions__dmeapis.html +++ b/docs/group__functions__dmeapis.html @@ -110,8 +110,8 @@ - - + + @@ -122,10 +122,10 @@ - - - - + + + + @@ -295,8 +295,8 @@

- -

◆ CreateRegisterClientRequest()

+ +

◆ CreateRegisterClientRequest()

@@ -325,6 +325,18 @@

string 

+ + + + + + + + + + + + @@ -345,6 +357,8 @@

appName

+ +

Functions

RegisterClientRequest DistributedMatchEngine.MatchingEngine.CreateRegisterClientRequest (string orgName, string appName, string appVersion, string authToken=null, Dictionary< string, string > tags=null)
 
RegisterClientRequest DistributedMatchEngine.MatchingEngine.CreateRegisterClientRequest (string orgName, string appName, string appVersion, string authToken=null, string uniqueIDType=null, string uniqueID=null, Dictionary< string, string > tags=null)
 
async Task< RegisterClientReply > DistributedMatchEngine.MatchingEngine.RegisterClient (RegisterClientRequest request)
 
async Task< RegisterClientReply > DistributedMatchEngine.MatchingEngine.RegisterClient (string host, uint port, RegisterClientRequest request)
 
async Task< FindCloudletReply > DistributedMatchEngine.MatchingEngine.FindCloudlet (string host, uint port, FindCloudletRequest request, FindCloudletMode mode=FindCloudletMode.PROXIMITY, IPEndPoint localEndPoint=null)
 
async Task< FindCloudletReply > DistributedMatchEngine.MatchingEngine.RegisterAndFindCloudlet (string orgName, string appName, string appVersion, Loc loc, string carrierName="", string authToken=null, Dictionary< string, string > tags=null, FindCloudletMode mode=FindCloudletMode.PROXIMITY)
 
async Task< FindCloudletReply > DistributedMatchEngine.MatchingEngine.RegisterAndFindCloudlet (string host, uint port, string orgName, string appName, string appVersion, Loc loc, string carrierName="", string authToken=null, Dictionary< string, string > tags=null, FindCloudletMode mode=FindCloudletMode.PROXIMITY)
 
async Task< FindCloudletReply > DistributedMatchEngine.MatchingEngine.RegisterAndFindCloudlet (string orgName, string appName, string appVersion, Loc loc, string carrierName="", string authToken=null, string uniqueIDType=null, string uniqueID=null, Dictionary< string, string > tags=null, FindCloudletMode mode=FindCloudletMode.PROXIMITY)
 
async Task< FindCloudletReply > DistributedMatchEngine.MatchingEngine.RegisterAndFindCloudlet (string host, uint port, string orgName, string appName, string appVersion, Loc loc, string carrierName="", string authToken=null, string uniqueIDType=null, string uniqueID=null, Dictionary< string, string > tags=null, FindCloudletMode mode=FindCloudletMode.PROXIMITY)
 
VerifyLocationRequest DistributedMatchEngine.MatchingEngine.CreateVerifyLocationRequest (Loc loc, string carrierName=null, Dictionary< string, string > tags=null)
 
async Task< VerifyLocationReply > DistributedMatchEngine.MatchingEngine.VerifyLocation (VerifyLocationRequest request)
authToken = null,
string uniqueIDType = null,
string uniqueID = null,
(string): Application name
appVersion(string): Application version
authToken(string): Optional authentication token for application. If none supplied, default is null.
uniqueIDType(string): Optional
uniqueID(string): Optional
tags(Tag[]): Optional
@@ -512,8 +526,8 @@

Returns
Task<FindCloudletReply>

Example

-
findCloudletReply = await me.FindCloudlet(fallbackDmeHost, MatchingEngine.defaultDmeRestPort, findCloudletRequest);
-
MatchingEngine(CarrierInfo carrierInfo=null, NetInterface netInterface=null, DeviceInfo deviceInfo=null)
Definition: DistributedMatchEngine.cs:262
+
findCloudletReply = await me.FindCloudlet(fallbackDmeHost, MatchingEngine.defaultDmeRestPort, findCloudletRequest);
+
MatchingEngine(CarrierInfo carrierInfo=null, NetInterface netInterface=null, UniqueID uniqueID=null, DeviceInfo deviceInfo=null)
Definition: DistributedMatchEngine.cs:264
@@ -589,7 +603,7 @@

Returns
Task<AppInstListReply>

Example

-
appInstListReply = await me.GetAppInstList(fallbackDmeHost, MatchingEngine.defaultDmeRestPort, appInstListRequest);
+
appInstListReply = await me.GetAppInstList(fallbackDmeHost, MatchingEngine.defaultDmeRestPort, appInstListRequest);
@@ -665,12 +679,12 @@

Returns
Task<QosPositionKpiStream>

Example

-
qosReplyStream = await me.GetQosPositionKpi(fallbackDmeHost, MatchingEngine.defaultDmeRestPort, qosPositionRequest);
+
qosReplyStream = await me.GetQosPositionKpi(fallbackDmeHost, MatchingEngine.defaultDmeRestPort, qosPositionRequest);
- -

◆ RegisterAndFindCloudlet() [1/2]

+ +

◆ RegisterAndFindCloudlet() [1/2]

@@ -723,6 +737,18 @@

string  authToken = null, + + + + string  + uniqueIDType = null, + + + + + string  + uniqueID = null, + @@ -753,6 +779,9 @@

loc(Loc): User location carrierName(string): Optional device carrier (if not provided, carrier information will be pulled from device) authToken(string): Optional authentication token for application. If none supplied, default is null. + cellID(UInt32): Optional cell tower id. If none supplied, default is 0. + uniqueIDType(string): Optional + uniqueID(string): Optional tags(Tag[]): Optional mode(FindCloudletMode): Optional. Default is PROXIMITY. PROXIMITY will just return the findCloudletReply sent by DME (Generic REST API to findcloudlet endpoint). PERFORMANCE will test all app insts deployed on the specified carrier network and return the cloudlet with the lowest latency (Note: PERFORMANCE may take some time to return). Default value if mode parameter is not supplied is PROXIMITY. @@ -762,8 +791,8 @@

-

◆ RegisterAndFindCloudlet() [2/2]

+ +

◆ RegisterAndFindCloudlet() [2/2]

@@ -960,7 +1003,7 @@

Returns
Task<VerifyLocationReply>

Example

-
verifyLocationReply = await me.VerifyLocation(fallbackDmeHost, MatchingEngine.defaultDmeRestPort, verifyLocationRequest);
+
verifyLocationReply = await me.VerifyLocation(fallbackDmeHost, MatchingEngine.defaultDmeRestPort, verifyLocationRequest);

diff --git a/docs/group__functions__dmeapis.js b/docs/group__functions__dmeapis.js index c8b5fa3f..97210bc1 100644 --- a/docs/group__functions__dmeapis.js +++ b/docs/group__functions__dmeapis.js @@ -3,7 +3,7 @@ var group__functions__dmeapis = [ "DistributedMatchEngine.MatchingEngine.CreateAppInstListRequest", "group__functions__dmeapis.html#ga8a3ddc311aa0e524cb913701258b7ba5", null ], [ "DistributedMatchEngine.MatchingEngine.CreateFindCloudletRequest", "group__functions__dmeapis.html#ga325b795e66030b2458382fd903c09783", null ], [ "DistributedMatchEngine.MatchingEngine.CreateQosPositionRequest", "group__functions__dmeapis.html#ga746f33f6351cc3fc828ad7189026a01d", null ], - [ "DistributedMatchEngine.MatchingEngine.CreateRegisterClientRequest", "group__functions__dmeapis.html#ga0508618df12de15547b706bc00563efe", null ], + [ "DistributedMatchEngine.MatchingEngine.CreateRegisterClientRequest", "group__functions__dmeapis.html#gaa9222f8a5324779b364b733e08d2f24a", null ], [ "DistributedMatchEngine.MatchingEngine.CreateVerifyLocationRequest", "group__functions__dmeapis.html#ga1adf852b870b0e6368f3808a99276a5c", null ], [ "DistributedMatchEngine.MatchingEngine.FindCloudlet", "group__functions__dmeapis.html#ga1c5858790440968e46781057c8536e4d", null ], [ "DistributedMatchEngine.MatchingEngine.FindCloudlet", "group__functions__dmeapis.html#ga16601fee6c881e9816cce92100f9d32e", null ], @@ -11,8 +11,8 @@ var group__functions__dmeapis = [ "DistributedMatchEngine.MatchingEngine.GetAppInstList", "group__functions__dmeapis.html#ga3fb993a00f47e9a576e9128431442544", null ], [ "DistributedMatchEngine.MatchingEngine.GetQosPositionKpi", "group__functions__dmeapis.html#ga5a80f5086c98999fbb2e90c7e053c069", null ], [ "DistributedMatchEngine.MatchingEngine.GetQosPositionKpi", "group__functions__dmeapis.html#gaf42d7896bf6e0602d58c0f62fde23a17", null ], - [ "DistributedMatchEngine.MatchingEngine.RegisterAndFindCloudlet", "group__functions__dmeapis.html#ga5892948a66fd2355f9d17ef3a565122f", null ], - [ "DistributedMatchEngine.MatchingEngine.RegisterAndFindCloudlet", "group__functions__dmeapis.html#ga762e0294be4c18f2d7ae1cf553d69b9c", null ], + [ "DistributedMatchEngine.MatchingEngine.RegisterAndFindCloudlet", "group__functions__dmeapis.html#gad0d5fb38cad303b15880238f7118c3b2", null ], + [ "DistributedMatchEngine.MatchingEngine.RegisterAndFindCloudlet", "group__functions__dmeapis.html#ga7a122809d05c27de4f59f8c4f733ec15", null ], [ "DistributedMatchEngine.MatchingEngine.RegisterClient", "group__functions__dmeapis.html#gae6f0da0f2b74eb2351ab5f97efcd7843", null ], [ "DistributedMatchEngine.MatchingEngine.RegisterClient", "group__functions__dmeapis.html#ga601a7acd1483ea09101dc03e18619106", null ], [ "DistributedMatchEngine.MatchingEngine.VerifyLocation", "group__functions__dmeapis.html#gab14b6f855946ab0cd8ac103563d7c306", null ], diff --git a/docs/group__functions__dmeutils.html b/docs/group__functions__dmeutils.html index af93952b..97f96e7c 100644 --- a/docs/group__functions__dmeutils.html +++ b/docs/group__functions__dmeutils.html @@ -112,6 +112,10 @@ Functions

TimeSpan DistributedMatchEngine.MatchingEngine.SetTimeout (int timeout_in_milliseconds)   +string DistributedMatchEngine.MatchingEngine.GetUniqueIDType () +  +string DistributedMatchEngine.MatchingEngine.GetUniqueID () +  string DistributedMatchEngine.MatchingEngine.GetCarrierName ()   string DistributedMatchEngine.MatchingEngine.GenerateDmeHostAddress () @@ -153,6 +157,42 @@

Returns the carrier's mcc+mnc which is mapped to a carrier in the backend (ie. 26201 -> GDDT). MCC stands for Mobile Country Code and MNC stands for Mobile Network Code. If useWifiOnly or cellular is off + wifi is up, this will return """". Empty string carrierName is the alias for any, which will search all carriers for application instances.

+

+
+ +

◆ GetUniqueID()

+ +
+
+ + + + + + + +
string DistributedMatchEngine.MatchingEngine.GetUniqueID ()
+
+

GetUniqueID

+ +
+
+ +

◆ GetUniqueIDType()

+ +
+
+ + + + + + + +
string DistributedMatchEngine.MatchingEngine.GetUniqueIDType ()
+
+

GetUniqueIDType

+
diff --git a/docs/group__functions__dmeutils.js b/docs/group__functions__dmeutils.js index 8f1ddd2e..03e7fb9c 100644 --- a/docs/group__functions__dmeutils.js +++ b/docs/group__functions__dmeutils.js @@ -2,5 +2,7 @@ var group__functions__dmeutils = [ [ "DistributedMatchEngine.MatchingEngine.GenerateDmeHostAddress", "group__functions__dmeutils.html#ga4489b0a2311aa4fe5596964eab140d26", null ], [ "DistributedMatchEngine.MatchingEngine.GetCarrierName", "group__functions__dmeutils.html#ga5b28acc2b0bf0713ef20f2891358e96e", null ], + [ "DistributedMatchEngine.MatchingEngine.GetUniqueID", "group__functions__dmeutils.html#gab99bcbc61b344d1ddb5c1b6a0933fe6d", null ], + [ "DistributedMatchEngine.MatchingEngine.GetUniqueIDType", "group__functions__dmeutils.html#gac3dc722da1f37f5246b2246c63f48c2c", null ], [ "DistributedMatchEngine.MatchingEngine.SetTimeout", "group__functions__dmeutils.html#gad826defc3bd843f58de0c2edeea02810", null ] ]; \ No newline at end of file diff --git a/docs/group__functions__getconnection.html b/docs/group__functions__getconnection.html index baebb857..226f33ee 100644 --- a/docs/group__functions__getconnection.html +++ b/docs/group__functions__getconnection.html @@ -239,7 +239,7 @@

{
FindCloudletReply reply1 = null;
-
reply1 = await me.RegisterAndFindCloudlet(dmeHost, MatchingEngine.defaultDmeRestPort,
+
reply1 = await me.RegisterAndFindCloudlet(dmeHost, MatchingEngine.defaultDmeRestPort,
orgName: orgName,
appName: appName,
appVersion: appVers,
@@ -270,7 +270,7 @@

{
Assert.Fail("HttpRequestException is " + e.Message);
}
-
MatchingEngine(CarrierInfo carrierInfo=null, NetInterface netInterface=null, DeviceInfo deviceInfo=null)
Definition: DistributedMatchEngine.cs:262
+
MatchingEngine(CarrierInfo carrierInfo=null, NetInterface netInterface=null, UniqueID uniqueID=null, DeviceInfo deviceInfo=null)
Definition: DistributedMatchEngine.cs:264
@@ -449,7 +449,7 @@

{
FindCloudletReply reply1 = null;
-
reply1 = await me.RegisterAndFindCloudlet(dmeHost, MatchingEngine.defaultDmeRestPort,
+
reply1 = await me.RegisterAndFindCloudlet(dmeHost, MatchingEngine.defaultDmeRestPort,
orgName: orgName,
appName: appName,
appVersion: appVers,
@@ -549,10 +549,10 @@

var loc = await Util.GetLocationFromDevice();
FindCloudletReply reply1 = null;
-
reply1 = await me.RegisterAndFindCloudlet(dmeHost, MatchingEngine.defaultDmeRestPort,
-
orgName: orgName,
-
appName: appName,
-
appVersion: appVers,
+
reply1 = await me.RegisterAndFindCloudlet(dmeHost, MatchingEngine.defaultDmeRestPort,
+
orgName: org_name,
+
appName: app_name,
+
appVersion: app_vers,
loc: loc);
int knownPort = 2015;
diff --git a/docs/hierarchy.html b/docs/hierarchy.html index 8bd8a3f2..4a8cfcd3 100644 --- a/docs/hierarchy.html +++ b/docs/hierarchy.html @@ -134,6 +134,8 @@  CDistributedMatchEngine.SessionCookieException  CDistributedMatchEngine.PerformanceMetrics.NetTest.Site  CDistributedMatchEngine.TokenException + CDistributedMatchEngine.UniqueID + CDistributedMatchEngine.EmptyUniqueID diff --git a/docs/interface_distributed_match_engine_1_1_unique_i_d-members.html b/docs/interface_distributed_match_engine_1_1_unique_i_d-members.html new file mode 100644 index 00000000..3120b75a --- /dev/null +++ b/docs/interface_distributed_match_engine_1_1_unique_i_d-members.html @@ -0,0 +1,130 @@ + + + + + + + + +C# SDK: Member List + + + + + + + + + + + + + + + +
+​ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
DistributedMatchEngine.UniqueID Member List
+
+
+ +

This is the complete list of members for DistributedMatchEngine.UniqueID, including all inherited members.

+ + + +
GetUniqueID() (defined in DistributedMatchEngine.UniqueID)DistributedMatchEngine.UniqueID
GetUniqueIDType() (defined in DistributedMatchEngine.UniqueID)DistributedMatchEngine.UniqueID
+
+ + + + + diff --git a/docs/interface_distributed_match_engine_1_1_unique_i_d.html b/docs/interface_distributed_match_engine_1_1_unique_i_d.html new file mode 100644 index 00000000..3a36b90d --- /dev/null +++ b/docs/interface_distributed_match_engine_1_1_unique_i_d.html @@ -0,0 +1,150 @@ + + + + + + + + +C# SDK: DistributedMatchEngine.UniqueID Interface Reference + + + + + + + + + + + + + + + +
+​ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
DistributedMatchEngine.UniqueID Interface Reference
+
+
+
+Inheritance diagram for DistributedMatchEngine.UniqueID:
+
+
+ + +DistributedMatchEngine.EmptyUniqueID + +
+ + + + + + +

+Public Member Functions

+string GetUniqueIDType ()
 
+string GetUniqueID ()
 
+

Detailed Description

+

UniqeID interface for the platform Function implemented per platform

+
+
+ + + + + diff --git a/docs/interface_distributed_match_engine_1_1_unique_i_d.png b/docs/interface_distributed_match_engine_1_1_unique_i_d.png new file mode 100644 index 0000000000000000000000000000000000000000..5005bfd2114ebe3f48751b15bd34307199f75356 GIT binary patch literal 940 zcmeAS@N?(olHy`uVBq!ia0vp^uYfp!gBeIFNK57eDTx4|5ZC|z{{xvX-h3_XKQsZz z0^RFD(0WNwNNjhujf_z54J0N+NSibvSd*&YSw#?RHEwjG& zEHFPb6 z=a!olysQs3+JC9>ZMo^Upy-~^!(U}@&yP`>Z-Q~wymEfRp9CI`4``xqwlp2 zRDa#+VJG`N-*M~wsD|vn+gD`nXS#Fwe>c~M&G2w~`*@$u=}#<-d*byQ(qCAvSbse^ zVt(^4$6q4X*cYDT<1v`0rgb0#uDp}WU=|^P56w~6OKW$>z23F%z1V6MTSwv0Np6>2 zrY^ZSC2;!N{QVxzFCRUgGk<4e+72F*@ZHt_lOAi@zL{laS3TKN>$upAuOR`mr=K}1 znpKhXC_7N~<-9&0{y^20i?^_yys&uLL){m)@~8jp|NExDytQ!$>!A&fkQh=c0LIYQ zdmdsJQ;a+22{rO+yGiA*Ni4eIde(i$;yG(vcXe?VF1)$AX!@mxwN}~fyCz#qmMWci z>Y-6$`d){#*%AI1&%6xGR&TYKa<)}HdbR9b2aZ@P2iX8ugB!_Cl&8#l)l2} zm%cMM_IAm3*&B7?$@*K5MwrIjZ+u(EzxP7PgSfS~_;PlqrM{ZA<>eE@u-VH*X1+gg z_x&oBz2V#Kw_f}3WT|%je~znlS*kBX=2}f#6188%^liB3u8@s3wa>RN^13wJG*C6u l#5crK%2$2`FyQ+y$g^`B^f<^@wF0vigQu&X%Q~loCIFgf%(wsm literal 0 HcmV?d00001 diff --git a/docs/namespace_distributed_match_engine.html b/docs/namespace_distributed_match_engine.html index 0e8640f9..b198fe72 100644 --- a/docs/namespace_distributed_match_engine.html +++ b/docs/namespace_distributed_match_engine.html @@ -129,6 +129,8 @@   class  EmptyNetInterface   +class  EmptyUniqueID +  class  FindCloudletException   class  GetConnectionException @@ -155,6 +157,8 @@   class  TokenException   +interface  UniqueID +  class  Windows10NetworkInterfaceName   diff --git a/docs/navtreeindex0.js b/docs/navtreeindex0.js index 5bb25bc1..4bb5a72c 100644 --- a/docs/navtreeindex0.js +++ b/docs/navtreeindex0.js @@ -5,6 +5,7 @@ var NAVTREEINDEX0 = "class_distributed_match_engine_1_1_empty_carrier_info.html":[1,1,0,1], "class_distributed_match_engine_1_1_empty_device_info.html":[1,1,0,2], "class_distributed_match_engine_1_1_empty_net_interface.html":[1,1,0,10], +"class_distributed_match_engine_1_1_empty_unique_i_d.html":[1,1,0,12], "class_distributed_match_engine_1_1_find_cloudlet_exception.html":[1,3,0,5], "class_distributed_match_engine_1_1_get_connection_exception.html":[1,3,1,0], "class_distributed_match_engine_1_1_http_exception.html":[1,3,0,1], @@ -38,27 +39,29 @@ var NAVTREEINDEX0 = "group__exceptions__getconnection.html":[1,3,1], "group__functiongroups.html":[1,2], "group__functions__dmeapis.html":[1,2,0], -"group__functions__dmeapis.html#ga0508618df12de15547b706bc00563efe":[1,2,0,3], "group__functions__dmeapis.html#ga16601fee6c881e9816cce92100f9d32e":[1,2,0,6], "group__functions__dmeapis.html#ga1adf852b870b0e6368f3808a99276a5c":[1,2,0,4], "group__functions__dmeapis.html#ga1c5858790440968e46781057c8536e4d":[1,2,0,5], "group__functions__dmeapis.html#ga325b795e66030b2458382fd903c09783":[1,2,0,1], "group__functions__dmeapis.html#ga3fb993a00f47e9a576e9128431442544":[1,2,0,8], -"group__functions__dmeapis.html#ga5892948a66fd2355f9d17ef3a565122f":[1,2,0,11], "group__functions__dmeapis.html#ga5a80f5086c98999fbb2e90c7e053c069":[1,2,0,9], "group__functions__dmeapis.html#ga601a7acd1483ea09101dc03e18619106":[1,2,0,14], "group__functions__dmeapis.html#ga746f33f6351cc3fc828ad7189026a01d":[1,2,0,2], -"group__functions__dmeapis.html#ga762e0294be4c18f2d7ae1cf553d69b9c":[1,2,0,12], "group__functions__dmeapis.html#ga7887c7986d1343cd1ed71f40072d035c":[1,2,0,16], +"group__functions__dmeapis.html#ga7a122809d05c27de4f59f8c4f733ec15":[1,2,0,12], "group__functions__dmeapis.html#ga8a3ddc311aa0e524cb913701258b7ba5":[1,2,0,0], +"group__functions__dmeapis.html#gaa9222f8a5324779b364b733e08d2f24a":[1,2,0,3], "group__functions__dmeapis.html#gab14b6f855946ab0cd8ac103563d7c306":[1,2,0,15], "group__functions__dmeapis.html#gac3664388a2c1249c53fcdb1a39a17ef0":[1,2,0,7], +"group__functions__dmeapis.html#gad0d5fb38cad303b15880238f7118c3b2":[1,2,0,11], "group__functions__dmeapis.html#gae6f0da0f2b74eb2351ab5f97efcd7843":[1,2,0,13], "group__functions__dmeapis.html#gaf42d7896bf6e0602d58c0f62fde23a17":[1,2,0,10], "group__functions__dmeutils.html":[1,2,1], "group__functions__dmeutils.html#ga4489b0a2311aa4fe5596964eab140d26":[1,2,1,0], "group__functions__dmeutils.html#ga5b28acc2b0bf0713ef20f2891358e96e":[1,2,1,1], -"group__functions__dmeutils.html#gad826defc3bd843f58de0c2edeea02810":[1,2,1,2], +"group__functions__dmeutils.html#gab99bcbc61b344d1ddb5c1b6a0933fe6d":[1,2,1,2], +"group__functions__dmeutils.html#gac3dc722da1f37f5246b2246c63f48c2c":[1,2,1,3], +"group__functions__dmeutils.html#gad826defc3bd843f58de0c2edeea02810":[1,2,1,4], "group__functions__getconnection.html":[1,2,2], "group__functions__getconnection.html#ga104d3d82becaf049ddfc6a3ac5c375db":[1,2,2,4], "group__functions__getconnection.html#ga37eea72d47e8318a304bffe8356dfbfd":[1,2,2,0], @@ -81,6 +84,7 @@ var NAVTREEINDEX0 = "index.html":[], "interface_distributed_match_engine_1_1_carrier_info.html":[1,1,0,0], "interface_distributed_match_engine_1_1_net_interface.html":[1,1,0,9], +"interface_distributed_match_engine_1_1_unique_i_d.html":[1,1,0,11], "modules.html":[1], "namespace_distributed_match_engine.html":[1,0,0], "namespace_distributed_match_engine_1_1_performance_metrics.html":[1,0,1], diff --git a/docs/search/all_1.js b/docs/search/all_1.js index a2b3c805..f346492a 100644 --- a/docs/search/all_1.js +++ b/docs/search/all_1.js @@ -9,7 +9,7 @@ var searchData= ['createqosprioritycreaterequest_6',['CreateQosPriorityCreateRequest',['../class_distributed_match_engine_1_1_matching_engine.html#ac0a03a12778821c4304a18c65e7007e3',1,'DistributedMatchEngine::MatchingEngine']]], ['createqosprioritydeleterequest_7',['CreateQosPriorityDeleteRequest',['../class_distributed_match_engine_1_1_matching_engine.html#a035ceac42cc33ad156b69c118ebec342',1,'DistributedMatchEngine::MatchingEngine']]], ['createqosprioritysession_8',['CreateQOSPrioritySession',['../class_distributed_match_engine_1_1_matching_engine.html#a76e6526eb5730496593c96192e001288',1,'DistributedMatchEngine.MatchingEngine.CreateQOSPrioritySession(QosPrioritySessionCreateRequest request)'],['../class_distributed_match_engine_1_1_matching_engine.html#abba3bbe0418afbe8b8291d0ba9347848',1,'DistributedMatchEngine.MatchingEngine.CreateQOSPrioritySession(string host, uint port, QosPrioritySessionCreateRequest request)']]], - ['createregisterclientrequest_9',['CreateRegisterClientRequest',['../group__functions__dmeapis.html#ga0508618df12de15547b706bc00563efe',1,'DistributedMatchEngine::MatchingEngine']]], + ['createregisterclientrequest_9',['CreateRegisterClientRequest',['../group__functions__dmeapis.html#gaa9222f8a5324779b364b733e08d2f24a',1,'DistributedMatchEngine::MatchingEngine']]], ['createurl_10',['CreateUrl',['../group__functions__getconnectionutils.html#ga7ac7bc02634716174be9dbab28118391',1,'DistributedMatchEngine::MatchingEngine']]], ['createverifylocationrequest_11',['CreateVerifyLocationRequest',['../group__functions__dmeapis.html#ga1adf852b870b0e6368f3808a99276a5c',1,'DistributedMatchEngine::MatchingEngine']]] ]; diff --git a/docs/search/all_3.js b/docs/search/all_3.js index 8759c764..aab373e3 100644 --- a/docs/search/all_3.js +++ b/docs/search/all_3.js @@ -3,7 +3,8 @@ var searchData= ['emptycarrierinfo_0',['EmptyCarrierInfo',['../class_distributed_match_engine_1_1_empty_carrier_info.html',1,'DistributedMatchEngine']]], ['emptydeviceinfo_1',['EmptyDeviceInfo',['../class_distributed_match_engine_1_1_empty_device_info.html',1,'DistributedMatchEngine']]], ['emptynetinterface_2',['EmptyNetInterface',['../class_distributed_match_engine_1_1_empty_net_interface.html',1,'DistributedMatchEngine']]], - ['enableenhancedlocationservices_3',['EnableEnhancedLocationServices',['../class_distributed_match_engine_1_1_matching_engine.html#ab8011087bfbc93ebf3b8015371d22f88',1,'DistributedMatchEngine::MatchingEngine']]], - ['enablesslprotocols_4',['EnableSSLProtocols',['../group__functions__getconnectionutils.html#gae0f12497ca7cd290c0ce07b910cbcf0c',1,'DistributedMatchEngine::MatchingEngine']]], - ['exceptions_5',['Exceptions',['../group__exceptions.html',1,'']]] + ['emptyuniqueid_3',['EmptyUniqueID',['../class_distributed_match_engine_1_1_empty_unique_i_d.html',1,'DistributedMatchEngine']]], + ['enableenhancedlocationservices_4',['EnableEnhancedLocationServices',['../class_distributed_match_engine_1_1_matching_engine.html#ab8011087bfbc93ebf3b8015371d22f88',1,'DistributedMatchEngine::MatchingEngine']]], + ['enablesslprotocols_5',['EnableSSLProtocols',['../group__functions__getconnectionutils.html#gae0f12497ca7cd290c0ce07b910cbcf0c',1,'DistributedMatchEngine::MatchingEngine']]], + ['exceptions_6',['Exceptions',['../group__exceptions.html',1,'']]] ]; diff --git a/docs/search/all_5.js b/docs/search/all_5.js index 849f9439..73eda669 100644 --- a/docs/search/all_5.js +++ b/docs/search/all_5.js @@ -21,5 +21,7 @@ var searchData= ['gettcptlsconnection_18',['GetTCPTLSConnection',['../group__functions__getconnection.html#ga104d3d82becaf049ddfc6a3ac5c375db',1,'DistributedMatchEngine.MatchingEngine.GetTCPTLSConnection(FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, bool allowSelfSignedCerts=false, IPEndPoint localEndPoint=null)'],['../class_distributed_match_engine_1_1_matching_engine.html#a037cd4cac290ab60f139733b3f1885c9',1,'DistributedMatchEngine.MatchingEngine.GetTCPTLSConnection(string host, int port, int timeoutMs, bool allowSelfSignedCerts=false, IPEndPoint localEndPoint=null)']]], ['getudpappports_19',['GetUDPAppPorts',['../group__functions__getconnectionutils.html#ga12f57ab82783b48a37979f1d6ea22edd',1,'DistributedMatchEngine::MatchingEngine']]], ['getudpconnection_20',['GetUDPConnection',['../group__functions__getconnection.html#gaa1c1ce7897cf803745c6bc0dc2448f85',1,'DistributedMatchEngine::MatchingEngine']]], - ['getwebsocketconnection_21',['GetWebsocketConnection',['../group__functions__getconnection.html#ga8bd90150cdeab7bf85d999f4176694b2',1,'DistributedMatchEngine::MatchingEngine']]] + ['getuniqueid_21',['GetUniqueID',['../group__functions__dmeutils.html#gab99bcbc61b344d1ddb5c1b6a0933fe6d',1,'DistributedMatchEngine::MatchingEngine']]], + ['getuniqueidtype_22',['GetUniqueIDType',['../group__functions__dmeutils.html#gac3dc722da1f37f5246b2246c63f48c2c',1,'DistributedMatchEngine::MatchingEngine']]], + ['getwebsocketconnection_23',['GetWebsocketConnection',['../group__functions__getconnection.html#ga8bd90150cdeab7bf85d999f4176694b2',1,'DistributedMatchEngine::MatchingEngine']]] ]; diff --git a/docs/search/all_9.js b/docs/search/all_9.js index a784ff07..0628314c 100644 --- a/docs/search/all_9.js +++ b/docs/search/all_9.js @@ -1,7 +1,7 @@ var searchData= [ ['macnetworkinterfacename_0',['MacNetworkInterfaceName',['../class_distributed_match_engine_1_1_mac_network_interface_name.html',1,'DistributedMatchEngine.MacNetworkInterfaceName'],['../class_distributed_match_engine_1_1_mac_network_interface_name.html#a8074270d34e9890ef0cbb3032a6b6b5c',1,'DistributedMatchEngine.MacNetworkInterfaceName.MacNetworkInterfaceName()']]], - ['matchingengine_1',['MatchingEngine',['../class_distributed_match_engine_1_1_matching_engine.html',1,'DistributedMatchEngine.MatchingEngine'],['../class_distributed_match_engine_1_1_matching_engine.html#aa4a3e58e5ac21ab18a9b795f6aaa6d1c',1,'DistributedMatchEngine.MatchingEngine.MatchingEngine()']]], + ['matchingengine_1',['MatchingEngine',['../class_distributed_match_engine_1_1_matching_engine.html',1,'DistributedMatchEngine.MatchingEngine'],['../class_distributed_match_engine_1_1_matching_engine.html#ac16acdd9772a7aa9d023b3d3a9e27629',1,'DistributedMatchEngine.MatchingEngine.MatchingEngine()']]], ['matchingengine_20api_20exceptions_2',['MatchingEngine API Exceptions',['../group__exceptions__dme.html',1,'']]], ['matchingengine_20apis_3',['MatchingEngine APIs',['../group__functions__dmeapis.html',1,'']]], ['matchingengine_20data_20structures_4',['MatchingEngine Data Structures',['../group__classes__datastructs.html',1,'']]], diff --git a/docs/search/all_c.js b/docs/search/all_c.js index 17d812a3..58fcba86 100644 --- a/docs/search/all_c.js +++ b/docs/search/all_c.js @@ -1,6 +1,6 @@ var searchData= [ - ['registerandfindcloudlet_0',['RegisterAndFindCloudlet',['../group__functions__dmeapis.html#ga762e0294be4c18f2d7ae1cf553d69b9c',1,'DistributedMatchEngine.MatchingEngine.RegisterAndFindCloudlet(string orgName, string appName, string appVersion, Loc loc, string carrierName="", string authToken=null, Dictionary< string, string > tags=null, FindCloudletMode mode=FindCloudletMode.PROXIMITY)'],['../group__functions__dmeapis.html#ga5892948a66fd2355f9d17ef3a565122f',1,'DistributedMatchEngine.MatchingEngine.RegisterAndFindCloudlet(string host, uint port, string orgName, string appName, string appVersion, Loc loc, string carrierName="", string authToken=null, Dictionary< string, string > tags=null, FindCloudletMode mode=FindCloudletMode.PROXIMITY)']]], + ['registerandfindcloudlet_0',['RegisterAndFindCloudlet',['../group__functions__dmeapis.html#ga7a122809d05c27de4f59f8c4f733ec15',1,'DistributedMatchEngine.MatchingEngine.RegisterAndFindCloudlet(string orgName, string appName, string appVersion, Loc loc, string carrierName="", string authToken=null, string uniqueIDType=null, string uniqueID=null, Dictionary< string, string > tags=null, FindCloudletMode mode=FindCloudletMode.PROXIMITY)'],['../group__functions__dmeapis.html#gad0d5fb38cad303b15880238f7118c3b2',1,'DistributedMatchEngine.MatchingEngine.RegisterAndFindCloudlet(string host, uint port, string orgName, string appName, string appVersion, Loc loc, string carrierName="", string authToken=null, string uniqueIDType=null, string uniqueID=null, Dictionary< string, string > tags=null, FindCloudletMode mode=FindCloudletMode.PROXIMITY)']]], ['registerclient_1',['RegisterClient',['../group__functions__dmeapis.html#gae6f0da0f2b74eb2351ab5f97efcd7843',1,'DistributedMatchEngine.MatchingEngine.RegisterClient(RegisterClientRequest request)'],['../group__functions__dmeapis.html#ga601a7acd1483ea09101dc03e18619106',1,'DistributedMatchEngine.MatchingEngine.RegisterClient(string host, uint port, RegisterClientRequest request)']]], ['registerclientexception_2',['RegisterClientException',['../class_distributed_match_engine_1_1_register_client_exception.html',1,'DistributedMatchEngine']]], ['runnettest_3',['RunNetTest',['../class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#aba56c8468b60bf5a7efc5718ac7d0300',1,'DistributedMatchEngine.PerformanceMetrics.NetTest.RunNetTest()'],['../class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#ad269d063b47600523668b260a015ce49',1,'DistributedMatchEngine.PerformanceMetrics.NetTest.RunNetTest(int numSamples)']]] diff --git a/docs/search/all_f.js b/docs/search/all_f.js index dac4d614..390fb16c 100644 --- a/docs/search/all_f.js +++ b/docs/search/all_f.js @@ -1,4 +1,5 @@ var searchData= [ - ['utility_20classes_0',['Utility Classes',['../group__classes__util.html',1,'']]] + ['uniqueid_0',['UniqueID',['../interface_distributed_match_engine_1_1_unique_i_d.html',1,'DistributedMatchEngine']]], + ['utility_20classes_1',['Utility Classes',['../group__classes__util.html',1,'']]] ]; diff --git a/docs/search/classes_3.js b/docs/search/classes_3.js index 419a4d58..b65be766 100644 --- a/docs/search/classes_3.js +++ b/docs/search/classes_3.js @@ -2,5 +2,6 @@ var searchData= [ ['emptycarrierinfo_0',['EmptyCarrierInfo',['../class_distributed_match_engine_1_1_empty_carrier_info.html',1,'DistributedMatchEngine']]], ['emptydeviceinfo_1',['EmptyDeviceInfo',['../class_distributed_match_engine_1_1_empty_device_info.html',1,'DistributedMatchEngine']]], - ['emptynetinterface_2',['EmptyNetInterface',['../class_distributed_match_engine_1_1_empty_net_interface.html',1,'DistributedMatchEngine']]] + ['emptynetinterface_2',['EmptyNetInterface',['../class_distributed_match_engine_1_1_empty_net_interface.html',1,'DistributedMatchEngine']]], + ['emptyuniqueid_3',['EmptyUniqueID',['../class_distributed_match_engine_1_1_empty_unique_i_d.html',1,'DistributedMatchEngine']]] ]; diff --git a/docs/search/classes_e.js b/docs/search/classes_e.js index 9fe0d3b7..c2508681 100644 --- a/docs/search/classes_e.js +++ b/docs/search/classes_e.js @@ -1,4 +1,4 @@ var searchData= [ - ['windows10networkinterfacename_0',['Windows10NetworkInterfaceName',['../class_distributed_match_engine_1_1_windows10_network_interface_name.html',1,'DistributedMatchEngine']]] + ['uniqueid_0',['UniqueID',['../interface_distributed_match_engine_1_1_unique_i_d.html',1,'DistributedMatchEngine']]] ]; diff --git a/docs/search/classes_f.html b/docs/search/classes_f.html new file mode 100644 index 00000000..73b281bd --- /dev/null +++ b/docs/search/classes_f.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/docs/search/classes_f.js b/docs/search/classes_f.js new file mode 100644 index 00000000..9fe0d3b7 --- /dev/null +++ b/docs/search/classes_f.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['windows10networkinterfacename_0',['Windows10NetworkInterfaceName',['../class_distributed_match_engine_1_1_windows10_network_interface_name.html',1,'DistributedMatchEngine']]] +]; diff --git a/docs/search/functions_1.js b/docs/search/functions_1.js index e6739499..eeff2e9a 100644 --- a/docs/search/functions_1.js +++ b/docs/search/functions_1.js @@ -6,7 +6,7 @@ var searchData= ['createqosprioritycreaterequest_3',['CreateQosPriorityCreateRequest',['../class_distributed_match_engine_1_1_matching_engine.html#ac0a03a12778821c4304a18c65e7007e3',1,'DistributedMatchEngine::MatchingEngine']]], ['createqosprioritydeleterequest_4',['CreateQosPriorityDeleteRequest',['../class_distributed_match_engine_1_1_matching_engine.html#a035ceac42cc33ad156b69c118ebec342',1,'DistributedMatchEngine::MatchingEngine']]], ['createqosprioritysession_5',['CreateQOSPrioritySession',['../class_distributed_match_engine_1_1_matching_engine.html#a76e6526eb5730496593c96192e001288',1,'DistributedMatchEngine.MatchingEngine.CreateQOSPrioritySession(QosPrioritySessionCreateRequest request)'],['../class_distributed_match_engine_1_1_matching_engine.html#abba3bbe0418afbe8b8291d0ba9347848',1,'DistributedMatchEngine.MatchingEngine.CreateQOSPrioritySession(string host, uint port, QosPrioritySessionCreateRequest request)']]], - ['createregisterclientrequest_6',['CreateRegisterClientRequest',['../group__functions__dmeapis.html#ga0508618df12de15547b706bc00563efe',1,'DistributedMatchEngine::MatchingEngine']]], + ['createregisterclientrequest_6',['CreateRegisterClientRequest',['../group__functions__dmeapis.html#gaa9222f8a5324779b364b733e08d2f24a',1,'DistributedMatchEngine::MatchingEngine']]], ['createurl_7',['CreateUrl',['../group__functions__getconnectionutils.html#ga7ac7bc02634716174be9dbab28118391',1,'DistributedMatchEngine::MatchingEngine']]], ['createverifylocationrequest_8',['CreateVerifyLocationRequest',['../group__functions__dmeapis.html#ga1adf852b870b0e6368f3808a99276a5c',1,'DistributedMatchEngine::MatchingEngine']]] ]; diff --git a/docs/search/functions_5.js b/docs/search/functions_5.js index 17a99e1b..2c49a311 100644 --- a/docs/search/functions_5.js +++ b/docs/search/functions_5.js @@ -17,5 +17,7 @@ var searchData= ['gettcptlsconnection_14',['GetTCPTLSConnection',['../group__functions__getconnection.html#ga104d3d82becaf049ddfc6a3ac5c375db',1,'DistributedMatchEngine.MatchingEngine.GetTCPTLSConnection(FindCloudletReply reply, AppPort appPort, int desiredPort=0, int timeoutMs=DEFAULT_GETCONNECTION_TIMEOUT_MS, bool allowSelfSignedCerts=false, IPEndPoint localEndPoint=null)'],['../class_distributed_match_engine_1_1_matching_engine.html#a037cd4cac290ab60f139733b3f1885c9',1,'DistributedMatchEngine.MatchingEngine.GetTCPTLSConnection(string host, int port, int timeoutMs, bool allowSelfSignedCerts=false, IPEndPoint localEndPoint=null)']]], ['getudpappports_15',['GetUDPAppPorts',['../group__functions__getconnectionutils.html#ga12f57ab82783b48a37979f1d6ea22edd',1,'DistributedMatchEngine::MatchingEngine']]], ['getudpconnection_16',['GetUDPConnection',['../group__functions__getconnection.html#gaa1c1ce7897cf803745c6bc0dc2448f85',1,'DistributedMatchEngine::MatchingEngine']]], - ['getwebsocketconnection_17',['GetWebsocketConnection',['../group__functions__getconnection.html#ga8bd90150cdeab7bf85d999f4176694b2',1,'DistributedMatchEngine::MatchingEngine']]] + ['getuniqueid_17',['GetUniqueID',['../group__functions__dmeutils.html#gab99bcbc61b344d1ddb5c1b6a0933fe6d',1,'DistributedMatchEngine::MatchingEngine']]], + ['getuniqueidtype_18',['GetUniqueIDType',['../group__functions__dmeutils.html#gac3dc722da1f37f5246b2246c63f48c2c',1,'DistributedMatchEngine::MatchingEngine']]], + ['getwebsocketconnection_19',['GetWebsocketConnection',['../group__functions__getconnection.html#ga8bd90150cdeab7bf85d999f4176694b2',1,'DistributedMatchEngine::MatchingEngine']]] ]; diff --git a/docs/search/functions_6.js b/docs/search/functions_6.js index c8288d99..fe5925c6 100644 --- a/docs/search/functions_6.js +++ b/docs/search/functions_6.js @@ -1,5 +1,5 @@ var searchData= [ ['macnetworkinterfacename_0',['MacNetworkInterfaceName',['../class_distributed_match_engine_1_1_mac_network_interface_name.html#a8074270d34e9890ef0cbb3032a6b6b5c',1,'DistributedMatchEngine::MacNetworkInterfaceName']]], - ['matchingengine_1',['MatchingEngine',['../class_distributed_match_engine_1_1_matching_engine.html#aa4a3e58e5ac21ab18a9b795f6aaa6d1c',1,'DistributedMatchEngine::MatchingEngine']]] + ['matchingengine_1',['MatchingEngine',['../class_distributed_match_engine_1_1_matching_engine.html#ac16acdd9772a7aa9d023b3d3a9e27629',1,'DistributedMatchEngine::MatchingEngine']]] ]; diff --git a/docs/search/functions_8.js b/docs/search/functions_8.js index d99d5c5b..9155487f 100644 --- a/docs/search/functions_8.js +++ b/docs/search/functions_8.js @@ -1,6 +1,6 @@ var searchData= [ - ['registerandfindcloudlet_0',['RegisterAndFindCloudlet',['../group__functions__dmeapis.html#ga762e0294be4c18f2d7ae1cf553d69b9c',1,'DistributedMatchEngine.MatchingEngine.RegisterAndFindCloudlet(string orgName, string appName, string appVersion, Loc loc, string carrierName="", string authToken=null, Dictionary< string, string > tags=null, FindCloudletMode mode=FindCloudletMode.PROXIMITY)'],['../group__functions__dmeapis.html#ga5892948a66fd2355f9d17ef3a565122f',1,'DistributedMatchEngine.MatchingEngine.RegisterAndFindCloudlet(string host, uint port, string orgName, string appName, string appVersion, Loc loc, string carrierName="", string authToken=null, Dictionary< string, string > tags=null, FindCloudletMode mode=FindCloudletMode.PROXIMITY)']]], + ['registerandfindcloudlet_0',['RegisterAndFindCloudlet',['../group__functions__dmeapis.html#ga7a122809d05c27de4f59f8c4f733ec15',1,'DistributedMatchEngine.MatchingEngine.RegisterAndFindCloudlet(string orgName, string appName, string appVersion, Loc loc, string carrierName="", string authToken=null, string uniqueIDType=null, string uniqueID=null, Dictionary< string, string > tags=null, FindCloudletMode mode=FindCloudletMode.PROXIMITY)'],['../group__functions__dmeapis.html#gad0d5fb38cad303b15880238f7118c3b2',1,'DistributedMatchEngine.MatchingEngine.RegisterAndFindCloudlet(string host, uint port, string orgName, string appName, string appVersion, Loc loc, string carrierName="", string authToken=null, string uniqueIDType=null, string uniqueID=null, Dictionary< string, string > tags=null, FindCloudletMode mode=FindCloudletMode.PROXIMITY)']]], ['registerclient_1',['RegisterClient',['../group__functions__dmeapis.html#gae6f0da0f2b74eb2351ab5f97efcd7843',1,'DistributedMatchEngine.MatchingEngine.RegisterClient(RegisterClientRequest request)'],['../group__functions__dmeapis.html#ga601a7acd1483ea09101dc03e18619106',1,'DistributedMatchEngine.MatchingEngine.RegisterClient(string host, uint port, RegisterClientRequest request)']]], ['runnettest_2',['RunNetTest',['../class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#aba56c8468b60bf5a7efc5718ac7d0300',1,'DistributedMatchEngine.PerformanceMetrics.NetTest.RunNetTest()'],['../class_distributed_match_engine_1_1_performance_metrics_1_1_net_test.html#ad269d063b47600523668b260a015ce49',1,'DistributedMatchEngine.PerformanceMetrics.NetTest.RunNetTest(int numSamples)']]] ]; diff --git a/docs/search/searchdata.js b/docs/search/searchdata.js index 890157cd..41f17a55 100644 --- a/docs/search/searchdata.js +++ b/docs/search/searchdata.js @@ -1,7 +1,7 @@ var indexSectionsWithContent = { 0: "acdefghilmnprstuvw", - 1: "acdefghilmnrstw", + 1: "acdefghilmnrstuw", 2: "d", 3: "acdefgmnrsv", 4: "ad", From 75c52e74493cf1c8186a19f7b250dffb0e75f3a5 Mon Sep 17 00:00:00 2001 From: Ahmed Schrute Date: Fri, 18 Mar 2022 09:48:44 -0700 Subject: [PATCH 22/25] docs github action --- .github/workflows/doc_update.yml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 .github/workflows/doc_update.yml diff --git a/.github/workflows/doc_update.yml b/.github/workflows/doc_update.yml new file mode 100644 index 00000000..d371132b --- /dev/null +++ b/.github/workflows/doc_update.yml @@ -0,0 +1,28 @@ + + +name: MobiledgeX C# Docs Update + +on: [push] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Check out Repo + uses: actions/checkout@v2 + - name: Update Docs + uses: mattnotmitt/doxygen-action@v1.9.2 + with: + working-directory: 'rest/' + doxyfile-path: './Doxygen/Doxyfile' + - name: Move generated docs to docs directory + run: | + sudo rm -rf docs/* + sudo mv rest/html docs/ + shell: bash + - name: Commit Doxygen Updates + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: Docs Automated Updates + branch: automated-docs + push_options: '--force' \ No newline at end of file From 317802135ddb58eaf1d28a753512ceaa73ba1076 Mon Sep 17 00:00:00 2001 From: Ahmed Schrute Date: Fri, 18 Mar 2022 09:53:12 -0700 Subject: [PATCH 23/25] Move html files into docs directory --- .github/workflows/doc_update.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/doc_update.yml b/.github/workflows/doc_update.yml index d371132b..da726a97 100644 --- a/.github/workflows/doc_update.yml +++ b/.github/workflows/doc_update.yml @@ -18,7 +18,7 @@ jobs: - name: Move generated docs to docs directory run: | sudo rm -rf docs/* - sudo mv rest/html docs/ + sudo mv rest/html/ docs/ shell: bash - name: Commit Doxygen Updates uses: stefanzweifel/git-auto-commit-action@v4 From 85842b2f6c3ac69b8166c3a811688059cfc41681 Mon Sep 17 00:00:00 2001 From: Ahmed Schrute Date: Fri, 18 Mar 2022 10:11:59 -0700 Subject: [PATCH 24/25] On release > update docs > commit to master --- .github/workflows/doc_update.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/doc_update.yml b/.github/workflows/doc_update.yml index da726a97..c9131804 100644 --- a/.github/workflows/doc_update.yml +++ b/.github/workflows/doc_update.yml @@ -2,7 +2,7 @@ name: MobiledgeX C# Docs Update -on: [push] +on: [release] jobs: build: @@ -24,5 +24,5 @@ jobs: uses: stefanzweifel/git-auto-commit-action@v4 with: commit_message: Docs Automated Updates - branch: automated-docs + branch: master push_options: '--force' \ No newline at end of file From 008496cbcd3e01edbfd867c5a73363c8213448bf Mon Sep 17 00:00:00 2001 From: Garner Lee <1672745+lgarner@users.noreply.github.com> Date: Fri, 25 Mar 2022 16:29:12 -0700 Subject: [PATCH 25/25] Third Party Licenses tool and generator for gRPC and REST. --- grpc/Makefile | 5 +- grpc/THIRD_PARTY_LICENSES.txt | 92 +++++++++++++++++++++++++++++++++++ rest/Makefile | 6 ++- rest/THIRD_PARTY_LICENSES.txt | 73 +++++++++++++++++++++++++++ 4 files changed, 174 insertions(+), 2 deletions(-) create mode 100644 grpc/THIRD_PARTY_LICENSES.txt create mode 100644 rest/THIRD_PARTY_LICENSES.txt diff --git a/grpc/Makefile b/grpc/Makefile index f6d50023..4f722333 100755 --- a/grpc/Makefile +++ b/grpc/Makefile @@ -57,7 +57,7 @@ get-grpc-tools: packageRestore: nuget restore -build-all: build-proto build-debug build-release +build-all: build-proto build-debug build-release third-party-licenses build-proto: @echo Absolute Path for Proto files are: $(ABSOLUTEPATH) @@ -81,6 +81,9 @@ publish: echo "Publish command will pause for password if you don't set the Artifactory publish key first..." $(shell nuget push $(BINOUT)/Release/Mobiledgex.MatchingEngineGrpc.$(GRPC_SDK_VERSION).nupkg -Source $(NUGET_RELEASE_SERVER) >> $(PUBLISHLOG)) +third-party-licenses: + # dotnet tool install --global dotnet-project-licenses to install the tool. + dotnet-project-licenses -i MatchingEngineGrpc --include-transitive > THIRD_PARTY_LICENSES.txt clean: ifneq ("$(APPLIBBASE)", "/bin") diff --git a/grpc/THIRD_PARTY_LICENSES.txt b/grpc/THIRD_PARTY_LICENSES.txt new file mode 100644 index 00000000..0bcd2275 --- /dev/null +++ b/grpc/THIRD_PARTY_LICENSES.txt @@ -0,0 +1,92 @@ + +Project Reference(s) Analysis... + +References: + | Reference | Version | License Type | License | + |------------------------------------------------------------------------------------------------------------------------------------------------| + | Google.Protobuf | 3.8.0 | | https://github.com/protocolbuffers/protobuf/blob/master/LICENSE | + | Grpc | 2.26.0 | Apache-2.0 | https://licenses.nuget.org/Apache-2.0 | + | Grpc.Core | 2.26.0 | Apache-2.0 | https://licenses.nuget.org/Apache-2.0 | + | Grpc.Core.Api | 2.26.0 | Apache-2.0 | https://licenses.nuget.org/Apache-2.0 | + | Microsoft.NETCore.Platforms | 1.1.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | Microsoft.NETCore.Platforms | 1.0.1 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | Microsoft.NETCore.Targets | 1.1.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | Microsoft.NETCore.Targets | 1.0.1 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | Microsoft.Win32.Primitives | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | NETStandard.Library | 1.6.1 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | runtime.native.System | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | runtime.native.System.IO.Compression | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | runtime.native.System.Net.Http | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | runtime.native.System.Security.Cryptography.Apple | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | runtime.native.System.Security.Cryptography.OpenSsl | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.AppContext | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Buffers | 4.4.0 | MIT | https://github.com/dotnet/corefx/blob/master/LICENSE.TXT | + | System.Buffers | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Collections | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Collections.Concurrent | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Console | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Diagnostics.Contracts | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Diagnostics.Debug | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Diagnostics.DiagnosticSource | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Diagnostics.Tools | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Diagnostics.Tracing | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Globalization | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Globalization.Calendars | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Globalization.Extensions | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.IO | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.IO | 4.1.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.IO.Compression | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.IO.Compression.ZipFile | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.IO.FileSystem | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.IO.FileSystem.Primitives | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Linq | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Linq.Expressions | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Memory | 4.5.3 | MIT | https://github.com/dotnet/corefx/blob/master/LICENSE.TXT | + | System.Memory | 4.5.2 | MIT | https://github.com/dotnet/corefx/blob/master/LICENSE.TXT | + | System.Net.Http | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Net.Primitives | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Net.Sockets | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Numerics.Vectors | 4.4.0 | MIT | https://github.com/dotnet/corefx/blob/master/LICENSE.TXT | + | System.ObjectModel | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Reflection | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Reflection | 4.1.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Reflection.Emit | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Reflection.Emit.ILGeneration | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Reflection.Emit.Lightweight | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Reflection.Extensions | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Reflection.Primitives | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Reflection.Primitives | 4.0.1 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Reflection.TypeExtensions | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Resources.ResourceManager | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Runtime | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Runtime | 4.1.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Runtime.CompilerServices.Unsafe | 4.5.2 | MIT | https://github.com/dotnet/corefx/blob/master/LICENSE.TXT | + | System.Runtime.Extensions | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Runtime.Handles | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Runtime.Handles | 4.0.1 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Runtime.InteropServices | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Runtime.InteropServices.RuntimeInformation | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Runtime.Loader | 4.0.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Runtime.Numerics | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Runtime.WindowsRuntime | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Security.Cryptography.Algorithms | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Security.Cryptography.Cng | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Security.Cryptography.Csp | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Security.Cryptography.Encoding | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Security.Cryptography.OpenSsl | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Security.Cryptography.Primitives | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Security.Cryptography.X509Certificates | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Text.Encoding | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Text.Encoding | 4.0.11 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Text.Encoding.Extensions | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Text.RegularExpressions | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Threading | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Threading.Tasks | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Threading.Tasks | 4.0.11 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Threading.Tasks.Extensions | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Threading.Thread | 4.0.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Threading.ThreadPool | 4.0.10 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Threading.Timer | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Xml.ReaderWriter | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Xml.XDocument | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + diff --git a/rest/Makefile b/rest/Makefile index 5ecc27ff..48faf59d 100755 --- a/rest/Makefile +++ b/rest/Makefile @@ -33,7 +33,7 @@ all: packageRestore build-all generate-doxygen packageRestore: dotnet restore -build-all: build-debug build-release +build-all: build-debug build-release third-party-licenses build-debug: @echo Making Debug Library... @@ -56,6 +56,10 @@ publish: @echo "Publish command will pause for password if you don't set the Artifactory publish key first..." $(shell nuget push $(BINOUT)/Release/Mobiledgex.MatchingEngineSDKRestLibrary.$(REST_SDK_VERSION).nupkg -Source $(NUGET_RELEASE_SERVER) >> $(PUBLISHLOG)) +third-party-licenses: + # dotnet tool install --global dotnet-project-licenses to install the tool. + dotnet-project-licenses -i MatchingEngineSDKRestLibrary --include-transitive > THIRD_PARTY_LICENSES.txt + clean: ifneq ("$(BINOUT)", "/lib") rm -rf $(BINOUT) diff --git a/rest/THIRD_PARTY_LICENSES.txt b/rest/THIRD_PARTY_LICENSES.txt new file mode 100644 index 00000000..4fb49c7c --- /dev/null +++ b/rest/THIRD_PARTY_LICENSES.txt @@ -0,0 +1,73 @@ + +Project Reference(s) Analysis... + +References: + | Reference | Version | License Type | License | + |--------------------------------------------------------------------------------------------------------------------------------------------------------------| + | Microsoft.NETCore.Platforms | 1.1.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | Microsoft.NETCore.Targets | 1.1.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | Microsoft.Win32.Primitives | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | NETStandard.Library | 1.6.1 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | NuGet.Build.Packaging | 0.2.2 | | https://raw.githubusercontent.com/NuGet/NuGet.Build.Packaging/dev/LICENSE.txt | + | runtime.native.System | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | runtime.native.System.IO.Compression | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | runtime.native.System.Net.Http | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | runtime.native.System.Security.Cryptography.Apple | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | runtime.native.System.Security.Cryptography.OpenSsl | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.AppContext | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Buffers | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Collections | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Collections.Concurrent | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Console | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Diagnostics.Contracts | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Diagnostics.Debug | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Diagnostics.DiagnosticSource | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Diagnostics.Tools | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Diagnostics.Tracing | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Globalization | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Globalization.Calendars | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Globalization.Extensions | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.IO | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.IO.Compression | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.IO.Compression.ZipFile | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.IO.FileSystem | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.IO.FileSystem.Primitives | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Json | 4.7.1 | MIT | https://licenses.nuget.org/MIT | + | System.Linq | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Linq.Expressions | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Net.Http | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Net.Primitives | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Net.Sockets | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.ObjectModel | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Reflection | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Reflection.Emit | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Reflection.Emit.ILGeneration | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Reflection.Emit.Lightweight | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Reflection.Extensions | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Reflection.Primitives | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Reflection.TypeExtensions | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Resources.ResourceManager | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Runtime | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Runtime.Extensions | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Runtime.Handles | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Runtime.InteropServices | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Runtime.InteropServices.RuntimeInformation | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Runtime.Numerics | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Runtime.WindowsRuntime | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Security.Cryptography.Algorithms | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Security.Cryptography.Cng | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Security.Cryptography.Csp | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Security.Cryptography.Encoding | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Security.Cryptography.OpenSsl | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Security.Cryptography.Primitives | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Security.Cryptography.X509Certificates | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Text.Encoding | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Text.Encoding.Extensions | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Text.RegularExpressions | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Threading | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Threading.Tasks | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Threading.Tasks.Extensions | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Threading.Timer | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Xml.ReaderWriter | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | + | System.Xml.XDocument | 4.3.0 | MS-EULA | http://go.microsoft.com/fwlink/?LinkId=329770 | +