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
ResLvlTaskOperationFactory.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/ResLvlTaskOperationFactory.hh
11
/// @brief
12
/// @author ashworth
13
14
#ifndef INCLUDED_core_pack_task_operation_ResLvlTaskOperationFactory_hh
15
#define INCLUDED_core_pack_task_operation_ResLvlTaskOperationFactory_hh
16
17
// Unit Headers
18
#include <
core/pack/task/operation/ResLvlTaskOperationFactory.fwd.hh
>
19
20
// Package Headers
21
#include <
core/pack/task/operation/ResLvlTaskOperation.fwd.hh
>
22
#include <
core/pack/task/operation/ResLvlTaskOperationCreator.fwd.hh
>
23
24
// Utility Headers
25
#include <utility/pointer/ReferenceCount.hh>
26
#include <utility/tag/Tag.fwd.hh>
27
28
// c++ headers
29
// AUTO-REMOVED #include <string>
30
#include <map>
31
32
#ifdef PYROSETTA
33
#include <utility/tag/Tag.hh>
34
#endif
35
36
37
namespace
core {
38
namespace
pack {
39
namespace
task {
40
namespace
operation {
41
42
// singleton class
43
class
ResLvlTaskOperationFactory
44
{
45
public
:
46
typedef
std::map< std::string, ResLvlTaskOperationCreatorOP >
RLTOC_Map
;
47
typedef
utility::tag::Tag
Tag
;
48
typedef
utility::tag::TagPtr
TagPtr
;
49
50
public
:
51
static
ResLvlTaskOperationFactory
*
get_instance
();
52
void
factory_register
(
ResLvlTaskOperationCreatorOP
);
53
54
///@brief add a prototype, using its default type name as the map key
55
void
add_creator
(
ResLvlTaskOperationCreatorOP
);
56
bool
has_type
(
std::string
const
& )
const
;
57
58
///@brief return new ResLvlTaskOperation by key lookup in rlto_map_ (new ResLvlTaskOperation parses Tag if provided)
59
ResLvlTaskOperationOP
newRLTO
(
std::string
const
& )
const
;
60
61
private
:
62
ResLvlTaskOperationFactory
();
63
virtual
~ResLvlTaskOperationFactory
();
64
65
static
ResLvlTaskOperationFactory
*
instance_
;
66
RLTOC_Map
rltoc_map_
;
67
68
};
69
70
}
//namespace operation
71
}
//namespace task
72
}
//namespace pack
73
}
//namespace core
74
75
#endif
Generated on Sat Jun 1 2013 11:33:51 for Rosetta 3.5 by
1.8.4