contentpublishingsrv/contentpublishingserver/cpserver/inc/cpserver.h
changeset 0 79c6a41cd166
child 14 15e4dd19031c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/contentpublishingsrv/contentpublishingserver/cpserver/inc/cpserver.h	Thu Dec 17 08:54:17 2009 +0200
@@ -0,0 +1,227 @@
+/*
+* Copyright (c) 2008 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:  Content Publisher Server - Main class
+*
+*/
+
+
+#ifndef C_CCPSERVER_H
+#define C_CCPSERVER_H
+
+// INCLUDES
+#include <e32base.h>
+#include "cpserverdef.h"
+#include "cpserverburlistener.h"
+
+#ifdef CONTENT_PUBLISHER_DEBUG
+class CCPDebug;
+#endif
+
+class CCPDataManager;
+class CCPActionHandlerThread;
+class CCPServer;
+
+struct TPointersForSession
+    {
+    CCPServer* iServer;
+    CCPDataManager* iDataManager;
+    CCPActionHandlerThread* iActionHandlerThread;
+    };
+
+// CLASS DECLARATION
+/**
+ *  Content Publisher Server implementation
+ *
+ *  @since Series 60 5.0
+ */
+class CCPServer : public CPolicyServer, public MBURListenerCallback
+    {
+public:
+    // Constructors and destructor
+
+    /**
+     * Two-phased constructor.
+     */
+    static CCPServer* NewLC();
+
+    /**
+     * Destructor.
+     */
+    virtual ~CCPServer();
+
+public:
+    // New functions        
+
+    /**
+     * Stops server.
+     */
+    void Stop();
+
+    /**
+     * Panic client. 
+     * @param aMessage RMessage2
+     * @param aPanic panic code
+     */
+    static void PanicClient( const RMessage2& aMessage, 
+        TCPServerPanic aPanic );
+
+    /**
+     * start server
+     * @return aErr Error code.
+     */
+    static TInt ThreadStart();
+
+    /**
+     * Decrements session counter
+     */
+    void RemoveSession();
+
+    /**
+     * Increments session counter
+     */
+    void AddSession();
+
+    /**
+     * HandleBUREventL is called when Backup and Restore state has been changed.
+     *
+     * @since S60 v3.1
+     * @param aStatus Current Backup and Restore status.
+     */
+    void HandleBUREventL( TBURStatus aStatus );
+
+    /**
+     * Get Lock
+     *
+     * @return ETrue if Backup or Restore are running 
+     */
+    TBool GetLock();
+
+    /**
+     * Returns notifications array
+     */
+    RPointerArray<CLiwDefaultList>& CCPServer::GetNotifications( ); 
+
+private:
+    // From CActive
+
+    /**
+     * Process any errors.
+     * @param aError the leave code reported
+     * @return KErrNone if leave is handled
+     */
+    TInt RunError( TInt aError );
+
+private:
+    // New methods
+
+    /**
+     * Constructs the server. 
+     * @param aPriority CServer2 input parameter
+     */
+    CCPServer( TInt aPriority );
+
+    /**
+     * Perform the second phase construction of a CCPServer object.
+     */
+    void ConstructL();
+
+    /**
+     * Panic the server. 
+     * @param param aPanic the panic code
+     * @return a updateId of container
+     */
+    static void PanicServer( TCPServerPanic aPanic );
+    
+    /**
+     * Send notification
+     * @param Map containing ids of item
+     */
+    void AppendNotificationL( CCPLiwMap* aMap ); 
+
+    
+private:
+    // From CServer2
+
+    /**
+     * Create a time server session, and return a pointer to the created object.
+     * @param aVersion the client version 
+     * @param aMessage RMessage2 
+     * @return pointer to new session
+     */
+    CSession2* NewSessionL( const TVersion& /*aVersion*/,
+        const RMessage2& /*aMessage*/) const;
+
+    /**
+     * create and run server
+     */
+    static void CreateAndRunServerL();
+
+
+    /**
+     * Publishers deactivation
+     */
+    void DeactivatePublishersL();
+
+
+    /**
+     * Resets Activate flag and update item in the DB
+     */
+    void ResetAndUpdateFlagL( CCPLiwMap* aMap );
+        
+private:
+    //data
+
+    /*
+     * Manager to send and receive data beetween server and storage 
+     * Own.
+     */
+    CCPDataManager* iDataManager;
+
+    /*
+     * Manager to prepare and execute action
+     * Own. 
+     */
+    CCPActionHandlerThread* iActionHandlerThread;
+
+    /*
+     * Count of sessions
+     * Own.
+     */
+    TInt iCountSession;
+
+    /**
+     * Notifier for Backup and Restore changes.
+     * Own.
+     */
+    CCPServerBURListener* iBURListener;
+
+#ifdef CONTENT_PUBLISHER_DEBUG
+    CCPDebug* iDebug;
+#endif
+
+    /*
+     * Own.
+     * True if database is lock
+     */
+    TBool iBURLock;
+    
+    /*
+     * Own.
+     * List of waiting notifications about publisher 
+     * activation during startup 
+     */
+    RPointerArray<CLiwDefaultList> iNotifications;
+    };
+
+#endif // C_CCPSERVER_H