7 #ifndef SPACE_MULTI_THREAD_BALANCE_QUANTITY_H
8 #define SPACE_MULTI_THREAD_BALANCE_QUANTITY_H
10 #include <argos3/core/simulator/space/space.h>
22 struct SUpdateThreadData {
26 SUpdateThreadData(
UInt32 un_thread_id,
28 ThreadId(un_thread_id),
38 SUpdateThreadData** m_psUpdateThreadData;
41 pthread_t* m_ptUpdateThreads;
44 UInt32 m_unSenseControlStepPhaseDoneCounter;
45 UInt32 m_unActPhaseDoneCounter;
46 UInt32 m_unPhysicsPhaseDoneCounter;
47 UInt32 m_unMediaPhaseDoneCounter;
50 pthread_mutex_t m_tSenseControlStepConditionalMutex;
51 pthread_mutex_t m_tActConditionalMutex;
52 pthread_mutex_t m_tPhysicsConditionalMutex;
53 pthread_mutex_t m_tMediaConditionalMutex;
56 pthread_cond_t m_tSenseControlStepConditional;
57 pthread_cond_t m_tActConditional;
58 pthread_cond_t m_tPhysicsConditional;
59 pthread_cond_t m_tMediaConditional;
63 bool m_bIsControllableEntityAssignmentRecalculationNeeded;
86 void UpdateThread(
UInt32 un_id);
virtual void RemoveControllableEntity(CControllableEntity &c_entity)
virtual void UpdateControllableEntitiesSenseStep()
An entity that contains a pointer to the user-defined controller.
virtual void AddControllableEntity(CControllableEntity &c_entity)
ticpp::Element TConfigurationNode
The ARGoS configuration XML node.
virtual void Destroy()
Destroys the space and all its entities.
virtual ~CSpaceMultiThreadBalanceQuantity()
unsigned int UInt32
32-bit unsigned integer.
virtual void UpdateMedia()
friend void * LaunchUpdateThreadBalanceQuantity(void *p_data)
virtual void Init(TConfigurationNode &t_tree)
Initializes the space using the
section of the XML configuration file.
CSpaceMultiThreadBalanceQuantity()
virtual void UpdateControllableEntitiesAct()
The namespace containing all the ARGoS related code.
virtual void UpdatePhysics()