Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions src/DAQDataModelBase/DAQUtilities.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,32 @@ bool DAQUtilities::AddService(std::string ServiceName, unsigned int port, bool S
return Ireceive.send(send);


}

bool DAQUtilities::AddService(std::vector<std::string> ServiceName, std::vector<unsigned int> port, std::vector<bool> StatusQuery){

bool ret = true;
zmq::socket_t Ireceive (*context, ZMQ_PUSH);
Ireceive.connect("inproc://ServicePublish");

if(ServiceName.size() != port.size() || ServiceName.size() != StatusQuery.size()) return false;

for(size_t i=0; i<ServiceName.size(); i++){

boost::uuids::uuid m_UUID;
m_UUID = boost::uuids::random_generator()();

std::stringstream test;
test<<"Add "<< ServiceName.at(i) <<" "<<m_UUID<<" "<<port.at(i)<<" "<<((int)StatusQuery.at(i)) ;

zmq::message_t send(test.str().length()+1);
snprintf ((char *) send.data(), test.str().length()+1 , "%s" ,test.str().c_str()) ;

ret = Ireceive.send(send) && ret;
}
return ret;


}


Expand Down
1 change: 1 addition & 0 deletions src/DAQDataModelBase/DAQUtilities.h
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ namespace ToolFramework{
using Utilities::CreateThread;
DAQUtilities(zmq::context_t* zmqcontext); ///< Simple constructor
bool AddService(std::string ServiceName, unsigned int port, bool StatusQuery=false); ///< Broadcasts an available service (only in remote mode)
bool AddService(std::vector<std::string> ServiceName, std::vector<unsigned int> port, std::vector<bool> StatusQuery); ///< Broadcasts an available service (only in remote mode)
bool RemoveService(std::string ServiceName); ///< Removes service broadcasts for a service
bool AddPort(std::string ServiceName, unsigned int port); ///< Broadcasts an available port (only in remote mode)
bool RemovePort(std::string ServiceName); ///< Removes port broadcasts for a service
Expand Down
10 changes: 5 additions & 5 deletions src/RemoteControl/RemoteControl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -78,25 +78,26 @@ int main(int argc, char** argv){

zmq::message_t receive;
Ireceive.recv(&receive);
std::istringstream iss(static_cast<char*>(receive.data()));
// std::istringstream iss(static_cast<char*>(receive.data()));

int size;
iss>>size;
// iss>>size;s

std::memcpy(&size, receive.data(), sizeof(size));

for(unsigned int i=0;i<RemoteServices.size();i++){
delete RemoteServices.at(i);
RemoteServices.at(i)=0;
}
RemoteServices.clear();


//printf("size=%u\n",size);
for(int i=0;i<size;i++){

Store *service = new Store;

zmq::message_t servicem;
Ireceive.recv(&servicem);

std::istringstream ss(static_cast<char*>(servicem.data()));
service->JsonParser(ss.str());
std::string name;
Expand All @@ -107,7 +108,6 @@ int main(int argc, char** argv){

}


// zmq::message_t tmp;
// Ireceive.recv(&tmp);

Expand Down
10 changes: 5 additions & 5 deletions src/ServiceDiscovery/ServiceDiscovery.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -678,8 +678,8 @@ void* ServiceDiscovery::MulticastListenThread(void* arg){
int size= RemoteServices.size();
zmq::message_t sizem(sizeof size);

snprintf ((char *) sizem.data(), sizeof size , "%d" ,size) ;
//snprintf ((char *) sizem.data(), sizeof size , "%d" ,size) ;
std::memcpy(sizem.data(), &size,sizeof size);
// zmq::poll(out,1,1000);

// if (out[0].revents & ZMQ_POLLOUT){
Expand All @@ -689,8 +689,8 @@ void* ServiceDiscovery::MulticastListenThread(void* arg){
if(size==0) Ireceive.send(sizem);
else Ireceive.send(sizem,ZMQ_SNDMORE);


for (std::map<std::string,Store*>::iterator it=RemoteServices.begin(); it!=RemoteServices.end(); ){
//printf("SD size=%u\n", size);
for (std::map<std::string,Store*>::iterator it=RemoteServices.begin(); it!=RemoteServices.end(); ){

std::string service;
*(it->second)>>service;
Expand All @@ -717,7 +717,7 @@ void* ServiceDiscovery::MulticastListenThread(void* arg){
// }

}
// }
// }

}

Expand Down
Loading