sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/diclog.cpp
author hgs
Thu, 07 Oct 2010 06:25:45 +0300
changeset 77 b01c07dfcf84
permissions -rw-r--r--
201039
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
77
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
* 
hgs
parents:
diff changeset
    14
* Description: This file contains STIFUnit implementation.
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#include <S32STOR.H> 
hgs
parents:
diff changeset
    19
#include <S32FILE.H> 
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
#include "diclog.h"
hgs
parents:
diff changeset
    22
#include "globaldata.h"
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
_LIT(KDicLogFileName, "c:\\logs\\diclog");
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
DicLog::DicLog()
hgs
parents:
diff changeset
    27
    {
hgs
parents:
diff changeset
    28
hgs
parents:
diff changeset
    29
    }
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
DicLog::~DicLog()
hgs
parents:
diff changeset
    32
    {
hgs
parents:
diff changeset
    33
hgs
parents:
diff changeset
    34
    }
hgs
parents:
diff changeset
    35
hgs
parents:
diff changeset
    36
void DicLog::WriteIntLogL(const TDesC& aFileName, const TUid aUid, const TInt32 aValue)
hgs
parents:
diff changeset
    37
    {
hgs
parents:
diff changeset
    38
    RFs fs;    
hgs
parents:
diff changeset
    39
    User::LeaveIfError(fs.Connect());
hgs
parents:
diff changeset
    40
    CleanupClosePushL(fs);
hgs
parents:
diff changeset
    41
    
hgs
parents:
diff changeset
    42
    TInt err=KErrGeneral;
hgs
parents:
diff changeset
    43
    err = fs.MkDir(aFileName);
hgs
parents:
diff changeset
    44
    if(KErrAlreadyExists == err || KErrNone == err)
hgs
parents:
diff changeset
    45
        {
hgs
parents:
diff changeset
    46
        CDictionaryStore *dicStore = CDictionaryFileStore::OpenLC(fs, aFileName, TUid::Uid(0x0001));
hgs
parents:
diff changeset
    47
        
hgs
parents:
diff changeset
    48
        RDictionaryWriteStream in;
hgs
parents:
diff changeset
    49
        in.AssignLC(*dicStore,aUid);
hgs
parents:
diff changeset
    50
        in.WriteInt32L(aValue);
hgs
parents:
diff changeset
    51
        in.CommitL();  
hgs
parents:
diff changeset
    52
        dicStore->CommitL();
hgs
parents:
diff changeset
    53
        
hgs
parents:
diff changeset
    54
        CleanupStack::PopAndDestroy(&in);
hgs
parents:
diff changeset
    55
        CleanupStack::PopAndDestroy(dicStore);    
hgs
parents:
diff changeset
    56
        }
hgs
parents:
diff changeset
    57
    else
hgs
parents:
diff changeset
    58
        {
hgs
parents:
diff changeset
    59
        User::Leave(err);
hgs
parents:
diff changeset
    60
        }
hgs
parents:
diff changeset
    61
               
hgs
parents:
diff changeset
    62
    CleanupStack::PopAndDestroy(&fs);
hgs
parents:
diff changeset
    63
    }
hgs
parents:
diff changeset
    64
hgs
parents:
diff changeset
    65
TInt DicLog::WriteIntLog(const TDesC& aFileName, const TUid aUid, const TInt32 aValue)
hgs
parents:
diff changeset
    66
    {
hgs
parents:
diff changeset
    67
    TRAPD(err, DicLog::WriteIntLogL(aFileName, aUid, aValue));
hgs
parents:
diff changeset
    68
    return err;
hgs
parents:
diff changeset
    69
    }
hgs
parents:
diff changeset
    70
hgs
parents:
diff changeset
    71
