Files
salmanoff/smocore/include/director/director.h
T

55 lines
1.3 KiB
C++
Raw Normal View History

#ifndef DIRECTOR_H
#define DIRECTOR_H
2025-01-04 07:33:15 -04:00
#include <config.h>
#include <spinscale/puppetApplication.h>
2025-12-26 01:18:39 -04:00
#include <spinscale/component.h>
#include <goal.h>
2025-09-02 17:02:50 -04:00
#include <lruLifo.h>
2025-01-04 07:33:15 -04:00
2025-07-22 06:48:04 -04:00
namespace smo {
class Mind;
namespace director {
class Director
2025-12-27 16:21:22 -04:00
: public sscl::PuppetComponent
{
public:
Director(Mind &parent, const std::shared_ptr<sscl::PuppetThread> &thread);
~Director() = default;
void negtrinEventInd(void);
void intrinEventInd(void);
void postrinEventInd(void);
2025-09-02 17:02:50 -04:00
/** EXPLANATION:
* We allow SMO to prioritize negtrins over injected goals, so that it can
* prioritize pain mitigation. We may decide to change this in the future.
*
* NB: Prioritizing negtrins is not the same as priortizing
* self-preservation...at least we don't think so at the moment of writing.
* It is definitely not desirable for SMO to prioritize self-preservation
* over our injected goals.
*/
LruLifo negtrins;
/** EXPLANATION:
* These are goals injected by Mrntt. This is how Mrntt is able to inject
* goals into the director.
*/
LruLifo injectedGoals;
/** EXPLANATION:
* These are goals chosen by the running mind. Director will always
* prioritize injected goals over chosen goals.
*/
LruLifo chosenGoals;
LruLifo postrins;
LruLifo nontrins;
};
} // namespace director
2025-07-22 06:48:04 -04:00
} // namespace smo
#endif // DIRECTOR_H