/// <summary>Creates a SessionFactory object.</summary> /// <param name="callback">The callback for notifications about session establishment.</param> /// <param name="properties">Optional properties used for communicator initialization.</param> /// <param name="logger">Optional logger used for communicator initialization.</param> /// <param name="observer">Optional communicator observer used for communicator initialization.</param> public SessionFactoryHelper(ISessionCallback callback, Dictionary <string, string> properties, ILogger?logger = null, ICommunicatorObserver?observer = null) { _callback = callback; _properties = properties; _logger = logger; _observer = observer; SetDefaultProperties(); }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.activity_sample_login); if (ActionBar != null) { ActionBar.SetDisplayHomeAsUpEnabled(true); } callback = new MySessionCallback(this); Session.CurrentSession.AddCallback(callback); }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.layout_splash); callback = new MySessionCallback(this); Session.CurrentSession.AddCallback(callback); FindViewById(Resource.Id.splash).PostDelayed(() => { if (!Session.CurrentSession.CheckAndImplicitOpen()) { RedirectToLoginActivity(); } }, 500); }
/// <summary> /// Start a new session. /// </summary> /// <param name="clientInfo">The client information regarding the current session.</param> /// <returns>The session ID in the form of Guid.</returns> public static Guid StartSession(SessionClientInfo clientInfo) { Guid sessionID = Guid.NewGuid(); ISessionCallback callback = OperationContext.Current.GetCallbackChannel <ISessionCallback>(); SessionInfo sesionInfo = new SessionInfo() { SessionID = sessionID, StartTime = DateTime.Now, LastActivityTime = DateTime.Now, ClientInfo = clientInfo }; lock (_syncHelper) { CurrentSessionList.Add(sessionID, sesionInfo); CurrentCallbackList.Add(sessionID, callback); } return(sessionID); }
/// <summary> /// Creates a Glacier2 session. /// </summary> /// <param name="callback">The callback for notifications about session /// establishment.</param> /// <param name="properties">Optional properties used for communicator initialization.</param> /// <param name="logger">Optional logger used for communicator initialization.</param> /// <param name="observer">Optional communicator observer used for communicator initialization.</param> /// <param name="typeIdNamespaces">Optional list of TypeId namespaces used for communicator initialization. /// The default is Ice.TypeId.</param> /// <param name="finderStr">The stringified Ice.RouterFinder proxy.</param> /// <param name="useCallbacks">True if the session should create an object adapter for receiving callbacks.</param> internal SessionHelper(ISessionCallback callback, string finderStr, bool useCallbacks, Dictionary <string, string> properties, ILogger?logger = null, ICommunicatorObserver?observer = null, string[]?typeIdNamespaces = null) { _callback = callback; _finderStr = finderStr; _useCallbacks = useCallbacks; _properties = properties; _logger = logger; _observer = observer; _typeIdNamespaces = typeIdNamespaces; }
/// <summary>Creates a SessionFactory object.</summary> /// <param name="callback">The callback for notifications about session establishment.</param> /// <param name="properties">Optional properties used for communicator initialization.</param> /// <param name="logger">Optional logger used for communicator initialization.</param> /// <param name="observer">Optional communicator observer used for communicator initialization.</param> /// <param name="tlsClientOptions">TLS transport client side configuration options.</param> /// <param name="tlsServerOptions">TLS transport server side configuration options.</param> public SessionFactoryHelper( ISessionCallback callback, Dictionary <string, string> properties, ILogger?logger = null, ICommunicatorObserver?observer = null, TlsClientOptions?tlsClientOptions = null, TlsServerOptions?tlsServerOptions = null) { _callback = callback; _properties = properties; _logger = logger; _observer = observer; _tlsClientOptions = tlsClientOptions; _tlsServerOptions = tlsServerOptions; _properties["Ice.RetryIntervals"] = "-1"; }
internal SessionHelper(ISessionCallback callback, string finderStr, bool useCallbacks, Dictionary <string, string> properties, ILogger?logger, ICommunicatorObserver?observer, TlsClientOptions?tlsClientOptions, TlsServerOptions?tlsServerOptions) { _callback = callback; _finderStr = finderStr; _useCallbacks = useCallbacks; _properties = properties; _logger = logger; _observer = observer; _tlsClientOptions = tlsClientOptions; _tlsServerOptions = tlsServerOptions; }
/// <summary>Creates a SessionFactory object.</summary> /// <param name="callback">The callback for notifications about session establishment.</param> /// <param name="properties">Optional properties used for communicator initialization.</param> /// <param name="logger">Optional logger used for communicator initialization.</param> /// <param name="observer">Optional communicator observer used for communicator initialization.</param> /// <param name="threadStart">Optional thread start delegate used for communicator initialization.</param> /// <param name="threadStop">Optional thread stop delegate used for communicator initialization.</param> /// <param name="typeIdNamespaces">Optional list of TypeId namespaces used for communicator initialization. The /// default is Ice.TypeId.</param> public SessionFactoryHelper(ISessionCallback callback, Dictionary <string, string> properties, Ice.ILogger?logger = null, Ice.Instrumentation.ICommunicatorObserver?observer = null, Action?threadStart = null, Action?threadStop = null, string[]?typeIdNamespaces = null) { _callback = callback; _properties = properties; _logger = logger; _observer = observer; _threadStart = threadStart; _threadStop = threadStop; _typeIdNamespaces = typeIdNamespaces; SetDefaultProperties(); }
/// <summary> /// Creates a Glacier2 session. /// </summary> /// <param name="callback">The callback for notifications about session /// establishment.</param> /// <param name="properties">Optional properties used for communicator initialization.</param> /// <param name="logger">Optional logger used for communicator initialization.</param> /// <param name="observer">Optional communicator observer used for communicator initialization.</param> /// <param name="certificates">The user certificates to use with the SSL transport.</param> /// <param name="caCertificates">The certificate authorities to use with the SSL transport.</param> /// <param name="certificateValidationCallback">The certificate validation callback to use with the SSL transport.</param> /// <param name="passwordCallback">The password callback delegate to use with the SSL transport.</param> /// <param name="finderStr">The stringified Ice.RouterFinder proxy.</param> /// <param name="useCallbacks">True if the session should create an object adapter for receiving callbacks.</param> internal SessionHelper(ISessionCallback callback, string finderStr, bool useCallbacks, Dictionary <string, string> properties, ILogger?logger = null, ICommunicatorObserver?observer = null, X509Certificate2Collection?certificates = null, X509Certificate2Collection?caCertificates = null, RemoteCertificateValidationCallback?certificateValidationCallback = null, IPasswordCallback?passwordCallback = null) { _callback = callback; _finderStr = finderStr; _useCallbacks = useCallbacks; _properties = properties; _logger = logger; _observer = observer; _certificates = certificates; _caCertificates = caCertificates; _certificateValidationCallback = certificateValidationCallback; _passwordCallback = passwordCallback; }
/// <summary>Creates a SessionFactory object.</summary> /// <param name="callback">The callback for notifications about session establishment.</param> /// <param name="properties">Optional properties used for communicator initialization.</param> /// <param name="logger">Optional logger used for communicator initialization.</param> /// <param name="observer">Optional communicator observer used for communicator initialization.</param> /// <param name="certificates">Optional certificates used by secure transports.</param> /// <param name="caCertificates">Optional CA certificates used by secure transports.</param> /// /// <param name="certificateSelectionCallback">Optional certificate selection callback used by secure /// transports.</param> /// <param name="certificateValidationCallback">Optional certificate validation callback used by secure /// transports.</param> /// <param name="passwordCallback">Optional password callback used by secure transports.</param> public SessionFactoryHelper( ISessionCallback callback, Dictionary <string, string> properties, ILogger?logger = null, ICommunicatorObserver?observer = null, X509Certificate2Collection?certificates = null, X509Certificate2Collection?caCertificates = null, LocalCertificateSelectionCallback?certificateSelectionCallback = null, RemoteCertificateValidationCallback?certificateValidationCallback = null, IPasswordCallback?passwordCallback = null) { _callback = callback; _properties = properties; _logger = logger; _observer = observer; _certificates = certificates; _caCertificates = caCertificates; _certificateSelectionCallback = certificateSelectionCallback; _certificateValidationCallback = certificateValidationCallback; _passwordCallback = passwordCallback; _properties["Ice.RetryIntervals"] = "-1"; }
/// <summary> Execute the action specified by the given action object within /// a EMS Session. /// <p>Note: The value of PubSubDomain affects the behavior of this method. /// If PubSubDomain equals true, then a Session is passed to the callback. /// If false, then a Session is passed to the callback.</p> /// </summary> /// <param name="action">callback object that exposes the session /// </param> /// <returns> the result object from working with the session /// </returns> /// <exception cref="EMSException">If there is any problem accessing the EMS API</exception> public object Execute(ISessionCallback action) { return Execute(action, false); }
/// <summary> Execute the action specified by the given action object within a /// EMS Session. /// </summary> /// <remarks> Generalized version of <code>execute(SessionCallback)</code>, /// allowing the EMS Connection to be started on the fly. /// <p>Use <code>execute(SessionCallback)</code> for the general case. /// Starting the EMS Connection is just necessary for receiving messages, /// which is preferably achieved through the <code>receive</code> methods.</p> /// </remarks> /// <param name="action">callback object that exposes the session /// </param> /// <param name="startConnection">Start the connection before performing callback action. /// </param> /// <returns> the result object from working with the session /// </returns> /// <exception cref="EMSException">If there is any problem accessing the EMS API</exception> public virtual object Execute(ISessionCallback action, bool startConnection) { return Execute(action.DoInEms, startConnection); }
/// <summary> Execute the action specified by the given action object within a /// NMS Session. /// </summary> /// <remarks> Generalized version of <code>execute(ISessionCallback)</code>, /// allowing the NMS Connection to be started on the fly. /// <p>Use <code>execute(ISessionCallback)</code> for the general case. /// Starting the NMS Connection is just necessary for receiving messages, /// which is preferably achieved through the <code>receive</code> methods.</p> /// </remarks> /// <param name="action">callback object that exposes the session /// </param> /// <param name="startConnection">Start the connection before performing callback action. /// </param> /// <returns> the result object from working with the session /// </returns> /// <throws> NMSException if there is any problem </throws> public virtual object Execute(ISessionCallback action, bool startConnection) { AssertUtils.ArgumentNotNull(action, "Callback object must not be null"); IConnection conToClose = null; ISession sessionToClose = null; try { ISession sessionToUse = ConnectionFactoryUtils.DoGetTransactionalSession(ConnectionFactory, transactionalResourceFactory, startConnection); if (sessionToUse == null) { conToClose = CreateConnection(); sessionToClose = CreateSession(conToClose); if (startConnection) { conToClose.Start(); } sessionToUse = sessionToClose; } if (logger.IsDebugEnabled) { logger.Debug("Executing callback on NMS ISession [" + sessionToUse + "]"); } return action.DoInNms(sessionToUse); } finally { NmsUtils.CloseSession(sessionToClose); ConnectionFactoryUtils.ReleaseConnection(conToClose, ConnectionFactory, startConnection); } }