/*Copyright (C) 2013 Doubango Telecom * * This file is part of Open Source Doubango Framework. * * DOUBANGO is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * DOUBANGO is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with DOUBANGO. */ #include "rt_DDebug.h" #include "rt_String.h" #include "DDebug.h" using namespace doubango_rt::BackEnd; using namespace Platform; using namespace std; class DDebugCallbackProxy : public DDebugCallback { public: DDebugCallbackProxy(rtDDebugCallback^ pCallback) { m_pCallback = pCallback; } ~DDebugCallbackProxy() { } virtual int OnDebugInfo(const char* message) { return m_pCallback->m_pI->OnDebugInfo(rtString::toString(message)); } virtual int OnDebugWarn(const char* message) { return m_pCallback->m_pI->OnDebugWarn(rtString::toString(message)); } virtual int OnDebugError(const char* message) { return m_pCallback->m_pI->OnDebugError(rtString::toString(message)); } virtual int OnDebugFatal(const char* message) { return m_pCallback->m_pI->OnDebugFatal(rtString::toString(message)); } private: rtDDebugCallback^ m_pCallback; }; rtDDebugCallback::rtDDebugCallback(rtIDDebugCallback^ pI) { m_pI = pI; m_pCallback = new DDebugCallbackProxy(this); } rtDDebugCallback::~rtDDebugCallback() { rtSafeDelete(m_pCallback); } const DDebugCallback* rtDDebugCallback::getWrappedCallback() { return dynamic_cast(m_pCallback); }