public void Send(Function func, long id) { using var buffer = new ArrayPoolBufferWriter <byte>(512); TLObjectFactory.DumpObject(buffer, new TLObjectWithExtra(func, id)); var requestbytes = buffer.WrittenSpan; fixed(byte *str = requestbytes) td_json_client_send(client, str); }
public static void WriteTLObjectValue(this Utf8JsonWriter writer, TLObject obj) { if (obj == null) { throw new ArgumentNullException(nameof(obj)); } var converter = TLObjectFactory.GetConverterForTLObject(obj); converter.TdJsonWriteUnclosedObject(writer, obj); writer.WriteEndObject(); }
private static unsafe TLObjectWithExtra FetchObject(byte *cstr) { if (cstr == null || *cstr == 0) { return(new TLObjectWithExtra()); } var span = new ReadOnlySpan <byte>(cstr, CString.strlen(cstr)); var obj = TLObjectFactory.ReadRootObject(span); return(obj); }
public static void WriteTLObjectValue(this Utf8JsonWriter writer, TLObjectWithExtra obj) { if (obj.TLObject == null) { throw new ArgumentNullException(nameof(obj)); } var converter = TLObjectFactory.GetConverterForTLObject(obj.TLObject); converter.TdJsonWriteUnclosedObject(writer, obj.TLObject); if (obj.Extra.HasValue) { writer.WritePropertyName(ExtraPropertyName); writer.WriteInt64String(obj.Extra.Value); } writer.WriteEndObject(); }
public TLObject Execute(Function func) { using var buffer = new ArrayPoolBufferWriter <byte>(512); TLObjectFactory.DumpObject(buffer, func); var requestbytes = buffer.WrittenSpan; byte *result; fixed(byte *str = requestbytes) result = td_json_client_execute(client, str); if (result == null) { return(null); } var obj = FetchObject(result); return(obj.TLObject); }