示例#1
0
        private bool m_disposed;                     // Whether or not this manager has been disposed

        //--//

        /// <summary>
        /// Creates and initializes a new BTManager
        /// </summary>
        protected BTManager(BTDriver driver, IPowerPolicy pp)
        {
            m_driver = null;

            try
            {
                m_driver = driver;
                m_pp = (null == pp) ? new DefaultPowerPolicy() : pp;

                m_outstandingConnections = new ArrayList();
                m_connectionsToBeProcessed = new ArrayList();
                m_newCommand = new AutoResetEvent(false);

                m_scheduler = new Thread(new ThreadStart(AggregateAndDispatch));
                m_scheduler.Start();

                m_disposed = false;
            }
            catch
            {
                m_disposed = true;

                throw;
            }

            // Now apply policy for no pending commands
            m_pp.ApplyPolicy(m_driver, null, null);
        }
示例#2
0
        private bool m_disposed;                      // Whether or not this manager has been disposed

        //--//

        /// <summary>
        /// Creates and initializes a new BTManager
        /// </summary>
        protected BTManager(BTDriver driver, IPowerPolicy pp)
        {
            m_driver = null;

            try
            {
                m_driver = driver;
                m_pp     = (null == pp) ? new DefaultPowerPolicy() : pp;

                m_outstandingConnections   = new ArrayList();
                m_connectionsToBeProcessed = new ArrayList();
                m_newCommand = new AutoResetEvent(false);

                m_scheduler = new Thread(new ThreadStart(AggregateAndDispatch));
                m_scheduler.Start();

                m_disposed = false;
            }
            catch
            {
                m_disposed = true;

                throw;
            }

            // Now apply policy for no pending commands
            m_pp.ApplyPolicy(m_driver, null, null);
        }
示例#3
0
        /// <summary>
        /// Creates a new instance of BTManager.  Locks the BTManager type so that only one
        /// manager can be created.
        /// </summary>
        /// <param name="driver">
        /// The BTDriver to be used to communicate with the underlying Bluetooth chip.
        /// </param>
        /// <param name="pp">
        /// The power policy to be used while managing connections.
        /// </param>
        /// <returns>
        /// The singleton instance of BTManager
        /// </returns>
        public static BTManager GetManager(BTDriver driver, IPowerPolicy pp)
        {
            if (null == s_manager)
            {
                lock (typeof(BTManager))
                {
                    if (null == s_manager)
                    {
                        s_manager = new BTManager(driver, pp);
                    }
                }
            }

            return(s_manager);
        }
示例#4
0
        /// <summary>
        /// Creates a new instance of BTManager.  Locks the BTManager type so that only one
        /// manager can be created.
        /// </summary>
        /// <param name="driver">
        /// The BTDriver to be used to communicate with the underlying Bluetooth chip.
        /// </param>
        /// <param name="pp">
        /// The power policy to be used while managing connections.
        /// </param>
        /// <returns>
        /// The singleton instance of BTManager
        /// </returns>
        public static BTManager GetManager(BTDriver driver, IPowerPolicy pp)
        {
            if (null == s_manager)
            {
                lock (typeof(BTManager))
                {
                    if (null == s_manager)
                    {
                        s_manager = new BTManager(driver, pp);
                    }
                }
            }

            return s_manager;
        }