## OobsSession OobsSession — Manager of the connection to the backends |

## Synopsis

                        OobsPlatform;
                        OobsSession;
                        OobsSessionClass;
    OobsSession *       oobs_session_get                    (void);
    OobsResult          oobs_session_commit                 (OobsSession *session);
    gboolean            oobs_session_get_connected          (OobsSession *session);
    OobsResult          oobs_session_get_supported_platforms
                                                            (OobsSession *session,
                                                             GList **platforms);
    OobsResult          oobs_session_get_platform           (OobsSession *session,
                                                             gchar **platform);
    OobsResult          oobs_session_set_platform           (OobsSession *session,
                                                             const gchar *platform);
    void                oobs_session_process_requests       (OobsSession *session);
    const gchar *       oobs_session_get_authentication_action
                                                            (OobsSession *session);

## Object Hierarchy

      GObject
       +----OobsSession

## Properties

      "platform"                 gchar*                : Read / Write

## Description

## Details

### OobsPlatform

    typedef struct {
      const gchar *id;
      const gchar *name;
      const gchar *version;
      const gchar *codename;
    } OobsPlatform;

### OobsSession

    typedef struct _OobsSession OobsSession;

### OobsSessionClass

    typedef struct {
      GObjectClass parent_class;

      void (*_oobs_padding1) (void);
      void (*_oobs_padding2) (void);
    } OobsSessionClass;

### oobs_session_get ()

    OobsSession *       oobs_session_get                    (void);

Returns the OobsSession singleton, which represents the session with the system tools backends.

Returns : | the singleton OobSession object.

### oobs_session_commit ()

    OobsResult          oobs_session_commit                 (OobsSession *session);

Commits inmediately all the changes to the configuration objects that have been requested through this OobsSession. Note that it will stop if it finds any error.

`session` : | an OobsSession
Returns : | An OobsResult representing the error.

### oobs_session_get_connected ()

    gboolean            oobs_session_get_connected          (OobsSession *session);

Returns whether the connection with the backends is established.

`session` : | An OobsSession
Returns : | TRUE if there's connection with the backends.

### oobs_session_get_supported_platforms ()

    OobsResult          oobs_session_get_supported_platforms
                                                            (OobsSession *session,
                                                             GList **platforms);

Retrieves the list of supported platforms, this is only necessary when + `oobs_session_get_platform()` has returned OOBS_RESULT_NO_PLATFORM. To specify a platform, you must use `oobs_session_set_platform()`, being the platform string in that function the platform->id value inside the OobsPlatform struct.

`session` : | An OobsSession.
`platforms` : | return location for the list of platforms. It's a GList of OobsPlatform structs. You must free this list with `g_list_free()`.
Returns : | An OobsResult representing the error.

### oobs_session_get_platform ()

    OobsResult          oobs_session_get_platform           (OobsSession *session,
                                                             gchar **platform);

Retrieves the platform your system has been identified with, or NULL in case your platform is not recognized or other error happens.

`session` : | An OobsSession.
`platform` : | location to store the current platform, or NULL. This string is of internal use, and must not be freed or modified.
Returns : | An OobsResult representing the error.

### oobs_session_set_platform ()

    OobsResult          oobs_session_set_platform           (OobsSession *session,
                                                             const gchar *platform);

Identifies your platform as the one set in `platform`. This is only necessary if your platform could not be guessed (and thus `oobs_session_get_platform()` would return OOBS_RESULT_NO_PLATFORM in this case).

`session` : | An OobsSession.
`platform` : | A string defining the platform. see `oobs_session_get_platforms_list()` to know where to get this string.
Returns : | An OobsResult representing the error.

### oobs_session_process_requests ()

    void                oobs_session_process_requests       (OobsSession *session);

Blocks until all pending asynchronous requests have been processed.

`session` : | An OobsSession

### oobs_session_get_authentication_action ()

    const gchar *       oobs_session_get_authentication_action
                                                            (OobsSession *session);

Returns the PolicyKit action the user has to be authenticated to in order to commit changes to configuration objects in this session. If the user has not the required permissions, any attempt to commit will return OOBS_RESULT_ACCESS_DENIED.

`session` : | An OobsSession
Returns : | string defining the PolicyKit action required to modify objects in the session.

## Property Details

### The `"platform"` property

      "platform"                 gchar*                : Read / Write

Name of the platform the session is running on.

Default value: NULL