email/imap4mtm/imaptransporthandler/inc/msocketcontroller.h
changeset 0 72b543305e3a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/email/imap4mtm/imaptransporthandler/inc/msocketcontroller.h	Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,73 @@
+// Copyright (c) 2006-2009 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:
+//
+
+#ifndef __MSOCKETCONTROLLER_H__
+#define __MSOCKETCONTROLLER_H__
+
+#include <e32std.h>
+
+/**
+The observer API for the socket reader and writer. It is used by the socket 
+reader or writer to notify the socket controller of when either the input or
+output stream has been closed. It also provides name and port info for the
+remote host.
+@internalTechnology
+@prototype
+*/
+class MSocketController
+	{
+public:
+	/** The TStreamType enumerates the types of streams. */
+	enum TStreamType
+		{
+		/** The input stream. */
+		EInputStream = 0,
+		/** The output stream. */
+		EOutputStream
+		};	
+
+public:
+	/**
+	This notifies the socket controller that either the input or the output 
+	stream is closed. That stream is no longer valid.
+	@param aError The error code explaining why the stream has closed.
+				  A value of KErrNone indicates that the stream 
+				  observer requested that the stream be closed.
+	@param aStreamType The stream that has been closed.
+	*/
+	virtual void StreamClosed(TInt aError, MSocketController::TStreamType aStreamType) =0;
+	/**
+	This notifies the socket controller that either the input or the output
+	stream has been suspended.
+	@param aStreamType The stream that has been suspended.
+	*/
+	virtual void StreamSuspended(MSocketController::TStreamType aSuspendedStream) =0;
+	/**
+	This notifies the socket controller that either the input or the output
+	stream has been resumed.
+	@param aStreamType The stream that has been resumed.
+	*/
+	virtual void StreamResumed(MSocketController::TStreamType aResumedStream) =0;
+	/**
+	Provides connection information to the socket controller.
+	@param aRemoteHost The remote host.
+	@param aRemotePort The remote port number.
+	@param aLocalPort The local port being used.
+	*/
+	virtual void ConnectionInfo(TDes8& aRemoteHost, TUint16& aRemotePort, TUint16& aLocalPort) =0;
+	};
+
+#endif	// __MSOCKETCONTROLLER_H__
+