internetradio2.0/sessionloginc/irsessiondb.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 IRSESSIONDB_H
#define IRSESSIONDB_H

#include <d32dbms.h>

class CIRSessionLogger;

NONSHARABLE_CLASS(CIRSessionDb) : public CBase
	{												
										//member functions
public:

	/**
	* Function : NewL()
	* Two phased construction
	* @return instance of CIRSessionDb
	*/
	static CIRSessionDb* NewL();
	
	/**
	* Function : NewLC()
	* Two phased construction
	* @return instance of CIRSessionDb
	*/	
	static CIRSessionDb* NewLC();
	
	/**
	* Function : ~CIRSessionDb()
	* default destructor
	*/	
	~CIRSessionDb();

	/**
	* Function : CreateDbConditional()
	* Creates both the dbms files conditionally(only if not yet created)
	* @param session database file
	* @return errcode
	*/	
	TInt CreateDbConditional(TFileName &aSession);

	/**
	* Function : AddSessionStartL()
	* adds the session log entry into data base
	* @param session data instance
	*/
	void AddSessionStartL(CIRSessionLogger& aSession);
	
	/**
	* CIRSessionDb::GetAllPresetL()
	* gets all the preset into an array 
	*/
	void GetAllSessionL(CArrayPtrFlat<CIRSessionLogger>& aSessionDataList);
	
	/**
	* Function : DeleteAllSessionL
	* delete all the session from session log entry
	*/
	void DeleteAllSessionL();

private: 

	/**
	* Function : ConstructL()
	* two phase construction
	*/   
    void ConstructL();
    
    /**
	* Function : CloseDb()
	* Closes the database 
	*/
	void CloseDb();
	
	/**
	* Function : CreateSessionTableL
	* creates sessionlogtable with two column one is sessionid and rest of session
	* log data
	* ---------------------------------------------------------------------------
	* SessionTable
	*---------------------------
	*| KID   |	 KSessionLogCol |
	*---------------------------
	*|TInt32 | EDbColLongText8 |
	*---------------------------
	*/	
    void CreateSessionTableL();
    
	/**
	* Function : CreateSessionIndexL
	* sets sessionid as the primary key
	*/  
    void CreateSessionIndexL();
    
	/**
	* Function : OpenDbL()
	* opening the data base 
	*/
	void OpenDbL();
	
	/**
	* Function : CreateDbL()
	* creates both the dbms files 
	* database filename
	*/	
	void CreateDbL(TFileName& aSession);

										//data members
										
private:

	/**
	* database file
	*/
	TFileName iDbFile;
	
	/**
	* file session
	*/
    RFs iFsSession;
    
	/**
	* data base handler
	*/
    RDbNamedDatabase iSessionDb;
    
    };

#endif  //IRSESSIONDB_H