MatchingEngine APIs

Functions

synchronized CompletableFuture< EdgeEventsConnectioncom.mobiledgex.matchingengine.MatchingEngine.getEdgeEventsConnectionFuture ()
 
synchronized void com.mobiledgex.matchingengine.MatchingEngine.close ()
 
String com.mobiledgex.matchingengine.MatchingEngine.getLocalIpv4 ()
 
String com.mobiledgex.matchingengine.MatchingEngine.getLocalIpAny ()
 
RegisterClientRequest.Builder com.mobiledgex.matchingengine.MatchingEngine.createDefaultRegisterClientRequest (Context context, String organizationName) throws PackageManager.NameNotFoundException
 
RegisterClientRequest com.mobiledgex.matchingengine.MatchingEngine.createRegisterClientRequest (Context context, String organizationName, String applicationName, String appVersion, String authToken, String uniqueIdType, String uniqueId, Map< String, String > tags) throws PackageManager.NameNotFoundException
 
VerifyLocationRequest.Builder com.mobiledgex.matchingengine.MatchingEngine.createDefaultVerifyLocationRequest (Context context, android.location.Location location)
 
AppClient.FindCloudletRequest.Builder com.mobiledgex.matchingengine.MatchingEngine.createDefaultFindCloudletRequest (Context context, Location location)
 
AppClient.GetLocationRequest.Builder com.mobiledgex.matchingengine.MatchingEngine.createDefaultGetLocationRequest (Context context)
 
AppClient.AppInstListRequest.Builder com.mobiledgex.matchingengine.MatchingEngine.createDefaultAppInstListRequest (Context context, android.location.Location location)
 
AppClient.QosPrioritySessionCreateRequest.Builder com.mobiledgex.matchingengine.MatchingEngine.createDefaultQosPrioritySessionCreateRequest (Context context)
 
AppClient.QosPrioritySessionDeleteRequest.Builder com.mobiledgex.matchingengine.MatchingEngine.createDefaultQosPrioritySessionDeleteRequest (Context context)
 
AppClient.DynamicLocGroupRequest.Builder com.mobiledgex.matchingengine.MatchingEngine.createDefaultDynamicLocGroupRequest (Context context, DynamicLocGroupRequest.DlgCommType commType)
 
AppClient.QosPositionRequest.Builder com.mobiledgex.matchingengine.MatchingEngine.createDefaultQosPositionRequest (List< QosPosition > requests, int lte_category, BandSelection band_selection)
 
RegisterClientReply com.mobiledgex.matchingengine.MatchingEngine.registerClient (RegisterClientRequest request, long timeoutInMilliseconds) throws DmeDnsException, StatusRuntimeException, InterruptedException, ExecutionException
 
RegisterClientReply com.mobiledgex.matchingengine.MatchingEngine.registerClient (RegisterClientRequest request, String host, int port, long timeoutInMilliseconds) throws StatusRuntimeException, InterruptedException, ExecutionException
 
Future< RegisterClientReply > com.mobiledgex.matchingengine.MatchingEngine.registerClientFuture (RegisterClientRequest request, long timeoutInMilliseconds) throws DmeDnsException
 
Future< RegisterClientReply > com.mobiledgex.matchingengine.MatchingEngine.registerClientFuture (RegisterClientRequest request, String host, int port, long timeoutInMilliseconds)
 
FindCloudletReply com.mobiledgex.matchingengine.MatchingEngine.findCloudlet (FindCloudletRequest request, long timeoutInMilliseconds) throws DmeDnsException, StatusRuntimeException, InterruptedException, ExecutionException
 
FindCloudletReply com.mobiledgex.matchingengine.MatchingEngine.findCloudlet (FindCloudletRequest request, long timeoutInMilliseconds, FindCloudletMode mode) throws DmeDnsException, StatusRuntimeException, InterruptedException, ExecutionException
 
FindCloudletReply com.mobiledgex.matchingengine.MatchingEngine.findCloudlet (FindCloudletRequest request, String host, int port, long timeoutInMilliseconds) throws StatusRuntimeException, InterruptedException, ExecutionException
 
FindCloudletReply com.mobiledgex.matchingengine.MatchingEngine.findCloudlet (FindCloudletRequest request, String host, int port, long timeoutInMilliseconds, FindCloudletMode mode) throws StatusRuntimeException, InterruptedException, ExecutionException
 
Future< FindCloudletReply > com.mobiledgex.matchingengine.MatchingEngine.findCloudletFuture (FindCloudletRequest request, long timeoutInMilliseconds) throws DmeDnsException
 
Future< FindCloudletReply > com.mobiledgex.matchingengine.MatchingEngine.findCloudletFuture (FindCloudletRequest request, long timeoutInMilliseconds, FindCloudletMode mode) throws DmeDnsException
 
