HAL
v4.5.0-83-g30c8f0afc
The Hardware Analyzer - a comprehensive reverse engineering and manipulation framework for gate-level netlists.
comment_manager.h
Go to the documentation of this file.
1
// MIT License
2
//
3
// Copyright (c) 2019 Ruhr University Bochum, Chair for Embedded Security. All Rights reserved.
4
// Copyright (c) 2021 Max Planck Institute for Security and Privacy. All Rights reserved.
5
//
6
// Permission is hereby granted, free of charge, to any person obtaining a copy
7
// of this software and associated documentation files (the "Software"), to deal
8
// in the Software without restriction, including without limitation the rights
9
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
// copies of the Software, and to permit persons to whom the Software is
11
// furnished to do so, subject to the following conditions:
12
//
13
// The above copyright notice and this permission notice shall be included in all
14
// copies or substantial portions of the Software.
15
//
16
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
// SOFTWARE.
23
24
#pragma once
25
26
#include <QObject>
27
#include <QList>
28
#include <QMultiHash>
29
30
#include "
gui/comment_system/comment_entry.h
"
31
#include "
gui/gui_def.h
"
32
#include "
hal_core/netlist/project_serializer.h
"
33
34
namespace
hal
35
{
39
class
CommentManager
:
public
QObject
,
public
ProjectSerializer
40
{
41
Q_OBJECT
42
43
public
:
44
CommentManager
(
QObject
*
parent
=
nullptr
);
45
46
~CommentManager
();
47
52
bool
restore
();
53
61
std::string
serialize
(
Netlist
* netlist,
const
std::filesystem::path& savedir,
bool
isAutosave)
override
;
62
68
void
deserialize
(
Netlist
* netlist,
const
std::filesystem::path& loaddir)
override
;
69
73
void
clear
();
74
81
QList<CommentEntry*>
getEntriesForNode
(
const
Node
& nd)
const
;
82
88
bool
contains
(
const
Node
& nd)
const
;
89
96
void
deleteComment
(
CommentEntry
* entry);
97
103
void
addComment
(
CommentEntry
* entry);
104
111
void
relayEntryModified
(
CommentEntry
* entry);
112
113
Q_SIGNALS
:
120
void
entryAboutToBeDeleted
(
CommentEntry
* entry);
121
128
void
entryAdded
(
CommentEntry
* entry);
129
137
void
entryModified
(
CommentEntry
* entry);
138
139
private
:
140
QMultiHash<Node,CommentEntry*>
mEntries;
141
bool
restoreInternal(
const
std::filesystem::path& loaddir,
const
std::string& relFilename);
142
};
143
}
hal::CommentEntry
The CommentEntry class encapsulated information related to a comment.
Definition:
comment_entry.h:43
hal::CommentManager
Definition:
comment_manager.h:40
hal::CommentManager::deserialize
void deserialize(Netlist *netlist, const std::filesystem::path &loaddir) override
Definition:
comment_manager.cpp:45
hal::CommentManager::CommentManager
CommentManager(QObject *parent=nullptr)
Definition:
comment_manager.cpp:11
hal::CommentManager::addComment
void addComment(CommentEntry *entry)
Definition:
comment_manager.cpp:133
hal::CommentManager::restore
bool restore()
Definition:
comment_manager.cpp:53
hal::CommentManager::serialize
std::string serialize(Netlist *netlist, const std::filesystem::path &savedir, bool isAutosave) override
Definition:
comment_manager.cpp:20
hal::CommentManager::relayEntryModified
void relayEntryModified(CommentEntry *entry)
Definition:
comment_manager.cpp:143
hal::CommentManager::entryAboutToBeDeleted
void entryAboutToBeDeleted(CommentEntry *entry)
hal::CommentManager::~CommentManager
~CommentManager()
Definition:
comment_manager.cpp:15
hal::CommentManager::contains
bool contains(const Node &nd) const
Definition:
comment_manager.cpp:112
hal::CommentManager::getEntriesForNode
QList< CommentEntry * > getEntriesForNode(const Node &nd) const
Definition:
comment_manager.cpp:107
hal::CommentManager::entryAdded
void entryAdded(CommentEntry *entry)
hal::CommentManager::deleteComment
void deleteComment(CommentEntry *entry)
Definition:
comment_manager.cpp:117
hal::CommentManager::clear
void clear()
Definition:
comment_manager.cpp:100
hal::CommentManager::entryModified
void entryModified(CommentEntry *entry)
hal::Netlist
Definition:
netlist.h:56
hal::Node
The Node class object represents a module or a gate.
Definition:
gui_def.h:61
hal::ProjectSerializer
Definition:
project_serializer.h:41
comment_entry.h
gui_def.h
hal
Definition:
defines.h:45
project_serializer.h
QList
QMultiHash
QObject
QObject::Q_OBJECT
Q_OBJECTQ_OBJECT
QObject::Q_SIGNALS
Q_SIGNALSQ_SIGNALS
QObject::parent
QObject * parent() const const
plugins
gui
include
gui
comment_system
comment_manager.h
Generated by
1.9.1