Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F1497583
DeluxeExecutionPolicy.h
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Size
2 KB
Referenced Files
None
Subscribers
None
DeluxeExecutionPolicy.h
View Options
//===-- rosa/deluxe/DeluxeExecutionPolicy.h ---------------------*- C++ -*-===//
//
// The RoSA Framework
//
//===----------------------------------------------------------------------===//
///
/// \file rosa/deluxe/DeluxeExecutionPolicy.h
///
/// \author David Juhasz (david.juhasz@tuwien.ac.at)
///
/// \date 2019
///
/// \brief Public interface of *execution policies* in the *deluxe interface*.
///
//===----------------------------------------------------------------------===//
#ifndef ROSA_DELUXE_DELUXEEXECUTIONPOLICY_H
#define ROSA_DELUXE_DELUXEEXECUTIONPOLICY_H
#include
"rosa/core/AgentHandle.hpp"
#include
<memory>
#include
<set>
#include
<vector>
namespace
rosa
{
namespace
deluxe
{
// Forward declaration of DeluxeSystem. Do not include the corresponding header
// in this file because of cyclic dependency.
class
DeluxeSystem
;
/// \todo Extend the interface with query functions about what kind of execution
/// policy is behind the interface. This can be done in relation to the existing
/// factory functions; for example, if the actual object is decimation and with
/// what rate.
class
DeluxeExecutionPolicy
{
protected
:
DeluxeExecutionPolicy
(
void
)
noexcept
=
default
;
private
:
DeluxeExecutionPolicy
(
const
DeluxeExecutionPolicy
&
)
=
delete
;
DeluxeExecutionPolicy
(
DeluxeExecutionPolicy
&&
)
=
delete
;
DeluxeExecutionPolicy
&
operator
=
(
const
DeluxeExecutionPolicy
&
)
=
delete
;
DeluxeExecutionPolicy
&
operator
=
(
DeluxeExecutionPolicy
&&
)
=
delete
;
public
:
virtual
~
DeluxeExecutionPolicy
(
void
)
noexcept
=
default
;
static
std
::
unique_ptr
<
DeluxeExecutionPolicy
>
decimation
(
const
size_t
D
);
static
std
::
unique_ptr
<
DeluxeExecutionPolicy
>
awaitAll
(
const
std
::
set
<
size_t
>
&
S
);
static
std
::
unique_ptr
<
DeluxeExecutionPolicy
>
awaitAny
(
const
std
::
set
<
size_t
>
&
S
);
virtual
bool
canHandle
(
const
AgentHandle
H
,
const
DeluxeSystem
&
S
)
const
noexcept
=
0
;
virtual
bool
doExecute
(
const
std
::
vector
<
bool
>
&
InputChanged
)
noexcept
=
0
;
virtual
std
::
string
dump
(
void
)
const
noexcept
=
0
;
protected
:
bool
isDeluxeAgent
(
const
AgentHandle
H
,
const
DeluxeSystem
&
S
)
const
noexcept
;
size_t
numberOfDeluxeAgentInputs
(
const
AgentHandle
H
,
const
DeluxeSystem
&
S
)
const
noexcept
;
};
}
// End namespace deluxe
}
// End namespace rosa
#endif
// ROSA_DELUXE_DELUXEEXECUTIONPOLICY_H
File Metadata
Details
Attached
Mime Type
text/x-c++
Expires
Sun, Mar 1, 9:36 PM (1 d, 11 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
286741
Default Alt Text
DeluxeExecutionPolicy.h (2 KB)
Attached To
Mode
R20 SoC_Rosa_repo
Attached
Detach File
Event Timeline
Log In to Comment