UnCoVer (Using Coverability for Verification)
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
SubgraphRulePreparer.h
1 /***************************************************************************
2  * Copyright (C) 2014 by Jan Stückrath <jan.stueckrath@uni-due.de> *
3  * *
4  * This program is free software; you can redistribute it and/or modify *
5  * it under the terms of the GNU General Public License as published by *
6  * the Free Software Foundation; either version 2 of the License, or *
7  * (at your option) any later version. *
8  * *
9  * This program is distributed in the hope that it will be useful, *
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
12  * GNU General Public License for more details. *
13  * *
14  * You should have received a copy of the GNU General Public License *
15  * along with this program; if not, write to the *
16  * Free Software Foundation, Inc., *
17  * 51 Franklin St, Fifth Floor, Boston, MA 02110, USA *
18  ***************************************************************************/
19 
20 #ifndef SUBGRAPHRULEPREPARER_H_
21 #define SUBGRAPHRULEPREPARER_H_
22 
23 #include "../analysis/RulePreparer.h"
24 
25 namespace uncover {
26  namespace subgraphs {
27 
35 
36  public:
37 
42 
46  virtual ~SubgraphRulePreparer();
47 
48  virtual void prepareRule(graphs::Rule const& rule,
49  basic_types::CollectionCallback<graphs::Rule_sp>& callback) const override;
50 
51  virtual void prepareRule(graphs::UQRuleInstance const& rule,
53 
54  virtual bool isNoOpRule(graphs::AnonRule const& rule) const override;
55 
56  };
57 
61  typedef shared_ptr<SubgraphRulePreparer> SubgraphRulePreparer_sp;
62 
66  typedef shared_ptr<SubgraphRulePreparer const> SubgraphRulePreparer_csp;
67 
68  } /* namespace subgraphs */
69 } /* namespace uncover */
70 
71 #endif /* SUBGRAPHRULEPREPARER_H_ */
SubgraphRulePreparer()
Creates a new instance of this rule preparer.
Definition: SubgraphRulePreparer.cpp:145
virtual void prepareRule(graphs::Rule const &rule, basic_types::CollectionCallback< graphs::Rule_sp > &callback) const override
Takes a single rule and creates the prepared set of rules for this rule.
Definition: SubgraphRulePreparer.cpp:149
virtual bool isNoOpRule(graphs::AnonRule const &rule) const override
Checks if the given rule will only produce graphs already represented when the backward analysis is a...
Definition: SubgraphRulePreparer.cpp:157
This class prepares given rules to be used together with the subgraph order in the backward search...
Definition: SubgraphRulePreparer.h:34
Represents the data structure for a rule including a unique identifier.
Definition: Rule.h:38
AnonRule serves as a data structure of a rule object.
Definition: AnonRule.h:39
This class takes a rule and prepares it such that no special case handling is necessary while perform...
Definition: RulePreparer.h:37
shared_ptr< SubgraphRulePreparer > SubgraphRulePreparer_sp
Alias for a shared pointer of a SubgraphRulePreparer.
Definition: SubgraphRulePreparer.h:61
virtual ~SubgraphRulePreparer()
Destroys the current instance of this preparer.
Definition: SubgraphRulePreparer.cpp:147
The UQRuleInstance is a rule which is generated when UQRules are instantiated.
Definition: UQRuleInstance.h:35
shared_ptr< SubgraphRulePreparer const > SubgraphRulePreparer_csp
Alias for a shared pointer of a constant SubgraphRulePreparer.
Definition: SubgraphRulePreparer.h:66