Add SharedQueue library for appfw modules
[platform/core/base/bundle.git] / parcel / parcel_implementation.hh
index ed6c62f..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);
@@ -45,17 +44,26 @@ class Parcel::Impl {
   int Read(T* d);
 
   void SetByteOrder(bool big_endian);
-  bool IsBigEndian();
+  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, bool big_endian = false);
+  explicit Impl(Parcel* parent, size_t data_capacity, uint8_t* data = nullptr);
 
  private:
   Parcel* parent_;
-  bool big_endian_;
-  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