/*
- Copyright (C) 2006-2008
+ Copyright (C) 2006-2008 by Intra2net AG
intra2net.com
- This program 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 2 of the License, or
- (at your option) any later version.
+ The software in this package is distributed under the GNU General
+ Public License version 2 (with a special exception described below).
- This program 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.
+ A copy of GNU General Public License (GPL) is included in this distribution,
+ in the file COPYING.GPL.
- You should have received a copy of the GNU 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
+ 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.
+
+ 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 <libxml++/libxml++.h>
#include <fstream>
#include <list>
#include <stdexcept>
+#include <string>
#include <boost/lexical_cast.hpp>
#ifdef HAVE_CONFIG_H
#include "config.h"
assert(arg->get_attribute("type"));
a.type=get_type(root, arg->get_attribute("type")->get_value());
- if(arg->get_attribute("default"))
- a.defaultArg=arg->get_attribute("default")->get_value();
+ // this would be the nice way of solving the problem of default arguments
+ // but currently the output of gccxml is unreliable (e.g. namespace only
+ // sometimes available)
+ // if(arg->get_attribute("default"))
+ // a.defaultArg=arg->get_attribute("default")->get_value();
+
+ // so we need to get the def. arg. via attribute
+ // which is previously set by the macro LIBT2N_DEFAULT_ARG(type,value)
+ if(arg->get_attribute("attributes"))
+ {
+ std::string attr=arg->get_attribute("attributes")->get_value();
+ const std::string look_for = "gccxml(libt2n-default-arg,";
+
+ if (attr.compare(0,look_for.size(),look_for) == 0)
+ a.defaultArg=attr.substr(look_for.size(),attr.size()-look_for.size()-1);
+ }
// todo: ugly - could be any other error
if (a.type.name.empty())
o << "class " << groupClass(group) << "_client : public libt2n::command_client\n"
<< "{\n"
<< "public:\n"
- << groupClass(group) << "_client(libt2n::client_connection &_c,\n"
+ << groupClass(group) << "_client(libt2n::client_connection *_c,\n"
<< " long long _command_timeout_usec=command_timeout_usec_default,\n"
<< " long long _hello_timeout_usec=hello_timeout_usec_default)\n"
<< " : libt2n::command_client(_c,_command_timeout_usec,_hello_timeout_usec)\n"