#ifndef CREATE_UNIT_HEADERFILE
#define CREATE_UNIT_HEADERFILE

#include "Agent.h"
#include "CSVreaderModule.h"
#include "HistoryModule.h"
#include "Sensor.h"
#include "Testbench.h"

#define CSV_MODE_READ 0
#define CSV_MODE_WRITE 1

Agent create_agent();
Agent create_agent(const char *name);

Sensor create_sensor();
Sensor create_sensor(const char *name);

HistoryModule create_historyModule(unsigned int history_length,
                                   int delimitation_mode);
HistoryModule create_historyModule(const char *name,
                                   unsigned int history_length,
                                   int delimitation_mode);

Channel create_channel(unsigned int transfer_rate);
Channel create_channel(const char *name, unsigned int transfer_rate);

Testbench create_testbench();
Testbench create_testbench(const char *name);

CSVreaderModule create_CSVreaderModule(const char *filepath,
                                       unsigned int column,
                                       unsigned int start_row);
CSVreaderModule create_CSVreaderModule(const char *name, const char *filepath,
                                       unsigned int column,
                                       unsigned int start_row);

#endif
