Ver Fonte

#IQRV #comment [Chromium] (1)发现linux下inline有问题,扩展不开(2)存在宏定义拼接时,出现问题

陈良瑜80374463 há 3 anos atrás
pai
commit
53353a33d2

+ 1 - 0
Module/mod_chromium/CMakeLists.txt

@@ -42,6 +42,7 @@ set(${MODULE_PREFIX}_SRCS
 	ISocketCallback.h
 	Job.h
 	MessageType.h
+	MessageType.cpp
 	mod_chromium.cpp
 	mod_chromium.h
 	processControl.cpp

+ 2 - 1
Module/mod_chromium/CWSCodec.cpp

@@ -17,6 +17,7 @@
 #include <vector>
 #include <string>
 #include <memory>
+#include "baseEx.h"
 
 #define DEFAULT_CAPACITY			20480
 
@@ -558,7 +559,7 @@ namespace Chromium {
 		// RequestAck 返回的有问题 要删除对应的回调list项
 		if (Error_Succeed != errorCode && RequestAck == msg.getMessageType())
 		{
-			std::map<int, entity_def_struct>::iterator it = m_AckCallbackList->find(msg.getTransID());
+			std::map<int, entity_def_struct>::iterator it = m_AckCallbackList->find(msg.getTransID());  
 			if (m_AckCallbackList->end() != it)
 				m_AckCallbackList->erase(it);
 		}

+ 182 - 0
Module/mod_chromium/MessageType.cpp

@@ -0,0 +1,182 @@
+#include "MessageType.h"
+
+
+#if (defined _WIN32 || defined _WIN64)
+std::string GetMessageTypeString(int messageType) {
+#define CASE(code) \
+  case code:       \
+    return #code
+	switch (messageType)
+	{
+		CASE(Info);
+		CASE(BeginSession);
+		CASE(EndSession);
+		CASE(Request);
+		CASE(RequestAck);
+		CASE(SessionAck);
+		CASE(Register);
+		CASE(Unregister);
+		CASE(Event);
+		CASE(LogEventMsgType);
+		CASE(LogWarnMsgType);
+		CASE(SetVarReq);
+		CASE(SetVarAck);
+		CASE(GetVarReq);
+		CASE(GetVarAck);
+		CASE(Broadcast);
+		CASE(GetSession);
+		CASE(WEB_CHROMIUM_MSG_BEGIN);
+		CASE(RegisterNotify);
+		CASE(UnRegisterNotify);
+		CASE(WEB_CHROMIUM_MSG_END);
+		CASE(METHOD_SYSTEM_START);
+		CASE(METHOD_SYSTEM_LOG_DEBUG);
+		CASE(METHOD_SYSTEM_LOG_INFO);
+		CASE(METHOD_SYSTEM_LOG_WARN);
+		CASE(METHOD_SYSTEM_LOG_ERROR);
+		CASE(METHOD_SYSTEM_END);
+	default:
+		return "UNKNOWN";
+	}
+}std::string GetMessageTypeString(int messageType) {
+#define CASE(code) \
+  case code:       \
+    return #code
+	switch (messageType)
+	{
+		CASE(Info);
+		CASE(BeginSession);
+		CASE(EndSession);
+		CASE(Request);
+		CASE(RequestAck);
+		CASE(SessionAck);
+		CASE(Register);
+		CASE(Unregister);
+		CASE(Event);
+		CASE(LogEventMsgType);
+		CASE(LogWarnMsgType);
+		CASE(SetVarReq);
+		CASE(SetVarAck);
+		CASE(GetVarReq);
+		CASE(GetVarAck);
+		CASE(Broadcast);
+		CASE(GetSession);
+		CASE(WEB_CHROMIUM_MSG_BEGIN);
+		CASE(RegisterNotify);
+		CASE(UnRegisterNotify);
+		CASE(WEB_CHROMIUM_MSG_END);
+		CASE(METHOD_SYSTEM_START);
+		CASE(METHOD_SYSTEM_LOG_DEBUG);
+		CASE(METHOD_SYSTEM_LOG_INFO);
+		CASE(METHOD_SYSTEM_LOG_WARN);
+		CASE(METHOD_SYSTEM_LOG_ERROR);
+		CASE(METHOD_SYSTEM_END);
+	default:
+		return "UNKNOWN";
+	}
+}std::string GetMessageTypeString(int messageType) {
+#define CASE(code) \
+  case code:       \
+    return #code
+	switch (messageType)
+	{
+		CASE(Info);
+		CASE(BeginSession);
+		CASE(EndSession);
+		CASE(Request);
+		CASE(RequestAck);
+		CASE(SessionAck);
+		CASE(Register);
+		CASE(Unregister);
+		CASE(Event);
+		CASE(LogEventMsgType);
+		CASE(LogWarnMsgType);
+		CASE(SetVarReq);
+		CASE(SetVarAck);
+		CASE(GetVarReq);
+		CASE(GetVarAck);
+		CASE(Broadcast);
+		CASE(GetSession);
+		CASE(WEB_CHROMIUM_MSG_BEGIN);
+		CASE(RegisterNotify);
+		CASE(UnRegisterNotify);
+		CASE(WEB_CHROMIUM_MSG_END);
+		CASE(METHOD_SYSTEM_START);
+		CASE(METHOD_SYSTEM_LOG_DEBUG);
+		CASE(METHOD_SYSTEM_LOG_INFO);
+		CASE(METHOD_SYSTEM_LOG_WARN);
+		CASE(METHOD_SYSTEM_LOG_ERROR);
+		CASE(METHOD_SYSTEM_END);
+	default:
+		return "UNKNOWN";
+	}
+}
+#else
+std::string GetMessageTypeString(int messageType) {
+	switch (messageType)
+	{
+	case Info:
+		return "Info";
+	case BeginSession:
+		return "BeginSession";
+	case EndSession:
+		return "EndSession";
+	case Request:
+		return "Request";
+	case RequestAck:
+		return "RequestAck";
+	case SessionAck:
+		return "SessionAck";
+	case Register:
+		return "Register";
+	case Unregister:
+		return "Unregister";
+	case Event:
+		return "Event";
+	case LogEventMsgType:
+		return "LogEventMsgType";
+	case LogWarnMsgType:
+		return "LogWarnMsgType";
+	case SetVarReq:
+		return "SetVarReq";
+	case SetVarAck:
+		return "SetVarAck";
+	case GetVarReq:
+		return "GetVarReq";
+	case GetVarAck:
+		return "GetVarAck";
+	case Broadcast:
+		return "Broadcast";
+	case GetSession:
+		return "GetSession";
+	case WEB_CHROMIUM_MSG_BEGIN:
+		return "WEB_CHROMIUM_MSG_BEGIN";
+	case RegisterNotify:
+		return "RegisterNotify";
+	case UnRegisterNotify:
+		return "UnRegisterNotify";
+	case WEB_CHROMIUM_MSG_END:
+		return "WEB_CHROMIUM_MSG_END";
+	case METHOD_SYSTEM_START:
+		return "METHOD_SYSTEM_START";
+	case METHOD_SYSTEM_LOG_DEBUG:
+		return "METHOD_SYSTEM_LOG_DEBUG";
+	case METHOD_SYSTEM_LOG_INFO:
+		return "METHOD_SYSTEM_LOG_INFO";
+	case METHOD_SYSTEM_LOG_WARN:
+		return "METHOD_SYSTEM_LOG_WARN";
+	case METHOD_SYSTEM_LOG_ERROR:
+		return "METHOD_SYSTEM_LOG_ERROR";
+	case METHOD_SYSTEM_END:
+		return "METHOD_SYSTEM_END";
+	default:
+		return "UNKNOWN";
+
+	}
+}
+#endif
+
+
+
+
+

+ 2 - 38
Module/mod_chromium/MessageType.h

@@ -53,43 +53,7 @@ typedef struct {
 	int reservedControl;
 }link_context;
 
-
-inline std::string GetMessageTypeString(int messageType) {
-#define CASE(code) \
-  case code:       \
-    return #code
-	switch (messageType)
-	{
-		CASE(Info);
-		CASE(BeginSession);
-		CASE(EndSession);
-		CASE(Request);
-		CASE(RequestAck);
-		CASE(SessionAck);
-		CASE(Register);
-		CASE(Unregister);
-		CASE(Event);
-		CASE(LogEventMsgType);
-		CASE(LogWarnMsgType);
-		CASE(SetVarReq);
-		CASE(SetVarAck);
-		CASE(GetVarReq);
-		CASE(GetVarAck);
-		CASE(Broadcast);
-		CASE(GetSession);
-		CASE(WEB_CHROMIUM_MSG_BEGIN);
-		CASE(RegisterNotify);
-		CASE(UnRegisterNotify);
-		CASE(WEB_CHROMIUM_MSG_END);
-		CASE(METHOD_SYSTEM_START);
-		CASE(METHOD_SYSTEM_LOG_DEBUG);
-		CASE(METHOD_SYSTEM_LOG_INFO);
-		CASE(METHOD_SYSTEM_LOG_WARN);
-		CASE(METHOD_SYSTEM_LOG_ERROR);
-		CASE(METHOD_SYSTEM_END);
-	default:
-		return "UNKNOWN";
-	}
-}
+//(1)发现linux下inline有问题,扩展不开(2)存在宏定义拼接时,出现问题
+std::string GetMessageTypeString(int messageType);
 
 #endif

+ 1 - 1
Module/mod_chromium/baseEx.cpp

@@ -277,7 +277,7 @@ std::pair<unsigned long, std::string> splitStrToUserCodeAndErrMsg(std::string sr
 		return std::make_pair(0, srcMsg);
 
 	unsigned long userCode = std::stoi(srcMsg.substr(headerStr.length()));
-	std::string userCodeStr = CSimpleString::Format("0x%X", userCode);
+	std::string userCodeStr = CSimpleString::Format("0x%X", userCode).GetData();
 
 	if (g_usercodeTranslateFile.length() == 0)
 		return std::make_pair(userCode, srcMsg);

+ 2 - 2
Module/mod_chromium/mod_chromium.cpp

@@ -386,7 +386,7 @@ namespace Chromium {
 		return true;
 }
 
-	bool CChromiumEntity::OnPreStart_openWeb(CAutoArray<CSimpleStringA>& strArgs, CSmartPointer<ITransactionContext>& pTransactionContext)
+	bool CChromiumEntity::OnPreStart_openWeb()
 	{
 		//generateBussinessLimitTimer();
 #if (defined _WIN32 || defined _WIN64)
@@ -465,7 +465,7 @@ namespace Chromium {
 			if (!OnPreStart_register(strArgs, pTransactionContext)) {
 				return;
 			}
-			if (!OnPreStart_openWeb(strArgs, pTransactionContext)) {
+			if (!OnPreStart_openWeb()) {
 				return;
 			}
 		}

+ 2 - 1
Module/mod_chromium/mod_chromium.h

@@ -36,6 +36,7 @@
 
 
 
+
 #pragma once
 namespace Chromium {
 
@@ -155,7 +156,7 @@ namespace Chromium {
 		void OnPreStart_Init(CAutoArray<CSimpleStringA>& strArgs, CSmartPointer<ITransactionContext>& pTransactionContext);
 		bool OnPreStart_socketStart(CAutoArray<CSimpleStringA>& strArgs, CSmartPointer<ITransactionContext>& pTransactionContext);
 		bool OnPreStart_register(CAutoArray<CSimpleStringA>& strArgs, CSmartPointer<ITransactionContext>& pTransactionContext);
-		bool OnPreStart_openWeb(CAutoArray<CSimpleStringA>& strArgs, CSmartPointer<ITransactionContext>& pTransactionContext);
+		bool OnPreStart_openWeb();
 		SP_BEGIN_MSG_DISPATCH_MAP(CChromiumEntity)
 #if (defined _WIN32 || defined _WIN64)
 			SP_BEGIN_ENTITY_MSG("IEBrowser")