Newer
Older
backup-commander / html / svc / file-line-reader.php
<?php

/*
 * We only require reading output files during a test run for a client.
 * The backup thread does not delete test files because it is assumed that the client will
 * need the file contents during and after the test is complete.
 * 
 */
include_once "../shd/backup-funcs.php";

$open_files = array();	//files are indexed on their backup-id


/*
 * Get or open a file reader. Returns null if the file does not exist.
 * 
 * $dataLoc:	the location of the file
 * $buid:		the backup ID
 */
function getObject_outputFile( $dataLoc, $buid ){
	
	global $open_files;
	
	if( !array_key_exists( $buid, $open_files) ){
		$fn = getFilename_out( $buid, true, false );
		$ffn = "$dataLoc/$fn";
		if( !file_exists( $ffn ) ) return null;
		$file = new SplFileObject( $ffn, 'r' );
		$open_files[ $buid ] = $file;
	}
	return $open_files[$buid];

}

function closeFile( $buid ){

	global $open_files;

	print("Closed output file for backup($buid)\n");
	
	if( !array_key_exists( $buid, $open_files) ) return 0;	
	unset( $open_files[ $buid ] );
	
}

/**
 * Return the file data starting from the $lineNum given.
 * 
 * Return the number of lines read.
 * 
 * $lineData: (out) Data as a single string.
 */
function getLinesFrom( $objFile, $lineNum, &$lineData ){

	$lineData = '';
	$cnt=0;
	
	$objFile->seek( $lineNum );
	
	while (!$objFile->eof()) {
		$cnt++;
		$lineData .= $objFile->fgets();
	}	
	return $cnt;
}

?>