public function classIsUsable($qualified_classname) {
    // Set up the script with its autoloader if not already done so. We keep the
    // resource to the process open between calls to this method.
    // This means we only need to start a new process at the start of a request
    // to DCB and after a bad class has caused the script to crash.
    if (!is_resource($this->checking_script_resource)) {
      $this->setupScript();
    }

    // Write the class to check to the script's STDIN.
    $status = $this->sendCommand('CLASS', $qualified_classname);

    if (!$status) {
      // The process has crashed.
      // Clean up so the script is reinitialized the next time this method is
      // called.
      $this->closeScript();
    }

    // Return the status of the class check: TRUE means the class is usable,
    // FALSE means it is broken and a class_exists() causes a crash.
    return $status;
  }