<?php
/**
* MesQ, PHP disk based message lite queue manager
*
* Copyright 2021 Kjell-Inge Gustafsson, kigkonsult, All rights reserved
* Link https://kigkonsult.se
* Package MesQ
* Version 1.05
* License LGPL
*
* This file is a part of MesQ.
*
* This php script contains common functions for messageLoader/messageReader
*/
declare( strict_types = 1 );
namespace Kigkonsult\MesQ;
use function is_dir;
use function is_readable;
use function is_writable;
use function microtime;
use function number_format;
use function rand;
/**
* @param int $length
* @return string
*/
function generateRandomString( int $length ) : string
{
static $characters = ' !"#¤%&/()=?*><|;,:._-0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
static $charLngth = 83;
$randomString = null;
for( $i = 0; $i < $length; $i++ ) {
$randomString .= $characters[rand( 0, $charLngth)];
}
return $randomString;
}
function getArgv1and2( array $argv )
{
if( ! isArgSet( $argv, 1 )) {
exit;
}
$queueName = $argv[1];
$directory = null;
if( isArgSet( $argv, 2 )) {
$directory = $argv[2];
if( ! is_dir( $directory ) ||
! is_writable( $directory ) ||
! is_readable( $directory )) {
exit;
}
}
return [ $queueName, $directory ];
}
/**
* @param float $time
* @return string
*/
function getTime( float $time ) : string
{
static $DOT = '.';
static $SP0 = '';
return number_format(( microtime( true ) - $time ), 6, $DOT, $SP0 );
}
function isArgSet( $arg, $ix )
{
static $SP0 = '';
return ( isset( $arg[$ix] ) && ( $SP0 != $arg[$ix] ));
}
|