private void NotifyList(ArrayList list, IResource resource, IPropertyChangeSet changeSet, bool deleting) { bool needCompact = false; int startCount = list.Count; for (int index = 0; index < startCount; index++) { IUpdateListener listener = null; lock ( list ) { WeakReference weakRef = (WeakReference)list [index]; if (!weakRef.IsAlive || weakRef.Target == null) { needCompact = true; continue; } listener = (IUpdateListener)weakRef.Target; } if (deleting) { listener.ResourceDeleting(resource); } else { listener.ResourceSaved(resource, changeSet); } } if (needCompact && _reentryLevel == 1) { CompactList(list); } }
public CpDeviceUpdateList(NetworkAdapter aAdapter, Preferences aPreferences, IUpdateListener aUpdateListener, CpDeviceReprogramListRepeater aRepeater, FirmwareCache aCache, VersionInfoReader aVersionInfoReader, ChangedHandler aAdded, ChangedHandler aRemoved) { iLock = new object(); iDisposed = false; iVersionInfoAvailable = false; iAdded = aAdded; iRemoved = aRemoved; iPreferences = aPreferences; iPreferences.EventFirmwareBetaChanged += HandleFirmwareBetaChanged; iUpdateListener = aUpdateListener; iCache = aCache; iVersionReader = aVersionInfoReader; iVersionReader.EventVersionInfoAvailable += VersionInfoAvailable; iPendingList = new List <CpDeviceReprogrammable>(); //iDeviceList = new CpDeviceReprogramList(Added, Removed); iRepeater = aRepeater; iRepeater.Added += Added; iRepeater.Removed += Removed; iDeviceUpdateList = new List <CpDeviceUpdate>(); SetAdapter(aAdapter); }
/// <summary> /// 检查更新 /// </summary> /// <param name="url"></param> /// <param name="customData"></param> /// <param name="listener"></param> public void CheckUpdate(string url, JObject customData, IUpdateListener listener) { this.CheckUpdateUrl = url; this.CustomData = customData; this.Listener = listener; CheckUpdate(); }
/// <summary> /// 检查更新 /// </summary> /// <param name="url"></param> /// <param name="customData"></param> /// <param name="listener"></param> public void CheckUpdate(int versionCode, string url, Dictionary <object, object> customData, IUpdateListener listener) { this.VersionCode = versionCode; this.CheckUpdateUrl = url; this.CustomData = customData; this.Listener = listener; CheckUpdate(); }
public AdvancedPage(IInvoker aInvoker, NetworkAdapter aAdapter, IUpdateListener aUpdateListener, CpDeviceReprogramListRepeater aRepeater, VersionInfoReader aVersionReader, string aId, string aViewId) : base(aId, aViewId) { iLock = new object(); iInvoker = aInvoker; iDeviceListAdvanced = new List <CpDeviceAdvanced>(); iAdvancedList = new CpDeviceAdvancedList(aAdapter, aUpdateListener, aRepeater, aVersionReader, Added, Removed); }
private void RemoveUpdateListenerFromList(ArrayList list, IUpdateListener listener) { for (int i = list.Count - 1; i >= 0; i--) { WeakReference weakRef = (WeakReference)list [i]; if (weakRef.IsAlive && weakRef.Target == listener) { weakRef.Target = null; } } }
public CpDeviceFacDef(CpDeviceReprogrammable aDevice, IPAddress aAdapterAddress, IUpdateListener aUpdateListener) { iLock = new object(); iAdapterAddress = aAdapterAddress; iDevice = aDevice; iDevice.Changed += HandleChanged; iUpdateListener = aUpdateListener; iUglyname = string.Format("linn-{0}", aDevice.MacAddress.Replace(":", "").Substring(6, 6)); }
public CpDeviceFacDefList(NetworkAdapter aAdapter, IUpdateListener aUpdateListener, CpDeviceReprogramListRepeater aRepeater, ChangedHandler aAdded, ChangedHandler aRemoved) { iLock = new object(); iDisposed = false; iAdded = aAdded; iRemoved = aRemoved; iUpdateListener = aUpdateListener; //iDeviceList = new CpDeviceReprogramList(Added, Removed); iRepeater = aRepeater; iDeviceFacDefList = new List <CpDeviceFacDef>(); SetAdapter(aAdapter); }
public CpDeviceAdvanced(CpDeviceReprogrammable aDevice, string aVariant, IPAddress aAdapterAddress, IUpdateListener aUpdateListener) { iLock = new object(); iDisposed = false; iDevice = aDevice; iDevice.Changed += HandleChanged; iDevice.ProgressChanged += HandleProgressChanged; iDevice.MessageChanged += HandleMessageChanged; iVariant = aVariant; iAdapterAddress = aAdapterAddress; iUpdateListener = aUpdateListener; iUglyname = string.Format("linn-{0}", aDevice.MacAddress.Replace(":", "").Substring(6, 6)); }
public CpDeviceUpdate(CpDeviceReprogrammable aDevice, Firmware aFirmware, IFirmwareManager aFirmwareManager, IPAddress aAdapterAddress, IUpdateListener aUpdateListener) { iLock = new object(); iDisposed = false; iAdapterAddress = aAdapterAddress; iDevice = aDevice; iDevice.Changed += HandleChanged; iDevice.ProgressChanged += HandleProgressChanged; iDevice.MessageChanged += HandleMessageChanged; iUpdateListener = aUpdateListener; iUglyname = string.Format("linn-{0}", aDevice.MacAddress.Replace(":", "").Substring(6, 6)); iFirmware = aFirmware; iFirmwareManager = aFirmwareManager; }
public CpDeviceAdvancedList(NetworkAdapter aAdapter, IUpdateListener aUpdateListener, CpDeviceReprogramListRepeater aRepeater, VersionInfoReader aVersionReader, ChangedHandler aAdded, ChangedHandler aRemoved) { iLock = new object(); iDisposed = false; iUpdateListener = aUpdateListener; iVersionReader = aVersionReader; iAdded = aAdded; iRemoved = aRemoved; iDeviceListAdvanced = new List <CpDeviceAdvanced>(); iRepeater = aRepeater; iRepeater.Added += Added; iRepeater.Removed += Removed; SetAdapter(aAdapter); }
public void RemoveUpdateListener(IUpdateListener listener, bool priority) { int knownType = listener.GetKnownType(); if (knownType >= 0) { ArrayList list; lock ( _typedUpdateListeners ) { list = (ArrayList)_typedUpdateListeners [knownType]; } if (list != null) { lock ( list ) { RemoveUpdateListenerFromList(list, listener); } } } else if (priority) { lock ( _priorityUpdateListeners ) { RemoveUpdateListenerFromList(_untypedUpdateListeners, listener); } } else { lock ( _untypedUpdateListeners ) { RemoveUpdateListenerFromList(_untypedUpdateListeners, listener); } } lock ( _allUpdateListeners ) { RemoveUpdateListenerFromList(_allUpdateListeners, listener); } CompactList(_allUpdateListeners); }
public void AddUpdateListener(IUpdateListener listener, bool priority) { int knownType = listener.GetKnownType(); if (knownType >= 0) { ArrayList list; lock ( _typedUpdateListeners ) { list = (ArrayList)_typedUpdateListeners [knownType]; if (list == null) { list = new ArrayList(); _typedUpdateListeners [knownType] = list; } } lock ( list ) { list.Add(new WeakReference(listener)); } } else if (priority) { lock ( _priorityUpdateListeners ) { _priorityUpdateListeners.Add(new WeakReference(listener)); } } else { lock ( _untypedUpdateListeners ) { _untypedUpdateListeners.Add(new WeakReference(listener)); } } lock ( _allUpdateListeners ) { _allUpdateListeners.Add(new WeakReference(listener)); } }
public XappController(IInvoker aInvoker, IHelper aHelper, INetworkManager aNetworkManager, Preferences aPreferences, PageBase aPageSettings, IUpdateListener aUpdateListener) { iNetworkManager = aNetworkManager; iNetworkManager.AdapterListChanged += HandleAdapterListChanged; iFramework = new Framework <TrackerSession>(OpenHome.Xen.Environment.AppPath + "/presentation"); iFramework.AddCss("css/global.css"); iRepeater = new CpDeviceReprogramListRepeater(); iCache = new FirmwareCache(aHelper.DataPath.FullName); VersionInfoReader.EUpdateType updateTypes = VersionInfoReader.EUpdateType.Stable; if (aPreferences.FirmwareBeta) { updateTypes |= VersionInfoReader.EUpdateType.Beta; } iVersionReader = new VersionInfoReader(VersionInfoReader.kDefaultUpdatesUrl, 1000 * 60 * 60 * 12, aHelper.DataPath.FullName, updateTypes, iCache); XappView mainView = new XappView("main", OpenHome.Xen.Environment.AppPath + "/presentation"); iMainPage = new MainPage(aInvoker, iNetworkManager.AdapterList.Adapter, aPreferences, aUpdateListener, iRepeater, "main", mainView.Id); iFramework.AddPage(iMainPage); iFramework.AddView(mainView); XappView updateView = new XappView("update", OpenHome.Xen.Environment.AppPath + "/presentation"); iUpdatePage = new UpdatePage(aInvoker, iNetworkManager.AdapterList.Adapter, aPreferences, aUpdateListener, iRepeater, iCache, iVersionReader, "update", updateView.Id); iUpdatePage.NumUpdateableChanged += HandleNumUpdateableChanged; iFramework.AddPage(iUpdatePage); iFramework.AddView(updateView); XappView settingsView = new XappView(aPageSettings.Id, OpenHome.Xen.Environment.AppPath + "/presentation"); iSettingsPage = aPageSettings; iFramework.AddPage(iSettingsPage); iFramework.AddView(settingsView); XappView diagnosticsView = new XappView("diagnostics", OpenHome.Xen.Environment.AppPath + "/presentation"); iDiagnosticsPage = new DiagnosticsPage(aInvoker, aHelper, aPreferences, "diagnostics", diagnosticsView.Id); iDiagnosticsPage.NumDiagnosticsChanged += HandleNumDiagnosticsChanged; iFramework.AddPage(iDiagnosticsPage); iFramework.AddView(diagnosticsView); XappView advancedView = new XappView("advanced", OpenHome.Xen.Environment.AppPath + "/presentation"); iAdvancedPage = new AdvancedPage(aInvoker, iNetworkManager.AdapterList.Adapter, aUpdateListener, iRepeater, iVersionReader, "advanced", advancedView.Id); iFramework.AddPage(iAdvancedPage); iFramework.AddView(advancedView); XappView aboutView = new XappView("about", OpenHome.Xen.Environment.AppPath + "/presentation"); iAboutPage = new AboutPage(aInvoker, aHelper, "about", aboutView.Id); iFramework.AddPage(iAboutPage); iFramework.AddView(aboutView); iWebServer = new WebServer(iFramework); iVersionReader.Start(); }
public void RemoveUpdaterListener(IUpdateListener listener) { updaterList.Remove(listener); }
public void AddUpdaterListener(IUpdateListener listener) { updaterList.Add(listener); }
public static void Unregister(IUpdateListener listener) { m_dirty = m_listeners.Remove(listener); }
public void AddUpdateListener(IUpdateListener obj) { updateList.Add(obj); }
public MainPage(IInvoker aInvoker, NetworkAdapter aAdapter, Preferences aPreferences, IUpdateListener aUpdateListener, CpDeviceReprogramListRepeater aRepeater, string aId, string aViewId) : base(aId, aViewId) { iInvoker = aInvoker; iPreferences = aPreferences; iLock = new object(); iDeviceListRecognised = new List <CpDeviceRecognised>(); List <IRecogniser> recognisers = new List <IRecogniser>(); recognisers.Add(new RecogniserLinn()); recognisers.Add(new RecogniserSonos()); recognisers.Add(new RecogniserMediaServer()); iRecogniserList = new CpDeviceRecogniserList(recognisers, Added, Removed); }
public UpdatePage(IInvoker aInvoker, NetworkAdapter aAdapter, Preferences aPreferences, IUpdateListener aUpdateListener, CpDeviceReprogramListRepeater aRepeater, FirmwareCache aCache, VersionInfoReader aVersionReader, string aId, string aViewId) : base(aId, aViewId) { iInvoker = aInvoker; iLock = new object(); iDeviceListUpdateable = new List <CpDeviceUpdate>(); iReprogramList = new CpDeviceUpdateList(aAdapter, aPreferences, aUpdateListener, aRepeater, aCache, aVersionReader, Added, Removed); }
public static void Register(IUpdateListener listener) { m_dirty = m_listeners.Add(listener); }