@sjaeckel integrated clang-format with formal coding style. Run his script and commit changes. There are pros and cons of this commit. Mixed coding style is a "broken window". A good single style simplifies reading and writing code. On the other hand, this is a big change which will lead to conflicts.
137 lines
3.7 KiB
C++
137 lines
3.7 KiB
C++
/* strophepp.h
|
|
** strophe XMPP client library C++ API
|
|
**
|
|
** Copyright (C) 2005-2009 Collecta, Inc.
|
|
**
|
|
** This software is provided AS-IS with no warranty, either express or
|
|
** implied.
|
|
**
|
|
** This program is dual licensed under the MIT and GPLv3 licenses.
|
|
*/
|
|
|
|
/** @file
|
|
* Strophe public C++ API definitions.
|
|
*/
|
|
|
|
#ifndef __LIBSTROPHE_STROPHEPP_H__
|
|
#define __LIBSTROPHE_STROPHEPP_H__
|
|
|
|
#include "strophe.h"
|
|
|
|
namespace XMPP
|
|
{
|
|
class Context
|
|
{
|
|
private:
|
|
xmpp_mem_t m_mem;
|
|
xmpp_log_t m_log;
|
|
xmpp_ctx_t *m_ctx;
|
|
|
|
public:
|
|
Context();
|
|
virtual ~Context();
|
|
|
|
virtual void *alloc(const size_t size);
|
|
virtual void *realloc(void *p, const size_t size);
|
|
virtual void free(void *p);
|
|
virtual void log(const xmpp_log_level_t level,
|
|
const char *const area,
|
|
const char *const msg);
|
|
|
|
xmpp_ctx_t *getContext();
|
|
|
|
private:
|
|
static void *callAlloc(const size_t size, void *const userdata);
|
|
static void *callRealloc(void *p, const size_t size, void *const userdata);
|
|
static void callFree(void *p, void *const userdata);
|
|
static void callLog(void *const userdata,
|
|
const xmpp_log_level_t level,
|
|
const char *const area,
|
|
const char *const msg);
|
|
};
|
|
|
|
class Stanza
|
|
{
|
|
private:
|
|
Context *m_ctx;
|
|
xmpp_stanza_t *m_stanza;
|
|
|
|
void *operator new(size_t size, Context *ctx);
|
|
void operator delete(void *p);
|
|
Stanza(Context *ctx);
|
|
virtual ~Stanza();
|
|
|
|
public:
|
|
static Stanza *create(Context *ctx);
|
|
void release();
|
|
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);
|
|
};
|
|
|
|
class Connection
|
|
{
|
|
private:
|
|
Context *m_ctx;
|
|
xmpp_conn_t *conn;
|
|
|
|
void *operator new(size_t size, Context *ctx);
|
|
Connection(Context *ctx);
|
|
|
|
public:
|
|
static Connection *create(Context *ctx);
|
|
virtual ~Connection();
|
|
Connection *clone();
|
|
void operator delete(void *p);
|
|
|
|
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);
|
|
};
|
|
} // namespace XMPP
|
|
|
|
#endif /* __LIBSTROPHE_STROPHEPP_H__ */
|