亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tmserver.cpp

?? c++下s60終端對終端傳輸協議
?? CPP
字號:
/* Copyright (c) 2005, Forum Nokia. All rights reserved */


// INCLUDE FILES
#include <e32svr.h>
#include <e32math.h>

#include "TmServer.h"
#include "ClientServerCommon.h"
#include "TmSession.h"

// ========================= MEMBER FUNCTIONS ==================================

// -----------------------------------------------------------------------------
// CTmServer::NewL()
// Two-phased constructor.
// -----------------------------------------------------------------------------
//
CTmServer* CTmServer::NewL()
    {
    CTmServer* tmServer = CTmServer::NewLC();
    CleanupStack::Pop( tmServer );
    return tmServer;
    }

// -----------------------------------------------------------------------------
// CTmServer::NewLC()
// Two-phased constructor.
// -----------------------------------------------------------------------------
//
CTmServer* CTmServer::NewLC()
    {
    CTmServer* tmServer = new ( ELeave ) CTmServer( EPriorityNormal );
    CleanupStack::PushL( tmServer );
    tmServer->ConstructL();
    return tmServer;
    }

// -----------------------------------------------------------------------------
// CTmServer::ConstructL()
// Symbian 2nd phase constructor can leave.
// -----------------------------------------------------------------------------
//
void CTmServer::ConstructL()
    {
    StartL( KTmServerName );
    }

// -----------------------------------------------------------------------------
// CTmServer::CTmServer()
// C++ default constructor can NOT contain any code, that might leave.
// -----------------------------------------------------------------------------
//
CTmServer::CTmServer( TInt aPriority )
: CServer2( aPriority )
    {
    // Implementation not required
    }

// -----------------------------------------------------------------------------
// CTmServer::NewSessionL()
// Creates a tm server session.
// -----------------------------------------------------------------------------
//
//CSharableSession* CTmServer::NewSessionL( const TVersion& aVersion ) const
CSession2* CTmServer::NewSessionL( const TVersion& aVersion, 
    const RMessage2& /*aMessage*/ ) const
    {
    // Check we are the right version
    if ( !User::QueryVersionSupported( TVersion( KTmServMajorVersionNumber,
                                                 KTmServMinorVersionNumber,
                                                 KTmServBuildVersionNumber ),
                                       aVersion ) )
        {
        User::Leave( KErrNotSupported );
        }

    // Make new session
    return CTmServerSession::NewL( *const_cast<CTmServer*> ( this ) );
                                     
    }

// -----------------------------------------------------------------------------
// CTmServer::IncrementSessions()
// Increments the count of the active sessions for this server.
// -----------------------------------------------------------------------------
//
void CTmServer::IncrementSessions()
    {
    iSessionCount++;
    }

// -----------------------------------------------------------------------------
// CTmServer::DecrementSessions()
// Decrements the count of the active sessions for this server.
// -----------------------------------------------------------------------------
//
void CTmServer::DecrementSessions()
    {
    iSessionCount--;
    if ( iSessionCount <= 0 )
        {
        // There could also be a timer that would allow the server to be running
        // and waiting for new sessions e.g. for a few minutes after the last 
        // session has ended. For simplicity's sake we do not implement a timer here.
        CActiveScheduler::Stop();
        }
    }

// -----------------------------------------------------------------------------
// CTmServer::RunError()
// Processes any errors.
// -----------------------------------------------------------------------------
//
TInt CTmServer::RunError( TInt aError )
    {
    if ( aError == KErrBadDescriptor )
        {
        // A bad descriptor error implies a badly programmed client,
        // so panic it; otherwise report the error to the client
        PanicClient( Message(), EBadDescriptor );
        }
    else
        {
        Message().Complete( aError );
        }

    // The leave will result in an early return from CServer::RunL(), skipping
    // the call to request another message. So do that now in order to keep the
    // server running.
    ReStart();

    return KErrNone;    // Handled the error fully
    }

// -----------------------------------------------------------------------------
// CTmServer::PanicClient()
// Panics the client.
// -----------------------------------------------------------------------------
//
//void CTmServer::PanicClient( const RMessage& aMessage, TTmServPanic aPanic )
void CTmServer::PanicClient( const RMessage2& aMessage, TTmServPanic aPanic )
    {
    aMessage.Panic( KTMExampleServer, aPanic );
    }

