⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tcpcocketengine.h

📁 《基于Symbian OS的手机开发与应用实践》这本书的配套源码。
💻 H
字号:
/*
* ============================================================================
*  Name     : CTcpCocketEngine from TcpCocketEngine.h
*  Part of  : TcpCocket
*  Created  : 06.03.2006 by ToBeReplacedByAuthor
*  Description:
*     Declares engine for application.
*  Version  :
*  Copyright: ToBeReplacedByCopyright
* ============================================================================
*/

#ifndef TCPCOCKETENGINE_H
#define TCPCOCKETENGINE_H

// INCLUDES
#include <e32base.h>
#include <es_sock.h>
#include <in_sock.h>

#include "TcpCocketTimer.h"
#include "TcpCocketSender.h"
#include "TcpCocketReceiver.h"


// CONSTANTS

// FORWARD DECLARATIONS


// CLASS DECLARATION

/**
*  CTcpCocketEngine application class.
*/
class CTcpCocketEngine : public CActive, public CTcpCocketSender::MObserver, 
    public CTcpCocketReceiver::MObserver, public CTcpCocketTimer::MTimerObserver
    {
    public: // Observer interface
        class MTcpObserver
            {
            public:
                virtual void OnConnectL(TInt aError) = 0;
                virtual void OnSendL(const TDesC& aMsg, TInt aError) = 0;
                virtual void OnReceiveL(const TDesC& aMsg, TInt aError) = 0;
            };

    public: // Enumeration
        enum TState
            {
            EStateIdle,
            EStateConnecting,
            EStateListening,
            EStateConnected
            };

    public: // Constructors and destructor
        /**
        * Two-phased constructor.
        */
        static CTcpCocketEngine* NewL(MTcpObserver& aObserver);

        /**
        * Destructor.
        */
        virtual ~CTcpCocketEngine();

    public: // New functions
        TState State();
        void ConnectL(const TDesC& aAddr, TUint aPort);
        void Disconnect();
        void ListenL();

        void SendL(const TDesC& aMsg);
        void ReceiveL();

    protected: // Functions from CActive
        void DoCancel();
        void RunL();

    protected: // Functions from CTcpCocketTimer::MTimerObserver
        void OnTimerL(TInt aError);

    protected: // Functions from CTcpCocketSender::MObserver
        void OnSendL(const TDesC& aMsg, TInt aError);

    protected: // Functions from CTcpCocketReceiver::MObserver
        void OnReceiveL(const TDesC& aData, TInt aError);

    private:
        /**
        * EPOC default constructor.
        */
        CTcpCocketEngine(MTcpObserver& aObserver);
        void ConstructL();

    private: // member variables
        MTcpObserver& iObserver;
        RSocketServ iSocketServ;
        RSocket iListenSocket;
        RSocket iSocket;
        TInetAddr iAddr;
        CTcpCocketTimer* iTimer;
        CTcpCocketSender* iSender;
        CTcpCocketReceiver* iReceiver;
        TState iState;
    };

#endif

// End of File

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -