diff -r 000000000000 -r b16258d2340f applayerpluginsandutils/httptransportplugins/httptransporthandler/msocketfactory.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/applayerpluginsandutils/httptransportplugins/httptransporthandler/msocketfactory.h Tue Feb 02 01:09:52 2010 +0200 @@ -0,0 +1,94 @@ +// Copyright (c) 2003-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 __MSOCKETFACTORY_H__ +#define __MSOCKETFACTORY_H__ + +#include + +class MSocketConnectObserver; +class MSocketListenObserver; +class MSocketConnector; + +class MSocketFactory +/** +The MSocketFactory class provides an API to obtain connected sockets. There +are two methods of obtaining these connected sockets. The first is via a +listening service on a specified local port that receives connections. The +second method is a connecting service that initiates a connection to a +specified port on a specified remote host. + +The listening service requires an observer - an MSocketListenObserver. The +observer is notified of either a received connection or of any errors that +occur in the listening service. If a connection is received, the listening +service continues. If an error occurs the listening service stops. There can +be only a single listening service. Attempting to start a second service +will cause a panic. The listening service can be stopped at any time. + +The connecting service also requires an observer - an MSocketConnectObserver. +There can be many connecting services active at any one time. Each one has +an associated socket connector - MSocketConnector. This API allows each +connection request to be stopped at any time before the connection ends. The +connection is ended when the socket connect observer has been notified of +either a successful connection or of an error occuring during the connection. +Attempting to stop the socket connector after either of these notifications +will cause an access violation - the socket connector is no longer valid. +@see MSocketListenObserver +@see MSocketConnectObserver +@see MSocketConnector +*/ + { +public: // methods + +/** + This function requests that a listening service be started on the specified + port. This service listens for remote hosts making a connection with the + specified port. + @param aObserver The observer object for the listen service. + @param aPort The local port that should listen for connections. + @panic EBadSocketListenerState The listening service has already been started. +*/ + virtual void ListenL(MSocketListenObserver& aObserver, TUint16 aPort) =0; + +/** + Terminate the listening service. The listen observer will be notified on the + MSocketListenObserver::HandleListenError() API with an error code of + KErrCancel when the listen service has actual stopped. + @panic EInvariantFalse The listening service has not been started. +*/ + virtual void StopListen() =0; + +/** + Requests that a connection is attempted with the specified port on the + specified remote host. The IP address can be either a numeric address or a + host name. + @param aObserver The observer object for this connection. + @param aRemoteHost The host name/IP address of the remote client. + @param aRemotePort The port number of the remote client. + @return The socket connector that encapsulates the connection. + @leave KErrNoMemory +*/ + virtual MSocketConnector& ConnectL(MSocketConnectObserver& aObserver, const TDesC8& aRemoteHost, TUint16 aRemotePort) =0; + +private: // methods + +/** + Reserved function for future expansion. +*/ + virtual void MSocketFactory_Reserved() =0; + + }; + +#endif // __MSOCKETFACTORY_H__