HEX
Server: Apache
System: Linux vpshost11508.publiccloud.com.br 5.15.179-grsec-vpshost-10.lc.el8.x86_64 #1 SMP Mon Apr 7 12:04:45 -03 2025 x86_64
User: wicomm2 (10002)
PHP: 8.3.0
Disabled: apache_child_terminate,dl,escapeshellarg,escapeshellcmd,exec,link,mail,openlog,passthru,pcntl_alarm,pcntl_exec,pcntl_fork,pcntl_get_last_error,pcntl_getpriority,pcntl_setpriority,pcntl_signal,pcntl_signal_dispatch,pcntl_sigprocmask,pcntl_sigtimedwait,pcntl_sigwaitinfo,pcntl_strerror,pcntl_wait,pcntl_waitpid,pcntl_wexitstatus,pcntl_wifexited,pcntl_wifsignaled,pcntl_wifstopped,pcntl_wstopsig,pcntl_wtermsig,php_check_syntax,php_strip_whitespace,popen,proc_close,proc_open,shell_exec,symlink,system
Upload Files
File: //lib/python3.6/site-packages/pydbus/request_name.py
from .exitable import ExitableWithAliases

class NameOwner(ExitableWithAliases("unown")):
	__slots__ = ()

	def __init__(self, bus, name, allow_replacement, replace):
		flags = 4 | (1 if allow_replacement else 0) | (2 if replace else 0)
		res = bus.dbus.RequestName(name, flags)
		if res == 1:
			self._at_exit(lambda: bus.dbus.ReleaseName(name))
			return # OK
		if res == 3:
			raise RuntimeError("name already exists on the bus")
		if res == 4:
			raise RuntimeError("you're already the owner of this name")
		raise RuntimeError("cannot take ownership of the name")

class RequestNameMixin(object):
	__slots__ = ()

	def request_name(self, name, allow_replacement=True, replace=False):
		"""Aquires a bus name.

		Returns
		-------
		NameOwner
			An object you can use as a context manager to unown the name later.
		"""
		return NameOwner(self, name, allow_replacement, replace)