Example #1
0
        /// <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);
        }
Example #3
0
        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);
        }
Example #4
0
        /// <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);
        }
Example #5
0
 /// <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";
        }
Example #7
0
 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;
 }
Example #8
0
        /// <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();
        }
Example #9
0
 /// <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;
 }
Example #10
0
        /// <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";
        }
Example #11
0
 /// <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);
 }
Example #12
0
 /// <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);
 }
Example #13
0
        /// <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);
            }
        }