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); }
/// <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); }
/// <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; }