LCOV - code coverage report
Current view: directory - ipc/chromium/src/chrome/common - notification_source.h (source / functions) Found Hit Coverage
Test: app.info Lines: 7 0 0.0 %
Date: 2012-06-02 Functions: 6 0 0.0 %

       1                 : // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
       2                 : // Use of this source code is governed by a BSD-style license that can be
       3                 : // found in the LICENSE file.
       4                 : 
       5                 : // This file defines the type used to provide sources for NotificationService
       6                 : // notifications.
       7                 : 
       8                 : #ifndef CHROME_COMMON_NOTIFICATION_SOURCE_H__
       9                 : #define CHROME_COMMON_NOTIFICATION_SOURCE_H__
      10                 : 
      11                 : #include "base/basictypes.h"
      12                 : 
      13                 : // Do not declare a NotificationSource directly--use either
      14                 : // "Source<sourceclassname>(sourceclasspointer)" or
      15                 : // NotificationService::AllSources().
      16                 : class NotificationSource {
      17                 :  public:
      18                 :   NotificationSource(const NotificationSource& other) : ptr_(other.ptr_) { }
      19               0 :   ~NotificationSource() {}
      20                 : 
      21                 :   // NotificationSource can be used as the index for a map; this method
      22                 :   // returns the pointer to the current source as an identifier, for use as a
      23                 :   // map index.
      24               0 :   uintptr_t map_key() const { return reinterpret_cast<uintptr_t>(ptr_); }
      25                 : 
      26               0 :   bool operator!=(const NotificationSource& other) const {
      27               0 :     return ptr_ != other.ptr_;
      28                 :   }
      29                 :   bool operator==(const NotificationSource& other) const {
      30                 :     return ptr_ == other.ptr_;
      31                 :   }
      32                 : 
      33                 :  protected:
      34               0 :   NotificationSource(void* ptr) : ptr_(ptr) {}
      35                 : 
      36                 :   void* ptr_;
      37                 : };
      38                 : 
      39                 : template <class T>
      40               0 : class Source : public NotificationSource {
      41                 :  public:
      42               0 :   Source(T* ptr) : NotificationSource(ptr) {}
      43                 : 
      44                 :   Source(const NotificationSource& other)
      45                 :     : NotificationSource(other) {}
      46                 : 
      47                 :   T* operator->() const { return ptr(); }
      48                 :   T* ptr() const { return static_cast<T*>(ptr_); }
      49                 : };
      50                 : 
      51                 : #endif  // CHROME_COMMON_NOTIFICATION_SOURCE_H__

Generated by: LCOV version 1.7