btconnectionbase.cpp

来自「S60培训教材代码(连载)」· C++ 代码 · 共 60 行

CPP
60
字号
/* Copyright (c) 2002, Nokia Mobile Phones. All rights reserved */

#include "BTConnectionBase.h"
#include "Log.h"

CBTConnectionBase::CBTConnectionBase(MLog& aLog)
: CActive(CActive::EPriorityStandard),
  iLog(aLog)
    {
    CActiveScheduler::Add(this);
    }

CBTConnectionBase::~CBTConnectionBase()
    {
    }


void CBTConnectionBase::WriteDataSyncL(TDesC8& aData)
    {
    if (IsActive()) 
        {
        iLog.LogL(_L8("WriteDataSyncL, error still reading! "), iStatus.Int());
        User::Leave(KErrInUse);
        }
    iDataSocket.Write(aData, iStatus);
    User::WaitForRequest(iStatus);

    if (KErrNone != iStatus.Int())
        {
        iLog.LogL(_L8("WriteDataSyncL, error = "), iStatus.Int());
        User::Leave(iStatus.Int());
        }
    }

void CBTConnectionBase::ReadDataL()
    {
    if (IsActive()) 
        {
        User::Leave(KErrInUse);
        }
    iDataSocket.RecvOneOrMore(iBuffer, 0, iStatus, iLen);
    SetActive();
    }

void CBTConnectionBase::ReadDataL(TInt aLength)
    {
    if (IsActive()) 
        {
        User::Leave(KErrInUse);
        }
    if (aLength > iBuffer.MaxLength())
        {
        User::Leave(KErrOverflow);
        }
    iBuffer.SetLength(aLength);
    iDataSocket.Read(iBuffer, iStatus);
    SetActive();
    }

⌨️ 快捷键说明

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