Приложение 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