Future< FindCloudletReply > com.mobiledgex.matchingengine.MatchingEngine.findCloudletFuture (FindCloudletRequest request, String host, int port, long timeoutInMilliseconds)
 
Future< FindCloudletReply > com.mobiledgex.matchingengine.MatchingEngine.findCloudletFuture (FindCloudletRequest request, String host, int port, long timeoutInMilliseconds, FindCloudletMode mode)
 
VerifyLocationReply com.mobiledgex.matchingengine.MatchingEngine.verifyLocation (VerifyLocationRequest request, long timeoutInMilliseconds) throws DmeDnsException, StatusRuntimeException, InterruptedException, IOException, ExecutionException
 
VerifyLocationReply com.mobiledgex.matchingengine.MatchingEngine.verifyLocation (VerifyLocationRequest request, String host, int port, long timeoutInMilliseconds) throws StatusRuntimeException, InterruptedException, IOException, ExecutionException
 
Future< VerifyLocationReply > com.mobiledgex.matchingengine.MatchingEngine.verifyLocationFuture (VerifyLocationRequest request, long timeoutInMilliseconds) throws DmeDnsException
 
Future< VerifyLocationReply > com.mobiledgex.matchingengine.MatchingEngine.verifyLocationFuture (VerifyLocationRequest request, String host, int port, long timeoutInMilliseconds)
 
AppInstListReply com.mobiledgex.matchingengine.MatchingEngine.getAppInstList (AppInstListRequest request, long timeoutInMilliseconds) throws DmeDnsException, InterruptedException, ExecutionException
 
AppInstListReply com.mobiledgex.matchingengine.MatchingEngine.getAppInstList (AppInstListRequest request, String host, int port, long timeoutInMilliseconds) throws InterruptedException, ExecutionException
 
Future< AppInstListReply > com.mobiledgex.matchingengine.MatchingEngine.getAppInstListFuture (AppInstListRequest request, long timeoutInMilliseconds) throws DmeDnsException
 
Future< AppInstListReply > com.mobiledgex.matchingengine.MatchingEngine.getAppInstListFuture (AppInstListRequest request, String host, int port, long timeoutInMilliseconds)
 
ChannelIterator< QosPositionKpiReply > com.mobiledgex.matchingengine.MatchingEngine.getQosPositionKpi (QosPositionRequest request, long timeoutInMilliseconds) throws DmeDnsException, InterruptedException, ExecutionException
 
Future< ChannelIterator< QosPositionKpiReply > > com.mobiledgex.matchingengine.MatchingEngine.getQosPositionKpiFuture (QosPositionRequest request, long timeoutInMilliseconds) throws DmeDnsException
 
ChannelIterator< QosPositionKpiReply > com.mobiledgex.matchingengine.MatchingEngine.getQosPositionKpi (QosPositionRequest request, String host, int port, long timeoutInMilliseconds) throws InterruptedException, ExecutionException
 
Future< ChannelIterator< QosPositionKpiReply > > com.mobiledgex.matchingengine.MatchingEngine.getQosPositionKpiFuture (QosPositionRequest request, String host, int port, long timeoutInMilliseconds)
 
QosPrioritySessionReply com.mobiledgex.matchingengine.MatchingEngine.qosPrioritySessionCreate (QosPrioritySessionCreateRequest request, String host, int port, long timeoutInMilliseconds) throws ExecutionException, InterruptedException
 
QosPrioritySessionReply com.mobiledgex.matchingengine.MatchingEngine.qosPrioritySessionCreate (QosPrioritySessionCreateRequest request, long timeoutInMilliseconds) throws ExecutionException, InterruptedException
 
Future< QosPrioritySessionReply > com.mobiledgex.matchingengine.MatchingEngine.qosPrioritySessionCreateFuture (QosPrioritySessionCreateRequest request, long timeoutInMilliseconds)
 
Future< QosPrioritySessionReply > com.mobiledgex.matchingengine.MatchingEngine.qosPrioritySessionCreateFuture (QosPrioritySessionCreateRequest request, String host, int port, long timeoutInMilliseconds)
 
QosPrioritySessionDeleteReply com.mobiledgex.matchingengine.MatchingEngine.qosPrioritySessionDelete (QosPrioritySessionDeleteRequest request, String host, int port, long timeoutInMilliseconds) throws ExecutionException, InterruptedException
 
QosPrioritySessionDeleteReply com.mobiledgex.matchingengine.MatchingEngine.qosPrioritySessionDelete (QosPrioritySessionDeleteRequest request, long timeoutInMilliseconds) throws ExecutionException, InterruptedException
 
Future< QosPrioritySessionDeleteReply > com.mobiledgex.matchingengine.MatchingEngine.qosPrioritySessionDeleteFuture (QosPrioritySessionDeleteRequest request, String host, int port, long timeoutInMilliseconds)
 
