Interpreting received "Data" object in cpp

Hello Everyone,

I have a use case where I wanted to interpret the "Data" object received as a part of my NWConnection's recv call. I have my interpretation logic in cpp so in swift I extract the pointer to the raw bytes from Data and pass it to cpp as a UnsafeMutableRawPointer.

In cpp it is received as a void * where I typecast it to char * to read data byte by byte before framing a response.

I am able to get the pointer of the bytes by using

// Swift Code

// pContent is the received Data 

if let content = pContent, !content.isEmpty {

    bytes = content.withUnsafeBytes { rawBufferPointer in

        guard let buffer = rawBufferPointer.baseAddress else {

                 // return with null data. 
        }
         // invoke cpp method to interpret data and trigger response.
    }

// Cpp Code

void InterpretResponse (void * pDataPointer, int pDataLength) {

    char * data = (char *) pDataPointer;
    for (int iterator = 0; iterator < pDataLength; ++iterator ) 
      {
        std::cout << data<< std::endl;
        data++;
      }
}

When I pass this buffer to cpp, I am unable to interpret it properly. Can someone help me out here?

Thanks :)

Harshal

Linking the resolution of this on apple developer forum for those interested. (link)