Rosetta 3.5
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
src
core
pack
task
operation
ResFilterFactory.hh
Go to the documentation of this file.
1
// -*- mode:c++;tab-width:2;indent-tabs-mode:t;show-trailing-whitespace:t;rm-trailing-spaces:t -*-
2
// vi: set ts=2 noet:
3
//
4
// (c) Copyright Rosetta Commons Member Institutions.
5
// (c) This file is part of the Rosetta software suite and is made available under license.
6
// (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
7
// (c) For more information, see http://www.rosettacommons.org. Questions about this can be
8
// (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu.
9
10
/// @file core/pack/task/operation/ResFilterFactory.hh
11
/// @brief
12
/// @author ashworth
13
14
#ifndef INCLUDED_core_pack_task_operation_ResFilterFactory_hh
15
#define INCLUDED_core_pack_task_operation_ResFilterFactory_hh
16
17
// Unit Headers
18
#include <
core/pack/task/operation/ResFilterFactory.fwd.hh
>
19
20
// Package Headers
21
#include <
core/pack/task/operation/ResFilter.fwd.hh
>
22
#include <
core/pack/task/operation/ResFilterCreator.fwd.hh
>
23
24
// Utility Headers
25
#include <utility/pointer/ReferenceCount.hh>
26
#include <utility/tag/Tag.hh>
27
28
// c++ headers
29
#include <string>
30
#include <map>
31
32
#include <utility/vector0.hh>
33
34
35
namespace
core {
36
namespace
pack {
37
namespace
task {
38
namespace
operation {
39
40
class
ResFilterFactory
// singleton; no need to derive from RefCount : public utility::pointer::ReferenceCount
41
{
42
public
:
43
//typedef utility::pointer::ReferenceCount parent;
44
typedef
std::map< std::string, ResFilterCreatorOP >
ResFilterCreatorMap
;
45
typedef
utility::tag::Tag
Tag
;
46
typedef
utility::tag::TagPtr
TagPtr
;
47
48
public
:
49
static
ResFilterFactory
*
get_instance
();
50
void
factory_register
(
ResFilterCreatorOP
);
51
52
///@brief add a prototype, using its default type name as the map key
53
void
add_creator
(
ResFilterCreatorOP
);
54
bool
has_type
(
std::string
const
& )
const
;
55
56
///@brief return new ResFilter by key lookup in filter_map_ (new ResFilter parses Tag if provided)
57
ResFilterOP
newResFilter
(
std::string
const
&,
TagPtr
=
new
Tag
)
const
;
58
59
private
:
60
ResFilterFactory
();
61
virtual
~ResFilterFactory
();
62
63
static
ResFilterFactory
*
instance_
;
64
ResFilterCreatorMap
filter_creator_map_
;
65
66
};
67
68
}
//namespace operation
69
}
//namespace task
70
}
//namespace pack
71
}
//namespace core
72
73
#endif
Generated on Sat Jun 1 2013 11:33:51 for Rosetta 3.5 by
1.8.4