original_string: public function remove_file($contenthash) {
          if (!self::is_file_removable($contenthash)) {
              // Don't remove the file - it's still in use.
              return;
          }
  
          if (!$this->is_file_readable_remotely_by_hash($contenthash)) {
              // The file wasn't found in the first place. Just ignore it.
              return;
          }
  
          $trashpath  = $this->get_trash_fulldir_from_hash($contenthash);
          $trashfile  = $this->get_trash_fullpath_from_hash($contenthash);
          $contentfile = $this->get_local_path_from_hash($contenthash, true);
  
          if (!is_dir($trashpath)) {
              mkdir($trashpath, $this->dirpermissions, true);
          }
  
          if (file_exists($trashfile)) {
              // A copy of this file is already in the trash.
              // Remove the old version.
              unlink($contentfile);
              return;
          }
  
          // Move the contentfile to the trash, and fix permissions as required.
          rename($contentfile, $trashfile);
  
          // Fix permissions, only if needed.
          $currentperms = octdec(substr(decoct(fileperms($trashfile)), -4));
          if ((int)$this->filepermissions !== $currentperms) {
              chmod($trashfile, $this->filepermissions);
          }
      }
code: public function remove_file($contenthash) {
          if (!self::is_file_removable($contenthash)) {
              // Don't remove the file - it's still in use.
              return;
          }
  
          if (!$this->is_file_readable_remotely_by_hash($contenthash)) {
              // The file wasn't found in the first place. Just ignore it.
              return;
          }
  
          $trashpath  = $this->get_trash_fulldir_from_hash($contenthash);
          $trashfile  = $this->get_trash_fullpath_from_hash($contenthash);
          $contentfile = $this->get_local_path_from_hash($contenthash, true);
  
          if (!is_dir($trashpath)) {
              mkdir($trashpath, $this->dirpermissions, true);
          }
  
          if (file_exists($trashfile)) {
              // A copy of this file is already in the trash.
              // Remove the old version.
              unlink($contentfile);
              return;
          }
  
          // Move the contentfile to the trash, and fix permissions as required.
          rename($contentfile, $trashfile);
  
          // Fix permissions, only if needed.
          $currentperms = octdec(substr(decoct(fileperms($trashfile)), -4));
          if ((int)$this->filepermissions !== $currentperms) {
              chmod($trashfile, $this->filepermissions);
          }
      }
code_tokens: public function remove_file ( $ contenthash ) { if ( ! self :: is_file_removable ( $ contenthash ) ) { // Don't remove the file - it's still in use. return ; } if ( ! $ this -> is_file_readable_remotely_by_hash ( $ contenthash ) ) { // The file wasn't found in the first place. Just ignore it. return ; } $ trashpath = $ this -> get_trash_fulldir_from_hash ( $ contenthash ) ; $ trashfile = $ this -> get_trash_fullpath_from_hash ( $ contenthash ) ; $ contentfile = $ this -> get_local_path_from_hash ( $ contenthash , true ) ; if ( ! is_dir ( $ trashpath ) ) { mkdir ( $ trashpath , $ this -> dirpermissions , true ) ; } if ( file_exists ( $ trashfile ) ) { // A copy of this file is already in the trash. // Remove the old version. unlink ( $ contentfile ) ; return ; } // Move the contentfile to the trash, and fix permissions as required. rename ( $ contentfile , $ trashfile ) ; // Fix permissions, only if needed. $ currentperms = octdec ( substr ( decoct ( fileperms ( $ trashfile ) ) , - 4 ) ) ; if ( ( int ) $ this -> filepermissions !== $ currentperms ) { chmod ( $ trashfile , $ this -> filepermissions ) ; } }
docstring: Marks pool file as candidate for deleting.
  
  @param string $contenthash
docstring_tokens: Marks pool file as candidate for deleting .