Development/Tutorials/Decibel/Handling TextChannels: Difference between revisions

    From KDE TechBase
    No edit summary
    Line 6: Line 6:
    ==ChannelHandler class==
    ==ChannelHandler class==
    The first class we will need to create is an implementation of the Decibel::ChannelHandler interface.
    The first class we will need to create is an implementation of the Decibel::ChannelHandler interface.
    [code]
    class MyTextChannelHandler : public Decibel::ChannelHandler
    {
        Q_OBJECT
    public:
        /** @brief Constructor. */
        explicit MyTextChannelHandler(QObject * parent = 0);
        /** @brief Destructor. */
        ~MyTextChannelHandler();
        /** @brief A implementation of the ChannelHandler interface's only method. */
        bool handleChannel(QtTapioca::Connection *, QtTapioca::Channel *, const bool);
    public slots:
        /** @brief Called when a new text message was received on our channel. */
        void onMessageReceived();
        /** @brief Called when our channel is closed. */
        void onCloseChannel();
    private:
        /** @brief A pointer to our Connection. */
        QtTapioca::Connection *  m_connection;
        /** @brief A pointer to our Channel. */
        QtTapioca::TextChannel * m_channel;
    };
    [/code]

    Revision as of 03:55, 12 March 2008

    Abstract

    This tutorial will walk you through the process of creating a simple application that uses Decibel's TextChannels to communicate via arbitrary instant messaging networks using telepathy. From the result of this tutorial, only a few more lines of code are needed to produce a functioning text based instant messaging client.

    This tutorial is based on the source code of the simpleclient demo included in decibel. An explanation of using the simpleclient demo can be found here.

    ChannelHandler class

    The first class we will need to create is an implementation of the Decibel::ChannelHandler interface.

    [code] class MyTextChannelHandler : public Decibel::ChannelHandler {

       Q_OBJECT
    

    public:

       /** @brief Constructor. */
       explicit MyTextChannelHandler(QObject * parent = 0);
       /** @brief Destructor. */
       ~MyTextChannelHandler();
    
       /** @brief A implementation of the ChannelHandler interface's only method. */
       bool handleChannel(QtTapioca::Connection *, QtTapioca::Channel *, const bool);
    

    public slots:

       /** @brief Called when a new text message was received on our channel. */
       void onMessageReceived();
       /** @brief Called when our channel is closed. */
       void onCloseChannel();
    

    private:

       /** @brief A pointer to our Connection. */
       QtTapioca::Connection *  m_connection;
       /** @brief A pointer to our Channel. */
       QtTapioca::TextChannel * m_channel;
    

    }; [/code]