diff options
author | Steven Moreland <smoreland@google.com> | 2018-10-08 15:56:44 -0700 |
---|---|---|
committer | Steven Moreland <smoreland@google.com> | 2018-10-10 02:27:02 +0000 |
commit | e3a28b1a1559895cf26ad6586456654f9910e5dc (patch) | |
tree | f6c0db2d098fa8831c7abf777e34d09a7afbe453 | |
parent | 562d525c2ab1dfc12d05694175634f047242a2d7 (diff) | |
download | native-e3a28b1a1559895cf26ad6586456654f9910e5dc.tar.gz |
libbinder_ndk: NDK comments for interface utils
The comments in this file were not consistent with the rest of the
module.
Bug: 112664205
Test: N/A
Change-Id: Ie95a8d34f297628c49bcc6810f432ade61dcd62a
-rw-r--r-- | libs/binder/ndk/include_ndk/android/binder_interface_utils.h | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/libs/binder/ndk/include_ndk/android/binder_interface_utils.h b/libs/binder/ndk/include_ndk/android/binder_interface_utils.h index 6782ce0c3a..5a4196a3f2 100644 --- a/libs/binder/ndk/include_ndk/android/binder_interface_utils.h +++ b/libs/binder/ndk/include_ndk/android/binder_interface_utils.h @@ -37,12 +37,18 @@ namespace ndk { -// analog using std::shared_ptr for RefBase-like semantics +/** + * analog using std::shared_ptr for internally held refcount + */ class SharedRefBase { public: SharedRefBase() {} virtual ~SharedRefBase() {} + /** + * A shared_ptr must be held to this object when this is called. This must be called once during + * the lifetime of this object. + */ std::shared_ptr<SharedRefBase> ref() { std::shared_ptr<SharedRefBase> thiz = mThis.lock(); @@ -51,6 +57,9 @@ public: return thiz; } + /** + * Convenience method for a ref (see above) which automatically casts to the desired child type. + */ template <typename CHILD> std::shared_ptr<CHILD> ref() { return std::static_pointer_cast<CHILD>(ref()); @@ -70,13 +79,17 @@ private: std::weak_ptr<SharedRefBase> mThis; }; -// wrapper analog to IInterface +/** + * wrapper analog to IInterface + */ class ICInterface : public SharedRefBase { public: ICInterface() {} virtual ~ICInterface() {} - // This either returns the single existing implementation or creates a new implementation. + /** + * This either returns the single existing implementation or creates a new implementation. + */ virtual SpAIBinder asBinder() = 0; /** @@ -86,7 +99,9 @@ public: virtual bool isRemote() = 0; }; -// wrapper analog to BnInterface +/** + * implementation of IInterface for server (n = native) + */ template <typename INTERFACE> class BnCInterface : public INTERFACE { public: @@ -98,8 +113,10 @@ public: bool isRemote() override { return true; } protected: - // This function should only be called by asBinder. Otherwise, there is a possibility of - // multiple AIBinder* objects being created for the same instance of an object. + /** + * This function should only be called by asBinder. Otherwise, there is a possibility of + * multiple AIBinder* objects being created for the same instance of an object. + */ virtual SpAIBinder createBinder() = 0; private: @@ -107,7 +124,9 @@ private: ScopedAIBinder_Weak mWeakBinder; }; -// wrapper analog to BpInterfae +/** + * implementation of IInterface for client (p = proxy) + */ template <typename INTERFACE> class BpCInterface : public INTERFACE { public: |