diff -r 89d6a7a84779 -r 25a17d01db0c Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/_eikecho_8cpp-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/_eikecho_8cpp-source.html Fri Jan 22 18:26:19 2010 +0000 @@ -0,0 +1,225 @@ + + +TB10.1 Example Applications: examples/Networking/TcpIp/EchoClientUI/Eikecho.cpp Source File + + + + +

examples/Networking/TcpIp/EchoClientUI/Eikecho.cpp

00001 // Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+00002 // All rights reserved.
+00003 // This component and the accompanying materials are made available
+00004 // under the terms of "Eclipse Public License v1.0"
+00005 // which accompanies this distribution, and is available
+00006 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
+00007 //
+00008 // Initial Contributors:
+00009 // Nokia Corporation - initial contribution.
+00010 //
+00011 // Contributors:
+00012 //
+00013 // Description:
+00014 // EIKON interface to ECHOENG
+00015 // Definitions of CConsoleControl, CEchoAppUi, 
+00016 // CEchoDocument, CEchoApplication
+00017 //
+00018 
+00019 #include "Eikecho.h"
+00020 #include <eikstart.h>
+00021 
+00022 
+00023 CConsoleControl* CConsoleControl::NewL(CEchoEngine* aEchoEngine)
+00024         {
+00025         CConsoleControl* self=new (ELeave) CConsoleControl;
+00026         CleanupStack::PushL(self);
+00027         self->ConstructL(aEchoEngine);
+00028         CleanupStack::Pop();
+00029         return self;
+00030         }
+00031 
+00032 void CConsoleControl::ConstructL(CEchoEngine* aEchoEngine)
+00033         {
+00034         iEchoEngine=aEchoEngine;
+00035     CreateWindowL();
+00036     Window().SetShadowDisabled(ETrue);
+00037     Window().SetBackgroundColor(KRgbGray);
+00038     EnableDragEvents();
+00039     SetExtentToWholeScreen();
+00040         SetBlank();
+00041     iConsole=new(ELeave) CEikConsoleScreen;
+00042         _LIT(KEikEcho,"EikEcho");
+00043         iConsole->ConstructL(KEikEcho,0);
+00044         iConsole->SetHistorySizeL(10,10);
+00045         }
+00046 
+00047 CConsoleControl::~CConsoleControl()
+00048         {
+00049         delete iConsole;
+00050         }
+00054 void CConsoleControl::ActivateL()
+00055         {
+00056         CCoeControl::ActivateL();
+00057         iConsole->SetKeepCursorInSight(TRUE);
+00058         iConsole->DrawCursor();
+00059         iConsole->ConsoleControl()->SetFocus(ETrue, EDrawNow); 
+00060         }
+00061 
+00062 TKeyResponse CConsoleControl::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType)
+00063 // The key event handler
+00064     {
+00065         if (aType!=EEventKey)
+00066                 return(EKeyWasConsumed);
+00067     TInt aChar=aKeyEvent.iCode;
+00068 
+00069         if (aChar == '3')
+00070                 // Connect using an IP address
+00071                 {
+00072                 _LIT(KConnecting1,"Attempting connection to KInetAddr\n");
+00073                 iConsole->Printf(KConnecting1);
+00074                 iEchoEngine->ConnectTo(KInetAddr);
+00075                 }
+00076         else if (aChar == '2')
+00077                 {
+00078                 // Connect using a hostname, calling DNS first to resolve this to an IP address
+00079                 _LIT(KConnecting2,"Attempting connection to KInetHostName\n");
+00080                 iConsole->Printf(KConnecting2);
+00081                 iEchoEngine->ConnectL(KInetHostName);
+00082                 }
+00083         else if (aChar == '1')
+00084                 {
+00085                 // Connect using an IP address, obtaining the symbolic name for this IP address first.
+00086                 _LIT(KConnecting3,"Testing GetHostByAddress and attempting connection\n");
+00087                 iConsole->Printf(KConnecting3);
+00088                 iEchoEngine->TestGetByAddrL(KInetAddr);
+00089                 }
+00090         else iEchoEngine->Write(aChar); // Send input character to echo server
+00091         
+00092     return(EKeyWasConsumed);
+00093     }
+00094 
+00095 
+00096 
+00097 
+00098 // The following functions are to implement MUINotify
+00099 
+00100 void CConsoleControl::PrintNotify(const TDesC& aDes) 
+00101 // Print up calls: write information to screen
+00102         {
+00103         iConsole->Printf(aDes);
+00104         };
+00105 
+00106 void CConsoleControl::PrintNotify(TInt aInt)
+00107         {
+00108         iConsole->Printf(KIntFormat,aInt);
+00109         };
+00110 
+00111 void CConsoleControl::ErrorNotifyL(const TDesC& aErrMessage, TInt aErrCode)
+00112 // Error up call: inform user and quit
+00113         {
+00114         _LIT(KErrorTitle,"Communications error ");
+00115         TBuf<25> errorTitleCode(KErrorTitle);
+00116         errorTitleCode.AppendNum(aErrCode);
+00117         CEikonEnv::Static()->InfoWinL(errorTitleCode,aErrMessage);
+00118         CBaActiveScheduler::Exit();
+00119         }
+00123 CEchoAppUi::CEchoAppUi(CEchoEngine* aEchoEngine)
+00124                 : iEchoEngine(aEchoEngine)
+00125         {
+00126         }
+00127 
+00128 void CEchoAppUi::ConstructL()
+00129 // Set up control and engine
+00130     {
+00131     BaseConstructL();
+00132         CreateConsoleL();
+00133         iEchoEngine->ConstructL(iConsoleControl);
+00134         _LIT(KCommands,"\nList of Commands:\n\
+00135 3 - Test connecting with IP\n\
+00136 2 - Test DNS lookup\n\
+00137 1 - Test Get hostname from IP address\n\n");
+00138 
+00139         iConsoleControl->PrintNotify(KCommands);
+00140     }
+00141 
+00142 void CEchoAppUi::CreateConsoleL()
+00143         {
+00144         iConsoleControl=CConsoleControl::NewL(iEchoEngine);
+00145         AddToStackL(iConsoleControl);
+00146         iConsoleControl->ActivateL();
+00147         }
+00148 
+00149 CEchoAppUi::~CEchoAppUi()
+00150         {
+00151         RemoveFromStack(iConsoleControl);
+00152     delete iConsoleControl;
+00153         }
+00154 
+00155 void CEchoAppUi::HandleCommandL(TInt aCommand)
+00156 // Command handling
+00157         {
+00158     switch (aCommand)
+00159         {
+00160         // When Exit chosen, stop engine and quit
+00161         case EEikCmdExit:
+00162                 iEchoEngine->Stop();
+00163                 Exit();
+00164         default:;
+00165                 }
+00166         }
+00167 
+00168 /*
+00169  Two-phase construction
+00170  CEchoDocument: document class, which owns the engine
+00171 */
+00172 CEchoDocument::CEchoDocument(CEikApplication& aApp)
+00173         : CEikDocument(aApp) { }
+00174 
+00175 CEchoDocument* CEchoDocument::NewL(CEikApplication& aApp)
+00176         {
+00177         CEchoDocument* self=new (ELeave) CEchoDocument(aApp);
+00178         CleanupStack::PushL(self);
+00179         self->ConstructL();
+00180         CleanupStack::Pop();
+00181         return self;
+00182         }
+00183 
+00184 void CEchoDocument::ConstructL()
+00185         {
+00186         iEchoEngine = new (ELeave) CEchoEngine;
+00187         }
+00188 
+00189 CEchoDocument::~CEchoDocument()
+00190         {
+00191         delete iEchoEngine;
+00192         }
+00193 
+00194 CEikAppUi* CEchoDocument::CreateAppUiL()
+00195         {
+00196     return(new(ELeave) CEchoAppUi(iEchoEngine));
+00197         }
+00198 
+00199 
+00200 TUid CEchoApplication::AppDllUid() const
+00201         {
+00202         return(KUidEikEchoApp);
+00203         }
+00204 
+00205 CApaDocument* CEchoApplication::CreateDocumentL()
+00206         {
+00207         return CEchoDocument::NewL(*this);
+00208         }
+00209 
+00213 EXPORT_C CApaApplication* NewApplication()
+00214         {
+00215         return(new CEchoApplication);
+00216         }
+00217 
+00218 GLDEF_C TInt E32Main()                                          
+00219         {
+00220         return EikStart::RunApplication(NewApplication);
+00221         }
+00222 
+

Generated on Thu Jan 21 10:33:00 2010 for TB10.1 Example Applications by  + +doxygen 1.5.3
+ +