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

📄 irsocketsengine.h

📁 运行在symbian 第二版上
💻 H
字号:
#ifndef IRSOCKETSENGINE_H
#define IRSOCKETSENGINE_H

// INCLUDES

// System includes
#include <e32base.h>
#include <ir_sock.h>

// User includes
#include "IrSockets.hrh"

// Forward class declarations
class CIrSocketsAppUi;
class MIrSocketsEngineObserver;

// Constants
const TInt KFormEdwinMaxSize16 = EFormEdwinMaxLength;

// CLASS DECLARATION

/**
*
* @class    CIrSocketsEngine EIrSocketsEngine.h
* @brief    This is the engine class for sending data to the communications port via Infrared.
*
* It connects to the Serial communications server and initialises the serial port for transmitting
* data via Infrared. Also handles closing of the serial port and session to the serial comms server.
*
* Copyright (c) EMCC Software Ltd 2003
* @version 1.0
*/
class CIrSocketsEngine : public CActive
{
    enum TCommsStatus 
    {
        EIdle,
        EDiscovering,
        EDiscovered,
        EConnecting, 
        EConnected,
        EAccepting,
        EAccepted,
        ESending,
        EReceiving,
        EReceived
    };

    public: // Constructor and destructor
        static CIrSocketsEngine* NewL(MIrSocketsEngineObserver& aIrSocketsEngineObserver);
        ~CIrSocketsEngine();

    public:
        void PrepareForSendingL();
        void PrepareForReceivingL();
        void SendL(const TDesC& aData);
        TBool Accepting() const;
        void CancelReceiveL();

    private:
        void InitialiseL();
        void OpenL();
        void DiscoverL();
        void ConnectL();

        void ConfigureReceiverL();
        void ReceiveL();

        void CloseSubSessions();

    private:
        CIrSocketsEngine(MIrSocketsEngineObserver& aIrSocketsEngineObserver);
        void ConstructL();


    private: // from CActive
        void RunL();
        void DoCancel();

    private: // Data
        MIrSocketsEngineObserver&    iIrSocketsEngineObserver;    // handle to Engine Observer
        TBuf8<KFormEdwinMaxSize16>    iSendBuffer;                // data to transmit
           TBuf8<KFormEdwinMaxSize16>    iRecvBuffer;                // data to receive
 
        /*! @var the actual socket */
        RSocket                     iSocket;
        RSocket                        iServiceSocket;

        /*! @var the socket server */
        RSocketServ                 iSocketServer;

        /*! @var DNS name resolver */
        RHostResolver               iHostResolver;

        /*! @var The result from the name resolver */
        TNameEntry                  iNameEntry;

        /*! @var The anme record found by the resolver */
        TNameRecord                 iNameRecord;

        TProtocolDesc                iProtocolInfo;
        TIrdaSockAddr                iIrdaSockAddr;
        TCommsStatus                iState;

};

#endif    // #ifndef IRSOCKETSENGINE_H

// End of File

⌨️ 快捷键说明

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