Future< QosPrioritySessionDeleteReply > com.mobiledgex.matchingengine.MatchingEngine.qosPrioritySessionDeleteFuture (QosPrioritySessionDeleteRequest request, long timeoutInMilliseconds)
 
Future< FindCloudletReply > com.mobiledgex.matchingengine.MatchingEngine.registerAndFindCloudlet (final Context context, final String organizationName, final String applicationName, final String appVersion, final Location location, final String authToken, final Map< String, String > tags, final FindCloudletMode mode)
 
Future< FindCloudletReply > com.mobiledgex.matchingengine.MatchingEngine.registerAndFindCloudlet (final Context context, final String organizationName, final String applicationName, final String appVersion, final Location location, final String authToken, final String uniqueIdType, final String uniqueId, final Map< String, String > tags, final FindCloudletMode mode)
 
Future< FindCloudletReply > com.mobiledgex.matchingengine.MatchingEngine.registerAndFindCloudlet (final Context context, final String host, final int port, final String organizationName, final String applicationName, final String appVersion, final Location location, final String authToken, final String uniqueIdType, final String uniqueId, final Map< String, String > tags, final FindCloudletMode mode)
 

Detailed Description

Function Documentation

◆ close()

synchronized void com.mobiledgex.matchingengine.MatchingEngine.close ( )

MatchingEngine contains some long lived resources. When done, call close() to free them cleanly.

◆ createDefaultAppInstListRequest()

AppClient.AppInstListRequest.Builder com.mobiledgex.matchingengine.MatchingEngine.createDefaultAppInstListRequest ( Context  context,
android.location.Location  location 
)

Returns a builder for AppInstListRequest. Call build() after setting additional optional fields like Tags.

Parameters
context(android.content.Context)
location(android.location.Location)
Returns
AppInstListRequest.Builder

Example

AppClient.AppInstListRequest appInstListRequest = me.createDefaultAppInstListRequest(context, location).build();

◆ createDefaultFindCloudletRequest()

AppClient.FindCloudletRequest.Builder com.mobiledgex.matchingengine.MatchingEngine.createDefaultFindCloudletRequest ( Context  context,
Location  location 
)

Creates a Default FindCloudletRequest. If VersionName or AppName is missing (test code), the app will need to fill this in before sending to the server.

Parameters
context(android.content.Context)
location(android.location.Location)
Returns
FindCloudletRequest.Builder
Exceptions
PackageManager.NameNotFoundException

Example

AppClient.FindCloudletRequest findCloudletRequest = me.createDefaultFindCloudletRequest(context, location)
.build();

◆ createDefaultQosPositionRequest()

AppClient.QosPositionRequest.Builder com.mobiledgex.matchingengine.MatchingEngine.createDefaultQosPositionRequest ( List< QosPosition >  requests,
int  lte_category,
BandSelection  band_selection 
)

Returns a builder for QosPositionRequest. Call build() after setting additional optional fields like Tags.

Parameters
requests(List<QosPosition>): List of locations to get Qos
lte_category(int): Optional
band_selection(BandSelection): Optional
Returns
QosPositionRequest.Builder

Example

AppClient.QosPositionRequest request = me.createDefaultQosPositionRequest(kpiRequests, 0, null).build();

◆ createDefaultQosPrioritySessionCreateRequest()

AppClient.QosPrioritySessionCreateRequest.Builder com.mobiledgex.matchingengine.MatchingEngine.createDefaultQosPrioritySessionCreateRequest ( Context  context)

Returns a builder for QosPrioritySessionCreateRequest. Call build() after setting additional optional fields like IPs and ports.

Parameters
context(android.content.Context)
Returns
QosPrioritySessionCreateRequest.Builder

Example

AppClient.AppInstListRequest appInstListRequest = me.createDefaultAppInstListRequest(context, location).build();

◆ createDefaultQosPrioritySessionDeleteRequest()

AppClient.QosPrioritySessionDeleteRequest.Builder com.mobiledgex.matchingengine.MatchingEngine.createDefaultQosPrioritySessionDeleteRequest ( Context  context)

Returns a builder for QosPrioritySessionDeleteRequest. Call build() after setting additional optional fields like session ID and profile name.

Parameters
context(android.content.Context)
Returns
QosPrioritySessionDeleteRequest.Builder

Example

AppClient.AppInstListRequest appInstListRequest = me.createDefaultAppInstListRequest(context, location).build();

◆ createDefaultRegisterClientRequest()

RegisterClientRequest.Builder com.mobiledgex.matchingengine.MatchingEngine.createDefaultRegisterClientRequest ( Context  context,
String  organizationName 
) throws PackageManager.NameNotFoundException

Returns a builder for RegisterClientRequest. Call build() after setting additional optional fields like AuthToken or Tags.

Parameters
context(android.content.Context)
organizationName(String)
Returns
RegisterClientRequest.Builder
Exceptions
PackageManager.NameNotFoundException

