Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  nsUpdateSyncManager.h   Sprache: C

 
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim:set ts=2 sw=2 sts=2 et cindent: */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */


#ifndef nsUpdateSyncManager_h__
#define nsUpdateSyncManager_h__

#include "mozilla/AlreadyAddRefed.h"
#include "nsIObserver.h"
#include "nsIUpdateService.h"
#include "MultiInstanceLock.h"

// The update sync manager is responsible for making sure that only one
// instance of the application is running at the time we want to start updating
// it. It does this by taking a multi-instance lock very early during the
// application's startup process. Then, when app update tasks are ready to run,
// the update service asks us whether anything else has also taken that lock,
// which, if true, would mean another instance of the application is currently
// running and performing update tasks should be avoided (the update service
// also runs a timeout and eventually goes ahead with the update in order to
// prevent an external program from effectively disabling updates).
class nsUpdateSyncManager final : public nsIUpdateSyncManager,
                                  public nsIObserver {
 public:
  explicit nsUpdateSyncManager(nsIFile* anAppFile = nullptr);

  NS_DECL_THREADSAFE_ISUPPORTS
  NS_DECL_NSIUPDATESYNCMANAGER
  NS_DECL_NSIOBSERVER

  static already_AddRefed<nsUpdateSyncManager> GetSingleton();

 private:
  ~nsUpdateSyncManager();

  nsUpdateSyncManager(nsUpdateSyncManager&) = delete;
  nsUpdateSyncManager(nsUpdateSyncManager&&) = delete;
  nsUpdateSyncManager& operator=(nsUpdateSyncManager&) = delete;
  nsUpdateSyncManager& operator=(nsUpdateSyncManager&&) = delete;

  nsresult OpenLock(nsIFile* anAppFile = nullptr);
  void ReleaseLock();

  mozilla::MultiInstLockHandle mLock = MULTI_INSTANCE_LOCK_HANDLE_ERROR;
};

#endif  // nsUpdateSyncManager_h__

Messung V0.5
C=93 H=85 G=88

¤ Dauer der Verarbeitung: 0.10 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge