// Copyright 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_UPDATE_CLIENT_PING_MANAGER_H_ #define COMPONENTS_UPDATE_CLIENT_PING_MANAGER_H_ #include #include "base/callback_forward.h" #include "base/macros.h" #include "base/memory/ref_counted.h" #include "base/threading/thread_checker.h" namespace update_client { class Configurator; class Component; class PingManager : public base::RefCountedThreadSafe { public: // |error| is 0 if the ping was sent successfully, otherwise |error| contains // a value with no particular meaning for the caller. using Callback = base::OnceCallback; explicit PingManager(scoped_refptr config); // Sends a ping for the |item|. |callback| is invoked after the ping is sent // or an error has occured. The ping itself is not persisted and it will // be discarded if it has not been sent for any reason. virtual void SendPing(const Component& component, Callback callback); protected: virtual ~PingManager(); private: friend class base::RefCountedThreadSafe; THREAD_CHECKER(thread_checker_); const scoped_refptr config_; DISALLOW_COPY_AND_ASSIGN(PingManager); }; } // namespace update_client #endif // COMPONENTS_UPDATE_CLIENT_PING_MANAGER_H_