PECengine/AttributeLibrary2/Inc/PEngAttrLibFactory.h
changeset 0 094583676ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/PECengine/AttributeLibrary2/Inc/PEngAttrLibFactory.h	Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,140 @@
+/*
+* Copyright (c) 2004 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:  PEngAttrLibFactory - object factory
+*
+*/
+
+#ifndef __PENGATTRLIBFACTORY_H
+#define __PENGATTRLIBFACTORY_H
+
+//  INCLUDES
+#include <E32Std.h>
+
+
+// FORWARD DECLARATIONS
+class CPEngSessionSlotId;
+class MPEngPresenceAttrManager;
+class MPEngPresenceAttrTransactionEnv;
+class MPEngTransactionFactory;
+
+
+
+// CLASS DECLARATION
+
+/**
+ * Attribute Library Factory
+ *
+ * @lib PEngAttrLib
+ * @since 3.0
+ */
+class PEngAttrLibFactory
+    {
+    public: // Reference counted singletons
+
+        /**
+         * Gets a reference to Attribute Manager.
+         *
+         * Client must release instance by calling
+         * MPEngPresenceAttrManager::Close() when it is no
+         * more needed. If instance is needed just temporarily
+         * (not as member), use AttributeManagerInstanceLC()
+         * and the instance is freed by CleanupStack.
+         *
+         * @since 3.0
+         * @param aSlotId
+         * @return Attribute manager instance.
+         */
+        IMPORT_C static MPEngPresenceAttrManager* AttributeManagerInstanceL(
+            const CPEngSessionSlotId& aSlotId );
+        IMPORT_C static MPEngPresenceAttrManager* AttributeManagerInstanceLC(
+            const CPEngSessionSlotId& aSlotId );
+
+
+        /**
+         * Gets a reference to Attribute Transaction environment.
+         *
+         * Attribute transaction environment provides services
+         * to server side attribute transactions.
+         *
+         * Client must release instance by calling
+         * MPEngPresenceAttrTransactionEnv::Close() when it is no
+         * more needed. If instance is needed just temporarily
+         * (not as member), use AttributeTransEnvInstanceLC()
+         * and the instance is freed by CleanupStack.
+         *
+         * @since 3.0
+         * @param aSlotId
+         * @return Attribute transaction environment instance.
+         */
+        IMPORT_C static MPEngPresenceAttrTransactionEnv* AttributeTransEnvInstanceL(
+            const CPEngSessionSlotId& aSlotId );
+        IMPORT_C static MPEngPresenceAttrTransactionEnv* AttributeTransEnvInstanceLC(
+            const CPEngSessionSlotId& aSlotId );
+
+
+        /**
+         * Gets a reference to Attribute Transaction environment.
+         *
+         * Attribute transaction environment provides services
+         * to server side attribute transactions.
+         *
+         * Client must release instance by calling
+         * MPEngTransactionFactory::Close() when it is no
+         * more needed. If instance is needed just temporarily
+         * (not as member), use AttributeTransFactoryInstanceLC()
+         * and the instance is freed by CleanupStack.
+         *
+         * @since 3.0
+         * @param aSlotId
+         * @return Attribute transaction factory instance.
+         */
+        IMPORT_C static MPEngTransactionFactory* AttributeTransFactoryInstanceL(
+            const CPEngSessionSlotId& aSlotId );
+        IMPORT_C static MPEngTransactionFactory* AttributeTransFactoryInstanceLC(
+            const CPEngSessionSlotId& aSlotId );
+
+
+
+    public: // Debug support
+
+        /**
+         * Debug and test support for reference counted singletons.
+         * @since 3.0
+         */
+        IMPORT_C static void __DbgObjectCounts( TInt& aHolder,
+                                                TInt& aAttrMan,
+                                                TInt& aTransEnv,
+                                                TInt& aTransFact );
+
+        IMPORT_C static void __DbgAttrManRefCount( const CPEngSessionSlotId& aSlotId,
+                                                   TInt& aRefCount );
+
+        IMPORT_C static void __DbgTransEnvRefCount( const CPEngSessionSlotId& aSlotId,
+                                                    TInt& aRefCount );
+
+        IMPORT_C static void __DbgTransFactRefCount( const CPEngSessionSlotId& aSlotId,
+                                                     TInt& aRefCount );
+
+
+
+    private: // Prohibited constructors and destructor
+
+        PEngAttrLibFactory();
+        ~PEngAttrLibFactory();
+
+    };
+
+#endif      // __PENGATTRLIBFACTORY_H
+
+// End of File