/// <summary> /// Send data (IEasyTcpPacket) to remote host. Then wait and return the reply /// </summary> /// <param name="client"></param> /// <param name="data">data to send to remote host</param> /// <param name="timeout">maximum time to wait for a reply, if time expired this function returns null</param> /// <param name="compression">compress data using GZIP if set to true</param> /// <returns>received reply</returns> public static Message SendAndGetReply(this EasyTcpClient client, object data, TimeSpan?timeout = null, bool compression = false) => client.SendAndGetReply(client?.Serialize(data), timeout, compression);
/// <summary> /// Send action (object) to remote host. Then wait and return the reply /// </summary> /// <param name="client"></param> /// <param name="action">action code as string</param> /// <param name="data">data to send to remote host</param> /// <param name="timeout">maximum time to wait for a reply, if time expired this function returns null</param> /// <param name="compression">compress data using GZIP if set to true</param> /// <returns>received reply</returns> public static Message SendActionAndGetReply(this EasyTcpClient client, string action, object data, TimeSpan?timeout = null, bool compression = false) => client.SendActionAndGetReply(action.ToActionCode(), client?.Serialize(data), timeout, compression);
/// <summary> /// Send data (IEasyTcpPacket) to remote host. Then wait and return the reply /// </summary> /// <param name="client"></param> /// <param name="data">data to send to remote host</param> /// <param name="timeout">maximum time to wait for a reply, if time expired this function returns null</param> /// <param name="compression">compress data using GZIP if set to true</param> /// <returns>received data or null</returns> public static async Task <Message> SendAndGetReplyAsync(this EasyTcpClient client, object data, TimeSpan?timeout = null, bool compression = false) => await client.SendAndGetReplyAsync(client?.Serialize(data), timeout, compression);
/// <summary> /// Send action (object) to remote host /// </summary> /// <param name="client"></param> /// <param name="action">action code as string</param> /// <param name="data">data to send to remote host</param> /// <param name="compression">compress data using GZIP if set to true</param> public static void SendAction(this EasyTcpClient client, string action, object data, bool compression = false) => client.SendAction(action.ToActionCode(), client?.Serialize(data), compression);
/// <summary> /// Send data to remote host /// </summary> /// <param name="client"></param> /// <param name="data">data to send to remote host</param> /// <param name="compression">compress data using deflate if set to true</param> public static void Send(this EasyTcpClient client, object data, bool compression = false) => client.Send(client?.Serialize(data), compression);