readerfactory.cpp

来自「把html转成txt 把html转成txt」· C++ 代码 · 共 43 行

CPP
43
字号
//---------------------------------------------------------------------------


#pragma hdrstop
#include "ReaderFactory.h"
#include "WriterFactory.h"
#include "RtfReader.h"
#include "HtmlReader.h"
#include "TextReader.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

namespace DoxEngine
{
	template <class T> class ReaderFactoryTemplate: public ReaderFactory
	{
		virtual ReadInterface* Create(std::istream &stream, WriterInterface &writer, DebugLog& newLog)
		{
      return new T(stream, writer, newLog);
    }
  };

	ReaderFactories& ReaderFactoriesSingleton::GetReaderFactories()
	{
		// This function should only be called from the main thread
		static ReaderFactories* readers = NULL;

		if (!readers)
		{
			readers = new ReaderFactories;
			readers->insert(ReaderFactories::value_type(FORMAT_RTF, ReaderFactoryPtr(new ReaderFactoryTemplate<RtfReader>)));
			readers->insert(ReaderFactories::value_type(FORMAT_HTML, ReaderFactoryPtr(new ReaderFactoryTemplate<HtmlReader>)));
			readers->insert(ReaderFactories::value_type(FORMAT_TEXT, ReaderFactoryPtr(new ReaderFactoryTemplate<TextReader>)));
		}

		return *readers;

	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?