original_string: public static function getActualGeneration(Zend_Search_Lucene_Storage_Directory $directory)
      {
          /**
           * Zend_Search_Lucene uses segments.gen file to retrieve current generation number
           *
           * Apache Lucene index format documentation mentions this method only as a fallback method
           *
           * Nevertheless we use it according to the performance considerations
           *
           * @todo check if we can use some modification of Apache Lucene generation determination algorithm
           *       without performance problems
           */
  
          include_once 'Zend/Search/Lucene/Exception.php';
          try {
              for ($count = 0; $count < self::GENERATION_RETRIEVE_COUNT; $count++) {
                  // Try to get generation file
                  $genFile = $directory->getFileObject('segments.gen', false);
  
                  $format = $genFile->readInt();
                  if ($format != (int)0xFFFFFFFE) {
                      throw new Zend_Search_Lucene_Exception('Wrong segments.gen file format');
                  }
  
                  $gen1 = $genFile->readLong();
                  $gen2 = $genFile->readLong();
  
                  if ($gen1 == $gen2) {
                      return $gen1;
                  }
  
                  usleep(self::GENERATION_RETRIEVE_PAUSE * 1000);
              }
  
              // All passes are failed
              throw new Zend_Search_Lucene_Exception('Index is under processing now');
          } catch (Zend_Search_Lucene_Exception $e) {
              if (strpos($e->getMessage(), 'is not readable') !== false) {
                  try {
                      // Try to open old style segments file
                      $segmentsFile = $directory->getFileObject('segments', false);
  
                      // It's pre-2.1 index
                      return 0;
                  } catch (Zend_Search_Lucene_Exception $e) {
                      if (strpos($e->getMessage(), 'is not readable') !== false) {
                          return -1;
                      } else {
                          throw new Zend_Search_Lucene_Exception($e->getMessage(), $e->getCode(), $e);
                      }
                  }
              } else {
                  throw new Zend_Search_Lucene_Exception($e->getMessage(), $e->getCode(), $e);
              }
          }
  
          return -1;
      }
code: public static function getActualGeneration(Zend_Search_Lucene_Storage_Directory $directory)
      {
          /**
           * Zend_Search_Lucene uses segments.gen file to retrieve current generation number
           *
           * Apache Lucene index format documentation mentions this method only as a fallback method
           *
           * Nevertheless we use it according to the performance considerations
           *
           * @todo check if we can use some modification of Apache Lucene generation determination algorithm
           *       without performance problems
           */
  
          include_once 'Zend/Search/Lucene/Exception.php';
          try {
              for ($count = 0; $count < self::GENERATION_RETRIEVE_COUNT; $count++) {
                  // Try to get generation file
                  $genFile = $directory->getFileObject('segments.gen', false);
  
                  $format = $genFile->readInt();
                  if ($format != (int)0xFFFFFFFE) {
                      throw new Zend_Search_Lucene_Exception('Wrong segments.gen file format');
                  }
  
                  $gen1 = $genFile->readLong();
                  $gen2 = $genFile->readLong();
  
                  if ($gen1 == $gen2) {
                      return $gen1;
                  }
  
                  usleep(self::GENERATION_RETRIEVE_PAUSE * 1000);
              }
  
              // All passes are failed
              throw new Zend_Search_Lucene_Exception('Index is under processing now');
          } catch (Zend_Search_Lucene_Exception $e) {
              if (strpos($e->getMessage(), 'is not readable') !== false) {
                  try {
                      // Try to open old style segments file
                      $segmentsFile = $directory->getFileObject('segments', false);
  
                      // It's pre-2.1 index
                      return 0;
                  } catch (Zend_Search_Lucene_Exception $e) {
                      if (strpos($e->getMessage(), 'is not readable') !== false) {
                          return -1;
                      } else {
                          throw new Zend_Search_Lucene_Exception($e->getMessage(), $e->getCode(), $e);
                      }
                  }
              } else {
                  throw new Zend_Search_Lucene_Exception($e->getMessage(), $e->getCode(), $e);
              }
          }
  
          return -1;
      }
code_tokens: public static function getActualGeneration ( Zend_Search_Lucene_Storage_Directory $ directory ) { /**
           * Zend_Search_Lucene uses segments.gen file to retrieve current generation number
           *
           * Apache Lucene index format documentation mentions this method only as a fallback method
           *
           * Nevertheless we use it according to the performance considerations
           *
           * @todo check if we can use some modification of Apache Lucene generation determination algorithm
           *       without performance problems
           */ include_once 'Zend/Search/Lucene/Exception.php' ; try { for ( $ count = 0 ; $ count < self :: GENERATION_RETRIEVE_COUNT ; $ count ++ ) { // Try to get generation file $ genFile = $ directory -> getFileObject ( 'segments.gen' , false ) ; $ format = $ genFile -> readInt ( ) ; if ( $ format != ( int ) 0xFFFFFFFE ) { throw new Zend_Search_Lucene_Exception ( 'Wrong segments.gen file format' ) ; } $ gen1 = $ genFile -> readLong ( ) ; $ gen2 = $ genFile -> readLong ( ) ; if ( $ gen1 == $ gen2 ) { return $ gen1 ; } usleep ( self :: GENERATION_RETRIEVE_PAUSE * 1000 ) ; } // All passes are failed throw new Zend_Search_Lucene_Exception ( 'Index is under processing now' ) ; } catch ( Zend_Search_Lucene_Exception $ e ) { if ( strpos ( $ e -> getMessage ( ) , 'is not readable' ) !== false ) { try { // Try to open old style segments file $ segmentsFile = $ directory -> getFileObject ( 'segments' , false ) ; // It's pre-2.1 index return 0 ; } catch ( Zend_Search_Lucene_Exception $ e ) { if ( strpos ( $ e -> getMessage ( ) , 'is not readable' ) !== false ) { return - 1 ; } else { throw new Zend_Search_Lucene_Exception ( $ e -> getMessage ( ) , $ e -> getCode ( ) , $ e ) ; } } } else { throw new Zend_Search_Lucene_Exception ( $ e -> getMessage ( ) , $ e -> getCode ( ) , $ e ) ; } } return - 1 ; }
docstring: Get current generation number
  
  Returns generation number
  0 means pre-2.1 index format
  -1 means there are no segments files.
  
  @param  Zend_Search_Lucene_Storage_Directory $directory
  @return integer
  @throws Zend_Search_Lucene_Exception
docstring_tokens: Get current generation number