Merge "libbinderwrapper: Add BinderWrapper::GetOrCreateInstance()"
am: 946d8152b2
* commit '946d8152b2f91b78e7d41363254278e712ec3f4b':
libbinderwrapper: Add BinderWrapper::GetOrCreateInstance()
This commit is contained in:
commit
1a0a184a54
2 changed files with 12 additions and 0 deletions
|
|
@ -30,6 +30,7 @@ class BBinder;
|
||||||
class IBinder;
|
class IBinder;
|
||||||
|
|
||||||
// Wraps libbinder to make it testable.
|
// Wraps libbinder to make it testable.
|
||||||
|
// NOTE: Static methods of this class are not thread-safe.
|
||||||
class BinderWrapper {
|
class BinderWrapper {
|
||||||
public:
|
public:
|
||||||
virtual ~BinderWrapper() {}
|
virtual ~BinderWrapper() {}
|
||||||
|
|
@ -50,6 +51,10 @@ class BinderWrapper {
|
||||||
// InitForTesting().
|
// InitForTesting().
|
||||||
static BinderWrapper* Get();
|
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
|
// Gets the binder for communicating with the service identified by
|
||||||
// |service_name|, returning null immediately if it doesn't exist.
|
// |service_name|, returning null immediately if it doesn't exist.
|
||||||
virtual sp<IBinder> GetService(const std::string& service_name) = 0;
|
virtual sp<IBinder> GetService(const std::string& service_name) = 0;
|
||||||
|
|
|
||||||
|
|
@ -50,4 +50,11 @@ BinderWrapper* BinderWrapper::Get() {
|
||||||
return instance_;
|
return instance_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// static
|
||||||
|
BinderWrapper* BinderWrapper::GetOrCreateInstance() {
|
||||||
|
if (!instance_)
|
||||||
|
instance_ = new RealBinderWrapper();
|
||||||
|
return instance_;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace android
|
} // namespace android
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue