--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/epoc32/include/comms-infras/ss_common.h Wed Mar 31 12:33:34 2010 +0100
@@ -0,0 +1,119 @@
+// Copyright (c) 2004-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:
+//
+
+/**
+ @file
+ @internalTechnology
+*/
+
+#if !defined(__SS_COMMON_H__)
+#define __SS_COMMON_H__
+
+#include <elements/mm_node.h>
+#include <elements/mm_activities.h>
+#include <elements/sd_std.h>
+#include <elements/mm_context_internal.h>
+#include <cfshared.h>
+#include <comms-infras/ss_activities.h>
+
+/** Support for checking that the current thread is the "home thread" */
+#if defined(_DEBUG)
+#define ESOCK_HOME_THREAD_CHECK_ENABLED
+#endif
+
+// Some legacy oddities supported for a transition period have code guarded by this macro. Some day we'll be
+// breaking all of this behaviour and so able to drop this
+#define SYMBIAN_NETWORKING_LEGACY_COMPATIBILITY_SUPPORT
+
+/**
+ Type identifier for the derived sub-session objects. Used e.g. in containers to identify
+ what is stored.
+
+ @see CSockSubSession::Type()
+*/
+class TCFSubSessInfo : public Den::TSubSessInfo
+/**
+@internalTechnology
+*/
+ {
+public:
+ enum TSubSessionType
+ {
+ EHostResolver = 2, //starting from TSubSessInfo::EAny
+ EServiceResolver = 3,
+ ENetDatabase = 4,
+ EConnection = 5,
+ ESubConnection = 6,
+ ESocket = 7
+ };
+
+ TCFSubSessInfo(TUint8 aType)
+ : TSubSessInfo(aType)
+ {
+ }
+ };
+
+/**
+@class TCFPlayerRole
+
+TCFPlayerRole and TPlayerRole can be removed after Players are relieved from knowing their roles
+which should hopefully come as part of the "Global Object Broker" work.
+*/
+class TCFPlayerRole : public Den::TPlayerRole
+/**
+@internalTechnology
+*/
+ {
+public:
+ /** Parallel threads operate the same technologies in the same plane but with some interesting (probably private difference), eg two data threads both
+ bound to a control thread, one default and one devoted to realtime. We describe them as "kin" of one another, and they are distinguished by their
+ "kindex" ie kin index, which is simply a whole number zero upwards, zero being the default and generally only value. It's up to a control provider to
+ know about the parallel threads and specify the kindex when requesting a FC to talk to (eg a SCPR when creating a flow)
+
+ At present there are no parallel threads for CPRs as they have 1:1 with MCPR. It may be that in the future we have to worry about the same TierMgr in two
+ threads, eg an authentication protocol being used by both BT & IP, and they're running separate control thread. This will require further thought once
+ the use is clearer.
+ */
+ static const TInt KDefaultKindex = 0;
+ enum TRole
+ {
+ EDataPlane = 0x000001,
+ ESubConnPlane = 0x000010,
+ EConnPlane = 0x000100,
+ EMetaConnPlane = 0x001000,
+ ETierMgrPlane = 0x010000,
+ ETierResolver = 0x100000,
+ EAllPlanes = EDataPlane | ESubConnPlane | EConnPlane | EMetaConnPlane | ETierMgrPlane,
+ EPrePlanarArchitecture = 0x40000000, // never explicitly set; denotes a legacy CMI and so a worker whose plane FCs can be ignored
+ };
+
+public:
+ TCFPlayerRole()
+ : Den::TPlayerRole(EUnknown, KDefaultKindex)
+ {
+ }
+
+ TCFPlayerRole(TUint aRole, TUint16 aKindex = KDefaultKindex)
+ : Den::TPlayerRole(aRole, aKindex)
+ {
+ }
+ };
+
+#define mcfnode_cast Messages::mnode_cast
+
+
+#endif
+
+