/// <summary> /// Send request to Sphinx server using underlying data stream and process server response. /// Connection behaviour is changed - underlying network connection will not closed until <see cref="PersistentTcpConnection.Close()"/> method is called or object is disposed. /// </summary> /// <param name="command">Command to execute</param> internal override void PerformCommand(CommandBase command) { ArgumentAssert.IsNotNull(command, "command"); if (!IsConnected) { Open(); } command.Serialize(DataStream); DataStream.Flush(); command.Deserialize(DataStream); }