Example #1
0
sam_header parse_sam_header(const std::string &header_text) {
    sam_header header;

    std::stringstream headers_stream(header_text);

    std::string header_tag;

    for (std::string header_string; std::getline(headers_stream, header_string); ) {
        std::stringstream header_stream(header_string);

        header_stream >> header_tag;
        header_tag = header_tag.substr(1);

        std::map<std::string, std::string> field_map;
        for (std::string field; std::getline(header_stream, field, '\t');) {
            std::stringstream field_stream(field);
            for (std::string field_text; std::getline(field_stream, field_text, '\t');) {
                std::vector<std::string> splitfield = split(field_text, ":");
                field_map[splitfield[0]] = splitfield[1];
            }
        }
        header[header_tag].push_back(field_map);
    }

    return header;
}
Example #2
0
RecorderTransportHeader read_recorder_transport_header(Transport& trans)
{
    char data[13];
	InStream headers_stream(data);

    trans.recv_boom(make_array_view(data));

	return {
        RecorderFile::PacketType(headers_stream.in_uint8()),
        std::chrono::milliseconds(headers_stream.in_uint64_le()),
        headers_stream.in_uint32_le()
    };
}