internetradio2.0/sessionloginc/irnmslogger.h
author Pat Downey <patd@symbian.org>
Tue, 18 May 2010 11:36:57 +0100
changeset 4 3f2d53f144fe
parent 0 09774dfdd46b
permissions -rw-r--r--
Merge docml changeset with recent Nokia delivery.

/*
* Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies). 
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description:  ?Description
*
*/


#ifndef IRNMSLOGGER_H
#define IRNMSLOGGER_H

#include <e32base.h>

#include "irsessionparams.h"

class RReadStream;
class RWriteStream;

/**
* This class can hold data for Nms log 
*/

NONSHARABLE_CLASS(CIRNmsLogger) : public CBase
	{
public:
	/**
	* Function: NewL
	* Two phase constructor returns the instance of CIRNmsLogger
	* @returns instance of CIRNmsLogger
	*/
	static CIRNmsLogger* NewL();

	/**
	* Function: NewLC
	* Two phase constructor creates the instance of CIRNmsLogger
	* @returns instance of CIRNmsLogger
	*/
	static CIRNmsLogger* NewLC(); 

	/**
	* Function: ~CIRNmsLogger
	* default destructor
	*/	
	~CIRNmsLogger();
	
private:
	/**
	* Function: ConstructL
	* Two phase constructor
	*/	
	void ConstructL();
	
	/**
	* Function: CIRNmsLogger
	* default constructor
	*/	
	CIRNmsLogger();	

public:
	

	/**
	* Function: ResetResource
	* reset data from channel server
	*/
	void ResetResource();


	/**
	* Function: UpdateChannelID
	* updates the channel id
	* @param channel id
	*/	
	void UpdateChannelID(TInt aChanneldID);
	
	/**
	* Function: UpdateCurrentNetwork
	* updates the current network
	* @param current network
	*/
	void UpdateCurrentNetwork(TInt aCurrentNetwork);
	
	/**
	* Function: UpdateHomeOperator
	* updates the home network
	* @param home network
	*/
	void UpdateHomeOperator(TInt aHomeOperator);

	/**
	* Function : UpdateNmsStartGMTTime
	* function updates Nms start time with current GMT time
	*/
	void UpdateNmsStartGMTTime();
	
	/**
	* Function: UpdateNmsType
	* updates the nms type
	* @param nms type
	*/
	void UpdateNmsType(const TDesC& aNmsType);

	/**	
	* Function: ChannelID
	* return the channel id
	* @return channel id
	*/	
	TInt ChannelID() const;
	
	/**
	* Function: CurrentNetwork
	* returns the Current Network
	* @return Current Network
	*/	
	TInt CurrentNetwork() const;
	
	/**
	* Function: HomeOperator
	* returns the home network
	* @return home network
	*/
	TInt HomeOperator() const;
	
	
	/**
	* Function: StartTime
	* returns the start time
	* @return start time
	*/	
	TDes& StartTime();
	
	/**
	* Function: NmsType
	* returns the nms type
	* @return nms type
	*/	
	TDesC& NmsType();

	/**
	* Function: NmsLogId
	* returns the nmslog id
	* @return n nmslog id
	*/	
	
	TInt NmsLogId() const;
	
	
	/**
	* Function: FileName
	* returns file name
	* @return file name
	*/
	TFileName FileName();
	
	/** 
	* Function: DateTime
	* returns Nms start time
	* @return Nms start time
	*/
	TTime DateTime();
	
	/**
	* Function: GetBackedUp
	* Back up the given Nms, copies the data of the Nms
	* @param Nms logs instance which to be copied
	*/
	void GetBackedUp( CIRNmsLogger& aNms );
	
	/**
	* Function: ExternalizeL
	* externialize the stream to the given stream
	* @param write stream
	*/
	void ExternalizeL(RWriteStream& aWriteStream);
	
	/**
	* Function: InternalizeL
	* gets the data from the stream
	* @param read stream
	*/
	void InternalizeL(RReadStream& aReadStream);
	

private:  
	/**									
	* file name 
	*/									
	TFileName iFilePath;
	
	/**
	* Nms start time
	*/
	TTime iStartNmsTime;
	
	/**
	* time current Nms become active started
	*/
	TTime iActiveNmsTime;
	
	
	/**
	* start time is stored
	*/
	TBuf<64> iStartTime;
	

	/**
	* NmsLog id
	*/
	TInt iNmsLogId;
	
	/**
	* channel id
	*/
	TInt iChannelId;
	
	/**
	* home operator mcc+mnc
	*/
	TInt iHomeOperator;
	
	/**
	* current operator mcc+mnc
	*/
	TInt iNmsCurrentNetwork;
	
	/**
	* nms type information	
	*/
	TBuf<16> iNmsType;
	};


#endif //IRNMSLOGGER_H