parse.h
author Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
Tue, 25 May 2010 00:40:38 +0200
changeset 1 6a9a25d32364
child 5 2155c65c7455
permissions -rw-r--r--
Add the parser of node and the CMakeList.txt

#include <loudmouth/loudmouth.h>

#define PARSE_OK                    0
#define PARSE_ERROR_NAME            1
#define PARSE_ERROR_REQUIRED        2
#define PARSE_ERROR_RESTRICTION     3
#define PARSE_ERROR_TOO_MANY_CHILDS 4

struct info_iq {
  char* from;
  char* id;
  char* to;
  char* set;
};

struct info_jingle {
  char* action;      // required (content-accept, content-add,
  // content-modify, content-reject, content-remove, description-info
  // security-info, session-accept, session-info, session-initiate,
  // session-terminate, transport-accept, transport-info, transport-reject,
  // transport-replace)
  char* initiator;   // optional
  char* responder;   // optional
  char* sid;         // required
};

struct info_content {
  char* creator;     // required (initiator, responder)
  char* disposition; // optional, default=session
  char* name;        // required
  char* senders;     // optional (both, initiator, none, responder)
};

int parse_jingle(LmMessageNode* node, struct info_jingle* ij);
void free_jingle(struct info_jingle* ij);
int parse_content(LmMessageNode* node, struct info_content* ic);
void free_content(struct info_content* ic);

int check_restriction(const char* name, const char** values)

char* attrcpy(const char* attr);