Exiv2
|
Implements the command line handling for the program. More...
#include <exiv2app.hpp>
Classes | |
struct | YodAdjust |
Structure for year, month and day adjustment command line arguments. More... | |
Public Types | |
enum | PrintMode { pmSummary, pmList, pmComment, pmPreview } |
Enumerates print modes. | |
enum | PrintItem { prTag = 1, prGroup = 2, prKey = 4, prName = 8, prLabel = 16, prType = 32, prCount = 64, prSize = 128, prValue = 256, prTrans = 512, prHex = 1024 } |
Individual items to print, bitmap. | |
enum | CommonTarget { ctExif = 1, ctIptc = 2, ctComment = 4, ctThumb = 8, ctXmp = 16, ctXmpSidecar = 32, ctPreview = 64 } |
Enumerates common targets, bitmap. | |
enum | FileExistsPolicy { overwritePolicy, renamePolicy, askPolicy } |
Enumerates the policies to handle existing files in rename action. | |
enum | Yod { yodYear, yodMonth, yodDay } |
Enumerates year, month and day adjustments. | |
typedef std::vector< std::string > | CmdFiles |
Container for command files. | |
typedef std::vector< std::string > | CmdLines |
Container for commands from the command line. | |
typedef std::vector< std::string > | Files |
Container to store filenames. | |
typedef std::set< int > | PreviewNumbers |
Container for preview image numbers. | |
typedef std::vector< std::string > | Keys |
Container for keys. | |
Public Member Functions | |
void | cleanup () |
Destructor. | |
int | getopt (int argc, char *const argv[]) |
Call Getopt::getopt() with optstring, to inititate command line argument parsing, perform consistency checks after all command line arguments are parsed. More... | |
virtual int | option (int opt, const std::string &optarg, int optopt) |
Handle options and their arguments. | |
virtual int | nonoption (const std::string &argv) |
Handle non-option parameters. | |
void | usage (std::ostream &os=std::cout) const |
Print a minimal usage note to an output stream. | |
void | help (std::ostream &os=std::cout) const |
Print further usage explanations to an output stream. | |
void | version (bool verbose=false, std::ostream &os=std::cout) const |
Print version information to an output stream. | |
![]() | |
Getopt () | |
Default constructor. | |
virtual | ~Getopt () |
Destructor. | |
int | getopt (int argc, char *const argv[], const std::string &optstring) |
Parse command line arguments. More... | |
const std::string & | progname () const |
Program name (argv[0]) | |
int | errcnt () const |
Total number of errors returned by calls to option() | |
Static Public Member Functions | |
static Params & | instance () |
Controls all access to the global Params instance. More... | |
Public Attributes | |
bool | help_ |
Help option flag. | |
bool | version_ |
Version option flag. | |
bool | verbose_ |
Verbose (talkative) option flag. | |
bool | force_ |
Force overwrites flag. | |
bool | binary_ |
Suppress long binary values. | |
bool | unknown_ |
Suppress unknown tags. | |
bool | preserve_ |
Preserve timestamps flag. | |
bool | timestamp_ |
Rename also sets the file timestamp. | |
bool | timestampOnly_ |
Rename only sets the file timestamp. | |
FileExistsPolicy | fileExistsPolicy_ |
What to do if file to rename exists. | |
bool | adjust_ |
Adjustment flag. | |
PrintMode | printMode_ |
Print mode. | |
unsigned long | printItems_ |
Print items. | |
unsigned long | printTags_ |
int | action_ |
Action (integer rather than TaskType to avoid dependency). | |
int | target_ |
What common target to process. | |
long | adjustment_ |
Adjustment in seconds. | |
YodAdjust | yodAdjust_ [3] |
Year, month and day adjustment info. | |
std::string | format_ |
Filename format (-r option arg). | |
bool | formatSet_ |
Whether the format is set with -r. | |
CmdFiles | cmdFiles_ |
Names of the modification command files. | |
CmdLines | cmdLines_ |
Commands from the command line. | |
ModifyCmds | modifyCmds_ |
Parsed modification commands. | |
std::string | jpegComment_ |
Jpeg comment to set in the image. | |
std::string | directory_ |
Location for files to extract/insert. | |
std::string | suffix_ |
File extension of the file to insert. | |
Files | files_ |
List of non-option arguments. | |
PreviewNumbers | previewNumbers_ |
List of preview numbers. | |
Keys | keys_ |
List of keys to 'grep' from the metadata. | |
std::string | charset_ |
Charset to use for UNICODE Exif user comment. | |
Implements the command line handling for the program.
Derives from Util::Getopt to use the command line argument parsing functionality provided there. This class is implemented as a singleton, i.e., there is only one global instance of it, which can be accessed from everywhere.
Usage example:
int Params::getopt | ( | int | argc, |
char *const | argv[] | ||
) |
Call Getopt::getopt() with optstring, to inititate command line argument parsing, perform consistency checks after all command line arguments are parsed.
argc | Argument count as passed to main() on program invocation. |
argv | Argument array as passed to main() on program invocation. |
References action_, adjust_, cmdFiles_, cmdLines_, directory_, files_, Util::Getopt::getopt(), help_, jpegComment_, modifyCmds_, Util::Getopt::progname(), suffix_, timestamp_, timestampOnly_, Exiv2::XmpProperties::unregisterNs(), version_, and yodAdjust_.
|
static |
Controls all access to the global Params instance.
Referenced by Action::Modify::applyCommands(), Action::Erase::eraseComment(), Action::Erase::eraseExifData(), Action::Erase::eraseIptcData(), Action::Erase::eraseThumbnail(), Action::Erase::eraseXmpData(), Action::Print::grepTag(), Action::Print::printComment(), Action::Print::printLabel(), Action::Print::printList(), Action::Print::printMetadata(), Action::Print::printMetadatum(), Action::Print::printPreviewList(), Action::Print::run(), Action::Rename::run(), Action::Adjust::run(), Action::Erase::run(), Action::Extract::run(), Action::Insert::run(), Action::Modify::run(), Action::FixIso::run(), Action::FixCom::run(), Action::Extract::writePreviewFile(), Action::Extract::writePreviews(), and Action::Extract::writeThumbnail().
unsigned long Params::printTags_ |
Print tags (bitmap of MetadataId flags).
Referenced by Action::Print::printList().