X-Git-Url: http://developer.intra2net.com/git/?p=libt2n;a=blobdiff_plain;f=src%2Fclient_wrapper.cpp;h=350acfa0025b03d443bd18255fe2d254776ebc69;hp=5115d20137674d4d0f234b3dae6a86b3b4a23f3e;hb=44b4600fd51677e54dd167734ca9252b58237cda;hpb=a64066eb0e456c92c4c06959616443e531d4b39d diff --git a/src/client_wrapper.cpp b/src/client_wrapper.cpp index 5115d20..350acfa 100644 --- a/src/client_wrapper.cpp +++ b/src/client_wrapper.cpp @@ -1,71 +1,53 @@ -/*************************************************************************** - * Copyright (C) 2008 by Gerd v. Egidy * - * gve@intra2net.com * - * * - * This library is free software; you can redistribute it and/or modify * - * it under the terms of the GNU Lesser General Public License version * - * 2.1 as published by the Free Software Foundation. * - * * - * This library 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 Lesser General Public License for more details. * - * * - * You should have received a copy of the GNU Lesser General Public * - * License along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ +/* +Copyright (C) 2006 by Intra2net AG - Gerd v. Egidy -#include -#include +The software in this package is distributed under the GNU General +Public License version 2 (with a special exception described below). -#include +A copy of GNU General Public License (GPL) is included in this distribution, +in the file COPYING.GPL. -#include -#include -#include +As a special exception, if other files instantiate templates or use macros +or inline functions from this file, or you compile this file and link it +with other works to produce a work based on this file, this file +does not by itself cause the resulting work to be covered +by the GNU General Public License. -#include "../codegen/codegen-stubhead.hxx" +However the source code for this file must still be made available +in accordance with section (3) of the GNU General Public License. +This exception does not invalidate any other reasons why a work based +on this file might be covered by the GNU General Public License. +*/ #include -#include - namespace libt2n { -class testme : public command_client -{ - public: - - testme(client_connection &x, long long a, long long b) - : command_client(x,100000,10000) - { } - - void helloworld(const std::string& text) - { - std::cout << "Hello world, " << text << std::endl; - } -}; - const char* T2nSingletonWrapperMessages::NotInitializedMessage = "T2nSingletonWrapper used before setting initializing connection"; -typedef T2nSingletonWrapper wraptype; - -template<> -std::auto_ptr wraptype::SingletonObject = std::auto_ptr(); - -template<> -std::auto_ptr wraptype::WrappedConnection = std::auto_ptr(); - -void test(void) +/// get pointer to logging stream, returns NULL if no logging needed +std::ostream* ConnectionWrapper::get_logstream(log_level_values level) { + if (logstream && log_level >= level) + return logstream; + else + return NULL; +} +/// activate logging to the given stream. everything above the given level is logged. +void ConnectionWrapper::set_logging(std::ostream *_logstream, log_level_values _log_level) +{ + log_level=_log_level; + logstream=_logstream; +} - t2n_exec(&testme::helloworld)("gurke"); - +/// always call this when you got a new connection to transfer logging settings +void ConnectionWrapper::set_logging_on_connection(client_connection& c) +{ + if (logstream != NULL && log_level > none) + c.set_logging(logstream,log_level); } }