Example

AppClient.RegisterClientRequest registerClientRequest = me.createDefaultRegisterClientRequest(context, organizationName).build();

◆ createDefaultVerifyLocationRequest()

VerifyLocationRequest.Builder com.mobiledgex.matchingengine.MatchingEngine.createDefaultVerifyLocationRequest ( Context  context,
android.location.Location  location 
)

Returns a builder for VerifyLocationRequest. Call build() after setting additional optional fields like Tags.

Parameters
context(android.content.Context)
location(android.location.Location)
Returns
VerifyLocationRequest.Builder

Example

AppClient.VerifyLocationRequest verifyLocationRequest = me.createDefaultVerifyLocationRequest(context, location).build();

◆ findCloudlet() [1/4]

FindCloudletReply com.mobiledgex.matchingengine.MatchingEngine.findCloudlet ( FindCloudletRequest  request,
long  timeoutInMilliseconds 
) throws DmeDnsException, StatusRuntimeException, InterruptedException, ExecutionException

findCloudlet finds the closest cloudlet instance as per request.

Parameters
request
timeoutInMilliseconds
Returns
cloudlet URIs
Exceptions
StatusRuntimeException
InterruptedException
ExecutionException

Example

findCloudletReply1 = me.findCloudlet(findCloudletRequest, GRPC_TIMEOUT_MS);

◆ findCloudlet() [2/4]

FindCloudletReply com.mobiledgex.matchingengine.MatchingEngine.findCloudlet ( FindCloudletRequest  request,
long  timeoutInMilliseconds,
FindCloudletMode  mode 
) throws DmeDnsException, StatusRuntimeException, InterruptedException, ExecutionException

findCloudlet finds the closest cloudlet instance as per request. FindCloudlet returns information needed for the client app to connect to an application backend deployed through MobiledgeX. If there is an application backend instance found, FindCloudetReply will contain the fqdn of the application backend and an array of AppPorts (with information specific to each application backend endpoint)

Parameters
request(FindCloudletRequest)
timeoutInMilliseconds(long)
mode(FindCloudletMode)
Returns
FindCloudletReply: cloudlet URIs
Exceptions
StatusRuntimeException
InterruptedException
ExecutionException

◆ findCloudlet() [3/4]

FindCloudletReply com.mobiledgex.matchingengine.MatchingEngine.findCloudlet ( FindCloudletRequest  request,
String  host,
int  port,
long  timeoutInMilliseconds 
) throws StatusRuntimeException, InterruptedException, ExecutionException

findCloudlet finds the closest cloudlet instance as per request. FindCloudlet overload with hardcoded DME host and port. Only use for testing.

Parameters
request(FindCloudletRequest)
host(String): Distributed Matching Engine hostname
port(int): Distributed Matching Engine port
timeoutInMilliseconds(long)
Returns
FindCloudletReply: cloudlet URIs
Exceptions
StatusRuntimeException

Example

findCloudletReply1 = me.findCloudlet(findCloudletRequest, hostOverride, portOverride, GRPC_TIMEOUT_MS);

◆ findCloudlet() [4/4]

FindCloudletReply com.mobiledgex.matchingengine.MatchingEngine.findCloudlet ( FindCloudletRequest  request,
String  host,
int  port,
long  timeoutInMilliseconds,
FindCloudletMode  mode 
) throws StatusRuntimeException, InterruptedException, ExecutionException

findCloudlet finds the closest cloudlet instance as per request. FindCloudlet overload with hardcoded DME host and port. Only use for testing.

Parameters
request(FindCloudletRequest)
host(String): Distributed Matching Engine hostname
port(int): Distributed Matching Engine port
timeoutInMilliseconds(long)
mode(FindCloudletMode): to use to find edge cloudlets.
Returns
cloudlet URIs
Exceptions
StatusRuntimeException

◆ findCloudletFuture() [1/4]

Future< FindCloudletReply > com.mobiledgex.matchingengine.MatchingEngine.findCloudletFuture ( FindCloudletRequest  request,
long  timeoutInMilliseconds 
) throws DmeDnsException

findCloudlet finds the closest cloudlet instance as per request. Returns a Future.

Parameters
request(FindCloudletReply)
timeoutInMilliseconds(long)
Returns
Future<FindCloudletReply>: cloudlet URIs Future.

◆ findCloudletFuture() [2/4]

Future< FindCloudletReply > com.mobiledgex.matchingengine.MatchingEngine.findCloudletFuture ( FindCloudletRequest  request,
long  timeoutInMilliseconds,
FindCloudletMode  mode 
) throws DmeDnsException

findCloudlet finds the closest cloudlet instance as per request. Returns a Future.

Parameters
request(FindCloudletRequest)
timeoutInMilliseconds(long)
mode(FindCloudletMode): algorithm to use to find edge cloudlets.
Returns
Future<FindCloudletReply>: cloudlet URI Future.

