Backup.
This commit is contained in:
		
							parent
							
								
									3cf1a1d8bd
								
							
						
					
					
						commit
						b11ebd8e4c
					
				
							
								
								
									
										7
									
								
								external/libhv/libhv-1.3.2/CMakeLists.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								external/libhv/libhv-1.3.2/CMakeLists.txt
									
									
									
									
										vendored
									
									
								
							|  | @ -231,8 +231,11 @@ endif() | |||
| 
 | ||||
| list_source_directories(LIBHV_SRCS ${LIBHV_SRCDIRS}) | ||||
| 
 | ||||
| file(INSTALL ${LIBHV_HEADERS} DESTINATION include/hv) | ||||
| file(INSTALL ${LIBHV_HEADERS} DESTINATION ${PROJECT_SOURCE_DIR}/include/hv) | ||||
| set(folder_path "${PROJECT_SOURCE_DIR}/include/hv") # added by xiao | ||||
| if(NOT EXISTS ${folder_path})                       # added by xiao | ||||
|     file(INSTALL ${LIBHV_HEADERS} DESTINATION include/hv) | ||||
|     file(INSTALL ${LIBHV_HEADERS} DESTINATION ${PROJECT_SOURCE_DIR}/include/hv) | ||||
| endif() # added by xiao | ||||
| 
 | ||||
| if(BUILD_SHARED) | ||||
|     add_library(hv SHARED ${LIBHV_SRCS}) | ||||
|  |  | |||
|  | @ -14,4 +14,5 @@ add_subdirectory(LedControl) | |||
| add_subdirectory(KeyControl) | ||||
| add_subdirectory(MediaAdapter) | ||||
| add_subdirectory(FxHttpServer) | ||||
| add_subdirectory(Servers) | ||||
| add_subdirectory(Servers) | ||||
| add_subdirectory(TcpModule) | ||||
							
								
								
									
										51
									
								
								utils/TcpModule/CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								utils/TcpModule/CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,51 @@ | |||
| include(${CMAKE_SOURCE_DIR_IPCSDK}/build/global_config.cmake) | ||||
| set(EXECUTABLE_OUTPUT_PATH ${EXEC_OUTPUT_PATH}) | ||||
| set(LIBRARY_OUTPUT_PATH ${LIBS_OUTPUT_PATH}) | ||||
| 
 | ||||
| include_directories( | ||||
|     ./src | ||||
|     ./include | ||||
|     ${UTILS_SOURCE_PATH}/LinuxApi/include | ||||
|     ${UTILS_SOURCE_PATH}/StatusCode/include | ||||
|     ${UTILS_SOURCE_PATH}/Log/include | ||||
| ) | ||||
| # link_directories( | ||||
| #     ${EXTERNAL_SOURCE_PATH}/libconfig/libconfig-1.7.3/lib/.libs | ||||
| # ) | ||||
| 
 | ||||
| aux_source_directory(./src SRC_FILES) | ||||
| 
 | ||||
| set(TARGET_NAME TcpModule) | ||||
| add_library(${TARGET_NAME} STATIC ${SRC_FILES}) | ||||
| target_link_libraries(${TARGET_NAME} LinuxApi StatusCode Log) | ||||
| 
 | ||||
| if ("${CLANG_TIDY_SUPPORT}" MATCHES "true") | ||||
| add_custom_target( | ||||
|     TcpModule_code_check | ||||
|     COMMAND ${CLANG_TIDY_EXE} | ||||
|     -checks='${CLANG_TIDY_CHECKS}' | ||||
|     --header-filter=.* | ||||
|     --system-headers=false | ||||
|     ${SRC_FILES} | ||||
|     ${CLANG_TIDY_CONFIG} | ||||
|     -p ${PLATFORM_PATH}/cmake-shell | ||||
|     WORKING_DIRECTORY ${UTILS_SOURCE_PATH}/TcpModule | ||||
| ) | ||||
| file(GLOB_RECURSE HEADER_FILES *.h) | ||||
| add_custom_target( | ||||
|     TcpModule_code_format | ||||
|     COMMAND ${CLANG_FORMAT_EXE} | ||||
|     -style=file | ||||
|     -i ${SRC_FILES} ${HEADER_FILES} | ||||
|     WORKING_DIRECTORY ${UTILS_SOURCE_PATH}/TcpModule | ||||
| ) | ||||
| add_custom_command( | ||||
|     TARGET ${TARGET_NAME} | ||||
|     PRE_BUILD | ||||
|     COMMAND make TcpModule_code_check | ||||
|     COMMAND make TcpModule_code_format | ||||
|     WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/ | ||||
| ) | ||||
| endif() | ||||
| 
 | ||||
