Merge "libbinderwrapper: Add BinderWrapper::GetOrCreateInstance()"

This commit is contained in:
Alex Vakulenko 2016-01-04 21:02:21 +00:00 committed by Gerrit Code Review
commit 946d8152b2
2 changed files with 12 additions and 0 deletions

View file

@ -30,6 +30,7 @@ class BBinder;
class IBinder;
// Wraps libbinder to make it testable.
// NOTE: Static methods of this class are not thread-safe.
class BinderWrapper {
public:
virtual ~BinderWrapper() {}
@ -50,6 +51,10 @@ class BinderWrapper {
// InitForTesting().
static BinderWrapper* Get();
// Returns the singleton instance if it was previously created by Create() or
// set by InitForTesting(), or creates a new one by calling Create().
static BinderWrapper* GetOrCreateInstance();
// Gets the binder for communicating with the service identified by
// |service_name|, returning null immediately if it doesn't exist.
virtual sp<IBinder> GetService(const std::string& service_name) = 0;

View file

@ -50,4 +50,11 @@ BinderWrapper* BinderWrapper::Get() {
return instance_;
}
// static
BinderWrapper* BinderWrapper::GetOrCreateInstance() {
if (!instance_)
instance_ = new RealBinderWrapper();
return instance_;
}
} // namespace android