SAMPHubServer#

class astropy.samp.SAMPHubServer(secret=None, addr=None, port=0, lockfile=None, timeout=0, client_timeout=0, mode='single', label='', web_profile=True, web_profile_dialog=None, web_port=21012, pool_size=20)[source]#

Bases: object

SAMP Hub Server.

Parameters:
secretpython:str, optional

The secret code to use for the SAMP lockfile. If none is is specified, the uuid.uuid1() function is used to generate one.

addrpython:str, optional

Listening address (or IP). This defaults to 127.0.0.1 if the internet is not reachable, otherwise it defaults to the host name.

portpython:int, optional

Listening XML-RPC server socket port. If left set to 0 (the default), the operating system will select a free port.

lockfilepython:str, optional

Custom lockfile name.

timeoutpython:int, optional

Hub inactivity timeout. If timeout > 0 then the Hub automatically stops after an inactivity period longer than timeout seconds. By default timeout is set to 0 (Hub never expires).

client_timeoutpython:int, optional

Client inactivity timeout. If client_timeout > 0 then the Hub automatically unregisters the clients which result inactive for a period longer than client_timeout seconds. By default client_timeout is set to 0 (clients never expire).

modepython:str, optional

Defines the Hub running mode. If mode is 'single' then the Hub runs using the standard .samp lock-file, having a single instance for user desktop session. Otherwise, if mode is 'multiple', then the Hub runs using a non-standard lock-file, placed in .samp-1 directory, of the form samp-hub-<UUID>, where <UUID> is a unique UUID assigned to the hub.

labelpython:str, optional

A string used to label the Hub with a human readable name. This string is written in the lock-file assigned to the hub.label token.

web_profilebool, optional

Enables or disables the Web Profile support.

web_profile_dialogclass, optional

Allows a class instance to be specified using web_profile_dialog to replace the terminal-based message with e.g. a GUI pop-up. Two queue.Queue instances will be added to the instance as attributes queue_request and queue_result. When a request is received via the queue_request queue, the pop-up should be displayed, and a value of True or False should be added to queue_result depending on whether the user accepted or refused the connection.

web_portpython:int, optional

The port to use for web SAMP. This should not be changed except for testing purposes, since web SAMP should always use port 21012.

pool_sizepython:int, optional

The number of socket connections opened to communicate with the clients.

Attributes Summary

id

The unique hub ID.

is_running

Return an information concerning the Hub running status.

params

The hub parameters (which are written to the logfile).

Methods Summary

get_mtype_subtypes(mtype)

Return a list containing all the possible wildcarded subtypes of MType.

start([wait])

Start the current SAMP Hub instance and create the lock file.

stop()

Stop the current SAMP Hub instance and delete the lock file.

Attributes Documentation

id#

The unique hub ID.

is_running#

Return an information concerning the Hub running status.

Returns:
runningbool

Is the hub running?

params#

The hub parameters (which are written to the logfile).

Methods Documentation

static get_mtype_subtypes(mtype)[source]#

Return a list containing all the possible wildcarded subtypes of MType.

Parameters:
mtypepython:str

MType to be parsed.

Returns:
typespython:list

List of subtypes

Examples

>>> from astropy.samp import SAMPHubServer
>>> SAMPHubServer.get_mtype_subtypes("samp.app.ping")
['samp.app.ping', 'samp.app.*', 'samp.*', '*']
start(wait=False)[source]#

Start the current SAMP Hub instance and create the lock file. Hub start-up can be blocking or non blocking depending on the wait parameter.

Parameters:
waitbool

If True then the Hub process is joined with the caller, blocking the code flow. Usually True option is used to run a stand-alone Hub in an executable script. If False (default), then the Hub process runs in a separated thread. False is usually used in a Python shell.

stop()[source]#

Stop the current SAMP Hub instance and delete the lock file.