--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneclientserver/phoneserver/Inc/Standard/CPhSrvServer.h Tue Feb 02 01:11:09 2010 +0200
@@ -0,0 +1,355 @@
+/*
+* Copyright (c) 2002-2005 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: Server.
+*
+*/
+
+
+#ifndef CPHSRVSERVER_H
+#define CPHSRVSERVER_H
+
+
+// INCLUDES
+#include "MPhSrvPhoneInterface.h"
+#include "PhCltClientServer.h"
+#include <RPhCltServer.h>
+#include <fbs.h>
+#include <f32file.h>
+
+
+// FORWARD DECLARATIONS
+class CPhSrvSession;
+class CPhSrvUssdManager;
+class CPhSrvPhoneController;
+class CPhSrvResourceManager;
+class CPhSrvCallRequestManager;
+class CPhSrvEmergencyRequestManager;
+class CPhSrvEmergencyNumberManager;
+class MPhSrvNegotiatorCall;
+class MPhSrvEmergencyNumberManager;
+class MPhSrvComHandNegotiator;
+class CPhSrvComHandRequestManager;
+class CPhSrvMessengerRequestManager;
+class MPhSrvMessengerNegotiator;
+class MPhSrvEmergencyNegotiatorCall;
+
+
+// CLASS DECLARATION
+
+/**
+* It is the server class for Phone Server.
+*
+* @since 1.0
+*/
+class CPhSrvServer :
+ public CServer2
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ * Creates a new server and starts it.
+ */
+ static CPhSrvServer* NewL();
+
+ /**
+ * Destructor.
+ */
+ ~CPhSrvServer();
+
+
+ public: // New functions
+
+ /**
+ * Connects to Font and bitmap server.
+ * @return Symbian error code
+ */
+ TInt ConnectFBS();
+
+ /**
+ * Disconnects Font and bitmap server.
+ * @param aForce do we force disconnect
+ */
+ void DisconnectFBS( TBool aForce = EFalse );
+
+ /**
+ * Creates all managers.
+ *
+ * @param aSession The session for subsessions.
+ */
+ void CreateAllL( CPhSrvSession& aSession );
+
+ /**
+ * Cancels create all.
+ *
+ * @param aSession The session for subsessions.
+ */
+ void CancelCreateAll( CPhSrvSession& aSession );
+
+ /**
+ * Creates a new object container.
+ *
+ * @return Returns the created instance.
+ */
+ CObjectCon* NewContainerL() const;
+
+ /**
+ * Removes an object container.
+ *
+ * @param aCon object container
+ */
+ void RemoveContainer( CObjectCon* aCon );
+
+ /**
+ * Access to the call negotiator
+ *
+ * @return The call negotiator
+ */
+ MPhSrvNegotiatorCall& CallNegotiatorL();
+
+ /**
+ * Access to the call negotiator
+ * NOTE: This is not safe call if IsCallNegotiator() return False
+ * @return The call negotiator
+ */
+ MPhSrvNegotiatorCall& CallNegotiator() const;
+
+ /**
+ * Access to the USSD manager
+ *
+ * @return The USSD manager
+ */
+ CPhSrvUssdManager& UssdManagerL();
+
+
+ /**
+ * Access to the call negotiator
+ *
+ * @return The call negotiator
+ */
+ MPhSrvEmergencyNegotiatorCall& EmergencyCallNegotiatorL();
+
+ /**
+ * Access to the call negotiator
+ * NOTE: This is not safe call if IsEmergencyCallNegotiator() return
+ * false.
+ * @return The call negotiator
+ */
+ MPhSrvEmergencyNegotiatorCall& EmergencyCallNegotiator() const;
+
+ /**
+ * Ask if there is a emergency call negotiator.
+ *
+ * @return ETrue if there is emergency call negotiator.
+ */
+ TBool IsEmergencyCallNegotiator() const;
+
+ /**
+ * Access to the phone
+ *
+ * @return The phone interface
+ */
+ MPhSrvPhoneInterface& PhoneInterfaceL();
+
+ /**
+ * Access to the emergency number manager
+ *
+ * @return The emergency number manager
+ */
+ MPhSrvEmergencyNumberManager& EmergencyNumberManagerL();
+
+ /**
+ * Ask if there is a call negotiator.
+ *
+ * @return ETrue if there is call negotiator.
+ */
+ TBool IsCallNegotiator() const;
+
+ /**
+ * Ask if there is a ussd manager
+ *
+ * @return ETrue if there is ussd manager.
+ */
+ TBool IsUssdManager() const;
+
+ /**
+ * Access to the command handler negotiator.
+ * @since 2.6
+ *
+ * @return The command handler negotiator
+ */
+ MPhSrvComHandNegotiator& ComHandNegotiatorL();
+
+ /**
+ * Access to the command handler negotiator.
+ * NOTE: This is not a safe call if
+ * IsComHandNegotiator() return false.
+ */
+ MPhSrvComHandNegotiator& ComHandNegotiator() const;
+
+ /**
+ * Ask if there is a command handler negotiator.
+ * @since 2.6
+ *
+ * @return ETrue if there is command handler negotiator.
+ */
+ TBool IsComHandNegotiator() const;
+
+ /**
+ * Access to the messenger negotiator.
+ * @since 2.6
+ *
+ * @return The messenger negotiator
+ */
+ MPhSrvMessengerNegotiator& MessengerNegotiatorL();
+
+ /**
+ * Access to the messenger negotiator.
+ * NOTE: This is not a safe call if IsMessengerNegotiator()
+ * return false.
+ * @since 5.0
+ *
+ * @return The messenger negotiator
+ */
+ MPhSrvMessengerNegotiator& MessengerNegotiator() const;
+
+ /**
+ * Ask if there is a messenger negotiator.
+ * @since 2.6
+ *
+ * @return ETrue if there is messenger negotiator.
+ */
+ TBool IsMessengerNegotiator() const;
+
+
+ public: // Functions from base classes
+
+ /**
+ * From CServer, create a new session.
+ *
+ * @param aVersion It is the version of the client api.
+ * @param aMessage Connect message from Client.
+ * @return Returns a new session.
+ */
+ CSession2* NewSessionL(
+ const TVersion &aVersion,
+ const RMessage2& aMessage ) const;
+
+
+ private: // New functions
+
+ /**
+ * C++ constructor.
+ */
+ CPhSrvServer( TInt aPriority );
+
+ /**
+ * By default Symbian 2nd phase constructor is private.
+ * @since 2.8
+ */
+ void ConstructL();
+
+ /**
+ * Returns file server session.
+ */
+ RFs& FsSessionL();
+
+
+ /**
+ * Returns resource manager.
+ */
+ CPhSrvResourceManager& ResourceManagerL();
+
+ /**
+ * Performs step in create all.
+ */
+ TInt CreateAllStepL();
+
+ /**
+ * Performs an step.
+ */
+ void PerformNextStepL();
+
+ /**
+ * Complete create all.
+ */
+ void CompleteCreateAll( TInt aError );
+
+ /**
+ * Create all step.
+ */
+ static TInt DoCreateAllStepL( TAny* aAny );
+
+ private: // Data
+
+ // The file server session for the whole server.
+ RFs iFsSession;
+
+
+ // The object responsible for controlling the server resource file.
+ CPhSrvResourceManager* iResourceFileManager;
+
+ // The object responsible for controlling the interface to the phone.
+ CPhSrvPhoneController* iPhoneController;
+
+ // The object container indexer which owns and manages the CObjectCon
+ // instances ensuring that each container has a unique handle spanning
+ // all sub-sessions.
+ // As well as owning the object containers, it also is responsible
+ // for creating new ones.
+ mutable CObjectConIx* iObjectConIx;
+
+ // The object responsible for acting as the bridge between an external
+ // call client, and the phone app engine notifier client.
+ CPhSrvCallRequestManager* iCallRequestManager;
+
+ // The object responsible for acting as the bridge between an external
+ // call client, and the phone app engine notifier client.
+ CPhSrvEmergencyRequestManager* iEmergencyRequestManager;
+
+ // Responsible for all USSD related server functionality.
+ CPhSrvUssdManager* iUssdManager;
+
+ // Responsible for all emergency number related functionality.
+ CPhSrvEmergencyNumberManager* iEmergencyNumberManager;
+
+ // The object responsible for acting as the bridge between an external
+ // command handler client, and the phone app engine notifier client.
+ CPhSrvComHandRequestManager* iComHandRequestManager;
+
+ // The object responsible for handling messenger requests.
+ CPhSrvMessengerRequestManager* iMessengerRequestManager;
+
+ // CREATE ALL VARIABLES
+
+ // Idle object for create all.
+ CIdle* iCreateAll;
+
+ // Step index.
+ TInt iCreateAllStep;
+
+ // Error.
+ TInt iCreateAllError;
+
+ // Array of sessions.
+ RPointerArray< CPhSrvSession > iCreateAllArray;
+
+ // Reference count for font and bitmap server connections.
+ TInt iFBSConnections;
+ };
+
+#endif // CPHSRVSERVER_H
+
+
+// End of File