diff -r 000000000000 -r 2e3d3ce01487 contextframework/cfw/inc/cfserver/cfpublishcontextcmd.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contextframework/cfw/inc/cfserver/cfpublishcontextcmd.h Tue Feb 02 10:12:00 2010 +0200 @@ -0,0 +1,122 @@ +/* +* 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: CCFPublishContextCmd class declaration. +* +*/ + + +#ifndef C_CFPUBLISHCONTEXTCMD_H +#define C_CFPUBLISHCONTEXTCMD_H + + +// SYSTEM INCLUDE FILES +#include + +// USER INCLUDE FILES +#include "cfcmd.h" + +// FORWARD DECLARATIONS +class CCFContextManager; +class CCFContextObject; +class CCFContextDataObject; +class CCFContextDataProxy; + +// DATA TYPES + +// CLASS DECLARATION + +/** + * Publish context command. + * + * @lib CFServer + * @since S60 5.0 + */ +NONSHARABLE_CLASS( CCFPublishContextCmd ) : public CCFCmd + { +public: + + /** + * Symbian two phased constructors. + * + * @since S60 5.0 + * @param aContextManager is the manager handling context subscriptions. + * @param aContext is the context to be published. + * @return CCFPublishContextCmd + */ + static CCFPublishContextCmd* NewL( CCFContextManager& aContextManager, + const CCFContextObject& aContext ); + static CCFPublishContextCmd* NewLC( CCFContextManager& aContextManager, + const CCFContextObject& aContext ); + + /** + * Symbian two phased constructors. + * + * @since S60 5.0 + * @param aContextManager is the manager handling context subscriptions. + * @param aContext is the context to be published. + * @param aData is the context data to be published. + * @return CCFPublishContextCmd + */ + static CCFPublishContextCmd* NewL( CCFContextManager& aContextManager, + const CCFContextObject& aContext, + CCFContextDataObject& aData ); + static CCFPublishContextCmd* NewLC( CCFContextManager& aContextManager, + const CCFContextObject& aContext, + CCFContextDataObject& aData ); + + /** + * C++ destructor. + */ + virtual ~CCFPublishContextCmd(); + +public: // From CCFCmd + + /** + * Executes the publish context command. + * + * @since S60 5.0 + * @param None. + * @return None. + */ + virtual void ExecuteL(); + + /** + * Logs the error using error trace macros. + * + * @since S60 5.0 + * @param aError is the leave code from a call to ExecuteL. + * @return None. + */ + virtual void LogError( TInt aError ); + +private: + + CCFPublishContextCmd( CCFContextManager& aContextManager ); + void ConstructL( const CCFContextObject& aContext ); + void ConstructL( const CCFContextObject& aContext, + CCFContextDataObject& aData ); + +private: // Data + + // Context manager handling context publications. + CCFContextManager& iContextManager; + + // Context published by this command; owned. + CCFContextObject* iContextObject; + + // Context data; owned, optional: NULL = no data. + CCFContextDataProxy* iData; + }; + +#endif // C_CFPUBLISHCONTEXTCMD_H