#include "CM_Types.h" 
#include "CFM_Net.h"
#include "CM_MQ.h"
#include "CM_MultiThread.h"

#define NET_UDP_BUF_MAX    ((1024*256) - (1)) /*UDP协议栈缓冲区大小（用于接收代码）*/

  typedef struct
 {
    CM_CHAR IP_Local[32];  /**< 本地通信IP */
    CM_CHAR IP_Pear[32];  /**< 对端通信IP */
    CM_UINT16 Port;  /**< 通信端口 */
    CM_SOCKET Socket;  /**< 通信socket */
    CM_MQ_Struct_T MsgQ; /**< 接收消息队列 */
    STRU_2OO2_NET_NO_PACK_T Net_2oo2_Ctl; /**< 2oo2网络无包结构体 */
 }STR_Area_Net_Cfg;

 typedef struct
 {
     CM_CHAR IP_Local[32];  /**< 本地通信IP */
     CM_CHAR IP_Partner[32];  /**< 对系通信IP */
     CM_CHAR IP_Partner_Area_A[32];  /**< 对地通信IP */
     CM_CHAR IP_Partner_Area_B[32];  /**< 对地通信IP */
     CM_SOCKET Socket;  /**< 套接字 */
     CM_UINT16 port;  /**< 端口号 */
     CM_MQ_Struct_T MsgQ; /**< 接收消息队列 */
 }STR_Area_IP_Cfg;

 CM_THREAD_FUNC_T t_Area_2oo2_UdpRecvThread(IN CM_Thread_Arg_Struct_T* arg);
 CM_THREAD_FUNC_T t_Area_UdpRecvThread(IN STR_Area_IP_Cfg* arg);
 ENUM_CM_RETURN Area_LogMQ_Init(void);
 void Area_LOG_MSG(IN const CM_CHAR *filename, IN CM_INT32 line, IN const CM_CHAR* fmt, ...);
#define AREA_LOG_MSG(fmt, ...) (Area_LOG_MSG(FILENAME(__FILE__),(CM_INT32)__LINE__,(fmt), ##__VA_ARGS__))