◆ findCloudletFuture() [3/4]

Future< FindCloudletReply > com.mobiledgex.matchingengine.MatchingEngine.findCloudletFuture ( FindCloudletRequest  request,
String  host,
int  port,
long  timeoutInMilliseconds 
)

findCloudletFuture finds the closest cloudlet instance as per request. Returns a Future.

Parameters
request(FindCloudletRequest)
host(String): Distributed Matching Engine hostname
port(int): Distributed Matching Engine port
timeoutInMilliseconds(long)
Returns
Future<FindCloudletReply>: cloudlet URI Future.

◆ findCloudletFuture() [4/4]

Future< FindCloudletReply > com.mobiledgex.matchingengine.MatchingEngine.findCloudletFuture ( FindCloudletRequest  request,
String  host,
int  port,
long  timeoutInMilliseconds,
FindCloudletMode  mode 
)

findCloudletFuture finds the closest cloudlet instance as per request. Returns a Future.

Parameters
request(FindCloudletRequest)
host(String): Distributed Matching Engine hostname
port(int): Distributed Matching Engine port
timeoutInMilliseconds(long)
mode(FindCloudletMode): algorithm to use to find edge cloudlets.
Returns
Future<FindCloudletReply>: cloudlet URI Future.

◆ getAppInstList() [1/2]

AppInstListReply com.mobiledgex.matchingengine.MatchingEngine.getAppInstList ( AppInstListRequest  request,
long  timeoutInMilliseconds 
) throws DmeDnsException, InterruptedException, ExecutionException

Retrieve nearby AppInsts for registered application. This is a blocking call. Returns a list of the developer's backend instances deployed on the specified carrier's network. If carrier was "", returns all backend instances regardless of carrier network. This is used internally in FindCloudlet Performance mode to grab the list of cloudlets to test.

Parameters
request(AppInstListRequest)
timeoutInMilliseconds(long)
Returns
AppInstListReply
Exceptions
InterruptedException
ExecutionException

Example

list = me.getAppInstList(appInstListRequest, GRPC_TIMEOUT_MS);

◆ getAppInstList() [2/2]

AppInstListReply com.mobiledgex.matchingengine.MatchingEngine.getAppInstList ( AppInstListRequest  request,
String  host,
int  port,
long  timeoutInMilliseconds 
) throws InterruptedException, ExecutionException

Retrieve nearby AppInsts for registered application. This is a blocking call. GetAppInstList overload with hardcoded DME host and port. Only use for testing.

Parameters
request(AppInstListRequest)
host(String)
port(int)
timeoutInMilliseconds(long)
Returns
AppInstListReply

Example

list = me.getAppInstList(appInstListRequest, hostOverride, portOverride, GRPC_TIMEOUT_MS);

◆ getAppInstListFuture() [1/2]

Future< AppInstListReply > com.mobiledgex.matchingengine.MatchingEngine.getAppInstListFuture ( AppInstListRequest  request,
long  timeoutInMilliseconds 
) throws DmeDnsException

Retrieve nearby AppInsts for registered application. Returns a Future.

Parameters
request(AppInstListRequest)
timeoutInMilliseconds(long)
Returns
Future<AppInstListReply>

◆ getAppInstListFuture() [2/2]

Future< AppInstListReply > com.mobiledgex.matchingengine.MatchingEngine.getAppInstListFuture ( AppInstListRequest  request,
String  host,
int  port,
long  timeoutInMilliseconds 
)

Retrieve nearby AppInsts for registered application. Returns a Future.

Parameters
request(AppInstListRequest)
host(String)
port(int)
timeoutInMilliseconds(long)
Returns
Future<AppInstListReply>

◆ getEdgeEventsConnectionFuture()

synchronized CompletableFuture< EdgeEventsConnection > com.mobiledgex.matchingengine.MatchingEngine.getEdgeEventsConnectionFuture ( )

Returns an EdgeEventsConnection singleton to call edge events util functions.

Returns
a EdgeEventsConnection instance. May be null if not currently available.

◆ getLocalIpAny()

String com.mobiledgex.matchingengine.MatchingEngine.getLocalIpAny ( )

Retrieves the current default route network interface address.

Returns
Local IP address

◆ getLocalIpv4()

String com.mobiledgex.matchingengine.MatchingEngine.getLocalIpv4 ( )

Retrieves the current default route network interface IPv4 address.

Returns
Local IPv4 address

◆ getQosPositionKpi() [1/2]

ChannelIterator< QosPositionKpiReply > com.mobiledgex.matchingengine.MatchingEngine.getQosPositionKpi ( QosPositionRequest  request,
long  timeoutInMilliseconds 
) throws DmeDnsException, InterruptedException, ExecutionException

Request QOS values from a list of PositionKPIRequests, and returns a stream Iterator of predicted QOS values. Provides quality of service metrics for each location provided in qos position request

