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