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> 75 #include <gloox/jinglecontent.h> 76 #include <gloox/jingleiceudp.h> 77 #include <gloox/jinglesessionhandler.h> 78 #include <gloox/jinglesessionmanager.h> 89 #define GLOOXWRAPPER_API __declspec(dllexport) 91 #define GLOOXWRAPPER_API 98 class DelayedDelivery;
103 class MUCRoomConfigHandler;
105 class MessageSession;
109 class StanzaExtension;
113 class MUCRoomHandlerWrapper;
114 class SessionHandlerWrapper;
136 memcpy(m_Data, str.
m_Data, m_Size + 1);
139 string(
const std::string& str) : m_Data(NULL)
143 memcpy(m_Data, str.c_str(), m_Size + 1);
148 m_Size = strlen(str);
150 memcpy(m_Data, str, m_Size + 1);
160 memcpy(m_Data, str.
m_Data, m_Size + 1);
175 return std::string(m_Data, m_Size);
190 return strcmp(m_Data, str) == 0;
195 return strcmp(m_Data, str) != 0;
200 return strcmp(m_Data, str.
m_Data) == 0;
205 return strcmp(m_Data, str.
m_Data) < 0;
209 static inline std::ostream&
operator<<(std::ostream& stream,
const string&
string)
211 return stream <<
string.c_str();
220 node(
const T& item) : m_Item(item), m_Next(NULL) {}
239 list() : m_Head(NULL), m_Tail(NULL) {}
252 push_back(n->m_Item);
281 m_Head = m_Tail = NULL;
346 virtual void onConnect() = 0;
347 virtual void onDisconnect(gloox::ConnectionError e) = 0;
348 virtual bool onTLSConnect(
const CertInfo& info) = 0;
355 virtual bool handleIq(
const IQ& iq) = 0;
356 virtual void handleIqID(
const IQ& iq,
int context) = 0;
363 virtual void handleMessage(
const Message& msg, MessageSession* session = 0) = 0;
371 virtual void handleMUCMessage(
MUCRoom& room,
const Message& msg,
bool priv) = 0;
372 virtual void handleMUCError(
MUCRoom& room, gloox::StanzaError
error) = 0;
373 virtual void handleMUCSubject(
MUCRoom& room,
const string& nick,
const string& subject) = 0;
380 virtual void handleRegistrationFields(
const JID& from,
int fields,
string instructions) = 0;
381 virtual void handleAlreadyRegistered(
const JID& from) = 0;
382 virtual void handleRegistrationResult(
const JID& from, gloox::RegistrationResult regResult) = 0;
383 virtual void handleDataForm(
const JID& from,
const DataForm& form) = 0;
384 virtual void handleOOB(
const JID& from,
const OOB& oob) = 0;
392 virtual const string& filterString()
const = 0;
414 bool connect(
bool block =
true);
415 gloox::ConnectionError recv(
int timeout = -1);
416 const string getID()
const;
417 const string getJID()
const;
418 void send(
const IQ& iq);
420 void setTls(gloox::TLSPolicy tls);
421 void setCompression(
bool compression);
423 void setSASLMechanisms(
int mechanisms);
426 void registerIqHandler(
IqHandler* ih,
int exttype);
429 bool removePresenceExtension(
int type);
433 Client(
const string& server);
434 Client(
const JID& jid,
const string& password,
int port = -1);
437 void setPresence(gloox::Presence::PresenceType pres,
int priority,
const string& status =
"");
448 const string stamp()
const;
457 Disco(gloox::Disco* wrapped);
458 void setVersion(
const string& name,
const string& version,
const string& os =
"");
459 void setIdentity(
const string& category,
const string& type,
const string& name =
"");
470 IQ(
const gloox::IQ& iq) : m_Wrapped(const_cast<gloox::
IQ*>(&iq)), m_Owned(false) { }
472 IQ(gloox::IQ::IqType type,
const JID& to,
const string&
id);
481 return static_cast<const T*
>(findExtension(type));
484 gloox::IQ::IqType subtype()
const;
485 const string id()
const;
486 const gloox::JID& from()
const;
488 gloox::StanzaError error_error()
const;
498 void init(
const char* data,
size_t len);
501 JID(
const gloox::JID& jid) : m_Wrapped(const_cast<gloox::
JID*>(&jid)), m_Owned(false) { }
504 JID(
const string& jid);
505 JID(
const std::string& jid) { init(jid.c_str(), jid.size()); }
508 string username()
const;
509 string resource()
const;
521 Message(gloox::Message* wrapped,
bool owned);
523 gloox::Message::MessageType subtype()
const;
524 const JID& from()
const;
526 string subject(
const string& lang =
"default")
const;
527 string thread()
const;
539 MUCRoom(gloox::MUCRoom* room,
bool owned);
542 const string nick()
const;
543 const string name()
const;
544 const string service()
const;
545 void join(gloox::Presence::PresenceType type = gloox::Presence::Available,
const string& status =
"",
int priority = 0);
546 void leave(
const string& msg =
"");
547 void send(
const string& message);
548 void setNick(
const string& nick);
549 void setPresence(gloox::Presence::PresenceType presence,
const string& msg =
"");
550 void setRequestHistory(
int value, gloox::MUCRoom::HistoryRequestType type);
551 void kick(
const string& nick,
const string& reason);
552 void ban(
const string& nick,
const string& reason);
559 Presence(gloox::Presence::PresenceType presence) : m_Presence(presence) {}
560 gloox::Presence::PresenceType
presence()
const {
return m_Presence; }
572 void fetchRegistrationFields();
584 Tag(
const string& name);
585 Tag(
const string& name,
const string& cdata);
586 Tag(gloox::Tag* wrapped,
bool owned) : m_Wrapped(wrapped), m_Owned(owned) {}
593 static Tag* allocate(gloox::Tag* wrapped,
bool owned);
596 static Tag* allocate(
const string& name);
597 static Tag* allocate(
const string& name,
const string& cdata);
598 static void free(
const Tag* tag);
600 bool addAttribute(
const string& name,
const string& value);
601 string findAttribute(
const string& name)
const;
603 string xmlns()
const;
604 bool setXmlns(
const string& xmlns);
606 void addChild(
Tag* child);
608 string cdata()
const;
609 const Tag* findTag_clone(
const string& expression)
const;
610 ConstTagList findTagList_clone(
const string& expression)
const;
626 Plugin(
const gloox::Jingle::Plugin* wrapped,
bool owned) : m_Wrapped(wrapped), m_Owned(owned) {}
630 const Plugin findPlugin(
int type)
const;
631 const gloox::Jingle::Plugin*
getWrapped()
const {
return m_Wrapped; }
664 Jingle(
const gloox::Jingle::Session::Jingle* wrapped,
bool owned) : m_Wrapped(wrapped), m_Owned(owned) {}
673 Session(gloox::Jingle::Session* wrapped,
bool owned);
676 bool sessionInitiate(
const char* ipStr,
uint16_t port);
697 void registerPlugins();
703 #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:227
string username
Definition: glooxwrapper.h:309
JID(const std::string &jid)
Definition: glooxwrapper.h:505
string status
Definition: glooxwrapper.h:337
Definition: glooxwrapper.h:376
virtual ~StanzaExtension()
Definition: glooxwrapper.h:391
void clear()
Definition: glooxwrapper.h:272
list(const list &src)
Definition: glooxwrapper.h:241
int date_to
Definition: glooxwrapper.h:300
std::string to_string() const
Gloox strings are UTF encoded, so don't forget to decode it before passing it to the GUI! ...
Definition: glooxwrapper.h:173
gloox::Registration * m_Wrapped
Definition: glooxwrapper.h:567
string protocol
Definition: glooxwrapper.h:301
Definition: glooxwrapper.h:228
Definition: glooxwrapper.cpp:306
virtual ~MessageHandler()
Definition: glooxwrapper.h:362
string phone
Definition: glooxwrapper.h:320
int date_from
Definition: glooxwrapper.h:299
string nick
Definition: glooxwrapper.h:310
glooxwrapper::list< const Tag * > ConstTagList
Definition: glooxwrapper.h:291
gloox::Jingle::SessionManager * m_Wrapped
Definition: glooxwrapper.h:691
string state
Definition: glooxwrapper.h:318
string(const string &str)
Definition: glooxwrapper.h:132
const_iterator end() const
Definition: glooxwrapper.h:237
bool empty() const
Definition: glooxwrapper.h:183
bool m_Owned
Definition: glooxwrapper.h:517
bool(void *pContext, const CFsmEvent *pEvent) Action
Definition: FSM.h:34
JID * actor
Definition: glooxwrapper.h:335
Definition: glooxwrapper.h:327
Definition: glooxwrapper.h:451
bool m_Owned
Definition: glooxwrapper.h:623
string newNick
Definition: glooxwrapper.h:336
string city
Definition: glooxwrapper.h:317
ClientImpl * m_Impl
Definition: glooxwrapper.h:408
~Jingle()
Definition: glooxwrapper.h:665
const T & front() const
Definition: glooxwrapper.h:284
list< const Plugin * > PluginList
Definition: glooxwrapper.h:634
bool operator!=(const char *str) const
Definition: glooxwrapper.h:193
string address
Definition: glooxwrapper.h:316
const T * findExtension(int type) const
Definition: glooxwrapper.h:479
string text
Definition: glooxwrapper.h:324
virtual ~ConnectionListener()
Definition: glooxwrapper.h:345
string compression
Definition: glooxwrapper.h:304
gloox::Tag * m_Wrapped
Definition: glooxwrapper.h:581
~list()
Definition: glooxwrapper.h:257
gloox::MUCRoom * m_Wrapped
Definition: glooxwrapper.h:535
gloox::Message * m_Wrapped
Definition: glooxwrapper.h:516
JID * nick
Definition: glooxwrapper.h:329
bool operator==(const char *str) const
Definition: glooxwrapper.h:188
gloox::JID * m_Wrapped
Definition: glooxwrapper.h:496
gloox::Tag * stealWrapped()
Definition: glooxwrapper.h:592
Definition: glooxwrapper.h:658
MUCRoomHandlerWrapper * m_HandlerWrapper
Definition: glooxwrapper.h:536
Tag(gloox::Tag *wrapped, bool owned)
Definition: glooxwrapper.h:586
Definition: glooxwrapper.h:387
const T & operator*()
Definition: glooxwrapper.h:234
Definition: glooxwrapper.h:531
Definition: glooxwrapper.h:492
bool m_Owned
Definition: glooxwrapper.h:582
gloox::IQ * m_Wrapped
Definition: glooxwrapper.h:466
Definition: glooxwrapper.h:555
node * m_Tail
Definition: glooxwrapper.h:225
Definition: glooxwrapper.h:619
Definition: glooxwrapper.h:512
std::list< std::shared_ptr< gloox::RegistrationHandler > > m_RegistrationHandlers
Definition: glooxwrapper.h:568
Definition: glooxwrapper.h:563
gloox::Disco * m_Wrapped
Definition: glooxwrapper.h:455
string last
Definition: glooxwrapper.h:314
string date
Definition: glooxwrapper.h:322
node * m_Next
Definition: glooxwrapper.h:222
node(const T &item)
Definition: glooxwrapper.h:220
int port
Definition: glooxwrapper.h:644
void push_back(const T &item)
Definition: glooxwrapper.h:262
Presence(gloox::Presence::PresenceType presence)
Definition: glooxwrapper.h:559
bool m_Owned
Definition: glooxwrapper.h:537
string zip
Definition: glooxwrapper.h:319
string server
Definition: glooxwrapper.h:298
glooxwrapper::DelayedDelivery * m_DelayedDelivery
Definition: glooxwrapper.h:519
Definition: glooxwrapper.h:441
string email
Definition: glooxwrapper.h:315
Definition: glooxwrapper.h:679
string()
Definition: glooxwrapper.h:125
bool operator!=(const const_iterator &it)
Definition: glooxwrapper.h:232
gloox::Client * m_Wrapped
Definition: glooxwrapper.h:407
int status
Definition: glooxwrapper.h:295
Definition: glooxwrapper.h:688
Definition: glooxwrapper.h:359
bool operator==(const string &str) const
Definition: glooxwrapper.h:198
string(const std::string &str)
Definition: glooxwrapper.h:139
Disco * disco() const
Definition: glooxwrapper.h:431
Definition: glooxwrapper.h:215
string first
Definition: glooxwrapper.h:313
string issuer
Definition: glooxwrapper.h:297
Definition: glooxwrapper.h:403
IQ(const gloox::IQ &iq)
Definition: glooxwrapper.h:470
SessionHandlerWrapper * m_HandlerWrapper
Definition: glooxwrapper.h:692
Jingle(const gloox::Jingle::Session::Jingle *wrapped, bool owned)
Definition: glooxwrapper.h:664
string(const char *str)
Definition: glooxwrapper.h:146
const gloox::DelayedDelivery * m_Wrapped
Definition: glooxwrapper.h:445
string password
Definition: glooxwrapper.h:311
#define GLOOXWRAPPER_API
Definition: glooxwrapper.h:91
const gloox::Jingle::Session::Jingle * m_Wrapped
Definition: glooxwrapper.h:661
Definition: glooxwrapper.h:366
#define T(string_literal)
Definition: secure_crt.cpp:77
Definition: glooxwrapper.h:119
char * m_Data
Definition: glooxwrapper.h:123
int extensionType() const
Definition: glooxwrapper.h:397
const node * m_Node
Definition: glooxwrapper.h:230
list & operator=(const list &src)
Definition: glooxwrapper.h:246
JID(const gloox::JID &jid)
Definition: glooxwrapper.h:501
const gloox::JID & getWrapped() const
Definition: glooxwrapper.h:500
gloox::MUCRoomAffiliation affiliation
Definition: glooxwrapper.h:330
static std::ostream & operator<<(std::ostream &stream, const string &string)
Definition: glooxwrapper.h:209
string & operator=(const string &str)
Definition: glooxwrapper.h:153
Definition: glooxwrapper.h:218
string mac
Definition: glooxwrapper.h:303
const_iterator begin() const
Definition: glooxwrapper.h:236
T m_Item
Definition: glooxwrapper.h:221
string ip
Definition: glooxwrapper.h:643
string url
Definition: glooxwrapper.h:321
Definition: glooxwrapper.h:293
Definition: glooxwrapper.h:651
const gloox::IQ & getWrapped() const
Definition: glooxwrapper.h:469
bool chain
Definition: glooxwrapper.h:296
int flags
Definition: glooxwrapper.h:333
string cipher
Definition: glooxwrapper.h:302
size_t m_Size
Definition: glooxwrapper.h:122
virtual ~SessionHandler()
Definition: glooxwrapper.h:682
Definition: glooxwrapper.h:351
const_iterator(const node *n)
Definition: glooxwrapper.h:231
string name
Definition: glooxwrapper.h:312
Definition: glooxwrapper.h:642
~string()
Definition: glooxwrapper.h:165
GLOOXWRAPPER_API void glooxwrapper_free(void *p)
Definition: glooxwrapper.cpp:39
StanzaExtension(int type)
Definition: glooxwrapper.h:390
string reason
Definition: glooxwrapper.h:334
int m_extensionType
Definition: glooxwrapper.h:399
const char * c_str() const
Definition: glooxwrapper.h:178
gloox::MUCRoomRole role
Definition: glooxwrapper.h:331
Definition: glooxwrapper.h:462
glooxwrapper::list< Tag * > TagList
Definition: glooxwrapper.h:290
gloox::Presence::PresenceType m_Presence
Definition: glooxwrapper.h:557
Definition: glooxwrapper.h:342
Definition: glooxwrapper.cpp:45
const_iterator & operator++()
Definition: glooxwrapper.h:233
JID * alternate
Definition: glooxwrapper.h:338
unsigned short uint16_t
Definition: wposix_types.h:52
gloox::Tag * getWrapped()
Definition: glooxwrapper.h:591
list()
Definition: glooxwrapper.h:239
glooxwrapper::JID m_From
Definition: glooxwrapper.h:518
Disco * m_DiscoWrapper
Definition: glooxwrapper.h:409
See XEP-0176: Jingle ICE-UDP Transport Method.
Definition: glooxwrapper.h:639
gloox::Client * getWrapped()
Definition: glooxwrapper.h:412
bool m_Owned
Definition: glooxwrapper.h:655
def xml
Definition: tests.py:121
node * m_Head
Definition: glooxwrapper.h:224
bool m_Owned
Definition: glooxwrapper.h:467
Definition: glooxwrapper.cpp:275
virtual ~IqHandler()
Definition: glooxwrapper.h:354
virtual ~MUCRoomHandler()
Definition: glooxwrapper.h:369
const gloox::Jingle::Plugin * m_Wrapped
Definition: glooxwrapper.h:622
Plugin(const gloox::Jingle::Plugin *wrapped, bool owned)
Definition: glooxwrapper.h:626
GLOOXWRAPPER_API void * glooxwrapper_alloc(size_t size)
Definition: glooxwrapper.cpp:31
bool m_Owned
Definition: glooxwrapper.h:662
Definition: glooxwrapper.h:307
gloox::Jingle::Session * m_Wrapped
Definition: glooxwrapper.h:654
bool operator<(const string &str) const
Definition: glooxwrapper.h:203
gloox::Presence::PresenceType presence() const
Definition: glooxwrapper.h:560
virtual ~RegistrationHandler()
Definition: glooxwrapper.h:379
string misc
Definition: glooxwrapper.h:323
JID * jid
Definition: glooxwrapper.h:332
const gloox::Jingle::Plugin * getWrapped() const
Definition: glooxwrapper.h:631
bool m_Owned
Definition: glooxwrapper.h:497
bool error(JSContext *cx, uint argc, JS::Value *vp)
Definition: ScriptInterface.cpp:172
Definition: glooxwrapper.cpp:116
Definition: glooxwrapper.h:577