jingle/sessions.h
author Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
Mon, 26 Jul 2010 02:56:15 +0200
changeset 75 bd48c89b0a3d
parent 68 ae8b0d03887e
child 80 1c2ef2c5debe
permissions -rw-r--r--
Put jingle_handle_app in sessions.c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
21
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
     1
#ifndef __JINGLE_SESSIONS_H__
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
     2
#define __JINGLE_SESSIONS_H__ 1
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
     3
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
     4
#include <glib.h>
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
     5
33
92e92ce901e7 a function to find a sessioncontent
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 32
diff changeset
     6
#include <jingle/register.h>
92e92ce901e7 a function to find a sessioncontent
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 32
diff changeset
     7
21
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
     8
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
     9
typedef enum {
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    10
  JINGLE_SESSION_
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    11
} JingleStatus;
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    12
38
121e5ae7c1e5 new handlers
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 37
diff changeset
    13
typedef enum {
47
964b3ebeba8d Handle ack iq
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 40
diff changeset
    14
  JINGLE_SESSION_STATE_ACTIVE,
964b3ebeba8d Handle ack iq
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 40
diff changeset
    15
  JINGLE_SESSION_STATE_PENDING,
964b3ebeba8d Handle ack iq
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 40
diff changeset
    16
  JINGLE_SESSION_STATE_ENDED,
38
121e5ae7c1e5 new handlers
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 37
diff changeset
    17
} SessionState;
121e5ae7c1e5 new handlers
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 37
diff changeset
    18
21
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    19
typedef struct {
68
ae8b0d03887e Start the send_session_initiate function
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 67
diff changeset
    20
  JingleStatus status;
24
c80439433dd7 Fix compilation errors.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 23
diff changeset
    21
  gchar *sid;
c80439433dd7 Fix compilation errors.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 23
diff changeset
    22
  gchar *initiator;
c80439433dd7 Fix compilation errors.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 23
diff changeset
    23
  gchar *from;
21
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    24
  GSList *content;
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    25
} JingleSession;
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    26
32
72bbe33f151a Modify the session-initiate handler among other things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 31
diff changeset
    27
typedef struct {
37
fce6bdc1ff46 Modify comparaison function for session, now basing on name
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 33
diff changeset
    28
  const gchar *name;
38
121e5ae7c1e5 new handlers
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 37
diff changeset
    29
  SessionState state;
54
1c1153f9f945 Handle for jingle
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
    30
  const gchar *xmlns_desc;
33
92e92ce901e7 a function to find a sessioncontent
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 32
diff changeset
    31
  gconstpointer description;
32
72bbe33f151a Modify the session-initiate handler among other things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 31
diff changeset
    32
  JingleAppFuncs *appfuncs;
54
1c1153f9f945 Handle for jingle
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
    33
  const gchar *xmlns_trans;
33
92e92ce901e7 a function to find a sessioncontent
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 32
diff changeset
    34
  gconstpointer transport;
32
72bbe33f151a Modify the session-initiate handler among other things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 31
diff changeset
    35
  JingleTransportFuncs *transfuncs;
72bbe33f151a Modify the session-initiate handler among other things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 31
diff changeset
    36
} SessionContent;
72bbe33f151a Modify the session-initiate handler among other things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 31
diff changeset
    37
67
c12618793df0 New functions in sessions
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 54
diff changeset
    38
JingleSession *session_new(const gchar *sid, const gchar *initiator,
c12618793df0 New functions in sessions
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 54
diff changeset
    39
                           const gchar *from);
c12618793df0 New functions in sessions
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 54
diff changeset
    40
JingleSession *session_new_from_jinglenode(JingleNode *jn);
31
02f5698ffa49 fix jingle_ft_check, make session_find use JingleNodes directly.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 26
diff changeset
    41
JingleSession *session_find_by_sid(const gchar *sid, const gchar *from);
02f5698ffa49 fix jingle_ft_check, make session_find use JingleNodes directly.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 26
diff changeset
    42
JingleSession *session_find(const JingleNode *jn);
67
c12618793df0 New functions in sessions
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 54
diff changeset
    43
void session_add_content(JingleSession *sess, const gchar *name,
c12618793df0 New functions in sessions
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 54
diff changeset
    44
                         SessionState state);
c12618793df0 New functions in sessions
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 54
diff changeset
    45
void session_add_app(JingleSession *sess, const gchar *name,
c12618793df0 New functions in sessions
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 54
diff changeset
    46
                           const gchar *xmlns, gconstpointer data);
c12618793df0 New functions in sessions
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 54
diff changeset
    47
void session_add_trans(JingleSession *sess, const gchar *name,
c12618793df0 New functions in sessions
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 54
diff changeset
    48
                           const gchar *xmlns, gconstpointer data);
c12618793df0 New functions in sessions
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 54
diff changeset
    49
void session_add_content_from_jinglecontent(JingleSession *sess, JingleContent *cn,
c12618793df0 New functions in sessions
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 54
diff changeset
    50
                         SessionState state);
37
fce6bdc1ff46 Modify comparaison function for session, now basing on name
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 33
diff changeset
    51
SessionContent *session_find_sessioncontent(JingleSession *sess, const gchar *name);
54
1c1153f9f945 Handle for jingle
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
    52
SessionContent *session_find_transport(const gchar *xmlns_trans, gconstpointer data);
37
fce6bdc1ff46 Modify comparaison function for session, now basing on name
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 33
diff changeset
    53
void session_remove_sessioncontent(JingleSession *sess, const gchar *name);
38
121e5ae7c1e5 new handlers
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 37
diff changeset
    54
void session_changestate_sessioncontent(JingleSession *sess, const gchar *name,
121e5ae7c1e5 new handlers
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 37
diff changeset
    55
                                        SessionState state);
21
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    56
void session_delete(JingleSession *sess);
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    57
void session_remove(JingleSession *sess);
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    58
void session_free(JingleSession *sess);
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    59
75
bd48c89b0a3d Put jingle_handle_app in sessions.c
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 68
diff changeset
    60
void jingle_handle_app(JingleSession *sess, const gchar *name,
bd48c89b0a3d Put jingle_handle_app in sessions.c
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 68
diff changeset
    61
                       const gchar *xmlns_app, gconstpointer app,
bd48c89b0a3d Put jingle_handle_app in sessions.c
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 68
diff changeset
    62
                       const gchar *to);
bd48c89b0a3d Put jingle_handle_app in sessions.c
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 68
diff changeset
    63
21
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    64
#endif