Layout.h
Go to the documentation of this file.
1/*
2 * This file is part of ArmarX.
3 *
4 * Copyright (C) 2011-2016, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
5 *
6 * ArmarX is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 *
10 * ArmarX is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 *
18 * @package
19 * @author
20 * @date
21 * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
22 * GNU General Public License
23 */
24#pragma once
25
26#include "graphviz/gvc.h"
27#ifdef WITH_CGRAPH
28#include <graphviz/cgraph.h>
29#else
30#include <graphviz/graph.h>
31#endif
32
33#include <memory>
34#include <mutex>
35
36namespace armarx
37{
38
39 using GvcPtr = GVC_t*;
40
41 using GraphPtr = Agraph_t*;
42 using NodePtr = Agnode_t*;
43 using EdgePtr = Agedge_t*;
44
45 /**
46 * @brief The LockableGraph struct allows for easy locking of a graphviz graph and its components.
47 */
49 {
51 {
52 }
53
54 /**
55 * @brief graph Graph that can be locked with mutex.
56 */
58 /**
59 * @brief mutex Mutex to lock graph
60 */
61 std::recursive_mutex mutex;
62 };
63
64 using LockableGraphPtr = std::shared_ptr<LockableGraph>;
65
66} // namespace armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
GVC_t * GvcPtr
Definition Layout.h:39
std::shared_ptr< LockableGraph > LockableGraphPtr
Definition Layout.h:64
Agraph_t * GraphPtr
Definition Layout.h:41
Agnode_t * NodePtr
Definition Layout.h:42
Agedge_t * EdgePtr
Definition Layout.h:43
GraphPtr graph
graph Graph that can be locked with mutex.
Definition Layout.h:57
std::recursive_mutex mutex
mutex Mutex to lock graph
Definition Layout.h:61
LockableGraph(GraphPtr g=NULL)
Definition Layout.h:50