| define_file_name(${TARGET_NAME}) | ||||
							
								
								
									
										36
									
								
								utils/TcpModule/include/TcpModule.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								utils/TcpModule/include/TcpModule.h
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,36 @@ | |||
| /*
 | ||||
|  * Copyright (c) 2023 Fancy Code. | ||||
|  * Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|  * you may not use this file except in compliance with the License. | ||||
|  * You may obtain a copy of the License at | ||||
|  * | ||||
|  *     http://www.apache.org/licenses/LICENSE-2.0
 | ||||
|  * | ||||
|  * Unless required by applicable law or agreed to in writing, software | ||||
|  * distributed under the License is distributed on an "AS IS" BASIS, | ||||
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|  * See the License for the specific language governing permissions and | ||||
|  * limitations under the License. | ||||
|  */ | ||||
| #ifndef TCP_MODULE_H | ||||
| #define TCP_MODULE_H | ||||
| #ifdef __cplusplus | ||||
| extern "C" { | ||||
| #endif | ||||
| typedef void (*TcpReadFunction)(void *, const int, void *); | ||||
| typedef struct tcp_parm | ||||
| { | ||||
|     const char *mIp; | ||||
|     const int mPort; | ||||
|     const TcpReadFunction mReadFunc; | ||||
| } TcpPram; | ||||
| void *CreateTcpServer(const TcpPram param); | ||||
| void FreeTcpServer(void *pointer); | ||||
| int TcpServerWrite(void *object, void *buf, const int bufLenght); | ||||
| void *CreateTcpClient(const TcpPram param); | ||||
| void FreeTcpClient(void *pointer); | ||||
| int TcpClientWrite(void *object, void *buf, const int bufLenght); | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif | ||||
| #endif | ||||
							
								
								
									
										17
									
								
								utils/TcpModule/src/TcpModule.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								utils/TcpModule/src/TcpModule.cpp
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,17 @@ | |||
| /*
 | ||||
|  * Copyright (c) 2023 Fancy Code. | ||||
|  * Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|  * you may not use this file except in compliance with the License. | ||||
|  * You may obtain a copy of the License at | ||||
|  * | ||||
|  *     http://www.apache.org/licenses/LICENSE-2.0
 | ||||
|  * | ||||
|  * Unless required by applicable law or agreed to in writing, software | ||||
|  * distributed under the License is distributed on an "AS IS" BASIS, | ||||
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|  * See the License for the specific language governing permissions and | ||||
|  * limitations under the License. | ||||
|  */ | ||||
| #include "TcpModule.h" | ||||
| #include "TcpModuleImpl.h" | ||||
| void *CreateTcpServer(const TcpPram param) { return NewTcpServer(param); } | ||||
							
								
								
									
										34
									
								
								utils/TcpModule/src/TcpModuleImpl.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								utils/TcpModule/src/TcpModuleImpl.cpp
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,34 @@ | |||
| /*
 | ||||
|  * Copyright (c) 2023 Fancy Code. | ||||
|  * Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|  * you may not use this file except in compliance with the License. | ||||
|  * You may obtain a copy of the License at | ||||
|  * | ||||
|  *     http://www.apache.org/licenses/LICENSE-2.0
 | ||||
|  * | ||||
|  * Unless required by applicable law or agreed to in writing, software | ||||
|  * distributed under the License is distributed on an "AS IS" BASIS, | ||||
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|  * See the License for the specific language governing permissions and | ||||
|  * limitations under the License. | ||||
|  */ | ||||
| #include "TcpModuleImpl.h" | ||||
| #include "ILog.h" | ||||
| #include <cstring> | ||||
| static const char *TCP_MODULE_NAME = "tcp_module"; | ||||
| const char *GetTcpModuleName(void) { return TCP_MODULE_NAME; } | ||||
| void *NewTcpModuleImpl(const TcpPram &tcpParam) | ||||
| { | ||||
|     if (nullptr == tcpParam.mIp) { | ||||
|         LogError("Parament error, nullptr == tcpParam.mIp\n"); | ||||
|         return nullptr; | ||||
|     } | ||||
|     LogInfo("Create the tcp module object.\n"); | ||||
|     TcpServer *impl = (TcpServer *)malloc(sizeof(TcpServer)); | ||||
|     TcpServer tmp; | ||||
|     memcpy((void *)impl, (void *)&tmp, sizeof(TcpServer)); | ||||
|     impl->mHeader.mCheckName = TCP_MODULE_NAME; | ||||
|     impl->mTcpImpl = std::make_shared<TcpModuleImpl>(tcpParam); | ||||
|     return (void *)(((char *)impl) + sizeof(TcpModuleHeader)); | ||||
| } | ||||
| void *NewTcpServer(const TcpPram &tcpParam) { return nullptr; } | ||||
							
								
								
									
										52
									
								
								utils/TcpModule/src/TcpModuleImpl.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								utils/TcpModule/src/TcpModuleImpl.h
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,52 @@ | |||
| /*
 | ||||
|  * Copyright (c) 2023 Fancy Code. | ||||
|  * Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|  * you may not use this file except in compliance with the License. | ||||
|  * You may obtain a copy of the License at | ||||
|  * | ||||
|  *     http://www.apache.org/licenses/LICENSE-2.0
 | ||||
|  * | ||||
|  * Unless required by applicable law or agreed to in writing, software | ||||
|  * distributed under the License is distributed on an "AS IS" BASIS, | ||||
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|  * See the License for the specific language governing permissions and | ||||
|  * limitations under the License. | ||||
|  */ | ||||
| #ifndef TCP_MODULE_IMPL_H | ||||
| #define TCP_MODULE_IMPL_H | ||||
| #include "StatusCode.h" | ||||
| #include "TcpModule.h" | ||||
| #include <memory> | ||||
| #define TCP_MODULE_INIT_NAME "UART" | ||||
| typedef struct uart_device_header | ||||
| { | ||||
|     const char *mCheckName; | ||||
| } TcpModuleHeader; | ||||
| class TcpModuleImpl | ||||
| { | ||||
| public: | ||||
|     TcpModuleImpl(const TcpPram &uatrInfo); | ||||
|     virtual ~TcpModuleImpl() = default; | ||||
| 
 | ||||
| private: | ||||
|     const StatusCode SetConfig(void); | ||||
| 
 | ||||
| private: | ||||
|     const TcpPram mUatrInfo; | ||||
|     int mFd; | ||||
| }; | ||||
| // TODO: There may be a CPU byte alignment bug.
 | ||||
| typedef struct tcp_server TcpServer; | ||||
| typedef struct tcp_server | ||||
| { | ||||
|     TcpModuleHeader mHeader; | ||||
|     std::shared_ptr<TcpModuleImpl> mTcpImpl; | ||||
| } TcpServer; | ||||
| void *NewTcpModuleImpl(const TcpPram &tcpParam); | ||||
| void *NewTcpServer(const TcpPram &tcpParam); | ||||
| static inline TcpServer *TcpModuleImplConvert(void *object) | ||||
| { | ||||
|     return ((TcpServer *)(((char *)object) - sizeof(TcpModuleHeader))); | ||||
| } | ||||
| const char *GetTcpModuleName(void); | ||||
| #endif | ||||
|  | @ -13,8 +13,6 @@ include_directories( | |||
| #     ${EXTERNAL_SOURCE_PATH}/libconfig/libconfig-1.7.3/lib/.libs | ||||
| # ) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| aux_source_directory(./src SRC_FILES) | ||||
| 
 | ||||
| set(TARGET_NAME UartDevice) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 xiaojiazhu
						xiaojiazhu