File "class-googlesitemapgeneratorstatus.php"
Full Path: /home/elegucvf/public_html/video/wp-content/wp-includes/wp-content/plugins/google-sitemap-generator/class-googlesitemapgeneratorstatus.php
File size: 4.7 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Googlesitemapgeneratorstatus class file.
*
* @author Arne Brachhold
* @package sitemap
* @since 3.0b5
*/
/**
* Represents the status (successes and failures) of a ping process
*
* @author Arne Brachhold
* @package sitemap
* @since 3.0b5
*/
class GoogleSitemapGeneratorStatus {
/**
* Var start time of building process .
*
* @var float $_start_time The start time of the building process .
*/
private $start_time = 0;
/**
* The end time of the building process.
*
* @var float $_end_time The end time of the building process
*/
private $end_time = 0;
/**
* Holding an array with the results and information of the last ping .
*
* @var array Holding an array with the results and information of the last ping
*/
private $ping_results = array();
/**
* If the status should be saved to the database automatically .
*
* @var bool If the status should be saved to the database automatically
*/
private $auto_save = true;
/**
* Constructs a new status ued for saving the ping results
*
* @param string $auto_save .
*/
public function __construct( $auto_save = true ) {
$this->start_time = microtime( true );
$this->auto_save = $auto_save;
if ( $auto_save ) {
$exists = get_option( 'sm_status' );
if ( false === $exists ) {
add_option( 'sm_status', '', '', 'no' );
}
$this->save();
}
}
/**
* Saves the status back to the database
*/
public function save() {
update_option( 'sm_status', $this );
}
/**
* Returns the last saved status object or null
*
* @return GoogleSitemapGeneratorStatus
*/
public static function load() {
$status = get_option( 'sm_status' );
if ( is_a( $status, 'GoogleSitemapGeneratorStatus' ) ) {
return $status;
} else {
return null;
}
}
/**
* Ends the ping process
*/
public function end() {
$this->end_time = microtime( true );
if ( $this->auto_save ) {
$this->save();
}
}
/**
* Returns the duration of the ping process
*
* @return int
*/
public function get_duration() {
return round( $this->end_time - $this->start_time, 2 );
}
/**
* Returns the time when the pings were started
*
* @return int
*/
public function get_start_time() {
return round( $this->start_time, 2 );
}
/**
* Start ping .
*
* @param string $service string The internal name of the ping service .
* @param string $url string The URL to ping .
* @param string $name string The display name of the service .
* @return void
*/
public function start_ping( $service, $url, $name = null ) {
$this->ping_results[ $service ] = array(
'start_time' => microtime( true ),
'end_time' => 0,
'success' => false,
'url' => $url,
'name' => $name ? $name : $service,
);
if ( $this->auto_save ) {
$this->save();
}
}
/**
* End ping .
*
* @param string $service string The internal name of the ping service .
* @param string $success boolean If the ping was successful .
* @return void
*/
public function end_ping( $service, $success ) {
$this->ping_results[ $service ]['end_time'] = microtime( true );
$this->ping_results[ $service ]['success'] = $success;
if ( $this->auto_save ) {
$this->save();
}
}
/**
* Returns the duration of the last ping of a specific ping service
*
* @param string $service string The internal name of the ping service .
* @return float
*/
public function get_ping_duration( $service ) {
$res = $this->ping_results[ $service ];
return round( $res['end_time'] - $res['start_time'], 2 );
}
/**
* Returns the last result for a specific ping service
*
* @param string $service string The internal name of the ping service .
* @return array
*/
public function get_ping_result( $service ) {
return $this->ping_results[ $service ]['success'];
}
/**
* Returns the URL for a specific ping service
*
* @param string $service string The internal name of the ping service .
* @return array
*/
public function get_ping_url( $service ) {
return $this->ping_results[ $service ]['url'];
}
/**
* Returns the name for a specific ping service
*
* @param string $service string The internal name of the ping service .
* @return array
*/
public function get_service_name( $service ) {
return $this->ping_results[ $service ]['name'];
}
/**
* Returns if a service was used in the last ping
*
* @param string $service string The internal name of the ping service .
* @return bool
*/
public function used_ping_service( $service ) {
return array_key_exists( $service, $this->ping_results );
}
/**
* Returns the services which were used in the last ping
*
* @return array
*/
public function get_used_ping_services() {
return array_keys( $this->ping_results );
}
}