#ifndef COMPONENT_H
#define COMPONENT_H

#include <config.h>
#include <memory>
#include <functional>
#include <callback.h>

namespace smo {

class Mind;
class ComponentThread;

class Component
{
public:
	Component(const std::shared_ptr<ComponentThread> &thread);
	~Component() = default;

public:
	std::shared_ptr<ComponentThread> thread;

public:
};

class MindComponent
:	public Component
{
public:
	MindComponent(Mind &parent, const std::shared_ptr<ComponentThread> &thread);
	~MindComponent() = default;

public:
	Mind &parent;
};

} // namespace smo

#endif // COMPONENT_H
