Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 718bfdb8 authored by Steven Moreland's avatar Steven Moreland
Browse files

libbinder: usage warnings for some older features

We should migrate off of Blob and SafeInterface, and
use more encapsulated types and AIDL-compatible types
instead.

Bug: few recent discussions
Test: N/A
Change-Id: Idaf92fcdb57701616b925f3b31ad1f61e2348304
parent 38a4ab9f
Loading
Loading
Loading
Loading
+10 −0
Original line number Original line Diff line number Diff line
@@ -388,6 +388,11 @@ public:
    LIBBINDER_EXPORTED status_t
    LIBBINDER_EXPORTED status_t
    writeUniqueFileDescriptorVector(const std::vector<binder::unique_fd>& val);
    writeUniqueFileDescriptorVector(const std::vector<binder::unique_fd>& val);


    // WARNING: deprecated and incompatible with AIDL. You should use Parcelable
    // definitions outside of Parcel to represent shared memory, such as
    // IMemory or with ParcelFileDescriptor. We should remove this, or move it to be
    // external to Parcel, it's not a very encapsulated API.
    //
    // Writes a blob to the parcel.
    // Writes a blob to the parcel.
    // If the blob is small, then it is stored in-place, otherwise it is
    // If the blob is small, then it is stored in-place, otherwise it is
    // transferred by way of an anonymous shared memory region.  Prefer sending
    // transferred by way of an anonymous shared memory region.  Prefer sending
@@ -631,6 +636,11 @@ public:
    LIBBINDER_EXPORTED status_t
    LIBBINDER_EXPORTED status_t
    readUniqueFileDescriptorVector(std::vector<binder::unique_fd>* val) const;
    readUniqueFileDescriptorVector(std::vector<binder::unique_fd>* val) const;


    // WARNING: deprecated and incompatible with AIDL. You should use Parcelable
    // definitions outside of Parcel to represent shared memory, such as
    // IMemory or with ParcelFileDescriptor. We should remove this, or move it to be
    // external to Parcel, it's not a very encapsulated API.
    //
    // Reads a blob from the parcel.
    // Reads a blob from the parcel.
    // The caller should call release() on the blob after reading its contents.
    // The caller should call release() on the blob after reading its contents.
    LIBBINDER_EXPORTED status_t readBlob(size_t len, ReadableBlob* outBlob) const;
    LIBBINDER_EXPORTED status_t readBlob(size_t len, ReadableBlob* outBlob) const;
+7 −0
Original line number Original line Diff line number Diff line
@@ -34,6 +34,13 @@
namespace android {
namespace android {
namespace SafeInterface {
namespace SafeInterface {


/**
 * WARNING: Prefer to use AIDL-generated interfaces. Using SafeInterface to generate interfaces
 * does not support tracing, and many other AIDL features out of the box. The general direction
 * we should go is to migrate safe interface users to AIDL and then remove this so that there
 * is only one thing to learn/use/test/integrate, not this as well.
 */

// ParcelHandler is responsible for writing/reading various types to/from a Parcel in a generic way
// ParcelHandler is responsible for writing/reading various types to/from a Parcel in a generic way
class LIBBINDER_EXPORTED ParcelHandler {
class LIBBINDER_EXPORTED ParcelHandler {
public:
public: