Files
@ 554dddd813d9
Branch filter:
Location: libtransport.git/backends/libcommuni/main.cpp - annotation
554dddd813d9
3.3 KiB
text/x-c++hdr
Updated changelog
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 1ebe5535c4f3 d2502858d6c0 bc3971f7d258 d2502858d6c0 bc3971f7d258 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 5424e5c686e6 5424e5c686e6 5424e5c686e6 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 d2502858d6c0 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 d2502858d6c0 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 5424e5c686e6 d2502858d6c0 d2502858d6c0 d2502858d6c0 | /*
* Copyright (C) 2008-2009 J-P Nurmi jpnurmi@gmail.com
*
* This example is free, and not covered by LGPL license. There is no
* restriction applied to their modification, redistribution, using and so on.
* You can study them, modify them, use them in your own program - either
* completely or partially. By using it you may give me some credits in your
* program, but you don't have to.
*/
#include "transport/config.h"
#include "transport/networkplugin.h"
#include "session.h"
#include <QtCore>
#include <QtNetwork>
#include "Swiften/EventLoop/Qt/QtEventLoop.h"
#include "ircnetworkplugin.h"
#include "singleircnetworkplugin.h"
#include "log4cxx/logger.h"
#include "log4cxx/consoleappender.h"
#include "log4cxx/patternlayout.h"
#include "log4cxx/propertyconfigurator.h"
#include "log4cxx/helpers/properties.h"
#include "log4cxx/helpers/fileinputstream.h"
#include "log4cxx/helpers/transcoder.h"
using namespace boost::program_options;
using namespace Transport;
using namespace log4cxx;
NetworkPlugin * np = NULL;
int main (int argc, char* argv[]) {
std::string host;
int port;
boost::program_options::options_description desc("Usage: spectrum [OPTIONS] <config_file.cfg>\nAllowed options");
desc.add_options()
("host,h", value<std::string>(&host), "host")
("port,p", value<int>(&port), "port")
;
try
{
boost::program_options::variables_map vm;
boost::program_options::store(boost::program_options::parse_command_line(argc, argv, desc), vm);
boost::program_options::notify(vm);
}
catch (std::runtime_error& e)
{
std::cout << desc << "\n";
exit(1);
}
catch (...)
{
std::cout << desc << "\n";
exit(1);
}
if (argc < 5) {
qDebug("Usage: %s <config>", argv[0]);
return 1;
}
// QStringList channels;
// for (int i = 3; i < argc; ++i)
// {
// channels.append(argv[i]);
// }
//
// MyIrcSession session;
// session.setNick(argv[2]);
// session.setAutoJoinChannels(channels);
// session.connectToServer(argv[1], 6667);
Config config;
if (!config.load(argv[5])) {
std::cerr << "Can't open " << argv[1] << " configuration file.\n";
return 1;
}
QCoreApplication app(argc, argv);
if (CONFIG_STRING(&config, "logging.backend_config").empty()) {
LoggerPtr root = log4cxx::Logger::getRootLogger();
#ifndef _MSC_VER
root->addAppender(new ConsoleAppender(new PatternLayout("%d %-5p %c: %m%n")));
#else
root->addAppender(new ConsoleAppender(new PatternLayout(L"%d %-5p %c: %m%n")));
#endif
}
else {
log4cxx::helpers::Properties p;
log4cxx::helpers::FileInputStream *istream = new log4cxx::helpers::FileInputStream(CONFIG_STRING(&config, "logging.backend_config"));
p.load(istream);
LogString pid, jid;
log4cxx::helpers::Transcoder::decode(boost::lexical_cast<std::string>(getpid()), pid);
log4cxx::helpers::Transcoder::decode(CONFIG_STRING(&config, "service.jid"), jid);
#ifdef _MSC_VER
p.setProperty(L"pid", pid);
p.setProperty(L"jid", jid);
#else
p.setProperty("pid", pid);
p.setProperty("jid", jid);
#endif
log4cxx::PropertyConfigurator::configure(p);
}
Swift::QtEventLoop eventLoop;
if (config.getUnregistered().find("service.irc_server") == config.getUnregistered().end()) {
np = new IRCNetworkPlugin(&config, &eventLoop, host, port);
}
else {
np = new SingleIRCNetworkPlugin(&config, &eventLoop, host, port);
}
return app.exec();
}
|