Приложение 6.
Программный код RCCrawler. Полная версия.
RCCrawler. pro
QT += core network sql
QT -= gui
CONFIG += c++11
TARGET = RCCrawler
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
PRECOMPILED_HEADER = precompiled_headers. h
SOURCES += main. cpp \
objectcreator. cpp \
application_managers/applicationmanager. cpp \
application_finishers/applicationfinisher. cpp \
data_managers/datamanager. cpp \
data_structures/hostdata. cpp \
data_structures/pagearc. cpp \
threads/downloadingthread. cpp \
threads/parsingthread. cpp \
threads/rccbasethread. cpp \
data_managers/bmicdm. cpp \
data_structures/pagedata. cpp \
application_finishers/workisdoneaf. cpp \
application_managers/textfileam. cpp \
result_unloaders/resultunloader. cpp \
result_unloaders/gephisitegraphru. cpp \
threads/dt0.cpp \
threads/pt0.cpp \
result_unloaders/testru. cpp \
qreplytimeout. cpp \
rccsettings. cpp \
data_structures/pdlogitem. cpp \
robots_txt/robotstxt. cpp \
data_structures/robotstxtrule. cpp \
robots_txt/onlydisallowrobotstxt. cpp \
helpercreator. cpp \
application_finishers/timeoutaf. cpp \
robots_txt/dummyrobotstxt. cpp \
delayedpdpass. cpp \
data_structures/hostdownloaddata. cpp \
application_finishers/stopfileaf. cpp \
threads/routinethread. cpp \
threads/rt0.cpp \
data_structures/pdandpacreatedata. cpp \
rccapplication. cpp
HEADERS += \
includes. h \
objectcreator. h \
application_managers/applicationmanager. h \
application_finishers/applicationfinisher. h \
objects. h \
rccconsts. h \
data_managers/datamanager. h \
data_structures/hostdata. h \
data_structures/pagearc. h \
data_structures/pagedata. h \
threads/downloadingthread. h \
threads/parsingthread. h \
threads/rccbasethread. h \
data_structures/pdstore. h \
data_managers/bmicdm. h \
baseobjects. h \
data_structures/pastore. h \
application_finishers/workisdoneaf. h \
application_managers/textfileam. h \
result_unloaders/resultunloader. h \
result_unloaders/gephisitegraphru. h \
threads/dt0.h \
threads/pt0.h \
result_unloaders/testru. h \
qreplytimeout. h \
rccsettings. h \
data_structures/pdlogitem. h \
robots_txt/robotstxt. h \
data_structures/robotstxtrule. h \
robots_txt/onlydisallowrobotstxt. h \
helpers. h \
helpercreator. h \
application_finishers/timeoutaf. h \
robots_txt/dummyrobotstxt. h \
delayedpdpass. h \
data_structures/hostdownloaddata. h \
application_finishers/stopfileaf. h \
threads/routinethread. h \
threads/rt0.h \
precompiled_headers. h \
data_structures/pdandpacreatedata. h \
rccapplication. h
RESOURCES += \
resource. qrc
win32:INCLUDEPATH += $$PWD/../../../programming/boost
QMAKE_CXXFLAGS_RELEASE -= - O1 - O2
QMAKE_CXXFLAGS_RELEASE += - O3
baseobjects. h
#ifndef BASEOBJECTS_H
#define BASEOBJECTS_H
#include "data_managers/datamanager. h"
#include "threads/downloadingthread. h"
#include "threads/routinethread. h"
#include "threads/parsingthread. h"
#include "application_finishers/applicationfinisher. h"
#endif // BASEOBJECTS_H
delayedpdpass. h
#ifndef DELAYEDPDPASS_H
#define DELAYEDPDPASS_H
#include "includes. h"
#include "data_structures/pagedata. h"
class DelayedPDPass : public QObject
{
Q_OBJECT
public:
DelayedPDPass(PageData &pD, const int &timeout, QObject *parent = 0);
protected:
int _timeout;
PageData _pD;
signals:
void pDIsReady(PageData pD);
private slots:
void slotTimeout();
};
#endif // DELAYEDPDPASS_H
delayedpdpass. cpp
#include "delayedpdpass. h"
DelayedPDPass::DelayedPDPass(PageData &pD, const int &timeout, QObject *parent) :
QObject(parent),
_timeout(timeout),
_pD(pD)
{
QTimer::singleShot(_timeout, this, SLOT(slotTimeout()));
}
void DelayedPDPass::slotTimeout() {
emit pDIsReady(_pD);
this->deleteLater();
}
helpercreator. h
#ifndef HELPERCREATOR_H
#define HELPERCREATOR_H
#include "helpers. h"
class HelperCreator
{
public:
static RobotsTxt* robotsTxt(const QString& name);
static ApplicationFinisher* applicationFinisher(const QString& name);
private:
HelperCreator();
};
#endif // HELPERCREATOR_H
helpercreator. cpp
#include "helpercreator. h"
HelperCreator::HelperCreator()
{
}
RobotsTxt *HelperCreator::robotsTxt(const QString &name)
{
RobotsTxt *pobj;
if ("OnlyDisallowRobotsTxt" == name)
pobj = new OnlyDisallowRobotsTxt();
if ("DummyRobotsTxt" == name)
pobj = new DummyRobotsTxt();
if (nullptr == pobj)
{
qDebug() << "Wrong robots. txt class specified.";
qApp->exit();
}
return pobj;
}
ApplicationFinisher *HelperCreator::applicationFinisher(const QString &name)
{
ApplicationFinisher *pobj;
if ("WorkIsDoneAF" == name)
pobj = new WorkIsDoneAF();
if ("TimeoutAF" == name)
pobj = new TimeoutAF();
if ("StopFileAF" == name)
pobj = new StopFileAF();
if (nullptr == pobj)
{
qDebug() << "Wrong data manager specified.";
qApp->exit();
}
return pobj;
}
helpers. h
#ifndef HELPERS_H
#define HELPERS_H
#include "robots_txt/robotstxt. h"
#include "robots_txt/onlydisallowrobotstxt. h"
#include "robots_txt/dummyrobotstxt. h"
#include "application_finishers/workisdoneaf. h"
#include "application_finishers/timeoutaf. h"
#include "application_finishers/stopfileaf. h"
#endif // HELPERS_H
includes. h
#ifndef INCLUDES_H
#define INCLUDES_H
#include "precompiled_headers. h"
#include <boost/multi_index_container. hpp>
#include <boost/multi_index/ordered_index. hpp>
#include <boost/multi_index/hashed_index. hpp>
#include <boost/multi_index/member. hpp>
#include <boost/multi_index/composite_key. hpp>
#include "rccsettings. h"
#endif // INCLUDES_H
objectcreator. h
#ifndef OBJECTCREATOR_H
#define OBJECTCREATOR_H
#include "includes. h"
#include "objects. h"
#include "rccapplication. h"
class ApplicationManager;
class ObjectCreator
{
public:
static ApplicationManager* applicationManager(const QString& name);
static DataManager* dataManager(const QString& name);
static DownloadingThread* downloadingThread(const QString& name, DataManager* pdM);
static ParsingThread* parsingThread(const QString& name, DataManager* pdM);
static RoutineThread* storingThread(const QString& name, DataManager* pdM);
static ResultUnloader* resultUnloader(const QString& name, DataManager* pdM);
private:
ObjectCreator();
};
#endif // OBJECTCREATOR_H
#include "objectcreator. h"
ApplicationManager *ObjectCreator::applicationManager(const QString &name)
{
ApplicationManager *pobj;
if ("TextFileAM" == name)
pobj = new TextFileAM();
if (nullptr == pobj)
{
qDebug() << "Wrong application manager specified.";
qApp->exit();
}
return pobj;
}
DataManager *ObjectCreator::dataManager(const QString &name)
{
DataManager *pobj;
if ("BMICDM" == name)
pobj = new BMICDM();
if (nullptr == pobj)
{
qDebug() << "Wrong data manager specified.";
qApp->exit();
}
return pobj;
}
DownloadingThread *ObjectCreator::downloadingThread(const QString &name, DataManager* pdM)
{
DownloadingThread *pobj;
if ("DT0" == name)
pobj = new DT0(pdM);
if (nullptr == pobj)
{
qDebug() << "Wrong downloading thread specified.";
qApp->exit();
}
return pobj;
}
ParsingThread *ObjectCreator::parsingThread(const QString &name, DataManager* pdM)
{
ParsingThread *pobj;
if ("PT0" == name)
pobj = new PT0(pdM);
if (nullptr == pobj)
{
qDebug() << "Wrong downloading thread specified.";
qApp->exit();
}
return pobj;
}
RoutineThread *ObjectCreator::storingThread(const QString &name, DataManager* pdM)
{
RoutineThread *pobj;
if ("RT0" == name)
pobj = new RT0(pdM);
if (nullptr == pobj)
{
qDebug() << "Wrong storing thread specified.";
qApp->exit();
}
return pobj;;
}
ResultUnloader *ObjectCreator::resultUnloader(const QString &name, DataManager *pdM)
{
ResultUnloader *pobj;
if ("GephiSiteGraphRU" == name)
pobj = new GephiSiteGraphRU(pdM);
if ("TestRU" == name)
pobj = new TestRU(pdM);
if (nullptr == pobj)
{
qDebug() << "Wrong downloading thread specified.";
qApp->exit();
}
return pobj;
}
ObjectCreator::ObjectCreator()
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 |


