/***************************************************************************//**
 *
 * \file rosa/core/forward_declarations.h
 *
 * \author David Juhasz (david.juhasz@tuwien.ac.at)
 *
 * \date 2017
 *
 * \brief Necessary forward declarations of types in the *Core* library.
 *
 ******************************************************************************/

#ifndef ROSA_CORE_FORWARD_DECLARATIONS_H
#define ROSA_CORE_FORWARD_DECLARATIONS_H

#include <memory>

namespace rosa {

// Forward declarations of classes.
class Agent;
class Message;
class MessagingSystem;
class System;
class Unit;

/// Type alias used for `rosa::Unit` identifiers.
using id_t = uint64_t;

/// Type of a `std::unique_ptr` for an immutable *Message*, `rosa::Message`
/// instance.
using message_t = std::unique_ptr<Message>;

} // End namespace rosa

#endif // ROSA_CORE_FORWARD_DECLARATIONS_H

