HAL
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
{
36
class
CommentManager
:
public
QObject
,
public
ProjectSerializer
37
{
38
Q_OBJECT
39
40
public
:
41
CommentManager
(
QObject
*
parent
=
nullptr
);
42
43
~CommentManager
();
44
49
bool
restore
();
50
58
std::string
serialize
(
Netlist
*
netlist
,
const
std::filesystem::path& savedir,
bool
isAutosave)
override
;
59
65
void
deserialize
(
Netlist
*
netlist
,
const
std::filesystem::path& loaddir)
override
;
66
70
void
clear
();
71
78
QList<CommentEntry*>
getEntriesForNode
(
const
Node
& nd)
const
;
79
85
bool
contains
(
const
Node
& nd)
const
;
86
94
void
deleteComment
(
CommentEntry
* entry);
95
101
void
addComment
(
CommentEntry
* entry);
102
110
void
relayEntryModified
(
CommentEntry
* entry);
111
112
Q_SIGNALS
:
119
void
entryAboutToBeDeleted
(
CommentEntry
* entry);
120
127
void
entryAdded
(
CommentEntry
* entry);
128
136
void
entryModified
(
CommentEntry
* entry);
137
138
private
:
139
QMultiHash<Node,CommentEntry*>
mEntries;
140
bool
restoreInternal(
const
std::filesystem::path& loaddir,
const
std::string& relFilename);
141
};
142
}
hal::CommentEntry
The CommentEntry class encapsulated information related to a comment.
Definition:
comment_entry.h:43
hal::CommentManager
Definition:
comment_manager.h:37
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:37
comment_entry.h
gui_def.h
hal
Definition:
parser_liberty.cpp:10
test_multiple.netlist
netlist
Definition:
test_multiple.py:27
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 on Fri Feb 14 2025 14:22:41 for HAL by
1.9.1