SPVM-Sys
view release on metacpan or search on metacpan
lib/SPVM/Sys.spvm view on Meta::CPAN
static method getsockopt : string ($socket_fd : int, $level : int, $option_name : int, $option_value_length : int = -1) {
unless ($option_value_length >= 0) {
$option_value_length = 4;
}
my $option_value = (mutable string)new_string_len $option_value_length;
Sys::Socket->getsockopt($socket_fd, $level, $option_name, $option_value, \$option_value_length);
return $option_value;
}
static method osname : string () {
my $osname : string;
if (Sys::OS->defined("__linux__")) {
$osname = "linux";
}
elsif (Sys::OS->defined("_WIN32")) {
$osname = "MSWin32";
}
elsif (Sys::OS->defined("__FreeBSD__")) {
$osname = "freebsd";
}
elsif (Sys::OS->defined("__OpenBSD__")) {
$osname = "openbsd";
}
elsif (Sys::OS->defined("__solaris")) {
$osname = "solaris";
}
elsif (Sys::OS->defined("__sun")) {
$osname = "solaris";
}
elsif (Sys::OS->defined("__APPLE__")) {
$osname = "darwin";
}
else {
die "The OS name could not be determined.";
}
return $osname;
}
static method env : string ($name : string) {
my $env_value = Sys::Env->getenv($name);
return $env_value;
}
static method set_env : void ($name : string, $value : string) {
if (Sys::OS->is_windows) {
unless ($value) {
$value = "";
}
Sys::Env->_putenv_s($name, $value);
}
else {
if ($value && $value ne "") {
my $overwrite = 1;
Sys::Env->setenv($name, $value, $overwrite);
}
else {
Sys::Env->unsetenv($name);
}
}
}
static method time : long () {
my $time = Sys::Time->time();
return $time;
}
static method localtime : Sys::Time::Tm ($epoch : long = -1, $allow_minus : int = 0) {
unless ($allow_minus) {
if ($epoch < 0) {
$epoch = Sys->time;
}
}
my $tm = Sys::Time->localtime(\$epoch);
return $tm;
}
static method gmtime : Sys::Time::Tm ($epoch : long = -1, $allow_minus : int = 0) {
unless ($allow_minus) {
if ($epoch < 0) {
$epoch = Sys->time;
}
}
my $tm = Sys::Time->gmtime(\$epoch);
return $tm;
}
static method utime : void ($atime : long, $mtime : long, $file : string) {
my $utimbuf = (Sys::Time::Utimbuf)undef;
if ($atime < 0 && $mtime < 0) {
# Set current time
}
else {
$utimbuf = Sys::Time::Utimbuf->new;
$utimbuf->set_actime($atime);
$utimbuf->set_modtime($mtime);
}
Sys::Time->utime($file, $utimbuf);
}
static method signal : Sys::Signal::Handler ($signal_number : int, $handler_name : string) {
my $handler = (Sys::Signal::Handler)undef;
if ($handler_name eq "IGNORE") {
$handler = Sys::Signal->SIG_IGN;
}
( run in 0.627 second using v1.01-cache-2.11-cpan-6aa56a78535 )