First draft C++ api. This is more or less a direct translation of the OO

C calls.
This commit is contained in:
Jack Moffitt
2005-06-23 21:01:23 +00:00
parent 886b9e602c
commit fa8ef93e8c
2 changed files with 104 additions and 0 deletions

View File

@@ -7,6 +7,10 @@
#ifndef __LIBSTROPHE_STROPHE_H__
#define __LIBSTROPHE_STROPHE_H__
#ifdef __cplusplus
extern "C" {
#endif
#include <stdio.h>
/* namespace defines */
@@ -263,4 +267,8 @@ void xmpp_run_once(xmpp_ctx_t *ctx, const unsigned long timeout);
void xmpp_run(xmpp_ctx_t *ctx);
void xmpp_stop(xmpp_ctx_t *ctx);
#ifdef __cplusplus
}
#endif
#endif /* __LIBSTROPHE_STROPHE_H__ */

96
strophepp.h Normal file
View File

@@ -0,0 +1,96 @@
#ifndef __LIBSTROPHE_STROPHEPP_H__
#define __LIBSTROPHE_STROPHEPP_H__
#include "strophe.h"
namespace XMPP {
typedef void (*alloc_handler)(const size_t size);
typedef void (*free_handler)(void *p);
typedef void (*realloc_handler)(void *p const size_t size);
class Context {
private:
xmpp_ctx_t *ctx;
public:
Context();
virtual ~Context();
void setAlloc(alloc_handler handler);
void setRealloc(realloc_handler handler);
void setFree(free_handler handler);
void setLogger(xmpp_log_handler handler, void * const userdata);
}
class Connection {
private:
xmpp_conn_t *conn;
public:
Connection();
virtual ~Connection();
Connection *clone();
const char *getJID();
void setJID(const char * const jid);
const char *getPass();
void setPass(const char * const pass);
bool connectClient(const char * const domain,
xmpp_conn_handler callback,
void * const userdata);
void disconnect();
void send(Stanza *stanza);
void addTimedHandler(xmpp_timed_handler handler,
const unsigned long perdio,
void * const userdata);
void deleteTimedHandler(xmpp_timed_handler handler);
void addHandler(xmpp_handler handler,
const char * const ns,
const char * const name,
const char * const type,
void * const userdata);
void deleteHandler(xmpp_handler handler);
void addIdHandler(xmpp_handler handler,
const char * const id,
void * const userdata);
void deleteIdHandler(xmpp_handler handler);
}
class Stanza {
private:
xmpp_stanza_t *stanza;
public:
Stanza();
virtual ~Stanza();
Stanza *clone();
Stanza *copy();
int toText(const char ** const buf, size_t * const buflen);
Stanza *getChildren();
Stanza *getChildByName(const char * const name);
Stanza *getNext();
char *getAttribute(const char * const name);
char *getNamespace();
char *getText();
char *getName();
void addChild(Stanza *child);
void setNamespace(const char * const ns);
void setAttribute(const char * const key, const char * const value);
void setName(const char * const name);
void setText(const char * const text);
void setText(const char * const text, const size_t size);
char *getType();
char *getId();
char *getTo();
char *getFrom();
void setType(const char * const type);
void setId(const char * const id);
void setTo(const char * const to);
void setFrom(const char * const from);
}
}
#endif /* __LIBSTROPHE_STROPHEPP_H__ */