/// <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);
		}