18 #ifndef INCLUDED_GLOOXWRAPPER_H 19 #define INCLUDED_GLOOXWRAPPER_H 71 #include <gloox/client.h> 72 #include <gloox/mucroom.h> 73 #include <gloox/registration.h> 74 #include <gloox/message.h> 79 #define GLOOXWRAPPER_API __declspec(dllexport) 81 #define GLOOXWRAPPER_API 88 class DelayedDelivery;
93 class MUCRoomConfigHandler;
99 class StanzaExtension;
103 class MUCRoomHandlerWrapper;
125 memcpy(m_Data, str.
m_Data, m_Size + 1);
128 string(
const std::string& str) : m_Data(NULL)
132 memcpy(m_Data, str.c_str(), m_Size + 1);
137 m_Size = strlen(str);
139 memcpy(m_Data, str, m_Size + 1);
149 memcpy(m_Data, str.
m_Data, m_Size + 1);
161 return std::string(m_Data, m_Size);
176 return strcmp(m_Data, str) == 0;
181 return strcmp(m_Data, str) != 0;
185 static inline std::ostream&
operator<<(std::ostream& stream,
const string&
string)
187 return stream <<
string.c_str();
196 node(
const T& item) : m_Item(item), m_Next(NULL) {}
215 list() : m_Head(NULL), m_Tail(NULL) {}
228 push_back(n->m_Item);
257 m_Head = m_Tail = NULL;
317 virtual void onConnect() = 0;
318 virtual void onDisconnect(gloox::ConnectionError e) = 0;
319 virtual bool onTLSConnect(
const CertInfo& info) = 0;
326 virtual bool handleIq(
const IQ& iq) = 0;
327 virtual void handleIqID(
const IQ& iq,
int context) = 0;
334 virtual void handleMessage(
const Message& msg, MessageSession* session = 0) = 0;
342 virtual void handleMUCMessage(
MUCRoom* room,
const Message& msg,
bool priv) = 0;
343 virtual void handleMUCError(
MUCRoom* room, gloox::StanzaError
error) = 0;
344 virtual void handleMUCSubject(
MUCRoom* room,
const string& nick,
const string& subject) = 0;
351 virtual void handleRegistrationFields(
const JID& from,
int fields,
string instructions) = 0;
352 virtual void handleAlreadyRegistered(
const JID& from) = 0;
353 virtual void handleRegistrationResult(
const JID& from, gloox::RegistrationResult regResult) = 0;
354 virtual void handleDataForm(
const JID& from,
const DataForm& form) = 0;
355 virtual void handleOOB(
const JID& from,
const OOB& oob) = 0;
363 virtual const string& filterString()
const = 0;
385 bool connect(
bool block =
true);
386 gloox::ConnectionError recv(
int timeout = -1);
387 void send(
const IQ& iq);
389 void setTls(gloox::TLSPolicy tls);
390 void setCompression(
bool compression);
392 void setSASLMechanisms(
int mechanisms);
395 void registerIqHandler(
IqHandler* ih,
int exttype);
398 bool removePresenceExtension(
int type);
402 Client(
const string& server);
403 Client(
const JID& jid,
const string& password,
int port = -1);
406 void setPresence(gloox::Presence::PresenceType pres,
int priority,
const string& status =
"");
417 const string stamp()
const;
426 Disco(gloox::Disco* wrapped);
427 void setVersion(
const string& name,
const string& version,
const string& os =
"");
428 void setIdentity(
const string& category,
const string& type,
const string& name =
"");
439 IQ(
const gloox::IQ& iq) : m_Wrapped(const_cast<gloox::
IQ*>(&iq)), m_Owned(false) { }
441 IQ(gloox::IQ::IqType type,
const JID& to,
const string&
id =
"");
450 return static_cast<const T*
>(findExtension(type));
453 gloox::IQ::IqType subtype()
const;
455 gloox::StanzaError error_error()
const;
465 void init(
const char* data,
size_t len);
468 JID(
const gloox::JID& jid) : m_Wrapped(const_cast<gloox::
JID*>(&jid)), m_Owned(false) { }
471 JID(
const string& jid);
472 JID(
const std::string& jid) {
init(jid.c_str(), jid.size()); }
475 string username()
const;
476 string resource()
const;
487 Message(gloox::Message* wrapped,
bool owned);
489 gloox::Message::MessageType subtype()
const;
490 const JID& from()
const;
492 string subject(
const string& lang =
"default")
const;
493 string thread()
const;
506 const string nick()
const;
507 void join(gloox::Presence::PresenceType type = gloox::Presence::Available,
const string& status =
"",
int priority = 0);
508 void leave(
const string& msg =
"");
509 void send(
const string& message);
510 void setNick(
const string& nick);
511 void setPresence(gloox::Presence::PresenceType presence,
const string& msg =
"");
512 void setRequestHistory(
int value, gloox::MUCRoom::HistoryRequestType type);
513 void kick(
const string& nick,
const string& reason);
514 void ban(
const string& nick,
const string& reason);
521 Presence(gloox::Presence::PresenceType presence) : m_Presence(presence) {}
522 gloox::Presence::PresenceType
presence()
const {
return m_Presence; }
534 void fetchRegistrationFields();
546 Tag(
const string& name);
547 Tag(
const string& name,
const string& cdata);
548 Tag(
gloox::Tag* wrapped,
bool owned) : m_Wrapped(wrapped), m_Owned(owned) {}
558 static Tag* allocate(
const string& name);
559 static Tag* allocate(
const string& name,
const string& cdata);
560 static void free(
const Tag* tag);
562 bool addAttribute(
const string& name,
const string& value);
563 string findAttribute(
const string& name)
const;
565 string xmlns()
const;
566 bool setXmlns(
const string& xmlns);
568 void addChild(
Tag* child);
570 string cdata()
const;
571 const Tag* findTag_clone(
const string& expression)
const;
572 ConstTagList findTagList_clone(
const string& expression)
const;
576 #endif // INCLUDED_GLOOXWRAPPER_H #define NONCOPYABLE(className)
Indicates that a class is noncopyable (usually due to const or reference members, or because the clas...
Definition: code_annotation.h:217
string username
Definition: glooxwrapper.h:280
JID(const std::string &jid)
Definition: glooxwrapper.h:472
std::string to_string() const
Definition: glooxwrapper.h:159
string status
Definition: glooxwrapper.h:308
Definition: glooxwrapper.h:347
virtual ~StanzaExtension()
Definition: glooxwrapper.h:362
glooxwrapper::JID * m_From
Definition: glooxwrapper.h:485
void clear()
Definition: glooxwrapper.h:248
list(const list &src)
Definition: glooxwrapper.h:217
int date_to
Definition: glooxwrapper.h:271
bool error(JSContext *cx, uint argc, jsval *vp)
Definition: ScriptInterface.cpp:190
xml
Definition: tests.py:119
gloox::Registration * m_Wrapped
Definition: glooxwrapper.h:529
string protocol
Definition: glooxwrapper.h:272
Definition: glooxwrapper.h:204
const T * findExtension(int type) const
Definition: glooxwrapper.h:448
Definition: glooxwrapper.cpp:280
virtual ~MessageHandler()
Definition: glooxwrapper.h:333
string phone
Definition: glooxwrapper.h:291
int date_from
Definition: glooxwrapper.h:270
string nick
Definition: glooxwrapper.h:281
glooxwrapper::list< const Tag * > ConstTagList
Definition: glooxwrapper.h:262
string state
Definition: glooxwrapper.h:289
string(const string &str)
Definition: glooxwrapper.h:121
bool m_Owned
Definition: glooxwrapper.h:484
JID * actor
Definition: glooxwrapper.h:306
Definition: glooxwrapper.h:298
bool operator!=(const char *str) const
Definition: glooxwrapper.h:179
Definition: glooxwrapper.h:420
string newNick
Definition: glooxwrapper.h:307
string city
Definition: glooxwrapper.h:288
ClientImpl * m_Impl
Definition: glooxwrapper.h:379
string address
Definition: glooxwrapper.h:287
string text
Definition: glooxwrapper.h:295
virtual ~ConnectionListener()
Definition: glooxwrapper.h:316
string compression
Definition: glooxwrapper.h:275
gloox::Tag * m_Wrapped
Definition: glooxwrapper.h:543
~list()
Definition: glooxwrapper.h:233
gloox::MUCRoom * m_Wrapped
Definition: glooxwrapper.h:501
gloox::Message * m_Wrapped
Definition: glooxwrapper.h:483
JID * nick
Definition: glooxwrapper.h:300
gloox::JID * m_Wrapped
Definition: glooxwrapper.h:463
gloox::Tag * stealWrapped()
Definition: glooxwrapper.h:554
MUCRoomHandlerWrapper * m_HandlerWrapper
Definition: glooxwrapper.h:502
Tag(gloox::Tag *wrapped, bool owned)
Definition: glooxwrapper.h:548
Definition: glooxwrapper.h:358
const T & operator*()
Definition: glooxwrapper.h:210
Definition: glooxwrapper.h:497
Definition: glooxwrapper.h:459
bool m_Owned
Definition: glooxwrapper.h:544
gloox::IQ * m_Wrapped
Definition: glooxwrapper.h:435
Definition: glooxwrapper.h:517
bool operator==(const char *str) const
Definition: glooxwrapper.h:174
node * m_Tail
Definition: glooxwrapper.h:201
Definition: glooxwrapper.h:479
Definition: glooxwrapper.h:525
gloox::Disco * m_Wrapped
Definition: glooxwrapper.h:424
string last
Definition: glooxwrapper.h:285
string date
Definition: glooxwrapper.h:293
node * m_Next
Definition: glooxwrapper.h:198
node(const T &item)
Definition: glooxwrapper.h:196
void push_back(const T &item)
Definition: glooxwrapper.h:238
Presence(gloox::Presence::PresenceType presence)
Definition: glooxwrapper.h:521
string zip
Definition: glooxwrapper.h:290
string server
Definition: glooxwrapper.h:269
Definition: glooxwrapper.h:410
int extensionType() const
Definition: glooxwrapper.h:368
bool empty() const
Definition: glooxwrapper.h:169
string email
Definition: glooxwrapper.h:286
string()
Definition: glooxwrapper.h:114
bool operator!=(const const_iterator &it)
Definition: glooxwrapper.h:208
gloox::Client * m_Wrapped
Definition: glooxwrapper.h:378
int status
Definition: glooxwrapper.h:266
Definition: glooxwrapper.h:330
string(const std::string &str)
Definition: glooxwrapper.h:128
Definition: glooxwrapper.h:191
string first
Definition: glooxwrapper.h:284
const gloox::IQ & getWrapped() const
Definition: glooxwrapper.h:438
string issuer
Definition: glooxwrapper.h:268
Definition: glooxwrapper.h:374
IQ(const gloox::IQ &iq)
Definition: glooxwrapper.h:439
const gloox::JID & getWrapped() const
Definition: glooxwrapper.h:467
i64 Tag
Definition: h_mgr.cpp:97
string(const char *str)
Definition: glooxwrapper.h:135
const char * c_str() const
Definition: glooxwrapper.h:164
const gloox::DelayedDelivery * m_Wrapped
Definition: glooxwrapper.h:414
string password
Definition: glooxwrapper.h:282
#define GLOOXWRAPPER_API
Definition: glooxwrapper.h:81
Definition: glooxwrapper.h:337
#define T(string_literal)
Definition: secure_crt.cpp:76
Definition: glooxwrapper.h:108
char * m_Data
Definition: glooxwrapper.h:112
const node * m_Node
Definition: glooxwrapper.h:206
list & operator=(const list &src)
Definition: glooxwrapper.h:222
JID(const gloox::JID &jid)
Definition: glooxwrapper.h:468
gloox::MUCRoomAffiliation affiliation
Definition: glooxwrapper.h:301
static std::ostream & operator<<(std::ostream &stream, const string &string)
Definition: glooxwrapper.h:185
string & operator=(const string &str)
Definition: glooxwrapper.h:142
Definition: glooxwrapper.h:194
string mac
Definition: glooxwrapper.h:274
T m_Item
Definition: glooxwrapper.h:197
const_iterator end() const
Definition: glooxwrapper.h:213
string url
Definition: glooxwrapper.h:292
Definition: glooxwrapper.h:264
bool chain
Definition: glooxwrapper.h:267
int flags
Definition: glooxwrapper.h:304
string cipher
Definition: glooxwrapper.h:273
size_t m_Size
Definition: glooxwrapper.h:111
Definition: glooxwrapper.h:322
const_iterator(const node *n)
Definition: glooxwrapper.h:207
string name
Definition: glooxwrapper.h:283
~string()
Definition: glooxwrapper.h:154
GLOOXWRAPPER_API void glooxwrapper_free(void *p)
Definition: glooxwrapper.cpp:39
StanzaExtension(int type)
Definition: glooxwrapper.h:361
string reason
Definition: glooxwrapper.h:305
int m_extensionType
Definition: glooxwrapper.h:370
Disco * disco() const
Definition: glooxwrapper.h:400
gloox::MUCRoomRole role
Definition: glooxwrapper.h:302
Definition: glooxwrapper.h:431
glooxwrapper::list< Tag * > TagList
Definition: glooxwrapper.h:261
gloox::Presence::PresenceType m_Presence
Definition: glooxwrapper.h:519
Definition: glooxwrapper.h:313
Definition: glooxwrapper.cpp:45
const_iterator & operator++()
Definition: glooxwrapper.h:209
JID * alternate
Definition: glooxwrapper.h:309
gloox::Tag * getWrapped()
Definition: glooxwrapper.h:553
list()
Definition: glooxwrapper.h:215
Disco * m_DiscoWrapper
Definition: glooxwrapper.h:380
gloox::Client * getWrapped()
Definition: glooxwrapper.h:383
void init(ScriptInterface &scriptInterface)
Definition: JSInterface_GUITypes.cpp:260
node * m_Head
Definition: glooxwrapper.h:200
bool m_Owned
Definition: glooxwrapper.h:436
std::list< shared_ptr< gloox::RegistrationHandler > > m_RegistrationHandlers
Definition: glooxwrapper.h:530
virtual ~IqHandler()
Definition: glooxwrapper.h:325
virtual ~MUCRoomHandler()
Definition: glooxwrapper.h:340
GLOOXWRAPPER_API void * glooxwrapper_alloc(size_t size)
Definition: glooxwrapper.cpp:31
Definition: glooxwrapper.h:278
gloox::Presence::PresenceType presence() const
Definition: glooxwrapper.h:522
virtual ~RegistrationHandler()
Definition: glooxwrapper.h:350
string misc
Definition: glooxwrapper.h:294
JID * jid
Definition: glooxwrapper.h:303
const_iterator begin() const
Definition: glooxwrapper.h:212
bool m_Owned
Definition: glooxwrapper.h:464
Definition: glooxwrapper.cpp:116
Definition: glooxwrapper.h:539