ximpfw/presence/srcpresenceprocessor/protocolpresencedatahostimp.h
changeset 0 e6b17d312c8b
equal deleted inserted replaced
-1:000000000000 0:e6b17d312c8b
       
     1 /*
       
     2 * Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Presence connection host
       
    15  *
       
    16 */
       
    17 
       
    18 #ifndef CPROTOCOLPRESENCEDATAHOSTIMP_H
       
    19 #define CPROTOCOLPRESENCEDATAHOSTIMP_H
       
    20 
       
    21 //#include <e32base.h>
       
    22 //#include <ximpprotocolconnectionhost.h>
       
    23 //#include <ximpcontext.h>
       
    24 #include <protocolpresencedatahost.h>
       
    25 
       
    26 #include "ximpapiobjbase.h"
       
    27 #include "presenceapiobjbase.h"
       
    28 #include "ximpitemparent.h"
       
    29 //#include "ximphost.h"
       
    30 #include "ximpoperationdefs.h"
       
    31 #include "ximprequestidbuilder.h"
       
    32 
       
    33 
       
    34 class MXIMPHost;
       
    35 class MPresenceObjectFactory;
       
    36 class CPresenceObjectFactoryImp;
       
    37 
       
    38 //class CXIMPPscContext;
       
    39 class MPresenceDataCache;
       
    40 class CPresenceDataCache;
       
    41 /*class CXIMPContextStateEventImp;
       
    42 class CPeriodic;
       
    43 class MXIMPProtocolConnection;*/
       
    44 class CProtocolPresenceAuthorizationDataHostImp;
       
    45 class MProtocolPresenceAuthorizationDataHost;
       
    46 class CProtocolPresencePublishingDataHostImp;
       
    47 class MProtocolPresencePublishingDataHost;
       
    48 class CProtocolPresenceWatchingDataHostImp;
       
    49 class MProtocolPresenceWatchingDataHost;
       
    50 class CProtocolPresentityGroupsDataHostImp;
       
    51 class MProtocolPresentityGroupsDataHost;
       
    52 //class CXIMPRestrictedCollectionImp;
       
    53 //class CXIMPProtocolRequestCompleteEventImp;
       
    54 
       
    55 
       
    56 
       
    57 /**
       
    58  * Presence connection host.
       
    59  *
       
    60  * @lib ximpprocessor.lib
       
    61  * @since S60 v3.2
       
    62  */
       
    63 class CProtocolPresenceDataHostImp : public CXIMPApiObjBase,
       
    64                                      public MProtocolPresenceDataHost
       
    65 
       
    66     {
       
    67 public:
       
    68     /** The class ID. */
       
    69     enum { KClassId = PRIMP_CLSID_CPROTOCOLPRESENCEDATAHOSTIMP };
       
    70 
       
    71 public:
       
    72 
       
    73     IMPORT_C static CProtocolPresenceDataHostImp* NewL( MXIMPHost& aHost );
       
    74 
       
    75     IMPORT_C static CProtocolPresenceDataHostImp* NewLC( MXIMPHost& aHost );
       
    76 
       
    77     virtual ~CProtocolPresenceDataHostImp();
       
    78 
       
    79 private:
       
    80 
       
    81     CProtocolPresenceDataHostImp( MXIMPHost& aHost );
       
    82     void ConstructL();
       
    83 
       
    84 public: // From MXIMPBase
       
    85 
       
    86     /**
       
    87      * Implementation of MXIMPBase interface methods
       
    88      * @see MXIMPBase
       
    89      */
       
    90     XIMPIMP_DECLARE_IF_BASE_METHODS
       
    91 
       
    92 
       
    93 public: // MProtocolPresenceDataHost
       
    94    
       
    95     MPresenceObjectFactory& PresenceObjectFactory();
       
    96 
       
    97     MProtocolPresenceAuthorizationDataHost& AuthorizationDataHost();
       
    98 
       
    99     MProtocolPresencePublishingDataHost& PublishingDataHost();
       
   100 
       
   101     MProtocolPresenceWatchingDataHost& WatchingDataHost();
       
   102 
       
   103     MProtocolPresentityGroupsDataHost& GroupsDataHost();
       
   104 
       
   105 public: 
       
   106     
       
   107     IMPORT_C CPresenceDataCache& PresenceDataCache();
       
   108     IMPORT_C CProtocolPresenceAuthorizationDataHostImp& AuthorizationDataAccess();
       
   109     IMPORT_C CProtocolPresencePublishingDataHostImp& PublishingDataAccess();
       
   110     IMPORT_C CProtocolPresenceWatchingDataHostImp& WatchingDataAccess();
       
   111     IMPORT_C CProtocolPresentityGroupsDataHostImp& GroupsDataAccess();
       
   112     
       
   113 // MXIMPHost
       
   114 
       
   115 /*    MXIMPProtocolConnection& GetConnection() const;
       
   116 
       
   117     void AddEventL( CXIMPApiEventBase& aEvent, MXIMPPscContext* aContext  );
       
   118     void ActivateEventL( CXIMPApiEventBase& aEvent, MXIMPPscContext* aContext );
       
   119 
       
   120     void UnregisterSession( CXIMPPscContext* aContext );
       
   121 
       
   122     void FakeCompleteRequest( TXIMPRequestId aReqId, TInt aResult );
       
   123     void HandleAdaptationRequestCompleted( TXIMPRequestId aReqId, TInt aResult );
       
   124     void HandleSessionMgmtRequestCompleted( TXIMPRequestId aReqId, TInt aResult );
       
   125     void HandleInternalRequestCompleted( TXIMPRequestId aReqId, TInt aResult );
       
   126 
       
   127     CPresenceDataCache& DataAccess();
       
   128     CProtocolPresenceAuthorizationDataHostImp& AuthorizationDataAccess();
       
   129     CProtocolPresencePublishingDataHostImp& PublishingDataAccess();
       
   130     CProtocolPresenceWatchingDataHostImp& WatchingDataAccess();
       
   131     CProtocolPresentityGroupsDataHostImp& GroupsDataAccess();
       
   132 
       
   133     void AddNewOperationL( CXIMPOperationBase& aOperation );
       
   134     TXIMPRequestId AddNewOperationL( CXIMPOperationBase* aOperation );
       
   135 
       
   136     void ForcedTeardownL();
       
   137 
       
   138     void StartCleanerTimer();
       
   139     
       
   140     TXIMPRequestId AddNewOperationL( 
       
   141                 TInt aOperation, MXIMPBase* aParam, MXIMPBase* aParam2 = NULL );    
       
   142     TXIMPRequestId AddNewOperationL( 
       
   143                 TInt aOperation, CXIMPRestrictedObjectCollectionImp* aParams );
       
   144 
       
   145 public: // New functions
       
   146 
       
   147     void AddEventL( CXIMPApiEventBase& aEvent, CXIMPPscContext* aContext  );
       
   148     void ActivateEventL( CXIMPApiEventBase& aEvent, CXIMPPscContext* aContext );
       
   149 
       
   150 
       
   151     void RegisterSessionL( CXIMPPscContext* aContext );*/
       
   152 
       
   153 private: // data
       
   154 
       
   155     MXIMPHost& iHost;
       
   156     /**
       
   157      * Data cache
       
   158      */
       
   159     CPresenceDataCache* iPresenceDataCache;
       
   160     
       
   161     CPresenceObjectFactoryImp* iPresenceObjFactory;
       
   162 
       
   163     /**
       
   164      * Data hosts
       
   165      */
       
   166     CProtocolPresenceAuthorizationDataHostImp* iAuthDataHost;
       
   167     CProtocolPresencePublishingDataHostImp* iPublishingDataHost;
       
   168     CProtocolPresenceWatchingDataHostImp* iWatchingDataHost;
       
   169     CProtocolPresentityGroupsDataHostImp* iGroupsDataHost;
       
   170 
       
   171 
       
   172     };
       
   173 
       
   174 
       
   175 #endif // CPROTOCOLPRESENCEDATAHOSTIMP_H
       
   176