]> git.saurik.com Git - apt.git/blob - apt-private/private-cmndline.h
use function pointers instead of weak symbols for cmdline parsing
[apt.git] / apt-private / private-cmndline.h
1 #ifndef APT_PRIVATE_CMNDLINE_H
2 #define APT_PRIVATE_CMNDLINE_H
3
4 #include <apt-pkg/cmndline.h>
5 #include <apt-pkg/macros.h>
6
7 #include <vector>
8
9 class Configuration;
10 class pkgSystem;
11
12 enum class APT_CMD {
13 APT,
14 APT_GET,
15 APT_CACHE,
16 APT_CDROM,
17 APT_CONFIG,
18 APT_EXTRACTTEMPLATES,
19 APT_FTPARCHIVE,
20 APT_HELPER,
21 APT_INTERNAL_SOLVER,
22 APT_MARK,
23 APT_SORTPKG,
24 };
25
26 APT_PUBLIC bool ShowHelp(CommandLine &CmdL) APT_WEAK;
27 struct aptDispatchWithHelp
28 {
29 const char *Match;
30 bool (*Handler)(CommandLine &);
31 const char *Help;
32 };
33 APT_PUBLIC std::vector<aptDispatchWithHelp> GetCommands() APT_WEAK;
34
35 APT_PUBLIC std::vector<CommandLine::Dispatch> ParseCommandLine(CommandLine &CmdL, APT_CMD const Binary,
36 Configuration * const * const Cnf, pkgSystem ** const Sys, int const argc, const char * argv[],
37 bool (*ShowHelp)(CommandLine &), std::vector<aptDispatchWithHelp> (*GetCommands)(void));
38 APT_PUBLIC unsigned short DispatchCommandLine(CommandLine &CmdL, std::vector<CommandLine::Dispatch> const &Cmds);
39
40 APT_PUBLIC std::vector<CommandLine::Args> getCommandArgs(APT_CMD const Program, char const * const Cmd);
41
42 #endif