mmplugins/cameraplugins/source/mmcameraclientplugin/mmcameraserver/src/mmcameraserver.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmplugins/cameraplugins/source/mmcameraclientplugin/mmcameraserver/src/mmcameraserver.h Tue Feb 02 01:56:55 2010 +0200
@@ -0,0 +1,76 @@
+// Copyright (c) 2008-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 MMCAMERASERVER_H
+#define MMCAMERASERVER_H
+
+#include "mmcameraclientinterface.h"
+#include "mmcameraserverpolicymanager.h"
+
+const TInt KECamServMajorVerNumber = 0;
+const TInt KECamServMinorVerNumber = 0;
+const TInt KECamServBuildVerNumber = KUidMMCameraServerID;
+
+class CMMCameraServerController;
+class CMMCameraServerControllerQuery;
+class CMMCameraServerShutdown;
+
+/**
+ * Standard server class derived from CServer2 to construct the server and manage connecting clients.
+ *
+ * Also creates policy manager and camera controller to be used by client sessions.
+ */
+class CMMCameraServer : CServer2
+ {
+friend class CMMCameraServerSession;
+
+public:
+ static CMMCameraServer* NewLC(); //symbian doc says CServer2 should be returned ???
+
+ ~CMMCameraServer();
+
+ void AddSession();
+ void DropSession();
+
+ inline CMMCameraServerPolicyManager* PolicyManager() {return iPolicyManager;};
+
+protected:
+ virtual TInt RunError(TInt aError);
+
+private:
+ CMMCameraServer(); // Named Constructor Idiom concept used
+
+ void ConstructL();
+
+ CSession2* NewSessionL(const TVersion& aVersion, const RMessage2& aMessage) const;
+ void PanicClient(const RMessage2& aMessage, TServerPanic aPanic);
+
+ void GetCameraControllerL(TInt aCameraIndex, CMMCameraServerController*& aCameraController);
+ void GetCameraControllerQueryL(CMMCameraServerControllerQuery*& aCameraControllerQuery);
+
+private:
+ TInt iCamSessionCount;
+
+ TDblQue<CMMCameraServerController> iCamControllerQ; //Double link list of CMMCameraServerController
+ CMMCameraServerPolicyManager* iPolicyManager;
+ CMMCameraServerShutdown* iShutdown;
+ };
+
+#endif // MMCAMERASERVER_H