00001 /* 00002 * cobainlayer.cpp,v 1.17 2003/11/19 11:03:08 mattid Exp 00003 * 00004 * COBAIN - Communications API for EPOC Environments 00005 * Copyright (C) 2002-2003 Matti Dahlbom, Matti Kokkola 00006 * 00007 * This library is free software; you can redistribute it and/or 00008 * modify it under the terms of the GNU Lesser General Public 00009 * License as published by the Free Software Foundation; either 00010 * version 2.1 of the License, or (at your option) any later version. 00011 * 00012 * This library is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 * Lesser General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU Lesser General Public 00018 * License along with this library; if not, write to the Free Software 00019 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00020 * 00021 * Contact: Matti Dahlbom <matti@777-team.org> 00022 * Matti Kokkola <matti.kokkola@iki.fi> 00023 */ 00024 00025 #include <flogger.h> 00026 #include <e32svr.h> 00027 00028 #include "cobain.h" 00029 #include "clientsession.h" 00030 #include "bluetoothdriver.h" 00031 #include "clientservercommon.h" 00032 00033 EXPORT_C void CCobainLayer::Log(const TDesC &aMessage, TFileLoggingMode aMode) 00034 { 00035 #ifdef __WINS__ 00036 RDebug::Print(aMessage); 00037 #else 00038 RFileLogger::Write(KClientLogdir, KClientLogfile, aMode, aMessage); 00039 #endif 00040 } 00041 00042 CCobainLayer::CCobainLayer() : CBase() 00043 { 00044 CCobainLayer:: Log(_L("### CCobainLayer constructed"), EFileLoggingModeOverwrite); 00045 } 00046 00047 CCobainLayer::~CCobainLayer() 00048 { 00049 delete iClientSession; 00050 } 00051 00052 void CCobainLayer::ConstructL() 00053 { 00054 // create client session and attempt to connect it to server 00055 iClientSession = new (ELeave) RCobainClientSession(); 00056 iClientSession->ConstructL(); 00057 } 00058 00059 EXPORT_C CCobainLayer * CCobainLayer::NewL() 00060 { 00061 CCobainLayer *c = new(ELeave) CCobainLayer(); 00062 CleanupStack::PushL(c); 00063 c->ConstructL(); 00064 CleanupStack::Pop(); // c 00065 return c; 00066 } 00067 00068 EXPORT_C MNetworkDriver* CCobainLayer::GetDriverL(TProtocol aDriverProtocol) 00069 { 00070 CBTDriver *driver; 00071 00072 switch( aDriverProtocol ) { 00073 case EBluetooth: 00074 // create new bluetooth driver and return it 00075 driver = new (ELeave) CBTDriver(*iClientSession); 00076 return driver; 00077 break; 00078 default: 00079 User::Leave(KErrNotFound); 00080 break; 00081 } 00082 00083 return NULL; 00084 }
1.3.5