diff -r 000000000000 -r ff3b6d0fd310 cbs/CbsServer/ServerInc/CCbsTopicMessages.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cbs/CbsServer/ServerInc/CCbsTopicMessages.h Tue Feb 02 01:11:09 2010 +0200 @@ -0,0 +1,173 @@ +/* +* Copyright (c) 2003 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: This file contains the header file of the CCbsTopicMessages class +* +* This class represents the server-side topic messages subsession class. +* +*/ + + + +#ifndef CCBSTOPICMESSAGES_H +#define CCBSTOPICMESSAGES_H + +// INCLUDES +#include "CCbsObject.h" + +// FORWARD DECLARATIONS +class CCbsDbImpTopicMessages; +class CCbsRecEtel; + +// CLASS DECLARATION +/** + It represents the server side topic messages subsession. +*/ +class CCbsTopicMessages : public CCbsObject + { + public: // New functions + /** + * Creates a new instance of the class. + * + * @param aSession Pointer to the session. + * @param aMessages Pointer to the topic messages. + * @param aReceiver Receiver. + * @return Pointer to a new instance of + * CCbsTopicMessages. + */ + static CCbsTopicMessages* NewL( CCbsSession& aSession, + CCbsDbImpTopicMessages& aMessages, + CCbsRecEtel& aReceiver ); + + /** + * Destructor. + */ + ~CCbsTopicMessages(); + + public: // From CCbsObject + /** + * Handle the requests for the object. + * + * @param aMessage Message to be handled. + * @return It indicates whether the message was handled. + */ + TBool HandleRequestsL( const RMessage2& aMessage ); + + private: + /** + * Constructor. + * + * @param aSession Pointer to the session. + * @param aMessages Pointer to the topic messages. + * @param aReceiver Receiver + */ + CCbsTopicMessages( CCbsSession& aSession, + CCbsDbImpTopicMessages& aMessages, + CCbsRecEtel& aReceiver ); + + /** + * Finalizes construction. + */ + void ConstructL(); + + /** + * Closes the subsession. + */ + void CloseTopicMessages(); + + /** + * Returns the total amount of messages to the client. + */ + void GetMessageCountL(); + + /** + * Returns the requested message to the client. + */ + void GetMessageL(); + + /** + * Finds a message by its handle. + */ + void FindMessageByHandleL(); + + /** + * Returns message index in topic by message handle. + */ + void GetMessageIndexByHandleL(); + + /** + * Deletes a message. + * + * @param aReceiver Receiver. + */ + void DeleteMessageL( const CCbsRecEtel& aReceiver ); + + /** + * Saves a message. + * + * @param aReceiver Receiver. + */ + void SaveMessageL( const CCbsRecEtel& aReceiver ); + + /** + * Locks a message. + */ + void LockMessageL(); + + /** + * Reads a message. + * + * @param aReceiver Receiver. + */ + void ReadMessageL( const CCbsRecEtel& aReceiver ); + + /** + * Returns the content of the message to the client. + */ + void GetMessageContentsL(); + + /** + * Retrieves and returns the handles of messages that + * precede and succeed the given message in topic. + * + * Also returns two flags indicating whether the + * given message is the first and/or the last message in topic. + */ + void GetNextAndPrevMsgHandleL(); + + private: // Prohibited operators and functions + + // Copy constructor + CCbsTopicMessages( const CCbsTopicMessages& ); + + // Assignment operator + CCbsTopicMessages& operator=( const CCbsTopicMessages& ); + + private: // Data + + // Pointer to the topic messages manager + CCbsDbImpTopicMessages& iMessages; + + // It is the locked message handle, or null message handle + // in case no message is locked. + TCbsDbMessageHandle iLocked; + + // Receiver reference + CCbsRecEtel& iReceiver; + }; + +#endif // CCBSTOPICMESSAGES_H + +// End of File + +