TInt DicLog::WriteIntLog(const TUid aUid, const TInt32 aValue)
hgs
parents:
diff changeset
    72
    {
hgs
parents:
diff changeset
    73
    TBuf<KIntValue60> fileNmae(KDicLogFileName);
hgs
parents:
diff changeset
    74
    return DicLog::WriteIntLog(fileNmae, aUid, aValue);
hgs
parents:
diff changeset
    75
    }
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
void DicLog::WriteLogL(const TDesC& aFileName, const TUid aUid, const TDesC& aLog)
hgs
parents:
diff changeset
    78
    {
hgs
parents:
diff changeset
    79
    RFs fs;   
hgs
parents:
diff changeset
    80
    User::LeaveIfError(fs.Connect());
hgs
parents:
diff changeset
    81
    CleanupClosePushL(fs);
hgs
parents:
diff changeset
    82
    
hgs
parents:
diff changeset
    83
    TInt err=KErrGeneral;
hgs
parents:
diff changeset
    84
    err = fs.MkDir(aFileName);
hgs
parents:
diff changeset
    85
    if(KErrAlreadyExists == err || KErrNone == err)
hgs
parents:
diff changeset
    86
        {
hgs
parents:
diff changeset
    87
        CDictionaryStore *dicStore = CDictionaryFileStore::OpenLC(fs, aFileName, TUid::Uid(0x0001));
hgs
parents:
diff changeset
    88
        
hgs
parents:
diff changeset
    89
        RDictionaryWriteStream in;
hgs
parents:
diff changeset
    90
        in.AssignLC(*dicStore,aUid);
hgs
parents:
diff changeset
    91
        in.WriteL(aLog);
hgs
parents:
diff changeset
    92
        in.CommitL();  
hgs
parents:
diff changeset
    93
        dicStore->CommitL();
hgs
parents:
diff changeset
    94
        
hgs
parents:
diff changeset
    95
        CleanupStack::PopAndDestroy(&in);
hgs
parents:
diff changeset
    96
        CleanupStack::PopAndDestroy(dicStore);    
hgs
parents:
diff changeset
    97
        }
hgs
parents:
diff changeset
    98
    else
hgs
parents:
diff changeset
    99
        {
hgs
parents:
diff changeset
   100
        User::Leave(err);
hgs
parents:
diff changeset
   101
        }
hgs
parents:
diff changeset
   102
               
hgs
parents:
diff changeset
   103
    CleanupStack::PopAndDestroy(&fs);
hgs
parents:
diff changeset
   104
    }
hgs
parents:
diff changeset
   105
hgs
parents:
diff changeset
   106
TInt DicLog::WriteLog(const TDesC& aFileName, const TUid aUid, const TDesC& aLog)
hgs
parents:
diff changeset
   107
    {
hgs
parents:
diff changeset
   108
    TRAPD(err, DicLog::WriteLogL(aFileName, aUid, aLog));
hgs
parents:
diff changeset
   109
    return err;
hgs
parents:
diff changeset
   110
    }
hgs
parents:
diff changeset
   111
hgs
parents:
diff changeset
   112
TInt DicLog::ReadLog(const TDesC& aFileName, const TUid aUid, TDes& aLog)
hgs
parents:
diff changeset
   113
    {
hgs
parents:
diff changeset
   114
    TInt err=KErrGeneral;
hgs
parents:
diff changeset
   115
    TRAP(err, DicLog::ReadLogL(aFileName, aUid, aLog));      
hgs
parents:
diff changeset
   116
hgs
parents:
diff changeset
   117
    return err;
hgs
parents:
diff changeset
   118
    }
hgs
parents:
diff changeset
   119
hgs
parents:
diff changeset
   120
void DicLog::ReadLogL(const TDesC& aFileName, const TUid aUid, TDes& aLog)
hgs
parents:
diff changeset
   121
    {
hgs
parents:
diff changeset
   122
    RFs fs;    
hgs
parents:
diff changeset
   123
    User::LeaveIfError(fs.Connect());
hgs
parents:
diff changeset
   124
    CleanupClosePushL(fs);
hgs
parents:
diff changeset
   125
    
hgs
parents:
diff changeset
   126
    CDictionaryStore *dicStore = CDictionaryFileStore::OpenLC(fs, aFileName, TUid::Uid(0x0001));
hgs
parents:
diff changeset
   127
    
hgs
parents:
diff changeset
   128
    RDictionaryReadStream  out;
hgs
parents:
diff changeset
   129
    out.OpenLC(*dicStore,aUid);   
hgs
parents:
diff changeset
   130
    out.ReadL(aLog);
hgs
parents:
diff changeset
   131
    
hgs
parents:
diff changeset
   132
    CleanupStack::PopAndDestroy(&out);
hgs
parents:
diff changeset
   133
    CleanupStack::PopAndDestroy(dicStore);    
hgs
parents:
diff changeset
   134
   
hgs
parents:
diff changeset
   135
    CleanupStack::PopAndDestroy(&fs);
hgs
parents:
diff changeset
   136
    }
hgs
parents:
diff changeset
   137
hgs
parents:
diff changeset
   138
TInt DicLog::ReadIntLog(const TUid aUid, TInt32& aValue)
hgs
parents:
diff changeset
   139
    {
hgs
parents:
diff changeset
   140
    TBuf<KIntValue60> fileNmae(KDicLogFileName);
hgs
parents:
diff changeset
   141
    return DicLog::ReadIntLog(fileNmae, aUid, aValue);
hgs
parents:
diff changeset
   142
    }
hgs
parents:
diff changeset
   143
hgs
parents:
diff changeset
   144
