198aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski#ifndef AAPT_FLAG_H 298aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski#define AAPT_FLAG_H 398aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski 498aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski#include "StringPiece.h" 598aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski 698aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski#include <functional> 798aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski#include <string> 898aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski#include <vector> 998aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski 1098aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinskinamespace aapt { 1198aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinskinamespace flag { 1298aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski 1398aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinskivoid requiredFlag(const StringPiece& name, const StringPiece& description, 1498aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski std::function<void(const StringPiece&)> action); 1598aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski 16d13fb249865703901b77f48c5fed1864f06e1c63Adam Lesinskivoid requiredFlag(const StringPiece& name, const StringPiece& description, 17d13fb249865703901b77f48c5fed1864f06e1c63Adam Lesinski std::function<bool(const StringPiece&, std::string*)> action); 18d13fb249865703901b77f48c5fed1864f06e1c63Adam Lesinski 1998aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinskivoid optionalFlag(const StringPiece& name, const StringPiece& description, 2098aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski std::function<void(const StringPiece&)> action); 2198aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski 225886a92eb6dde5a406a62926f2914a908ca18d35Adam Lesinskivoid optionalSwitch(const StringPiece& name, const StringPiece& description, bool resultWhenSet, 235886a92eb6dde5a406a62926f2914a908ca18d35Adam Lesinski bool* result); 2498aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski 25769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinskivoid usageAndDie(const StringPiece& command); 26769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski 2798aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinskivoid parse(int argc, char** argv, const StringPiece& command); 2898aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski 2998aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinskiconst std::vector<std::string>& getArgs(); 3098aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski 3198aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski} // namespace flag 3298aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski} // namespace aapt 3398aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski 3498aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski#endif // AAPT_FLAG_H 35