commsconfig/commsdatabaseshim/TE_commdb/src/Db_7_create.cpp
author hgs
Mon, 06 Sep 2010 13:49:23 +0100
changeset 72 ae47d0499bee
permissions -rw-r--r--
201033_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
72
ae47d0499bee 201033_02
hgs
parents:
diff changeset
     1
//
ae47d0499bee 201033_02
hgs
parents:
diff changeset
     2
// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
ae47d0499bee 201033_02
hgs
parents:
diff changeset
     3
// All rights reserved.
ae47d0499bee 201033_02
hgs
parents:
diff changeset
     4
// This component and the accompanying materials are made available
ae47d0499bee 201033_02
hgs
parents:
diff changeset
     5
// under the terms of "Eclipse Public License v1.0"
ae47d0499bee 201033_02
hgs
parents:
diff changeset
     6
// which accompanies this distribution, and is available
ae47d0499bee 201033_02
hgs
parents:
diff changeset
     7
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
ae47d0499bee 201033_02
hgs
parents:
diff changeset
     8
//
ae47d0499bee 201033_02
hgs
parents:
diff changeset
     9
// Initial Contributors:
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    10
// Nokia Corporation - initial contribution.
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    11
//
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    12
// Contributors:
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    13
//
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    14
// Description:
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    15
//
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    16
//
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    17
//
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    18
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    19
// Create a totaly empty database
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    20
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    21
#include <e32test.h>
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    22
#include <f32file.h>
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    23
#include <commdb.h>
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    24
#include <cdblen.h>
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    25
#include <cdbpreftable.h>
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    26
#include <faxdefn.h>
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    27
#include <d32comm.h>
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    28
#include <cdbtemp.h>
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    29
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    30
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    31
_LIT(KEditorMess,"Database Editor");
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    32
LOCAL_C RTest test(KEditorMess);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    33
LOCAL_C CCommsDatabase* theDb;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    34
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    35
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    36
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    37
LOCAL_C void MainL() 
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    38
    {
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    39
	RFs fs;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    40
	test(fs.Connect()==KErrNone);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    41
	
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    42
	TUint dummy;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    43
	
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    44
	test.Printf(_L("Creating CommDb Unit test database  #7") );
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    45
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    46
	_LIT(KSvDbFileName,"C:\\private\\100012a5\\DBS[10004e1d]CDBV3.DAT");
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    47
	if(fs.Att(KSvDbFileName,dummy)==KErrNone)
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    48
		{
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    49
		_LIT(KDbaseMess,"\nExisting Database File detected\n - Overwrite? [y/n]\n\n");
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    50
		test.Printf(KDbaseMess);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    51
		TKeyCode key;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    52
		key=test.Getch();
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    53
		if((key=='y')||(key=='Y'))
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    54
			{
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    55
			// Instantiate Database Server
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    56
			RDbs rDbs;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    57
			User::LeaveIfError(rDbs.Connect());
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    58
			CleanupClosePushL(rDbs);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    59
			_LIT(KCommDb,"c:cdbv3.dat"); 
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    60
			const TUid KCommsDbFileUid = {0x10004e1d};
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    61
			test(rDbs.DeleteDatabase(KCommDb, KCommsDbFileUid)==KErrNone);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    62
			CleanupStack::PopAndDestroy(&rDbs);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    63
			}
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    64
		else
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    65
			User::Leave(KErrNone);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    66
		}
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    67
	fs.Close();
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    68
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    69
	//Create a blank database
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    70
	theDb=CCommsDatabase::NewL(EFalse);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    71
	//and close it
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    72
	delete theDb;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    73
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    74
	}
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    75
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    76
GLDEF_C TInt E32Main()
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    77
    {
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    78
	__UHEAP_MARK;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    79
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    80
	CTrapCleanup* cleanup=CTrapCleanup::New();
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    81
	
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    82
	test.Title();
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    83
	TRAPD(error,MainL());
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    84
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    85
	if (error)
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    86
		{
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    87
		_LIT(KFailMess,"DbApp failed with error = %d");
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    88
		test.Printf(KFailMess, error);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    89
		_LIT(KAnyKeyMess," [Press any key]");
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    90
		test.Printf(KAnyKeyMess);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    91
		test.Getch();
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    92
		}
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    93
	else
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    94
		{
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    95
		_LIT(KCompleteMess,"DbApp Complete OK");
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    96
		test.Printf(KCompleteMess);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    97
		}
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    98
	_LIT(KPanicMess,"DbApp");
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    99
	__ASSERT_ALWAYS(!error,test.Panic(KPanicMess,error));
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   100
	test.Close();
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   101
	delete cleanup;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   102
	__UHEAP_MARKEND;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   103
	return KErrNone;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   104
    }