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

int Params::getopt ( int  argc,
char *const  argv[] 
)
Params & Params::instance ( )
static

Controls all access to the global Params instance.

Returns
Reference to the global Params instance.

References greps_.

Referenced by getopt(), and version().


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