UnCoVer (Using Coverability for Verification)
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
Hypergraph.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 DATA_STRUCTURESHYPERGRAPH_H
21 #define DATA_STRUCTURESHYPERGRAPH_H
22 
23 #include "AnonHypergraph.h"
24 #include "../basic_types/Streamable.h"
25 
26 namespace uncover {
27  namespace graphs {
28 
35  class Hypergraph : public AnonHypergraph
36  {
37 
38  public:
39 
44  Hypergraph(std::string name = "");
45 
51  Hypergraph(const AnonHypergraph& graph);
52 
58  Hypergraph(const Hypergraph& graph);
59 
63  virtual ~Hypergraph();
64 
69  IDType getID() const;
70 
71  virtual void streamTo(std::ostream& ost) const override;
72 
73  protected:
74 
78  IDType const id;
79 
80  };
81 
85  typedef shared_ptr<Hypergraph> Hypergraph_sp;
86 
90  typedef shared_ptr<const Hypergraph> Hypergraph_csp;
91 
92  }
93 }
94 
95 #endif
virtual void streamTo(std::ostream &ost) const override
Prints a string representation of this graph to the given stream.
Definition: Hypergraph.cpp:52
IDType getID() const
Returns the (unique) ID of this graph.
Definition: Hypergraph.cpp:47
string name
Stores the name of this graph.
Definition: AnonHypergraph.h:392
A Hypergraph represents a graph with a unique identifier.
Definition: Hypergraph.h:35
shared_ptr< const Hypergraph > Hypergraph_csp
Alias for a shared pointer to a constant Hypergraph.
Definition: Hypergraph.h:90
An AnonHypergraph is a data structure storing a hypergraph.
Definition: AnonHypergraph.h:43
Hypergraph(std::string name="")
Generates a new Hypergraph with the given name and without vertices or edges.
IDType const id
Stores the (unique) iD of this graph.
Definition: Hypergraph.h:78
virtual ~Hypergraph()
Deletes this Hypergraph, freeing all memory.
Definition: Hypergraph.cpp:45
unsigned int IDType
IDType is an (unsigned) integer specifically used as an Identifier of graphs, elements of graphs or a...
Definition: globals.h:53
shared_ptr< Hypergraph > Hypergraph_sp
Alias for a shared pointer to a Hypergraph.
Definition: Hypergraph.h:85