private static function log_error($line)
 {
     self::$log_file = SNS_ERR_LOG_FILE;
     if (self::$log_file_handle == null) {
         self::$log_file_handle = fopen(self::$log_file, 'a+');
     }
     @fwrite(self::$log_file_handle, $line);
 }
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'sns-config.php';
function sns_autoloader($class)
{
    if (strpos($class, 'Sns_') !== false) {
        if (strpos($class, 'Sns_Exception') !== false && $class != 'Sns_Exception_Handler') {
            require_once SNS_CLASSES_PATH . 'Sns_Exception.php';
        } else {
            require_once SNS_CLASSES_PATH . $class . '.php';
        }
    } elseif (strpos($class, 'Dropbox') !== false) {
        $class = str_replace('\\', SNS_DS, $class);
        require_once SNS_BACKUP_ROOT . $class . '.php';
    }
}
spl_autoload_register('sns_autoloader');
Sns_Error_Handler::init();
Sns_Exception_Handler::init();
require_once SNS_BACKUP_ROOT . 'request-handler.php';
require_once SNS_BACKUP_ROOT . 'db-configuration.php';
register_activation_hook(__FILE__, 'sns_backup_initial_check');
register_activation_hook(__FILE__, 'sns_configure_backup_db');
register_activation_hook(__FILE__, 'sns_configure_backup_db_data');
register_deactivation_hook(__FILE__, 'sns_backup_deactivate');
register_uninstall_hook(__FILE__, 'sns_backup_uninstall');
add_action('admin_menu', 'register_sns_backup_menu_page');
add_action('admin_enqueue_scripts', 'sns_backup_adding_scripts');
// adding actions to handle ajax requests
add_action('wp_ajax_sns_history_update', 'sns_backup_update_history');
add_action('wp_ajax_sns_manual_backup', 'sns_backup_manual_backup');
add_action('wp_ajax_sns_backup_delete', 'sns_backup_backup_delete');
add_action('wp_ajax_sns_backup_restore', 'sns_backup_backup_restore');