/* Write the LLS on the screen */ void writeNode(typeList lis) { if (emptyList(lis)) printf("\n"); else { writeDataType(lis->data); writeNode(lis->next); } }
/* Write an integer to the Marshal object */ void Marshal::Write(int val) { writeDataType(MTYPE_INT); // check for stream write error CHECK_WRITE_ERROR(m_stream); writeInteger(val); // check for stream write error CHECK_WRITE_ERROR(m_stream); }
/* Write a SCXRegexWithIndex object to the Marshal object */ void Marshal::Write(const SCXRegexWithIndex& ri) { writeDataType(MTYPE_REGEX_INDEX); // check for stream write error CHECK_WRITE_ERROR(m_stream); writeInteger((int) ri.index); CHECK_WRITE_ERROR(m_stream); Write(ri.regex->Get()); }
/* Write a vector of SCXRegexWithIndex object to the Marshal object */ void Marshal::Write(const vector<SCXRegexWithIndex>& vri) { writeDataType(MTYPE_VECTOR_REGEX_INDEX); // check for stream write error CHECK_WRITE_ERROR(m_stream); int vecSize = (int) vri.size(); writeInteger(vecSize); CHECK_WRITE_ERROR(m_stream); for(int i = 0; i < vecSize; i++) { Write(vri[i]); } }
/* Write a vector of wstring to the Marshal object */ void Marshal::Write(const vector<wstring>& vws) { writeDataType(MTYPE_VECTOR_WSTRING); // check for stream write error CHECK_WRITE_ERROR(m_stream); int vecSize = (int) vws.size(); writeInteger(vecSize); CHECK_WRITE_ERROR(m_stream); for(int i = 0; i < vecSize; i++) { Write(vws[i]); } }
/* Write a wstring to the Marshal object */ void Marshal::Write(const wstring& ws) { writeDataType(MTYPE_WSTRING); // check for stream write error CHECK_WRITE_ERROR(m_stream); int strSize = (int) (ws.length() * sizeof(wchar_t)); writeInteger(strSize); CHECK_WRITE_ERROR(m_stream); vector<char> buf(strSize, '\0'); memcpy(&buf[0], ws.c_str(), strSize); m_stream.write(&buf[0], strSize); // check for stream write error CHECK_WRITE_ERROR(m_stream); }