Exiv2
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
Params Class Reference

Implements the command line handling for the program. More...

#include <exiv2app.hpp>

Inheritance diagram for Params:
Inheritance graph
[legend]

Classes

struct  YodAdjust
 Structure for year, month and day adjustment command line arguments. More...
 

Public Types

enum  PrintMode {
  pmSummary, pmList, pmComment, pmPreview,
  pmStructure, pmXMP, pmIccProfile, pmRecursive
}
 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, prSet = 2048
}
 Individual items to print, bitmap.
 
enum  CommonTarget {
  ctExif = 1, ctIptc = 2, ctComment = 4, ctThumb = 8,
  ctXmp = 16, ctXmpSidecar = 32, ctPreview = 64, ctIccProfile = 128,
  ctXmpRaw = 256, ctStdInOut = 512, ctIptcRaw =1024
}
 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 exv_grep_keys_t Greps
 Container for greps.
 
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.
 
void getStdin (Exiv2::DataBuf &buf)
 getStdin binary data read from stdin to DataBuf
 

Static Public Member Functions

static Paramsinstance ()
 Controls all access to the global Params instance. More...
 
static std::string printTarget (const std::string &before, int target, bool bPrint=false, std::ostream &os=std::cout)
 Print target_.
 

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_
 Print tags (bitmap of MetadataId flags). Action (integer rather than TaskType to avoid dependency).
 
int action_
 
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.
 
Greps greps_
 List of keys to 'grep' from the metadata.
 
Keys keys_
 List of keys to match from the metadata.
 
std::string charset_
 Charset to use for UNICODE Exif user comment.
 
Exiv2::DataBuf stdinBuf
 DataBuf with the binary bytes from stdin.
 

Detailed Description

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:

#include "params.h"
int main(int argc, char* const argv[])
{
Params& params = Params::instance();
if (params.getopt(argc, argv)) {
params.usage();
return 1;
}
if (params.help_) {
params.help();
return 0;
}
if (params.version_) {
params.version();
return 0;
}
// do something useful here...
return 0;
}
Examples:
metacopy.cpp.

Member Function Documentation

◆ getopt()

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.

Parameters
argcArgument count as passed to main() on program invocation.
argvArgument array as passed to main() on program invocation.
Returns
0 if successful, >0 in case of errors.
Examples:
metacopy.cpp.

◆ instance()

Params & Params::instance ( )
static

Controls all access to the global Params instance.

Returns
Reference to the global Params instance.

Referenced by version().


The documentation for this class was generated from the following files: