PandA-2024.02
design_flow_aux_step.cpp
Go to the documentation of this file.
1 /*
2  *
3  * _/_/_/ _/_/ _/ _/ _/_/_/ _/_/
4  * _/ _/ _/ _/ _/_/ _/ _/ _/ _/ _/
5  * _/_/_/ _/_/_/_/ _/ _/_/ _/ _/ _/_/_/_/
6  * _/ _/ _/ _/ _/ _/ _/ _/ _/
7  * _/ _/ _/ _/ _/ _/_/_/ _/ _/
8  *
9  * ***********************************************
10  * PandA Project
11  * URL: http://panda.dei.polimi.it
12  * Politecnico di Milano - DEIB
13  * System Architectures Group
14  * ***********************************************
15  * Copyright (C) 2004-2024 Politecnico di Milano
16  *
17  * This file is part of the PandA framework.
18  *
19  * The PandA framework is free software; you can redistribute it and/or modify
20  * it under the terms of the GNU General Public License as published by
21  * the Free Software Foundation; either version 3 of the License, or
22  * (at your option) any later version.
23  *
24  * This program is distributed in the hope that it will be useful,
25  * but WITHOUT ANY WARRANTY; without even the implied warranty of
26  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27  * GNU General Public License for more details.
28  *
29  * You should have received a copy of the GNU General Public License
30  * along with this program. If not, see <http://www.gnu.org/licenses/>.
31  *
32  */
43 #include "design_flow_aux_step.hpp"
44 
45 #include "exceptions.hpp" // for THROW_UNREACHABLE
46 #include "string_manipulation.hpp"
47 #include <ostream> // for operator<<, basic_ostream
48 #include <utility>
49 
51  const DesignFlowManagerConstRef _design_flow_manager,
52  const ParameterConstRef _parameters)
53  : DesignFlowStep(_design_flow_manager, _parameters), type(_type), name(std::move(_name))
54 {
55 }
56 
58 
60 {
61 }
62 
63 const std::string AuxDesignFlowStep::ComputeSignature(const std::string& name, const AuxDesignFlowStepType type)
64 {
65  return "AUX::" + STR(type) + "::" + name;
66 }
67 
69 {
71 }
72 
73 std::string AuxDesignFlowStep::GetName() const
74 {
75  return name;
76 }
77 
79 {
80  return ComputeSignature(name, type);
81 }
82 
83 void AuxDesignFlowStep::WriteDot(std::ostream& out) const
84 {
85  out << "shape=Msquare, label=\"" << name << "\"";
86 }
87 
88 DesignFlowStepFactoryConstRef AuxDesignFlowStep::CGetDesignFlowStepFactory() const
89 {
90  THROW_UNREACHABLE("This method should never be called");
91  return DesignFlowStepFactoryConstRef();
92 }
93 
95 {
96  return true;
97 }
void WriteDot(std::ostream &out) const override
Write the label for a dot graph.
std::string GetSignature() const override
Return a unified identifier of this design step.
Class for describing auxiliary steps in design flow.
void ComputeRelationships(DesignFlowStepSet &relationship, const DesignFlowStep::RelationshipType relationship_type) override
Compute the relationships of a step with other steps.
const std::string name
The name of this auxiliary design flow step.
bool HasToBeExecuted() const override
Check if this step has actually to be executed.
RelationshipType
The relationship type.
DesignFlowStepFactoryConstRef CGetDesignFlowStepFactory() const override
Return the factory to create this type of steps.
The base class for design step.
exceptions managed by PandA
std::string GetName() const override
Return the name of this design step.
Definition of hash function for EdgeDescriptor.
Definition: graph.hpp:1321
#define STR(s)
Macro which performs a lexical_cast to a string.
Auxiliary methods for manipulating string.
~AuxDesignFlowStep() override
Destructor.
#define THROW_UNREACHABLE(str_expr)
helper function used to specify that some points should never be reached
Definition: exceptions.hpp:292
DesignFlowStep_Status Exec() override
Execute the step.
AuxDesignFlowStep(std::string name, const AuxDesignFlowStepType type, const DesignFlowManagerConstRef design_flow_manager, const ParameterConstRef parameters)
Constructor.
DesignFlowStep_Status
The status of a step.
const AuxDesignFlowStepType type
The type of this auxiliary design flow step.
enum AuxDesignFlowStepType { DESIGN_FLOW_ENTRY, DESIGN_FLOW_EXIT } AuxDesignFlowStepType
Identifier of the auxiliary design flow steps.
Template borrowed from the ANTLR library by Terence Parr (http://www.jGuru.com - Software rights: htt...
Definition: refcount.hpp:94
static const std::string ComputeSignature(const std::string &name, const AuxDesignFlowStepType type)
Compute the signature of a sdf design flow step.

Generated on Mon Feb 12 2024 13:02:51 for PandA-2024.02 by doxygen 1.8.13