Class AbstractGatewayConnection
java.lang.Object
com.inductiveautomation.ignition.client.gateway_interface.AbstractGatewayConnection
- All Implemented Interfaces:
- GatewayConnection,- GatewayInterface.GatewayExceptionMonitor,- PushNotificationListener,- GatewayConstants,- EventListener
- Direct Known Subclasses:
- ClientGatewayConnection,- DesignerGatewayConnection
public abstract class AbstractGatewayConnection
extends Object
implements GatewayConstants, GatewayConnection, PushNotificationListener, GatewayInterface.GatewayExceptionMonitor
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionprotected static class
- 
Field SummaryFieldsModifier and TypeFieldDescriptionprotected PropertyChangeSupportstatic final Stringstatic final Stringstatic final Stringstatic final Stringprotected intprotected HttpURLThe current address that we are communicating withA list of all gateway addresses that were passed in.protected Stringprotected TimeZonestatic final Stringprotected ScopeVersionHashprotected intstatic final Stringprotected LaunchContextprotected EventListenerListprotected static final org.apache.log4j.LoggerUsed for internal logging ONLY.static final Stringstatic final Stringstatic final Stringprotected intstatic final Stringstatic final Stringstatic final Stringprotected intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intFields inherited from interface com.inductiveautomation.ignition.common.gateway.GatewayConstants_DATE_FORMATTER, ARG_MESSAGETYPE, ARG_MODULEID, ATR_INDEX, ATR_LENGTH, ATR_NAME, ATR_TYPE, booleanNull, byteNull, charNull, CONNECT_TIMEOUT, DATE_FORMAT_STRING, doubleNull, ELM_ARG, ELM_COLLIST, ELM_COLUMN, ELM_COMPRESSEDROWS, ELM_DATA, ELM_ERRORCODE, ELM_ERRORMESSAGE, ELM_EXCLS, ELM_EXMSG, ELM_EXOVERRIDES_TOSTRING, ELM_EXSTRING, ELM_MBODY, ELM_MESSAGE, ELM_MTYPE, ELM_NOTIFICATION, ELM_NOTIFICATIONS, ELM_RESPONSE, ELM_ROW, ELM_ROWS, ELM_SERIALIZED_RESPONSE, ELM_SETCOOKIE, ELM_STACKTRACE, ELM_STELM, ELM_STELM_DECL, ELM_STELM_FILE, ELM_STELM_LINE, ELM_STELM_METH, ERRNO_ASYNC_CALL, ERRNO_ASYNC_CALL_CANCELED, ERRNO_ASYNC_CALL_FAILED, ERRNO_BROWSE_ERROR, ERRNO_COMM_ERROR, ERRNO_CONNECTION_MODE, ERRNO_DBCONNECTION_NAMING, ERRNO_DBCONNECTION_SQL, ERRNO_HISTORY_QUERY_ERROR, ERRNO_INSECURE_REDIRECT, ERRNO_INTERNAL, ERRNO_INVALIDARGS, ERRNO_INVOCATION_EXCEPTION, ERRNO_LICENE_RESTRICTED, ERRNO_LOGIN_CANCELLED, ERRNO_LOGIN_FAILED, ERRNO_LOGIN_FAILED_LICENSING, ERRNO_NAMING, ERRNO_NO_SESSION, ERRNO_NON_ACTIVE_NODE, ERRNO_NON_MASTER_NODE, ERRNO_NOT_AUTHORIZED, ERRNO_NOTIMP, ERRNO_OK, ERRNO_PARSE, ERRNO_PASSWORD_EXPIRED, ERRNO_PONG, ERRNO_POST_ERROR, ERRNO_PROJECT_PULL, ERRNO_PROJECT_PUSH, ERRNO_RUNTIME_EXPIRED, ERRNO_SQL, ERRNO_SQLTAGS_PROVIDER_DISABLED, ERRNO_SQLTAGS_PROVIDER_FAULTED, ERRNO_SQLTAGS_PROVIDER_LOADING, ERRNO_SQLTAGS_PROVIDER_MISSING, ERRNO_SQLTAGS_SEND_TAGS, ERRNO_SSL_REQUIRED, ERRNO_TIMEOUT, ERRNO_TRIAL_EXPIRED, ERRNO_VERSION_INCOMPATABILITY, ERROR_MESSAGE_TYPE, floatNull, intNull, longNull, MODE_DISCONNECTED, MODE_FULL, MODE_READ_ONLY, MTYPE_COPY_IMAGE, MTYPE_CREATE_IMAGE_FOLDER, MTYPE_DBTEST, MTYPE_GET_NEW_RESOURCEID, MTYPE_INVALID, MTYPE_INVOKE_FUNCTION, MTYPE_LIST_AUTHS, MTYPE_LIST_COLS, MTYPE_LIST_DBS, MTYPE_LIST_IDPS, MTYPE_LIST_IMAGES, MTYPE_LIST_MODULES, MTYPE_LIST_ROLES, MTYPE_LIST_SECURITY_LEVELS, MTYPE_LIST_SQLTAG_PROVIDERS, MTYPE_LIST_TABLES, MTYPE_LIST_ZONES, MTYPE_PING, MTYPE_PLATFORM_EDITION, MTYPE_PUBLIC_PING, MTYPE_REMOVE_IMAGE, MTYPE_RENAME_IMAGE_FOLDER, MTYPE_REPORT_ERROR, MTYPE_SEND_EMAIL, MTYPE_SQLTAGS_ADD_SCANCLASS, MTYPE_SQLTAGS_ADD_TAGS, MTYPE_SQLTAGS_EDIT_SCANCLASS, MTYPE_SQLTAGS_EDIT_TAGS, MTYPE_SQLTAGS_ERROR_LIST, MTYPE_SQLTAGS_FSQL_BROWSE, MTYPE_SQLTAGS_FSQL_LIST, MTYPE_SQLTAGS_GET_SCANCLASS, MTYPE_SQLTAGS_LIST, MTYPE_SQLTAGS_META_LIST, MTYPE_SQLTAGS_POLL, MTYPE_SQLTAGS_REMOVE_SCANCLASS, MTYPE_SQLTAGS_REMOVE_TAGS, MTYPE_SQLTAGS_WRITE, MTYPE_STATUS_POLL, MTYPE_UPLOAD_IMAGE, MTYPE_VERSION_CHECK, OPC_BROWSE_TIMEOUT, PROTECT_DIALOG_TYPE, shortNull, SOCKET_TIMEOUT, WARNING_MESSAGE_TYPE
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionvoidaddConnectionListener(ConnectionListener listener) voidDifferent from the ConnectionListener in the sense that this listener is intended for use in redundant setups, where the status of the inactive connection must be updated along with the status of the active connection.voidvoidaddPropertyChangeListener(String propName, PropertyChangeListener l) voidvoidConnect to the gateway(s) specifiedvoidprotected abstract org.apache.commons.lang3.tuple.Pair<AuthenticatedUser,String> doIdpLoginFinish(String projectName) protected abstract AuthenticatedUserdoLogin(GatewayInterface gatewayInterface, String projectName, AuthChallenge challenge) protected abstract org.apache.commons.lang3.tuple.Pair<AuthenticatedUser,String> doTokenLogin(GatewayInterface gatewayInterface, String projectName, String encodedAuthToken) protected voidfireConnectionEvent(String message) protected voidfireConnectionEvent(String messageLookup, HttpURL gatewayAddr, boolean appendGatewayAddr) Overloaded method to allow a gateway's connection status to be updated.protected voidfireConnectionEvent(String messageLookup, HttpURL gatewayAddr, Exception ex, boolean appendGatewayAddr) Overloaded method to allow a gateway's connection status to be updated.protected voidprotected voidfishForAliveServer(boolean reLogin) Synchronized method- Tests communication with known servers, and sets the gateway interface to the first gateway that in can connect to.Returns a list of all possible Gateway addresses that are known to the client.The encrypted auth challenge that was used to log inintReturns the current connection mode: MODE_FULL MODE_READ_ONLY MODE_DISCONNECTEDintprotected StringReturns the address of the gateway that is currently being communicated with.Returns the string version of the currently connected gateway's "Node Role", which will be one of: Independent Master BackupReturns the url to the web portion of the gateway, like "http[s]://<address>:<port>[/context]"intThe number of concurrent HTTP connections allowed.intPlatform edition.The name of the project that we are currently logged into, if any.getRoles()The set of roles that the actively logged in user has, if any.Returns "http" or "https" depending on our transport schemeprotected abstract intgetScope()Returns the scope for this connection.The set of security zones that the actively logged in user has, if any.intThe username of the actively logged in user, if any.idpLoginFinish(String projectName) booleanWhether or not we are currently supposed to be in a connected state.static booleanbooleanbooleanbooleanbooleanlogin(String projectName, AuthChallenge challenge) voidlogout()protected GatewayInterfacenewGatewayInterface(HttpURL addr) Creates a new GatewayInterface for the given URL, settings its connect and socket timeouts appropriatelyvoidprotected abstract voidprotected abstract voidCalled when the version is detected to have changed on the gateway.voidreceiveNotification(PushNotification notification) voidremoveConnectionListener(ConnectionListener listener) voidvoidvoidremovePropertyChangeListener(String propName, PropertyChangeListener l) voidvoidRemoves all PushNotificationListeners that are of same class as the passed class.protected voidsetConnected(boolean connected) voidsetConnectionMode(int connectionMode) protected voidsetConnectionUp(boolean connectionUp) Synchronized methodvoidsetConnectTimeout(int connectTimeout) protected voidSets the new gateway interface, and adds this as a gateway exception listener and a push notification listener.voidsetHttpConcurrency(int concurrency) protected voidsetIndependentAddressList(List<HttpURL> addresses, boolean reLogin) voidsetOpcBrowseTimeout(int opcBrowseTimeout) protected voidsetProjectName(String projectName) voidsetSocketTimeout(int socketTimeout) tokenLogin(String projectName, String encodedAuthToken) protected StringReturns the HttpURL with the correct security scheme, like: "https://myserver:443/ContextPath"voidManually update the status of all connection listeners.protected booleanvoidupdateBackupAddresses(List<HttpURL> list) Synchronized methodvoidUpdates the gateway timezone and role infovoidupdateMasterAddresses(List<HttpURL> list) Synchronized methodMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.inductiveautomation.ignition.client.gateway_interface.GatewayConnectionidpLoginStart
- 
Field Details- 
REDUNDANT_MASTER
- 
REDUNDANT_BACKUP
- 
INDEPENDENT- See Also:
 
