Skip to content
Snippets Groups Projects
Select Git revision
  • 6f661860f421ee9256cd4eb5d0e75d343d1fc2d1
  • master default protected
  • android-msm-bullhead-3.10-nougat_kgdb_less_changes
  • android-msm-bullhead-3.10-nougat_kgdb
  • android-msm-bullhead-3.10-nougat_klist
  • android-4.4
  • android-msm-vega-4.4-oreo-daydream
  • android-msm-wahoo-4.4-p-preview-5
  • android-msm-wahoo-4.4-pie
  • android-msm-marlin-3.18-p-preview-5
  • android-msm-marlin-3.18-pie
  • android-msm-wahoo-2018.07-oreo-m2
  • android-msm-wahoo-2018.07-oreo-m4
  • android-msm-wahoo-4.4-p-preview-4
  • android-msm-bullhead-3.10-oreo-m6
  • android-msm-angler-3.10-oreo-m6
  • android-msm-marlin-3.18-p-preview-4
  • android-msm-stargazer-3.18-oreo-wear-dr
  • android-msm-catshark-3.18-oreo-wear-dr
  • android-msm-wahoo-4.4-oreo-m2
  • android-msm-wahoo-4.4-oreo-m4
  • android-daydreamos-8.0.0_r0.5
  • android-8.1.0_r0.92
  • android-8.1.0_r0.91
  • android-daydreamos-8.0.0_r0.4
  • android-p-preview-5_r0.2
  • android-p-preview-5_r0.1
  • android-9.0.0_r0.5
  • android-9.0.0_r0.4
  • android-9.0.0_r0.2
  • android-9.0.0_r0.1
  • android-8.1.0_r0.81
  • android-8.1.0_r0.80
  • android-8.1.0_r0.78
  • android-8.1.0_r0.76
  • android-8.1.0_r0.75
  • android-8.1.0_r0.72
  • android-8.1.0_r0.70
  • android-p-preview-4_r0.2
  • android-p-preview-4_r0.1
  • android-wear-8.0.0_r0.30
41 results

file.c

Blame
  • stub_binder_wrapper.cc 2.52 KiB
    /*
     * Copyright (C) 2015 The Android Open Source Project
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *      http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
    
    #include <binderwrapper/stub_binder_wrapper.h>
    
    #include <base/logging.h>
    #include <binder/Binder.h>
    #include <binder/IBinder.h>
    
    namespace android {
    
    StubBinderWrapper::StubBinderWrapper()
        : calling_uid_(-1),
          calling_pid_(-1) {}
    
    StubBinderWrapper::~StubBinderWrapper() = default;
    
    void StubBinderWrapper::SetBinderForService(const std::string& service_name,
                                                const sp<IBinder>& binder) {
      services_to_return_[service_name] = binder;
    }
    
    sp<IBinder> StubBinderWrapper::GetRegisteredService(
        const std::string& service_name) const {
      const auto it = registered_services_.find(service_name);
      return it != registered_services_.end() ? it->second : sp<IBinder>();
    }
    
    void StubBinderWrapper::NotifyAboutBinderDeath(const sp<IBinder>& binder) {
      const auto it = death_callbacks_.find(binder);
      if (it != death_callbacks_.end())
        it->second.Run();
    }
    
    sp<IBinder> StubBinderWrapper::GetService(const std::string& service_name) {
      const auto it = services_to_return_.find(service_name);
      return it != services_to_return_.end() ? it->second : sp<IBinder>();
    }
    
    bool StubBinderWrapper::RegisterService(const std::string& service_name,
                                            const sp<IBinder>& binder) {
      registered_services_[service_name] = binder;
      return true;
    }
    
    sp<BBinder> StubBinderWrapper::CreateLocalBinder() {
      sp<BBinder> binder(new BBinder());
      local_binders_.push_back(binder);
      return binder;
    }
    
    bool StubBinderWrapper::RegisterForDeathNotifications(
        const sp<IBinder>& binder,
        const ::base::Closure& callback) {
      death_callbacks_[binder] = callback;
      return true;
    }
    
    bool StubBinderWrapper::UnregisterForDeathNotifications(
        const sp<IBinder>& binder) {
      death_callbacks_.erase(binder);
      return true;
    }
    
    uid_t StubBinderWrapper::GetCallingUid() {
      return calling_uid_;
    }
    
    pid_t StubBinderWrapper::GetCallingPid() {
      return calling_pid_;
    }
    
    }  // namespace android