0.6.0
C++ to UML diagram generator based on Clang
Loading...
Searching...
No Matches
src
sequence_diagram
model
activity.h
Go to the documentation of this file.
1
/**
2
* @file src/sequence_diagram/model/activity.h
3
*
4
* Copyright (c) 2021-2025 Bartek Kryza <bkryza@gmail.com>
5
*
6
* Licensed under the Apache License, Version 2.0 (the "License");
7
* you may not use this file except in compliance with the License.
8
* You may obtain a copy of the License at
9
*
10
* http://www.apache.org/licenses/LICENSE-2.0
11
*
12
* Unless required by applicable law or agreed to in writing, software
13
* distributed under the License is distributed on an "AS IS" BASIS,
14
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
* See the License for the specific language governing permissions and
16
* limitations under the License.
17
*/
18
#pragma once
19
20
#include "
message.h
"
21
#include "
participant.h
"
22
23
#include <string>
24
#include <vector>
25
26
namespace
clanguml::sequence_diagram::model
{
27
28
/**
29
* @brief Model of a sequence diagram activity
30
*/
31
class
activity
{
32
public
:
33
/**
34
* @brief Constructor
35
*
36
* @param id Id of the participant parent for the activity
37
*/
38
activity
(
eid_t
id
);
39
40
/**
41
* @brief Add a message call to the activity
42
*
43
* @param m Message model
44
*/
45
void
add_message
(
message
m);
46
47
/**
48
* @brief Get list of messages in the activity
49
*
50
* @return Reference to list of messages in the activity
51
*/
52
std::vector<message> &
messages
();
53
54
/**
55
* @brief Get list of messages in the activity
56
*
57
* @return Reference to list of messages in the activity
58
*/
59
const
std::vector<message> &
messages
()
const
;
60
61
/**
62
* @brief Get the id of activity parent participant
63
*
64
* @return Id of activity participant
65
*/
66
eid_t
from
()
const
;
67
68
void
add_caller
(
eid_t
caller);
69
70
const
std::set<eid_t> &
callers
()
const
;
71
72
void
set_callers
(std::set<eid_t>
callers
);
73
74
private
:
75
/**
76
* Id of this activity. All messages originating from this activity must
77
* have `from` property set to this
78
*/
79
eid_t
from_
;
80
81
/**
82
* List of messages generated from this activity, in order.
83
*/
84
std::vector<message>
messages_
;
85
86
/**
87
* The set of caller ids, i.e. activities which send messages to this
88
* activity. This is necessary in order to optimize reverse call graph
89
* traversal for sequence diagrams with bounded end calls such as `to` and
90
* `from_to`.
91
*/
92
std::set<eid_t>
callers_
;
93
};
94
95
}
// namespace clanguml::sequence_diagram::model
Copyright © 2022-present
Bartek Kryza
Generated by
1.9.7