// -----------------------------------------------------------------------------
// CTmServer::PanicServer()
// Panics the server.
// -----------------------------------------------------------------------------
//
void CTmServer::PanicServer( TTmServPanic aPanic )
    {
    User::Panic( KTMExampleServer, aPanic );
    }

//*************************************************************************************
TInt CTmServer::RunServer()
    {
    __UHEAP_MARK;
    //
    CTrapCleanup* cleanup = CTrapCleanup::New();
    TInt ret = KErrNoMemory;
    if( cleanup )
        {
        TRAP( ret, CTmServer::RunServerL() );
        delete cleanup;
        }
    //
    __UHEAP_MARKEND;
    if( ret != KErrNone )
        {
        // Signal the client that server creation failed
        RProcess::Rendezvous( ret );
        }
    return ret;
    }

//*************************************************************************************
void CTmServer::RunServerL()
    {
    // Create and install the active scheduler we need
    CActiveScheduler *as=new (ELeave)CActiveScheduler;
    CleanupStack::PushL( as );
    CActiveScheduler::Install(as);

    // Create server
    CTmServer::NewLC();

    // Initialisation complete, now signal the client
    User::LeaveIfError(RThread().RenameMe(KTMExampleServer));
    RProcess::Rendezvous(KErrNone);

    // Ready to run
    CActiveScheduler::Start();

    // Cleanup the server and scheduler
    CleanupStack::PopAndDestroy(2, as);
    }


//*************************************************************************************

TInt E32Main()
    {
    TInt error(KErrNone);
    error = CTmServer::RunServer();
    return error;
    }

