1// Copyright (c) 2014 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#ifndef COMPONENTS_GCM_DRIVER_DEFAULT_GCM_APP_HANDLER_H_
6#define COMPONENTS_GCM_DRIVER_DEFAULT_GCM_APP_HANDLER_H_
7
8#include "base/compiler_specific.h"
9#include "components/gcm_driver/gcm_app_handler.h"
10
11namespace gcm {
12
13// The default app handler that is triggered when there is no registered app
14// handler for an application id.
15class DefaultGCMAppHandler : public GCMAppHandler {
16 public:
17  DefaultGCMAppHandler();
18  virtual ~DefaultGCMAppHandler();
19
20  // Overridden from GCMAppHandler:
21  virtual void ShutdownHandler() OVERRIDE;
22  virtual void OnMessage(const std::string& app_id,
23                         const GCMClient::IncomingMessage& message) OVERRIDE;
24  virtual void OnMessagesDeleted(const std::string& app_id) OVERRIDE;
25  virtual void OnSendError(
26      const std::string& app_id,
27      const GCMClient::SendErrorDetails& send_error_details) OVERRIDE;
28  virtual void OnConnected(const net::IPEndPoint& ip_endpoint) OVERRIDE;
29  virtual void OnDisconnected() OVERRIDE;
30
31 private:
32  DISALLOW_COPY_AND_ASSIGN(DefaultGCMAppHandler);
33};
34
35}  // namespace gcm
36
37#endif  // COMPONENTS_GCM_DRIVER_DEFAULT_GCM_APP_HANDLER_H_
38