--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imstutils/imconversationview/imcvuiengine/inc/mimcvenginechatinterface.h Tue Feb 02 10:12:18 2010 +0200
@@ -0,0 +1,164 @@
+/*
+* Copyright (c) 2007-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: chat interface
+*
+*/
+
+
+#ifndef MIMCVENGINECHATINTERFACE_H
+#define MIMCVENGINECHATINTERFACE_H
+
+#include "mimcvenginemessagesreadinterface.h"
+
+// FORWARD CLASS DECLERATIONS
+class MIMCVEngineMessageWriteInterface;
+class MIMCVEngineNewMsgObserver;
+class MIMCVEngineMessageReadInterface;
+class MIMCVEngineBufferMemoryHandler;
+class MIMCVEngineChatListObserver;
+
+
+/**
+ * Internal buffer ids, these must be specified so that they can't appear in
+ * wireless village ids. And they must also be non-matchable to KNullDesC when
+ * comparing with neutral compare.
+ *
+ * From WV_CSP_v1.1.pdf:
+ * As per URI [RFC2396], certain reserved characters must be escaped if they
+ * occur within the User-ID, Resource,. This includes the characters
+ * ";", "?", ":", "&", "=", "+", "$" and ",".
+ *
+ * When using neutral compare, atleast ";", "?", ":", "&", "=", "+", "#" and ","
+ * are invalid.
+ */
+_LIT( KSendBufferId, "$" );
+
+// CLASS DECLARATION
+
+/**
+ * Interface for getting access to message containers.
+ *
+ * @lib imcvengine.dll
+ * @since 5.0
+ */
+class MIMCVEngineChatInterface
+ {
+ public: // Interface
+
+ /**
+ * Provide access to chat messages. If messageContainer does not exists
+ * creates one.
+ * @param aServiceId Part of identifier to identify container.
+ * @param aTargetId Part of identifier to identify container.
+ * @param aType. Preferred type of container. If ENoneContainer,
+ * resolved by container.
+ * @return Read interface to container
+ */
+ virtual MIMCVEngineMessageReadInterface& MessageReadInterfaceL(
+ TInt aServiceId,
+ const TDesC& aTargetId = KSendBufferId,
+ const TDesC& aDisplayName = KNullDesC ,
+ const TDesC8& aContactLink = KNullDesC8,
+ MIMCVEngineMessageReadInterface::TContainerType aType = MIMCVEngineMessageReadInterface::ENoneContainer
+ ) = 0;
+
+ /**
+ * Provide access to append chat messages.
+ * If messageContainer does not exists, creates one.
+ * @param aServiceId Part of identifier to identify container.
+ * @param aTargetId Part of identifier to identify container.
+ * @param aType. Preferred type of container. If ENoneContainer,
+ * resolved by container.
+ * @return Write interface to container
+ */
+ virtual MIMCVEngineMessageWriteInterface& MessageWriteInterfaceL(
+ TInt aServiceId,
+ const TDesC& aTargetId = KSendBufferId,
+ const TDesC& aDisplayName = KNullDesC ,
+ const TDesC8& aContactLink = KNullDesC8 ,
+ MIMCVEngineMessageReadInterface::TContainerType aType =
+ MIMCVEngineMessageReadInterface::ENoneContainer ) = 0;
+
+
+ /**
+ * Delete identified chat container
+ * @param aServiceId Part of identifier to identify container.
+ * @param aTargetId Part of identifier to identify container.
+ */
+ virtual void DeleteChatL( TInt aServiceId,
+ const TDesC& aTargetId = KSendBufferId ) = 0;
+
+
+
+ /**
+ * @see MIMCVEngineNewMsgObserver
+ */
+ virtual TInt ChatCount() const = 0 ;
+
+ /**
+ * Close all open containers.
+ */
+ virtual void CloseAllContainers() = 0;
+
+
+ /**
+ * Returns the Memory Handler
+ * @return Reference to MIMCVEngineBufferMemoryHandler
+ */
+ virtual MIMCVEngineBufferMemoryHandler& MemoryHandler() = 0;
+
+ /**
+ * Register observer for chat events. Remember to unregister
+ * when not needed
+ * @param aObserver Observer which is registered.
+ * @return KErrNone if succeed.
+ */
+ virtual void RegisterNewMsgObserver( MIMCVEngineNewMsgObserver* aObserver ) = 0;
+
+ /**
+ * Unregister observer for chat events.
+ * @param aObserver Observer which is unregistered
+ * @return KErrNone if found and unregistered.
+ */
+ virtual void UnregisterNewMsgObserver() = 0;
+
+
+ /**
+ * Register observer for conversations added/deleted events. Remember to unregister
+ * when not needed
+ * @param aObserver Observer which is registered.
+ * @return KErrNone if succeed.
+ */
+ virtual TInt RegisterChatListObserver( MIMCVEngineChatListObserver* aObserver ) = 0;
+
+ /**
+ * Unregister observer for conversations added/deleted.
+ * @param aObserver Observer which is unregistered
+ * @return KErrNone if found and unregistered.
+ */
+ virtual TInt UnregisterChatListObserver( MIMCVEngineChatListObserver* aObserver ) = 0;
+
+ /**
+ * @see MIMCVEngineChatInterface
+ */
+ virtual ~MIMCVEngineChatInterface()
+ {
+
+ };
+
+ };
+
+#endif // MIMCVENGINECHATINTERFACE_H
+
+// End of File