UnCoVer (Using Coverability for Verification)
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
MinorPOCEnumerator.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 MINORPOCENUMERATOR_H_
21 #define MINORPOCENUMERATOR_H_
22 
23 #include "../analysis/MinPOCEnumerator.h"
24 #include "../rule_engine/PartialPOCEnumerator.h"
25 
26 namespace uncover {
27  namespace minors {
28 
36 
37  public:
38 
44 
51 
55  virtual ~MinorPOCEnumerator();
56 
57  virtual bool ended() const override;
58 
59  virtual MinorPOCEnumerator& operator++() override;
60 
61  virtual graphs::Hypergraph_sp operator*() const override;
62 
63  virtual bool resetWith(graphs::AnonRule_csp rule, IDType ruleID, graphs::Hypergraph_csp graph) override;
64 
66 
67  private:
68 
73  void checkAndThrow() const;
74 
79 
84 
89 
90  };
91 
92  } /* namespace minors */
93 } /* namespace uncover */
94 
95 #endif /* MINORPOCENUMERATOR_H_ */
rule_engine::PartialPOCEnumerator * partialEnumerator
Stores an encapsulated partialEnumerator.
Definition: MinorPOCEnumerator.h:78
This abstract class serves as a schema of an enumerator taking a rule and a graph and enumerating all...
Definition: MinPOCEnumerator.h:38
IDType graphID
The ID of the graph with which this enumerator was last initialized.
Definition: MinorPOCEnumerator.h:88
MinorPOCEnumerator()
Generates a new MinorPOCEnumerator without initialization.
Definition: MinorPOCEnumerator.cpp:32
virtual MinorPOCEnumerator & operator++() override
Computes the next minimal pushout complement if any.
Definition: MinorPOCEnumerator.cpp:51
void checkAndThrow() const
Checks if this MinorPOCEnumerator is in a valid state, i.e.
Definition: MinorPOCEnumerator.cpp:97
The PartialPOCEnumerator computes a subset of all pushout complement of a partial rule and a total ma...
Definition: PartialPOCEnumerator.h:40
shared_ptr< const Hypergraph > Hypergraph_csp
Alias for a shared pointer to a constant Hypergraph.
Definition: Hypergraph.h:90
Implements the abstract MinPOCEnumerator class for the minor ordering.
Definition: MinorPOCEnumerator.h:35
virtual graphs::Hypergraph_sp operator*() const override
Returns the last computed minimal pushout complement.
Definition: MinorPOCEnumerator.cpp:63
shared_ptr< const AnonRule > AnonRule_csp
Alias for a shared pointer to a constant AnonRule.
Definition: AnonRule.h:229
virtual bool ended() const override
Returns true, iff the last element was already enumerated, i.e.
Definition: MinorPOCEnumerator.cpp:46
IDType ruleID
The ID of the rule with which this enumerator was last initialized.
Definition: MinorPOCEnumerator.h:83
virtual bool resetWith(graphs::AnonRule_csp rule, IDType ruleID, graphs::Hypergraph_csp graph)=0
Initializes this enumerator to compute all minimal pushout complements for the given rule and graph...
unsigned int IDType
IDType is an (unsigned) integer specifically used as an Identifier of graphs, elements of graphs or a...
Definition: globals.h:53
virtual ~MinorPOCEnumerator()
Destroys this MinorPOCEnumerator.
Definition: MinorPOCEnumerator.cpp:44
virtual bool resetWith(graphs::AnonRule_csp rule, IDType ruleID, graphs::Hypergraph_csp graph) override
Initializes this enumerator to compute all minimal pushout complements for the given rule and graph...
Definition: MinorPOCEnumerator.cpp:68
shared_ptr< Hypergraph > Hypergraph_sp
Alias for a shared pointer to a Hypergraph.
Definition: Hypergraph.h:85