Serializes a TLineageGraph object to JSON
| 85 | public: |
| 86 | /// Serializes a TLineageGraph object to JSON |
| 87 | static void TLineageToJSON(const TLineageGraph &lineage, string* out) { |
| 88 | rapidjson::StringBuffer buffer; |
| 89 | rapidjson::Writer<rapidjson::StringBuffer> writer(buffer); |
| 90 | writer.StartObject(); |
| 91 | writer.String("queryText"); |
| 92 | writer.String(lineage.query_text); |
| 93 | writer.String("operationType"); |
| 94 | writer.String(lineage.operation_type); |
| 95 | writer.String("queryId"); |
| 96 | writer.String(PrintId(lineage.query_id)); |
| 97 | writer.String("hash"); |
| 98 | writer.String(lineage.hash); |
| 99 | writer.String("user"); |
| 100 | writer.String(lineage.user); |
| 101 | // write query start time |
| 102 | writer.String("timestamp"); |
| 103 | writer.Int64(lineage.started); |
| 104 | // write query end time |
| 105 | writer.String("endTime"); |
| 106 | DCHECK(lineage.ended >= lineage.started); |
| 107 | writer.Int64(lineage.ended); |
| 108 | // Write edges |
| 109 | writer.String("edges"); |
| 110 | writer.StartArray(); |
| 111 | for(int i=0; i < lineage.edges.size(); ++i) { |
| 112 | TMultiEdgeToJSON(lineage.edges[i], &writer); |
| 113 | } |
| 114 | writer.EndArray(); |
| 115 | // Write vertices |
| 116 | writer.String("vertices"); |
| 117 | writer.StartArray(); |
| 118 | for(int i=0; i < lineage.vertices.size(); ++i) { |
| 119 | TVertexToJSON(lineage.vertices[i], &writer); |
| 120 | } |
| 121 | writer.EndArray(); |
| 122 | // Write location if it is available. |
| 123 | if (lineage.__isset.table_location) { |
| 124 | writer.String("tableLocation"); |
| 125 | writer.String(lineage.table_location); |
| 126 | } |
| 127 | writer.EndObject(); |
| 128 | *out = buffer.GetString(); |
| 129 | } |
| 130 | }; |
| 131 | |
| 132 | } |
nothing calls this directly
no test coverage detected