diff options
9 files changed, 29 insertions, 11 deletions
| diff --git a/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot0x.cpp b/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot0x.cpp index b4ccc21..11773ae 100644 --- a/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot0x.cpp +++ b/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot0x.cpp @@ -13,25 +13,19 @@ int main(int, char**) {  	SimpleEventLoop eventLoop;  	BoostNetworkFactories networkFactories(&eventLoop); -	// Initialize the client with the JID and password  	Client client("echobot@wonderland.lit", "mypass", &networkFactories); - -	// When the client is convnected, send out initial presence +	client.setAlwaysTrustCertificates();  	client.onConnected.connect([&] { -		client.sendPresence(Presence::create("Send me a message")); +		std::cout << "Connected" << std::endl;  	}); - -	// When the client receives an incoming message, echo it back  	client.onMessageReceived.connect([&] (Message::ref message) {  		message->setTo(message->getFrom());  		message->setFrom(JID());  		client.sendMessage(message);  	}); - -	// Start the client  	client.connect(); -	// Run the event loop to start processing incoming network events  	eventLoop.run(); +  	return 0;  } diff --git a/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot1.cpp b/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot1.cpp index 4736494..8a64b56 100644 --- a/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot1.cpp +++ b/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot1.cpp @@ -13,6 +13,7 @@ int main(int, char**) {  	BoostNetworkFactories networkFactories(&eventLoop);  	Client client("echobot@wonderland.lit", "mypass", &networkFactories); +	client.setAlwaysTrustCertificates();  	client.connect();  	eventLoop.run(); diff --git a/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot2.cpp b/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot2.cpp index f431245..deeb852 100644 --- a/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot2.cpp +++ b/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot2.cpp @@ -22,6 +22,7 @@ int main(int, char**) {  	BoostNetworkFactories networkFactories(&eventLoop);  	client = new Client("echobot@wonderland.lit", "mypass", &networkFactories); +	client->setAlwaysTrustCertificates();  	client->onConnected.connect(&handleConnected);  	client->onMessageReceived.connect(bind(&handleMessageReceived, _1));  	client->connect(); diff --git a/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot3.cpp b/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot3.cpp index cd95b91..e3e3560 100644 --- a/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot3.cpp +++ b/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot3.cpp @@ -16,6 +16,7 @@ class EchoBot {  	public:  		EchoBot(NetworkFactories* networkFactories) {  			client = new Client("echobot@wonderland.lit", "mypass", networkFactories); +			client->setAlwaysTrustCertificates();  			client->onConnected.connect(bind(&EchoBot::handleConnected, this));  			client->onMessageReceived.connect(  					bind(&EchoBot::handleMessageReceived, this, _1)); diff --git a/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot4.cpp b/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot4.cpp index c2f555c..c8d8c84 100644 --- a/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot4.cpp +++ b/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot4.cpp @@ -18,6 +18,7 @@ class EchoBot {  		EchoBot(NetworkFactories* networkFactories) {  			//...  			client = new Client("echobot@wonderland.lit", "mypass", networkFactories); +			client->setAlwaysTrustCertificates();  			client->onConnected.connect(bind(&EchoBot::handleConnected, this));  			client->onMessageReceived.connect(  					bind(&EchoBot::handleMessageReceived, this, _1)); diff --git a/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot5.cpp b/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot5.cpp index 0b00330..810424c 100644 --- a/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot5.cpp +++ b/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot5.cpp @@ -18,6 +18,7 @@ class EchoBot {  		EchoBot(NetworkFactories* networkFactories) {  			//...  			client = new Client("echobot@wonderland.lit", "mypass", networkFactories); +			client->setAlwaysTrustCertificates();  			client->onConnected.connect(bind(&EchoBot::handleConnected, this));  			client->onMessageReceived.connect(  					bind(&EchoBot::handleMessageReceived, this, _1)); diff --git a/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot6.cpp b/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot6.cpp index d3587e9..92a2ab6 100644 --- a/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot6.cpp +++ b/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot6.cpp @@ -23,6 +23,7 @@ class EchoBot {  		EchoBot(NetworkFactories* networkFactories) {  			//...  			client = new Client("echobot@wonderland.lit", "mypass", networkFactories); +			client->setAlwaysTrustCertificates();  			client->onConnected.connect(bind(&EchoBot::handleConnected, this));  			client->onMessageReceived.connect(  					bind(&EchoBot::handleMessageReceived, this, _1)); diff --git a/Documentation/SwiftenDevelopersGuide/SConscript b/Documentation/SwiftenDevelopersGuide/SConscript index e000ac2..c50641f 100644 --- a/Documentation/SwiftenDevelopersGuide/SConscript +++ b/Documentation/SwiftenDevelopersGuide/SConscript @@ -87,6 +87,7 @@ if "doc" in ARGUMENTS :  sources = []  for i in range(1, 7) :  	sources.append("Examples/EchoBot/EchoBot" + str(i) + ".cpp") +sources.append("Examples/EchoBot/EchoBot0x.cpp")  sources += ["Examples/EchoBot/" + i for i in ["EchoPayloadParserFactory.h", "EchoPayloadSerializer.h", "EchoPayload.h", "EchoComponent.cpp"]]  for source in sources :  	env.Command(source + ".xml", source, Action(generateDocBookCode, cmdstr = "$GENCOMSTR")) diff --git a/Documentation/SwiftenDevelopersGuide/Swiften Developers Guide.xml b/Documentation/SwiftenDevelopersGuide/Swiften Developers Guide.xml index e0daff3..fae79e4 100644 --- a/Documentation/SwiftenDevelopersGuide/Swiften Developers Guide.xml +++ b/Documentation/SwiftenDevelopersGuide/Swiften Developers Guide.xml @@ -94,7 +94,12 @@          <literal>connect()</literal> to instruct the client to connect to           the XMPP server with the given credentials. Note that this call returns          immediately; it is only when starting the event loop that network -        the actual connection process will start. +        the actual connection process will start. The call to +        <literal>setAlwaysTrustCertificates()</literal> before connecting +        avoids checks for certificate validity; this is convenient for +        the examples in this guide (because not all servers have trusted +        certificates), but for production software, you should +        not call this.        </para>      </sect1> @@ -177,8 +182,20 @@        </para>        <para> +        If you use a C++ compiler that supports C++0x lambda expressions (such as  +        GCC 4.5 or Microsoft Visual Studio 2010), you can write this example in a more +        concise way, as illustrated in <xref linkend="Example-EchoBot0x"/>. However, +        for the remainder of this guide, we will not use this functionality. +      </para> +      <example id="Example-EchoBot0x"> +        <title>EchoBot using C++0x lambda expressions. This is currently only possible with a limited set of C++compilers.</title> +        <include xmlns="http://www.w3.org/2001/XInclude" href="Examples/EchoBot/EchoBot0x.cpp.xml" xpointer="xpointer(//programlisting|//calloutlist)"/> +      </example> + +      <para>          Before moving on to the next step, we are going to rearrange our -        code a bit, to make it a bit cleaner. Instead of using global  +        code from <xref linkend="Example-EchoBot2"/> a bit, to make it a bit cleaner.  +        Instead of using global           variables, we are going to create an <literal>EchoBot</literal>          class with the current code in it. The resulting code can be found          in <xref linkend="Example-EchoBot3"/>. | 
 Swift
 Swift