- 
CONNECT_UNKNOWN- See Also:
 
- 
CONNECTING- See Also:
 
- 
CONNECT_SUCCESS- See Also:
 
- 
CONNECT_FAIL- See Also:
 
- 
RELOGIN- See Also:
 
- 
NON_ACTIVE- See Also:
 
- 
NEW_ADDRESSES- See Also:
 
- 
NO_NEW_ADDRESSES- See Also:
 
- 
GET_ADDRESSES_ERROR- See Also:
 
- 
STATUS_CONNECT_UNKNOWNpublic static final int STATUS_CONNECT_UNKNOWN- See Also:
 
- 
STATUS_CONNECTINGpublic static final int STATUS_CONNECTING- See Also:
 
- 
STATUS_CONNECTEDpublic static final int STATUS_CONNECTED- See Also:
 
- 
STATUS_CONNECT_FAILpublic static final int STATUS_CONNECT_FAIL- See Also:
 
- 
STATUS_CONNECT_INACTIVEpublic static final int STATUS_CONNECT_INACTIVE- See Also:
 
- 
STATUS_CONNECTED_INCOMPATIBLEpublic static final int STATUS_CONNECTED_INCOMPATIBLE- See Also:
 
- 
STATUS_CONNECT_WARNINGpublic static final int STATUS_CONNECT_WARNING- See Also:
 
