steghide  0.5.1
Arguments.h
Go to the documentation of this file.
1 /*
2  * steghide 0.5.1 - a steganography program
3  * Copyright (C) 1999-2003 Stefan Hetzl <shetzl@chello.at>
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License
7  * as published by the Free Software Foundation; either version 2
8  * of the License, or (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18  *
19  */
20 
21 #ifndef SH_ARGUMENTS_H
22 #define SH_ARGUMENTS_H
23 
24 #include <string>
25 #include <vector>
26 
27 #include "Arg.h"
28 
29 // to include DEBUG if defined
30 #ifdef HAVE_CONFIG_H
31 #include "config.h"
32 #endif
33 
38 class Arguments {
39  public:
40  Arguments (void) {} ;
41 
45  Arguments (int argc, char *argv[]) ;
46 
50  void parse (void) ;
51 
55  bool stdin_isused (void) const ;
56 
60  std::string CommandString ;
61 
86 
87  std::string getPassphrase (bool doublecheck = false) ;
88 
89  private:
90  typedef std::vector<std::string>::const_iterator ArgIt ;
91 
92  static const int NoCompression = 0 ;
93 
96  static const bool Default_Checksum = true ;
97  static const int Default_Compression = 9 ; // slowest, but smallest
98  static const bool Default_EmbedEmbFn = true ;
99  static const bool Default_Force = false ;
101  static const unsigned long Default_Radius = 0 ; // there is no default radius for all file formats
102  static const unsigned int Max_Algorithm = 3 ;
103  static float Default_Goal ;
105  static const bool Default_Check = false ;
106  static const unsigned int Default_DebugLevel = 0 ;
107  static const unsigned int Default_GmlGraphRecDepth = 0 ;
108  static const unsigned int Default_GmlStartVertex = 0 ;
109 
116  void parse_Command (ArgIt& curarg) ;
117 
122  bool parse_EmbFn (ArgIt& curarg) ;
123 
124  bool parse_ExtFn (ArgIt& curarg) ;
125  bool parse_CvrFn (ArgIt& curarg) ;
126  bool parse_StgFn (ArgIt& curarg) ;
127  bool parse_PassphraseFile (ArgIt& curarg) ;
128  bool parse_Passphrase (ArgIt& curarg) ;
129  bool parse_Checksum (ArgIt& curarg) ;
130  bool parse_Compression (ArgIt& curarg) ;
131  bool parse_EmbedEmbFn (ArgIt& curarg) ;
132  bool parse_Encryption (ArgIt& curarg) ;
133  bool parse_Radius (ArgIt& curarg) ;
134  bool parse_Goal (ArgIt& curarg) ;
135  bool parse_Force (ArgIt& curarg) ;
136  bool parse_Verbosity (ArgIt& curarg) ;
137  bool parse_Debug (ArgIt& curarg) ;
138 
139  void setDefaults (void) ;
140 
141  std::vector<std::string> TheArguments ;
142 } ;
143 
144 // gcc does not support the export keyword
145 #include "Arg.cc"
146 
147 #endif /* ndef SH_ARGUMENTS_H */