client_binder.h revision e844c1a5604765bbddafa7e05f1143a27f136747
116daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley//
216daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley// Copyright (C) 2015 The Android Open Source Project
316daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley//
416daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley// Licensed under the Apache License, Version 2.0 (the "License");
516daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley// you may not use this file except in compliance with the License.
616daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley// You may obtain a copy of the License at
716daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley//
816daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley//      http://www.apache.org/licenses/LICENSE-2.0
916daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley//
1016daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley// Unless required by applicable law or agreed to in writing, software
1116daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley// distributed under the License is distributed on an "AS IS" BASIS,
1216daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1316daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley// See the License for the specific language governing permissions and
1416daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley// limitations under the License.
1516daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley//
1616daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley
1716daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley#ifndef UPDATE_ENGINE_CLIENT_LIBRARY_CLIENT_IMPL_H_
1816daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley#define UPDATE_ENGINE_CLIENT_LIBRARY_CLIENT_IMPL_H_
1916daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley
2016daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley#include <cstdint>
2116daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley#include <memory>
2216daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley#include <string>
2316daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley
2416daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley#include <base/macros.h>
2516daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley
2616daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley#include "update_engine/client_library/include/update_engine/client.h"
2739910dcd1d68987ccee7c3031dc269233a8490bbAlex Deymo#include "update_engine/dbus-proxies.h"
2816daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley
2916daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wileynamespace update_engine {
3016daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wileynamespace internal {
3116daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley
3216daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wileyclass UpdateEngineClientImpl : public UpdateEngineClient {
3316daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley public:
3416daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley  UpdateEngineClientImpl();
3516daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley  virtual ~UpdateEngineClientImpl() = default;
3616daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley
3716daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley  bool AttemptUpdate(const std::string& app_version,
3816daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley                     const std::string& omaha_url,
3916daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley                     bool at_user_request) override;
4016daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley
4116daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley  bool GetStatus(int64_t* out_last_checked_time,
4216daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley                 double* out_progress,
4316daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley                 UpdateStatus* out_update_status,
4416daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley                 std::string* out_new_version,
4516daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley                 int64_t* out_new_size) override;
4616daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley
47e844c1a5604765bbddafa7e05f1143a27f136747Casey Dahlin  bool ResetStatus() override;
48e844c1a5604765bbddafa7e05f1143a27f136747Casey Dahlin
4916daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley  bool SetTargetChannel(const std::string& target_channel) override;
5016daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley
5116daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley  bool GetTargetChannel(std::string* out_channel) override;
5216daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley
5316daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley  bool GetChannel(std::string* out_channel) override;
5416daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley
5516daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley private:
5616daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley  std::unique_ptr<org::chromium::UpdateEngineInterfaceProxy> proxy_;
5716daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley
5816daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley  DISALLOW_COPY_AND_ASSIGN(UpdateEngineClientImpl);
5916daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley};  // class UpdateEngineClientImpl
6016daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley
6116daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley}  // namespace internal
6216daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley}  // namespace update_engine
6316daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley
6416daa08470beb5021b85618f1b3ee214d89e59a1Christopher Wiley#endif  // UPDATE_ENGINE_CLIENT_LIBRARY_CLIENT_IMPL_H_
65