- 
logprotected static final org.apache.log4j.Logger log
- 
LOGGER_STATUS_LOOKUPUsed for internal logging ONLY. Do not use to display messages to the user, as these strings are not internationalized.
- 
connectTimeoutprotected int connectTimeout
- 
socketTimeoutprotected int socketTimeout
- 
opcBrowseTimeoutprotected int opcBrowseTimeout
- 
httpConcurrencyprotected int httpConcurrency
- 
changeSupport
- 
listenerList
- 
currentAddressThe current address that we are communicating with
- 
gatewayAddressesA list of all gateway addresses that were passed in. The client starts in independent mode and cycles thru these addresses in the fishForAliveServer() method. The addresses are used later if a version mismatch exception is thrown when reconnecting to a gateway. Redundant master and backup addresses are not maintained in this list. They are held in the potentialMasterList and potentialBackup list respectively.
- 
launchContext
- 
gatewayTimeZone
- 
gatewayNodeRole
- 
hash
 
- 
- 
Constructor Details- 
AbstractGatewayConnection
 
- 
- 
Method Details- 
getEncodedAuthToken
- 
connectDescription copied from interface:GatewayConnectionConnect to the gateway(s) specified- Specified by:
- connectin interface- GatewayConnection
 
- 
disconnectpublic void disconnect()- Specified by:
- disconnectin interface- GatewayConnection
 
