#ifndef __MESSAGESENDER_H__
#define __MESSAGESENDER_H__

#ifdef __cplusplus
#ifndef BEGIN_DECLS
#define BEGIN_DECLS extern "C" {
#endif
#ifndef END_DECLS
#define END_DECLS }
#endif
#else
#ifndef BEGIN_DECLS
#define BEGIN_DECLS
#endif
#ifndef END_DECLS
#define END_DECLS
#endif
#endif

BEGIN_DECLS

#include <limits.h>

#ifdef _WIN32
#include <wchar.h>
#endif

#include "Common.h"
#include "StringUtil.h"
#include "Log.h"
#include "MessageQueue.h"
#include "SystemUtil.h"
#include "SecureCodingUtil.h"

#if 1
#include "def_set.h"
#include "dir_path.h"
#include "snd_rcv_knd.h"
#include "hi_packet_format.h"
#endif

#define MS_ERR_SUCCESS              0
#define MS_ERR_CONFIG               -1
#define MQ_CONF_MESSAGE_SEND_REAL_QUEUE_NAME_KEY    "MQ_MESSAGE_SEND_REAL_QUEUE_NAME"
#define MQ_CONF_MESSAGE_SEND_HQCT_QUEUE_NAME_KEY    "MQ_MESSAGE_SEND_HQCT_QUEUE_NAME"

#define MS_RESPONSE_TIMEOUT_KEY     "RESPONSE_TIMEOUT"


extern char g_szProcessname[MAX_STRING_SIZE + 1];
extern char g_szProcessPath[PATH_MAX + 1];

int InitMessageSenderConfig();
void *ProcThread(void *pData);
void *ProcThreadT(void *pData);
int GetSerialNo();

END_DECLS

#endif
