#ifndef _SIGNALS_HPP_
#define _SIGNALS_HPP_

#include "syselmts.hpp"
#include "pins.hpp"

#pragma once
class Signals;

class Signal : public SystemElementContainer<Pin>
{
public:
    Signals *prnt; ///< Pointer to the parent signals object.
    Signal(std::string name);
    void add(Pin *pin) override;
};

class Signals : public SystemElementContainer<Signal>
{
public:
    Signals(void);
    Signals(std::vector<Signal *> signals);
    void add(Signal *signal) override;
    ~Signals();
};

#endif // _SIGNALS_HPP_