- 
setIndependentAddressListprotected void setIndependentAddressList(List<HttpURL> addresses, boolean reLogin) throws AbstractGatewayConnection.UnrecoverableIdpAuthSessionException, VersionMismatchException 
- 
newGatewayInterfaceCreates a new GatewayInterface for the given URL, settings its connect and socket timeouts appropriately
- 
getScopeprotected abstract int getScope()Returns the scope for this connection. Used to create an accurate version hash.
- 
updateMasterAddressesSynchronized method
- 
updateBackupAddressesSynchronized method
- 
fishForAliveServerprotected void fishForAliveServer(boolean reLogin) throws AbstractGatewayConnection.UnrecoverableIdpAuthSessionException, VersionMismatchException Synchronized method- Tests communication with known servers, and sets the gateway interface to the first gateway that in can connect to. For redundant connections, this method also sets the gateway interface to either the last known master or the last known backup in a connection failure scenario. The connection status of the master and the backup is determined in a separate thread in the RedundancyMonitorTask.
- 
tryToLoginprotected boolean tryToLogin() throws AbstractGatewayConnection.UnrecoverableIdpAuthSessionException
- 
setGatewayInterfaceSets the new gateway interface, and adds this as a gateway exception listener and a push notification listener. Also updates the gateway timezone.
- 
updateGatewayMetaInfopublic void updateGatewayMetaInfo()Updates the gateway timezone and role info
- 
getGatewayNodeRoleDescription copied from interface:GatewayConnectionReturns the string version of the currently connected gateway's "Node Role", which will be one of:- Independent
- Master
- Backup
 - Specified by:
- getGatewayNodeRolein interface- GatewayConnection
 
- 
doLoginprotected abstract AuthenticatedUser doLogin(GatewayInterface gatewayInterface, String projectName, AuthChallenge challenge) throws GatewayException - Throws:
- GatewayException
 
- 
login- Specified by:
- loginin interface- GatewayConnection
- Throws:
- GatewayException
 
- 
doTokenLoginprotected abstract org.apache.commons.lang3.tuple.Pair<AuthenticatedUser,String> doTokenLogin(GatewayInterface gatewayInterface, String projectName, String encodedAuthToken) throws GatewayException - Throws:
- GatewayException
 
- 
tokenLoginpublic AuthenticatedUser tokenLogin(String projectName, String encodedAuthToken) throws GatewayException - Specified by:
- tokenLoginin interface- GatewayConnection
- Throws:
- GatewayException
 
- 
doIdpLoginFinishprotected abstract org.apache.commons.lang3.tuple.Pair<AuthenticatedUser,String> doIdpLoginFinish(String projectName) throws GatewayException - Throws:
- GatewayException
 
- 
idpLoginFinish- Specified by:
- idpLoginFinishin interface- GatewayConnection
- Throws:
- GatewayException
 
- 
logoutpublic void logout()- Specified by:
- logoutin interface- GatewayConnection
 
- 
setConnectionUpprotected void setConnectionUp(boolean connectionUp) Synchronized method
- 
onVersionMismatchprotected abstract void onVersionMismatch()Called when the version is detected to have changed on the gateway. Connection will be closed at this point.
- 
onUnrecoverableIdpAuthSessionprotected abstract void onUnrecoverableIdpAuthSession()
- 
notifyGatewayException- Specified by:
- notifyGatewayExceptionin interface- GatewayInterface.GatewayExceptionMonitor
 
- 
receiveNotification- Specified by:
- receiveNotificationin interface- PushNotificationListener
 
