summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorAlex Vakulenko <avakulenko@google.com>2016-01-04 12:22:05 -0800
committerAlex Vakulenko <avakulenko@google.com>2016-01-04 12:56:27 -0800
commit08c9891c9c850db7d7fdfcd77d694bcefe836884 (patch)
tree25b6d64db6b99b1207d0197ae35f17e7f8db9b46 /include
parent5b7563a085ef118e19c0f8417d0750d29253dc4f (diff)
downloadcore-08c9891c9c850db7d7fdfcd77d694bcefe836884.tar.gz
core-08c9891c9c850db7d7fdfcd77d694bcefe836884.tar.bz2
core-08c9891c9c850db7d7fdfcd77d694bcefe836884.zip
libbinderwrapper: Add BinderWrapper::GetOrCreateInstance()
In libraries relying on binder it is useful to be able to obtain an existing copy of BinderWrapper or create one if it doesn't exist. This allows to abstract the actual RPC (binder) from clients who have no other dependencies on this RPC. BUG: 23782171 Change-Id: Ie775d3d8ab83d75e38abc7e1385eb39a363555ef
Diffstat (limited to 'include')
-rw-r--r--include/binderwrapper/binder_wrapper.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/binderwrapper/binder_wrapper.h b/include/binderwrapper/binder_wrapper.h
index 921c4ed19..ccda825b3 100644
--- a/include/binderwrapper/binder_wrapper.h
+++ b/include/binderwrapper/binder_wrapper.h
@@ -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;