OSDN Git Service

binder: Add {read,write}Uint32 methods to Parcel
authorDan Stoza <stoza@google.com>
Mon, 1 Dec 2014 18:01:10 +0000 (10:01 -0800)
committerDan Stoza <stoza@google.com>
Mon, 1 Dec 2014 19:13:11 +0000 (11:13 -0800)
Adds readUint32 and writeUint32 methods to the Parcel class. This
saves a lot of static_casting in anything implementing a Binder
interface on the native side.

Change-Id: Iafc73b0633654a3a4c49767f41806b56906c924f

include/binder/Parcel.h
libs/binder/Parcel.cpp

index 2ee99f8..fee8090 100644 (file)
@@ -94,6 +94,7 @@ public:
     void*               writeInplace(size_t len);
     status_t            writeUnpadded(const void* data, size_t len);
     status_t            writeInt32(int32_t val);
+    status_t            writeUint32(uint32_t val);
     status_t            writeInt64(int64_t val);
     status_t            writeFloat(float val);
     status_t            writeDouble(double val);
@@ -152,6 +153,8 @@ public:
     const void*         readInplace(size_t len) const;
     int32_t             readInt32() const;
     status_t            readInt32(int32_t *pArg) const;
+    uint32_t            readUint32() const;
+    status_t            readUint32(uint32_t *pArg) const;
     int64_t             readInt64() const;
     status_t            readInt64(int64_t *pArg) const;
     float               readFloat() const;
index 99e539c..c526399 100644 (file)
@@ -624,6 +624,12 @@ status_t Parcel::writeInt32(int32_t val)
 {
     return writeAligned(val);
 }
+
+status_t Parcel::writeUint32(uint32_t val)
+{
+    return writeAligned(val);
+}
+
 status_t Parcel::writeInt32Array(size_t len, const int32_t *val) {
     if (!val) {
         return writeAligned(-1);
@@ -1035,6 +1041,15 @@ int32_t Parcel::readInt32() const
     return readAligned<int32_t>();
 }
 
+status_t Parcel::readUint32(uint32_t *pArg) const
+{
+    return readAligned(pArg);
+}
+
+uint32_t Parcel::readUint32() const
+{
+    return readAligned<uint32_t>();
+}
 
 status_t Parcel::readInt64(int64_t *pArg) const
 {