namespace
{
-class HelpExportInterface;
+class IHelpExport;
class RootHelpTopic;
} // namespace
class CommandLineHelpModuleImpl
{
public:
- CommandLineHelpModuleImpl(const ProgramContextInterface &programContext,
+ CommandLineHelpModuleImpl(const IProgramContext &programContext,
const std::string &binaryName,
const CommandLineModuleMap &modules,
const CommandLineModuleGroupList &groups);
- void exportHelp(HelpExportInterface *exporter);
+ void exportHelp(IHelpExport *exporter);
boost::scoped_ptr<RootHelpTopic> rootTopic_;
- const ProgramContextInterface &programContext_;
+ const IProgramContext &programContext_;
std::string binaryName_;
const CommandLineModuleMap &modules_;
const CommandLineModuleGroupList &groups_;
CommandLineHelpContext *context_;
- const CommandLineModuleInterface *moduleOverride_;
+ const ICommandLineModule *moduleOverride_;
bool bHidden_;
- FileOutputRedirectorInterface *outputRedirector_;
+ IFileOutputRedirector *outputRedirector_;
GMX_DISALLOW_COPY_AND_ASSIGN(CommandLineHelpModuleImpl);
};
{
/********************************************************************
- * HelpExportInterface
+ * IHelpExport
*/
/*! \brief
*
* \ingroup module_commandline
*/
-class HelpExportInterface
+class IHelpExport
{
public:
//! Shorthand for a list of modules contained in a group.
typedef CommandLineModuleGroupData::ModuleList ModuleGroupContents;
- virtual ~HelpExportInterface() {};
+ virtual ~IHelpExport() {};
/*! \brief
* Called once before exporting individual modules.
* \param[in] displayName Display name for the module (gmx something).
*/
virtual void exportModuleHelp(
- const CommandLineModuleInterface &module,
+ const ICommandLineModule &module,
const std::string &tag,
const std::string &displayName) = 0;
/*! \brief
*
* \param[in] topic Topic to export.
*/
- virtual void exportTopic(const HelpTopicInterface &topic) = 0;
+ virtual void exportTopic(const IHelpTopic &topic) = 0;
};
/********************************************************************
addSubTopic(move(topic));
}
//! Exports all the top-level topics with the given exporter.
- void exportHelp(HelpExportInterface *exporter);
+ void exportHelp(IHelpExport *exporter);
virtual void writeHelp(const HelpWriterContext &context) const;
GMX_DISALLOW_COPY_AND_ASSIGN(RootHelpTopic);
};
-void RootHelpTopic::exportHelp(HelpExportInterface *exporter)
+void RootHelpTopic::exportHelp(IHelpExport *exporter)
{
std::vector<std::string>::const_iterator topicName;
for (topicName = exportedTopics_.begin();
topicName != exportedTopics_.end();
++topicName)
{
- const HelpTopicInterface *topic = findSubTopic(topicName->c_str());
+ const IHelpTopic *topic = findSubTopic(topicName->c_str());
GMX_RELEASE_ASSERT(topic != NULL, "Exported help topic no longer found");
exporter->exportTopic(*topic);
}
*
* \ingroup module_commandline
*/
-class CommandsHelpTopic : public HelpTopicInterface
+class CommandsHelpTopic : public IHelpTopic
{
public:
/*! \brief
virtual const char *name() const { return "commands"; }
virtual const char *title() const { return "List of available commands"; }
virtual bool hasSubTopics() const { return false; }
- virtual const HelpTopicInterface *findSubTopic(const char * /*name*/) const
+ virtual const IHelpTopic *findSubTopic(const char * /*name*/) const
{
return NULL;
}
/*! \brief
* Help topic wrapper for a command-line module.
*
- * This class implements HelpTopicInterface such that it wraps a
- * CommandLineModuleInterface, allowing subcommand "help <command>"
+ * This class implements IHelpTopic such that it wraps a
+ * ICommandLineModule, allowing subcommand "help <command>"
* to produce the help for "<command>".
*
* \ingroup module_commandline
*/
-class ModuleHelpTopic : public HelpTopicInterface
+class ModuleHelpTopic : public IHelpTopic
{
public:
//! Constructs a help topic for a specific module.
- ModuleHelpTopic(const CommandLineModuleInterface &module,
+ ModuleHelpTopic(const ICommandLineModule &module,
const CommandLineHelpModuleImpl &helpModule)
: module_(module), helpModule_(helpModule)
{
virtual const char *name() const { return module_.name(); }
virtual const char *title() const { return NULL; }
virtual bool hasSubTopics() const { return false; }
- virtual const HelpTopicInterface *findSubTopic(const char * /*name*/) const
+ virtual const IHelpTopic *findSubTopic(const char * /*name*/) const
{
return NULL;
}
virtual void writeHelp(const HelpWriterContext &context) const;
private:
- const CommandLineModuleInterface &module_;
+ const ICommandLineModule &module_;
const CommandLineHelpModuleImpl &helpModule_;
GMX_DISALLOW_COPY_AND_ASSIGN(ModuleHelpTopic);
*
* \ingroup module_commandline
*/
-class HelpExportReStructuredText : public HelpExportInterface
+class HelpExportReStructuredText : public IHelpExport
{
public:
//! Initializes reST exporter.
HelpExportReStructuredText(
const CommandLineHelpModuleImpl &helpModule,
- FileOutputRedirectorInterface *outputRedirector);
+ IFileOutputRedirector *outputRedirector);
virtual void startModuleExport();
virtual void exportModuleHelp(
- const CommandLineModuleInterface &module,
+ const ICommandLineModule &module,
const std::string &tag,
const std::string &displayName);
virtual void finishModuleExport();
const ModuleGroupContents &modules);
virtual void finishModuleGroupExport();
- virtual void exportTopic(const HelpTopicInterface &topic);
+ virtual void exportTopic(const IHelpTopic &topic);
private:
- FileOutputRedirectorInterface *outputRedirector_;
+ IFileOutputRedirector *outputRedirector_;
const std::string &binaryName_;
HelpLinks links_;
boost::scoped_ptr<TextWriter> indexFile_;
HelpExportReStructuredText::HelpExportReStructuredText(
const CommandLineHelpModuleImpl &helpModule,
- FileOutputRedirectorInterface *outputRedirector)
+ IFileOutputRedirector *outputRedirector)
: outputRedirector_(outputRedirector),
binaryName_(helpModule.binaryName_),
links_(eHelpOutputFormat_Rst)
}
void HelpExportReStructuredText::exportModuleHelp(
- const CommandLineModuleInterface &module,
+ const ICommandLineModule &module,
const std::string &tag,
const std::string &displayName)
{
manPagesFile_.reset();
}
-void HelpExportReStructuredText::exportTopic(const HelpTopicInterface &topic)
+void HelpExportReStructuredText::exportTopic(const IHelpTopic &topic)
{
const std::string path("onlinehelp/" + std::string(topic.name()) + ".rst");
TextOutputStreamPointer file(outputRedirector_->openTextOutputFile(path));
*
* \ingroup module_commandline
*/
-class HelpExportCompletion : public HelpExportInterface
+class HelpExportCompletion : public IHelpExport
{
public:
//! Initializes completion exporter.
virtual void startModuleExport();
virtual void exportModuleHelp(
- const CommandLineModuleInterface &module,
+ const ICommandLineModule &module,
const std::string &tag,
const std::string &displayName);
virtual void finishModuleExport();
const ModuleGroupContents & /*modules*/) {}
virtual void finishModuleGroupExport() {}
- virtual void exportTopic(const HelpTopicInterface & /*topic*/) {}
+ virtual void exportTopic(const IHelpTopic & /*topic*/) {}
private:
ShellCompletionWriter bashWriter_;
}
void HelpExportCompletion::exportModuleHelp(
- const CommandLineModuleInterface &module,
+ const ICommandLineModule &module,
const std::string & /*tag*/,
const std::string & /*displayName*/)
{
*/
CommandLineHelpModuleImpl::CommandLineHelpModuleImpl(
- const ProgramContextInterface &programContext,
+ const IProgramContext &programContext,
const std::string &binaryName,
const CommandLineModuleMap &modules,
const CommandLineModuleGroupList &groups)
{
}
-void CommandLineHelpModuleImpl::exportHelp(HelpExportInterface *exporter)
+void CommandLineHelpModuleImpl::exportHelp(IHelpExport *exporter)
{
// TODO: Would be nicer to have the file names supplied by the build system
// and/or export a list of files from here.
public:
ModificationCheckingFileOutputStream(
const char *path,
- FileOutputRedirectorInterface *redirector)
+ IFileOutputRedirector *redirector)
: path_(path), redirector_(redirector)
{
}
private:
std::string path_;
StringOutputStream contents_;
- FileOutputRedirectorInterface *redirector_;
+ IFileOutputRedirector *redirector_;
};
/********************************************************************
* ModificationCheckingFileOutputRedirector
*/
-class ModificationCheckingFileOutputRedirector : public FileOutputRedirectorInterface
+class ModificationCheckingFileOutputRedirector : public IFileOutputRedirector
{
public:
explicit ModificationCheckingFileOutputRedirector(
- FileOutputRedirectorInterface *redirector)
+ IFileOutputRedirector *redirector)
: redirector_(redirector)
{
}
}
private:
- FileOutputRedirectorInterface *redirector_;
+ IFileOutputRedirector *redirector_;
};
} // namespace
*/
CommandLineHelpModule::CommandLineHelpModule(
- const ProgramContextInterface &programContext,
+ const IProgramContext &programContext,
const std::string &binaryName,
const CommandLineModuleMap &modules,
const CommandLineModuleGroupList &groups)
}
HelpTopicPointer CommandLineHelpModule::createModuleHelpTopic(
- const CommandLineModuleInterface &module) const
+ const ICommandLineModule &module) const
{
return HelpTopicPointer(new ModuleHelpTopic(module, *impl_));
}
}
void CommandLineHelpModule::setModuleOverride(
- const CommandLineModuleInterface &module)
+ const ICommandLineModule &module)
{
impl_->moduleOverride_ = &module;
}
void CommandLineHelpModule::setOutputRedirector(
- FileOutputRedirectorInterface *output)
+ IFileOutputRedirector *output)
{
impl_->outputRedirector_ = output;
}
if (!exportFormat.empty())
{
ModificationCheckingFileOutputRedirector redirector(impl_->outputRedirector_);
- boost::scoped_ptr<HelpExportInterface> exporter;
+ boost::scoped_ptr<IHelpExport> exporter;
if (exportFormat == "rst")
{
exporter.reset(new HelpExportReStructuredText(*impl_, &redirector));