gloox  1.0.21
gloox.h
1 /*
2  Copyright (c) 2005-2017 by Jakob Schröter <js@camaya.net>
3  This file is part of the gloox library. http://camaya.net/gloox
4 
5  This software is distributed under a license. The full license
6  agreement can be found in the file LICENSE in this distribution.
7  This software may not be copied, modified, sold or distributed
8  other than expressed in the named license agreement.
9 
10  This software is distributed without any warranty.
11 */
12 
353 #ifndef GLOOX_H__
354 #define GLOOX_H__
355 
356 #include "macros.h"
357 
358 #include <string>
359 #include <list>
360 #include <map>
361 
368 namespace gloox
369 {
371  GLOOX_API extern const std::string XMLNS_CLIENT;
372 
374  GLOOX_API extern const std::string XMLNS_COMPONENT_ACCEPT;
375 
377  GLOOX_API extern const std::string XMLNS_COMPONENT_CONNECT;
378 
380  GLOOX_API extern const std::string XMLNS_DISCO_INFO;
381 
383  GLOOX_API extern const std::string XMLNS_DISCO_ITEMS;
384 
386  GLOOX_API extern const std::string XMLNS_DISCO_PUBLISH;
387 
389  GLOOX_API extern const std::string XMLNS_ADHOC_COMMANDS;
390 
392  GLOOX_API extern const std::string XMLNS_COMPRESSION;
393 
395  GLOOX_API extern const std::string XMLNS_OFFLINE;
396 
398  GLOOX_API extern const std::string XMLNS_CHAT_STATES;
399 
401  GLOOX_API extern const std::string XMLNS_AMP;
402 
404  GLOOX_API extern const std::string XMLNS_IBB;
405 
407  GLOOX_API extern const std::string XMLNS_FEATURE_NEG;
408 
410  GLOOX_API extern const std::string XMLNS_CHATNEG;
411 
413  GLOOX_API extern const std::string XMLNS_XHTML_IM;
414 
416  GLOOX_API extern const std::string XMLNS_DELAY;
417 
419  GLOOX_API extern const std::string XMLNS_ROSTER;
420 
422  GLOOX_API extern const std::string XMLNS_VERSION;
423 
425  GLOOX_API extern const std::string XMLNS_REGISTER;
426 
428  GLOOX_API extern const std::string XMLNS_PRIVACY;
429 
431  GLOOX_API extern const std::string XMLNS_AUTH;
432 
434  GLOOX_API extern const std::string XMLNS_PRIVATE_XML;
435 
437  GLOOX_API extern const std::string XMLNS_LAST;
438 
440  GLOOX_API extern const std::string XMLNS_SEARCH;
441 
443  GLOOX_API extern const std::string XMLNS_IQ_OOB;
444 
446  GLOOX_API extern const std::string XMLNS_X_DATA;
447 
449  GLOOX_API extern const std::string XMLNS_X_EVENT;
450 
452  GLOOX_API extern const std::string XMLNS_X_OOB;
453 
455  GLOOX_API extern const std::string XMLNS_X_DELAY;
456 
458  GLOOX_API extern const std::string XMLNS_X_GPGSIGNED;
459 
461  GLOOX_API extern const std::string XMLNS_X_GPGENCRYPTED;
462 
464  GLOOX_API extern const std::string XMLNS_VCARD_TEMP;
465 
467  GLOOX_API extern const std::string XMLNS_X_VCARD_UPDATE;
468 
470  GLOOX_API extern const std::string XMLNS_BOOKMARKS;
471 
473  GLOOX_API extern const std::string XMLNS_ANNOTATIONS;
474 
476  GLOOX_API extern const std::string XMLNS_ROSTER_DELIMITER;
477 
479  GLOOX_API extern const std::string XMLNS_XMPP_PING;
480 
482  GLOOX_API extern const std::string XMLNS_SI;
483 
485  GLOOX_API extern const std::string XMLNS_SI_FT;
486 
488  GLOOX_API extern const std::string XMLNS_BYTESTREAMS;
489 
491  GLOOX_API extern const std::string XMLNS_MUC;
492 
494  GLOOX_API extern const std::string XMLNS_MUC_USER;
495 
497  GLOOX_API extern const std::string XMLNS_MUC_ADMIN;
498 
500  GLOOX_API extern const std::string XMLNS_MUC_UNIQUE;
501 
503  GLOOX_API extern const std::string XMLNS_MUC_OWNER;
504 
506  GLOOX_API extern const std::string XMLNS_MUC_ROOMINFO;
507 
509  GLOOX_API extern const std::string XMLNS_MUC_ROOMS;
510 
512  GLOOX_API extern const std::string XMLNS_MUC_REQUEST;
513 
515  GLOOX_API extern const std::string XMLNS_PUBSUB;
516 
518  GLOOX_API extern const std::string XMLNS_PUBSUB_ERRORS;
519 
521  GLOOX_API extern const std::string XMLNS_PUBSUB_EVENT;
522 
524  GLOOX_API extern const std::string XMLNS_PUBSUB_OWNER;
525 
527  GLOOX_API extern const std::string XMLNS_CAPS;
528 
530  GLOOX_API extern const std::string XMLNS_FT_FASTMODE;
531 
533  GLOOX_API extern const std::string XMLNS_STREAM;
534 
536  GLOOX_API extern const std::string XMLNS_XMPP_STREAM;
537 
539  GLOOX_API extern const std::string XMLNS_XMPP_STANZAS;
540 
542  GLOOX_API extern const std::string XMLNS_STREAM_TLS;
543 
545  GLOOX_API extern const std::string XMLNS_STREAM_SASL;
546 
548  GLOOX_API extern const std::string XMLNS_STREAM_BIND;
549 
551  GLOOX_API extern const std::string XMLNS_STREAM_SESSION;
552 
554  GLOOX_API extern const std::string XMLNS_STREAM_IQAUTH;
555 
557  GLOOX_API extern const std::string XMLNS_STREAM_IQREGISTER;
558 
560  GLOOX_API extern const std::string XMLNS_STREAM_COMPRESS;
561 
563  GLOOX_API extern const std::string XMLNS_HTTPBIND;
564 
566  GLOOX_API extern const std::string XMLNS_XMPP_BOSH;
567 
569  GLOOX_API extern const std::string XMLNS_RECEIPTS;
570 
572  GLOOX_API extern const std::string XMLNS_NICKNAME;
573 
575  GLOOX_API extern const std::string XMLNS_JABBER_RPC;
576 
578  GLOOX_API extern const std::string XMLNS_JINGLE;
579 
581  GLOOX_API extern const std::string XMLNS_JINGLE_ERRORS;
582 
584  GLOOX_API extern const std::string XMLNS_JINGLE_ICE_UDP;
585 
587  GLOOX_API extern const std::string XMLNS_JINGLE_FILE_TRANSFER;
588 
590  GLOOX_API extern const std::string XMLNS_JINGLE_FILE_TRANSFER_MULTI;
591 
593  GLOOX_API extern const std::string XMLNS_SHIM;
594 
596  GLOOX_API extern const std::string XMLNS_ATTENTION;
597 
599  GLOOX_API extern const std::string XMLNS_STREAM_MANAGEMENT;
600 
602  GLOOX_API extern const std::string XMLNS_STANZA_FORWARDING;
603 
605  GLOOX_API extern const std::string XMLNS_MESSAGE_CARBONS;
606 
608  GLOOX_API extern const std::string XMLNS_CLIENT_STATE_INDICATION;
609 
611  GLOOX_API extern const std::string XMLNS_HASHES;
612 
614  GLOOX_API extern const std::string XMLNS_IODATA;
615 
617  GLOOX_API extern const std::string XMPP_STREAM_VERSION_MAJOR;
618 
620  GLOOX_API extern const std::string XMPP_STREAM_VERSION_MINOR;
621 
623  GLOOX_API extern const std::string GLOOX_VERSION;
624 
626  GLOOX_API extern const std::string GLOOX_CAPS_NODE;
627 
629  GLOOX_API extern const std::string XMLNS;
630 
632  GLOOX_API extern const std::string TYPE;
633 
635  GLOOX_API extern const std::string EmptyString;
636 
641  {
646  };
647 
653  {
678  };
679 
684  {
716  };
717 
722  {
728  };
729 
734  {
749  // SaslMechanism below must be adjusted accordingly.
750  };
751 
755  // must be adjusted with changes to StreamFeature enum above
757  {
762  SaslMechPlain = 8192,
766  SaslMechGssapi = 65536,
767  SaslMechNTLM = 131072,
768  SaslMechAll = 262143
769  };
770 
775  {
851  };
852 
857  {
865  };
866 
872  {
873 
953  };
954 
958 // enum Presence
959 // {
960 // PresenceUnknown, /**< Unknown status. */
961 // PresenceAvailable, /**< The entity or resource is online and available. */
962 // PresenceChat, /**< The entity or resource is actively interested in chatting. */
963 // PresenceAway, /**< The entity or resource is temporarily away. */
964 // PresenceDnd, /**< The entity or resource is busy (dnd = "Do Not Disturb"). */
965 // PresenceXa, /**< The entity or resource is away for an extended period (xa =
966 // * "eXtended Away"). */
967 // PresenceUnavailable /**< The entity or resource is offline. */
968 // };
969 
974  {
975  CertOk = 0,
984  };
985 
989  struct CertInfo
990  {
991  int status;
992  bool chain;
993  std::string issuer;
994  std::string server;
995  int date_from;
998  int date_to;
1001  std::string protocol;
1002  std::string cipher;
1003  std::string mac;
1004  std::string compression;
1005  };
1006 
1011  {
1047  };
1048 
1052  enum LogArea
1053  {
1054  LogAreaClassParser = 0x000001,
1056  LogAreaClassClient = 0x000004,
1059  LogAreaClassDns = 0x000020,
1069  LogAreaAllClasses = 0x01FFFF,
1070  LogAreaXmlIncoming = 0x020000,
1071  LogAreaXmlOutgoing = 0x040000,
1072  LogAreaUser = 0x800000,
1073  LogAreaAll = 0xFFFFFF
1074  };
1075 
1080  {
1084  };
1085 
1090  {
1099  };
1100 
1105  {
1113  };
1114 
1119  {
1124  };
1125 
1130  {
1136  };
1137 
1142  {
1145  };
1146 
1151  {
1158  };
1159 
1164  {
1170  };
1171 
1176  {
1180  FlagHidden = 1<< 4,
1182  FlagModerated = 1<< 6,
1184  FlagOpen = 1<< 8,
1185  FlagPersistent = 1<< 9,
1186  FlagPublic = 1<<10,
1188  FlagTemporary = 1<<12,
1190  FlagUnsecured = 1<<14,
1192  // keep in sync with MUCUserFlag below
1193  };
1194 
1198  // keep in sync with MUCRoomFlag above
1200  {
1201  UserSelf = 1<<16,
1203  UserKicked = 1<<18,
1204  UserBanned = 1<<19,
1210  UserNewRoom = 1<<23,
1218  };
1219 
1224  {
1246  };
1247 
1251  typedef std::list<std::string> StringList;
1252 
1256  typedef std::list<std::string*> StringPList;
1257 
1261  typedef std::map<std::string, std::string> StringMap;
1262 
1266  typedef std::multimap<std::string, std::string> StringMultiMap;
1267 
1272  typedef std::list<const StanzaExtension*> StanzaExtensionList;
1273 }
1274 
1275 extern "C"
1276 {
1277  GLOOX_API const char* gloox_version();
1278 }
1279 
1280 #endif // GLOOX_H__
const std::string XMLNS_MUC_REQUEST
Definition: gloox.cpp:75
const std::string XMLNS_COMPRESSION
Definition: gloox.cpp:27
MUCRoomFlag
Definition: gloox.h:1175
std::list< const StanzaExtension * > StanzaExtensionList
Definition: gloox.h:1268
const std::string XMLNS_HASHES
Definition: gloox.cpp:113
const std::string XMLNS_RECEIPTS
Definition: gloox.cpp:98
const std::string XMLNS_STREAM_TLS
Definition: gloox.cpp:87
const std::string XMLNS_STREAM_MANAGEMENT
Definition: gloox.cpp:109
const std::string XMLNS_STREAM_IQAUTH
Definition: gloox.cpp:92
const std::string XMLNS_AUTH
Definition: gloox.cpp:43
const std::string XMLNS
Definition: gloox.cpp:123
const std::string XMLNS_SI_FT
Definition: gloox.cpp:65
std::list< std::string > StringList
Definition: gloox.h:1251
const std::string XMLNS_STREAM_SASL
Definition: gloox.cpp:89
const std::string XMLNS_XMPP_PING
Definition: gloox.cpp:62
std::multimap< std::string, std::string > StringMultiMap
Definition: gloox.h:1266
MessageSessionFilter
Definition: gloox.h:1141
const std::string XMLNS_XMPP_STANZAS
Definition: gloox.cpp:86
bool chain
Definition: gloox.h:992
const std::string XMLNS_PUBSUB_ERRORS
Definition: gloox.cpp:78
const std::string XMLNS_ROSTER
Definition: gloox.cpp:38
const std::string XMLNS_JINGLE_ICE_UDP
Definition: gloox.cpp:103
LogArea
Definition: gloox.h:1052
const std::string XMPP_STREAM_VERSION_MAJOR
Definition: gloox.cpp:118
const std::string GLOOX_CAPS_NODE
Definition: gloox.cpp:121
const std::string XMLNS_FT_FASTMODE
Definition: gloox.cpp:83
SubscriptionType
Definition: gloox.h:1223
const std::string XMLNS_CAPS
Definition: gloox.cpp:81
SaslMechanism
Definition: gloox.h:756
std::string cipher
Definition: gloox.h:1002
const std::string XMLNS_CLIENT
Definition: gloox.cpp:19
const std::string XMLNS_XMPP_BOSH
Definition: gloox.cpp:97
const std::string XMLNS_IQ_OOB
Definition: gloox.cpp:48
LogLevel
Definition: gloox.h:1079
const std::string XMLNS_LAST
Definition: gloox.cpp:45
ConnectionError
Definition: gloox.h:683
ResourceBindError
Definition: gloox.h:1118
const std::string XMLNS_CLIENT_STATE_INDICATION
Definition: gloox.cpp:115
const std::string TYPE
Definition: gloox.cpp:124
const std::string XMLNS_IBB
Definition: gloox.cpp:32
const std::string XMLNS_PUBSUB_OWNER
Definition: gloox.cpp:80
const std::string XMLNS_ATTENTION
Definition: gloox.cpp:108
const std::string XMLNS_PUBSUB_EVENT
Definition: gloox.cpp:79
const std::string XMLNS_NICKNAME
Definition: gloox.cpp:99
const std::string XMLNS_SEARCH
Definition: gloox.cpp:47
const std::string XMLNS_DISCO_PUBLISH
Definition: gloox.cpp:25
std::string issuer
Definition: gloox.h:993
std::string server
Definition: gloox.h:994
const std::string XMLNS_X_GPGENCRYPTED
Definition: gloox.cpp:55
const std::string XMLNS_DISCO_INFO
Definition: gloox.cpp:23
std::string mac
Definition: gloox.h:1003
const std::string XMLNS_COMPONENT_ACCEPT
Definition: gloox.cpp:20
const std::string XMPP_STREAM_VERSION_MINOR
Definition: gloox.cpp:119
const std::string XMLNS_AMP
Definition: gloox.cpp:31
const std::string XMLNS_X_DATA
Definition: gloox.cpp:49
const std::string XMLNS_STREAM_SESSION
Definition: gloox.cpp:91
const std::string XMLNS_HTTPBIND
Definition: gloox.cpp:96
const std::string XMLNS_DISCO_ITEMS
Definition: gloox.cpp:24
const std::string XMLNS_MUC_ADMIN
Definition: gloox.cpp:69
StanzaError
Definition: gloox.h:871
const std::string XMLNS_MUC_USER
Definition: gloox.cpp:68
const std::string XMLNS_BOOKMARKS
Definition: gloox.cpp:59
The namespace for the gloox library.
Definition: adhoc.cpp:27
const std::string XMLNS_X_GPGSIGNED
Definition: gloox.cpp:54
This class abstracts a stanza extension, which is usually an XML child element in a specific namespac...
const std::string XMLNS_ADHOC_COMMANDS
Definition: gloox.cpp:26
int date_from
Definition: gloox.h:995
const std::string XMLNS_PRIVATE_XML
Definition: gloox.cpp:44
const std::string XMLNS_IODATA
Definition: gloox.cpp:114
const std::string XMLNS_SI
Definition: gloox.cpp:63
MUCUserFlag
Definition: gloox.h:1199
std::map< std::string, std::string > StringMap
Definition: gloox.h:1261
const std::string XMLNS_STREAM_COMPRESS
Definition: gloox.cpp:95
const std::string XMLNS_XMPP_STREAM
Definition: gloox.cpp:85
const std::string XMLNS_MUC_ROOMINFO
Definition: gloox.cpp:73
StreamEvent
Definition: gloox.h:652
const std::string XMLNS_PUBSUB
Definition: gloox.cpp:77
const std::string XMLNS_STREAM
Definition: gloox.cpp:84
const std::string GLOOX_VERSION
Definition: gloox.cpp:120
std::string protocol
Definition: gloox.h:1001
StreamFeature
Definition: gloox.h:733
const std::string XMLNS_COMPONENT_CONNECT
Definition: gloox.cpp:21
const std::string XMLNS_MUC_UNIQUE
Definition: gloox.cpp:71
const std::string XMLNS_JINGLE_FILE_TRANSFER_MULTI
Definition: gloox.cpp:105
std::list< std::string * > StringPList
Definition: gloox.h:1256
const std::string XMLNS_X_DELAY
Definition: gloox.cpp:53
const std::string XMLNS_X_VCARD_UPDATE
Definition: gloox.cpp:57
const std::string XMLNS_JINGLE_FILE_TRANSFER
Definition: gloox.cpp:104
const std::string XMLNS_JINGLE_ERRORS
Definition: gloox.cpp:102
const std::string XMLNS_BYTESTREAMS
Definition: gloox.cpp:66
ConnectionState
Definition: gloox.h:640
const std::string XMLNS_VERSION
Definition: gloox.cpp:39
ChatStateType
Definition: gloox.h:1104
StanzaErrorType
Definition: gloox.h:856
TLSPolicy
Definition: gloox.h:721
const std::string XMLNS_FEATURE_NEG
Definition: gloox.cpp:33
const std::string XMLNS_VCARD_TEMP
Definition: gloox.cpp:56
const std::string XMLNS_XHTML_IM
Definition: gloox.cpp:36
const std::string XMLNS_STANZA_FORWARDING
Definition: gloox.cpp:110
const std::string XMLNS_MUC_ROOMS
Definition: gloox.cpp:74
StreamError
Definition: gloox.h:774
const std::string XMLNS_PRIVACY
Definition: gloox.cpp:42
const std::string XMLNS_CHATNEG
Definition: gloox.cpp:35
const std::string XMLNS_X_EVENT
Definition: gloox.cpp:50
const std::string XMLNS_MUC_OWNER
Definition: gloox.cpp:72
const std::string XMLNS_MESSAGE_CARBONS
Definition: gloox.cpp:111
const std::string XMLNS_ANNOTATIONS
Definition: gloox.cpp:60
MessageEventType
Definition: gloox.h:1089
CertStatus
Definition: gloox.h:973
const std::string XMLNS_REGISTER
Definition: gloox.cpp:41
AuthenticationError
Definition: gloox.h:1010
const std::string XMLNS_ROSTER_DELIMITER
Definition: gloox.cpp:61
const std::string XMLNS_STREAM_IQREGISTER
Definition: gloox.cpp:93
GLOOX_API const std::string XMLNS_JABBER_RPC
const std::string XMLNS_CHAT_STATES
Definition: gloox.cpp:30
SessionCreateError
Definition: gloox.h:1129
const std::string XMLNS_JINGLE
Definition: gloox.cpp:101
const std::string XMLNS_STREAM_BIND
Definition: gloox.cpp:90
const std::string EmptyString
Definition: gloox.cpp:125
const std::string XMLNS_DELAY
Definition: gloox.cpp:37
const std::string XMLNS_X_OOB
Definition: gloox.cpp:51
MUCRoomAffiliation
Definition: gloox.h:1150
const std::string XMLNS_OFFLINE
Definition: gloox.cpp:29
std::string compression
Definition: gloox.h:1004
const std::string XMLNS_MUC
Definition: gloox.cpp:67
MUCRoomRole
Definition: gloox.h:1163
const std::string XMLNS_SHIM
Definition: gloox.cpp:107