Chris@16
|
1 // (C) Copyright Gennadiy Rozental 2005-2008.
|
Chris@16
|
2 // Use, modification, and distribution are subject to the
|
Chris@16
|
3 // Boost Software License, Version 1.0. (See accompanying file
|
Chris@16
|
4 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
5
|
Chris@16
|
6 // See http://www.boost.org/libs/test for the library home page.
|
Chris@16
|
7 //
|
Chris@16
|
8 // File : $RCSfile$
|
Chris@16
|
9 //
|
Chris@16
|
10 // Version : $Revision: 54633 $
|
Chris@16
|
11 //
|
Chris@16
|
12 // Description : defines interface for argument_factory
|
Chris@16
|
13 // ***************************************************************************
|
Chris@16
|
14
|
Chris@16
|
15 #ifndef BOOST_RT_CLA_IFACE_ARGUMENT_FACTORY_HPP_062604GER
|
Chris@16
|
16 #define BOOST_RT_CLA_IFACE_ARGUMENT_FACTORY_HPP_062604GER
|
Chris@16
|
17
|
Chris@16
|
18 // Boost.Runtime.Parameter
|
Chris@16
|
19 #include <boost/test/utils/runtime/config.hpp>
|
Chris@16
|
20 #include <boost/test/utils/runtime/fwd.hpp>
|
Chris@16
|
21
|
Chris@16
|
22 #include <boost/test/utils/runtime/cla/fwd.hpp>
|
Chris@16
|
23
|
Chris@16
|
24 namespace boost {
|
Chris@16
|
25
|
Chris@16
|
26 namespace BOOST_RT_PARAM_NAMESPACE {
|
Chris@16
|
27
|
Chris@16
|
28 namespace cla {
|
Chris@16
|
29
|
Chris@16
|
30 // ************************************************************************** //
|
Chris@16
|
31 // ************** argument_factory ************** //
|
Chris@16
|
32 // ************************************************************************** //
|
Chris@16
|
33 // another name can be argument production policy
|
Chris@16
|
34
|
Chris@16
|
35 class argument_factory {
|
Chris@16
|
36 public:
|
Chris@16
|
37 // Argument factory interface
|
Chris@16
|
38 virtual argument_ptr produce_using( parameter& p, argv_traverser& tr ) = 0; /// produce argument based on input
|
Chris@16
|
39 virtual argument_ptr produce_using( parameter& p, parser const& ) = 0; /// produce argument based on internal generator and/or values of other parameters
|
Chris@16
|
40 virtual void argument_usage_info( format_stream& fs ) = 0; /// argument value format information
|
Chris@16
|
41 protected:
|
Chris@16
|
42 BOOST_TEST_PROTECTED_VIRTUAL ~argument_factory() {}
|
Chris@16
|
43 };
|
Chris@16
|
44
|
Chris@16
|
45 } // namespace boost
|
Chris@16
|
46
|
Chris@16
|
47 } // namespace BOOST_RT_PARAM_NAMESPACE
|
Chris@16
|
48
|
Chris@16
|
49 } // namespace cla
|
Chris@16
|
50
|
Chris@16
|
51 #endif // BOOST_RT_CLA_IFACE_ARGUMENT_FACTORY_HPP_062604GER
|