/**
* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the License "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:
*
*/
/**
@file
*/
#ifndef LBS_LOGGER_H
#define LBS_LOGGER_H
#include <lbslogevent.h>
#include <e32base.h>
class CLbsLogWriterEngine;
class RLbsLogger
/**
Class the provides the APIs for adding and updating LBS events into the LogEng.
In order to add (or update) any event, a handle must have been opened for this class
(so OpenL() must have been called, without calling Close() meanwhile on the class).
Internally, the engine, queues the add and update requests until they can be processed. The
queue has a maximum size, so if too many items will get on the queue the AddEventL() method
can return an error.
When the client finishes sending all the add and update requests, Close() should be
called on the class. This will ensure that the internal engine logs all the events it
queued into the LogEng. When calling Close() it will wait for LogEng to finish
logging all the events.
@internalTechnology
@released
*/
{
public:
IMPORT_C RLbsLogger();
IMPORT_C ~RLbsLogger();
IMPORT_C TInt Open(TUint aMaxBufferSize);
IMPORT_C TInt AddEvent(CLbsLogEvent& aLogEvent);
IMPORT_C TInt UpdateEvent(CLbsLogEvent& aLogEvent);
IMPORT_C TInt Close();
// for BC consideration
virtual void ExtensionInterfaceL(TUid aInterface, void*& aObject);
private:
void CheckLoggingAdminSettings();
private:
/** Pointer to the active object which does the logging */
CLbsLogWriterEngine* iLogWriterEngine;
/** Flag to indicate if logging is currently On or Off, determined from the admin db setting. */
TBool iLoggingOn;
}; // class RLbsLogger
#endif // LBS_LOGGER_H