UNPKG

proglib

Version:

Многофункциональная библиотека

323 lines (301 loc) 40.8 kB
'use struct'; const os = require('os'); /** * Предоставляет информацию об операционной системе. */ class OperatingSystem { /** * Возвращает строку, которая определяет архитектуру CPU на данной ОС для которой компилируется бинарный Node.js. */ static Architecture() { return os.arch(); } /** * Возвращает объект, содержащий общеиспользуемые константы операционнной системы для кодировки ошибок, сигналов процессов и тому подобное. */ static get constants() { return os.constants; } /** * Возвращает массив объектов, которые содержат информацию про каждый установленное ядро. */ static CPUS() { return os.cpus(); } /** * Возвращает строку, определяющую порядок байт CPU для которого скомпилирован бинарный Node.js. */ static Endianness() { return os.endianness(); } /** * Возвращает количество свободной системной памяти в байтах в виде целого числа. */ static FreeMem() { return os.freemem(); } /** * Возвращает домашнюю директорию для текущего пользователя в виде строки. */ static HomeDirectory() { return os.homedir(); } /** * Возвращает имя хоста операционной системы в в виде строки. */ static HostName() { return os.hostname(); } /** * Возвращает массив, содержащий средние значения нагрузки за 1, и 15 минут. * Средняя нагрузка – это мера активности системы, вычисленная операционной системой и выраженная в виде дробного числа. Следуя правилу большого пальца, средняя нагрузка в идеале должна быть меньше, чем число логических CPU в системе. */ static LoadAvg() { return os.loadavg(); } /** * Возвращает объект, содержащий только сетевые интерфейсы, которые были назначены на адрес сети. * Каждый ключ возвращаемого объекта указывает на сетевой интерфейс. Соответствующее ему значение является массивом объектов, каждый из которых описывает назначенный адрес сети. */ static NetworkInterfaces() { return os.networkInterfaces(); } /** * Возвращает строку, показывающущю, какая платформа ОС была установлена во время компиляции Node.js. */ static Platform() { return os.platform(); } /** * Возвращает строку, показывающую релиз операционной системы. */ static Release() { return os.release(); } /** * Возвращает строку, задающую операционную директорию по умолчанию для хранения временных файлов. */ static TempPath() { return os.tmpdir(); } /** * Возвращает все количество системной памяти в байтах в виде целого числа. */ static TotalMem() { return os.totalmem(); } /** * Возвращает строку, показывающую имя операционной системы. */ static Type() { return os.type(); } /** * Возвращает время безотказной работы системы в секундах. */ static TickCount() { return os.uptime(); } /** * Возвращает информацию о текущем пользователе. */ static UserInfo() { return os.userInfo(); } } module.exports = OperatingSystem; // КОНСТАНТЫ СИГНАЛОВ (эти константы сигналов экспортируются из OperatingSystem.constants.signals) // ------------------------------------------------------------------------------------------------------------------------------------------------------------- // | Константа | Описание | // |------------------|----------------------------------------------------------------------------------------------------------------------------------------| // | SIGHUP | Посылается для индикации закрытия управляющего терминала или существования родительского процесса | // | SIGINT | Посылается для индикации, когда пользователь хочет прервать процесс ((Ctrl+C)) | // | SIGQUIT | Посылается для индикации, когда пользователь хочет завершить процесс и выполнить сброс ядра. | // | SIGILL | Отправляется в процесс для уведомления о попытках выполнения недопустимой, некорректной, неизвестной или привелигированной инструкции. | // | SIGTRAP | Отправляется в процесс, когда происходит иключение. | // | SIGABRT | Отправляется в процесс для запроса о прерывании. | // | SIGIOT | Синоним SIGABRT | // | SIGBUS | Отправляется в процесс для предупреждения об ошибке шины. | // | SIGFPE | Отправляется в процесс для предупреждения о выполнении недопустимой арифметической операции. | // | SIGKILL | Отправляется в процесс для его немедленного завершения. | // | SIGUSR1, SIGUSR2 | Отправляется в процесс для определения заданных пользователем условий. | // | SIGSEGV | Отправляется в процесс для уведомления об ошибке сегментации. | // | SIGPIPE | Отправляется в процесс при попытке записи в отключенный пайп. | // | SIGALRM | Отправляется в процесс, когда истекает системный таймер. | // | SIGTERM | Отправляется в процесс для запроса о завершении. | // | SIGCHLD | Отправляется в процесс, когда завершается дочерний процесс. | // | SIGSTKFLT | Отправляется в процесс для индикации ошибки стека на сопроцессоре. | // | SIGCONT | Отправляется с инструкциями операционной системе для продолжения приостановленного процесса. | // | SIGSTOP | Отправляется с инструкциями операционной системе для остановки процесса. | // | SIGTSTP | Отправляется в процесс с запросом на остановку. | // | SIGBREAK | Отправляется для индикации, когда пользователь хочет прервать процесс. | // | SIGTTIN | Отправляется в процесс, когда он читает TTY, находясь в режиме бэкграунда. | // | SIGTTOU | Отправляется в процесс, когда он записывает в TTY, находясь в режиме бэкграунда. | // | SIGURG | Отправляется в процесс, когда нужно прочитать срочные данные из сокета | // | SIGXCPU | Отправляется в процесс, когда он превосходит свой лимит использования CPU. | // | SIGXFSZ | Отправляется в процесс, когда он создает больший файл, чем максимально допустимый. | // | SIGVTALRM | Отправляется в процесс при истечении виртуального таймера. | // | SIGPROF | Отправляется в процесс при истечении системного таймера. | // | SIGWINCH | Отправляется в процесс, когда управляющий терминал меняет размер. | // | SIGIO | Отправляется в процесс, когда доступен ввод-вывод (I/O) | // | SIGPOLL | Синоним SIGIO | // | SIGLOST | Отправляется в процесс, когда теряется блокировщик файла. | // | SIGPWR | Отправляется в процесс для уведомления об ошибке включения. | // | SIGINFO | Синоним SIGPWR | // | SIGSYS | Отправляется в процесс для уведомления о некорректном аргументе. | // | SIGUNUSED | Синоним SIGSYS | // ------------------------------------------------------------------------------------------------------------------------------------------------------------- // КОНСТАНТЫ ОШИБОК (константы ошибок экспортируются из OperatingSystem.constants.errno) // Константы ошибок POSIX // -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // | Константа | Описание | // |-----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| // | E2BIG | Показывает, что список аргументов длиннее, чем ожидалось | // | EACCES | Показывает, что операция не получила достаточного разрешения | // | EADDRINUSE | Адрес сети уже используется | // | EADDRNOTAVAIL | Адрес сети на данный момент недоступен для использования | // | EAFNOSUPPORT | Семейство адресов сети не поддерживается | // | EAGAIN | На данный момент нет доступных данных, нужно попробовать выполнить операцию позже | // | EALREADY | Сокет уже обрабатывает соединение | // | EBADF | Файловый дескриптор невалидный | // | EBADMSG | Недопустимые данные | // | EBUSY | Девайс или источник заняты | // | ECANCELED | Операция была отменена | // | ECHILD | Дочерний процесс не существует | // | ECONNABORTED | Сетевое соединение было прервано | // | ECONNREFUSED | Сетевое соединение отклонено | // | ECONNRESET | Сетевое соединение сброшено | // | EDEADLK | Удалось избежать окончания ресурсов | // | EDESTADDRREQ | Требуется адрес назначения | // | EDOM | Аргумент находится вне домена функции | // | EDQUOT | Превышено выделенное пространство диска | // | EEXIST | Файл уже существует | // | EFAULT | Недопустимый указатель адреса | // | EFBIG | Файл слишком большой | // | EHOSTUNREACH | Хост недоступен | // | EIDRM | Идентификатор был удален | // | EILSEQ | Недопустимая последовательность байтов | // | EINPROGRESS | Операция уже выполняется | // | EINTR | Вызов функции был прерван | // | EINVAL | Получен недопустимый аргумент | // | EIO | Ошибка ввода-вывод | // | EISCONN | Сокет подключен | // | EISDIR | Путь является директорией | // | ELOOP | Слишком много уровней символьных ссылок в пути | // | EMFILE | Слишком много открытых файлов | // | EMLINK | Слишком много ссылок на файл | // | EMSGSIZE | Полученное сообщение слишком длинное | // | EMULTIHOP | Была попытка многоинтервального подключения | // | ENAMETOOLONG | Имя файла слишком длинное | // | ENETDOWN | Сеть <упала> | // | ENETRESET | Соединение было прервано сетью | // | ENETUNREACH | Сеть недоступна | // | ENFILE | Слишком много открытых файлов в системе | // | ENOBUFS | Нет доступного места для буфера | // | ENODATA | Нет доступных сообщений в первой очереди на чтение в стриме | // | ENODEV | Нет такого девайса | // | ENOENT | Нет такого файла или директории | // | ENOEXEC | Формат выполнения ошибочен | // | ENOLCK | Нет доступных блокировок | // | ENOLINK | Ссылка была разорвана | // | ENOMEM | Недостаточно места | // | ENOMSG | Нет сообщений заданного типа | // | ENOPROTOOPT | Данный протокол недоступен | // | ENOSPC | Нет доступного места на девайсе | // | ENOSR | Нет доступных ресурсов стрима | // | ENOSTR | Данный ресурс не является стримом | // | ENOSYS | Функция не была реализована | // | ENOTCONN | Сокет не был подключен | // | ENOTDIR | Путь не является директорией | // | ENOTEMPTY | Директория не является пустой | // | ENOTSOCK | Данный элемент не является сокетом | // | ENOTSUP | Данная операция не поддерживается | // | ENOTTY | Некорректные операции для управления вводом-выводом | // | ENXIO | Нет такого девайса или адреса | // | EOPNOTSUPP | Операция не поддерживается на сокете. Следует помнить, что так как ENOTSUP и EOPNOTSUPP имеют одинаковые значения на Linux, соответственно POSIX.1 значения этих ошибок должны быть разделены. | // | EOVERFLOW | Значение слишком большое для хранения в данном типе данных | // | EPERM | Операция не разрешена | // | EPIPE | Нерабочий пайп | // | EPROTO | Ошибка протокола | // | EPROTONOSUPPORT | Протокол не поддерживается | // | EPROTOTYPE | Неправильный тип протокола для сокета | // | ERANGE | Результат слишком большой | // | EROFS | Файловая система открыта только для чтения | // | ESPIPE | Недопустимая операция поиска | // | ESRCH | Нет такого процесса | // | ESTALE | Файловый обработчик устарел | // | ETIME | Вышло время | // | ETIMEDOUT | Время соединения вышло | // | ETXTBSY | Текстовый файл занят | // | EWOULDBLOCK | Операция будет заблокирована | // | EXDEV | Неточная ссылка | // -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // // Константы ошибок Windows // ---------------------------------------------------------------------------------- // | Константа | Описание | // |------------------------|-------------------------------------------------------| // | WSAEINTR | Указывает на прерванный вызов функции | // | WSAEBADF | Указывает на недопустимый файловый обработчик | // | WSAEACCES | Нет достаточно прав для выполнения операции | // | WSAEFAULT | Недопустимый указатель адреса | // | WSAEINVAL | Был передан недопустимый аргумент | // | WSAEMFILE | Слишком много открытых файлов | // | WSAEWOULDBLOCK | Ресурс временно недоступен | // | WSAEINPROGRESS | Операция на данный момент выполняется | // | WSAEALREADY | Операция уже выполняется | // | WSAENOTSOCK | Ресурс не является сокетом | // | WSAEDESTADDRREQ | Требуется адрес назначения | // | WSAEMSGSIZE | Размер сообщения слишком большой | // | WSAEPROTOTYPE | Неправильный тип протокола для сокета | // | WSAENOPROTOOPT | Ошибка протокола | // | WSAEPROTONOSUPPORT | Протокол не поддерживается | // | WSAESOCKTNOSUPPORT | Тип сокета не поддерживается | // | WSAEOPNOTSUPP | Операция не поддерживается | // | WSAEPFNOSUPPORT | Семейство протоколов не поддерживается | // | WSAEAFNOSUPPORT | Семейство адресов не поддерживается | // | WSAEADDRINUSE | Адрес сети недоступен | // | WSAENETDOWN | Сеть <упала> | // | WSAENETUNREACH | Сеть недоступна | // | WSAENETRESET | Сетевое соединение было сброшено | // | WSAECONNABORTED | Соединение было прервано | // | WSAECONNRESET | Соединение было сброшено пиром | // | WSAENOBUFS | Нет свободного места для буфера | // | WSAEISCONN | Сокет уже подключен | // | WSAENOTCONN | Сокет не подключен | // | WSAESHUTDOWN | Данные не могут быть отправлены после закрытия сокета | // | WSAETOOMANYREFS | Слишком много ссылок | // | WSAETIMEDOUT | Время соединения вышло | // | WSAECONNREFUSED | Соединение отклонено | // | WSAELOOP | Имя не может быть переведено | // | WSAENAMETOOLONG | Имя слишком длинное | // | WSAEHOSTDOWN | Сетевой хост <упал> | // | WSAEHOSTUNREACH | Нет маршрута к сетевому хосту | // | WSAENOTEMPTY | Директория не является пустой | // | WSAEPROCLIM | Слишком много процессов | // | WSAEUSERS | Пользовательская квота была превышена | // | WSAEDQUOT | Дисковая квота была превышена | // | WSAESTALE | Ссылка на устаревший файловый обработчик | // | WSAEREMOTE | Элемент удален | // | WSASYSNOTREADY | Сетевая подсистема не готова | // | WSAVERNOTSUPPORTED | Версия winsock.dll недоступна | // | WSANOTINITIALISED | Успешный запуск WSAStartup не был выполнен | // | WSAEDISCON | Тихое закрытие в процессе | // | WSAENOMORE | Нет больше результатов | // | WSAECANCELLED | Операция была отменена | // | WSAEINVALIDPROCTABLE | Недопустимая таблица процедурный вызовов | // | WSAEINVALIDPROVIDER | Недопустимый сервисный провайдер | // | WSAEPROVIDERFAILEDINIT | Сервисный провайдер не прошел инициализацию | // | WSASYSCALLFAILURE | Ошибка системного вызова | // | WSASERVICE_NOT_FOUND | Сервис не был найден | // | WSATYPE_NOT_FOUND | Тип класса не найден | // | WSA_E_NO_MORE | Нет больше результатов | // | WSA_E_CANCELLED | Вызов был отменен | // | WSAEREFUSED | Запрос к базе данных был отклонен | // ---------------------------------------------------------------------------------- // КОНСТАНТЫ LIBUV // ------------------------------- // | Константа | Описание | // |------------------|----------| // | UV_UDP_REUSEADDR | | // -------------------------------