doompanning/src/dp_common.h

45 lines
1,023 B
C

#ifndef DP_COMMON_H
#define DP_COMMON_H
#include <nng/nng.h>
#include <stdlib.h>
#include "dp_types.h"
#include "log.h"
#ifdef __cplusplus
extern "C" {
#endif
#define dp_fatal(...) log_fatal(__VA_ARGS__)
void dp_nng_fatal(const char *const msg, int rv);
void dp_errno_fatal(const char *const msg);
void dp_nng_init_limits(int ncpu_max, int pool_thread_limit_max, int resolv_thread_limit);
nng_socket make_ctrl_pub(const char *url);
nng_socket make_ctrl_sub(const char *url);
nng_socket make_doom_pub(const char *url);
nng_socket make_doom_sub(const char *url);
static const char *const CtrlUrl = "ipc://666_ctrl.socket"; // controller publishes here
static const char *const DoomUrl = "ipc://666_doom.socket"; // dooms publish here
typedef u32 doomid_t; // unique id for each doom instance
typedef u16 dmt_t; // for DP_MessageType values
enum DP_MessageType
{
DP_MT_Invalid,
DP_MT_DoomReady,
DP_MT_RunDoom,
DP_MT_QuitDoom,
DP_MT_COUNT
};
#ifdef __cplusplus
}
#endif
#endif /* DP_COMMON_H */