diff -r 000000000000 -r 7f85d04be362 upnpharvester/mdhserver/inc/server/mdhserver.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/upnpharvester/mdhserver/inc/server/mdhserver.h Thu Dec 17 08:52:00 2009 +0200 @@ -0,0 +1,210 @@ +/* +* Copyright (c) 2007 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: Metadata Harvester server executable header file +* +*/ + + + + + + + +#ifndef MDHSERVER_H +#define MDHSERVER_H + +// INCLUDES +#include +#include +#include "mdhmediaservercontainer.h" + +// --------------------------------------------------------------- +// Server's policy +// --------------------------------------------------------------- + +//Total number of ranges +const TUint KCmMdhServerRangeCount = 2; + +//Definition of the ranges of IPC numbers +const TInt KCmMdhServerRanges[KCmMdhServerRangeCount] = + { + 0, + 3 + }; + +//Policy to implement for each of the above ranges +const TUint8 KCmMdhServerElementsIndex[KCmMdhServerRangeCount] = + { + 1, //applies to 1st range + CPolicyServer::ENotSupported + }; + +//Specific capability checks +const CPolicyServer::TPolicyElement KCmMdhServerElements[] = + { + {_INIT_SECURITY_POLICY_C3(ECapabilityNetworkServices, + ECapabilityReadUserData, ECapabilityWriteUserData ), + CPolicyServer::EFailClient }, + {_INIT_SECURITY_POLICY_C1(ECapabilityNetworkServices), + CPolicyServer::EFailClient} + }; + +//Package all the above together into a policy +const CPolicyServer::TPolicy KCmMdhServerPolicy = + { + //specifies all connect attempts should pass + CPolicyServer::EAlwaysPass, + KCmMdhServerRangeCount, + KCmMdhServerRanges, + KCmMdhServerElementsIndex, + KCmMdhServerElements + }; + + +// DATA TYPES + +enum TCmMdhServerState + { + ECmMdhServerStateIdle = 0, + ECmMdhServerStateSearching, + ECmMdhServerStateHarvesting + }; + +// FORWARD DECLARATIONS + +// FUNCTION PROTOTYPES + +// Method to panic server in case of serious error +void PanicServer( TInt aPanic ); +// Method to panic client if e.g. message is malformed +void PanicClient( const RMessage2& aMessage, TInt aPanic ); + + +// CLASS DECLARATION + +/** +* Dummy Server Core class +* +* @lib CmMdhServer +* @since Series 60 3.1 +*/ +class CCmMdhServer : public CPolicyServer + { + + public: // Constructors and destructor + + /** + * Two-phased constructor. + */ + static CCmMdhServer* NewLC(); + + /** + * Destructor. + */ + virtual ~CCmMdhServer(); + + public: // New functions + + /** + * Sets server's state + * @since S60 3.1 + * @param aServerState, server state + * @param aErrCode error code. + */ + void SetServerStateL( TCmMdhServerState aServerState, + TInt aErrCode = KErrNone ); + + /** + * Decrement server sessions + * @since S60 3.1 + */ + void DecrementSessions(); + + /** + * Returns server's current state + * @since S60 3.1 + * @return server state + */ + TCmMdhServerState ServerState(); + + /** + * Set current asyncronous message + * @since S60 3.1 + * @param aMessage, message + */ + void SetCurrentAsyncMsg( const RMessage2& aMessage ); + + /** + * Creates media server container instance + * @since S60 3.1 + */ + void CreateMediaserverContainerL(); + + /** + * Destroys media server container instance + * @since S60 3.1 + */ + void DestroyMediaserverContainer(); + + /** + * Returns media server container reference + * @since S60 3.1 + * @return media server container + */ + CCmMdhMediaserverContainer& MediaserverContainer(); + + /** + * Increments sessions + * @since S60 3.1 + */ + void IncrementSessions(); + + private: + + /** + * C++ default constructor. + */ + CCmMdhServer(); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + private: // Functions from base classes + + CSession2* NewSessionL( const TVersion& aVersion, + const RMessage2& aMessage ) const; + + + private: // Data + + /** Current asyncronous message */ + RMessage2 iCurrentAsyncMsg; + + /** Media server container ( owned ) */ + CCmMdhMediaserverContainer* iMediaserverContainer; + + /** Server state */ + TCmMdhServerState iServerState; + + /** Count of sessions */ + TInt iSessionCount; + + }; + + +#endif // MDHSERVER_H + +// End of File