Skip to content
Snippets Groups Projects
Select Git revision
  • 3ffed21262bef69ee511e933c51c0be17fb61dae
  • master default protected
  • android-7.1.2_r28_klist
  • oreo-mr1-iot-release
  • sdk-release
  • pie-cts-dev
  • pie-cts-release
  • pie-vts-release
  • nougat-iot-release
  • pie-gsi
  • pie-platform-release
  • pie-r2-release
  • pie-r2-s1-release
  • pie-release
  • pie-dev
  • oreo-m4-s4-release
  • o-mr1-iot-preview-8
  • oreo-m2-s2-release
  • oreo-m2-s1-release
  • oreo-m6-s2-release
  • oreo-m6-s3-release
  • android-o-mr1-iot-release-1.0.4
  • android-9.0.0_r8
  • android-9.0.0_r7
  • android-9.0.0_r6
  • android-9.0.0_r5
  • android-8.1.0_r46
  • android-8.1.0_r45
  • android-n-iot-release-smart-display-r2
  • android-vts-8.1_r5
  • android-cts-8.1_r8
  • android-cts-8.0_r12
  • android-cts-7.1_r20
  • android-cts-7.0_r24
  • android-cts-6.0_r31
  • android-o-mr1-iot-release-1.0.3
  • android-cts-9.0_r1
  • android-8.1.0_r43
  • android-8.1.0_r42
  • android-n-iot-release-smart-display
  • android-p-preview-5
41 results

stub_binder_wrapper.cc

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