// End of File

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产一区二区精华| wwww国产精品欧美| 99精品视频一区| 成人av电影免费观看| 国产成人精品午夜视频免费| 国产真实乱子伦精品视频| 麻豆国产欧美日韩综合精品二区| 日本欧美在线看| 久久66热偷产精品| 国产盗摄一区二区三区| 成人高清av在线| 欧日韩精品视频| 91麻豆精品国产自产在线| 日韩欧美国产午夜精品| 久久色在线观看| 中文字幕一区二区三区乱码在线| 亚洲精品国产成人久久av盗摄 | 91精品婷婷国产综合久久| 91精品视频网| 欧美高清在线精品一区| 亚洲色图一区二区| 香蕉成人啪国产精品视频综合网 | 成人黄色国产精品网站大全在线免费观看| 成人免费黄色大片| 欧美日韩午夜在线| xnxx国产精品| 亚洲精品中文字幕在线观看| 日本欧美一区二区三区乱码| 国产99久久久久久免费看农村| 一本大道久久a久久综合婷婷| 欧美剧情电影在线观看完整版免费励志电影| 欧美一区二区三区精品| 中文字幕不卡的av| 日韩不卡一二三区| 99久久久久久99| 欧美一级xxx| 一区二区三区中文字幕精品精品 | 欧美国产在线观看| 五月婷婷激情综合| 成人美女在线视频| 日韩网站在线看片你懂的| 国产精品国产三级国产普通话99 | 亚洲综合成人在线视频| 国产自产高清不卡| 欧美在线999| 国产精品久久久久永久免费观看| 亚洲成人免费观看| 色综合久久久久| 中文字幕精品一区二区三区精品| 日韩国产欧美一区二区三区| 色婷婷综合久色| 久久久不卡影院| 免费成人在线播放| 精品视频免费看| 亚洲综合免费观看高清完整版 | 欧美日韩在线播放三区| 欧美激情一区在线| 久久99精品一区二区三区三区| 欧美三级日本三级少妇99| 亚洲欧洲av色图| 成人av网址在线观看| 久久久精品2019中文字幕之3| 蜜臀久久99精品久久久久宅男 | 欧美精品一区二区高清在线观看| 亚洲国产日韩a在线播放性色| 91看片淫黄大片一级在线观看| 久久久精品2019中文字幕之3| 日韩经典一区二区| 4438x成人网最大色成网站| 一区二区三区.www| 一本久道中文字幕精品亚洲嫩| 亚洲视频一区二区在线观看| 一本色道久久综合亚洲aⅴ蜜桃| 国产精品超碰97尤物18| 成人小视频免费在线观看| 国产欧美一区二区在线| 国产精品中文有码| 欧美高清在线视频| 91视频.com| 亚洲国产成人高清精品| 欧美妇女性影城| 日本欧美一区二区三区乱码| 欧美不卡激情三级在线观看| 久久99国产精品麻豆| 国产亚洲精品aa午夜观看| 成人av电影在线观看| 亚洲视频一区在线| 欧美日韩国产美女| 精品一二线国产| 国产精品入口麻豆九色| 91美女片黄在线观看| 亚洲国产成人porn| 欧美va日韩va| 97精品国产露脸对白| 亚洲www啪成人一区二区麻豆 | 国产精品久久久久久一区二区三区 | 欧美性生活久久| 蜜桃在线一区二区三区| 国产女人18毛片水真多成人如厕 | 久久精品国内一区二区三区| 久久九九99视频| 日本道在线观看一区二区| 午夜精品视频在线观看| 久久久国产精品不卡| 欧美亚洲自拍偷拍| 国产伦精品一区二区三区免费| 成人欧美一区二区三区小说| 欧美久久久久久蜜桃| 激情六月婷婷综合| 亚洲线精品一区二区三区| 久久久午夜精品理论片中文字幕| 色综合天天在线| 久国产精品韩国三级视频| 亚洲欧美日韩中文播放| 精品国产一区二区三区不卡| 色噜噜狠狠成人网p站| 久久精品噜噜噜成人av农村| 一区在线播放视频| 久久久久久久免费视频了| 欧美日韩在线不卡| caoporen国产精品视频| 麻豆精品久久精品色综合| 亚洲免费伊人电影| 国产色产综合色产在线视频| 日韩一区二区免费视频| 91福利区一区二区三区| 国产999精品久久| 精品一区二区三区免费观看 | 免费成人av在线| 亚洲精品中文在线影院| 国产色婷婷亚洲99精品小说| 日韩你懂的在线播放| 欧美三级在线播放| 日本二三区不卡| 91在线视频播放| av男人天堂一区| 成人小视频免费在线观看| 国产精品一品二品| 九一九一国产精品| 久久精品国产一区二区| 午夜亚洲福利老司机| 亚洲一区在线免费观看| 亚洲人成精品久久久久| 国产精品乱码妇女bbbb| 欧美激情综合网| 国产精品三级视频| 国产精品福利一区二区三区| 国产网红主播福利一区二区| 久久女同精品一区二区| 久久综合精品国产一区二区三区| 日韩女优电影在线观看| 日韩一级欧美一级| 日韩一区二区三区四区五区六区| 日韩亚洲国产中文字幕欧美| 日韩一区二区电影在线| 欧美xxxxxxxx| 国产午夜精品久久| 国产精品对白交换视频| 亚洲日本在线看| 亚洲综合久久久| 日本不卡一二三| 国产主播一区二区| 成人精品视频一区二区三区 | 狠狠狠色丁香婷婷综合久久五月| 老司机精品视频一区二区三区| 欧美videossexotv100| 一本色道久久加勒比精品 | 久久亚洲一级片| 久久久国产午夜精品| 日本一区二区三区国色天香| 国产婷婷色一区二区三区在线| 中文字幕av资源一区| 亚洲免费av高清| 日本亚洲三级在线| 国产精品91一区二区| 成人激情免费网站| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 美女视频免费一区| 国产精品自拍毛片| 91国产精品成人| 精品国产精品一区二区夜夜嗨| 国产精品久久久久婷婷二区次| 一级女性全黄久久生活片免费| 蜜臀a∨国产成人精品| 成人激情小说乱人伦| 欧美日韩aaa| 国产精品美女一区二区| 日韩激情视频网站| 国产成人av电影在线播放| 色av综合在线| 久久青草国产手机看片福利盒子| 亚洲视频网在线直播| 久久99精品久久久久久国产越南| 99综合影院在线| 日韩精品最新网址| 亚洲一区二区三区四区在线| 国产一二精品视频| 欧美在线你懂得| 国产精品护士白丝一区av| 另类小说综合欧美亚洲|