os/security/securityanddataprivacytools/securitytools/certapp/utils/logger.cpp
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
sl@0
     1
/*
sl@0
     2
* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0
     3
* All rights reserved.
sl@0
     4
* This component and the accompanying materials are made available
sl@0
     5
* under the terms of the License "Eclipse Public License v1.0"
sl@0
     6
* which accompanies this distribution, and is available
sl@0
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0
     8
*
sl@0
     9
* Initial Contributors:
sl@0
    10
* Nokia Corporation - initial contribution.
sl@0
    11
*
sl@0
    12
* Contributors:
sl@0
    13
*
sl@0
    14
* Description: 
sl@0
    15
*
sl@0
    16
*/
sl@0
    17
sl@0
    18
sl@0
    19
#include "logger.h"
sl@0
    20
sl@0
    21
sl@0
    22
Log dbg("*** ");
sl@0
    23
Log prog;
sl@0
    24
sl@0
    25
Log::Log(const char *aPrefix)
sl@0
    26
	: iStream(0), iIndent(0), iPrefix(aPrefix)
sl@0
    27
{
sl@0
    28
}
sl@0
    29
sl@0
    30
sl@0
    31
void Log::SetStream(std::ostream *aStream)
sl@0
    32
{
sl@0
    33
	iStream = aStream;
sl@0
    34
	*iStream << std::hex;
sl@0
    35
}
sl@0
    36
sl@0
    37
std::ostream &Log::Stream()
sl@0
    38
{ 
sl@0
    39
BULLSEYE_OFF
sl@0
    40
	if(!iStream) FatalError();
sl@0
    41
BULLSEYE_RESTORE
sl@0
    42
	return *iStream; 
sl@0
    43
}
sl@0
    44
sl@0
    45
// Write the current indent level to the progress stream
sl@0
    46
void Log::WriteIndent()
sl@0
    47
{
sl@0
    48
BULLSEYE_OFF
sl@0
    49
	if(!iStream) FatalError();
sl@0
    50
BULLSEYE_RESTORE
sl@0
    51
	if(iPrefix)
sl@0
    52
		{
sl@0
    53
		*iStream << iPrefix;
sl@0
    54
		}
sl@0
    55
	
sl@0
    56
	for(int i=0; i < iIndent; ++i)
sl@0
    57
		{
sl@0
    58
		*iStream << '\t';
sl@0
    59
		}
sl@0
    60
	
sl@0
    61
}
sl@0
    62
sl@0
    63
// Increase indent level
sl@0
    64
void Log::IncIndent()
sl@0
    65
{
sl@0
    66
	++iIndent;
sl@0
    67
}
sl@0
    68
sl@0
    69
// Decrease indent level
sl@0
    70
void Log::DecIndent()
sl@0
    71
{
sl@0
    72
	--iIndent;
sl@0
    73
BULLSEYE_OFF
sl@0
    74
	if(iIndent < 0) FatalError();
sl@0
    75
BULLSEYE_RESTORE
sl@0
    76
}
sl@0
    77
sl@0
    78
sl@0
    79
int Log::IndentLevel()
sl@0
    80
{
sl@0
    81
	return iIndent;
sl@0
    82
}
sl@0
    83
sl@0
    84
sl@0
    85
void FatalError()
sl@0
    86
{
sl@0
    87
	dbg << Log::Indent() << "Fatal Error - processing aborted" << Log::Endl();
sl@0
    88
	exit(-1);
sl@0
    89
}
sl@0
    90
sl@0
    91
sl@0
    92
// End of file