commsfwsupport/commselements/testing/dummystatelibrary/inc/dummynode.h
changeset 0 dfb7c4ff071f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwsupport/commselements/testing/dummystatelibrary/inc/dummynode.h	Thu Dec 17 09:22:25 2009 +0200
@@ -0,0 +1,126 @@
+// 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 "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:
+// CORECPR.h
+// Core CPR
+// 
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef DUMMYNODE_H
+#define DUMMYNODE_H
+
+#include <elements/mm_activities.h>
+#include <elements/mm_node.h>
+#include <elements/factory.h>
+
+
+#ifdef _DEBUG
+// Panic category for "absolutely impossible!" vanilla ASSERT()-type panics from this module
+// (if it could happen through user error then you should give it an explicit, documented, category + code)
+_LIT(KSpecAssert_ElemTestingdmynd, "ElemTestingdmynd");
+#endif
+
+namespace Dummy
+{
+
+enum TDummyNodeActivityId
+	{
+	EActivityStart                  = MeshMachine::KActivityNull + 1,
+	EActivityStop                   = 2,
+	EActivityDestroy                = 3,
+	EActivityClientJoin             = 4,
+	EActivityClientLeave            = 5,
+	EActivityError                  = 6,//if found in node activity map is ran by the MM
+	};
+
+class TDummyClientType : public Messages::TClientType
+	{
+public:
+    enum TType
+        {
+        //-=============================================
+        //
+        // 1. Types 32bits (a client can only have one type)
+        //
+        // TClientType = BIT0..BIT7
+        //-=============================================
+        EClient       = 0x00000100,
+        EServProvider = 0x00000200
+		};
+
+	enum TFlags
+		{
+        //-=============================================
+        //
+        // 2. Flags 32bits (a client can have many flags)
+        //
+        // TClientType = BIT0..BIT7
+        //-=============================================
+        EActive       = 0x00000100, //Client that has started us
+        EStarting     = 0x00000200, //Service Provider that is starting
+		EStopping     = 0x00000400, //Service Provider that is stopping
+		EStarted      = 0x00000800  //Service Provider that is started (stopped if not set)
+        };
+
+public:
+	TDummyClientType()
+	:	Messages::TClientType(EUnknown)
+		{
+		}
+
+	TDummyClientType(TUint32 aClientType, TUint32 aClientFlags)
+	:	Messages::TClientType(aClientType, aClientFlags)
+		{
+		}
+	};
+
+class CTestNodeBase : public CBase,
+                      public Factories::AFactoryObject,
+                      public MeshMachine::AMMNodeIdBase
+    {
+    friend class CTestFactoryBase;
+
+public:
+	IMPORT_C virtual ~CTestNodeBase();
+	virtual TUid ServiceProviderUid() const = 0;
+
+	void CommenceJoin()
+		{
+		--iOutstandingJoinCount;
+		__ASSERT_DEBUG(iOutstandingJoinCount>=0, User::Panic(KSpecAssert_ElemTestingdmynd, 1)); //It should never get below 0
+		}
+
+	TBool IsJoinOutstanding()
+		{
+		return iOutstandingJoinCount > 0;
+		}
+
+protected:
+    IMPORT_C CTestNodeBase(Factories::CFactoryBase& aFactory, const MeshMachine::TNodeActivityMap& aActivityMap);
+    IMPORT_C void Received(MeshMachine::TNodeContextBase& aContext);
+    IMPORT_C void ReceivedL(const Messages::TRuntimeCtxId& aSender, const Messages::TNodeId& aRecipient, Messages::TSignatureBase& aMessage);
+
+private:
+	TInt iOutstandingJoinCount; //In our demo the Factory increments this, node decrements
+    };
+
+} //Dummy
+
+#endif
+//DUMMYNODE_H
+