diff -r 000000000000 -r 7f656887cf89 plugins/networking/tcpcsy/src/tcpcsy.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/plugins/networking/tcpcsy/src/tcpcsy.h Wed Jun 23 15:52:26 2010 +0100 @@ -0,0 +1,148 @@ +// tcpcsy.h +// +// Copyright (c) 2008 - 2010 Accenture. All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the "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: +// Accenture - Initial contribution +// + +#ifndef __TCPCSY_H__ +#define __TCPCSY_H__ + + +#include +#include "config.h" +#include "reader.h" +#include "writer.h" +#include "connector.h" +#include "listener.h" +#include "tcpcsylog.h" + + +// +// Constants. +// + +_LIT(KCsyName, "tcpcsy"); + + +// +// Forward declarations. +// +class CTcpPort; + + +// +// Class Definitions. +// + + +class CTcpPortFactory : public CSerial + { +public: + static CTcpPortFactory* NewL(); + ~CTcpPortFactory(); +private: // From CSerial. + virtual CPort * NewPortL(const TUint aUnit); + virtual void Info(TSerialInfo &aSerialInfo); + virtual TSecurityPolicy PortPlatSecCapability(TUint aPort) const; +private: + CTcpPortFactory(); + void ConstructL(); +private: + RSocketServ iSocketServ; + CConfig* iConfig; + TDblQue iPorts; +public: +#ifdef __FLOG_ACTIVE + +#ifdef LOG_CSY_EVENTS + RFileLogger iEventLogger; +#endif // LOG_CSY_EVENTS + +#ifdef LOG_CSY_TX + RFileLogger iTxLogger; +#endif // LOG_CSY_TX + +#ifdef LOG_CSY_RX + RFileLogger iRxLogger; +#endif // LOG_CSY_RX + +#endif // __FLOG_ACTIVE + }; + + +class CTcpPort : public CPort, public MConnectorObserver, public MListenerObserver, public MReaderObserver, public MWriterObserver + { +public: + static TInt LinkOffset(); + static CTcpPort* NewLC(CTcpPortFactory& aFactory, CConfig::TMode aMode, TUint aProtocolFamily, TUint aProtocol, const TInetAddr& aAddress, RSocketServ& aSocketServ); +public: // From CPort. + virtual void StartRead(const TAny* aClientBuffer, TInt aLength); + virtual void ReadCancel(); + virtual TInt QueryReceiveBuffer(TInt& aLength) const; + virtual void ResetBuffers(TUint aFlags); + virtual void StartWrite(const TAny* aClientBuffer, TInt aLength); + virtual void WriteCancel(); + virtual void Break(TInt aTime); + virtual void BreakCancel(); + virtual TInt GetConfig(TDes8& aDes) const; + virtual TInt SetConfig(const TDesC8& aDes); + virtual TInt SetServerConfig(const TDesC8& aDes); + virtual TInt GetServerConfig(TDes8& aDes); + virtual TInt GetCaps(TDes8& aDes); + virtual TInt GetSignals(TUint& aSignals); + virtual TInt SetSignalsToMark(TUint aSignals); + virtual TInt SetSignalsToSpace(TUint aSignals); + virtual TInt GetReceiveBufferLength(TInt& aLength) const; + virtual TInt SetReceiveBufferLength(TInt aSignals); + virtual void Destruct(); + virtual void FreeMemory(); + virtual void NotifySignalChange(TUint aSignalMask); + virtual void NotifySignalChangeCancel(); + virtual void NotifyConfigChange(); + virtual void NotifyConfigChangeCancel(); + virtual void NotifyFlowControlChange(); + virtual void NotifyFlowControlChangeCancel(); + virtual void NotifyBreak(); + virtual void NotifyBreakCancel(); + virtual void NotifyDataAvailable(); + virtual void NotifyDataAvailableCancel(); + virtual void NotifyOutputEmpty(); + virtual void NotifyOutputEmptyCancel(); + virtual TInt GetFlowControlStatus(TFlowControl& aFlowControl); + virtual TInt GetRole(TCommRole& aRole); + virtual TInt SetRole(TCommRole aRole); +public: // From MConnectorObserver. + virtual void ConnectionComplete(TInt aError); +public: // From MListenerObserver. + virtual void ListenComplete(TInt aError); +public: // From MReaderObserver. + virtual void ReadComplete(const TDesC8& aData); + virtual void ReadError(TInt aError); +public: // From MWriterObserver. + virtual void WriteComplete(TInt aError); +private: + virtual ~CTcpPort(); + CTcpPort(CTcpPortFactory& aFactory); + void ConstructL(CConfig::TMode aMode, TUint aProtocolFamily, TUint aProtocol, const TInetAddr& aAddress, RSocketServ& aSocketServ); +private: + TDblQueLink iLink; + CTcpPortFactory& iFactory; + RSocket iSocket; + TBool iSocketConnected; + CConnector* iConnector; + CListener* iListener; + CReader* iReader; + CWriter* iWriter; + RBuf8 iWriteBuf; + TInt iError; + TInetAddr iInetAddr; + TCommRole iRole; + }; + +#endif // __TCPCSY_H__