chromium/chrome/updater/ipc/update_service_proxy_posix.h

// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROME_UPDATER_IPC_UPDATE_SERVICE_PROXY_POSIX_H_
#define CHROME_UPDATER_IPC_UPDATE_SERVICE_PROXY_POSIX_H_

#include <memory>
#include <optional>

#include "base/functional/callback_forward.h"
#include "base/memory/ref_counted.h"
#include "base/memory/weak_ptr.h"
#include "base/sequence_checker.h"
#include "base/types/expected.h"
#include "chrome/updater/app/server/posix/mojom/updater_service.mojom.h"
#include "chrome/updater/update_service.h"
#include "chrome/updater/updater_scope.h"
#include "mojo/public/cpp/bindings/remote.h"

namespace base {
class FilePath;
class Version;
}  // namespace base

namespace mojo {
class IsolatedConnection;
class PlatformChannelEndpoint;
}  // namespace mojo

namespace updater {

RpcError;

struct RegistrationRequest;

// UpdateServiceProxyImpl connects to the active updater instance server and
// runs its implementation of UpdateService methods. All functions and
// callbacks must be called on the same sequence.
class UpdateServiceProxyImpl
    : public base::RefCountedThreadSafe<UpdateServiceProxyImpl> {};

}  // namespace updater

#endif  // CHROME_UPDATER_IPC_UPDATE_SERVICE_PROXY_POSIX_H_