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


Quelle  LayerTreeOwnerTracker.h   Sprache: C

 
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* 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 mozilla_layers_LayerTreeOwnerTracker_h
#define mozilla_layers_LayerTreeOwnerTracker_h

#include "base/process.h"   // for base::ProcessId
#include "LayersTypes.h"    // for LayersId
#include "mozilla/Mutex.h"  // for mozilla::Mutex

#include <functional>
#include <map>

namespace mozilla {

namespace dom {
class ContentParent;
}

namespace layers {

/**
 * A utility class for tracking which content processes should be allowed
 * to access which layer trees.
 *
 * ProcessId's are used to track which content process can access the layer
 * tree, and in the case of nested browser's we use the top level content
 * processes' ProcessId.
 *
 * This class is only available in the main process and gpu process. Mappings
 * are synced from main process to the gpu process. The actual syncing happens
 * in GPUProcessManager, and so this class should not be used directly.
 */

class LayerTreeOwnerTracker final {
 public:
  static void Initialize();
  static void Shutdown();
  static LayerTreeOwnerTracker* Get();

  /**
   * Map aLayersId and aProcessId together so that that process
   * can access that layer tree.
   */

  void Map(LayersId aLayersId, base::ProcessId aProcessId);

  /**
   * Remove an existing mapping.
   */

  void Unmap(LayersId aLayersId, base::ProcessId aProcessId);

  /**
   * Checks whether it is okay for aProcessId to access aLayersId.
   */

  bool IsMapped(LayersId aLayersId, base::ProcessId aProcessId);

  void Iterate(
      const std::function<void(LayersId aLayersId, base::ProcessId aProcessId)>&
          aCallback);

 private:
  LayerTreeOwnerTracker();

  mozilla::Mutex mLayerIdsLock MOZ_UNANNOTATED;
  std::map<LayersId, base::ProcessId> mLayerIds;
};

}  // namespace layers
}  // namespace mozilla

#endif  // mozilla_layers_LayerTreeOwnerTracker_h

Messung V0.5
C=94 H=100 G=96

¤ Dauer der Verarbeitung: 0.14 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