cbs/CbsServer/ServerInc/CCbsRecCollector.h
changeset 46 2fa1fa551b0b
parent 42 35488577e233
child 48 78df25012fda
--- a/cbs/CbsServer/ServerInc/CCbsRecCollector.h	Mon Aug 23 15:50:31 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,207 +0,0 @@
-/*
-* 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 CCbsRecCollector class.
-*
-*/
-
-
-#ifndef CCBSRECCOLLECTOR_H
-#define CCBSRECCOLLECTOR_H
-
-// INCLUDES
-#include <e32base.h>
-
-// FORWARD DECLARATIONS
-class TCbsMessageCompletion;
-class CCbsRecMessage;
-class CCbsMessage;
-class CCbsMessageFactory;
-class CCbsMessageCleanupTimer;
-
-// DATA TYPES
-// Dynamic array that contains collected message pages
-typedef CArrayPtrFlat<CCbsMessage> CMessageBuffer;
-
-
-// CLASS DECLARATION
-
-/**
-*   This class represents a collector, which stores pages of multipaged 
-*   messages. Complete messages are assembled and returned back to 
-*   the caller of CollectL() method.
-*  
-*   CCbsRecCollector stores message pages in a number of dynamic arrays.
-*   If all but one page of a message are present in collector, and
-*   the remaining page is received, the pages will be assembled and
-*   the corresponding message chain deleted.
-*
-*   The maximum number of incomplete messages stored in collector at once
-*   is fixed and determined by KMaxCollectorMessages in CCbsRecCollector.cpp.
-*
-*   CCbsRecCollector implements a circular list to contain message.
-*   Each incomplete message occupies a slot in this list. If the list already
-*   contains KMaxCollectorMessages messages, the next received multipaged
-*   message will delete all received pages of the oldest message in list.
-*
-*   On receival of a message page, the collector compares network information
-*   (PLMN, LAC, CellId) of both messages to decide whether pages are of
-*   the same message. In short, for pages to be of the same message
-*   their network information have to meet the requirements set by the 
-*   geographical scope of the already collected page.
-*   See ETSI GSM 03.41 for a detailed description. 
-*   
-*/
-class CCbsRecCollector : public CBase
-    {
-    public:  // Constructors and destructor
-        
-        /**
-        *   Two-phased constructor.
-        *
-        *   @param  aFactory            Message factory instance
-        *   @return                     New CCbsRecCollector instance
-        */
-         static CCbsRecCollector* NewL( CCbsMessageFactory& aFactory );
-        
-        /**
-        *   Destructor.
-        */
-        virtual ~CCbsRecCollector();
-
-    public: // New functions
-
-        /**
-        *   Called by the Receiver when a multipaged message is received.
-        *   This method checks for other pages of this message to be
-        *   present in the collector. If all pages are present the
-        *   collector returns a pointer to completed message.
-        *
-        *   If some pages are still missing, function stores 
-        *   the message page and returns NULL.
-        *
-        *   @param aMessage             Multipaged message page
-        *   @return                     NULL or completed CB message
-        */
-        CCbsMessage* CollectL( CCbsMessage* aMessage, TInt aMessageType );
- 
-        /**
-        *   Deletes all message pages contained in aArray.
-        *
-        *   @param aArray               Message chain.
-        */
-        void DeleteChainL( CMessageBuffer& aArray ) const; 
-
-    private:    // new functions
-
-        /**
-        *   C++ default constructor.
-        *
-        *   @param aListener            Message factory instance
-        */
-        CCbsRecCollector( CCbsMessageFactory& aFactory  );
-
-        /**
-        *   By default constructor is private.
-        */
-        void ConstructL();
-
-        /**
-        *   Counts pages in message chain aArray and compares the result
-        *   against the total number of pages in the message.
-
-        *   @param  aArray              Message chain.
-        *   @return                     ETrue, if the chain contains all pages
-        *                               of the message and is ready to be 
-        *                               merged.
-        */
-        TBool AllPagesPresent( const CMessageBuffer& aArray ) const;
-
-        /**
-        *   Merges all pages in message chain aArray and returns
-        *   a pointer to the resulting assembled message. The pointer
-        *   is also left on the cleanup stack.
-        *
-        *   @param aArray               Message chain
-        *   @return                     Completed CB message
-        */
-        CCbsMessage* MergePagesLC( CMessageBuffer& aArray ) const;
-
-        /**
-        *   Finds and returns a message chain which already contains pages
-        *   of aMessage's message. If none is found, NULL is returned.
-        *
-        *   @param aMessage             Message page for which a correct chain
-        *                               is sought.
-        *   @return                     NULL or message chain that contains
-        *                               aMessage's pages.
-        */
-        CMessageBuffer* FindChainContainingPage( const CCbsMessage& aMessage ) const;
-        
-        /**
-        *   Adds message page aMessage to the correct position in message chain
-        *   aArray. Message chains are ordered in ascending page number order.
-        *   Duplicate pages are not accepted.
-        *
-        *   Ownership of aMessage is transferred to aArray, if the given page
-        *   hasn't been already collected. The given page will be deleted,
-        *   if it already exists in the chain.
-        *
-        *   @param aMessage             Message page, which is inserted into 
-        *                               the chain.
-        *   @param aArray               Message chain.
-        */
-        void AddMessageToChainL( CCbsMessage* aMessage, 
-            CMessageBuffer& aArray ) const;
-
-        /**
-        *   Checks if these pages can be merged. Returns ETrue, if merging is
-        *   acceptable.
-        *
-        *   Decision is based network information and geographical scope of 
-        *   pages. Network information consists of cell id, location area code
-        *   and operator id.
-        *
-        *   @param aPage1               Message page.
-        *   @param aPage2               Message page.
-        */
-        TBool CheckPageAreaInfoMatch( const CCbsMessage& aPage1, 
-            const CCbsMessage& aPage2 ) const;
-
-    private:    // prohibited functions
-        // Prohibited copy constructor
-        CCbsRecCollector( const CCbsRecCollector& );
-
-        // Prohibited assignment operator
-        CCbsRecCollector& operator=( const CCbsRecCollector& );
-
-    private:    // data
-        // Contains pointers to buffers, each containing a single partial
-        // message with 1 or more pages. 
-        CArrayPtrFlat< CMessageBuffer >* iRootNodeArray;
-
-        // An iterator which points to a location in iRootNodeArray next used
-        // to store a page of a message, which is "new" to the collector.
-        // Being "new" here means that the collector doesn't contain any
-        // pages of this message.
-        TInt iRootNodeIterator;
-
-        // Message factory
-        CCbsMessageFactory& iFactory;
-		CArrayPtrFlat< CCbsMessageCleanupTimer >*	iMessageCleanupTimerArray;
-
-    };
-
-#endif      // CCBSRECCOLLECTOR_H
-            
-// End of File