TInt DicLog::ReadIntLog(const TDesC& aFileName, const TUid aUid, TInt32& aValue)
hgs
parents:
diff changeset
   145
    {
hgs
parents:
diff changeset
   146
    TInt err=KErrGeneral;
hgs
parents:
diff changeset
   147
    TRAP(err, DicLog::ReadIntLogL(aFileName, aUid, aValue));      
hgs
parents:
diff changeset
   148
hgs
parents:
diff changeset
   149
    return err;
hgs
parents:
diff changeset
   150
    }
hgs
parents:
diff changeset
   151
hgs
parents:
diff changeset
   152
void DicLog::ReadIntLogL(const TDesC& aFileName, const TUid aUid, TInt32& aValue)
hgs
parents:
diff changeset
   153
    {
hgs
parents:
diff changeset
   154
    RFs fs;   
hgs
parents:
diff changeset
   155
    User::LeaveIfError(fs.Connect());
hgs
parents:
diff changeset
   156
    CleanupClosePushL(fs);
hgs
parents:
diff changeset
   157
    
hgs
parents:
diff changeset
   158
    CDictionaryStore *dicStore = CDictionaryFileStore::OpenLC(fs, aFileName, TUid::Uid(0x0001));
hgs
parents:
diff changeset
   159
    
hgs
parents:
diff changeset
   160
    RDictionaryReadStream  out;
hgs
parents:
diff changeset
   161
    out.OpenLC(*dicStore,aUid);   
hgs
parents:
diff changeset
   162
    aValue=out.ReadInt32L();
hgs
parents:
diff changeset
   163
    
hgs
parents:
diff changeset
   164
    CleanupStack::PopAndDestroy(&out);
hgs
parents:
diff changeset
   165
    CleanupStack::PopAndDestroy(dicStore);    
hgs
parents:
diff changeset
   166
   
hgs
parents:
diff changeset
   167
    CleanupStack::PopAndDestroy(&fs);
hgs
parents:
diff changeset
   168
    }
hgs
parents:
diff changeset
   169
hgs
parents:
diff changeset
   170
TInt DicLog::WriteLog(const TUid aUid, const TDesC& aLog)
hgs
parents:
diff changeset
   171
    {
hgs
parents:
diff changeset
   172
    TBuf<KIntValue60> fileNmae(KDicLogFileName);
hgs
parents:
diff changeset
   173
    return DicLog::WriteLog(fileNmae, aUid, aLog);
hgs
parents:
diff changeset
   174
    }
hgs
parents:
diff changeset
   175
hgs
parents:
diff changeset
   176
TInt DicLog::ReadLog(const TUid aUid, TDes& aLog)
hgs
parents:
diff changeset
   177
    {
hgs
parents:
diff changeset
   178
    TBuf<KIntValue60> fileNmae(KDicLogFileName);
hgs
parents:
diff changeset
   179
    return DicLog::ReadLog(fileNmae, aUid, aLog);
hgs
parents:
diff changeset
   180
    }
hgs
parents:
diff changeset
   181
hgs
parents:
diff changeset
   182
TInt DicLog::RemoveLogFile()
hgs
parents:
diff changeset
   183
    {
hgs
parents:
diff changeset
   184
    TBuf<KIntValue60> fileNmae(KDicLogFileName);
hgs
parents:
diff changeset
   185
    return RemoveLogFile(fileNmae);
hgs
parents:
diff changeset
   186
    }
hgs
parents:
diff changeset
   187
hgs
parents:
diff changeset
   188
TInt DicLog::RemoveLogFile(const TDesC& aFileName)
hgs
parents:
diff changeset
   189
    {
hgs
parents:
diff changeset
   190
    TInt err=KErrGeneral;
hgs
parents:
diff changeset
   191
    TRAP(err, DicLog::RemoveLogFileL(aFileName));      
hgs
parents:
diff changeset
   192
hgs
parents:
diff changeset
   193
    return err;
hgs
parents:
diff changeset
   194
    }
hgs
parents:
diff changeset
   195
hgs
parents:
diff changeset
   196
void DicLog::RemoveLogFileL(const TDesC& aFileName)
hgs
parents:
diff changeset
   197
    {
hgs
parents:
diff changeset
   198
    RFs fs;          
hgs
parents:
diff changeset
   199
    User::LeaveIfError(fs.Connect());    
hgs
parents:
diff changeset
   200
    CleanupClosePushL(fs);   
hgs
parents:
diff changeset
   201
    
hgs
parents:
diff changeset
   202
    User::LeaveIfError(fs.Delete(aFileName));
hgs
parents:
diff changeset
   203
    CleanupStack::PopAndDestroy(&fs); 
hgs
parents:
diff changeset
   204
    }