Skip to main content
`Ctrl`+`K`

# 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)

  Bases: `object`

  SAMP Hub Server.

  Parameters:
    secret `python: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.

    addr `python: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.

    port `python:int`, optional

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

    lockfile `python:str`, optional

      Custom lockfile name.

    timeout `python: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_timeout `python: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).

    mode `python: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.

    label `python: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_profile bool, optional

      Enables or disables the Web Profile support.

    web_profile_dialog class, 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_port `python: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_size `python: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:
      running bool

        Is the hub running?

  params

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

  Methods Documentation

  static get_mtype_subtypes(mtype)

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

    Parameters:
      mtype `python:str`

        MType to be parsed.

    Returns:
      types `python: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)

    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:
      wait bool

        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()

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