--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/remotemgmt_plat/diagnostics_results_api/inc/diagresultsdatabaseitem.h Thu Dec 17 09:07:52 2009 +0200
@@ -0,0 +1,241 @@
+/*
+* Copyright (c) 2007-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: Results database item
+*
+*/
+
+
+#ifndef DIAGRESULTSDATABASEITEM_H
+#define DIAGRESULTSDATABASEITEM_H
+
+// INCLUDES
+#include <e32base.h> // CBase
+
+// FORWARD DECLARATIONS
+class RWriteStream;
+class RReadStream;
+class TTime;
+class TStreamId;
+class CStreamStore;
+class CBufFlat;
+
+/**
+* Results database item.
+*
+* @since S60 v5.0
+**/
+class CDiagResultsDatabaseItem : public CBase
+ {
+public:
+ /**
+ * Result of test.
+ */
+ enum TResult
+ {
+ ESuccess = 0,
+ EFailed, // Test failed
+ ESkipped, // Test was never executed because it was skipped
+ // before it is started. (e.g. during initial delay timer)
+ ECancelled, // Test session was cancelled. ( ECancelAll )
+ EInterrupted, // Interrupted. Test was already running, but interrupted
+ // by end user, or other external cause.
+ ENotPerformed, // Not performed due to invalid set up.
+ EDependencyFailed, // Failed because dependent test failed.
+ EWatchdogCancel, // Watchdog cancelled testing.
+ ESuspended, // Test is scheduled to run later.
+ EQueuedToRun, // Test is waiting for execution. It is possible that
+ // EQueuedToRun is never overwritten.
+ EDependencySkipped // Skipped because common dependency was not executed
+ // either due to it was skipped or interrupted.
+ };
+
+public:
+
+ /**
+ * NewL. Construct from a stream.
+ * @param aStream Stream to read from.
+ */
+ IMPORT_C static CDiagResultsDatabaseItem* NewL ( RReadStream& aStream );
+
+ /**
+ * NewL.
+ */
+ IMPORT_C static CDiagResultsDatabaseItem* NewL (
+ TUid aTestUid,
+ TBool aDependencyExecution,
+ TResult aResult,
+ TTime aStartTime,
+ TTime aEndTime,
+ CBufFlat* aDetailsData );
+ /**
+ * NewLC.
+ */
+ IMPORT_C static CDiagResultsDatabaseItem* NewLC (
+ TUid aTestUid,
+ TBool aDependencyExecution,
+ TResult aResult,
+ TTime aStartTime,
+ TTime aEndTime,
+ CBufFlat* aDetailsData );
+
+ /**
+ * NewL. Copy constructor. This will do a deep copy.
+ *
+ * @param aOriginal - Original to copy data from.
+ * @return a new instance of CDiagResultsDatabaseItem that is a deep
+ * copy of the original given. Ownership is transferred.
+ */
+ IMPORT_C static CDiagResultsDatabaseItem* NewL (
+ const CDiagResultsDatabaseItem& aOriginal );
+ /**
+ * Destructor.
+ */
+ IMPORT_C virtual ~CDiagResultsDatabaseItem();
+
+ /**
+ * Get Uid of test plug-in.
+ *
+ * @return TUid - uid of the test plug-in.
+ */
+ IMPORT_C TUid TestUid() const;
+
+ /**
+ * Whether the test was executed to satisfy dependency or not.
+ *
+ * @return ETrue if executed as dependency.
+ * EFalse otherwise.
+ */
+ IMPORT_C TBool WasDependency() const;
+
+ /**
+ * Get Test Result.
+ *
+ * @return TResult.
+ */
+ IMPORT_C TResult TestResult() const;
+
+ /**
+ * Time that test execution was started.
+ * Universal time is used.
+ *
+ * @return Time that execution was started.
+ */
+ IMPORT_C TTime TimeStarted() const;
+
+ /**
+ * Time that test execution was completed.
+ * Universal time is used.
+ *
+ * @return Time that execution was completed.
+ */
+ IMPORT_C TTime TimeCompleted() const;
+
+ /**
+ * Details data. This must be interpreted by the plug-ins before
+ * it can be used. Data is in object form.
+ */
+ IMPORT_C const CBufFlat* DetailsData() const;
+
+ /**
+ * Calculate stream size in bytes. Size can be used to evaluate needed
+ * stream size.
+ *
+ * @return Size in bytes.
+ */
+ IMPORT_C TInt Size() const;
+
+public:
+
+ /**
+ * Externalize the test result to a stream.
+ *
+ * @param aStream Stream to write to.
+ */
+ IMPORT_C void ExternalizeL( RWriteStream& aStream ) const;
+
+
+private: //internalization methods
+
+ /**
+ * Internalize the test result from a stream.
+ *
+ * @param aStream Stream to read from.
+ */
+ IMPORT_C void InternalizeL( RReadStream& aStream );
+
+ /**
+ * Write TTime into write stream.
+ *
+ * @param aStream Stream to write to.
+ * @param aTime TTime that is written into the stream.
+ **/
+ void WriteTimeToStreamL( RWriteStream& aStream, const TTime& aTime ) const;
+
+ /**
+ * Read TTime from read stream.
+ *
+ * @param aStream read stream.
+ * @param aTime Contains time after stream is read.
+ **/
+ void ReadTimeFromStreamL( RReadStream& aStream, TTime& aTime );
+
+private:
+
+ /**
+ * C++ Constructors.
+ */
+ CDiagResultsDatabaseItem (
+ TUid aTestUid,
+ TBool aDependencyExecution,
+ TResult aResult,
+ TTime aStartTime,
+ TTime aEndTime,
+ CBufFlat* aDetailsData );
+
+ /**
+ * Construct from a stream.
+ *
+ * @param aStream Read stream.
+ */
+ void ConstructL ( RReadStream& aStream );
+
+ /**
+ * Default C++ constructor.
+ **/
+ CDiagResultsDatabaseItem ();
+
+private: // data
+
+ // Uid of the test plug-in.
+ TUid iTestUid;
+
+ // Has this been executed as a part of another execution (precondition).
+ TBool iDependencyExecution;
+
+ // Test result
+ TResult iResult;
+
+ // When the test began.
+ TTime iStartTime;
+
+ // When the test ended
+ TTime iEndTime;
+
+ // Contains flat buffer that can hold additional data
+ // For example debugging data or further analysis.
+ CBufFlat* iDetailsData;
+
+ };
+
+#endif // DIAGRESULTSDATABASEITEM_H