jingle/sessions.h
author Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
Thu, 08 Jul 2010 17:48:29 +0200
changeset 40 cbc7a83fbdf5
parent 38 121e5ae7c1e5
child 47 964b3ebeba8d
permissions -rw-r--r--
send content accept and reject
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 {
121e5ae7c1e5 new handlers
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 37
diff changeset
    14
  ACTIVE,
121e5ae7c1e5 new handlers
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 37
diff changeset
    15
  PENDING,
40
cbc7a83fbdf5 send content accept and reject
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 38
diff changeset
    16
  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 {
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
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;
33
92e92ce901e7 a function to find a sessioncontent
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 32
diff changeset
    30
  gconstpointer description;
32
72bbe33f151a Modify the session-initiate handler among other things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 31
diff changeset
    31
  JingleAppFuncs *appfuncs;
33
92e92ce901e7 a function to find a sessioncontent
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 32
diff changeset
    32
  gconstpointer transport;
32
72bbe33f151a Modify the session-initiate handler among other things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 31
diff changeset
    33
  JingleTransportFuncs *transfuncs;
72bbe33f151a Modify the session-initiate handler among other things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 31
diff changeset
    34
} SessionContent;
72bbe33f151a Modify the session-initiate handler among other things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 31
diff changeset
    35
21
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    36
33
92e92ce901e7 a function to find a sessioncontent
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 32
diff changeset
    37
JingleSession *session_new(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
    38
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
    39
JingleSession *session_find(const JingleNode *jn);
38
121e5ae7c1e5 new handlers
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 37
diff changeset
    40
void session_add_content(JingleSession *sess, JingleContent *cn, SessionState state);
37
fce6bdc1ff46 Modify comparaison function for session, now basing on name
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 33
diff changeset
    41
SessionContent *session_find_sessioncontent(JingleSession *sess, const gchar *name);
fce6bdc1ff46 Modify comparaison function for session, now basing on name
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 33
diff changeset
    42
void session_remove_sessioncontent(JingleSession *sess, const gchar *name);
38
121e5ae7c1e5 new handlers
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 37
diff changeset
    43
void session_changestate_sessioncontent(JingleSession *sess, const gchar *name,
121e5ae7c1e5 new handlers
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 37
diff changeset
    44
                                        SessionState state);
21
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    45
void session_delete(JingleSession *sess);
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    46
void session_remove(JingleSession *sess);
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    47
void session_free(JingleSession *sess);
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    48
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    49
#endif