11 #include <boost/uuid/uuid.hpp>
12 #include <boost/uuid/uuid_generators.hpp>
13 #include <boost/uuid/uuid_io.hpp>
35 Thread_args(zmq::context_t* contextin, std::string threadname,
void (*funcin)(std::string)){
87 bool AddService(std::string ServiceName,
unsigned int port,
bool StatusQuery=
false);
89 int UpdateConnections(std::string ServiceName, zmq::socket_t* sock, std::map<std::string,Store*> &connections);
93 bool MessageThread(std::string ThreadName, std::string Message,
bool block=
true);
104 template <
typename T>
bool SendPointer(zmq::socket_t* sock, T* pointer){
106 std::stringstream tmp;
109 zmq::message_t message(tmp.str().length()+1);
110 snprintf ((
char *) message.data(), tmp.str().length()+1 ,
"%s" , tmp.str().c_str()) ;
112 return sock->send(message);
118 zmq::message_t message;
120 if(sock->recv(&message)){
122 std::istringstream iss(static_cast<char*>(message.data()));
128 pointer=
reinterpret_cast<T*
>(tmpP);
147 static void*
Thread(
void *arg);
173 bool FileExists(std::string pathname, std::string filename);
176 void Log(
const std::string & message,
const int message_level);
179 void Log(std::stringstream & message,
const int message_level);
Contains the start and end of a time window, along with an ID (nominally trigger number) ...
bool MessageThread(Thread_args *args, std::string Message, bool block=true)
Send simple string to String thread.
bool running
Bool flag to tell the thread to run (if not set thread goes into wait cycle.
bool AddService(std::string ServiceName, unsigned int port, bool StatusQuery=false)
Broadcasts an available service (only in remote mode)
Thread_args(zmq::context_t *contextin, std::string threadname, void(*funcin)(Thread_args *))
bool kill
Bool flay used to kill the thread.
std::string ThreadName
name of thread (deffined at creation)
zmq::socket_t * sock
ZMQ socket pointer is assigned in string thread,but can be sued otherwise.
Thread_args(zmq::context_t *contextin, std::string threadname, void(*funcin)(std::string))
static void * String_Thread(void *arg)
Simpe string thread.
static void * Thread(void *arg)
Thread with args.
void(* func_with_string)(std::string)
function pointer to string thread
static bool WindowSorter(const Window &lhs, const Window &rhs)
When sorting Window structs, sort by the start time.
void(* func)(Thread_args *)
function pointer to thread with args
bool KillThread(T *pointer)
Kill a thread with args that inheirt form base Thread_args.
LogLevel
Log level enumerations.
Thread_args * CreateThread(std::string ThreadName, void(*func)(std::string))
bool ReceivePointer(zmq::socket_t *sock, T *&pointer)
Receive a pointer over a ZMQ socket.
Utilities(zmq::context_t *zmqcontext)
Simple constructor.
std::map< std::string, Thread_args * > Threads
Map of threads managed by the utilities class.
pthread_t thread
Simple constructor underlying thread that interface is built ontop of.
zmq::context_t * context
ZMQ context used for ZMQ socket creation.
void Log(const std::string &message, const int message_level)
Format messages in the same way as for tools.
bool KillThread(Thread_args *&args)
Kill a thread assosiated to args.
bool SendPointer(zmq::socket_t *sock, T *pointer)
Send a pointer over a ZMQ socket.
Window(int trigger_num, TimeDelta start, TimeDelta end)
bool RemoveService(std::string ServiceName)
Removes service broadcasts for a service.
bool FileExists(std::string pathname, std::string filename)
Check if a file exists.
zmq::context_t * context
ZMQ context pointer.
int UpdateConnections(std::string ServiceName, zmq::socket_t *sock, std::map< std::string, Store * > &connections)
Dynamically connects a socket tp services broadcast with a specific name.