Parameters
request(QosPositionRequest)
timeoutInMilliseconds(long)
Returns
ChannelIterator<QosPositionKpiReply>
Exceptions
InterruptedException
ExecutionException

Example

responseIterator = me.getQosPositionKpi(request, GRPC_TIMEOUT_MS);

◆ getQosPositionKpi() [2/2]

ChannelIterator< QosPositionKpiReply > com.mobiledgex.matchingengine.MatchingEngine.getQosPositionKpi ( QosPositionRequest  request,
String  host,
int  port,
long  timeoutInMilliseconds 
) throws InterruptedException, ExecutionException

Request QOS values from a list of PositionKPIRequests, and returns a stream Iterator of predicted QOS values. GetQosPositionKpi overload with hardcoded DME host and port. Only use for testing.

Parameters
request(QosPositionRequest)
host(String)
port(int)
timeoutInMilliseconds(long)
Returns
ChannelIterator<QosPositionKpiReply>
Exceptions
InterruptedException
ExecutionException

Example

responseIterator = me.getQosPositionKpi(request, hostOverride, portOverride, GRPC_TIMEOUT_MS);

◆ getQosPositionKpiFuture() [1/2]

Future< ChannelIterator< QosPositionKpiReply > > com.mobiledgex.matchingengine.MatchingEngine.getQosPositionKpiFuture ( QosPositionRequest  request,
long  timeoutInMilliseconds 
) throws DmeDnsException

Request QOS values from a list of PositionKPIRequests, and returns an asynchronous Future for a stream Iterator of predicted QOS values.

Parameters
request(QosPositionRequest)
timeoutInMilliseconds(long)
Returns
Future<ChannelIterator<QosPositionKpiReply>>
Exceptions
InterruptedException
ExecutionException

◆ getQosPositionKpiFuture() [2/2]

Future< ChannelIterator< QosPositionKpiReply > > com.mobiledgex.matchingengine.MatchingEngine.getQosPositionKpiFuture ( QosPositionRequest  request,
String  host,
int  port,
long  timeoutInMilliseconds 
)

Request QOS values from a list of PositionKPIRequests, and returns an asynchronous Future for a stream Iterator of predicted QOS values.

Parameters
request(QosPositionRequest)
host(String)
port(int)
timeoutInMilliseconds(long)
Returns
Future<ChannelIterator<QosPositionKpiReply>>
Exceptions
InterruptedException
ExecutionException

◆ qosPrioritySessionCreate() [1/2]

QosPrioritySessionReply com.mobiledgex.matchingengine.MatchingEngine.qosPrioritySessionCreate ( QosPrioritySessionCreateRequest  request,
long  timeoutInMilliseconds 
) throws ExecutionException, InterruptedException

Creates a QOS priority session via the DME. Returns a QosPrioritySessionReply.

Parameters
request(QosPrioritySessionCreateRequest)
timeoutInMilliseconds(long)
Returns
Future<QosPrioritySessionReply>
Exceptions
InterruptedException
ExecutionException

◆ qosPrioritySessionCreate() [2/2]

QosPrioritySessionReply com.mobiledgex.matchingengine.MatchingEngine.qosPrioritySessionCreate ( QosPrioritySessionCreateRequest  request,
String  host,
int  port,
long  timeoutInMilliseconds 
) throws ExecutionException, InterruptedException

Creates a QOS priority session via the DME. Returns a QosPrioritySessionReply.

Parameters
request(QosPrioritySessionCreateRequest)
host(String): Distributed Matching Engine hostname
port(int): Distributed Matching Engine port
timeoutInMilliseconds(long)
Returns
Future<QosPrioritySessionReply>
Exceptions
InterruptedException
ExecutionException

◆ qosPrioritySessionCreateFuture() [1/2]

Future< QosPrioritySessionReply > com.mobiledgex.matchingengine.MatchingEngine.qosPrioritySessionCreateFuture ( QosPrioritySessionCreateRequest  request,
long  timeoutInMilliseconds 
)

Creates a QOS priority session via the DME. Returns a Future.

Parameters
request(QosPrioritySessionCreateRequest)
timeoutInMilliseconds(long)
Returns
Future<QosPrioritySessionReply>

◆ qosPrioritySessionCreateFuture() [2/2]

Future< QosPrioritySessionReply > com.mobiledgex.matchingengine.MatchingEngine.qosPrioritySessionCreateFuture ( QosPrioritySessionCreateRequest  request,
String  host,
int  port,
long  timeoutInMilliseconds 
)

Creates a QOS priority session via the DME. Returns a Future.

Parameters
request(QosPrioritySessionCreateRequest)
host(String): Distributed Matching Engine hostname
port(int): Distributed Matching Engine port
timeoutInMilliseconds(long)
Returns
Future<QosPrioritySessionReply>

