# Python X2Go (Client) API Documentation (v0.6.1.4)

## x2go.cache module

X2GoListSessionCache class - caching X2Go session information.

class x2go.cache.X2GoListSessionsCache(client_instance, logger=None, loglevel=56)

  Bases: `object`

  For non-blocking operations in client applications using Python X2Go, it is recommended to enable the `x2go.cache.X2GoListSessionsCache`. This can be done by calling the constructor of the `x2go.client.X2GoClient` class.

  The session list and desktop cache gets updated in regular intervals by a threaded `x2go.guardian.X2GoSessionGuardian` instance. For the session list and desktop list update, the X2Go server commands `x2golistsessions` and `x2godesktopsessions` are called and the command’s stdout is cached in the session list cache.

  Whenever your client application needs access to either the server’s session list or the server’s desktop list the session cache is queried instead. This assures that the server’s session/desktop list is available without delay, even on slow internet connections.

  check_cache()

    Check if session list cache elements are still valid (i.e. if all corresponding session profiles are still connected). If not so, remove invalid cache entries from the session list cache.

  delete(profile_name)

    Remove session list from cache for a given profile.

    Parameters:

      profile_name (`str`) – name of profile to operate on

  is_cached(profile_name=None, session_uuid=None, cache_type=None)

    Check if session information is cached.

    Parameters:

      - profile_name (`str`) – name of profile to update (Default value = None)

      - session_uuid (`str`) – unique identifier of session to query cache for (Default value = None)

      - cache_type (`str`) – cache type (e.g. ‘mounts’, ‘desktops’, ‘sessions’) (Default value = None)

    Returns:

      `True` if session information is cached

    Return type:

      `bool`

  list_desktops(session_uuid)

    Retrieve a list of available desktop sessions from the current cache content of `x2go.cache.X2GoListSessionsCache` for a given `x2go.session.X2GoSession` instance (specified by its unique session UUID).

    Parameters:

      session_uuid (`str`) – unique identifier of session to query cache for

    Returns:

      a list of strings representing X2Go desktop sessions available for sharing

    Return type:

      `list` (or `None`)

  list_mounts(session_uuid)

    Retrieve a list of mounted client shares from the current cache content of `x2go.cache.X2GoListSessionsCache` for a given `x2go.session.X2GoSession` instance (specified by its unique session UUID).

    Parameters:

      session_uuid (`str`) – unique identifier of session to query cache for

    Returns:

      a list of strings representing mounted client shares

    Return type:

      `list` (or `None`)

  list_sessions(session_uuid)

    Retrieve a session list from the current cache content of `x2go.cache.X2GoListSessionsCache` for a given `x2go.session.X2GoSession` instance (specified by its unique session UUID).

    Parameters:

      session_uuid (`str`) – unique identifier of session to query cache for

    Returns:

      a data object containing available session information

    Return type:

      `X2GoServerSessionList*` instance (or `None`)

  update(profile_name, update_sessions=True, update_desktops=False, update_mounts=False)

    Update `x2go.cache.X2GoListSessionsCache` (i.e. session/desktops) for session profile `profile_name`.

    Parameters:

      - profile_name (`str`) – name of profile to update

      - update_sessions (`bool`) – cache recent session list from server (Default value = True)

      - update_desktops (`bool`) – cache recent desktop list from server (Default value = False)

      - update_mounts (`bool`) – cache list of client-side mounts on server (Default value = False)

  update_all(update_sessions=True, update_desktops=False)

    Update `x2go.cache.X2GoListSessionsCache` for all connected session profiles.

    Parameters:

      - update_sessions (`bool`) – cache recent session lists from all connected servers (Default value = True)

      - update_desktops (`bool`) – cache recent desktop lists from all connected servers (Default value = False)

  x2go_listsessions_cache = {}