// Generated by using Rcpp::compileAttributes() -> do not edit by hand
// Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393

#include "../inst/include/simmer.h"
#include <Rcpp.h>

using namespace Rcpp;

#ifdef RCPP_USE_GLOBAL_ROSTREAM
Rcpp::Rostream<true>&  Rcpp::Rcout = Rcpp::Rcpp_cout_get();
Rcpp::Rostream<false>& Rcpp::Rcerr = Rcpp::Rcpp_cerr_get();
#endif

// Seize__new
SEXP Seize__new(const std::string& resource, int amount, std::vector<bool> cont, const std::vector<Environment>& trj, unsigned short mask);
RcppExport SEXP _simmer_Seize__new(SEXP resourceSEXP, SEXP amountSEXP, SEXP contSEXP, SEXP trjSEXP, SEXP maskSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::string& >::type resource(resourceSEXP);
    Rcpp::traits::input_parameter< int >::type amount(amountSEXP);
    Rcpp::traits::input_parameter< std::vector<bool> >::type cont(contSEXP);
    Rcpp::traits::input_parameter< const std::vector<Environment>& >::type trj(trjSEXP);
    Rcpp::traits::input_parameter< unsigned short >::type mask(maskSEXP);
    rcpp_result_gen = Rcpp::wrap(Seize__new(resource, amount, cont, trj, mask));
    return rcpp_result_gen;
END_RCPP
}
// Seize__new_func
SEXP Seize__new_func(const std::string& resource, const Function& amount, std::vector<bool> cont, const std::vector<Environment>& trj, unsigned short mask);
RcppExport SEXP _simmer_Seize__new_func(SEXP resourceSEXP, SEXP amountSEXP, SEXP contSEXP, SEXP trjSEXP, SEXP maskSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::string& >::type resource(resourceSEXP);
    Rcpp::traits::input_parameter< const Function& >::type amount(amountSEXP);
    Rcpp::traits::input_parameter< std::vector<bool> >::type cont(contSEXP);
    Rcpp::traits::input_parameter< const std::vector<Environment>& >::type trj(trjSEXP);
    Rcpp::traits::input_parameter< unsigned short >::type mask(maskSEXP);
    rcpp_result_gen = Rcpp::wrap(Seize__new_func(resource, amount, cont, trj, mask));
    return rcpp_result_gen;
END_RCPP
}
// SeizeSelected__new
SEXP SeizeSelected__new(int id, int amount, std::vector<bool> cont, const std::vector<Environment>& trj, unsigned short mask);
RcppExport SEXP _simmer_SeizeSelected__new(SEXP idSEXP, SEXP amountSEXP, SEXP contSEXP, SEXP trjSEXP, SEXP maskSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type id(idSEXP);
    Rcpp::traits::input_parameter< int >::type amount(amountSEXP);
    Rcpp::traits::input_parameter< std::vector<bool> >::type cont(contSEXP);
    Rcpp::traits::input_parameter< const std::vector<Environment>& >::type trj(trjSEXP);
    Rcpp::traits::input_parameter< unsigned short >::type mask(maskSEXP);
    rcpp_result_gen = Rcpp::wrap(SeizeSelected__new(id, amount, cont, trj, mask));
    return rcpp_result_gen;
END_RCPP
}
// SeizeSelected__new_func
SEXP SeizeSelected__new_func(int id, const Function& amount, std::vector<bool> cont, const std::vector<Environment>& trj, unsigned short mask);
RcppExport SEXP _simmer_SeizeSelected__new_func(SEXP idSEXP, SEXP amountSEXP, SEXP contSEXP, SEXP trjSEXP, SEXP maskSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type id(idSEXP);
    Rcpp::traits::input_parameter< const Function& >::type amount(amountSEXP);
    Rcpp::traits::input_parameter< std::vector<bool> >::type cont(contSEXP);
    Rcpp::traits::input_parameter< const std::vector<Environment>& >::type trj(trjSEXP);
    Rcpp::traits::input_parameter< unsigned short >::type mask(maskSEXP);
    rcpp_result_gen = Rcpp::wrap(SeizeSelected__new_func(id, amount, cont, trj, mask));
    return rcpp_result_gen;
END_RCPP
}
// Release__new
SEXP Release__new(const std::string& resource, int amount);
RcppExport SEXP _simmer_Release__new(SEXP resourceSEXP, SEXP amountSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::string& >::type resource(resourceSEXP);
    Rcpp::traits::input_parameter< int >::type amount(amountSEXP);
    rcpp_result_gen = Rcpp::wrap(Release__new(resource, amount));
    return rcpp_result_gen;
END_RCPP
}
// Release__new_func
SEXP Release__new_func(const std::string& resource, const Function& amount);
RcppExport SEXP _simmer_Release__new_func(SEXP resourceSEXP, SEXP amountSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::string& >::type resource(resourceSEXP);
    Rcpp::traits::input_parameter< const Function& >::type amount(amountSEXP);
    rcpp_result_gen = Rcpp::wrap(Release__new_func(resource, amount));
    return rcpp_result_gen;
END_RCPP
}
// ReleaseAll__new
SEXP ReleaseAll__new(const std::string& resource);
RcppExport SEXP _simmer_ReleaseAll__new(SEXP resourceSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::string& >::type resource(resourceSEXP);
    rcpp_result_gen = Rcpp::wrap(ReleaseAll__new(resource));
    return rcpp_result_gen;
END_RCPP
}
// ReleaseAll__new_void
SEXP ReleaseAll__new_void();
RcppExport SEXP _simmer_ReleaseAll__new_void() {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    rcpp_result_gen = Rcpp::wrap(ReleaseAll__new_void());
    return rcpp_result_gen;
END_RCPP
}
// ReleaseSelected__new
SEXP ReleaseSelected__new(int id, int amount);
RcppExport SEXP _simmer_ReleaseSelected__new(SEXP idSEXP, SEXP amountSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type id(idSEXP);
    Rcpp::traits::input_parameter< int >::type amount(amountSEXP);
    rcpp_result_gen = Rcpp::wrap(ReleaseSelected__new(id, amount));
    return rcpp_result_gen;
END_RCPP
}
// ReleaseSelected__new_func
SEXP ReleaseSelected__new_func(int id, const Function& amount);
RcppExport SEXP _simmer_ReleaseSelected__new_func(SEXP idSEXP, SEXP amountSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type id(idSEXP);
    Rcpp::traits::input_parameter< const Function& >::type amount(amountSEXP);
    rcpp_result_gen = Rcpp::wrap(ReleaseSelected__new_func(id, amount));
    return rcpp_result_gen;
END_RCPP
}
// ReleaseSelectedAll__new
SEXP ReleaseSelectedAll__new(int id);
RcppExport SEXP _simmer_ReleaseSelectedAll__new(SEXP idSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type id(idSEXP);
    rcpp_result_gen = Rcpp::wrap(ReleaseSelectedAll__new(id));
    return rcpp_result_gen;
END_RCPP
}
// SetCapacity__new
SEXP SetCapacity__new(const std::string& resource, double value, char mod);
RcppExport SEXP _simmer_SetCapacity__new(SEXP resourceSEXP, SEXP valueSEXP, SEXP modSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::string& >::type resource(resourceSEXP);
    Rcpp::traits::input_parameter< double >::type value(valueSEXP);
    Rcpp::traits::input_parameter< char >::type mod(modSEXP);
    rcpp_result_gen = Rcpp::wrap(SetCapacity__new(resource, value, mod));
    return rcpp_result_gen;
END_RCPP
}
// SetCapacity__new_func
SEXP SetCapacity__new_func(const std::string& resource, const Function& value, char mod);
RcppExport SEXP _simmer_SetCapacity__new_func(SEXP resourceSEXP, SEXP valueSEXP, SEXP modSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::string& >::type resource(resourceSEXP);
    Rcpp::traits::input_parameter< const Function& >::type value(valueSEXP);
    Rcpp::traits::input_parameter< char >::type mod(modSEXP);
    rcpp_result_gen = Rcpp::wrap(SetCapacity__new_func(resource, value, mod));
    return rcpp_result_gen;
END_RCPP
}
// SetCapacitySelected__new
SEXP SetCapacitySelected__new(int id, double value, char mod);
RcppExport SEXP _simmer_SetCapacitySelected__new(SEXP idSEXP, SEXP valueSEXP, SEXP modSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type id(idSEXP);
    Rcpp::traits::input_parameter< double >::type value(valueSEXP);
    Rcpp::traits::input_parameter< char >::type mod(modSEXP);
    rcpp_result_gen = Rcpp::wrap(SetCapacitySelected__new(id, value, mod));
    return rcpp_result_gen;
END_RCPP
}
// SetCapacitySelected__new_func
SEXP SetCapacitySelected__new_func(int id, const Function& value, char mod);
RcppExport SEXP _simmer_SetCapacitySelected__new_func(SEXP idSEXP, SEXP valueSEXP, SEXP modSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type id(idSEXP);
    Rcpp::traits::input_parameter< const Function& >::type value(valueSEXP);
    Rcpp::traits::input_parameter< char >::type mod(modSEXP);
    rcpp_result_gen = Rcpp::wrap(SetCapacitySelected__new_func(id, value, mod));
    return rcpp_result_gen;
END_RCPP
}
// SetQueue__new
SEXP SetQueue__new(const std::string& resource, double value, char mod);
RcppExport SEXP _simmer_SetQueue__new(SEXP resourceSEXP, SEXP valueSEXP, SEXP modSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::string& >::type resource(resourceSEXP);
    Rcpp::traits::input_parameter< double >::type value(valueSEXP);
    Rcpp::traits::input_parameter< char >::type mod(modSEXP);
    rcpp_result_gen = Rcpp::wrap(SetQueue__new(resource, value, mod));
    return rcpp_result_gen;
END_RCPP
}
// SetQueue__new_func
SEXP SetQueue__new_func(const std::string& resource, const Function& value, char mod);
RcppExport SEXP _simmer_SetQueue__new_func(SEXP resourceSEXP, SEXP valueSEXP, SEXP modSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::string& >::type resource(resourceSEXP);
    Rcpp::traits::input_parameter< const Function& >::type value(valueSEXP);
    Rcpp::traits::input_parameter< char >::type mod(modSEXP);
    rcpp_result_gen = Rcpp::wrap(SetQueue__new_func(resource, value, mod));
    return rcpp_result_gen;
END_RCPP
}
// SetQueueSelected__new
SEXP SetQueueSelected__new(int id, double value, char mod);
RcppExport SEXP _simmer_SetQueueSelected__new(SEXP idSEXP, SEXP valueSEXP, SEXP modSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type id(idSEXP);
    Rcpp::traits::input_parameter< double >::type value(valueSEXP);
    Rcpp::traits::input_parameter< char >::type mod(modSEXP);
    rcpp_result_gen = Rcpp::wrap(SetQueueSelected__new(id, value, mod));
    return rcpp_result_gen;
END_RCPP
}
// SetQueueSelected__new_func
SEXP SetQueueSelected__new_func(int id, const Function& value, char mod);
RcppExport SEXP _simmer_SetQueueSelected__new_func(SEXP idSEXP, SEXP valueSEXP, SEXP modSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type id(idSEXP);
    Rcpp::traits::input_parameter< const Function& >::type value(valueSEXP);
    Rcpp::traits::input_parameter< char >::type mod(modSEXP);
    rcpp_result_gen = Rcpp::wrap(SetQueueSelected__new_func(id, value, mod));
    return rcpp_result_gen;
END_RCPP
}
// Select__new
SEXP Select__new(const std::vector<std::string>& resources, const std::string& policy, int id);
RcppExport SEXP _simmer_Select__new(SEXP resourcesSEXP, SEXP policySEXP, SEXP idSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::vector<std::string>& >::type resources(resourcesSEXP);
    Rcpp::traits::input_parameter< const std::string& >::type policy(policySEXP);
    Rcpp::traits::input_parameter< int >::type id(idSEXP);
    rcpp_result_gen = Rcpp::wrap(Select__new(resources, policy, id));
    return rcpp_result_gen;
END_RCPP
}
// Select__new_func
SEXP Select__new_func(const Function& resources, const std::string& policy, int id);
RcppExport SEXP _simmer_Select__new_func(SEXP resourcesSEXP, SEXP policySEXP, SEXP idSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Function& >::type resources(resourcesSEXP);
    Rcpp::traits::input_parameter< const std::string& >::type policy(policySEXP);
    Rcpp::traits::input_parameter< int >::type id(idSEXP);
    rcpp_result_gen = Rcpp::wrap(Select__new_func(resources, policy, id));
    return rcpp_result_gen;
END_RCPP
}
// SetAttribute__new
SEXP SetAttribute__new(const std::vector<std::string>& keys, const std::vector<double>& values, bool global, char mod, double init);
RcppExport SEXP _simmer_SetAttribute__new(SEXP keysSEXP, SEXP valuesSEXP, SEXP globalSEXP, SEXP modSEXP, SEXP initSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::vector<std::string>& >::type keys(keysSEXP);
    Rcpp::traits::input_parameter< const std::vector<double>& >::type values(valuesSEXP);
    Rcpp::traits::input_parameter< bool >::type global(globalSEXP);
    Rcpp::traits::input_parameter< char >::type mod(modSEXP);
    Rcpp::traits::input_parameter< double >::type init(initSEXP);
    rcpp_result_gen = Rcpp::wrap(SetAttribute__new(keys, values, global, mod, init));
    return rcpp_result_gen;
END_RCPP
}
// SetAttribute__new_func1
SEXP SetAttribute__new_func1(const Function& keys, const std::vector<double>& values, bool global, char mod, double init);
RcppExport SEXP _simmer_SetAttribute__new_func1(SEXP keysSEXP, SEXP valuesSEXP, SEXP globalSEXP, SEXP modSEXP, SEXP initSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Function& >::type keys(keysSEXP);
    Rcpp::traits::input_parameter< const std::vector<double>& >::type values(valuesSEXP);
    Rcpp::traits::input_parameter< bool >::type global(globalSEXP);
    Rcpp::traits::input_parameter< char >::type mod(modSEXP);
    Rcpp::traits::input_parameter< double >::type init(initSEXP);
    rcpp_result_gen = Rcpp::wrap(SetAttribute__new_func1(keys, values, global, mod, init));
    return rcpp_result_gen;
END_RCPP
}
// SetAttribute__new_func2
SEXP SetAttribute__new_func2(const std::vector<std::string>& keys, const Function& values, bool global, char mod, double init);
RcppExport SEXP _simmer_SetAttribute__new_func2(SEXP keysSEXP, SEXP valuesSEXP, SEXP globalSEXP, SEXP modSEXP, SEXP initSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::vector<std::string>& >::type keys(keysSEXP);
    Rcpp::traits::input_parameter< const Function& >::type values(valuesSEXP);
    Rcpp::traits::input_parameter< bool >::type global(globalSEXP);
    Rcpp::traits::input_parameter< char >::type mod(modSEXP);
    Rcpp::traits::input_parameter< double >::type init(initSEXP);
    rcpp_result_gen = Rcpp::wrap(SetAttribute__new_func2(keys, values, global, mod, init));
    return rcpp_result_gen;
END_RCPP
}
// SetAttribute__new_func3
SEXP SetAttribute__new_func3(const Function& keys, const Function& values, bool global, char mod, double init);
RcppExport SEXP _simmer_SetAttribute__new_func3(SEXP keysSEXP, SEXP valuesSEXP, SEXP globalSEXP, SEXP modSEXP, SEXP initSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Function& >::type keys(keysSEXP);
    Rcpp::traits::input_parameter< const Function& >::type values(valuesSEXP);
    Rcpp::traits::input_parameter< bool >::type global(globalSEXP);
    Rcpp::traits::input_parameter< char >::type mod(modSEXP);
    Rcpp::traits::input_parameter< double >::type init(initSEXP);
    rcpp_result_gen = Rcpp::wrap(SetAttribute__new_func3(keys, values, global, mod, init));
    return rcpp_result_gen;
END_RCPP
}
// Activate__new
SEXP Activate__new(const std::vector<std::string>& sources);
RcppExport SEXP _simmer_Activate__new(SEXP sourcesSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::vector<std::string>& >::type sources(sourcesSEXP);
    rcpp_result_gen = Rcpp::wrap(Activate__new(sources));
    return rcpp_result_gen;
END_RCPP
}
// Activate__new_func
SEXP Activate__new_func(const Function& sources);
RcppExport SEXP _simmer_Activate__new_func(SEXP sourcesSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Function& >::type sources(sourcesSEXP);
    rcpp_result_gen = Rcpp::wrap(Activate__new_func(sources));
    return rcpp_result_gen;
END_RCPP
}
// Deactivate__new
SEXP Deactivate__new(const std::vector<std::string>& sources);
RcppExport SEXP _simmer_Deactivate__new(SEXP sourcesSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::vector<std::string>& >::type sources(sourcesSEXP);
    rcpp_result_gen = Rcpp::wrap(Deactivate__new(sources));
    return rcpp_result_gen;
END_RCPP
}
// Deactivate__new_func
SEXP Deactivate__new_func(const Function& sources);
RcppExport SEXP _simmer_Deactivate__new_func(SEXP sourcesSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Function& >::type sources(sourcesSEXP);
    rcpp_result_gen = Rcpp::wrap(Deactivate__new_func(sources));
    return rcpp_result_gen;
END_RCPP
}
// SetTraj__new
SEXP SetTraj__new(const std::vector<std::string>& sources, const Environment& trj);
RcppExport SEXP _simmer_SetTraj__new(SEXP sourcesSEXP, SEXP trjSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::vector<std::string>& >::type sources(sourcesSEXP);
    Rcpp::traits::input_parameter< const Environment& >::type trj(trjSEXP);
    rcpp_result_gen = Rcpp::wrap(SetTraj__new(sources, trj));
    return rcpp_result_gen;
END_RCPP
}
// SetTraj__new_func
SEXP SetTraj__new_func(const Function& sources, const Environment& trj);
RcppExport SEXP _simmer_SetTraj__new_func(SEXP sourcesSEXP, SEXP trjSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Function& >::type sources(sourcesSEXP);
    Rcpp::traits::input_parameter< const Environment& >::type trj(trjSEXP);
    rcpp_result_gen = Rcpp::wrap(SetTraj__new_func(sources, trj));
    return rcpp_result_gen;
END_RCPP
}
// SetSourceFn__new
SEXP SetSourceFn__new(const std::vector<std::string>& sources, const Function& dist);
RcppExport SEXP _simmer_SetSourceFn__new(SEXP sourcesSEXP, SEXP distSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::vector<std::string>& >::type sources(sourcesSEXP);
    Rcpp::traits::input_parameter< const Function& >::type dist(distSEXP);
    rcpp_result_gen = Rcpp::wrap(SetSourceFn__new(sources, dist));
    return rcpp_result_gen;
END_RCPP
}
// SetSourceFn__new_func
SEXP SetSourceFn__new_func(const Function& sources, const Function& dist);
RcppExport SEXP _simmer_SetSourceFn__new_func(SEXP sourcesSEXP, SEXP distSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Function& >::type sources(sourcesSEXP);
    Rcpp::traits::input_parameter< const Function& >::type dist(distSEXP);
    rcpp_result_gen = Rcpp::wrap(SetSourceFn__new_func(sources, dist));
    return rcpp_result_gen;
END_RCPP
}
// SetSourceDF__new
SEXP SetSourceDF__new(const std::vector<std::string>& sources, const DataFrame& data);
RcppExport SEXP _simmer_SetSourceDF__new(SEXP sourcesSEXP, SEXP dataSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::vector<std::string>& >::type sources(sourcesSEXP);
    Rcpp::traits::input_parameter< const DataFrame& >::type data(dataSEXP);
    rcpp_result_gen = Rcpp::wrap(SetSourceDF__new(sources, data));
    return rcpp_result_gen;
END_RCPP
}
// SetSourceDF__new_func
SEXP SetSourceDF__new_func(const Function& sources, const DataFrame& data);
RcppExport SEXP _simmer_SetSourceDF__new_func(SEXP sourcesSEXP, SEXP dataSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Function& >::type sources(sourcesSEXP);
    Rcpp::traits::input_parameter< const DataFrame& >::type data(dataSEXP);
    rcpp_result_gen = Rcpp::wrap(SetSourceDF__new_func(sources, data));
    return rcpp_result_gen;
END_RCPP
}
// SetPrior__new
SEXP SetPrior__new(const std::vector<int>& values, char mod);
RcppExport SEXP _simmer_SetPrior__new(SEXP valuesSEXP, SEXP modSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::vector<int>& >::type values(valuesSEXP);
    Rcpp::traits::input_parameter< char >::type mod(modSEXP);
    rcpp_result_gen = Rcpp::wrap(SetPrior__new(values, mod));
    return rcpp_result_gen;
END_RCPP
}
// SetPrior__new_func
SEXP SetPrior__new_func(const Function& values, char mod);
RcppExport SEXP _simmer_SetPrior__new_func(SEXP valuesSEXP, SEXP modSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Function& >::type values(valuesSEXP);
    Rcpp::traits::input_parameter< char >::type mod(modSEXP);
    rcpp_result_gen = Rcpp::wrap(SetPrior__new_func(values, mod));
    return rcpp_result_gen;
END_RCPP
}
// Timeout__new
SEXP Timeout__new(double delay);
RcppExport SEXP _simmer_Timeout__new(SEXP delaySEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< double >::type delay(delaySEXP);
    rcpp_result_gen = Rcpp::wrap(Timeout__new(delay));
    return rcpp_result_gen;
END_RCPP
}
// Timeout__new_func
SEXP Timeout__new_func(const Function& task);
RcppExport SEXP _simmer_Timeout__new_func(SEXP taskSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Function& >::type task(taskSEXP);
    rcpp_result_gen = Rcpp::wrap(Timeout__new_func(task));
    return rcpp_result_gen;
END_RCPP
}
// Timeout__new_attr
SEXP Timeout__new_attr(const std::string& key, bool global);
RcppExport SEXP _simmer_Timeout__new_attr(SEXP keySEXP, SEXP globalSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::string& >::type key(keySEXP);
    Rcpp::traits::input_parameter< bool >::type global(globalSEXP);
    rcpp_result_gen = Rcpp::wrap(Timeout__new_attr(key, global));
    return rcpp_result_gen;
END_RCPP
}
// Branch__new
SEXP Branch__new(const Function& option, std::vector<bool> cont, const std::vector<Environment>& trj);
RcppExport SEXP _simmer_Branch__new(SEXP optionSEXP, SEXP contSEXP, SEXP trjSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Function& >::type option(optionSEXP);
    Rcpp::traits::input_parameter< std::vector<bool> >::type cont(contSEXP);
    Rcpp::traits::input_parameter< const std::vector<Environment>& >::type trj(trjSEXP);
    rcpp_result_gen = Rcpp::wrap(Branch__new(option, cont, trj));
    return rcpp_result_gen;
END_RCPP
}
// Rollback__new1
SEXP Rollback__new1(const std::string& target, int times);
RcppExport SEXP _simmer_Rollback__new1(SEXP targetSEXP, SEXP timesSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::string& >::type target(targetSEXP);
    Rcpp::traits::input_parameter< int >::type times(timesSEXP);
    rcpp_result_gen = Rcpp::wrap(Rollback__new1(target, times));
    return rcpp_result_gen;
END_RCPP
}
// Rollback__new2
SEXP Rollback__new2(int target, int times);
RcppExport SEXP _simmer_Rollback__new2(SEXP targetSEXP, SEXP timesSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type target(targetSEXP);
    Rcpp::traits::input_parameter< int >::type times(timesSEXP);
    rcpp_result_gen = Rcpp::wrap(Rollback__new2(target, times));
    return rcpp_result_gen;
END_RCPP
}
// Rollback__new_func1
SEXP Rollback__new_func1(const std::string& target, const Function& check);
RcppExport SEXP _simmer_Rollback__new_func1(SEXP targetSEXP, SEXP checkSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::string& >::type target(targetSEXP);
    Rcpp::traits::input_parameter< const Function& >::type check(checkSEXP);
    rcpp_result_gen = Rcpp::wrap(Rollback__new_func1(target, check));
    return rcpp_result_gen;
END_RCPP
}
// Rollback__new_func2
SEXP Rollback__new_func2(int target, const Function& check);
RcppExport SEXP _simmer_Rollback__new_func2(SEXP targetSEXP, SEXP checkSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type target(targetSEXP);
    Rcpp::traits::input_parameter< const Function& >::type check(checkSEXP);
    rcpp_result_gen = Rcpp::wrap(Rollback__new_func2(target, check));
    return rcpp_result_gen;
END_RCPP
}
// Leave__new
SEXP Leave__new(double prob, const std::vector<Environment>& trj, bool keep_seized);
RcppExport SEXP _simmer_Leave__new(SEXP probSEXP, SEXP trjSEXP, SEXP keep_seizedSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< double >::type prob(probSEXP);
    Rcpp::traits::input_parameter< const std::vector<Environment>& >::type trj(trjSEXP);
    Rcpp::traits::input_parameter< bool >::type keep_seized(keep_seizedSEXP);
    rcpp_result_gen = Rcpp::wrap(Leave__new(prob, trj, keep_seized));
    return rcpp_result_gen;
END_RCPP
}
// HandleUnfinished__new
SEXP HandleUnfinished__new(const std::vector<Environment>& trj);
RcppExport SEXP _simmer_HandleUnfinished__new(SEXP trjSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::vector<Environment>& >::type trj(trjSEXP);
    rcpp_result_gen = Rcpp::wrap(HandleUnfinished__new(trj));
    return rcpp_result_gen;
END_RCPP
}
// Leave__new_func
SEXP Leave__new_func(const Function& prob, const std::vector<Environment>& trj, bool keep_seized);
RcppExport SEXP _simmer_Leave__new_func(SEXP probSEXP, SEXP trjSEXP, SEXP keep_seizedSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Function& >::type prob(probSEXP);
    Rcpp::traits::input_parameter< const std::vector<Environment>& >::type trj(trjSEXP);
    Rcpp::traits::input_parameter< bool >::type keep_seized(keep_seizedSEXP);
    rcpp_result_gen = Rcpp::wrap(Leave__new_func(prob, trj, keep_seized));
    return rcpp_result_gen;
END_RCPP
}
// Clone__new
SEXP Clone__new(int n, const std::vector<Environment>& trj);
RcppExport SEXP _simmer_Clone__new(SEXP nSEXP, SEXP trjSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type n(nSEXP);
    Rcpp::traits::input_parameter< const std::vector<Environment>& >::type trj(trjSEXP);
    rcpp_result_gen = Rcpp::wrap(Clone__new(n, trj));
    return rcpp_result_gen;
END_RCPP
}
// Clone__new_func
SEXP Clone__new_func(const Function& n, const std::vector<Environment>& trj);
RcppExport SEXP _simmer_Clone__new_func(SEXP nSEXP, SEXP trjSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Function& >::type n(nSEXP);
    Rcpp::traits::input_parameter< const std::vector<Environment>& >::type trj(trjSEXP);
    rcpp_result_gen = Rcpp::wrap(Clone__new_func(n, trj));
    return rcpp_result_gen;
END_RCPP
}
// Synchronize__new
SEXP Synchronize__new(bool wait, bool terminate);
RcppExport SEXP _simmer_Synchronize__new(SEXP waitSEXP, SEXP terminateSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< bool >::type wait(waitSEXP);
    Rcpp::traits::input_parameter< bool >::type terminate(terminateSEXP);
    rcpp_result_gen = Rcpp::wrap(Synchronize__new(wait, terminate));
    return rcpp_result_gen;
END_RCPP
}
// Batch__new
SEXP Batch__new(int n, double timeout, bool permanent, const std::string& name);
RcppExport SEXP _simmer_Batch__new(SEXP nSEXP, SEXP timeoutSEXP, SEXP permanentSEXP, SEXP nameSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type n(nSEXP);
    Rcpp::traits::input_parameter< double >::type timeout(timeoutSEXP);
    Rcpp::traits::input_parameter< bool >::type permanent(permanentSEXP);
    Rcpp::traits::input_parameter< const std::string& >::type name(nameSEXP);
    rcpp_result_gen = Rcpp::wrap(Batch__new(n, timeout, permanent, name));
    return rcpp_result_gen;
END_RCPP
}
// Batch__new_func1
SEXP Batch__new_func1(const Function& n, double timeout, bool permanent, const std::string& name);
RcppExport SEXP _simmer_Batch__new_func1(SEXP nSEXP, SEXP timeoutSEXP, SEXP permanentSEXP, SEXP nameSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Function& >::type n(nSEXP);
    Rcpp::traits::input_parameter< double >::type timeout(timeoutSEXP);
    Rcpp::traits::input_parameter< bool >::type permanent(permanentSEXP);
    Rcpp::traits::input_parameter< const std::string& >::type name(nameSEXP);
    rcpp_result_gen = Rcpp::wrap(Batch__new_func1(n, timeout, permanent, name));
    return rcpp_result_gen;
END_RCPP
}
// Batch__new_func2
SEXP Batch__new_func2(int n, const Function& timeout, bool permanent, const std::string& name);
RcppExport SEXP _simmer_Batch__new_func2(SEXP nSEXP, SEXP timeoutSEXP, SEXP permanentSEXP, SEXP nameSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type n(nSEXP);
    Rcpp::traits::input_parameter< const Function& >::type timeout(timeoutSEXP);
    Rcpp::traits::input_parameter< bool >::type permanent(permanentSEXP);
    Rcpp::traits::input_parameter< const std::string& >::type name(nameSEXP);
    rcpp_result_gen = Rcpp::wrap(Batch__new_func2(n, timeout, permanent, name));
    return rcpp_result_gen;
END_RCPP
}
// Batch__new_func3
SEXP Batch__new_func3(const Function& n, const Function& timeout, bool permanent, const std::string& name);
RcppExport SEXP _simmer_Batch__new_func3(SEXP nSEXP, SEXP timeoutSEXP, SEXP permanentSEXP, SEXP nameSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Function& >::type n(nSEXP);
    Rcpp::traits::input_parameter< const Function& >::type timeout(timeoutSEXP);
    Rcpp::traits::input_parameter< bool >::type permanent(permanentSEXP);
    Rcpp::traits::input_parameter< const std::string& >::type name(nameSEXP);
    rcpp_result_gen = Rcpp::wrap(Batch__new_func3(n, timeout, permanent, name));
    return rcpp_result_gen;
END_RCPP
}
// Batch__new_func4
SEXP Batch__new_func4(int n, double timeout, bool permanent, const std::string& name, const Function& rule);
RcppExport SEXP _simmer_Batch__new_func4(SEXP nSEXP, SEXP timeoutSEXP, SEXP permanentSEXP, SEXP nameSEXP, SEXP ruleSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type n(nSEXP);
    Rcpp::traits::input_parameter< double >::type timeout(timeoutSEXP);
    Rcpp::traits::input_parameter< bool >::type permanent(permanentSEXP);
    Rcpp::traits::input_parameter< const std::string& >::type name(nameSEXP);
    Rcpp::traits::input_parameter< const Function& >::type rule(ruleSEXP);
    rcpp_result_gen = Rcpp::wrap(Batch__new_func4(n, timeout, permanent, name, rule));
    return rcpp_result_gen;
END_RCPP
}
// Batch__new_func5
SEXP Batch__new_func5(const Function& n, double timeout, bool permanent, const std::string& name, const Function& rule);
RcppExport SEXP _simmer_Batch__new_func5(SEXP nSEXP, SEXP timeoutSEXP, SEXP permanentSEXP, SEXP nameSEXP, SEXP ruleSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Function& >::type n(nSEXP);
    Rcpp::traits::input_parameter< double >::type timeout(timeoutSEXP);
    Rcpp::traits::input_parameter< bool >::type permanent(permanentSEXP);
    Rcpp::traits::input_parameter< const std::string& >::type name(nameSEXP);
    Rcpp::traits::input_parameter< const Function& >::type rule(ruleSEXP);
    rcpp_result_gen = Rcpp::wrap(Batch__new_func5(n, timeout, permanent, name, rule));
    return rcpp_result_gen;
END_RCPP
}
// Batch__new_func6
SEXP Batch__new_func6(int n, const Function& timeout, bool permanent, const std::string& name, const Function& rule);
RcppExport SEXP _simmer_Batch__new_func6(SEXP nSEXP, SEXP timeoutSEXP, SEXP permanentSEXP, SEXP nameSEXP, SEXP ruleSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type n(nSEXP);
    Rcpp::traits::input_parameter< const Function& >::type timeout(timeoutSEXP);
    Rcpp::traits::input_parameter< bool >::type permanent(permanentSEXP);
    Rcpp::traits::input_parameter< const std::string& >::type name(nameSEXP);
    Rcpp::traits::input_parameter< const Function& >::type rule(ruleSEXP);
    rcpp_result_gen = Rcpp::wrap(Batch__new_func6(n, timeout, permanent, name, rule));
    return rcpp_result_gen;
END_RCPP
}
// Batch__new_func7
SEXP Batch__new_func7(const Function& n, const Function& timeout, bool permanent, const std::string& name, const Function& rule);
RcppExport SEXP _simmer_Batch__new_func7(SEXP nSEXP, SEXP timeoutSEXP, SEXP permanentSEXP, SEXP nameSEXP, SEXP ruleSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Function& >::type n(nSEXP);
    Rcpp::traits::input_parameter< const Function& >::type timeout(timeoutSEXP);
    Rcpp::traits::input_parameter< bool >::type permanent(permanentSEXP);
    Rcpp::traits::input_parameter< const std::string& >::type name(nameSEXP);
    Rcpp::traits::input_parameter< const Function& >::type rule(ruleSEXP);
    rcpp_result_gen = Rcpp::wrap(Batch__new_func7(n, timeout, permanent, name, rule));
    return rcpp_result_gen;
END_RCPP
}
// Separate__new
SEXP Separate__new();
RcppExport SEXP _simmer_Separate__new() {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    rcpp_result_gen = Rcpp::wrap(Separate__new());
    return rcpp_result_gen;
END_RCPP
}
// RenegeIn__new
SEXP RenegeIn__new(double t, const std::vector<Environment>& trj, bool keep_seized);
RcppExport SEXP _simmer_RenegeIn__new(SEXP tSEXP, SEXP trjSEXP, SEXP keep_seizedSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< double >::type t(tSEXP);
    Rcpp::traits::input_parameter< const std::vector<Environment>& >::type trj(trjSEXP);
    Rcpp::traits::input_parameter< bool >::type keep_seized(keep_seizedSEXP);
    rcpp_result_gen = Rcpp::wrap(RenegeIn__new(t, trj, keep_seized));
    return rcpp_result_gen;
END_RCPP
}
// RenegeIn__new_func
SEXP RenegeIn__new_func(const Function& t, const std::vector<Environment>& trj, bool keep_seized);
RcppExport SEXP _simmer_RenegeIn__new_func(SEXP tSEXP, SEXP trjSEXP, SEXP keep_seizedSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Function& >::type t(tSEXP);
    Rcpp::traits::input_parameter< const std::vector<Environment>& >::type trj(trjSEXP);
    Rcpp::traits::input_parameter< bool >::type keep_seized(keep_seizedSEXP);
    rcpp_result_gen = Rcpp::wrap(RenegeIn__new_func(t, trj, keep_seized));
    return rcpp_result_gen;
END_RCPP
}
// RenegeIf__new
SEXP RenegeIf__new(const std::string& signal, const std::vector<Environment>& trj, bool keep_seized);
RcppExport SEXP _simmer_RenegeIf__new(SEXP signalSEXP, SEXP trjSEXP, SEXP keep_seizedSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::string& >::type signal(signalSEXP);
    Rcpp::traits::input_parameter< const std::vector<Environment>& >::type trj(trjSEXP);
    Rcpp::traits::input_parameter< bool >::type keep_seized(keep_seizedSEXP);
    rcpp_result_gen = Rcpp::wrap(RenegeIf__new(signal, trj, keep_seized));
    return rcpp_result_gen;
END_RCPP
}
// RenegeIf__new_func
SEXP RenegeIf__new_func(const Function& signal, const std::vector<Environment>& trj, bool keep_seized);
RcppExport SEXP _simmer_RenegeIf__new_func(SEXP signalSEXP, SEXP trjSEXP, SEXP keep_seizedSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Function& >::type signal(signalSEXP);
    Rcpp::traits::input_parameter< const std::vector<Environment>& >::type trj(trjSEXP);
    Rcpp::traits::input_parameter< bool >::type keep_seized(keep_seizedSEXP);
    rcpp_result_gen = Rcpp::wrap(RenegeIf__new_func(signal, trj, keep_seized));
    return rcpp_result_gen;
END_RCPP
}
// RenegeAbort__new
SEXP RenegeAbort__new();
RcppExport SEXP _simmer_RenegeAbort__new() {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    rcpp_result_gen = Rcpp::wrap(RenegeAbort__new());
    return rcpp_result_gen;
END_RCPP
}
// Send__new
SEXP Send__new(const std::vector<std::string>& signals, double delay);
RcppExport SEXP _simmer_Send__new(SEXP signalsSEXP, SEXP delaySEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::vector<std::string>& >::type signals(signalsSEXP);
    Rcpp::traits::input_parameter< double >::type delay(delaySEXP);
    rcpp_result_gen = Rcpp::wrap(Send__new(signals, delay));
    return rcpp_result_gen;
END_RCPP
}
// Send__new_func1
SEXP Send__new_func1(const Function& signals, double delay);
RcppExport SEXP _simmer_Send__new_func1(SEXP signalsSEXP, SEXP delaySEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Function& >::type signals(signalsSEXP);
    Rcpp::traits::input_parameter< double >::type delay(delaySEXP);
    rcpp_result_gen = Rcpp::wrap(Send__new_func1(signals, delay));
    return rcpp_result_gen;
END_RCPP
}
// Send__new_func2
SEXP Send__new_func2(const std::vector<std::string>& signals, const Function& delay);
RcppExport SEXP _simmer_Send__new_func2(SEXP signalsSEXP, SEXP delaySEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::vector<std::string>& >::type signals(signalsSEXP);
    Rcpp::traits::input_parameter< const Function& >::type delay(delaySEXP);
    rcpp_result_gen = Rcpp::wrap(Send__new_func2(signals, delay));
    return rcpp_result_gen;
END_RCPP
}
// Send__new_func3
SEXP Send__new_func3(const Function& signals, const Function& delay);
RcppExport SEXP _simmer_Send__new_func3(SEXP signalsSEXP, SEXP delaySEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Function& >::type signals(signalsSEXP);
    Rcpp::traits::input_parameter< const Function& >::type delay(delaySEXP);
    rcpp_result_gen = Rcpp::wrap(Send__new_func3(signals, delay));
    return rcpp_result_gen;
END_RCPP
}
// Trap__new
SEXP Trap__new(const std::vector<std::string>& signals, const std::vector<Environment>& trj, bool interruptible);
RcppExport SEXP _simmer_Trap__new(SEXP signalsSEXP, SEXP trjSEXP, SEXP interruptibleSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::vector<std::string>& >::type signals(signalsSEXP);
    Rcpp::traits::input_parameter< const std::vector<Environment>& >::type trj(trjSEXP);
    Rcpp::traits::input_parameter< bool >::type interruptible(interruptibleSEXP);
    rcpp_result_gen = Rcpp::wrap(Trap__new(signals, trj, interruptible));
    return rcpp_result_gen;
END_RCPP
}
// Trap__new_func
SEXP Trap__new_func(const Function& signals, const std::vector<Environment>& trj, bool interruptible);
RcppExport SEXP _simmer_Trap__new_func(SEXP signalsSEXP, SEXP trjSEXP, SEXP interruptibleSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Function& >::type signals(signalsSEXP);
    Rcpp::traits::input_parameter< const std::vector<Environment>& >::type trj(trjSEXP);
    Rcpp::traits::input_parameter< bool >::type interruptible(interruptibleSEXP);
    rcpp_result_gen = Rcpp::wrap(Trap__new_func(signals, trj, interruptible));
    return rcpp_result_gen;
END_RCPP
}
// UnTrap__new
SEXP UnTrap__new(const std::vector<std::string>& signals);
RcppExport SEXP _simmer_UnTrap__new(SEXP signalsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::vector<std::string>& >::type signals(signalsSEXP);
    rcpp_result_gen = Rcpp::wrap(UnTrap__new(signals));
    return rcpp_result_gen;
END_RCPP
}
// UnTrap__new_func
SEXP UnTrap__new_func(const Function& signals);
RcppExport SEXP _simmer_UnTrap__new_func(SEXP signalsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Function& >::type signals(signalsSEXP);
    rcpp_result_gen = Rcpp::wrap(UnTrap__new_func(signals));
    return rcpp_result_gen;
END_RCPP
}
// Wait__new
SEXP Wait__new();
RcppExport SEXP _simmer_Wait__new() {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    rcpp_result_gen = Rcpp::wrap(Wait__new());
    return rcpp_result_gen;
END_RCPP
}
// Log__new
SEXP Log__new(const std::string& message, int level);
RcppExport SEXP _simmer_Log__new(SEXP messageSEXP, SEXP levelSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::string& >::type message(messageSEXP);
    Rcpp::traits::input_parameter< int >::type level(levelSEXP);
    rcpp_result_gen = Rcpp::wrap(Log__new(message, level));
    return rcpp_result_gen;
END_RCPP
}
// Log__new_func
SEXP Log__new_func(const Function& message, int level);
RcppExport SEXP _simmer_Log__new_func(SEXP messageSEXP, SEXP levelSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Function& >::type message(messageSEXP);
    Rcpp::traits::input_parameter< int >::type level(levelSEXP);
    rcpp_result_gen = Rcpp::wrap(Log__new_func(message, level));
    return rcpp_result_gen;
END_RCPP
}
// StopIf__new
SEXP StopIf__new(bool condition);
RcppExport SEXP _simmer_StopIf__new(SEXP conditionSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< bool >::type condition(conditionSEXP);
    rcpp_result_gen = Rcpp::wrap(StopIf__new(condition));
    return rcpp_result_gen;
END_RCPP
}
// StopIf__new_func
SEXP StopIf__new_func(const Function& condition);
RcppExport SEXP _simmer_StopIf__new_func(SEXP conditionSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Function& >::type condition(conditionSEXP);
    rcpp_result_gen = Rcpp::wrap(StopIf__new_func(condition));
    return rcpp_result_gen;
END_RCPP
}
// activity_get_count_
int activity_get_count_(SEXP activity_);
RcppExport SEXP _simmer_activity_get_count_(SEXP activity_SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type activity_(activity_SEXP);
    rcpp_result_gen = Rcpp::wrap(activity_get_count_(activity_));
    return rcpp_result_gen;
END_RCPP
}
// activity_print_
void activity_print_(SEXP activity_, int indent, bool verbose);
RcppExport SEXP _simmer_activity_print_(SEXP activity_SEXP, SEXP indentSEXP, SEXP verboseSEXP) {
BEGIN_RCPP
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type activity_(activity_SEXP);
    Rcpp::traits::input_parameter< int >::type indent(indentSEXP);
    Rcpp::traits::input_parameter< bool >::type verbose(verboseSEXP);
    activity_print_(activity_, indent, verbose);
    return R_NilValue;
END_RCPP
}
// activity_get_next_
SEXP activity_get_next_(SEXP activity_);
RcppExport SEXP _simmer_activity_get_next_(SEXP activity_SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type activity_(activity_SEXP);
    rcpp_result_gen = Rcpp::wrap(activity_get_next_(activity_));
    return rcpp_result_gen;
END_RCPP
}
// activity_get_prev_
SEXP activity_get_prev_(SEXP activity_);
RcppExport SEXP _simmer_activity_get_prev_(SEXP activity_SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type activity_(activity_SEXP);
    rcpp_result_gen = Rcpp::wrap(activity_get_prev_(activity_));
    return rcpp_result_gen;
END_RCPP
}
// activity_chain_
void activity_chain_(SEXP first_, SEXP second_);
RcppExport SEXP _simmer_activity_chain_(SEXP first_SEXP, SEXP second_SEXP) {
BEGIN_RCPP
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type first_(first_SEXP);
    Rcpp::traits::input_parameter< SEXP >::type second_(second_SEXP);
    activity_chain_(first_, second_);
    return R_NilValue;
END_RCPP
}
// activity_clone_
SEXP activity_clone_(SEXP activity_);
RcppExport SEXP _simmer_activity_clone_(SEXP activity_SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type activity_(activity_SEXP);
    rcpp_result_gen = Rcpp::wrap(activity_clone_(activity_));
    return rcpp_result_gen;
END_RCPP
}
// activity_set_tag_
void activity_set_tag_(SEXP activity_, const std::string& tag);
RcppExport SEXP _simmer_activity_set_tag_(SEXP activity_SEXP, SEXP tagSEXP) {
BEGIN_RCPP
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type activity_(activity_SEXP);
    Rcpp::traits::input_parameter< const std::string& >::type tag(tagSEXP);
    activity_set_tag_(activity_, tag);
    return R_NilValue;
END_RCPP
}
// MemMonitor__new
SEXP MemMonitor__new();
RcppExport SEXP _simmer_MemMonitor__new() {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    rcpp_result_gen = Rcpp::wrap(MemMonitor__new());
    return rcpp_result_gen;
END_RCPP
}
// CsvMonitor__new
SEXP CsvMonitor__new(const std::string& ends_path, const std::string& releases_path, const std::string& attributes_path, const std::string& resources_path, const std::string& sep);
RcppExport SEXP _simmer_CsvMonitor__new(SEXP ends_pathSEXP, SEXP releases_pathSEXP, SEXP attributes_pathSEXP, SEXP resources_pathSEXP, SEXP sepSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::string& >::type ends_path(ends_pathSEXP);
    Rcpp::traits::input_parameter< const std::string& >::type releases_path(releases_pathSEXP);
    Rcpp::traits::input_parameter< const std::string& >::type attributes_path(attributes_pathSEXP);
    Rcpp::traits::input_parameter< const std::string& >::type resources_path(resources_pathSEXP);
    Rcpp::traits::input_parameter< const std::string& >::type sep(sepSEXP);
    rcpp_result_gen = Rcpp::wrap(CsvMonitor__new(ends_path, releases_path, attributes_path, resources_path, sep));
    return rcpp_result_gen;
END_RCPP
}
// close_files_
void close_files_(SEXP mon_);
RcppExport SEXP _simmer_close_files_(SEXP mon_SEXP) {
BEGIN_RCPP
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type mon_(mon_SEXP);
    close_files_(mon_);
    return R_NilValue;
END_RCPP
}
// get_arrivals_
DataFrame get_arrivals_(SEXP mon_, bool per_resource);
RcppExport SEXP _simmer_get_arrivals_(SEXP mon_SEXP, SEXP per_resourceSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type mon_(mon_SEXP);
    Rcpp::traits::input_parameter< bool >::type per_resource(per_resourceSEXP);
    rcpp_result_gen = Rcpp::wrap(get_arrivals_(mon_, per_resource));
    return rcpp_result_gen;
END_RCPP
}
// get_attributes_
DataFrame get_attributes_(SEXP mon_);
RcppExport SEXP _simmer_get_attributes_(SEXP mon_SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type mon_(mon_SEXP);
    rcpp_result_gen = Rcpp::wrap(get_attributes_(mon_));
    return rcpp_result_gen;
END_RCPP
}
// get_resources_
DataFrame get_resources_(SEXP mon_);
RcppExport SEXP _simmer_get_resources_(SEXP mon_SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type mon_(mon_SEXP);
    rcpp_result_gen = Rcpp::wrap(get_resources_(mon_));
    return rcpp_result_gen;
END_RCPP
}
// get_n_generated_
SEXP get_n_generated_(SEXP sim_, const std::vector<std::string>& names);
RcppExport SEXP _simmer_get_n_generated_(SEXP sim_SEXP, SEXP namesSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    Rcpp::traits::input_parameter< const std::vector<std::string>& >::type names(namesSEXP);
    rcpp_result_gen = Rcpp::wrap(get_n_generated_(sim_, names));
    return rcpp_result_gen;
END_RCPP
}
// get_trajectory_
SEXP get_trajectory_(SEXP sim_, const std::vector<std::string>& names);
RcppExport SEXP _simmer_get_trajectory_(SEXP sim_SEXP, SEXP namesSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    Rcpp::traits::input_parameter< const std::vector<std::string>& >::type names(namesSEXP);
    rcpp_result_gen = Rcpp::wrap(get_trajectory_(sim_, names));
    return rcpp_result_gen;
END_RCPP
}
// get_name_
std::string get_name_(SEXP sim_);
RcppExport SEXP _simmer_get_name_(SEXP sim_SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    rcpp_result_gen = Rcpp::wrap(get_name_(sim_));
    return rcpp_result_gen;
END_RCPP
}
// get_start_time_
double get_start_time_(SEXP sim_);
RcppExport SEXP _simmer_get_start_time_(SEXP sim_SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    rcpp_result_gen = Rcpp::wrap(get_start_time_(sim_));
    return rcpp_result_gen;
END_RCPP
}
// get_attribute_
SEXP get_attribute_(SEXP sim_, const std::vector<std::string>& keys, bool global);
RcppExport SEXP _simmer_get_attribute_(SEXP sim_SEXP, SEXP keysSEXP, SEXP globalSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    Rcpp::traits::input_parameter< const std::vector<std::string>& >::type keys(keysSEXP);
    Rcpp::traits::input_parameter< bool >::type global(globalSEXP);
    rcpp_result_gen = Rcpp::wrap(get_attribute_(sim_, keys, global));
    return rcpp_result_gen;
END_RCPP
}
// get_prioritization_
SEXP get_prioritization_(SEXP sim_);
RcppExport SEXP _simmer_get_prioritization_(SEXP sim_SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    rcpp_result_gen = Rcpp::wrap(get_prioritization_(sim_));
    return rcpp_result_gen;
END_RCPP
}
// get_batch_size_
int get_batch_size_(SEXP sim_);
RcppExport SEXP _simmer_get_batch_size_(SEXP sim_SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    rcpp_result_gen = Rcpp::wrap(get_batch_size_(sim_));
    return rcpp_result_gen;
END_RCPP
}
// get_capacity_
SEXP get_capacity_(SEXP sim_, const std::vector<std::string>& names);
RcppExport SEXP _simmer_get_capacity_(SEXP sim_SEXP, SEXP namesSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    Rcpp::traits::input_parameter< const std::vector<std::string>& >::type names(namesSEXP);
    rcpp_result_gen = Rcpp::wrap(get_capacity_(sim_, names));
    return rcpp_result_gen;
END_RCPP
}
// get_capacity_selected_
SEXP get_capacity_selected_(SEXP sim_, int id);
RcppExport SEXP _simmer_get_capacity_selected_(SEXP sim_SEXP, SEXP idSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    Rcpp::traits::input_parameter< int >::type id(idSEXP);
    rcpp_result_gen = Rcpp::wrap(get_capacity_selected_(sim_, id));
    return rcpp_result_gen;
END_RCPP
}
// get_queue_size_
SEXP get_queue_size_(SEXP sim_, const std::vector<std::string>& names);
RcppExport SEXP _simmer_get_queue_size_(SEXP sim_SEXP, SEXP namesSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    Rcpp::traits::input_parameter< const std::vector<std::string>& >::type names(namesSEXP);
    rcpp_result_gen = Rcpp::wrap(get_queue_size_(sim_, names));
    return rcpp_result_gen;
END_RCPP
}
// get_queue_size_selected_
SEXP get_queue_size_selected_(SEXP sim_, int id);
RcppExport SEXP _simmer_get_queue_size_selected_(SEXP sim_SEXP, SEXP idSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    Rcpp::traits::input_parameter< int >::type id(idSEXP);
    rcpp_result_gen = Rcpp::wrap(get_queue_size_selected_(sim_, id));
    return rcpp_result_gen;
END_RCPP
}
// get_server_count_
SEXP get_server_count_(SEXP sim_, const std::vector<std::string>& names);
RcppExport SEXP _simmer_get_server_count_(SEXP sim_SEXP, SEXP namesSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    Rcpp::traits::input_parameter< const std::vector<std::string>& >::type names(namesSEXP);
    rcpp_result_gen = Rcpp::wrap(get_server_count_(sim_, names));
    return rcpp_result_gen;
END_RCPP
}
// get_server_count_selected_
SEXP get_server_count_selected_(SEXP sim_, int id);
RcppExport SEXP _simmer_get_server_count_selected_(SEXP sim_SEXP, SEXP idSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    Rcpp::traits::input_parameter< int >::type id(idSEXP);
    rcpp_result_gen = Rcpp::wrap(get_server_count_selected_(sim_, id));
    return rcpp_result_gen;
END_RCPP
}
// get_queue_count_
SEXP get_queue_count_(SEXP sim_, const std::vector<std::string>& names);
RcppExport SEXP _simmer_get_queue_count_(SEXP sim_SEXP, SEXP namesSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    Rcpp::traits::input_parameter< const std::vector<std::string>& >::type names(namesSEXP);
    rcpp_result_gen = Rcpp::wrap(get_queue_count_(sim_, names));
    return rcpp_result_gen;
END_RCPP
}
// get_queue_count_selected_
SEXP get_queue_count_selected_(SEXP sim_, int id);
RcppExport SEXP _simmer_get_queue_count_selected_(SEXP sim_SEXP, SEXP idSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    Rcpp::traits::input_parameter< int >::type id(idSEXP);
    rcpp_result_gen = Rcpp::wrap(get_queue_count_selected_(sim_, id));
    return rcpp_result_gen;
END_RCPP
}
// get_seized_
SEXP get_seized_(SEXP sim_, const std::vector<std::string>& names);
RcppExport SEXP _simmer_get_seized_(SEXP sim_SEXP, SEXP namesSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    Rcpp::traits::input_parameter< const std::vector<std::string>& >::type names(namesSEXP);
    rcpp_result_gen = Rcpp::wrap(get_seized_(sim_, names));
    return rcpp_result_gen;
END_RCPP
}
// get_seized_selected_
SEXP get_seized_selected_(SEXP sim_, int id);
RcppExport SEXP _simmer_get_seized_selected_(SEXP sim_SEXP, SEXP idSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    Rcpp::traits::input_parameter< int >::type id(idSEXP);
    rcpp_result_gen = Rcpp::wrap(get_seized_selected_(sim_, id));
    return rcpp_result_gen;
END_RCPP
}
// get_selected_
SEXP get_selected_(SEXP sim_, int id);
RcppExport SEXP _simmer_get_selected_(SEXP sim_SEXP, SEXP idSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    Rcpp::traits::input_parameter< int >::type id(idSEXP);
    rcpp_result_gen = Rcpp::wrap(get_selected_(sim_, id));
    return rcpp_result_gen;
END_RCPP
}
// get_activity_time_
SEXP get_activity_time_(SEXP sim_, const std::vector<std::string>& names);
RcppExport SEXP _simmer_get_activity_time_(SEXP sim_SEXP, SEXP namesSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    Rcpp::traits::input_parameter< const std::vector<std::string>& >::type names(namesSEXP);
    rcpp_result_gen = Rcpp::wrap(get_activity_time_(sim_, names));
    return rcpp_result_gen;
END_RCPP
}
// get_activity_time_selected_
SEXP get_activity_time_selected_(SEXP sim_, int id);
RcppExport SEXP _simmer_get_activity_time_selected_(SEXP sim_SEXP, SEXP idSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    Rcpp::traits::input_parameter< int >::type id(idSEXP);
    rcpp_result_gen = Rcpp::wrap(get_activity_time_selected_(sim_, id));
    return rcpp_result_gen;
END_RCPP
}
// Simulator__new
SEXP Simulator__new(const std::string& name, bool verbose, SEXP mon, int log_level);
RcppExport SEXP _simmer_Simulator__new(SEXP nameSEXP, SEXP verboseSEXP, SEXP monSEXP, SEXP log_levelSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const std::string& >::type name(nameSEXP);
    Rcpp::traits::input_parameter< bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< SEXP >::type mon(monSEXP);
    Rcpp::traits::input_parameter< int >::type log_level(log_levelSEXP);
    rcpp_result_gen = Rcpp::wrap(Simulator__new(name, verbose, mon, log_level));
    return rcpp_result_gen;
END_RCPP
}
// reset_
void reset_(SEXP sim_);
RcppExport SEXP _simmer_reset_(SEXP sim_SEXP) {
BEGIN_RCPP
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    reset_(sim_);
    return R_NilValue;
END_RCPP
}
// now_
double now_(SEXP sim_);
RcppExport SEXP _simmer_now_(SEXP sim_SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    rcpp_result_gen = Rcpp::wrap(now_(sim_));
    return rcpp_result_gen;
END_RCPP
}
// peek_
DataFrame peek_(SEXP sim_, int steps);
RcppExport SEXP _simmer_peek_(SEXP sim_SEXP, SEXP stepsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    Rcpp::traits::input_parameter< int >::type steps(stepsSEXP);
    rcpp_result_gen = Rcpp::wrap(peek_(sim_, steps));
    return rcpp_result_gen;
END_RCPP
}
// stepn_
void stepn_(SEXP sim_, unsigned int n);
RcppExport SEXP _simmer_stepn_(SEXP sim_SEXP, SEXP nSEXP) {
BEGIN_RCPP
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    Rcpp::traits::input_parameter< unsigned int >::type n(nSEXP);
    stepn_(sim_, n);
    return R_NilValue;
END_RCPP
}
// run_
void run_(SEXP sim_, double until);
RcppExport SEXP _simmer_run_(SEXP sim_SEXP, SEXP untilSEXP) {
BEGIN_RCPP
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    Rcpp::traits::input_parameter< double >::type until(untilSEXP);
    run_(sim_, until);
    return R_NilValue;
END_RCPP
}
// add_generator_
bool add_generator_(SEXP sim_, const std::string& name_prefix, const Environment& trj, const Function& dist, int mon, int priority, int preemptible, bool restart);
RcppExport SEXP _simmer_add_generator_(SEXP sim_SEXP, SEXP name_prefixSEXP, SEXP trjSEXP, SEXP distSEXP, SEXP monSEXP, SEXP prioritySEXP, SEXP preemptibleSEXP, SEXP restartSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    Rcpp::traits::input_parameter< const std::string& >::type name_prefix(name_prefixSEXP);
    Rcpp::traits::input_parameter< const Environment& >::type trj(trjSEXP);
    Rcpp::traits::input_parameter< const Function& >::type dist(distSEXP);
    Rcpp::traits::input_parameter< int >::type mon(monSEXP);
    Rcpp::traits::input_parameter< int >::type priority(prioritySEXP);
    Rcpp::traits::input_parameter< int >::type preemptible(preemptibleSEXP);
    Rcpp::traits::input_parameter< bool >::type restart(restartSEXP);
    rcpp_result_gen = Rcpp::wrap(add_generator_(sim_, name_prefix, trj, dist, mon, priority, preemptible, restart));
    return rcpp_result_gen;
END_RCPP
}
// add_dataframe_
bool add_dataframe_(SEXP sim_, const std::string& name_prefix, const Environment& trj, const DataFrame& data, int mon, int batch, const std::string& time, const std::vector<std::string>& attrs, const std::vector<std::string>& priority, const std::vector<std::string>& preemptible, const std::vector<std::string>& restart);
RcppExport SEXP _simmer_add_dataframe_(SEXP sim_SEXP, SEXP name_prefixSEXP, SEXP trjSEXP, SEXP dataSEXP, SEXP monSEXP, SEXP batchSEXP, SEXP timeSEXP, SEXP attrsSEXP, SEXP prioritySEXP, SEXP preemptibleSEXP, SEXP restartSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    Rcpp::traits::input_parameter< const std::string& >::type name_prefix(name_prefixSEXP);
    Rcpp::traits::input_parameter< const Environment& >::type trj(trjSEXP);
    Rcpp::traits::input_parameter< const DataFrame& >::type data(dataSEXP);
    Rcpp::traits::input_parameter< int >::type mon(monSEXP);
    Rcpp::traits::input_parameter< int >::type batch(batchSEXP);
    Rcpp::traits::input_parameter< const std::string& >::type time(timeSEXP);
    Rcpp::traits::input_parameter< const std::vector<std::string>& >::type attrs(attrsSEXP);
    Rcpp::traits::input_parameter< const std::vector<std::string>& >::type priority(prioritySEXP);
    Rcpp::traits::input_parameter< const std::vector<std::string>& >::type preemptible(preemptibleSEXP);
    Rcpp::traits::input_parameter< const std::vector<std::string>& >::type restart(restartSEXP);
    rcpp_result_gen = Rcpp::wrap(add_dataframe_(sim_, name_prefix, trj, data, mon, batch, time, attrs, priority, preemptible, restart));
    return rcpp_result_gen;
END_RCPP
}
// add_resource_
bool add_resource_(SEXP sim_, const std::string& name, int capacity, int queue_size, bool mon, bool preemptive, const std::string& preempt_order, bool queue_size_strict, int queue_priority_min, int queue_priority_max);
RcppExport SEXP _simmer_add_resource_(SEXP sim_SEXP, SEXP nameSEXP, SEXP capacitySEXP, SEXP queue_sizeSEXP, SEXP monSEXP, SEXP preemptiveSEXP, SEXP preempt_orderSEXP, SEXP queue_size_strictSEXP, SEXP queue_priority_minSEXP, SEXP queue_priority_maxSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    Rcpp::traits::input_parameter< const std::string& >::type name(nameSEXP);
    Rcpp::traits::input_parameter< int >::type capacity(capacitySEXP);
    Rcpp::traits::input_parameter< int >::type queue_size(queue_sizeSEXP);
    Rcpp::traits::input_parameter< bool >::type mon(monSEXP);
    Rcpp::traits::input_parameter< bool >::type preemptive(preemptiveSEXP);
    Rcpp::traits::input_parameter< const std::string& >::type preempt_order(preempt_orderSEXP);
    Rcpp::traits::input_parameter< bool >::type queue_size_strict(queue_size_strictSEXP);
    Rcpp::traits::input_parameter< int >::type queue_priority_min(queue_priority_minSEXP);
    Rcpp::traits::input_parameter< int >::type queue_priority_max(queue_priority_maxSEXP);
    rcpp_result_gen = Rcpp::wrap(add_resource_(sim_, name, capacity, queue_size, mon, preemptive, preempt_order, queue_size_strict, queue_priority_min, queue_priority_max));
    return rcpp_result_gen;
END_RCPP
}
// add_resource_manager_
bool add_resource_manager_(SEXP sim_, const std::string& name, const std::string& param, int init, const std::vector<double>& intervals, const std::vector<int>& values, int period);
RcppExport SEXP _simmer_add_resource_manager_(SEXP sim_SEXP, SEXP nameSEXP, SEXP paramSEXP, SEXP initSEXP, SEXP intervalsSEXP, SEXP valuesSEXP, SEXP periodSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    Rcpp::traits::input_parameter< const std::string& >::type name(nameSEXP);
    Rcpp::traits::input_parameter< const std::string& >::type param(paramSEXP);
    Rcpp::traits::input_parameter< int >::type init(initSEXP);
    Rcpp::traits::input_parameter< const std::vector<double>& >::type intervals(intervalsSEXP);
    Rcpp::traits::input_parameter< const std::vector<int>& >::type values(valuesSEXP);
    Rcpp::traits::input_parameter< int >::type period(periodSEXP);
    rcpp_result_gen = Rcpp::wrap(add_resource_manager_(sim_, name, param, init, intervals, values, period));
    return rcpp_result_gen;
END_RCPP
}
// add_global_manager_
bool add_global_manager_(SEXP sim_, const std::string& key, double init, const std::vector<double>& intervals, const std::vector<double>& values, int period);
RcppExport SEXP _simmer_add_global_manager_(SEXP sim_SEXP, SEXP keySEXP, SEXP initSEXP, SEXP intervalsSEXP, SEXP valuesSEXP, SEXP periodSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    Rcpp::traits::input_parameter< const std::string& >::type key(keySEXP);
    Rcpp::traits::input_parameter< double >::type init(initSEXP);
    Rcpp::traits::input_parameter< const std::vector<double>& >::type intervals(intervalsSEXP);
    Rcpp::traits::input_parameter< const std::vector<double>& >::type values(valuesSEXP);
    Rcpp::traits::input_parameter< int >::type period(periodSEXP);
    rcpp_result_gen = Rcpp::wrap(add_global_manager_(sim_, key, init, intervals, values, period));
    return rcpp_result_gen;
END_RCPP
}
// get_ongoing_
DataFrame get_ongoing_(SEXP sim_, bool per_resource);
RcppExport SEXP _simmer_get_ongoing_(SEXP sim_SEXP, SEXP per_resourceSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type sim_(sim_SEXP);
    Rcpp::traits::input_parameter< bool >::type per_resource(per_resourceSEXP);
    rcpp_result_gen = Rcpp::wrap(get_ongoing_(sim_, per_resource));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_simmer_Seize__new", (DL_FUNC) &_simmer_Seize__new, 5},
    {"_simmer_Seize__new_func", (DL_FUNC) &_simmer_Seize__new_func, 5},
    {"_simmer_SeizeSelected__new", (DL_FUNC) &_simmer_SeizeSelected__new, 5},
    {"_simmer_SeizeSelected__new_func", (DL_FUNC) &_simmer_SeizeSelected__new_func, 5},
    {"_simmer_Release__new", (DL_FUNC) &_simmer_Release__new, 2},
    {"_simmer_Release__new_func", (DL_FUNC) &_simmer_Release__new_func, 2},
    {"_simmer_ReleaseAll__new", (DL_FUNC) &_simmer_ReleaseAll__new, 1},
    {"_simmer_ReleaseAll__new_void", (DL_FUNC) &_simmer_ReleaseAll__new_void, 0},
    {"_simmer_ReleaseSelected__new", (DL_FUNC) &_simmer_ReleaseSelected__new, 2},
    {"_simmer_ReleaseSelected__new_func", (DL_FUNC) &_simmer_ReleaseSelected__new_func, 2},
    {"_simmer_ReleaseSelectedAll__new", (DL_FUNC) &_simmer_ReleaseSelectedAll__new, 1},
    {"_simmer_SetCapacity__new", (DL_FUNC) &_simmer_SetCapacity__new, 3},
    {"_simmer_SetCapacity__new_func", (DL_FUNC) &_simmer_SetCapacity__new_func, 3},
    {"_simmer_SetCapacitySelected__new", (DL_FUNC) &_simmer_SetCapacitySelected__new, 3},
    {"_simmer_SetCapacitySelected__new_func", (DL_FUNC) &_simmer_SetCapacitySelected__new_func, 3},
    {"_simmer_SetQueue__new", (DL_FUNC) &_simmer_SetQueue__new, 3},
    {"_simmer_SetQueue__new_func", (DL_FUNC) &_simmer_SetQueue__new_func, 3},
    {"_simmer_SetQueueSelected__new", (DL_FUNC) &_simmer_SetQueueSelected__new, 3},
    {"_simmer_SetQueueSelected__new_func", (DL_FUNC) &_simmer_SetQueueSelected__new_func, 3},
    {"_simmer_Select__new", (DL_FUNC) &_simmer_Select__new, 3},
    {"_simmer_Select__new_func", (DL_FUNC) &_simmer_Select__new_func, 3},
    {"_simmer_SetAttribute__new", (DL_FUNC) &_simmer_SetAttribute__new, 5},
    {"_simmer_SetAttribute__new_func1", (DL_FUNC) &_simmer_SetAttribute__new_func1, 5},
    {"_simmer_SetAttribute__new_func2", (DL_FUNC) &_simmer_SetAttribute__new_func2, 5},
    {"_simmer_SetAttribute__new_func3", (DL_FUNC) &_simmer_SetAttribute__new_func3, 5},
    {"_simmer_Activate__new", (DL_FUNC) &_simmer_Activate__new, 1},
    {"_simmer_Activate__new_func", (DL_FUNC) &_simmer_Activate__new_func, 1},
    {"_simmer_Deactivate__new", (DL_FUNC) &_simmer_Deactivate__new, 1},
    {"_simmer_Deactivate__new_func", (DL_FUNC) &_simmer_Deactivate__new_func, 1},
    {"_simmer_SetTraj__new", (DL_FUNC) &_simmer_SetTraj__new, 2},
    {"_simmer_SetTraj__new_func", (DL_FUNC) &_simmer_SetTraj__new_func, 2},
    {"_simmer_SetSourceFn__new", (DL_FUNC) &_simmer_SetSourceFn__new, 2},
    {"_simmer_SetSourceFn__new_func", (DL_FUNC) &_simmer_SetSourceFn__new_func, 2},
    {"_simmer_SetSourceDF__new", (DL_FUNC) &_simmer_SetSourceDF__new, 2},
    {"_simmer_SetSourceDF__new_func", (DL_FUNC) &_simmer_SetSourceDF__new_func, 2},
    {"_simmer_SetPrior__new", (DL_FUNC) &_simmer_SetPrior__new, 2},
    {"_simmer_SetPrior__new_func", (DL_FUNC) &_simmer_SetPrior__new_func, 2},
    {"_simmer_Timeout__new", (DL_FUNC) &_simmer_Timeout__new, 1},
    {"_simmer_Timeout__new_func", (DL_FUNC) &_simmer_Timeout__new_func, 1},
    {"_simmer_Timeout__new_attr", (DL_FUNC) &_simmer_Timeout__new_attr, 2},
    {"_simmer_Branch__new", (DL_FUNC) &_simmer_Branch__new, 3},
    {"_simmer_Rollback__new1", (DL_FUNC) &_simmer_Rollback__new1, 2},
    {"_simmer_Rollback__new2", (DL_FUNC) &_simmer_Rollback__new2, 2},
    {"_simmer_Rollback__new_func1", (DL_FUNC) &_simmer_Rollback__new_func1, 2},
    {"_simmer_Rollback__new_func2", (DL_FUNC) &_simmer_Rollback__new_func2, 2},
    {"_simmer_Leave__new", (DL_FUNC) &_simmer_Leave__new, 3},
    {"_simmer_HandleUnfinished__new", (DL_FUNC) &_simmer_HandleUnfinished__new, 1},
    {"_simmer_Leave__new_func", (DL_FUNC) &_simmer_Leave__new_func, 3},
    {"_simmer_Clone__new", (DL_FUNC) &_simmer_Clone__new, 2},
    {"_simmer_Clone__new_func", (DL_FUNC) &_simmer_Clone__new_func, 2},
    {"_simmer_Synchronize__new", (DL_FUNC) &_simmer_Synchronize__new, 2},
    {"_simmer_Batch__new", (DL_FUNC) &_simmer_Batch__new, 4},
    {"_simmer_Batch__new_func1", (DL_FUNC) &_simmer_Batch__new_func1, 4},
    {"_simmer_Batch__new_func2", (DL_FUNC) &_simmer_Batch__new_func2, 4},
    {"_simmer_Batch__new_func3", (DL_FUNC) &_simmer_Batch__new_func3, 4},
    {"_simmer_Batch__new_func4", (DL_FUNC) &_simmer_Batch__new_func4, 5},
    {"_simmer_Batch__new_func5", (DL_FUNC) &_simmer_Batch__new_func5, 5},
    {"_simmer_Batch__new_func6", (DL_FUNC) &_simmer_Batch__new_func6, 5},
    {"_simmer_Batch__new_func7", (DL_FUNC) &_simmer_Batch__new_func7, 5},
    {"_simmer_Separate__new", (DL_FUNC) &_simmer_Separate__new, 0},
    {"_simmer_RenegeIn__new", (DL_FUNC) &_simmer_RenegeIn__new, 3},
    {"_simmer_RenegeIn__new_func", (DL_FUNC) &_simmer_RenegeIn__new_func, 3},
    {"_simmer_RenegeIf__new", (DL_FUNC) &_simmer_RenegeIf__new, 3},
    {"_simmer_RenegeIf__new_func", (DL_FUNC) &_simmer_RenegeIf__new_func, 3},
    {"_simmer_RenegeAbort__new", (DL_FUNC) &_simmer_RenegeAbort__new, 0},
    {"_simmer_Send__new", (DL_FUNC) &_simmer_Send__new, 2},
    {"_simmer_Send__new_func1", (DL_FUNC) &_simmer_Send__new_func1, 2},
    {"_simmer_Send__new_func2", (DL_FUNC) &_simmer_Send__new_func2, 2},
    {"_simmer_Send__new_func3", (DL_FUNC) &_simmer_Send__new_func3, 2},
    {"_simmer_Trap__new", (DL_FUNC) &_simmer_Trap__new, 3},
    {"_simmer_Trap__new_func", (DL_FUNC) &_simmer_Trap__new_func, 3},
    {"_simmer_UnTrap__new", (DL_FUNC) &_simmer_UnTrap__new, 1},
    {"_simmer_UnTrap__new_func", (DL_FUNC) &_simmer_UnTrap__new_func, 1},
    {"_simmer_Wait__new", (DL_FUNC) &_simmer_Wait__new, 0},
    {"_simmer_Log__new", (DL_FUNC) &_simmer_Log__new, 2},
    {"_simmer_Log__new_func", (DL_FUNC) &_simmer_Log__new_func, 2},
    {"_simmer_StopIf__new", (DL_FUNC) &_simmer_StopIf__new, 1},
    {"_simmer_StopIf__new_func", (DL_FUNC) &_simmer_StopIf__new_func, 1},
    {"_simmer_activity_get_count_", (DL_FUNC) &_simmer_activity_get_count_, 1},
    {"_simmer_activity_print_", (DL_FUNC) &_simmer_activity_print_, 3},
    {"_simmer_activity_get_next_", (DL_FUNC) &_simmer_activity_get_next_, 1},
    {"_simmer_activity_get_prev_", (DL_FUNC) &_simmer_activity_get_prev_, 1},
    {"_simmer_activity_chain_", (DL_FUNC) &_simmer_activity_chain_, 2},
    {"_simmer_activity_clone_", (DL_FUNC) &_simmer_activity_clone_, 1},
    {"_simmer_activity_set_tag_", (DL_FUNC) &_simmer_activity_set_tag_, 2},
    {"_simmer_MemMonitor__new", (DL_FUNC) &_simmer_MemMonitor__new, 0},
    {"_simmer_CsvMonitor__new", (DL_FUNC) &_simmer_CsvMonitor__new, 5},
    {"_simmer_close_files_", (DL_FUNC) &_simmer_close_files_, 1},
    {"_simmer_get_arrivals_", (DL_FUNC) &_simmer_get_arrivals_, 2},
    {"_simmer_get_attributes_", (DL_FUNC) &_simmer_get_attributes_, 1},
    {"_simmer_get_resources_", (DL_FUNC) &_simmer_get_resources_, 1},
    {"_simmer_get_n_generated_", (DL_FUNC) &_simmer_get_n_generated_, 2},
    {"_simmer_get_trajectory_", (DL_FUNC) &_simmer_get_trajectory_, 2},
    {"_simmer_get_name_", (DL_FUNC) &_simmer_get_name_, 1},
    {"_simmer_get_start_time_", (DL_FUNC) &_simmer_get_start_time_, 1},
    {"_simmer_get_attribute_", (DL_FUNC) &_simmer_get_attribute_, 3},
    {"_simmer_get_prioritization_", (DL_FUNC) &_simmer_get_prioritization_, 1},
    {"_simmer_get_batch_size_", (DL_FUNC) &_simmer_get_batch_size_, 1},
    {"_simmer_get_capacity_", (DL_FUNC) &_simmer_get_capacity_, 2},
    {"_simmer_get_capacity_selected_", (DL_FUNC) &_simmer_get_capacity_selected_, 2},
    {"_simmer_get_queue_size_", (DL_FUNC) &_simmer_get_queue_size_, 2},
    {"_simmer_get_queue_size_selected_", (DL_FUNC) &_simmer_get_queue_size_selected_, 2},
    {"_simmer_get_server_count_", (DL_FUNC) &_simmer_get_server_count_, 2},
    {"_simmer_get_server_count_selected_", (DL_FUNC) &_simmer_get_server_count_selected_, 2},
    {"_simmer_get_queue_count_", (DL_FUNC) &_simmer_get_queue_count_, 2},
    {"_simmer_get_queue_count_selected_", (DL_FUNC) &_simmer_get_queue_count_selected_, 2},
    {"_simmer_get_seized_", (DL_FUNC) &_simmer_get_seized_, 2},
    {"_simmer_get_seized_selected_", (DL_FUNC) &_simmer_get_seized_selected_, 2},
    {"_simmer_get_selected_", (DL_FUNC) &_simmer_get_selected_, 2},
    {"_simmer_get_activity_time_", (DL_FUNC) &_simmer_get_activity_time_, 2},
    {"_simmer_get_activity_time_selected_", (DL_FUNC) &_simmer_get_activity_time_selected_, 2},
    {"_simmer_Simulator__new", (DL_FUNC) &_simmer_Simulator__new, 4},
    {"_simmer_reset_", (DL_FUNC) &_simmer_reset_, 1},
    {"_simmer_now_", (DL_FUNC) &_simmer_now_, 1},
    {"_simmer_peek_", (DL_FUNC) &_simmer_peek_, 2},
    {"_simmer_stepn_", (DL_FUNC) &_simmer_stepn_, 2},
    {"_simmer_run_", (DL_FUNC) &_simmer_run_, 2},
    {"_simmer_add_generator_", (DL_FUNC) &_simmer_add_generator_, 8},
    {"_simmer_add_dataframe_", (DL_FUNC) &_simmer_add_dataframe_, 11},
    {"_simmer_add_resource_", (DL_FUNC) &_simmer_add_resource_, 10},
    {"_simmer_add_resource_manager_", (DL_FUNC) &_simmer_add_resource_manager_, 7},
    {"_simmer_add_global_manager_", (DL_FUNC) &_simmer_add_global_manager_, 6},
    {"_simmer_get_ongoing_", (DL_FUNC) &_simmer_get_ongoing_, 2},
    {NULL, NULL, 0}
};

RcppExport void R_init_simmer(DllInfo *dll) {
    R_registerRoutines(dll, NULL, CallEntries, NULL, NULL);
    R_useDynamicSymbols(dll, FALSE);
}