◆ qosPrioritySessionDelete() [1/2]

QosPrioritySessionDeleteReply com.mobiledgex.matchingengine.MatchingEngine.qosPrioritySessionDelete ( QosPrioritySessionDeleteRequest  request,
long  timeoutInMilliseconds 
) throws ExecutionException, InterruptedException

Deletes a QOS priority session via the DME. Returns a QosPrioritySessionDeleteReply.

Parameters
request(QosPrioritySessionCreateRequest)
timeoutInMilliseconds(long)
Returns
Future<QosPrioritySessionReply>
Exceptions
InterruptedException
ExecutionException

◆ qosPrioritySessionDelete() [2/2]

QosPrioritySessionDeleteReply com.mobiledgex.matchingengine.MatchingEngine.qosPrioritySessionDelete ( QosPrioritySessionDeleteRequest  request,
String  host,
int  port,
long  timeoutInMilliseconds 
) throws ExecutionException, InterruptedException

Deletes a QOS priority session via the DME. Returns a QosPrioritySessionDeleteReply.

Parameters
request(QosPrioritySessionCreateRequest)
host(String): Distributed Matching Engine hostname
port(int): Distributed Matching Engine port
timeoutInMilliseconds(long)
Returns
Future<QosPrioritySessionReply>
Exceptions
InterruptedException
ExecutionException

◆ qosPrioritySessionDeleteFuture() [1/2]

Future< QosPrioritySessionDeleteReply > com.mobiledgex.matchingengine.MatchingEngine.qosPrioritySessionDeleteFuture ( QosPrioritySessionDeleteRequest  request,
long  timeoutInMilliseconds 
)

Deletes a QOS priority session via the DME. Returns a Future.

Parameters
request(QosPrioritySessionCreateRequest)
timeoutInMilliseconds(long)
Returns
Future<QosPrioritySessionReply>

◆ qosPrioritySessionDeleteFuture() [2/2]

Future< QosPrioritySessionDeleteReply > com.mobiledgex.matchingengine.MatchingEngine.qosPrioritySessionDeleteFuture ( QosPrioritySessionDeleteRequest  request,
String  host,
int  port,
long  timeoutInMilliseconds 
)

Deletes a QOS priority session via the DME. Returns a Future.

Parameters
request(QosPrioritySessionCreateRequest)
host(String): Distributed Matching Engine hostname
port(int): Distributed Matching Engine port
timeoutInMilliseconds(long)
Returns
Future<QosPrioritySessionReply>

◆ registerAndFindCloudlet() [1/3]

Future< FindCloudletReply > com.mobiledgex.matchingengine.MatchingEngine.registerAndFindCloudlet ( final Context  context,
final String  host,
final int  port,
final String  organizationName,
final String  applicationName,
final String  appVersion,
final Location  location,
final String  authToken,
final String  uniqueIdType,
final String  uniqueId,
final Map< String, String >  tags,
final FindCloudletMode  mode 
)

Register and FindCloudlet with DME host and port parameters, to get FindCloudletReply for cloudlet AppInsts info all at once:

Example

Future<AppClient.FindCloudletReply> findCloudletReplyFuture = me.registerAndFindCloudlet(context, hostOverride, portOverride,
organizationName, applicationName,
appVersion, location, "",
null, null, null, MatchingEngine.FindCloudletMode.PROXIMITY); // FIXME: These parameters should be overloaded or optional.
MatchingEngine(Context context)
Definition: MatchingEngine.java:170

◆ registerAndFindCloudlet() [2/3]

Future< FindCloudletReply > com.mobiledgex.matchingengine.MatchingEngine.registerAndFindCloudlet ( final Context  context,
final String  organizationName,
final String  applicationName,
final String  appVersion,
final Location  location,
final String  authToken,
final Map< String, String >  tags,
final FindCloudletMode  mode 
)

registerAndFindCloudlet with most defaults filled in. Wrapper function for RegisterClient and FindCloudlet. Same functionality as calling them separately. This API cannot be used for Non-Platform APPs.

Parameters
context(android.content.Context)
organizationName(String)
applicationName(String)
appVersion(String)
location(android.location.Location)
authToken(String)
tags(Map<String, String>)
mode(FindCloudletMode): FindCloudletMode performance rated mode, or proximity mode.
Returns
Future<FindCloudletReply>

◆ registerAndFindCloudlet() [3/3]

Future< FindCloudletReply > com.mobiledgex.matchingengine.MatchingEngine.registerAndFindCloudlet ( final Context  context,
final String  organizationName,
final String  applicationName,
final String  appVersion,
final Location  location,
final String  authToken,
final String  uniqueIdType,
final String  uniqueId,
final Map< String, String >  tags,
final FindCloudletMode  mode 
)

Register and FindCloudlet to get FindCloudletReply for cloudlet AppInsts info all at once:

