zeroconfclient.h

00001 /*
00002     Resolvr - A Zero Configuration networking framework for Symbian OS
00003     Copyright (C) 2007 Novel Interactions Ltd.
00004 
00005     This program is free software; you can redistribute it and/or modify
00006     it under the terms of the GNU General Public License as published by
00007     the Free Software Foundation; either version 2 of the License, or
00008     (at your option) any later version.
00009 
00010     This program is distributed in the hope that it will be useful,
00011     but WITHOUT ANY WARRANTY; without even the implied warranty of
00012     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013     GNU General Public License for more details.
00014 
00015     You should have received a copy of the GNU General Public License along
00016     with this program; if not, write to the Free Software Foundation, Inc.,
00017     51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
00018 */
00019 
00020 #ifndef __ZEROCONFCLIENT_H__
00021 #define __ZEROCONFCLIENT_H__
00022 
00023 #include <e32base.h>
00024 #include <zeroconf/zeroconfprotocols.h>
00025 
00026 class TInetAddr;
00027 
00028 namespace Zeroconf
00029         {
00030 
00031         class TZeroconfMessage;
00032         class CServiceType;
00033         class CService;
00034 
00048         class RZeroconfSession : public RSessionBase
00049                 {
00050         public:
00051                 
00061                 IMPORT_C void OpenL(TUint32& aIapId);
00062                 
00071                 IMPORT_C TVersion ServerVersionL();
00072                 
00083                 IMPORT_C void RecieveMessagesL(TBool aRecMessages);
00084                 
00095                 IMPORT_C void MessageNotify(TRequestStatus& aStatus);
00096                 
00104                 IMPORT_C void MessageNotifyCancel();
00105                 
00115                 IMPORT_C void NextMessageL(TZeroconfMessage& aMessage);
00116                 
00126                 IMPORT_C void ServiceTypesL(RPointerArray<CServiceType>& aServiceTypes);
00127 
00140                 IMPORT_C CService* ResolveServiceL(const TDesC& aServiceName, const TDesC& aServiceType, Zeroconf::TServiceProtocol aProtocol);
00141 
00153                 IMPORT_C void ResolveService(const TDesC& aServiceName, const TDesC& aServiceType, Zeroconf::TServiceProtocol aProtocol, TRequestStatus& aStatus);
00154                 
00167                 IMPORT_C CService* ServiceL(const TDesC& aServiceName, const TDesC& aServiceType, Zeroconf::TServiceProtocol aProtocol);
00168                 
00179                 IMPORT_C TInt Resolve(const TDesC& aHost, TInetAddr& aAddr);
00180                 
00191                 IMPORT_C void Resolve(const TDesC& aHost, TInetAddr& aAddr, TRequestStatus& aStatus);
00192 
00200                 IMPORT_C void CancelResolve();
00201 
00214                 IMPORT_C void HintServiceL(const TDesC& aServiceType, Zeroconf::TServiceProtocol aProtocol);
00215                 
00224                 IMPORT_C void HintServiceTypesL();
00225                 };
00226         
00227         }
00228 
00229 #endif /* __ZEROCONFCLIENT_H__ */