--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwsupport/commselements/meshmachine/inc/mm_activities_internal.h Thu Dec 17 09:22:25 2009 +0200
@@ -0,0 +1,104 @@
+// Copyright (c) 2007-2009 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:
+// generic framework node state machine states
+//
+//
+
+/**
+ @file
+ @internalAll
+*/
+
+#ifndef SYMBIAN_MM_ACTIVITIES_INTERNAL_H
+#define SYMBIAN_MM_ACTIVITIES_INTERNAL_H
+
+namespace MeshMachine
+{
+
+static const TUint16 KActivityNull = 0;
+static const TUint16 KActivityCustom = 0x007f;
+//the range is used for activities that can run more than one instance in parallel
+//such activities must be type of or derived from CNodeParallerActivityBase (e_mm_activity.h)
+static const TUint16 KActivityParallelRangeMin = 0x0100;
+static const TUint16 KActivityParallelRangeMax = 0xFF00;
+
+class AMMNodeBase;
+class CNodeActivityBase;
+class TNodeContextBase;
+
+//-=========================================================
+//
+// TNodeActivity
+//
+//-=========================================================
+struct TNodeActivity
+/**
+*/
+ {
+ typedef CNodeActivityBase* (*TStaticActivityCtor)(const TNodeActivity& aActivitySig, AMMNodeBase& aNode);
+ const TUint8 iId;
+ //Message starting the activity (state in iFirstTriple is waiting for),
+ //used by error handling, could be NULL for "single triple" activities because
+ //than the current message associated with context is used.
+ const TUint16 iKickOffMessageId;
+ const TUint32 iKickOffMessageRealm;
+ const NetStateMachine::TStateTriple& iFirstTriple;
+ const TStaticActivityCtor iCtor;
+ const TText8* iName;
+ };
+
+//-=========================================================
+//
+// TNodeActivityMap
+//
+//-=========================================================
+struct TNodeActivityMap
+/**
+*/
+ {
+ typedef const TNodeActivityMap& (*TStaticNodeActivityMap)();
+ typedef const TNodeActivity& (*TStaticNodeActivity)();
+ const TStaticNodeActivity& iFirstActivity;
+ };
+
+//-=========================================================
+//
+// TNodeActivityIter
+//
+//-=========================================================
+class TNodeActivityIter
+/**
+*/
+ {
+public:
+ TNodeActivityIter(const TNodeActivityMap& aActivityMap)
+ : iCurrentEntry(&aActivityMap.iFirstActivity)
+ {
+ }
+ const TNodeActivity* operator++(TInt /*aInd*/)
+ {
+ return FetchActivity(); //recursive
+ }
+
+private:
+ const TNodeActivity* FetchActivity();
+
+private:
+ const TNodeActivityMap::TStaticNodeActivity* iCurrentEntry;
+ };
+
+} // namespace MeshMachine
+
+#endif // SYMBIAN_MM_ACTIVITIES_INTERNAL_H
+