#ifndef CHROME_UPDATER_APP_SERVER_UPDATE_SERVICE_INTERNAL_STUB_H_
#define CHROME_UPDATER_APP_SERVER_UPDATE_SERVICE_INTERNAL_STUB_H_
#include "base/memory/scoped_refptr.h"
#include "chrome/updater/mojom/updater_service_internal.mojom.h"
#include "chrome/updater/update_service.h"
#include "chrome/updater/update_service_internal.h"
#include "components/named_mojo_ipc_server/named_mojo_ipc_server.h"
namespace updater {
class UpdateServiceInternalStub : public mojom::UpdateServiceInternal {
public:
UpdateServiceInternalStub(scoped_refptr<updater::UpdateServiceInternal> impl,
UpdaterScope scope,
base::RepeatingClosure task_start_listener,
base::RepeatingClosure task_end_listener);
UpdateServiceInternalStub(const UpdateServiceInternalStub&) = delete;
UpdateServiceInternalStub& operator=(const UpdateServiceInternalStub&) =
delete;
~UpdateServiceInternalStub() override;
void Run(RunCallback callback) override;
void Hello(HelloCallback callback) override;
private:
void OnClientDisconnected();
named_mojo_ipc_server::NamedMojoIpcServer<mojom::UpdateServiceInternal>
server_;
scoped_refptr<updater::UpdateServiceInternal> impl_;
base::RepeatingClosure task_start_listener_;
base::RepeatingClosure task_end_listener_;
};
}
#endif