summaryrefslogtreecommitdiff
path: root/libs/protoutil/include/android/util/protobuf.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/protoutil/include/android/util/protobuf.h')
-rw-r--r--libs/protoutil/include/android/util/protobuf.h15
1 files changed, 11 insertions, 4 deletions
diff --git a/libs/protoutil/include/android/util/protobuf.h b/libs/protoutil/include/android/util/protobuf.h
index f4e8d092ba52..ca45e263b20e 100644
--- a/libs/protoutil/include/android/util/protobuf.h
+++ b/libs/protoutil/include/android/util/protobuf.h
@@ -24,6 +24,9 @@ namespace util {
using namespace std;
+const int FIELD_ID_SHIFT = 3;
+const uint8_t WIRE_TYPE_MASK = (1 << FIELD_ID_SHIFT) - 1;
+
const uint8_t WIRE_TYPE_VARINT = 0;
const uint8_t WIRE_TYPE_FIXED64 = 1;
const uint8_t WIRE_TYPE_LENGTH_DELIMITED = 2;
@@ -35,16 +38,20 @@ const uint8_t WIRE_TYPE_FIXED32 = 5;
uint8_t read_wire_type(uint32_t varint);
/**
- * read field id from varint, it is varint >> 3;
+ * Read field id from varint, it is varint >> 3;
*/
uint32_t read_field_id(uint32_t varint);
/**
+ * Get the size of a varint.
+ */
+size_t get_varint_size(uint64_t varint);
+
+/**
* Write a varint into the buffer. Return the next position to write at.
- * There must be 10 bytes in the buffer. The same as
- * EncodedBuffer.writeRawVarint32
+ * There must be 10 bytes in the buffer.
*/
-uint8_t* write_raw_varint(uint8_t* buf, uint32_t val);
+uint8_t* write_raw_varint(uint8_t* buf, uint64_t val);
/**
* Write a protobuf WIRE_TYPE_LENGTH_DELIMITED header. Return the next position