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

📄 esimgroupitem.cpp

📁 基于SIP协议的即时消息聊天功能设计,Symbian平台下实现
💻 CPP
字号:
/*  Copyright (c) 2004, Nokia. All rights reserved */

// INCLUDE FILES
#include <s32file.h>
#include <e32std.h>
#include "ESIMGroupItem.h"
#include "ESIMUserItem.h"

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

// ---------------------------------------------------------
// CESIMGroupItem::NewL()
// Creates an instance of the CESIMGroupItem class.
// ---------------------------------------------------------
//
CESIMGroupItem* CESIMGroupItem::NewL()
    {
    CESIMGroupItem* self = CESIMGroupItem::NewLC();
    CleanupStack::Pop( self );
    return self;
    }

// ---------------------------------------------------------
// CESIMGroupItem::NewLC()
// Creates an instance of the CESIMGroupItem class.
// ---------------------------------------------------------
//
CESIMGroupItem* CESIMGroupItem::NewLC()
    {
    CESIMGroupItem* self = new ( ELeave ) CESIMGroupItem;
    CleanupStack::PushL( self );
    self->ConstructL();
    return self;
    }

// ---------------------------------------------------------
// CESIMGroupItem::CESIMGroupItem()
// Constructor
// ---------------------------------------------------------
//
CESIMGroupItem::CESIMGroupItem()
    {
    // No implementation required
    }

// ---------------------------------------------------------
// CESIMGroupItem::~CESIMGroupItem()
// Destructor
// ---------------------------------------------------------
//
CESIMGroupItem::~CESIMGroupItem()
    {
    delete iName;
    iName = NULL;
	
	delete iSipAddress;
	iSipAddress = NULL;

	delete iMessage;
	iMessage = NULL;

	iItemList.ResetAndDestroy();
    }

// ---------------------------------------------------------
// CESIMGroupItem::ConstructL()
// 2nd phase construction.
// ---------------------------------------------------------
//
void CESIMGroupItem::ConstructL()
    {
    // No implementation required
    }

// ---------------------------------------------------------
// CESIMGroupItem::ExternalizeL()
// 2nd phase construction.
// ---------------------------------------------------------
//
void CESIMGroupItem::ExternalizeL( RWriteStream& aStream ) const
    {
	if ( iName )
        {
        aStream << *iName;
        }
    else
        {
        aStream << KNullDesC;
        }

	if ( iSipAddress)
		{
			aStream << *iSipAddress;
		}
	else
		{
			aStream << KNullDesC;
		}

	if ( iMessage)
	{
		aStream << *iMessage;
	}
	else
	{
		aStream << KNullDesC;
	}

	aStream.WriteInt32L( iFlags );

	aStream.WriteInt16L(iItemList.Count());
	for(TInt i=0; i<iItemList.Count(); i++)
	{
		static_cast<CESIMUserItem*>(iItemList[i])->ExternalizeL(aStream);
	}
   }

// ---------------------------------------------------------
// CESIMGroupItem::InternalizeL()
// 2nd phase construction.
// ---------------------------------------------------------
//
void CESIMGroupItem::InternalizeL( RReadStream& aStream )
    {
    delete iName;
	delete iSipAddress;
	delete iMessage;

	iItemList.Reset();

    iName = HBufC::NewL( aStream, KMaxTInt );
	iSipAddress = HBufC::NewL( aStream, KMaxTInt );
	iMessage = HBufC::NewL( aStream, KMaxTInt );
	iFlags = aStream.ReadInt32L();

	TInt j = aStream.ReadInt16L();
	for(TInt i=0; i<j; i++)
		{
		CESIMUserItem* item = CESIMUserItem::NewL();
		CleanupStack::PushL( item );
		item->InternalizeL( aStream );
		User::LeaveIfError( iItemList.Append( item ) );
		CleanupStack::Pop( item );
		}

    }

// ---------------------------------------------------------
// CESIMGroupItem::SetNameL()
// ---------------------------------------------------------
//
void CESIMGroupItem::SetNameL( HBufC* aValue )
    {
    delete iName;
	iName = aValue;
    }

// ---------------------------------------------------------
// CESIMGroupItem::Name()
// ---------------------------------------------------------
//
HBufC* CESIMGroupItem::Name() const
    {
    return iName;
    }

// ---------------------------------------------------------
// CESIMGroupItem::SetNameL()
// ---------------------------------------------------------
//
void CESIMGroupItem::SetSipAddressL( HBufC* aValue )
{
	delete iSipAddress;
	iSipAddress = aValue;
}

HBufC* CESIMGroupItem::SipAddress() const
{
	return iSipAddress;
}

void CESIMGroupItem::SetMessageL( HBufC* aValue )
{
	delete iMessage;
	iMessage = aValue;
}

HBufC* CESIMGroupItem::Message() const
{
	return iMessage;
}

RPointerArray<CESIMUserItem>& CESIMGroupItem::ItemList()
    {
    return iItemList;
    }

 
// ---------------------------------------------------------
// CESIMGroupItem::SetFlags()
// ---------------------------------------------------------
//
void CESIMGroupItem::SetFlagsL( TUint aValue )
   {
   iFlags = aValue;
   }

// ---------------------------------------------------------
// CESIMGroupItem::Flags()
// ---------------------------------------------------------
//
TUint CESIMGroupItem::Flags() const
   {
   return iFlags;
   }

// End of File

⌨️ 快捷键说明

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