Add SharedQueue library for appfw modules
[platform/core/base/bundle.git] / parcel / parcel_implementation.hh
index 5ae09c5..d9a9c7d 100644 (file)
@@ -31,7 +31,6 @@ class Parcel::Impl {
 
   void Write(const void* buf, uint32_t size);
   int Read(void* buf, uint32_t size);
-  const std::vector<uint8_t>& GetRaw();
   void ResetReader();
   void Clear();
   void Reset(const void* buf, uint32_t size);
@@ -44,14 +43,27 @@ class Parcel::Impl {
   template <typename T>
   int Read(T* d);
 
+  void SetByteOrder(bool big_endian);
+  bool IsBigEndian() const;
+  uint8_t* GetData() const;
+  size_t GetDataSize() const;
+  size_t GetDataCapacity() const;
+  void SetDataCapacity(size_t size);
+  uint8_t* Detach(size_t* size);
+  uint32_t GetReader() const;
+  std::vector<uint8_t> ToRaw();
+
  private:
   friend class Parcel;
-  explicit Impl(Parcel* parent);
+  explicit Impl(Parcel* parent, size_t data_capacity, uint8_t* data = nullptr);
 
  private:
   Parcel* parent_;
-  std::vector<uint8_t> data_;
-  uint64_t reader_ = 0;
+  size_t data_capacity_;
+  bool big_endian_ = false;
+  size_t data_size_ = 0;
+  uint8_t* data_ = nullptr;
+  uint32_t reader_ = 0;
 };
 
 }  // naemspace tizen_base