|  | // Copyright (c) 2014 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 COMPONENTS_GCM_DRIVER_GCM_CONNECTION_OBSERVER_H_ | 
|  | #define COMPONENTS_GCM_DRIVER_GCM_CONNECTION_OBSERVER_H_ | 
|  |  | 
|  |  | 
|  | namespace net { | 
|  | class IPEndPoint; | 
|  | } | 
|  |  | 
|  | namespace gcm { | 
|  |  | 
|  | // Interface for objects observing GCM connection events. | 
|  | class GCMConnectionObserver { | 
|  | public: | 
|  | GCMConnectionObserver(); | 
|  | virtual ~GCMConnectionObserver(); | 
|  |  | 
|  | // Called when a new connection is established and a successful handshake | 
|  | // has been performed. Note that |ip_endpoint| is only set if available for | 
|  | // the current platform. | 
|  | // Default implementation does nothing. | 
|  | virtual void OnConnected(const net::IPEndPoint& ip_endpoint); | 
|  |  | 
|  | // Called when the connection is interrupted. | 
|  | // Default implementation does nothing. | 
|  | virtual void OnDisconnected(); | 
|  | }; | 
|  |  | 
|  | }  // namespace gcm | 
|  |  | 
|  | #endif  // COMPONENTS_GCM_DRIVER_GCM_CONNECTION_OBSERVER_H_ |