#include <DCDT_Agora.h>
Public Member Functions | |
DCDT_Agora (int PO_Type=1) | |
DCDT_Agora (char *filename, int PO_TYPE=1) | |
~DCDT_Agora () | |
void | AddMember (DCDT_Member *) |
void | AddSysMember (DCDT_Member *, unsigned int profile) |
void | RemoveMember (DCDT_Member *) |
int | ActivateMember (DCDT_Member *, char *name=NULL) |
int | ActivateSysMember (DCDT_Member *, char *name=NULL) |
void | LetsWork () |
Set agora status to DCDT_LETSWORK then wait for a Shutdown or a democratic termination. | |
void | SetStatus (int NewStatus) |
bool | CheckMemberProfile (int MemberID, unsigned int mask) |
Check if the profile for the member MemberID is mask. | |
int | GetStatus () |
int | ReadAgoraID () |
void | ReadIPStrAddr (char *addr) |
int | ReadIPAddr () |
int | CheckIfAllMemberReady () |
Check if all instantiated Members are initialized and ready. | |
int | GetFirstFreeMemberTableSlot () |
Return the first free slot or 0 if there is no room. | |
void | DeleteMemberTableEntry (int MemberID) |
Frees the slot for the member MemberID. | |
void | SetActive (int MembID) |
void | SetInactive (int MembID) |
Public Attributes | |
bool | FirstAgora |
Flag: = 1 -> First agora running on this machine. | |
bool | commflag |
Flag: false -> STANDALONE mode, true -> NETWORK mode. | |
Private Member Functions | |
bool | CommConfig (char *filename) |
Read agora configuration. | |
Private Attributes | |
char | IPStrAddr [INET_ADDRSTRLEN] |
int | AgoraID |
Agora unique identification based on the IP address, this is valid only for an Agora that is running a Finder ( i.e. the first Agora running in network mode ). | |
int | IPAddr |
int | Status |
int | MaxIDMember |
DCDT_PostOffice * | PostOffice |
DCDT_MsgManager * | MsgManager |
DCDT_Finder * | Finder |
DCDT_InnerLinkManager * | InnerLinkManager |
int | LastDCDT_MemberID |
DCDT_MemberTableElem | MemberTable [MAX_MEMBERS] |
FinderData * | finder_data |
Each project must have at least one DCDT_Agora object.
System Members started automatically:
Definition at line 103 of file DCDT_Agora.h.
|
Definition at line 43 of file DCDT_Agora.cpp. References ActivateSysMember(), AddSysMember(), AgoraID, Delay(), DeleteMemberTableEntry(), Finder, FirstAgora, InnerLinkManager, IPStrAddr, DCDT_InnerLinkManager::LookForExistingAgora(), MaxIDMember, MPM_SYSTEM, MsgManager, PostOffice, Status, TRC_ADD_THREAD, TRC_INIT, and UNIT_MAX. |
|
Definition at line 110 of file DCDT_Agora.cpp. References ActivateSysMember(), AddSysMember(), AgoraID, CommConfig(), commflag, DCDT_TRC_AGORA, Delay(), DeleteMemberTableEntry(), Finder, finder_data, FirstAgora, _FinderData::fp, InnerLinkManager, DCDT_InnerLinkManager::LookForExistingAgora(), MaxIDMember, MPM_SYSTEM, MsgManager, PostOffice, Status, TRC_ADD_THREAD, TRC_INIT, TRC_PRINT, and UNIT_MAX. |
|
Class destructor Definition at line 207 of file DCDT_Agora.cpp. References finder_data, _FinderData::fp, TRC_END, and TRC_REMOVE_THREAD. |
|
ActivateMember Definition at line 338 of file DCDT_Agora.cpp. References DCDT_Member::Activate(). Referenced by DCDT_InnerLinkManager::CreateLink(), DCDT_Finder::CreateLink(), and DCDT_LinkRx::DoYourJob(). |
|
ActivateSysMember Definition at line 344 of file DCDT_Agora.cpp. References DCDT_Member::Activate(). Referenced by DCDT_Agora(). |
|
|
|
Check if all instantiated Members are initialized and ready.
Definition at line 497 of file DCDT_Agora.cpp. References _DCDT_MemberTableElem::empty, _DCDT_MemberTableElem::MemberPtr, MemberTable, DCDT_Member::Status, and _DCDT_MemberTableElem::system. |
|
|
Read agora configuration.
The configuration file hold all the informations about network and static links, the first line must contains the ip address of the network interface, the multicast address and the multicast port where the Agorà listens for external messages. Definition at line 457 of file DCDT_Agora.cpp. References AgoraID, finder_data, FinderData, _FinderData::fp, _FinderData::IfNumAddr, _FinderData::IfStrAddr, IPStrAddr, _FinderData::McNumAddr, _FinderData::McPort, and _FinderData::McStrAddr. Referenced by DCDT_Agora(). |
|
Frees the slot for the member MemberID.
Definition at line 207 of file DCDT_Agora.h. References _DCDT_MemberTableElem::empty, _DCDT_MemberTableElem::FreeSlot, DCDT_Mutex::lock(), _DCDT_MemberTableElem::MemberPtr, MemberTable, _DCDT_MemberTableElem::mtx, _DCDT_MemberTableElem::num_missed_deadlines, and DCDT_Mutex::unlock(). Referenced by DCDT_Agora(), and RemoveMember(). |
|
Return the first free slot or 0 if there is no room.
Definition at line 191 of file DCDT_Agora.h. References _DCDT_MemberTableElem::FreeSlot, DCDT_Mutex::lock(), MemberTable, _DCDT_MemberTableElem::mtx, and DCDT_Mutex::unlock(). Referenced by AddMember(), and AddSysMember(). |
|
Definition at line 173 of file DCDT_Agora.h. Referenced by DCDT_Member::LifeCycle(), and DCDT_Member::Run(). |
|
Set agora status to DCDT_LETSWORK then wait for a Shutdown or a democratic termination.
Definition at line 353 of file DCDT_Agora.cpp. References _DCDT_MemberTableElem::active, DCDT_MemberTableElem, DCDT_TRC_AGORA, Delay(), _DCDT_MemberTableElem::empty, _DCDT_MemberTableElem::MemberPtr, MemberTable, DCDT_Member::Status, Status, _DCDT_MemberTableElem::system, and TRC_PRINT. |
|
Definition at line 122 of file DCDT_Agora.h. |
|
Definition at line 124 of file DCDT_Agora.h. |
|
Definition at line 123 of file DCDT_Agora.h. Referenced by DCDT_Member::DCDT_Member(). |
|
RemoveMember Definition at line 313 of file DCDT_Agora.cpp. References DCDT_TRC_AGORA, Delay(), DeleteMemberTableEntry(), DCDT_PostOffice::DeleteMemberTableEntry(), DCDT_Member::myID, DCDT_Member::myThread, PostOffice, DCDT_Member::Status, and TRC_PRINT. Referenced by DCDT_Finder::CloseLink(), DCDT_LinkRx::DoYourJob(), DCDT_InnerLinkManager::DoYourJob(), and DCDT_InnerLinkManager::Init(). |
|
Definition at line 139 of file DCDT_Agora.h. Referenced by DCDT_Member::LifeCycle(). |
|
Definition at line 140 of file DCDT_Agora.h. Referenced by DCDT_Member::LifeCycle(). |
|
SetStatus Definition at line 492 of file DCDT_Agora.cpp. References Status. Referenced by DCDT_Member::Shutdown(). |
|
Agora unique identification based on the IP address, this is valid only for an Agora that is running a Finder ( i.e. the first Agora running in network mode ).
Definition at line 148 of file DCDT_Agora.h. Referenced by CommConfig(), and DCDT_Agora(). |
|
Flag: false -> STANDALONE mode, true -> NETWORK mode.
Definition at line 137 of file DCDT_Agora.h. Referenced by DCDT_Agora(). |
|
Definition at line 157 of file DCDT_Agora.h. Referenced by DCDT_Agora(). |
|
Definition at line 166 of file DCDT_Agora.h. Referenced by CommConfig(), DCDT_Agora(), and ~DCDT_Agora(). |
|
Flag: = 1 -> First agora running on this machine.
Definition at line 134 of file DCDT_Agora.h. Referenced by DCDT_Agora(). |
|
Definition at line 160 of file DCDT_Agora.h. Referenced by DCDT_Agora(). |
|
Definition at line 149 of file DCDT_Agora.h. |
|
Definition at line 145 of file DCDT_Agora.h. Referenced by AddMember(), CommConfig(), and DCDT_Agora(). |
|
Definition at line 162 of file DCDT_Agora.h. |
|
Max ID of the created Members Definition at line 153 of file DCDT_Agora.h. Referenced by AddMember(), AddSysMember(), and DCDT_Agora(). |
|
Definition at line 164 of file DCDT_Agora.h. Referenced by AddMember(), AddSysMember(), CheckIfAllMemberReady(), CheckMemberProfile(), DeleteMemberTableEntry(), GetFirstFreeMemberTableSlot(), and LetsWork(). |
|
Definition at line 156 of file DCDT_Agora.h. Referenced by DCDT_Agora(). |
|
Definition at line 155 of file DCDT_Agora.h. Referenced by AddMember(), AddSysMember(), DCDT_Agora(), and RemoveMember(). |
|
Definition at line 150 of file DCDT_Agora.h. Referenced by DCDT_Agora(), LetsWork(), and SetStatus(). |