// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_COMMON_DEPRECATED_EVENT_SYS_H_ #define CHROME_COMMON_DEPRECATED_EVENT_SYS_H_ #pragma once // TODO: This class should be removed or moved to Notifier code. // See Bug 42450 (http://code.google.com/p/chromium/issues/detail?id=42450). namespace base { class AutoLock; class Lock; } // An abstract base class for listening to events. // // Don't inherit from this class yourself. Using NewEventListenerHookup() is // much easier. template <typename EventType> class EventListener { public: virtual void HandleEvent(const EventType& event) = 0; protected: virtual ~EventListener() {} }; // See the -inl.h for details about the following. template <typename EventTraits, typename NotifyLock = base::Lock, typename ScopedNotifyLocker = base::AutoLock> class EventChannel; class EventListenerHookup; template <typename EventChannel, typename CallbackObject, typename CallbackMethod> EventListenerHookup* NewEventListenerHookup(EventChannel* channel, CallbackObject* cbobject, CallbackMethod cbmethod); template <typename EventChannel, typename CallbackObject, typename CallbackMethod, typename CallbackArg0> EventListenerHookup* NewEventListenerHookup(EventChannel* channel, CallbackObject* cbobject, CallbackMethod cbmethod, CallbackArg0 arg0); #endif // CHROME_COMMON_DEPRECATED_EVENT_SYS_H_