summaryrefslogtreecommitdiffstats
path: root/apps/ktupnptest
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-01-20 02:37:40 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-01-20 02:37:40 +0000
commit9ad5c7b5e23b4940e7a3ea3ca3a6fb77e6a8fab0 (patch)
treed088b5210e77d9fa91d954d8550e00e372b47378 /apps/ktupnptest
downloadktorrent-9ad5c7b5e23b4940e7a3ea3ca3a6fb77e6a8fab0.tar.gz
ktorrent-9ad5c7b5e23b4940e7a3ea3ca3a6fb77e6a8fab0.zip
Updated to final KDE3 ktorrent release (2.2.6)
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/ktorrent@1077377 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'apps/ktupnptest')
-rw-r--r--apps/ktupnptest/Makefile.am9
-rw-r--r--apps/ktupnptest/main.cpp98
-rw-r--r--apps/ktupnptest/mainwidget.ui76
-rw-r--r--apps/ktupnptest/upnptestapp.cpp87
-rw-r--r--apps/ktupnptest/upnptestapp.h58
5 files changed, 328 insertions, 0 deletions
diff --git a/apps/ktupnptest/Makefile.am b/apps/ktupnptest/Makefile.am
new file mode 100644
index 0000000..95cfa6e
--- /dev/null
+++ b/apps/ktupnptest/Makefile.am
@@ -0,0 +1,9 @@
+INCLUDES = -I$(srcdir)/../../libktorrent -I$(srcdir)/../.. $(all_includes)
+METASOURCES = AUTO
+bin_PROGRAMS = ktupnptest
+
+ktupnptest_SOURCES = main.cpp upnptestapp.cpp mainwidget.ui
+ktupnptest_LDADD = ../../plugins/upnp/libktupnp.la \
+ ../../libktorrent/libktorrent.la
+noinst_HEADERS = upnptestapp.h
+KDE_CXXFLAGS = $(USE_EXCEPTIONS) $(USE_RTTI)
diff --git a/apps/ktupnptest/main.cpp b/apps/ktupnptest/main.cpp
new file mode 100644
index 0000000..c2629ef
--- /dev/null
+++ b/apps/ktupnptest/main.cpp
@@ -0,0 +1,98 @@
+/***************************************************************************
+ * Copyright (C) 2005 by Joris Guisson *
+ * *
+ * 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. *
+ * *
+ * 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. *
+ * *
+ * 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., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
+ ***************************************************************************/
+#include <stdio.h>
+#include <stdlib.h>
+#include <klocale.h>
+#include <kaboutdata.h>
+#include <kapplication.h>
+#include <kcmdlineargs.h>
+#include <libktorrent/functions.h>
+
+
+#include "upnptestapp.h"
+
+using namespace kt;
+using namespace bt;
+
+static const char description[] =
+ I18N_NOOP("A KDE KPart Application");
+
+static const char version[] = "1.3dev";
+
+static KCmdLineOptions options[] =
+{
+// { "+[URL]", I18N_NOOP( "Document to open" ), 0 },
+ KCmdLineLastOption
+};
+
+
+
+
+int main(int argc,char** argv)
+{
+ Globals::instance().setDebugMode(true);
+ KAboutData about("ktupnptest", I18N_NOOP("KTUPnPTest"), version, description,
+ KAboutData::License_GPL, "(C) 2005 Joris Guisson", 0,
+ "http://ktorrent.org/");
+ KCmdLineArgs::init(argc, argv,&about);
+ KCmdLineArgs::addCmdLineOptions( options );
+ KApplication app;
+ Globals::instance().initLog(kt::DataDir() + "ktupnptest.log");
+ UPnPTestApp* mwnd = new UPnPTestApp();
+
+ app.setMainWidget(mwnd);
+ mwnd->show();
+ app.exec();
+ Globals::cleanup();
+ return 0;
+
+ /*
+ if (argc >= 2)
+ {
+ kt::UPnPRouter router(QString::null,"http://foobar.com");
+ kt::UPnPDescriptionParser dp;
+
+ if (!dp.parse(argv[1],&router))
+ {
+ Out() << "Cannot parse " << QString(argv[1]) << endl;
+ }
+ else
+ {
+ Out() << "Succesfully parsed the UPnP contents" << endl;
+ router.debugPrintData();
+ }
+ }
+
+
+ Out() << "Doing second test" << endl;
+ UPnPMCastSocket mcast;
+ UPnPRouter* r = mcast.parseResponse(QCString(test_ps));
+ if (r)
+ {
+ Out() << "Succesfully parsed test_ps" << endl;
+ delete r;
+ }
+ else
+ {
+ Out() << "Failed to parse test_ps" << endl;
+ }
+ */
+
+}
diff --git a/apps/ktupnptest/mainwidget.ui b/apps/ktupnptest/mainwidget.ui
new file mode 100644
index 0000000..cb375f8
--- /dev/null
+++ b/apps/ktupnptest/mainwidget.ui
@@ -0,0 +1,76 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>MainWidget</class>
+<widget class="QWidget">
+ <property name="name">
+ <cstring>MainWidget</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>600</width>
+ <height>480</height>
+ </rect>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QTextBrowser">
+ <property name="name">
+ <cstring>output</cstring>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout1</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>spacer1</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>61</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="KPushButton">
+ <property name="name">
+ <cstring>test_btn</cstring>
+ </property>
+ <property name="text">
+ <string>Test</string>
+ </property>
+ </widget>
+ <widget class="KPushButton">
+ <property name="name">
+ <cstring>close_btn</cstring>
+ </property>
+ <property name="text">
+ <string>Close</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+</widget>
+<customwidgets>
+</customwidgets>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+ <includehint>kpushbutton.h</includehint>
+ <includehint>kpushbutton.h</includehint>
+</includehints>
+</UI>
diff --git a/apps/ktupnptest/upnptestapp.cpp b/apps/ktupnptest/upnptestapp.cpp
new file mode 100644
index 0000000..d50b314
--- /dev/null
+++ b/apps/ktupnptest/upnptestapp.cpp
@@ -0,0 +1,87 @@
+/***************************************************************************
+ * Copyright (C) 2005 by Joris Guisson *
+ * *
+ * 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. *
+ * *
+ * 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. *
+ * *
+ * 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., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
+ ***************************************************************************/
+#include <kpushbutton.h>
+#include <klocale.h>
+#include <kapplication.h>
+#include <kmessagebox.h>
+#include <qtextbrowser.h>
+#include <util/error.h>
+#include "upnptestapp.h"
+#include "mainwidget.h"
+
+using namespace bt;
+using namespace kt;
+
+UPnPTestApp::UPnPTestApp(QWidget *parent, const char *name)
+ : KMainWindow(parent, name)
+{
+ sock = new UPnPMCastSocket(true);
+ connect(sock,SIGNAL(discovered( UPnPRouter* )),this,SLOT(discovered( UPnPRouter* )));
+ mwnd = new MainWidget(this);
+ setCentralWidget(mwnd);
+ connect(mwnd->test_btn,SIGNAL(clicked()),this,SLOT(onTestBtn()));
+ connect(mwnd->close_btn,SIGNAL(clicked()),this,SLOT(onCloseBtn()));
+ bt::Log & lg = bt::Globals::instance().getLog(0);
+ lg.addMonitor(this);
+ Out() << "UPnPTestApp started up !" << endl;
+}
+
+
+UPnPTestApp::~UPnPTestApp()
+{
+ sock->deleteLater();
+}
+
+void UPnPTestApp::discovered(kt::UPnPRouter* router)
+{
+ try
+ {
+ router->forward(net::Port(9999,net::TCP,false));
+ }
+ catch (Error & e)
+ {
+ KMessageBox::error(this,e.toString());
+ }
+}
+
+void UPnPTestApp::onTestBtn()
+{
+ sock->discover();
+}
+
+void UPnPTestApp::onCloseBtn()
+{
+ kapp->quit();
+}
+
+bool UPnPTestApp::queryExit()
+{
+ bt::Log & lg = bt::Globals::instance().getLog(0);
+ lg.removeMonitor(this);
+ return true;
+}
+
+void UPnPTestApp::message(const QString& line, unsigned int arg)
+{
+ mwnd->output->append(line);
+}
+
+
+#include "upnptestapp.moc"
diff --git a/apps/ktupnptest/upnptestapp.h b/apps/ktupnptest/upnptestapp.h
new file mode 100644
index 0000000..6554687
--- /dev/null
+++ b/apps/ktupnptest/upnptestapp.h
@@ -0,0 +1,58 @@
+/***************************************************************************
+ * Copyright (C) 2005 by Joris Guisson *
+ * *
+ * 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. *
+ * *
+ * 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. *
+ * *
+ * 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., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
+ ***************************************************************************/
+#ifndef UPNPTESTAPP_H
+#define UPNPTESTAPP_H
+
+#include <kmainwindow.h>
+#include <libktorrent/util/log.h>
+#include <libktorrent/torrent/globals.h>
+#include <plugins/upnp/upnprouter.h>
+#include <plugins/upnp/upnpdescriptionparser.h>
+#include <plugins/upnp/upnpmcastsocket.h>
+#include <interfaces/logmonitorinterface.h>
+
+class MainWidget;
+
+using kt::UPnPRouter;
+
+/**
+ @author Joris Guisson <[email protected]>
+*/
+class UPnPTestApp : public KMainWindow, public kt::LogMonitorInterface
+{
+ Q_OBJECT
+public:
+ UPnPTestApp(QWidget *parent = 0, const char *name = 0);
+ virtual ~UPnPTestApp();
+
+ virtual void message(const QString& line, unsigned int arg);
+ bool queryExit();
+
+private slots:
+ void discovered(UPnPRouter* router);
+ void onTestBtn();
+ void onCloseBtn();
+
+private:
+ kt::UPnPMCastSocket* sock;
+ MainWidget* mwnd;
+};
+
+#endif