gloox.h

00001 /*
00002   Copyright (c) 2005 by Jakob Schroeter <js@camaya.net>
00003   This file is part of the gloox library. http://camaya.net/gloox
00004 
00005   This software is distributed under a license. The full license
00006   agreement can be found in the file LICENSE in this distribution.
00007   This software may not be copied, modified, sold or distributed
00008   other than expressed in the named license agreement.
00009 
00010   This software is distributed without any warranty.
00011 */
00012 
00218 #ifndef GLOOX_H__
00219 #define GLOOX_H__
00220 
00221 #include "macros.h"
00222 
00223 #include <string>
00224 #include <list>
00225 #include <map>
00226 
00227 #ifdef WIN32
00228 #define GLOOX_DLL_EXPORT __declspec( dllexport )
00229 #else
00230 #define GLOOX_DLL_EXPORT
00231 #endif
00232 
00233 #define XMLNS_CLIENT            "jabber:client"
00234 #define XMLNS_COMPONENT_ACCEPT  "jabber:component:accept"
00235 #define XMLNS_COMPONENT_CONNECT "jabber:component:connect"
00236 
00237 #define XMLNS_DISCO_INFO        "http://jabber.org/protocol/disco#info"
00238 #define XMLNS_DISCO_ITEMS       "http://jabber.org/protocol/disco#items"
00239 #define XMLNS_ADHOC_COMMANDS    "http://jabber.org/protocol/commands"
00240 #define XMLNS_COMPRESSION       "http://jabber.org/protocol/compress"
00241 #define XMLNS_OFFLINE           "http://jabber.org/protocol/offline"
00242 #define XMLNS_ROSTER            "jabber:iq:roster"
00243 #define XMLNS_VERSION           "jabber:iq:version"
00244 #define XMLNS_REGISTER          "jabber:iq:register"
00245 #define XMLNS_PRIVACY           "jabber:iq:privacy"
00246 #define XMLNS_AUTH              "jabber:iq:auth"
00247 #define XMLNS_PRIVATE_XML       "jabber:iq:private"
00248 #define XMLNS_ROSTER            "jabber:iq:roster"
00249 #define XMLNS_LAST              "jabber:iq:last"
00250 #define XMLNS_DATA_FORMS        "jabber:x:data"
00251 #define XMLNS_BOOKMARKS         "storage:bookmarks"
00252 #define XMLNS_ANNOTATIONS       "storage:rosternotes"
00253 #define XMLNS_ROSTER_DELIMITER  "roster:delimiter"
00254 
00255 #define XMLNS_XMPP_STREAM       "urn:ietf:params:xml:ns:xmpp-streams"
00256 #define XMLNS_XMPP_STANZAS      "urn:ietf:params:xml:ns:xmpp-stanzas"
00257 #define XMLNS_STREAM_TLS        "urn:ietf:params:xml:ns:xmpp-tls"
00258 #define XMLNS_STREAM_SASL       "urn:ietf:params:xml:ns:xmpp-sasl"
00259 #define XMLNS_STREAM_BIND       "urn:ietf:params:xml:ns:xmpp-bind"
00260 #define XMLNS_STREAM_SESSION    "urn:ietf:params:xml:ns:xmpp-session"
00261 #define XMLNS_STREAM_IQAUTH     "http://jabber.org/features/iq-auth"
00262 #define XMLNS_STREAM_IQREGISTER "http://jabber.org/features/iq-register"
00263 #define XMLNS_STREAM_ACK        "http://jabber.org/features/ack"
00264 #define XMLNS_STREAM_COMPRESS   "http://jabber.org/features/compress"
00265 
00266 #define XMPP_STREAM_VERSION_MAJOR  "1"
00267 #define XMPP_STREAM_VERSION_MINOR  "0"
00268 #define GLOOX_VERSION              "0.7.5"
00269 
00276 namespace gloox
00277 {
00278 
00282   enum ConnectionState
00283   {
00284     STATE_DISCONNECTED,             
00285     STATE_CONNECTING,               
00286     STATE_CONNECTED                 
00288   };
00289 
00293   enum ConnectionError
00294   {
00295     CONN_OK,                       
00296     CONN_STREAM_ERROR,             
00297     CONN_STREAM_CLOSED,            
00298     CONN_IO_ERROR,                 
00299     CONN_OUT_OF_MEMORY,            
00300     CONN_NO_SUPPORTED_AUTH,        
00301     CONN_TLS_FAILED,               
00302     CONN_AUTHENTICATION_FAILED,    
00304     CONN_USER_DISCONNECTED         
00305   };
00306 
00310   enum StreamError
00311   {
00312     ERROR_UNDEFINED,                
00315     ERROR_BAD_FORMAT,               
00321     ERROR_BAD_NAMESPACE_PREFIX,     
00324     ERROR_CONFLICT,                 
00327     ERROR_CONNECTION_TIMEOUT,       
00329     ERROR_HOST_GONE,                
00332     ERROR_HOST_UNKNOWN,             
00335     ERROR_IMPROPER_ADDRESSING,      
00337     ERROR_INTERNAL_SERVER_ERROR,    
00340     ERROR_INVALID_FROM,             
00344     ERROR_INVALID_ID,               
00346     ERROR_INVALID_NAMESPACE,        
00350     ERROR_INVALID_XML,              
00352     ERROR_NOT_AUTHORIZED,           
00356     ERROR_POLICY_VIOLATION,         
00359     ERROR_REMOTE_CONNECTION_FAILED, 
00361     ERROR_RESOURCE_CONSTRAINT,      
00363     ERROR_RESTRICTED_XML,           
00366     ERROR_SEE_OTHER_HOST,           
00371     ERROR_SYSTEM_SHUTDOWN,          
00373     ERROR_UNDEFINED_CONDITION,      
00376     ERROR_UNSUPPORTED_ENCODING,     
00378     ERROR_UNSUPPORTED_STANZA_TYPE,  
00380     ERROR_UNSUPPORTED_VERSION,      
00384     ERROR_XML_NOT_WELL_FORMED       
00386   };
00387 
00391   enum StanzaType
00392   {
00393     STANZA_UNDEFINED,               
00394     STANZA_IQ,                      
00395     STANZA_MESSAGE,                 
00396     STANZA_S10N,                    
00397     STANZA_PRESENCE                 
00398   };
00399 
00403   enum StanzaSubType
00404   {
00405     STANZA_SUB_UNDEFINED,           
00406     STANZA_IQ_GET,                  
00407     STANZA_IQ_SET,                  
00411     STANZA_IQ_RESULT,               
00412     STANZA_IQ_ERROR,                
00417     STANZA_PRES_UNAVAILABLE,        
00421     STANZA_PRES_AVAILABLE,          
00425     STANZA_PRES_PROBE,              
00429     STANZA_PRES_ERROR,              
00433     STANZA_S10N_SUBSCRIBE,          
00437     STANZA_S10N_SUBSCRIBED,         
00441     STANZA_S10N_UNSUBSCRIBE,        
00445     STANZA_S10N_UNSUBSCRIBED,       
00449     STANZA_MESSAGE_CHAT,            
00455     STANZA_MESSAGE_ERROR,           
00461     STANZA_MESSAGE_GROUPCHAT,       
00469     STANZA_MESSAGE_HEADLINE,        
00478     STANZA_MESSAGE_NORMAL           
00485   };
00486 
00490   enum StanzaErrorType
00491   {
00492     ST_TYPE_CANCEL,                   
00493     ST_TYPE_CONTINUE,                 
00494     ST_TYPE_MODIFY,                   
00495     ST_TYPE_AUTH,                     
00496     ST_TYPE_WAIT                      
00497   };
00498 
00502   enum StanzaError
00503   {
00504     ST_ERROR_UNDEFINED = 0,         
00505     ST_ERROR_BAD_REQUEST,           
00509     ST_ERROR_CONFLICT,              
00512     ST_ERROR_FEATURE_NOT_IMPLEMENTED,
00515     ST_ERROR_FORBIDDEN,             
00517     ST_ERROR_GONE,                  
00521     ST_ERROR_INTERNAL_SERVER_ERROR, 
00524     ST_ERROR_ITEM_NOT_FOUND,        
00526     ST_ERROR_JID_MALFORMED,         
00531     ST_ERROR_NOT_ACCEPTABLE,        
00535     ST_ERROR_NOT_ALLOWED,           
00537     ST_ERROR_NOT_AUTHORIZED,        
00540     ST_ERROR_PAYMENT_REQUIRED,      
00543     ST_ERROR_RECIPIENT_UNAVAILABLE, 
00548     ST_ERROR_REDIRECT,              
00553     ST_ERROR_REGISTRATION_REQUIRED, 
00556     ST_ERROR_REMOTE_SERVER_NOT_FOUND,
00559     ST_ERROR_REMOTE_SERVER_TIMEOUT, 
00563     ST_ERROR_RESOURCE_CONSTRAINT,   
00565     ST_ERROR_SERVICE_UNAVAILABLE,   
00567     ST_ERROR_SUBSCRIBTION_REQUIRED, 
00570     ST_ERROR_UNDEFINED_CONDITION,   
00574     ST_ERROR_UNEXPECTED_REQUEST     
00577   };
00578 
00582   enum PresenceStatus
00583   {
00584     PRESENCE_UNKNOWN,               
00585     PRESENCE_AVAILABLE,             
00586     PRESENCE_CHAT,                  
00587     PRESENCE_AWAY,                  
00588     PRESENCE_DND,                   
00589     PRESENCE_XA,                    
00591     PRESENCE_UNAVAILABLE            
00592   };
00593 
00597   enum CertStatus
00598   {
00599     CERT_OK              =  0,      
00600     CERT_INVALID         =  1,      
00601     CERT_SIGNER_UNKNOWN  =  2,      
00602     CERT_REVOKED         =  4,      
00603     CERT_EXPIRED         =  8,      
00604     CERT_NOT_ACTIVE      = 16,      
00605     CERT_WRONG_PEER      = 32,      
00607     CERT_SIGNER_NOT_CA   = 64       
00608   };
00609 
00613   struct CertInfo
00614   {
00615     int status;                     
00616     bool chain;                     
00617     std::string issuer;             
00618     std::string server;             
00619     int date_from;                  
00620     int date_to;                    
00621     std::string protocol;           
00622     std::string cipher;             
00623     std::string mac;                
00624     std::string compression;        
00625   };
00626 
00630   enum AuthenticationError
00631   {
00632     AUTH_ERROR_UNDEFINED,           
00633     SASL_ABORTED,                   
00636     SASL_INCORRECT_ENCODING,        
00641     SASL_INVALID_AUTHZID,           
00646     SASL_INVALID_MECHANISM,         
00649     SASL_MECHANISM_TOO_WEAK,        
00653     SASL_NOT_AUTHORIZED,            
00657     SASL_TEMPORARY_AUTH_FAILURE,    
00660     NONSASL_CONFLICT,               
00661     NONSASL_NOT_ACCEPTABLE,         
00662     NONSASL_NOT_AUTHORIZED          
00663   };
00664 
00668   typedef std::list<std::string> StringList;
00669 
00673   typedef std::map<std::string, std::string> StringMap;
00674 
00675 }
00676 
00677 #endif // GLOOX_H__

Generated on Mon Jan 16 16:19:54 2006 for gloox by  doxygen 1.4.6