/// <inheritdoc /> protected override async Task <Vertex> ReadValueAsync(Stream stream, GraphBinaryReader reader) { var v = new Vertex(await reader.ReadAsync(stream).ConfigureAwait(false), (string)await reader.ReadValueAsync <string>(stream, false).ConfigureAwait(false)); // discard properties await reader.ReadAsync(stream).ConfigureAwait(false); return(v); }
/// <inheritdoc /> protected override async Task <Property> ReadValueAsync(Stream stream, GraphBinaryReader reader) { var p = new Property((string)await reader.ReadValueAsync <string>(stream, false).ConfigureAwait(false), await reader.ReadAsync(stream).ConfigureAwait(false)); // discard parent element await reader.ReadAsync(stream).ConfigureAwait(false); return(p); }
/// <inheritdoc /> protected override async Task <VertexProperty> ReadValueAsync(Stream stream, GraphBinaryReader reader) { var vp = new VertexProperty(await reader.ReadAsync(stream).ConfigureAwait(false), (string)await reader.ReadValueAsync <string>(stream, false).ConfigureAwait(false), await reader.ReadAsync(stream).ConfigureAwait(false)); // discard the parent vertex await reader.ReadAsync(stream).ConfigureAwait(false); // discard the properties await reader.ReadAsync(stream).ConfigureAwait(false); return(vp); }
/// <inheritdoc /> protected override async Task <P> ReadValueAsync(Stream stream, GraphBinaryReader reader) { var operatorName = (string)await reader.ReadValueAsync <string>(stream, false).ConfigureAwait(false); var argsLength = (int)await reader.ReadValueAsync <int>(stream, false).ConfigureAwait(false); var args = new object[argsLength]; for (var i = 0; i < argsLength; i++) { args[i] = await reader.ReadAsync(stream).ConfigureAwait(false); } if (operatorName == "and" || operatorName == "or") { return(new P(operatorName, (P)args[0], (P)args[1])); } if (operatorName == "not") { return(new P(operatorName, (P)args[0])); } if (argsLength == 1) { if (DataType == DataType.TextP) { return(new TextP(operatorName, (string)args[0])); } return(new P(operatorName, args[0])); } return(new P(operatorName, args)); }
/// <inheritdoc /> protected override async Task <Binding> ReadValueAsync(Stream stream, GraphBinaryReader reader) { var key = (string)await reader.ReadValueAsync <string>(stream, false).ConfigureAwait(false); var value = await reader.ReadAsync(stream).ConfigureAwait(false); return(new Binding(key, value)); }
protected override async Task <JanusGraphP> ReadNonNullableValueAsync(Stream stream, GraphBinaryReader reader) { var operatorName = (string)await reader.ReadValueAsync <string>(stream, false).ConfigureAwait(false); var value = await reader.ReadAsync(stream).ConfigureAwait(false); return(new JanusGraphP(operatorName, value)); }
/// <inheritdoc /> protected override async Task <IDictionary <TKey, TValue> > ReadValueAsync(Stream stream, GraphBinaryReader reader) { var length = await stream.ReadIntAsync().ConfigureAwait(false); var result = new Dictionary <TKey, TValue>(length); for (var i = 0; i < length; i++) { var key = (TKey)await reader.ReadAsync(stream).ConfigureAwait(false); var value = (TValue)await reader.ReadAsync(stream).ConfigureAwait(false); result.Add(key, value); } return(result); }
/// <inheritdoc /> protected override async Task <Traverser> ReadValueAsync(Stream stream, GraphBinaryReader reader) { var bulk = (long)await reader.ReadValueAsync <long>(stream, false).ConfigureAwait(false); var v = await reader.ReadAsync(stream).ConfigureAwait(false); return(new Traverser(v, bulk)); }
/// <inheritdoc /> protected override async Task <Edge> ReadValueAsync(Stream stream, GraphBinaryReader reader) { var id = await reader.ReadAsync(stream).ConfigureAwait(false); var label = (string)await reader.ReadValueAsync <string>(stream, false).ConfigureAwait(false); var inV = new Vertex(await reader.ReadAsync(stream).ConfigureAwait(false), (string)await reader.ReadValueAsync <string>(stream, false).ConfigureAwait(false)); var outV = new Vertex(await reader.ReadAsync(stream).ConfigureAwait(false), (string)await reader.ReadValueAsync <string>(stream, false).ConfigureAwait(false)); // discard possible parent vertex await reader.ReadAsync(stream).ConfigureAwait(false); // discard possible properties await reader.ReadAsync(stream).ConfigureAwait(false); return(new Edge(id, outV, label, inV)); }
/// <inheritdoc /> protected override async Task <Path> ReadValueAsync(Stream stream, GraphBinaryReader reader) { var readLabelObjects = (List <object>) await reader.ReadAsync(stream).ConfigureAwait(false); var labels = new List <ISet <string> >(); foreach (var labelObjectList in readLabelObjects) { var labelSet = new HashSet <string>(); foreach (var labelObj in (HashSet <object>)labelObjectList) { labelSet.Add((string)labelObj); } labels.Add(labelSet); } var objects = (List <object>) await reader.ReadAsync(stream).ConfigureAwait(false); return(new Path(labels, objects)); }
private static async Task <object[]> ReadArgumentsAsync(Stream stream, GraphBinaryReader reader) { var valuesLength = (int)await reader.ReadValueAsync <int>(stream, false).ConfigureAwait(false); var values = new object[valuesLength]; for (var i = 0; i < valuesLength; i++) { values[i] = await reader.ReadAsync(stream).ConfigureAwait(false); } return(values); }
/// <inheritdoc /> protected override async Task <TSet> ReadValueAsync(Stream stream, GraphBinaryReader reader) { var length = (int)await reader.ReadValueAsync <int>(stream, false).ConfigureAwait(false); var result = new TSet(); for (var i = 0; i < length; i++) { result.Add((TMember)await reader.ReadAsync(stream).ConfigureAwait(false)); } return(result); }
/// <inheritdoc /> protected override async Task <TList> ReadValueAsync(Stream stream, GraphBinaryReader reader) { var length = (int)await reader.ReadValueAsync <int>(stream, false).ConfigureAwait(false); var result = new TList(); for (var i = 0; i < length; i++) { var value = await reader.ReadAsync(stream).ConfigureAwait(false); var bulk = (long)await reader.ReadValueAsync <long>(stream, false).ConfigureAwait(false); for (var j = 0; j < bulk; j++) { result.Add(value); } } return(result); }
/// <inheritdoc /> protected override async Task <TEnum> ReadValueAsync(Stream stream, GraphBinaryReader reader) { var enumValue = (string)await reader.ReadAsync(stream).ConfigureAwait(false); return(_readFunc.Invoke(enumValue)); }