summaryrefslogtreecommitdiffstats
path: root/debian/mp4v2/mp4v2-2.0.0~dfsg0/libutil/Utility.h
diff options
context:
space:
mode:
Diffstat (limited to 'debian/mp4v2/mp4v2-2.0.0~dfsg0/libutil/Utility.h')
-rw-r--r--debian/mp4v2/mp4v2-2.0.0~dfsg0/libutil/Utility.h205
1 files changed, 0 insertions, 205 deletions
diff --git a/debian/mp4v2/mp4v2-2.0.0~dfsg0/libutil/Utility.h b/debian/mp4v2/mp4v2-2.0.0~dfsg0/libutil/Utility.h
deleted file mode 100644
index 26d57b8d..00000000
--- a/debian/mp4v2/mp4v2-2.0.0~dfsg0/libutil/Utility.h
+++ /dev/null
@@ -1,205 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-// The contents of this file are subject to the Mozilla Public License
-// Version 1.1 (the "License"); you may not use this file except in
-// compliance with the License. You may obtain a copy of the License at
-// http://www.mozilla.org/MPL/
-//
-// Software distributed under the License is distributed on an "AS IS"
-// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-// License for the specific language governing rights and limitations
-// under the License.
-//
-// The Original Code is MP4v2.
-//
-// The Initial Developer of the Original Code is Kona Blend.
-// Portions created by Kona Blend are Copyright (C) 2008.
-// All Rights Reserved.
-//
-// Contributors:
-// Kona Blend, kona8lend@@gmail.com
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef MP4V2_UTIL_UTILITY_H
-#define MP4V2_UTIL_UTILITY_H
-
-namespace mp4v2 { namespace util {
-
-///////////////////////////////////////////////////////////////////////////////
-///
-/// Utility general program class.
-///
-/// This class provides a base implementation for a general utility which
-/// helps meet behavioral criteria for command-line executables.
-///
-/// Inherit batch processing ability is also provided and is used optionally
-/// by the concrete implementation.
-///
-/// Criteria and guidelines for utility behavior in MP4v2 are as follows:
-/// @li exit with 0 when the utility succeeds at its main task, 1 for failure.
-/// @li print brief-usage when no arguments are supplied and exit with 1.
-/// @li print brief-usage when too many arguments are supplied and exit with 1.
-/// @li issue brief-usage when invalid argument is supplied and exit with 1.
-/// @li support --help option and exit with 0.
-/// @li support --version option and exit with 0.
-/// @li utilities which <b>create</b> new output files should never
-/// over-write an existing file unless given the project's universal
-/// '-o' or '--overwrite' option.
-///
-///////////////////////////////////////////////////////////////////////////////
-class MP4V2_EXPORT Utility
-{
-protected:
- enum LongCode {
- LC_NONE = 0xf0000000, // safe (cannot conflict with char values)
- LC_DEBUG,
- LC_VERBOSE,
- LC_HELP,
- LC_VERSION,
- LC_VERSIONX,
- _LC_MAX // will be used to seeed derived-class long-codes enum
- };
-
- class MP4V2_EXPORT Option {
- public:
- Option( char, bool, string, bool, uint32_t, string, string = "ARG", string = "", bool = false );
-
- const char scode;
- const bool shasarg;
- const string lname;
- const bool lhasarg;
- const uint32_t lcode;
- const string descr;
- const string argname;
- const string help;
- const bool hidden;
- };
-
- class MP4V2_EXPORT Group {
- public:
- explicit Group( string );
- ~Group();
-
- void add( const Option& ); // options added this way will not be deleted
- void add( char, bool, string, bool, uint32_t, string, string = "ARG", string = "", bool = false );
- void add( string, bool, uint32_t, string, string = "ARG", string = "", bool = false );
-
- const string name;
-
- public:
- typedef list<const Option*> List;
-
- private:
- List _options;
- List _optionsDelete;
-
- public:
- const List& options;
- };
-
- //! structure passed as argument to each job during batch processing
- class MP4V2_EXPORT JobContext
- {
- public:
- JobContext( string file_ );
-
- const string file; //!< file job is working on
- MP4FileHandle fileHandle; //!< handle of file, if applicable to job
- bool optimizeApplicable; //!< indicate file optimization is applicable
- list<void*> tofree; //!< memory to free at end of job
- };
-
-public:
- virtual ~Utility();
-
- bool process();
-
-protected:
- Utility( string, int, char** );
-
- void printUsage ( bool ); //!< print usage
- void printHelp ( bool, bool ); //!< print help
- void printVersion ( bool ); //!< print utility version
-
- void errf ( const char*, ... ) MP4V2_WFORMAT_PRINTF(2,3); //!< print to stderr
- void outf ( const char*, ... ) MP4V2_WFORMAT_PRINTF(2,3); //!< print to stdout
-
- bool herrf ( const char*, ... ) MP4V2_WFORMAT_PRINTF(2,3); //!< print to stderr indicating error
- bool hwarnf ( const char*, ... ) MP4V2_WFORMAT_PRINTF(2,3); //!< print to stderr indicating warning
-
- void verbose1f ( const char*, ... ) MP4V2_WFORMAT_PRINTF(2,3);
- void verbose2f ( const char*, ... ) MP4V2_WFORMAT_PRINTF(2,3);
- void verbose3f ( const char*, ... ) MP4V2_WFORMAT_PRINTF(2,3);
-
- bool batch ( int ); //!< process all remaining arguments (jobs)
- bool job ( string ); //!< process next argument
-
- //! open file in consideration of overwrite/force options
- bool openFileForWriting( io::File& );
-
- bool dryrunAbort();
-
- // delegates
- virtual bool utility_option( int, bool& ) = 0; //!< process command-line option
- virtual bool utility_job( JobContext& ) = 0; //!< process positional argument
-
-private:
- void formatGroups();
- void debugUpdate( uint32_t );
- void verbose( uint32_t, const char*, va_list );
- bool process_impl();
-
-private:
- string _help;
-
- prog::Option* _longOptions;
- string _shortOptions;
-
-protected:
- const string _name; //!< executable basename
- const int _argc; //!< arg count
- char* const* const _argv; //!< arg vector
-
- // common options state
- bool _optimize; //!< optimize mp4 file after modification
- bool _dryrun; //!< dry-run, no writing is actually performed
- bool _keepgoing; //!< contine batch processing even after error
- bool _overwrite; //!< overwrite file if already exists
- bool _force; //!< force overwriting a file even if read-only
- uint32_t _debug; //!< mp4 file I/O verbosity
- uint32_t _verbosity; //!< verbosity level, default=1
-
- uint32_t _jobCount;
- uint32_t _jobTotal;
- bool _debugImplicits;
-
- Group _group; // group to which standard options are added
- string _usage;
- string _description;
- list<Group*> _groups;
-
-protected:
- // standard options for concrete utilities to add to _group in constructor
- const Option STD_OPTIMIZE;
- const Option STD_DRYRUN;
- const Option STD_KEEPGOING;
- const Option STD_OVERWRITE;
- const Option STD_FORCE;
- const Option STD_QUIET;
- const Option STD_DEBUG;
- const Option STD_VERBOSE;
- const Option STD_HELP;
- const Option STD_VERSION;
- const Option STD_VERSIONX;
-
-public:
- static const bool SUCCESS;
- static const bool FAILURE;
-};
-
-///////////////////////////////////////////////////////////////////////////////
-
-}} // namespace mp4v2::util
-
-#endif // MP4V2_UTIL_UTILITY_H