- 
isConnectionRelated
- 
getConnectionModepublic int getConnectionMode()Description copied from interface:GatewayConnectionReturns the current connection mode:- MODE_FULL
- MODE_READ_ONLY
- MODE_DISCONNECTED
 - Specified by:
- getConnectionModein interface- GatewayConnection
 
- 
setConnectionModepublic void setConnectionMode(int connectionMode) - Specified by:
- setConnectionModein interface- GatewayConnection
 
- 
getAllAddressesDescription copied from interface:GatewayConnectionReturns a list of all possible Gateway addresses that are known to the client. This list includes redundant master and backup addresses. The list is used for client restarts.- Specified by:
- getAllAddressesin interface- GatewayConnection
 
- 
getGatewayAddressDescription copied from interface:GatewayConnectionReturns the address of the gateway that is currently being communicated with.- Specified by:
- getGatewayAddressin interface- GatewayConnection
 
- 
getGatewayInterface- Specified by:
- getGatewayInterfacein interface- GatewayConnection
 
- 
getGatewayWebURLDescription copied from interface:GatewayConnectionReturns the url to the web portion of the gateway, like "http[s]://<address>:<port>[/context]"- Specified by:
- getGatewayWebURLin interface- GatewayConnection
 
- 
getSchemeDescription copied from interface:GatewayConnectionReturns "http" or "https" depending on our transport scheme- Specified by:
- getSchemein interface- GatewayConnection
 
- 
getGatewayTimeZone- Specified by:
- getGatewayTimeZonein interface- GatewayConnection
 
- 
isConnectionUppublic boolean isConnectionUp()- Specified by:
- isConnectionUpin interface- GatewayConnection
 
- 
isSessionValidpublic boolean isSessionValid()- Specified by:
- isSessionValidin interface- GatewayConnection
 
- 
isConnectedpublic boolean isConnected()Whether or not we are currently supposed to be in a connected state. If this is true and connectionUp is false, then we are reconnecting- Specified by:
- isConnectedin interface- GatewayConnection
 
- 
setConnectedprotected void setConnected(boolean connected) 
- 
toStringReturns the HttpURL with the correct security scheme, like: "https://myserver:443/ContextPath"
- 
addPushNotificationListener- Specified by:
- addPushNotificationListenerin interface- GatewayConnection
 
- 
removePushNotificationListener- Specified by:
- removePushNotificationListenerin interface- GatewayConnection
 
- 
removePushNotificationListenersRemoves all PushNotificationListeners that are of same class as the passed class.- Specified by:
- removePushNotificationListenersin interface- GatewayConnection
- Parameters:
- c- The type of listener to remove
 
- 
firePushNotification
- 
addPropertyChangeListener- Specified by:
- addPropertyChangeListenerin interface- GatewayConnection
 
- 
removePropertyChangeListener- Specified by:
- removePropertyChangeListenerin interface- GatewayConnection
 
- 
addPropertyChangeListener- Specified by:
- addPropertyChangeListenerin interface- GatewayConnection
 
- 
removePropertyChangeListener- Specified by:
- removePropertyChangeListenerin interface- GatewayConnection
 
- 
addConnectionListener- Specified by:
- addConnectionListenerin interface- GatewayConnection
 
- 
removeConnectionListener- Specified by:
- removeConnectionListenerin interface- GatewayConnection
 
- 
fireConnectionEventprotected void fireConnectionEvent(String messageLookup, HttpURL gatewayAddr, boolean appendGatewayAddr) Overloaded method to allow a gateway's connection status to be updated. A BundleUtil lookup is made to get the actual string from the passed lookup. Be sure that the actual string returned from lookup contains at least one '%s' to display the gateway address. This method will also update the internal masterConnectionStatus and backupConnectionStatus variables for redundant systems, and the connectionStatus variable for independent systems.
- 
fireConnectionEventprotected void fireConnectionEvent(String messageLookup, HttpURL gatewayAddr, Exception ex, boolean appendGatewayAddr) Overloaded method to allow a gateway's connection status to be updated. A BundleUtil lookup is made to get the actual string from the passed lookup. Be sure that the actual string returned from lookup contains at least one '%s' to display the gateway address. This method will also update the internal masterConnectionStatus and backupConnectionStatus variables for redundant systems, and the connectionStatus variable for independent systems.- Parameters:
- messageLookup- the String to pass to BundleUtil.get(), such as "GatewayConnectionManager.TestingWith"
- gatewayAddr- the Gateway HttpURL used in the connection event
- ex- exception that has just occurred. Pass in null if there were no exceptions thrown.
 
