move read/writeEmbeddedFrom/ToParcel from hidl_string, hidl_vec, MQDescriptor

Test: mma
Test: hidl_test

Bug: 32756130

Change-Id: I7e9bc359bbffca10474fca883ddd49d3b5e1f716
diff --git a/HidlSupport.cpp b/HidlSupport.cpp
index 18beb3d..edab4de 100644
--- a/HidlSupport.cpp
+++ b/HidlSupport.cpp
@@ -146,29 +146,29 @@
     return mSize == 0;
 }
 
-status_t hidl_string::readEmbeddedFromParcel(
+// static
+const size_t hidl_string::kOffsetOfBuffer = offsetof(hidl_string, mBuffer);
+
+status_t readEmbeddedFromParcel(hidl_string * /* string */,
         const Parcel &parcel, size_t parentHandle, size_t parentOffset) {
     const void *ptr = parcel.readEmbeddedBuffer(
             nullptr /* buffer_handle */,
             parentHandle,
-            parentOffset + offsetof(hidl_string, mBuffer));
+            parentOffset + hidl_string::kOffsetOfBuffer);
 
     return ptr != NULL ? OK : UNKNOWN_ERROR;
 }
 
-status_t hidl_string::writeEmbeddedToParcel(
-        Parcel *parcel, size_t parentHandle, size_t parentOffset) const {
+status_t writeEmbeddedToParcel(const hidl_string &string,
+        Parcel *parcel, size_t parentHandle, size_t parentOffset) {
     return parcel->writeEmbeddedBuffer(
-            mBuffer,
-            mSize + 1,
+            string.c_str(),
+            string.size() + 1,
             nullptr /* handle */,
             parentHandle,
-            parentOffset + offsetof(hidl_string, mBuffer));
+            parentOffset + hidl_string::kOffsetOfBuffer);
 }
 
-// static
-const size_t hidl_string::kOffsetOfBuffer = offsetof(hidl_string, mBuffer);
-
 const char* IBase::descriptor = "android.hardware.base@0.0::IBase";
 
 // ----------------------------------------------------------------------