diff options
author | Gert van Valkenhoef <g.h.m.van.valkenhoef@rug.nl> | 2012-02-14 20:19:37 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2012-02-23 10:31:16 +0000 |
commit | db4bc712df5fbc17528b3f0fe694d84fb4bfeb66 (patch) | |
tree | d29579ccf36938a65948ea7e06ab00e5449f89b0 /l10ntools | |
parent | 25caea6f0d6806b44c611bef448b97e260306258 (diff) |
Separate HelpIndexer into header, implementation, and main
Diffstat (limited to 'l10ntools')
-rw-r--r-- | l10ntools/source/help/HelpIndexer.cxx (renamed from l10ntools/source/help/helpindexer.cxx) | 132 | ||||
-rw-r--r-- | l10ntools/source/help/HelpIndexer.hxx | 71 | ||||
-rw-r--r-- | l10ntools/source/help/HelpIndexer_main.cxx | 66 | ||||
-rw-r--r-- | l10ntools/source/help/makefile.mk | 8 |
4 files changed, 146 insertions, 131 deletions
diff --git a/l10ntools/source/help/helpindexer.cxx b/l10ntools/source/help/HelpIndexer.cxx index c3271194bb30..ed0ce39a523a 100644 --- a/l10ntools/source/help/helpindexer.cxx +++ b/l10ntools/source/help/HelpIndexer.cxx @@ -1,5 +1,7 @@ -#include <CLucene/StdHeader.h> -#include <CLucene.h> +#include "HelpIndexer.hxx" + +#define TODO + #ifdef TODO #include <CLucene/analysis/LanguageBasedAnalyzer.h> #endif @@ -10,74 +12,10 @@ #include <errno.h> #include <string.h> -#include <string> -#include <iostream> #include <algorithm> -#include <set> - -// I assume that TCHAR is defined as wchar_t throughout using namespace lucene::document; -class HelpIndexer { - private: - std::string d_lang; - std::string d_module; - std::string d_captionDir; - std::string d_contentDir; - std::string d_indexDir; - std::string d_error; - std::set<std::string> d_files; - - public: - - /** - * @param lang Help files language. - * @param module The module of the helpfiles. - * @param captionDir The directory to scan for caption files. - * @param contentDir The directory to scan for content files. - * @param indexDir The directory to write the index to. - */ - HelpIndexer(std::string const &lang, std::string const &module, - std::string const &captionDir, std::string const &contentDir, - std::string const &indexDir); - - /** - * Run the indexer. - * @return true if index successfully generated. - */ - bool indexDocuments(); - - /** - * Get the error string (empty if no error occurred). - */ - std::string const & getErrorMessage(); - - private: - - /** - * Scan the caption & contents directories for help files. - */ - bool scanForFiles(); - - /** - * Scan for files in the given directory. - */ - bool scanForFiles(std::string const &path); - - /** - * Fill the Document with information on the given help file. - */ - bool helpDocument(std::string const & fileName, Document *doc); - - /** - * Create a reader for the given file, and create an "empty" reader in case the file doesn't exist. - */ - lucene::util::Reader *helpFileReader(std::string const & path); - - std::wstring string2wstring(std::string const &source); -}; - HelpIndexer::HelpIndexer(std::string const &lang, std::string const &module, std::string const &captionDir, std::string const &contentDir, std::string const &indexDir) : d_lang(lang), d_module(module), d_captionDir(captionDir), d_contentDir(contentDir), d_indexDir(indexDir), d_error(""), d_files() {} @@ -183,65 +121,3 @@ std::wstring HelpIndexer::string2wstring(std::string const &source) { std::copy(source.begin(), source.end(), target.begin()); return target; } - -int main(int argc, char **argv) { - const std::string pLang("-lang"); - const std::string pModule("-mod"); - const std::string pOutDir("-zipdir"); - const std::string pSrcDir("-srcdir"); - - std::string lang; - std::string module; - std::string srcDir; - std::string outDir; - - bool error = false; - for (int i = 1; i < argc; ++i) { - if (pLang.compare(argv[i]) == 0) { - if (i + 1 < argc) { - lang = argv[++i]; - } else { - error = true; - } - } else if (pModule.compare(argv[i]) == 0) { - if (i + 1 < argc) { - module = argv[++i]; - } else { - error = true; - } - } else if (pOutDir.compare(argv[i]) == 0) { - if (i + 1 < argc) { - outDir = argv[++i]; - } else { - error = true; - } - } else if (pSrcDir.compare(argv[i]) == 0) { - if (i + 1 < argc) { - srcDir = argv[++i]; - } else { - error = true; - } - } else { - error = true; - } - } - - if (error) { - std::cerr << "Error parsing command-line arguments" << std::endl; - } - - if (error || lang.empty() || module.empty() || srcDir.empty() || outDir.empty()) { - std::cerr << "Usage: HelpIndexer -lang ISOLangCode -mod HelpModule -srcdir SourceDir -zipdir OutputDir" << std::endl; - return 1; - } - - std::string captionDir(srcDir + "/caption"); - std::string contentDir(srcDir + "/content"); - std::string indexDir(outDir + "/" + module + ".idxl"); - HelpIndexer indexer(lang, module, captionDir, contentDir, indexDir); - if (!indexer.indexDocuments()) { - std::cerr << indexer.getErrorMessage() << std::endl; - return 2; - } - return 0; -} diff --git a/l10ntools/source/help/HelpIndexer.hxx b/l10ntools/source/help/HelpIndexer.hxx new file mode 100644 index 000000000000..56122e770e95 --- /dev/null +++ b/l10ntools/source/help/HelpIndexer.hxx @@ -0,0 +1,71 @@ +#ifndef HELPINDEXER_HXX +#define HELPINDEXER_HXX + +#include <CLucene/StdHeader.h> +#include <CLucene.h> + +#include <string> +#include <set> + +// I assume that TCHAR is defined as wchar_t throughout + +class HelpIndexer { + private: + std::string d_lang; + std::string d_module; + std::string d_captionDir; + std::string d_contentDir; + std::string d_indexDir; + std::string d_error; + std::set<std::string> d_files; + + public: + + /** + * @param lang Help files language. + * @param module The module of the helpfiles. + * @param captionDir The directory to scan for caption files. + * @param contentDir The directory to scan for content files. + * @param indexDir The directory to write the index to. + */ + HelpIndexer(std::string const &lang, std::string const &module, + std::string const &captionDir, std::string const &contentDir, + std::string const &indexDir); + + /** + * Run the indexer. + * @return true if index successfully generated. + */ + bool indexDocuments(); + + /** + * Get the error string (empty if no error occurred). + */ + std::string const & getErrorMessage(); + + private: + + /** + * Scan the caption & contents directories for help files. + */ + bool scanForFiles(); + + /** + * Scan for files in the given directory. + */ + bool scanForFiles(std::string const &path); + + /** + * Fill the Document with information on the given help file. + */ + bool helpDocument(std::string const & fileName, lucene::document::Document *doc); + + /** + * Create a reader for the given file, and create an "empty" reader in case the file doesn't exist. + */ + lucene::util::Reader *helpFileReader(std::string const & path); + + std::wstring string2wstring(std::string const &source); +}; + +#endif diff --git a/l10ntools/source/help/HelpIndexer_main.cxx b/l10ntools/source/help/HelpIndexer_main.cxx new file mode 100644 index 000000000000..a1dd50bac789 --- /dev/null +++ b/l10ntools/source/help/HelpIndexer_main.cxx @@ -0,0 +1,66 @@ +#include "HelpIndexer.hxx" + +#include <string> +#include <iostream> + +int main(int argc, char **argv) { + const std::string pLang("-lang"); + const std::string pModule("-mod"); + const std::string pOutDir("-zipdir"); + const std::string pSrcDir("-srcdir"); + + std::string lang; + std::string module; + std::string srcDir; + std::string outDir; + + bool error = false; + for (int i = 1; i < argc; ++i) { + if (pLang.compare(argv[i]) == 0) { + if (i + 1 < argc) { + lang = argv[++i]; + } else { + error = true; + } + } else if (pModule.compare(argv[i]) == 0) { + if (i + 1 < argc) { + module = argv[++i]; + } else { + error = true; + } + } else if (pOutDir.compare(argv[i]) == 0) { + if (i + 1 < argc) { + outDir = argv[++i]; + } else { + error = true; + } + } else if (pSrcDir.compare(argv[i]) == 0) { + if (i + 1 < argc) { + srcDir = argv[++i]; + } else { + error = true; + } + } else { + error = true; + } + } + + if (error) { + std::cerr << "Error parsing command-line arguments" << std::endl; + } + + if (error || lang.empty() || module.empty() || srcDir.empty() || outDir.empty()) { + std::cerr << "Usage: HelpIndexer -lang ISOLangCode -mod HelpModule -srcdir SourceDir -zipdir OutputDir" << std::endl; + return 1; + } + + std::string captionDir(srcDir + "/caption"); + std::string contentDir(srcDir + "/content"); + std::string indexDir(outDir + "/" + module + ".idxl"); + HelpIndexer indexer(lang, module, captionDir, contentDir, indexDir); + if (!indexer.indexDocuments()) { + std::cerr << indexer.getErrorMessage() << std::endl; + return 2; + } + return 0; +} diff --git a/l10ntools/source/help/makefile.mk b/l10ntools/source/help/makefile.mk index e22c6a3dbb4a..12835358fcd6 100644 --- a/l10ntools/source/help/makefile.mk +++ b/l10ntools/source/help/makefile.mk @@ -60,7 +60,8 @@ SLOFILES=\ EXCEPTIONSFILES=\ $(OBJ)$/HelpLinker.obj \ $(OBJ)$/HelpCompiler.obj \ - $(OBJ)$/helpindexer.obj \ + $(OBJ)$/HelpIndexer.obj \ + $(OBJ)$/HelpIndexer_main.obj \ $(SLO)$/HelpLinker.obj \ $(SLO)$/HelpCompiler.obj @@ -74,7 +75,7 @@ NOOPTFILES=\ $(SLO)$/HelpLinker.obj .ENDIF -PKGCONFIG_MODULES=libclucene-core +PKGCONFIG_MODULES=libclucene-core libclucene-contribs-lib .INCLUDE : pkg_config.mk APP1TARGET= $(TARGET) @@ -86,7 +87,8 @@ APP1STDLIBS+=$(SALLIB) $(BERKELEYLIB) $(XSLTLIB) $(EXPATASCII3RDLIB) APP2TARGET=HelpIndexer APP2OBJS=\ - $(OBJ)$/helpindexer.obj + $(OBJ)$/HelpIndexer.obj \ + $(OBJ)$/HelpIndexer_main.obj APP2RPATH = NONE APP2STDLIBS+=$(SALLIB) $(PKGCONFIG_LIBS) |