◆ registerClient() [1/2]

RegisterClientReply com.mobiledgex.matchingengine.MatchingEngine.registerClient ( RegisterClientRequest  request,
long  timeoutInMilliseconds 
) throws DmeDnsException, StatusRuntimeException, InterruptedException, ExecutionException

Registers Client using blocking API call. First DME API called. This will register the client with the MobiledgeX backend and check to make sure that the app that the user is running exists. (ie. This confirms that CreateApp in Console/Mcctl has been run successfully). RegisterClientReply contains a session cookie that will be used (automatically) in later API calls. It also contains a uri that will be used to get the verifyLocToken used in VerifyLocation.

Parameters
request(RegisterClientRequest)
timeoutInMilliseconds(long)
Returns
RegisterClientReply
Exceptions
StatusRuntimeException
InterruptedException
ExecutionException

Example

registerReply = me.registerClient(registerClientRequest, GRPC_TIMEOUT_MS);

◆ registerClient() [2/2]

RegisterClientReply com.mobiledgex.matchingengine.MatchingEngine.registerClient ( RegisterClientRequest  request,
String  host,
int  port,
long  timeoutInMilliseconds 
) throws StatusRuntimeException, InterruptedException, ExecutionException

Registers Client using blocking API call. Allows specifying a DME host and port. Only use for testing.

Parameters
request(RegisterClientRequest)
host(String): Distributed Matching Engine hostname
port(int): Distributed Matching Engine port
timeoutInMilliseconds(long)
Returns
RegisterClientReply
Exceptions
StatusRuntimeException
InterruptedException
ExecutionException

Example

registerReply = me.registerClient(registerClientRequest, hostOverride, portOverride, GRPC_TIMEOUT_MS);

◆ registerClientFuture()

Future< RegisterClientReply > com.mobiledgex.matchingengine.MatchingEngine.registerClientFuture ( RegisterClientRequest  request,
String  host,
int  port,
long  timeoutInMilliseconds 
)

Registers device on the MatchingEngine server. Returns a Future.

Parameters
request(RegisterClientRequest)
host(String): Distributed Matching Engine hostname
port(int): Distributed Matching Engine port
timeoutInMilliseconds(long)
Returns
Future<RegisterClientReply>

◆ verifyLocation() [1/2]

VerifyLocationReply com.mobiledgex.matchingengine.MatchingEngine.verifyLocation ( VerifyLocationRequest  request,
long  timeoutInMilliseconds 
) throws DmeDnsException, StatusRuntimeException, InterruptedException, IOException, ExecutionException

verifyLocation validates the client submitted information against known network 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. parameters on the subscriber network side.

Parameters
request(VerifyLocationRequest)
timeoutInMilliseconds(long)
Returns
VerifyLocationReply
Exceptions
StatusRuntimeException
InterruptedException
IOException
ExecutionException

Example

verifyLocationReply = me.verifyLocation(verifyLocationRequest, GRPC_TIMEOUT_MS);

◆ verifyLocation() [2/2]

VerifyLocationReply com.mobiledgex.matchingengine.MatchingEngine.verifyLocation ( VerifyLocationRequest  request,
String  host,
int  port,
long  timeoutInMilliseconds 
) throws StatusRuntimeException, InterruptedException, IOException, ExecutionException

verifyLocation validates the client submitted information against known network VerifyLocation overload with hardcoded DME host and port. Only use for testing. parameters on the subscriber network side.

Parameters
request(VerifyLocationRequest)
host(String): Distributed Matching Engine hostname
port(int): Distributed Matching Engine port
timeoutInMilliseconds(long)
Returns
VerifyLocationReply
Exceptions
StatusRuntimeException
InterruptedException
IOException

Example

verifyLocationReply = me.verifyLocation(verifyLocationRequest, hostOverride, portOverride, GRPC_TIMEOUT_MS);

◆ verifyLocationFuture() [1/2]

Future< VerifyLocationReply > com.mobiledgex.matchingengine.MatchingEngine.verifyLocationFuture ( VerifyLocationRequest  request,
long  timeoutInMilliseconds 
) throws DmeDnsException

verifyLocationFuture validates the client submitted information against known network parameters on the subscriber network side. Returns a future.

Parameters
request(VerifyLocationRequest)
timeoutInMilliseconds(long)
Returns
Future<VerifyLocationReply>

◆ verifyLocationFuture() [2/2]

Future< VerifyLocationReply > com.mobiledgex.matchingengine.MatchingEngine.verifyLocationFuture ( VerifyLocationRequest  request,
String  host,
int  port,
long  timeoutInMilliseconds 
)

verifyLocationFuture validates the client submitted information against known network parameters on the subscriber network side. Returns a future.

Parameters
request(VerifyLocationRequest)
host(String)
port(int)
timeoutInMilliseconds(long)
Returns
Future<VerifyLocationReply>