Re: Ask: Gloox for Symbian C++
From: Harapan Rachman <harapanrachman@xxxxxxxxx>
Date: Sat, 16 Jan 2010 12:38:57 +0100 (CET)
Yes, it is all because the STL not support for S60 2nd. BTW, could 
CSecureSocket be my answer for this prob? hence i don't need third party 
anymore (libssl, libcrypto, and so on).

--- On Fri, 1/15/10, Kyle M. Lee <mail2kyle@xxxxxxxxx> wrote:

From: Kyle M. Lee <mail2kyle@xxxxxxxxx>
Subject: Re: [gloox-dev] Ask: Gloox for Symbian C++
To: gloox-dev@xxxxxxxxxx
Date: Friday, January 15, 2010, 10:44 AM

I've ported gloox to SymbiamOS before, but only S60 3rd MR +, Cause of STL 
supporting.The socket part, you can rewrite a tcpclientconnection class in 
symbian style.

On Fri, Jan 8, 2010 at 1:54 PM, Harapan Rachman <harapanrachman@xxxxxxxxx> 
wrote:

Dear all.

First, let me introduce myself. I am Harapan. I am currently developing Symbian 
C++ 

simple chat bot application connected to Google Talk Service. I've read 
carefully the documentation of Gloox. Now I have several questions and i would 
be thank you if you want to spare a moment answering my questions.


1. As per Google Talk Service requirement, instead of Gloox example of bot 
Class, i modify it a  little and the result is shown below.

// ---------------------------------------
#include <gloox/client.h>

#include <gloox/messagehandler.h>
#include <gloox/connectionlistener.h> //is it correct?

using namespace gloox;
class Bot : public MessageHandler,
ConnectionListener //required by google
{

public:

virtual bool onTLSConnect(const CertInfo& info) //required by google
 talk
{
//since i'd like to trust the google server,
return True;
}
Bot()
{
JID jid( "myaccount@xxxxxxxxx" );
j = new Client( jid, "mypassword", 5222);

j->setServer("talk.google.com"); //google host name
j->registerMessageHandler( this );
j->registerConnectionListener( this ); //required by google talk

j->connect();
}

virtual void handleMessage( const Message& stanza,
MessageSession* session = 0 )
{
// Do something with the stanza content and sender
}
private:
Client* j;
};
// ------------------------------------------


Is the above coding correct?

2. For this question, I include three files that may be handy. In Symbian, as 
you might 
have known, to read/write a certain amount of data, we need to first open a 
socket and 

initiate connection as shown below.

// ------------------------
// Open a TCP socket
User::LeaveIfError( iSocket.Open(
 iSocketServ,
KAfInet,
KSockStream,
KProtocolInetTcp, iConnection ) );

// Set up address information
iAddress.SetPort( KDefaultPortNumber );
iAddress.SetAddress( aAddr );

// Initiate socket connection

iSocket.Connect( iAddress, iStatus );
SetActive();
// ------------------------

then we read/write the data from/to socket as shown below.

// ---------------------------------------------------------------------------

// CIAPConnectDemoEngine::WriteL()
// Writes data to socket.
// ---------------------------------------------------------------------------
//
void CIAPConnectDemoEngine::WriteL( const TDesC8& aData )
{

if ( iEngineStatus == EConnected )
{
iSocketsWriter->IssueWriteL( aData );
}
}

// ---------------------------------------------------------------------------
// CIAPConnectDemoEngine::ReadL()
// Initiates read of data from socket.

//
 ---------------------------------------------------------------------------
//
void CIAPConnectDemoEngine::ReadL()
{
if ( ( iEngineStatus == EConnected ) && ( !iSocketsReader->IsActive() ) )
{

iSocketsReader->StartL();
}
}
// --------------------------

So my question is, Does the code below require that my symbian chat app has 
already 
been connected to internet?
                                                 j->connect();


After j->connect(), do I need to open socket and do symbian socket 
reading/writing? In 
other words, do I need to provide internet connection only and let j->connect 
handle 
the rest of it?

3. the virtual handleMessage(...), as shown above is called when there is 
incoming 

message regardless the sender. Now, i need to put a lot of piece of code in 
virtual 
handleMessage(...). If by any chance, there is incoming message and my
 
handleMessage(...) have not finished the job, what will then happen? what if 
there are 
tenth incoming messages altogether? can the incoming message wait? or my app 
crash? I
need a shed of light here ^_^7


4. When I install GNUTLS and GNUIDN, should i let the installer to choose the 
default 
installation path?

5. Is there anything that i should know about how to build Symbian chat bot app 
using 
your Gloox library?


6. In the gloox.mmp, i found the following code;

        library         libstdcpp.lib libssl.lib
        library         libcrypto.lib libz.lib

i can not find in the gloox 1.0 file downloaded from camaya.net. where can i 
find it?

7. Recently, i try compiling the code. But it yields error, i.e.:

        can not find <string>,<map> and <list>.

so i downloaded the stl-port 5.2.1. from stlport.org. yet, the errors still 
occured. it said; undefined identifier std. OMG, i think the stl is not
 compatible with Symbian C++ compiler (S60 2nd FP3 SDK), isn't it? um... how 
can i solve it?

I think that's all. I am sorry for hasking so many questions. And i really 
thank you for spending your time reading my email.


Sincerely,
Harapan Rachman.





      
--

gloox-dev mailing list

to unsubscribe:

send a message with subject 'unsubscribe gloox-dev' to minimalist@xxxxxxxxxx



-----Inline Attachment Follows-----

-- 
gloox-dev mailing list
to unsubscribe:
send a message with subject 'unsubscribe gloox-dev' to minimalist@xxxxxxxxxx