simpledatamodeladapter/inc/mpresencepluginconnectionobs.h
changeset 0 c8caa15ef882
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/simpledatamodeladapter/inc/mpresencepluginconnectionobs.h	Tue Feb 02 01:05:17 2010 +0200
@@ -0,0 +1,247 @@
+/*
+* Copyright (c) 2006 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:  IETF SIMPLE Protocol implementation for XIMP Framework
+*
+*/
+
+
+#ifndef MPRESENCEPLUGINCONNECTIONOBS_H
+#define MPRESENCEPLUGINCONNECTIONOBS_H
+
+#include <e32std.h>
+#include <ximpbase.h>
+#include <ximpprotocolpluginhostifids.hrh>
+
+class TXIMPRequestId;
+class MXIMPObjectFactory;
+class CPresencePluginWinfo;
+class MSimpleWinfo;
+class MXIMPProtocolConnectionHost;
+class CPresencePluginXdmUtils;
+class CPresencePluginWatcher;
+class MPresenceObjectFactory;
+class MProtocolPresenceDataHost;
+class MProtocolPresenceAuthorization;
+class CPresencePluginVirtualGroup;
+class CPresencePluginAuthorization;
+class CPresencePluginGroups;
+
+/**
+ *  MPresencePluginConnectionObs
+ *
+ *  presence engine connection
+ *
+ *  @lib presenceplugin.dll
+ *  @since S60 v3.2
+ */
+NONSHARABLE_CLASS( MPresencePluginConnectionObs )
+    {
+
+public:
+
+    enum TReqType
+        {
+        /** undefined */
+        ENoReq = 0,
+        /** Connection initializing */
+        EOpenSess,
+        /** Connection close */
+        ECloseSess,
+        /** Publish own data */
+        EPublish,
+        /** Subscribe Own data */
+        ESubscribeOwn,
+        /** Subscribe other user */
+        ESubscribeOther
+        };
+    
+    /**
+     * CPresencePluginWatcher accessor
+     * @return CPresencePluginWatcher
+     */    
+    virtual CPresencePluginWatcher* WatcherHandlerL() = 0;
+    
+    /**
+     * Complete the request
+     *
+     * @param aType request type
+     * @param aStatus status
+     */
+    virtual void CompleteReq(TReqType aType, TInt aStatus ) = 0;
+
+    /**
+     * Complete the request
+     *
+     * @param aReqId ximp request id
+     * @param aStatus status
+     */
+    virtual void CompleteReq(TXIMPRequestId aReqId, TInt aStatus ) = 0;
+
+    /**
+     * XIMP Object Factory accessor
+     * @return ximp Object Factory
+     */
+    virtual MXIMPObjectFactory& ObjectFactory()=0;
+       
+    /**
+     * XIMP Object Factory accessor
+     * @return PrFw Object Factory
+     */
+    virtual MPresenceObjectFactory& PresenceObjectFactoryOwn()=0;
+    
+    /**
+     * XIMP presence authorization accessor
+     * @return PrFw Protocol Presence Authorization
+     */
+    virtual MProtocolPresenceAuthorization& PresenceAuthorization() = 0;
+    
+    /**
+     * XIMP presence authorization accessor as own internal type
+     * @return Presence Authorization
+     */
+    virtual CPresencePluginAuthorization& InternalPresenceAuthorization() = 0;    
+    
+    /**
+     * Gets reference to
+     * MProtocolPresenceDataHost interface.
+     *
+     * Presence protocol connection implementation uses returned
+     * data host interface to manage the Presence connection's
+     * presence auhtorization data.
+     *
+     * @return MProtocolPresenceAuthorizationDataHost interface.
+     * Interface ownership is not returned caller.
+     * Returned interface is guaranteed to remain valid (usable)
+     * as long as this source interface.
+     */
+    virtual MProtocolPresenceDataHost& ProtocolPresenceHost() = 0;
+    
+    /**
+     * CPresencePluginWinfo accessor
+     * @return CPresencePluginWinfo, ownership is not transferred.
+     */
+    virtual CPresencePluginWinfo* WinfoHandlerL()=0;  
+    
+    /**
+     * CPresencePluginWinfoObserver is terminated
+     * @param aReason reason code
+     */
+    virtual void WinfoTerminatedL( TInt aReason )=0;  
+    
+    /**
+     * Watcher info subscription notification is received
+     * @aWinfo notification content
+     */
+    virtual void WinfoNotification( MSimpleWinfo& aWinfo ) = 0;  
+      
+    /**
+     * Current registered SIP entity
+     */
+    virtual TPtrC8 CurrentSipPresentity8() = 0;             
+    
+    /**
+     * Access connection host
+     * @return MximpProtocolConnectionHost
+     */
+    virtual MXIMPProtocolConnectionHost* Host() = 0;
+    
+    /**
+     * Current domain syntax accessor
+     */
+    virtual TPtrC16 CurrentDomain() = 0;
+    
+    /**
+     * Access CPresencePluginXdmUtils
+     * @return CPresencePluginXdmUtils entity
+     */
+    virtual CPresencePluginXdmUtils* XdmUtilsL() = 0;
+    
+    /**
+     * Get ETag
+     * @return TDesC8, etag value
+     */
+    virtual const TDesC8& GetETag() const = 0;
+    
+    /**
+     * Set ETag
+     * @return none
+     */
+    virtual void SetETag( const TDesC8& aETag ) = 0;
+    
+    /**
+     * Get client session time tupleId
+     * @return TInt, tuple value
+     */
+    virtual TInt GetTupleId() const = 0;
+    
+    /**
+     * Set session time tupleId
+     * @return none
+     */
+    virtual void SetTupleId( const TInt aTupleId ) =0;
+    
+    /**
+     * Get Stop publish state
+     * @return TBool, stop publish state
+     */
+    virtual TBool GetStopPublishState() = 0;
+    
+    /**
+     * Is Stop publish called
+     * @return TBool, stop publish called state
+     */
+    virtual TBool IsStopPublishCalled() = 0;
+    
+    /**
+     * Get Stop publish state
+     * @return TBool, stop publish state
+     */
+    virtual void SetStopPublishState( TBool aState ) = 0;
+    
+    /**
+     * Get Stop publish state
+     * @return TBool, session status
+     */
+    virtual TBool GetSessionStatus( ) = 0; 
+    
+    /**
+     * Return instace of subcribed contact
+     * @return TBool, session status
+     */
+    virtual CPresencePluginVirtualGroup* SubscribedContacts( ) = 0;
+    
+    /** 
+     * Get grand request list subscribe state
+     */
+    virtual TBool GrandListState() = 0;
+    
+    /** 
+     * Terminate connection
+     */
+    virtual void TerminateConnectionL( ) = 0;
+    
+    /** 
+     * Return Groups API implemention
+     */
+    virtual CPresencePluginGroups& GroupsL( ) = 0;  
+    
+    /** 
+     * Return service id
+     */
+    virtual TInt& ServiceId( ) = 0;        
+    };
+
+#endif
+
+// End of File
\ No newline at end of file