Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F386282
DeluxeSystemImpl.hpp
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Size
3 KB
Referenced Files
None
Subscribers
None
DeluxeSystemImpl.hpp
View Options
//===-- deluxe/DeluxeSystemImpl.hpp -----------------------------*- C++ -*-===//
//
// The RoSA Framework
//
//===----------------------------------------------------------------------===//
///
/// \file deluxe/DeluxeSystemImpl.hpp
///
/// \author David Juhasz (david.juhasz@tuwien.ac.at)
///
/// \date 2017
///
/// \brief Declaration of a basic implementation of the
/// \c rosa::deluxe::DeluxeSystem interface.
///
//===----------------------------------------------------------------------===//
#ifndef ROSA_LIB_DELUXE_DELUXESYSTEMIMPL_HPP
#define ROSA_LIB_DELUXE_DELUXESYSTEMIMPL_HPP
#include
"../core/MessagingSystemImpl.hpp"
#include
"rosa/deluxe/DeluxeSystem.hpp"
namespace
rosa
{
namespace
deluxe
{
/// Implements \c rosa::deluxe::DeluxeSystem by extending
/// \c rosa::MessagingSystemImpl.
class
DeluxeSystemImpl
:
public
DeluxeSystem
,
public
MessagingSystemImpl
{
/// Alies for the base-class \c rosa::MessagingSystemImpl.
using
Base
=
MessagingSystemImpl
;
public
:
/// Creates an instance.
///
/// \param Name name of the new instance
DeluxeSystemImpl
(
const
std
::
string
&
Name
)
noexcept
;
/// \defgroup DeluxeSystemImplCallForwardings
///
/// \c rosa::deluxe::DeluxeSystemImpl call forwardings
///
/// \note Simply forwarding calls to implementations provided by
/// \c rosa::deluxe::DeluxeSystem::Base for the \c rosa::MessagingSystem
/// interface.
///
/// \todo How could we use the inherited implementations in a simpler way?
///@{
bool
operator
==
(
const
System
&
Other
)
const
noexcept
override
{
return
Base
::
operator
==
(
Other
);
}
protected
:
id_t
nextId
(
void
)
noexcept
override
{
return
Base
::
nextId
();
}
bool
isSystemCleaned
(
void
)
const
noexcept
override
{
return
Base
::
isSystemCleaned
();
}
void
markCleaned
(
void
)
noexcept
override
{
Base
::
markCleaned
();
}
void
registerUnit
(
Unit
&
U
)
noexcept
override
{
Base
::
registerUnit
(
U
);
}
void
destroyUnit
(
Unit
&
U
)
noexcept
override
{
Base
::
destroyUnit
(
U
);
}
bool
isUnitRegistered
(
const
Unit
&
U
)
const
noexcept
override
{
return
Base
::
isUnitRegistered
(
U
);
}
public
:
const
std
::
string
&
name
(
void
)
const
noexcept
override
{
return
Base
::
name
();
}
size_t
numberOfConstructedUnits
(
void
)
const
noexcept
override
{
return
Base
::
numberOfConstructedUnits
();
}
size_t
numberOfLiveUnits
(
void
)
const
noexcept
override
{
return
Base
::
numberOfLiveUnits
();
}
bool
empty
(
void
)
const
noexcept
override
{
return
Base
::
empty
();
}
void
send
(
const
AgentHandle
&
H
,
message_t
&&
M
)
noexcept
override
{
Base
::
send
(
H
,
std
::
move
(
M
));
}
///@}
/// Tells whether a \c rosa::AgentHandle refers to a
/// \c rosa::deluxe::DeluxeSensor owned by \p this object.
///
/// \param H \c rosa::AgentHandle to check
///
/// \return whether \p H refers to a \c rosa::deluxe::DeluxeSensor owned by
/// \p this object
bool
isDeluxeSensor
(
const
AgentHandle
&
H
)
const
noexcept
override
;
/// Tells whether a \c rosa::AgentHandle refers to a
/// \c rosa::deluxe::DeluxeAgent owned by \p this object.
///
/// \param H \c rosa::AgentHandle to check
///
/// \return whether \p H refers to a \c rosa::deluxe::DeluxeAgent owned by
/// \p this object
bool
isDeluxeAgent
(
const
AgentHandle
&
H
)
const
noexcept
override
;
};
}
// End namespace deluxe
}
// End namespace rosa
#endif
// ROSA_LIB_DELUXE_DELUXESYSTEMIMPL_HPP
File Metadata
Details
Attached
Mime Type
text/x-c++
Expires
Wed, Jul 2, 12:13 PM (17 h, 49 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
157135
Default Alt Text
DeluxeSystemImpl.hpp (3 KB)
Attached To
Mode
R20 SoC_Rosa_repo
Attached
Detach File
Event Timeline
Log In to Comment