This is a collection of Frequently Asked Questions and Preemptively Answered Questions.
Just use gloox like you would with any other Jabber/XMPP server. However, you should use a TLS/SSL-enabled gloox to save you some trouble. Also, GTalk requires lookup of SRV records which gloox does not yet support on all platforms. On such systems (e.g., SkyOS) you can use ClientBase::setServer( "talk.google.com" ) to manually tell gloox which server to connect to.
Short answer: yes. Long answer: It supports UTF-8 which is the only character encoding supported by XMPP. gloox handles this perfectly fine using std::string and there is no need to compile gloox with UNICODE defined. If your platform's character encoding is not UTF-8 you have to convert it to UTF-8 before feeding data into gloox.
Several entities on the XMPP network inject unescaped ' and " characters into XMPP streams. This is explicitely forbidden by the current XMPP spec. These entities are in violation of RFC3920. However, this part of the RFC is currently being discussed by the XSF and it is possible it is lifted in the future. gloox will be updated as soon as a decision is made.
In general, the API is stable within a branch, yes. That is, all the 0.9.x releases should be source compatible. If bugfixing makes source compatibility impossible, this will be clearly announced in the ChangeLog for the affected release.
No, old-style SSL-only connections are not supported. They are not specified in the XMPP standard.
Maybe. See the roadmap for up-to-date scheduling. Also, feel free to contact me if you want to sponsor me to add certain functionality.
First, make sure you are using the latest release of gloox. Also make sure you have appropriate versions of the dependencies installed (if you need them). If this doesn't solve your problem send a message to the mailinglist describing what goes wrong. Please don't forget to mention your operating system and compiler, and include any relevant debug output and source code that could help to reproduce the problem.
All the dependencies are optional (but recommended) and add functionality which the specifications require. For example, you can choose from two TLS implementations which gloox supports. Re-implementing such functionality would be a waste of resources.
Uhm... no. gloox is neither related to Smack nor has it anything to do with Java. gloox is pure C++.
Most likely because you forgot to register it with the Client (or the respective object).
Make sure you have GnuTLS 1.2.x or above installed. The older 1.0.x versions are not supported.
Make sure the server is compliant to the XMPP specs. An important piece to watch out for is, for example, the 'version' attribute of the initial stream element sent by the server. If this attribute is missing, you probably won't have much fun.
No, I will not work around old or buggy server implementations. If you encounter problems with a particular server, please contact that server's owner/admin and urge them to update their server software. All the major server implementations are fairly compliant to the specs nowadays.
See the previous questions/answers.
Yes, gloox compiles and runs on MacOS X.
Yes, starting with the 0.7 release, gloox compiles in MinGW and MSVC. See README.win32 for more information. It is quite likely that it also compiles in Cygwin, however Cygwin is not an officially supported build target (yet?).
Yes, since 0.7.
Yes, since the 0.7.6 release gloox supports Syllable.
As of 0.9, yes.
All functions are reentrant. No state is kept in shared or global variables.
gloox is thread-safe in that there are neither shared memory nor global variables. However, write access to gloox objects from multiple threads needs appropriate synchronization. In gloox 0.9, access to TCP send() and recv() as well as SOCKS5BytestreamServer is synchronized internally.
Contact me if you're interested in a commercial license.
No.