#ifndef PKGLIB_CMNDLINE_H
#define PKGLIB_CMNDLINE_H
+#include <apt-pkg/macros.h>
-
+#ifndef APT_8_CLEANER_HEADERS
#include <apt-pkg/configuration.h>
+#endif
+
+class Configuration;
class CommandLine
{
public:
struct Args;
struct Dispatch;
+ struct DispatchWithHelp;
protected:
bool Parse(int argc,const char **argv);
void ShowHelp();
- unsigned int FileSize() const;
+ unsigned int FileSize() const APT_PURE;
bool DispatchArg(Dispatch *List,bool NoMatch = true);
+ bool DispatchArg(DispatchWithHelp *List,bool NoMatch = true);
+ static char const * GetCommand(Dispatch const * const Map,
+ unsigned int const argc, char const * const * const argv) APT_PURE;
+ static char const * GetCommand(DispatchWithHelp const * const Map,
+ unsigned int const argc, char const * const * const argv) APT_PURE;
+
+
+ static CommandLine::Args MakeArgs(char ShortOpt, char const *LongOpt,
+ char const *ConfName, unsigned long Flags) APT_CONST;
+
+ CommandLine();
CommandLine(Args *AList,Configuration *Conf);
~CommandLine();
};
const char *Match;
bool (*Handler)(CommandLine &);
};
+struct CommandLine::DispatchWithHelp
+{
+ const char *Match;
+ bool (*Handler)(CommandLine &);
+ const char *Help;
+};
#endif