public function setBufferSizes($content_buffer_size = null, $chunk_buffer_size = null, $socket_read_buffer_size = null, $source_overlap_size = null)
  {
    if ($content_buffer_size !== null)
      $this->content_buffer_size = $content_buffer_size;
    
    if ($chunk_buffer_size !== null)
      $this->chunk_buffer_size = $chunk_buffer_size;
    
    if ($socket_read_buffer_size !== null)
      $this->socket_read_buffer_size = $socket_read_buffer_size;
    
    if ($source_overlap_size !== null)
      $this->source_overlap_size = $source_overlap_size;
    
    if ($this->content_buffer_size < $this->chunk_buffer_size || $this->chunk_buffer_size < $this->socket_read_buffer_size)
    {
      throw new Exception("Implausible buffer-size-settings assigned to ".getClass($this).".");
    }
  }