- 
fireConnectionEvent
- 
isLoggedInpublic boolean isLoggedIn()
- 
getProjectNameDescription copied from interface:GatewayConnectionThe name of the project that we are currently logged into, if any.- Specified by:
- getProjectNamein interface- GatewayConnection
 
- 
getUsernameDescription copied from interface:GatewayConnectionThe username of the actively logged in user, if any.- Specified by:
- getUsernamein interface- GatewayConnection
 
- 
getAuthChallengeDescription copied from interface:GatewayConnectionThe encrypted auth challenge that was used to log in- Specified by:
- getAuthChallengein interface- GatewayConnection
 
- 
getRolesDescription copied from interface:GatewayConnectionThe set of roles that the actively logged in user has, if any.- Specified by:
- getRolesin interface- GatewayConnection
 
- 
getSecurityZonesDescription copied from interface:GatewayConnectionThe set of security zones that the actively logged in user has, if any.- Specified by:
- getSecurityZonesin interface- GatewayConnection
 
- 
getConnectTimeoutpublic int getConnectTimeout()- Specified by:
- getConnectTimeoutin interface- GatewayConnection
 
- 
setConnectTimeoutpublic void setConnectTimeout(int connectTimeout) - Specified by:
- setConnectTimeoutin interface- GatewayConnection
 
- 
getSocketTimeoutpublic int getSocketTimeout()- Specified by:
- getSocketTimeoutin interface- GatewayConnection
 
- 
setSocketTimeoutpublic void setSocketTimeout(int socketTimeout) - Specified by:
- setSocketTimeoutin interface- GatewayConnection
 
- 
getOpcBrowseTimeoutpublic int getOpcBrowseTimeout()- Specified by:
- getOpcBrowseTimeoutin interface- GatewayConnection
 
- 
setOpcBrowseTimeoutpublic void setOpcBrowseTimeout(int opcBrowseTimeout) - Specified by:
- setOpcBrowseTimeoutin interface- GatewayConnection
 
- 
getHttpConcurrencypublic int getHttpConcurrency()Description copied from interface:GatewayConnectionThe number of concurrent HTTP connections allowed. 0 or less means unlimited.- Specified by:
- getHttpConcurrencyin interface- GatewayConnection
 
- 
setHttpConcurrencypublic void setHttpConcurrency(int concurrency) - Specified by:
- setHttpConcurrencyin interface- GatewayConnection
 
- 
setProjectName
- 
addConnectionStatusListenerDescription copied from interface:GatewayConnectionDifferent from the ConnectionListener in the sense that this listener is intended for use in redundant setups, where the status of the inactive connection must be updated along with the status of the active connection. The passed ConnectionStatusListener will be continually updated with master/independent and backup connection status every few seconds.- Specified by:
- addConnectionStatusListenerin interface- GatewayConnection
 
- 
removeConnectionStatusListener- Specified by:
- removeConnectionStatusListenerin interface- GatewayConnection
 
- 
triggerConnectionStatusListenerspublic void triggerConnectionStatusListeners()Description copied from interface:GatewayConnectionManually update the status of all connection listeners. Use this in situations where listeners need an immediate update without waiting for the normal thread task to fire (such as when first displaying a status panel).- Specified by:
- triggerConnectionStatusListenersin interface- GatewayConnection
 
- 
getPlatformEditionDescription copied from interface:GatewayConnectionPlatform edition. Standard edition = "", Edge edition = "edge"- Specified by:
- getPlatformEditionin interface- GatewayConnection
 
- 
getEdgeProjectName- Specified by:
- getEdgeProjectNamein interface- GatewayConnection
- Returns:
- the name of the Edge project as defined by the user on the edge gateway settings
- Throws:
- GatewayException
 
- 
isPlatformLicensedpublic boolean isPlatformLicensed()- Specified by:
- isPlatformLicensedin interface- GatewayConnection
 
 
-