commsfwsupport/commselements/NetSubscribe/INC/NetSubscribe.h
changeset 0 dfb7c4ff071f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwsupport/commselements/NetSubscribe/INC/NetSubscribe.h	Thu Dec 17 09:22:25 2009 +0200
@@ -0,0 +1,84 @@
+// 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
+*/
+
+#ifndef __NETSUBSCRIBE_H_
+#define __NETSUBSCRIBE_H_
+
+#include <e32base.h>
+#include <e32std.h>
+#include <elements/metadata.h>
+
+namespace NetSubscribe
+{
+/**
+ * Maximum length(in bytes) of TEvent data part supported by NetSubscribe. 
+ * The length is returned by SMetaData::Length()
+ *
+ * @see SMetaData
+ */
+const TInt KMaxLength = 128;
+const TInt KTransportUid = 0x102055AA;
+enum ETransportTypes
+	{
+	/**
+	 * Publish/Subscribe Transport type
+	 */
+	EPublishSubscribe
+	//Another transport types should follow here
+	};
+	
+class TEventClientData;
+struct SSignalId;
+class TEventBase;
+class XSignal;
+class CNetSubscribe : public CBase
+/**
+ * Client side of the signal subscription library. The class abstracts the mechanism the signals are
+ * registered, trapped and the way event data are marhalled/demarshalled.
+ * Derived class manages specific signal source & transport layer
+ * Allows for multiple signal to be registered.
+ *
+ * @see XSignal
+ *	@internalTechnology
+ */
+	{
+	friend class TEvent;
+	
+public:
+	IMPORT_C static CNetSubscribe* NewL( const Meta::STypeId& aTransportId );
+	
+	IMPORT_C ~CNetSubscribe();
+
+protected:
+	explicit CNetSubscribe();
+	virtual void RegisterNewSignalL(TEventClientData& aData, const SSignalId& aSignalId ) = 0;
+
+	void RegisterSignalL(TEventClientData& aData, const SSignalId& aSignalId );
+	void DeRegisterSignal(TEventBase* aEvent);
+
+protected:		
+	RPointerArray<XSignal> iSignals;
+	};
+
+} // namespace NetSubscribe
+
+
+#endif // __NETSUBSCRIBE_H_
+