TopologyType NetworkForwarderTopology::lookupTypeByName( const string& name ) throw() { NetworkForwarderRequestMessage mess; mess.request_type = NETWORK_FORWARDER_TOPOLOGY_TYPE_REGISTER; mess.id = 0; mess.name = ""; BlockingRPCMessage container; { unique_lock<mutex> lock(container.m); client->isend(& mess, & container); printf("1"); fflush(stdout); // wait for the response container.cv.wait(lock); printf("10"); fflush(stdout); } TopologyType returnType; Release<TopologyTypeImplementation> newType(new TopologyTypeImplementation(name, (size_t) container.response.id)); returnType.setObject(newType); return returnType; }
TopologyType NetworkForwarderTopology::lookupTypeById( TopologyTypeId anId ) throw() { NetworkForwarderRequestMessage mess; mess.type = NETWORK_FORWARDER_TOPOLOGY_TYPE_LOOKUP_BY_ID; mess.id = anId; mess.name = ""; BlockingRPCMessage container; { unique_lock<mutex> lock(container.m); client->isend(& mess, & container); // wait for the response container.cv.wait(lock); } TopologyType returnType; Release<TopologyTypeImplementation> newType(new TopologyTypeImplementation( container.response.name, anId)); returnType.setObject(newType); return returnType; }