original_string: public function readAll($len)
      {
          // return $this->read($len);
  
          $data = '';
          $got = 0;
          while (($got = TStringFuncFactory::create()->strlen($data)) < $len) {
              $data .= $this->read($len - $got);
          }
  
          return $data;
      }
code: public function readAll($len)
      {
          // return $this->read($len);
  
          $data = '';
          $got = 0;
          while (($got = TStringFuncFactory::create()->strlen($data)) < $len) {
              $data .= $this->read($len - $got);
          }
  
          return $data;
      }
code_tokens: public function readAll ( $ len ) { // return $this->read($len); $ data = '' ; $ got = 0 ; while ( ( $ got = TStringFuncFactory :: create ( ) -> strlen ( $ data ) ) < $ len ) { $ data .= $ this -> read ( $ len - $ got ) ; } return $ data ; }
docstring: Guarantees that the full amount of data is read.
  
  @return string The data, of exact length
  @throws TTransportException if cannot read data
docstring_tokens: Guarantees that the full amount of data is read .