xref: /aoo41x/main/registry/tools/options.hxx (revision cdf0e10c)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 #ifndef INCLUDED_REGISTRY_TOOLS_OPTIONS_HXX
29 #define INCLUDED_REGISTRY_TOOLS_OPTIONS_HXX
30 
31 #include <string>
32 #include <vector>
33 
34 namespace registry
35 {
36 namespace tools
37 {
38 class Options
39 {
40     std::string m_program;
41 
42     Options (Options const &);
43     Options & operator= (Options const &);
44 
45 public:
46     explicit Options (char const * program);
47     virtual ~Options();
48 
49     static bool checkArgument (std::vector< std::string > & rArgs, char const * arg, size_t len);
50 
51     bool initOptions (std::vector< std::string > & rArgs);
52     bool badOption (char const * reason, char const * option) const;
53 
54     std::string const & getProgramName() const { return m_program; }
55     bool printUsage() const;
56 
57 protected:
58     static  bool checkCommandFile(std::vector< std::string > & rArgs, char const * filename);
59 
60     virtual bool initOptions_Impl(std::vector< std::string > & rArgs) = 0;
61     virtual void printUsage_Impl() const = 0;
62 };
63 
64 } // namespace tools
65 } // namespace registry
66 
67 #endif /* INCLUDED_REGISTRY_TOOLS_OPTIONS_HXX */
68