32 Enter_Method(
"resolveApnToBestAddress()");
36 EV <<
"DA does not know target application" << endl;
46 EV <<
"None of found DIFs is local!" << endl;
51 Enter_Method(
"resolveApnToBestAddress()");
55 EV <<
"DA does not know target application" << endl;
61 if (it->getDifName() == difName &&
isDifLocal(it->getDifName()))
65 EV <<
"None of found DIFs is local!" << endl;
94 cModule* top = ipc->getParentModule();
95 for (cModule::SubmoduleIterator j(top); !j.end(); j++) {
96 cModule *submodp = j();
98 && !opp_strcmp(submodp->par(
PAR_DIFNAME), difName.c_str())
114 return ipcX->getParentModule() == ipcY->getParentModule()
120 cModule* top = this->getModuleByPath(
"^.^");
121 for (cModule::SubmoduleIterator j(top); !j.end(); j++) {
122 cModule* submodp = j();
135 cModule* top = this->getModuleByPath(
"^.^");
136 for (cModule::SubmoduleIterator j(top); !j.end(); j++) {
137 cModule* submodp = j();
149 cModule* top = this->getModuleByPath(
"^.^");
150 for (cModule::SubmoduleIterator j(top); !j.end(); j++) {
151 cModule* submodp = j();
159 cModule* top = this->getModuleByPath(
"^.^");
160 for (cModule::SubmoduleIterator j(top); !j.end(); j++) {
161 cModule* submodp = j();
171 cModule* top = this->getModuleByPath(
"^.^");
172 for (cModule::SubmoduleIterator j(top); !j.end(); j++) {
173 cModule *submodp = j();
188 Enter_Method(
"resolveApn()");
191 for (
ApnCItem it = apns.begin(); it != apns.end(); ++it) {
205 cModule* top = this->getModuleByPath(
"^.^");
206 for (cModule::SubmoduleIterator j(top); !j.end(); j++) {
207 cModule *submodp = j();
217 Enter_Method(
"resolveApnToAddressList()");
221 EV <<
"DA does not know target application" << endl;
228 if (it->getDifName() == difName &&
isDifLocal(it->getDifName()))
229 addrs->push_back(*it);
232 if (addrs->empty()) {
233 EV <<
"None of found DIFs is local!" << endl;
std::list< Address > Addresses
const APNList * findNeigborApns(const APN &neighbor)
virtual void initialize()
const APNList * findApnNeigbors(const APN &apn)
const char * MOD_NEIGHBORTABLE
Application Process Name class.
bool isDifLocalToIpc(const std::string difName, cModule *ipc)
NamingInformation * NamInfo
Addresses::const_iterator AddrCItem
cModule * findIpc(const Address &addr)
DirectoryEntry * findDirEntryByApn(const APN &apn)
bool isDifLocal(const DAP &difName)
std::list< APN > APNList
APNList represents the list of APNs.
cModule * findApp(const APN &apn)
const char * MOD_SEARCHTAB
NeighborTable * NeighborTab
FABase * findFaInsideIpc(cModule *ipc)
const APNList * findNeighborsByApn(const APN &apn)
const char * MOD_DIRECTORY
bool isAppLocal(const APN &apn)
virtual void handleMessage(cMessage *msg)
const char * MOD_FLOWALLOC
const std::string & getName() const
Gets DAP string name representation.
bool isIpcLocal(cModule *ipc)
const Addresses & getSupportedDifs() const
const Addresses * resolveApnToAddressList(const APN &apn, const DAP &difName)
APNList::const_iterator ApnCItem
APNList constant iterator.
const std::string & getName() const
Gets APN string name representation.
cModule * getDifMember(const DAP &difName)
const APNList * findApnsByNeighbor(const APN &neighbor)
Address class holds IPC Process identification.
bool isIpcXLocalToIpcY(cModule *ipcX, cModule *ipcY)
const Address * resolveApnToBestAddress(const APN &apn)
Distributed Application Process name a.k.a. DAP class.
DirectoryEntry * resolveApn(const APN &apn)