summaryrefslogtreecommitdiff
path: root/src/session.h
blob: 7e79b3a9c351385de7e74a826368e4aa7d0074a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/*
 * Copyright (C) 2010-2011 Robert Ancell.
 * Author: Robert Ancell <robert.ancell@canonical.com>
 * 
 * This program is free software: you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option) any later
 * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
 * license.
 */

#ifndef _SESSION_H_
#define _SESSION_H_

#include "child-process.h"
#include "user.h"
#include "xauth.h"

G_BEGIN_DECLS

#define SESSION_TYPE (session_get_type())
#define SESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SESSION_TYPE, Session))

typedef struct SessionPrivate SessionPrivate;

typedef struct
{
    ChildProcess    parent_instance;
    SessionPrivate *priv;
} Session;

typedef struct
{
    ChildProcessClass parent_class;
} SessionClass;

GType session_get_type (void);

Session *session_new (void);

void session_set_user (Session *session, User *user);

User *session_get_user (Session *session);

void session_set_command (Session *session, const gchar *command);

const gchar *session_get_command (Session *session);

void session_set_authorization (Session *session, XAuthorization *authorization);

XAuthorization *session_get_authorization (Session *session);

gboolean session_start (Session *session, gboolean create_pipe);

void session_stop (Session *session);

G_END_DECLS

#endif /* _SESSION_H_ */