diff -r 000000000000 -r 307788aac0a8 realtimenetprots/sipfw/ProfileAgent/ProxyResolver/src/CProxyQuery.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/realtimenetprots/sipfw/ProfileAgent/ProxyResolver/src/CProxyQuery.h Tue Feb 02 01:03:15 2010 +0200 @@ -0,0 +1,142 @@ +/* +* Copyright (c) 2005-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: +* Name : CProxyQuery.h +* Part of : ProxyResolver +* Version : SIP/4.0 +* +*/ + + + + +/** + @internalComponent +*/ + +#ifndef CPROXYQUERY_H +#define CPROXYQUERY_H + +// INCLUDES +#include +#include +#include +#include +#include "MConnObserver.h" +#include "CProxyConnectionContainer.h" + +// FROWARD DECLARATIONS +class MQueryObserver; +class MSIPProxyResolverObserver; +class CProxyConnectionContainer; + +class CProxyQuery : + public CBase, + public MConnObserver + { +public: + + static CProxyQuery* NewL( TUint aRequestId, + TUint32 aIAPId, + MSIPProxyResolverObserver& aResolverObserver, + MQueryObserver& aQueryObserver, + RSocketServ& aServer ); + + static CProxyQuery* NewLC( TUint aRequestId, + TUint32 aIAPId, + MSIPProxyResolverObserver& aResolverObserver, + MQueryObserver& aQueryObserver, + RSocketServ& aServer ); + // destructor + ~CProxyQuery (); + + // get the RConnection object + RConnection & Connection(); + + // flag for opening status + TBool ConnectionOpened(); + + // ioctl queries passed ok + void ResolvingRequestComplete(); + + // ioctl queries failed + void ResolvingRequestFailed( TInt aError ); + + //get the request id + TUint RequestId() const; + + // get the IAP id + TUint32 IAPId() const; + + // callback fron CProxyConnectionContainer indicating failure + void ErrorOccured( TInt aError ); + + // callback fron CProxyConnectionContainer: RConnection is opened + void ConnectionReady(); + + //Get the current query type + TUint CurrentQueryType(); + + // access to the current buffer (TSipServerAddrBuf/TSipServerDomainBuf) + TDes8* GetBuf(); + + //Increase the index with one + void SetNextIndex(); + + // Set current query type + void SetQueryType(const TUint aNewType); + + //Add results of ioctl query to result array + void AddResultsL(); + +public: // Data + + static const TInt iOffset; + TSglQueLink iLink; + +private: // Private methods + + void ConstructL(); + CProxyQuery( TUint aRequestId, + TUint32 aIAPId, + MSIPProxyResolverObserver& aResolverObserver, + MQueryObserver& aQueryObserver, + RSocketServ& aServer ); + +private: // Data + + TUint iRequestId; // request id + TUint32 iIAPId; // IAP id + MSIPProxyResolverObserver& iResolverObserver; // observer (user) + MQueryObserver& iQueryObserver; // observer (CProxyResolveActor) + CProxyConnectionContainer* iConnCont; // RConnection class + TBool iConnectionOpened; // flag for RConnection status + RSocketServ& iServer; // socket server + TUint iCurrentQueryType; // current query type + TSipServerAddrBuf iSipServerAddrBuf; //Address buffer + TSipServerDomainBuf iSipServerDomainBuf; //Domain name buffer + CDesC8ArrayFlat* iResultsArray; // result array + +private: + +#ifdef CPPUNIT_TEST + friend class CProxyQueryTest; + friend class CProxyResolvingQueueTest; + friend class CProxyResolveActorTest; +#endif + }; + +#endif // CPROXYQUERY_H + +// End of File