From 2c44700ad235871b0ad0314cd45848de29a3d59c Mon Sep 17 00:00:00 2001 From: Sumeet Chhetri Date: Wed, 10 Jul 2019 19:30:20 +0530 Subject: [PATCH] Fixed auto generation scripts/templates --- ffead_gen.sh | 49 ++++---- ffead_gen_autoconf.sh | 42 ++++--- .../ffead-gen/CMakeLists.txt.template.top | 117 +++++++++++++----- resources/ffead-gen/configure.ac.orig | 93 ++++++++++---- .../ffead-gen/markers/TControllerHeader.t | 26 ++-- resources/ffead-gen/markers/TFilterHeader.t | 34 ++--- resources/ffead-gen/markers/TRestApiHeader.t | 26 ++-- resources/ffead-gen/xml/TControllerDef.t | 32 ++--- resources/ffead-gen/xml/TControllerHeader.t | 24 ++-- resources/ffead-gen/xml/TFilterDef.t | 42 +++---- resources/ffead-gen/xml/TFilterHeader.t | 28 ++--- resources/ffead-gen/xml/TRestApiDef.t | 24 ++-- resources/ffead-gen/xml/TRestApiHeader.t | 22 ++-- 13 files changed, 339 insertions(+), 220 deletions(-) diff --git a/ffead_gen.sh b/ffead_gen.sh index 8715d4308..66dadddc5 100644 --- a/ffead_gen.sh +++ b/ffead_gen.sh @@ -91,10 +91,10 @@ controllers_create () { if [ "${var}" != "" ]; then uvar=`echo $var |tr '[:lower:]' '[:upper:]'` cp -f $FFEAD_CPP_PATH/resources/ffead-gen/$FCNF_TYPE/TControllerHeader.t $FFEAD_CPP_PATH/web/$APP_NAME/include/${var}.h - sed -Ei "s/@TCLASS@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/include/${var}.h - sed -Ei "s/@TCLASSU@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/include/${var}.h + sed -i'' -e "s/@TCLASS@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/include/${var}.h + sed -i'' -e "s/@TCLASSU@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/include/${var}.h cp -f $FFEAD_CPP_PATH/resources/ffead-gen/xml/TControllerDef.t $FFEAD_CPP_PATH/web/$APP_NAME/src/${var}.cpp - sed -Ei "s/@TCLASS@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/src/${var}.cpp + sed -i'' -e "s/@TCLASS@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/src/${var}.cpp APP_CLASSES+="\.\.\/${var}\.cpp " CONTOLLER_CONF+="\\n\\t\\t" fi @@ -126,10 +126,10 @@ filters_create () { if [ "${var}" != "" ]; then uvar=`echo $var |tr '[:lower:]' '[:upper:]'` cp -f $FFEAD_CPP_PATH/resources/ffead-gen/$FCNF_TYPE/TFilterHeader.t $FFEAD_CPP_PATH/web/$APP_NAME/include/${var}.h - sed -Ei "s/@TCLASS@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/include/${var}.h - sed -Ei "s/@TCLASSU@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/include/${var}.h + sed -i'' -e "s/@TCLASS@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/include/${var}.h + sed -i'' -e "s/@TCLASSU@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/include/${var}.h cp -f $FFEAD_CPP_PATH/resources/ffead-gen/xml/TFilterDef.t $FFEAD_CPP_PATH/web/$APP_NAME/src/${var}.cpp - sed -Ei "s/@TCLASS@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/src/${var}.cpp + sed -i'' -e "s/@TCLASS@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/src/${var}.cpp APP_CLASSES+="\.\.\/${var}\.cpp " FILTER_CONF+="\\n\\t\\t\\n" FILTER_CONF+="\\t\\t\\n" @@ -163,10 +163,10 @@ restapis_create () { if [ "${var}" != "" ]; then uvar=`echo $var |tr '[:lower:]' '[:upper:]'` cp -f $FFEAD_CPP_PATH/resources/ffead-gen/$FCNF_TYPE/TRestApiHeader.t $FFEAD_CPP_PATH/web/$APP_NAME/include/${var}.h - sed -Ei "s/@TCLASS@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/include/${var}.h - sed -Ei "s/@TCLASSU@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/include/${var}.h + sed -i'' -e "s/@TCLASS@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/include/${var}.h + sed -i'' -e "s/@TCLASSU@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/include/${var}.h cp -f $FFEAD_CPP_PATH/resources/ffead-gen/xml/TRestApiDef.t $FFEAD_CPP_PATH/web/$APP_NAME/src/${var}.cpp - sed -Ei "s/@TCLASS@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/src/${var}.cpp + sed -i'' -e "s/@TCLASS@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/src/${var}.cpp APP_CLASSES+="\.\.\/${var}\.cpp " lvar=`echo $var |tr '[:upper:]' '[:lower:]'` RESTAPI_CONF+="\\n\\t\\t\\n" @@ -190,8 +190,8 @@ config_setup () { } main () { - echo 1>&2 "The generator will now create application directories and makefile, - configure.ac will also be modified, also delete any existing web directories by the same name, Do you want to proceed (y/n): " + echo 1>&2 "The generator will now create application directories and cmake makefile, + CMakeLists.txt will also be modified, also delete any existing web directories by the same name, Do you want to proceed (y/n): " read CONFIRM RE="^[y|n|Y|N]$" if [[ "$CONFIRM" =~ $RE ]]; then @@ -203,27 +203,33 @@ main () { mkdir $FFEAD_CPP_PATH/web/$APP_NAME/config mkdir $FFEAD_CPP_PATH/web/$APP_NAME/include mkdir $FFEAD_CPP_PATH/web/$APP_NAME/src - mkdir $FFEAD_CPP_PATH/web/$APP_NAME/src/autotools controllers_create filters_create restapis_create if [[ "$FCNF_TYPE" = "xml" ]]; then cp -f $FFEAD_CPP_PATH/resources/ffead-gen/xml/application.xml $FFEAD_CPP_PATH/web/$APP_NAME/config - sed -Ei $"s/@CONTOLLER_CONF@/$CONTOLLER_CONF/g" $FFEAD_CPP_PATH/web/$APP_NAME/config/application.xml - sed -Ei $"s/@FILTER_CONF@/$FILTER_CONF/g" $FFEAD_CPP_PATH/web/$APP_NAME/config/application.xml - sed -Ei $"s/@RESTAPI_CONF@/$RESTAPI_CONF/g" $FFEAD_CPP_PATH/web/$APP_NAME/config/application.xml + sed -i'' -e $"s/@CONTOLLER_CONF@/$CONTOLLER_CONF/g" $FFEAD_CPP_PATH/web/$APP_NAME/config/application.xml + sed -i'' -e $"s/@FILTER_CONF@/$FILTER_CONF/g" $FFEAD_CPP_PATH/web/$APP_NAME/config/application.xml + sed -i'' -e $"s/@RESTAPI_CONF@/$RESTAPI_CONF/g" $FFEAD_CPP_PATH/web/$APP_NAME/config/application.xml else cp -f $FFEAD_CPP_PATH/resources/ffead-gen/markers/application.xml $FFEAD_CPP_PATH/web/$APP_NAME/config fi cp -f $FFEAD_CPP_PATH/resources/ffead-gen/CMakeLists.txt.template $FFEAD_CPP_PATH/web/$APP_NAME/CMakeLists.txt cp -Rf $FFEAD_CPP_PATH/public $FFEAD_CPP_PATH/web/$APP_NAME/ - sed -Ei "s/@APP_NAME@/$APP_NAME/g" $FFEAD_CPP_PATH/web/$APP_NAME/CMakeLists.txt - sed -Ei "s/@APP_CLASSES@/$APP_CLASSES/g" $FFEAD_CPP_PATH/web/$APP_NAME/CMakeLists.txt + sed -i'' -e "s/@APP_NAME@/$APP_NAME/g" $FFEAD_CPP_PATH/web/$APP_NAME/CMakeLists.txt + sed -i'' -e "s/@APP_CLASSES@/$APP_CLASSES/g" $FFEAD_CPP_PATH/web/$APP_NAME/CMakeLists.txt FAPP_LIBS=`echo $FAPP_LIBS|sed 's/ /\\ /g'` - sed -Ei "s/@FAPP_LIBS@/$FAPP_LIBS/g" $FFEAD_CPP_PATH/web/$APP_NAME/CMakeLists.txt.template - WEB_APPS=`find $FFEAD_CPP_PATH/web -maxdepth 1 -mindepth 1 -type d -not -path '*/\.*' -printf "%p\n"| rev |awk -F"./" '{print $0}'| cut -d '/' -f1 | rev| xargs -I {} printf 'add_subdirectory\(\$\{PROJECT_SOURCE_DIR\}\/web\/'{}"\)"` + sed -i'' -e "s/@FAPP_LIBS@/$FAPP_LIBS/g" $FFEAD_CPP_PATH/web/$APP_NAME/CMakeLists.txt cp -f $FFEAD_CPP_PATH/resources/ffead-gen/CMakeLists.txt.template.top $FFEAD_CPP_PATH/CMakeLists.txt.template - sed -Ei "s/WEB_APPS/$WEB_APPS/g" $FFEAD_CPP_PATH/CMakeLists.txt.template + cd $FFEAD_CPP_PATH/web + for dir in * + do + dir=${dir%*/} + sed -i'' -e "s/WEB_APPS/add_subdirectory(\$\{PROJECT_SOURCE_DIR\}\/web\/${dir%*/})WEB_APPS/g" $FFEAD_CPP_PATH/CMakeLists.txt.template + sed -i'' -e $'s/WEB_APPS/\\\nWEB_APPS/g' $FFEAD_CPP_PATH/CMakeLists.txt.template + done + sed -i'' -e "s/WEB_APPS//g" $FFEAD_CPP_PATH/CMakeLists.txt.template + cd - cp -f $FFEAD_CPP_PATH/CMakeLists.txt $FFEAD_CPP_PATH/CMakeLists.txt.template.old cp -f $FFEAD_CPP_PATH/CMakeLists.txt.template $FFEAD_CPP_PATH/CMakeLists.txt rm -f $FFEAD_CPP_PATH/CMakeLists.txt.template @@ -231,8 +237,7 @@ main () { test -d "$FFEAD_CPP_PATH/web/$APP_NAME/config" && echo "Application config directory created Successfully" || echo "Unable to create Application directory" test -d "$FFEAD_CPP_PATH/web/$APP_NAME/include" && echo "Application include directory created Successfully" || echo "Unable to create Application directory" test -d "$FFEAD_CPP_PATH/web/$APP_NAME/src" && echo "Application src directory created Successfully" || echo "Unable to create Application directory" - test -d "$FFEAD_CPP_PATH/web/$APP_NAME/src/autotools" && echo "Application src/autotools directory created Successfully" || echo "Unable to create Application directory" - test "$FFEAD_CPP_PATH/web/$APP_NAME/src/autotools/Makefile.am" && echo "Application Makefile created Successfully" || echo "Unable to create Application directory" + test "$FFEAD_CPP_PATH/web/$APP_NAME/CMakeLists.txt" && echo "Application cmake Makefile created Successfully" || echo "Unable to create Application directory" else echo "Will not generate code" fi diff --git a/ffead_gen_autoconf.sh b/ffead_gen_autoconf.sh index c67d18a92..15f91913e 100644 --- a/ffead_gen_autoconf.sh +++ b/ffead_gen_autoconf.sh @@ -91,10 +91,10 @@ controllers_create () { if [ "${var}" != "" ]; then uvar=`echo $var |tr '[:lower:]' '[:upper:]'` cp -f $FFEAD_CPP_PATH/resources/ffead-gen/$FCNF_TYPE/TControllerHeader.t $FFEAD_CPP_PATH/web/$APP_NAME/include/${var}.h - sed -Ei "s/@TCLASS@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/include/${var}.h - sed -Ei "s/@TCLASSU@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/include/${var}.h + sed -i'' -e "s/@TCLASS@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/include/${var}.h + sed -i'' -e "s/@TCLASSU@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/include/${var}.h cp -f $FFEAD_CPP_PATH/resources/ffead-gen/xml/TControllerDef.t $FFEAD_CPP_PATH/web/$APP_NAME/src/${var}.cpp - sed -Ei "s/@TCLASS@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/src/${var}.cpp + sed -i'' -e "s/@TCLASS@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/src/${var}.cpp APP_CLASSES+="\.\.\/${var}\.cpp " CONTOLLER_CONF+="\\n\\t\\t" fi @@ -126,10 +126,10 @@ filters_create () { if [ "${var}" != "" ]; then uvar=`echo $var |tr '[:lower:]' '[:upper:]'` cp -f $FFEAD_CPP_PATH/resources/ffead-gen/$FCNF_TYPE/TFilterHeader.t $FFEAD_CPP_PATH/web/$APP_NAME/include/${var}.h - sed -Ei "s/@TCLASS@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/include/${var}.h - sed -Ei "s/@TCLASSU@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/include/${var}.h + sed -i'' -e "s/@TCLASS@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/include/${var}.h + sed -i'' -e "s/@TCLASSU@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/include/${var}.h cp -f $FFEAD_CPP_PATH/resources/ffead-gen/xml/TFilterDef.t $FFEAD_CPP_PATH/web/$APP_NAME/src/${var}.cpp - sed -Ei "s/@TCLASS@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/src/${var}.cpp + sed -i'' -e "s/@TCLASS@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/src/${var}.cpp APP_CLASSES+="\.\.\/${var}\.cpp " FILTER_CONF+="\\n\\t\\t\\n" FILTER_CONF+="\\t\\t\\n" @@ -163,10 +163,10 @@ restapis_create () { if [ "${var}" != "" ]; then uvar=`echo $var |tr '[:lower:]' '[:upper:]'` cp -f $FFEAD_CPP_PATH/resources/ffead-gen/$FCNF_TYPE/TRestApiHeader.t $FFEAD_CPP_PATH/web/$APP_NAME/include/${var}.h - sed -Ei "s/@TCLASS@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/include/${var}.h - sed -Ei "s/@TCLASSU@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/include/${var}.h + sed -i'' -e "s/@TCLASS@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/include/${var}.h + sed -i'' -e "s/@TCLASSU@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/include/${var}.h cp -f $FFEAD_CPP_PATH/resources/ffead-gen/xml/TRestApiDef.t $FFEAD_CPP_PATH/web/$APP_NAME/src/${var}.cpp - sed -Ei "s/@TCLASS@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/src/${var}.cpp + sed -i'' -e "s/@TCLASS@/${var}/g" $FFEAD_CPP_PATH/web/$APP_NAME/src/${var}.cpp APP_CLASSES+="\.\.\/${var}\.cpp " lvar=`echo $var |tr '[:upper:]' '[:lower:]'` RESTAPI_CONF+="\\n\\t\\t\\n" @@ -209,21 +209,29 @@ main () { restapis_create if [[ "$FCNF_TYPE" = "xml" ]]; then cp -f $FFEAD_CPP_PATH/resources/ffead-gen/xml/application.xml $FFEAD_CPP_PATH/web/$APP_NAME/config - sed -Ei $"s/@CONTOLLER_CONF@/$CONTOLLER_CONF/g" $FFEAD_CPP_PATH/web/$APP_NAME/config/application.xml - sed -Ei $"s/@FILTER_CONF@/$FILTER_CONF/g" $FFEAD_CPP_PATH/web/$APP_NAME/config/application.xml - sed -Ei $"s/@RESTAPI_CONF@/$RESTAPI_CONF/g" $FFEAD_CPP_PATH/web/$APP_NAME/config/application.xml + sed -i'' -e $"s/@CONTOLLER_CONF@/$CONTOLLER_CONF/g" $FFEAD_CPP_PATH/web/$APP_NAME/config/application.xml + sed -i'' -e $"s/@FILTER_CONF@/$FILTER_CONF/g" $FFEAD_CPP_PATH/web/$APP_NAME/config/application.xml + sed -i'' -e $"s/@RESTAPI_CONF@/$RESTAPI_CONF/g" $FFEAD_CPP_PATH/web/$APP_NAME/config/application.xml else cp -f $FFEAD_CPP_PATH/resources/ffead-gen/markers/application.xml $FFEAD_CPP_PATH/web/$APP_NAME/config fi cp -f $FFEAD_CPP_PATH/resources/ffead-gen/Makefile.am $FFEAD_CPP_PATH/web/$APP_NAME/src/autotools cp -Rf $FFEAD_CPP_PATH/public $FFEAD_CPP_PATH/web/$APP_NAME/ - sed -Ei "s/@APP_NAME@/$APP_NAME/g" $FFEAD_CPP_PATH/web/$APP_NAME/src/autotools/Makefile.am - sed -Ei "s/@APP_CLASSES@/$APP_CLASSES/g" $FFEAD_CPP_PATH/web/$APP_NAME/src/autotools/Makefile.am + sed -i'' -e "s/@APP_NAME@/$APP_NAME/g" $FFEAD_CPP_PATH/web/$APP_NAME/src/autotools/Makefile.am + sed -i'' -e "s/@APP_CLASSES@/$APP_CLASSES/g" $FFEAD_CPP_PATH/web/$APP_NAME/src/autotools/Makefile.am FAPP_LIBS=`echo $FAPP_LIBS|sed 's/ /\\ /g'` - sed -Ei "s/@FAPP_LIBS@/$FAPP_LIBS/g" $FFEAD_CPP_PATH/web/$APP_NAME/src/autotools/Makefile.am - WEB_APPS=`find $FFEAD_CPP_PATH/web -maxdepth 1 -mindepth 1 -type d -not -path '*/\.*' -printf "%p\n"| rev |awk -F"./" '{print $0}'| cut -d '/' -f1 | rev| xargs -I {} printf '\tweb\/'{}"\/src\/autotools\/Makefile"` + sed -i'' -e "s/@FAPP_LIBS@/$FAPP_LIBS/g" $FFEAD_CPP_PATH/web/$APP_NAME/src/autotools/Makefile.am + #WEB_APPS=`find $FFEAD_CPP_PATH/web -maxdepth 1 -mindepth 1 -type d -not -path '*/\.*' -printf "%p\n"| rev |awk -F"./" '{print $0}'| cut -d '/' -f1 | rev| xargs -I {} printf '\tweb\/'{}"\/src\/autotools\/Makefile"` cp -f $FFEAD_CPP_PATH/resources/ffead-gen/configure.ac.orig $FFEAD_CPP_PATH/configure.ac.template - sed -Ei "s/WEB_APPS/$WEB_APPS/g" $FFEAD_CPP_PATH/configure.ac.template + cd $FFEAD_CPP_PATH/web + for dir in * + do + dir=${dir%*/} + sed -i'' -e "s/WEB_APPS/ web\/${dir%*/}\/src\/autotools\/MakefileWEB_APPS/g" $FFEAD_CPP_PATH/configure.ac.template + sed -i'' -e $'s/WEB_APPS/\\\nWEB_APPS/g' $FFEAD_CPP_PATH/configure.ac.template + done + sed -i'' -e $'s/WEB_APPS//g' $FFEAD_CPP_PATH/configure.ac.template + cd - cp -f $FFEAD_CPP_PATH/configure.ac $FFEAD_CPP_PATH/configure.ac.old cp -f $FFEAD_CPP_PATH/configure.ac.template $FFEAD_CPP_PATH/configure.ac rm -f $FFEAD_CPP_PATH/configure.ac.template diff --git a/resources/ffead-gen/CMakeLists.txt.template.top b/resources/ffead-gen/CMakeLists.txt.template.top index edaa9b2c8..a81a726fb 100644 --- a/resources/ffead-gen/CMakeLists.txt.template.top +++ b/resources/ffead-gen/CMakeLists.txt.template.top @@ -1,8 +1,13 @@ cmake_minimum_required (VERSION 3.8.2) project (ffead-cpp-3.0) include(CheckIncludeFile) +include(CheckIncludeFileCXX) set(CMAKE_POSITION_INDEPENDENT_CODE ON) +set(CMAKE_SKIP_BUILD_RPATH true) +if(POLICY CMP0068) + cmake_policy(SET CMP0068 NEW) +endif() option(DEBUG "Generate with debug options" OFF) option(MOD_MEMORY "Enable Memory Cache module" ON) @@ -12,38 +17,56 @@ option(MOD_SDORM_SQL "Enable SQL Sdorm module" ON) option(MOD_SDORM_MONGO "Enable Mongo Sdorm module" OFF) option(MOD_SER_BIN "Enable Binary Serialization module" OFF) option(MOD_JOBS "Enable Jobs module" ON) - -if(DEBUG) - set(CMAKE_BUILD_TYPE DEBUG) - set(TO_REPLACE_DEBUG "set(CMAKE_BUILD_TYPE DEBUG)") -endif(DEBUG) +option(MOD_APACHE "Enable Apache module" OFF) +option(MOD_NGINX "Enable Nginx module" OFF) set(CMAKE_SOURCE_DIR ${PROJECT_SOURCE_DIR}/src) set(CMAKE_VERBOSE_MAKEFILE on) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I/usr/local/include -I/usr/include/libmongoc-1.0/ -I/usr/include/libbson-1.0/") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I/usr/local/include -I/usr/include/libmongoc-1.0/ -I/usr/include/libbson-1.0/ -Wall -Wno-unknown-pragmas -Wno-delete-incomplete") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L/usr/local/lib") +set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-undefined,error") set(CMAKE_INSTALL_PREFIX ${PROJECT_SOURCE_DIR}) +if(DEBUG) + set(CMAKE_BUILD_TYPE DEBUG) + set(TO_REPLACE_DEBUG "set(CMAKE_BUILD_TYPE DEBUG)") + if (APPLE) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2") + endif() +else() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2") +endif(DEBUG) + include_directories("/usr/local/include" "${CMAKE_SOURCE_DIR}/modules/common" "${CMAKE_SOURCE_DIR}/modules/cache" "${CMAKE_SOURCE_DIR}/modules/client-util") include_directories("${CMAKE_SOURCE_DIR}/modules/http" "${CMAKE_SOURCE_DIR}/modules/http/http11" "${CMAKE_SOURCE_DIR}/modules/http/http20" "${CMAKE_SOURCE_DIR}/modules/ioc") include_directories("${CMAKE_SOURCE_DIR}/modules/jobs" "${CMAKE_SOURCE_DIR}/modules/reflection" "${CMAKE_SOURCE_DIR}/modules/sdorm" "${CMAKE_SOURCE_DIR}/modules/search") include_directories("${CMAKE_SOURCE_DIR}/modules/serialization" "${CMAKE_SOURCE_DIR}/modules/serialization/xml" "${CMAKE_SOURCE_DIR}/modules/serialization/json") include_directories("${CMAKE_SOURCE_DIR}/modules/server-util" "${CMAKE_SOURCE_DIR}/modules/ssl" "${CMAKE_SOURCE_DIR}/modules/threads") include_directories("${CMAKE_SOURCE_DIR}/framework" "/usr/include/libmongoc-1.0/" "/usr/include/libbson-1.0/") +include_directories("/usr/local/include/libbson-1.0/" "/usr/local/include/libmongoc-1.0/") + +find_package(Threads) -find_package (Threads) +# CMake does not distinguish Linux from other Unices. +STRING (REGEX MATCH ".*Linux.*" PROJECT_OS_LINUX ${CMAKE_SYSTEM_NAME}) +# Nor *BSD +STRING (REGEX MATCH ".*BSD.*" PROJECT_OS_BSD ${CMAKE_SYSTEM_NAME}) +# Or Solaris. I'm seeing a trend, here +STRING (REGEX MATCH ".*SunOS.*" PROJECT_OS_SOLARIS ${CMAKE_SYSTEM_NAME}) if (UNIX) IF (PROJECT_OS_BSD) + set(OS_BSD 1) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L/usr/local/v6/lib") ELSEIF (PROJECT_OS_SOLARIS) + set(OS_SOLARIS 1) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthreads") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lsocket -lnsl") ENDIF() - set(CMAKE_REQUIRED_INCLUDES "/usr/include/libbson-1.0/" "/usr/include/libmongoc-1.0/") + set(CMAKE_REQUIRED_INCLUDES "/usr/local/include" "/usr/include/libbson-1.0/" "/usr/include/libmongoc-1.0/" "/usr/local/include/libbson-1.0/" "/usr/local/include/libmongoc-1.0/") endif (UNIX) if (APPLE) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I/usr/local/opt/openssl/include") @@ -56,15 +79,6 @@ if (MINGW) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L/mingw/lib") endif (MINGW) -set(INC_MEMORYCACHE 1) -set(INC_REDISCACHE 0) -set(INC_MEMCACHED 0) -set(INC_SDORM 1) -set(INC_SDORM_SQL 1) -set(INC_SDORM_MONGO 0) -set(INC_BINSER 0) -set(INC_JOBS 1) - FIND_LIBRARY(HAVE_CURLLIB curl) if(NOT HAVE_CURLLIB) message(FATAL_ERROR "curl library not found") @@ -86,7 +100,22 @@ FIND_LIBRARY(HAVE_CRYPTOLIB crypto) if(NOT HAVE_CRYPTOLIB) message(FATAL_ERROR "cypto library not found") endif() - +#FIND_LIBRARY(HAVE_TBBLIB tbb) +#if(NOT HAVE_TBBLIB) +# message(FATAL_ERROR "tbb library not found") +#endif() +#CHECK_INCLUDE_FILE_CXX("tbb/concurrent_hash_map.h" HAVE_TBBINC) +#if(NOT HAVE_TBBINC) +# message(FATAL_ERROR "tbb includes not found") +#endif() +CHECK_INCLUDE_FILE_CXX("libcuckoo/cuckoohash_map.hh" HAVE_CKOHMINC) +if(NOT HAVE_CKOHMINC) + message(FATAL_ERROR "libcuckoo includes not found") +endif() +FIND_LIBRARY(HAVE_UUIDLIB uuid) +if(NOT HAVE_UUIDLIB) + message(FATAL_ERROR "uuid library not found") +endif() CHECK_INCLUDE_FILE("sys/epoll.h" USE_EPOLL) CHECK_INCLUDE_FILE("sys/event.h" USE_KQUEUE) @@ -124,9 +153,19 @@ endif(MOD_MEMCACHED) if(MOD_SDORM_SQL) set(INC_SDORM 1) set(INC_SDORM_SQL 1) - CHECK_INCLUDE_FILE("uuid/uuid.h" HAVE_UUIDINC) - if(NOT HAVE_UUIDINC) - message(FATAL_ERROR "uuid includes not found") + IF (PROJECT_OS_BSD) + CHECK_INCLUDE_FILE("uuid.h" HAVE_BSDUUIDINC) + if(NOT HAVE_BSDUUIDINC) + CHECK_INCLUDE_FILE("uuid/uuid.h" HAVE_UUIDINC) + if(NOT HAVE_UUIDINC) + message(FATAL_ERROR "uuid includes not found") + endif() + endif() + else() + CHECK_INCLUDE_FILE("uuid/uuid.h" HAVE_UUIDINC) + if(NOT HAVE_UUIDINC) + message(FATAL_ERROR "uuid includes not found") + endif() endif() CHECK_INCLUDE_FILE("sql.h" HAVE_SQLINC) if(NOT HAVE_SQLINC) @@ -142,9 +181,19 @@ if(MOD_SDORM_MONGO) set(INC_SDORM 1) set(INC_SDORM_MONGO 1) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I/usr/include/libmongoc-1.0/ -I/usr/include/libbson-1.0 -I/usr/local/include/libmongoc-1.0/ -I/usr/local/include/libbson-1.0") - CHECK_INCLUDE_FILE("uuid/uuid.h" HAVE_UUIDINC) - if(NOT HAVE_UUIDINC) - message(FATAL_ERROR "uuid includes not found") + IF (PROJECT_OS_BSD) + CHECK_INCLUDE_FILE("uuid.h" HAVE_BSDUUIDINC) + if(NOT HAVE_BSDUUIDINC) + CHECK_INCLUDE_FILE("uuid/uuid.h" HAVE_UUIDINC) + if(NOT HAVE_UUIDINC) + message(FATAL_ERROR "uuid includes not found") + endif() + endif() + else() + CHECK_INCLUDE_FILE("uuid/uuid.h" HAVE_UUIDINC) + if(NOT HAVE_UUIDINC) + message(FATAL_ERROR "uuid includes not found") + endif() endif() CHECK_INCLUDE_FILE("mongoc.h" HAVE_MONGOINC) if(NOT HAVE_MONGOINC) @@ -185,7 +234,7 @@ set(TO_HAVE_FRAMEWORK "\$\{HAVE_FFEAD_FRWRK_LIB\}") set(TO_INTER_DINTER_INCLUDES "\$\{INTER_DINTER_INCLUDES\}") configure_file ( - "${PROJECT_SOURCE_DIR}/src/modules/common/AppDefines.h.in" + "${PROJECT_SOURCE_DIR}/src/modules/common/AppDefines.h.in.cm" "${PROJECT_SOURCE_DIR}/src/modules/common/AppDefines.h" ) configure_file ( @@ -199,11 +248,13 @@ add_subdirectory(${PROJECT_SOURCE_DIR}/tests) #Add any web diectories here WEB_APPS -add_subdirectory(${PROJECT_SOURCE_DIR}/web/default) -add_subdirectory(${PROJECT_SOURCE_DIR}/web/flexApp) -add_subdirectory(${PROJECT_SOURCE_DIR}/web/oauthApp) -add_subdirectory(${PROJECT_SOURCE_DIR}/web/markers) -add_subdirectory(${PROJECT_SOURCE_DIR}/web/te-benchmark) + +if(MOD_APACHE) +add_subdirectory(${PROJECT_SOURCE_DIR}/modules/apache_mod_ffeadcpp) +endif() +if(MOD_NGINX) +add_subdirectory(${PROJECT_SOURCE_DIR}/modules/nginx_mod_ffeadcpp) +endif() add_executable(ffead-cpp src/server/CHServer.cpp) set_property(TARGET ffead-cpp PROPERTY POSITION_INDEPENDENT_CODE ON) @@ -229,7 +280,6 @@ install(DIRECTORY ${PROJECT_SOURCE_DIR}/resources/ DESTINATION ${PROJECT_NAME}-b install(DIRECTORY ${PROJECT_SOURCE_DIR}/public/ DESTINATION ${PROJECT_NAME}-bin/public) install(DIRECTORY ${PROJECT_SOURCE_DIR}/rtdcf/ DESTINATION ${PROJECT_NAME}-bin/rtdcf) install(DIRECTORY ${PROJECT_SOURCE_DIR}/web/ DESTINATION ${PROJECT_NAME}-bin/web) -install(DIRECTORY ${PROJECT_SOURCE_DIR}/script/ DESTINATION ${PROJECT_NAME}-bin/script) install(DIRECTORY ${PROJECT_SOURCE_DIR}/tests/ DESTINATION ${PROJECT_NAME}-bin/tests) install(FILES ${PROJECT_SOURCE_DIR}/src/modules/libffead-modules${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION ${PROJECT_NAME}-bin/lib) install(FILES ${PROJECT_SOURCE_DIR}/src/framework/libffead-framework${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION ${PROJECT_NAME}-bin/lib) @@ -241,3 +291,8 @@ install(FILES ${PROJECT_SOURCE_DIR}/web/te-benchmark/libte_benchmark${CMAKE_SHAR install(FILES ${PROJECT_SOURCE_DIR}/ffead-cpp DESTINATION ${PROJECT_NAME}-bin/) install(FILES ${PROJECT_SOURCE_DIR}/script/server_valgrind.sh DESTINATION ${PROJECT_NAME}-bin/) install(FILES ${PROJECT_SOURCE_DIR}/script/server.sh DESTINATION ${PROJECT_NAME}-bin/) +install(FILES ${PROJECT_SOURCE_DIR}/script/client.pem DESTINATION ${PROJECT_NAME}-bin/) +install(FILES ${PROJECT_SOURCE_DIR}/script/dh1024.pem DESTINATION ${PROJECT_NAME}-bin/) +install(FILES ${PROJECT_SOURCE_DIR}/script/root.pem DESTINATION ${PROJECT_NAME}-bin/) +install(FILES ${PROJECT_SOURCE_DIR}/script/server.pem DESTINATION ${PROJECT_NAME}-bin/) +install(FILES ${PROJECT_SOURCE_DIR}/script/vhost-server.sh DESTINATION ${PROJECT_NAME}-bin/) diff --git a/resources/ffead-gen/configure.ac.orig b/resources/ffead-gen/configure.ac.orig index 319c68f4f..e332aef52 100644 --- a/resources/ffead-gen/configure.ac.orig +++ b/resources/ffead-gen/configure.ac.orig @@ -1,12 +1,13 @@ # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. -AC_INIT([ffead-cpp], [2.0], [sumeet.chhetri@gmail.com]) +AC_INIT([ffead-cpp], [3.0], [sumeet.chhetri@gmail.com]) AM_INIT_AUTOMAKE([no-define foreign]) AC_CONFIG_SRCDIR([src/framework/ConfigurationData.h]) AC_CONFIG_HEADERS([src/modules/common/AppDefines.h]) -m4_include([m4/ax_cxx_compile_stdcxx_11.m4]) AC_CONFIG_MACRO_DIR([m4]) +m4_include([m4/ax_cxx_compile_stdcxx.m4]) +m4_include([m4/ax_cxx_compile_stdcxx_17.m4]) LT_INIT([static shared dlopen]) @@ -18,7 +19,7 @@ AS_HELP_STRING([--enable-debug], ) if test "x$support_debug" = "xyes"; then AC_DEFINE(DEBUG, [], [set DEBUG mode]) - AM_CXXFLAGS="$AM_CXXFLAGS -g -Wall -Wno-uninitialized -O2" + AM_CXXFLAGS="$AM_CXXFLAGS -g -Wall" else AC_DEFINE(NDEBUG, [], [unset DEBUG mode]) AM_CXXFLAGS="$AM_CXXFLAGS -O2" @@ -42,7 +43,8 @@ AS_HELP_STRING([--enable-nginxmod], AC_CANONICAL_HOST local_os_type="unknown" is_librt_available="yes" -AM_CXXFLAGS="$AM_CXXFLAGS -I/usr/local/include" +AM_CXXFLAGS="$AM_CXXFLAGS -I/usr/local/include -Wno-unknown-pragmas -Wno-delete-incomplete" +CPPFLAGS="$CPPFLAGS -I/usr/local/include" LDFLAGS="$LDFLAGS -L/usr/local/lib" case "$host" in *-cygwin*) @@ -94,7 +96,7 @@ case "$host" in local_os_type="freebsd" dnl our hack for freebsd system - AM_CXXFLAGS="$AM_CXXFLAGS -pthread" + LDFLAGS="$LDFLAGS -L/usr/local/v6/lib" ;; *-netbsd*) @@ -122,9 +124,12 @@ case "$host" in local_os_type="osf" ;; *-darwin*) - is_librt_available="no" + is_librt_available="no" AC_DEFINE(OS_BSD, [], [set OS to bsd]) AC_DEFINE(OS_DARWIN, [], [set OS to darwin]) + CPPFLAGS="$CPPFLAGS -I/usr/local/opt/openssl/include -I/usr/local/opt/unixodbc/include -I/usr/local/include/ -O2" + AM_CXXFLAGS="$AM_CXXFLAGS -I/usr/local/opt/openssl/include -I/usr/local/opt/unixodbc/include -I/usr/local/include/ -O2" + LDFLAGS="$LDFLAGS -L/usr/local/opt/openssl/lib -L/usr/local/opt/unixodbc/lib/ -L/usr/local/lib" local_os_type="darwin" ;; *-sco*) @@ -134,6 +139,7 @@ case "$host" in AC_MSG_ERROR([We do not support SCO's products!]) esac +AC_DEFINE(BUILD_AUTOCONF, [], [set build system to autoconf/automake]) ######################################################################################################## ########################## CACHE MODULES, Memory, Redis, Memcached ##################################### @@ -263,7 +269,7 @@ fi AC_ARG_ENABLE(mod_sdormsql, AS_HELP_STRING([--enable-mod_sdormsql], - [enable mod_sdormsql, default: no]), + [enable mod_sdormsql, default: yes]), [case "${enableval}" in yes) mod_sdormsql=yes ;; no) mod_sdormsql=no ;; @@ -742,19 +748,36 @@ AM_CONDITIONAL(MOD_ALL, test "x$mod_all" = "xyes") # store current user given compiler flags to avoid default setup via AC_PROG_CXX OLD_CXXFLAGS=$CXXFLAGS -STDCXX_11_SWITCH= +STDCXX_SWITCH= dnl# Checks for programs. AC_PROG_AWK AC_PROG_CC AC_PROG_CPP AC_PROG_CXX -AX_CXX_COMPILE_STDCXX_11(,mandatory) +AX_CXX_COMPILE_STDCXX(17,,mandatory) #if test "x$GCC" = "xno"; then # AC_MSG_ERROR([Please install GNU GCC/G++ to continue.]) #fi +if test "x$mod_rediscache" = "xyes"; then + AC_CHECK_HEADER([hiredis/hiredis.h],,[AC_MSG_ERROR([hiredis header files not found, please install hiredis])]) + AC_SEARCH_LIBS(redisCommand, hiredis, [],[AC_MSG_ERROR([redis library "hiredis" not found])]) +fi + +if test "x$mod_memcached" = "xyes"; then + AC_CHECK_HEADER([libmemcached/memcached.h],,[AC_MSG_ERROR([libmemcached header files not found, please install libmemcached])]) + AC_SEARCH_LIBS(memcached_pool, memcachedutil, [],[AC_MSG_ERROR([memcached library "libmemcachedutil" not found])]) + AC_SEARCH_LIBS(memcached_add, memcached, [],[AC_MSG_ERROR([memcached library "libmemcached" not found])]) +fi + +AC_LANG_PUSH(C++) +AC_CHECK_HEADER([libcuckoo/cuckoohash_map.hh],,[AC_MSG_ERROR([libcuckoo header files not found, please install libcuckoo])]) +AC_LANG_POP(C++) + +AC_SEARCH_LIBS(curl_easy_init, curl, [],[AC_MSG_ERROR([curl library "libcurl" not found])]) + AM_CONDITIONAL(MOD_APACHEMOD, test "x$generate_apache_module" = "xyes") if test "x$generate_apache_module" = "xyes"; then AC_SUBST(GENERATE_APACHEMOD,[modules/apache_mod_ffeadcpp/autotools]) @@ -788,7 +811,10 @@ if test "x$generate_apache_module" = "xyes"; then AC_SUBST(APACHE_HTTPD_LIB,[ ]) AC_CHECK_PROG(APXS, apxs2, [apxs2], [apxs2 not found],[]) if test "x$APXS" = "xno" ; then - AC_MSG_ERROR([Please install apache development tools (apxs/apxs2) to continue.]) + AC_CHECK_PROG(APXS, apxs, [apxs], [apxs not found],[]) + if test "x$APXS" = "xno" ; then + AC_MSG_ERROR([Please install apache development tools (apxs/apxs2) to continue.]) + fi fi fi else @@ -833,12 +859,17 @@ AC_CHECK_HEADER([sys/poll.h], AC_CHECK_HEADER([sys/select.h], [AC_DEFINE(USE_SELECT, [1], [Define to 1 if you have .])], [AC_DEFINE(USE_SELECT, [0], [select support not found])]) -AC_CHECK_HEADER([atomic.h], + + +OLD_CPP=$CPP +CPP="$CXXCPP $STDCXX_SWITCH" +AC_CHECK_HEADER([atomic], [AC_DEFINE(USE_ATOMIC_H, [1], [Define to 1 if you have .])], - [AC_DEFINE(USE_ATOMIC_H, [0], [atomic support not found])]) -AC_CHECK_HEADER([cstdatomic.h], + [AC_DEFINE(USE_ATOMIC_H, [0], [atomic support not found])], [-]) +AC_CHECK_HEADER([cstdatomic], [AC_DEFINE(USE_CSTDATOMIC_H, [1], [Define to 1 if you have .])], - [AC_DEFINE(USE_CSTDATOMIC_H, [0], [cstdatomic support not found])]) + [AC_DEFINE(USE_CSTDATOMIC_H, [0], [cstdatomic support not found])], [-]) +CPP=$OLD_CPP AC_CHECK_HEADER([openssl/ssl.h],,[AC_MSG_ERROR([ssl header not found])]) @@ -888,13 +919,23 @@ AC_CHECK_LIB(c, dlopen, ADD_LIBDL="", [AC_CHECK_LIB(dl, dlopen, ADD_LIBDL="-ldl" AC_CHECK_LIB(rt, clock_nanosleep, [AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define if you have clock_nanosleep()])], []) if test "x$mod_sdormsql" = "xyes"; then - AC_CHECK_LIB(uuid, uuid_generate, [], [AC_MSG_ERROR([uuid library not found])]) + if test "x$local_os_type" = "xfreebsd"; then + AC_DEFINE(HAVE_BSDUUIDINC, [], [set uuid lib to bsd type]) + AC_CHECK_LIB(uuid, uuid_create, [], [AC_MSG_ERROR([uuid library not found])]) + else + AC_CHECK_LIB(uuid, uuid_generate, [], [AC_MSG_ERROR([uuid library not found])]) + fi AC_CHECK_LIB(odbc, main, , [AC_MSG_ERROR([Not found libodbc library])]) AC_SEARCH_LIBS(SQLGetPrivateProfileString, odbcinst, [],[AC_MSG_ERROR([unixODBC library "odbcinst" not found])]) fi if test "x$mod_sdormmongo" = "xyes"; then - AC_CHECK_LIB(uuid, uuid_generate, [], [AC_MSG_ERROR([uuid library not found])]) + if test "x$local_os_type" = "xfreebsd"; then + AC_DEFINE(HAVE_BSDUUIDINC, [], [set uuid lib to bsd type]) + AC_CHECK_LIB(uuid, uuid_create, [], [AC_MSG_ERROR([uuid library not found])]) + else + AC_CHECK_LIB(uuid, uuid_generate, [], [AC_MSG_ERROR([uuid library not found])]) + fi AC_CHECK_LIB(mongoc-1.0, mongoc_init, , [AC_MSG_ERROR([Not found libmongo library])]) AC_CHECK_LIB(bson-1.0, bson_new, , [AC_MSG_ERROR([Not found libbson library])]) fi @@ -914,7 +955,8 @@ if test "x$mod_gtm" = "xyes"; then AC_CHECK_LIB(gtmshr, main, , [AC_MSG_ERROR([Not found libgtmshr library])]) fi -AM_CXXFLAGS="$AM_CXXFLAGS $STDCXX_11_SWITCH" +AM_CXXFLAGS="$AM_CXXFLAGS $STDCXX_SWITCH" +AC_SUBST(STDCXX_SWITCH, [$STDCXX_SWITCH]) # distribute additional compiler and linker flags among Makefiles # --> set and change these variables instead of CXXFLAGS or LDFLAGS (for user only) AC_SUBST([AM_CXXFLAGS]) @@ -937,16 +979,25 @@ AC_SUBST(BUILD_LDFLAGS,[$LDFLAGS]) AC_SUBST(BUILD_DEBUG,[$support_debug]) AC_CONFIG_FILES([Makefile - src/autotools/Makefile - tests/autotools/Makefile - modules/apache_mod_ffeadcpp/autotools/Makefile -WEB_APPS]) + src/autotools/libs/Makefile + src/autotools/bins/Makefile + tests/autotools/Makefile]) +if test "x$generate_apache_module" = "xyes"; then +AC_CONFIG_FILES([modules/apache_mod_ffeadcpp/autotools/Makefile]) +fi +if test "x$generate_nginx_module" = "xyes"; then +AC_CONFIG_FILES(modules/nginx_mod_ffeadcpp/autotools/Makefile[]) +fi +AC_CONFIG_FILES([ +WEB_APPS +]) AC_OUTPUT echo "Host: $host" echo "CPPFLAGS: $CPPFLAGS" echo "AM_CXXFLAGS: $AM_CXXFLAGS" echo "LDFLAGS: $LDFLAGS" +echo "STDCXX_SWITCH: $STDCXX_SWITCH" echo "Debug mode: $support_debug" echo "Make Executable: $MAKE" echo "Generate Apache Module: $generate_apache_module" diff --git a/resources/ffead-gen/markers/TControllerHeader.t b/resources/ffead-gen/markers/TControllerHeader.t index 27bdad459..f1ccf6883 100644 --- a/resources/ffead-gen/markers/TControllerHeader.t +++ b/resources/ffead-gen/markers/TControllerHeader.t @@ -1,14 +1,14 @@ - -#ifndef @TCLASSU@_H_ -#define @TCLASSU@_H_ -#include "Controller.h" - -#pragma @Controller path="*" -class @TCLASS@ { -public: - @TCLASS@(); - virtual ~@TCLASS@(); - bool service(HttpRequest* req, HttpResponse* res); -}; - + +#ifndef @TCLASSU@_H_ +#define @TCLASSU@_H_ +#include "Controller.h" + +#pragma @Controller path="*" +class @TCLASS@ { +public: + @TCLASS@(); + virtual ~@TCLASS@(); + bool service(HttpRequest* req, HttpResponse* res); +}; + #endif /* @TCLASSU@_H_ */ \ No newline at end of file diff --git a/resources/ffead-gen/markers/TFilterHeader.t b/resources/ffead-gen/markers/TFilterHeader.t index a5b1cfec2..e49677f80 100644 --- a/resources/ffead-gen/markers/TFilterHeader.t +++ b/resources/ffead-gen/markers/TFilterHeader.t @@ -1,18 +1,18 @@ - -#ifndef @TCLASSU@_H_ -#define @TCLASSU@_H_ -#include "Controller.h" - -#pragma @Filter type="in" path="*.in" -#pragma @Filter type="out" path="*.out" -#pragma @Filter type="handle" path="*.inout" -class @TCLASS@ { -public: - @TCLASS@(); - virtual ~@TCLASS@(); - void doInputFilter(HttpRequest *req); - void doOutputFilter(HttpResponse *res); - bool doHandle(HttpRequest *req, HttpResponse* res); -}; - + +#ifndef @TCLASSU@_H_ +#define @TCLASSU@_H_ +#include "Controller.h" + +#pragma @Filter type="in" path="*.in" +#pragma @Filter type="out" path="*.out" +#pragma @Filter type="handle" path="*.inout" +class @TCLASS@ { +public: + @TCLASS@(); + virtual ~@TCLASS@(); + void doInputFilter(HttpRequest *req); + void doOutputFilter(HttpResponse *res); + bool doHandle(HttpRequest *req, HttpResponse* res); +}; + #endif /* @TCLASSU@_H_ */ \ No newline at end of file diff --git a/resources/ffead-gen/markers/TRestApiHeader.t b/resources/ffead-gen/markers/TRestApiHeader.t index 04b8d50b0..f06559b58 100644 --- a/resources/ffead-gen/markers/TRestApiHeader.t +++ b/resources/ffead-gen/markers/TRestApiHeader.t @@ -1,14 +1,14 @@ - -#ifndef @TCLASSU@_H_ -#define @TCLASSU@_H_ - -#pragma @RestController path="/@TCLASS@" -class @TCLASS@ { -public: - @TCLASS@(); - virtual ~@TCLASS@(); - #pragma @GET path="/serve" statusCode="200" - int serve(); -}; - + +#ifndef @TCLASSU@_H_ +#define @TCLASSU@_H_ + +#pragma @RestController path="/@TCLASS@" +class @TCLASS@ { +public: + @TCLASS@(); + virtual ~@TCLASS@(); + #pragma @GET path="/serve" statusCode="200" + int serve(); +}; + #endif /* @TCLASSU@_H_ */ \ No newline at end of file diff --git a/resources/ffead-gen/xml/TControllerDef.t b/resources/ffead-gen/xml/TControllerDef.t index b5378a956..ec9b9b2f7 100644 --- a/resources/ffead-gen/xml/TControllerDef.t +++ b/resources/ffead-gen/xml/TControllerDef.t @@ -1,16 +1,16 @@ - -#include "@TCLASS@.h" - -@TCLASS@::@TCLASS@() { -} - -@TCLASS@::~@TCLASS@() { -} - -bool @TCLASS@::service(HttpRequest* req, HttpResponse* res) -{ - res->setHTTPResponseStatus(HTTPResponseStatus::Ok); - res->addHeaderValue(HttpResponse::ContentType, "text/plain"); - res->setContent("Hello World"); - return true; -} + +#include "@TCLASS@.h" + +@TCLASS@::@TCLASS@() { +} + +@TCLASS@::~@TCLASS@() { +} + +bool @TCLASS@::service(HttpRequest* req, HttpResponse* res) +{ + res->setHTTPResponseStatus(HTTPResponseStatus::Ok); + res->addHeaderValue(HttpResponse::ContentType, "text/plain"); + res->setContent("Hello World"); + return true; +} diff --git a/resources/ffead-gen/xml/TControllerHeader.t b/resources/ffead-gen/xml/TControllerHeader.t index c9ecc4443..187a39259 100644 --- a/resources/ffead-gen/xml/TControllerHeader.t +++ b/resources/ffead-gen/xml/TControllerHeader.t @@ -1,13 +1,13 @@ - -#ifndef @TCLASSU@_H_ -#define @TCLASSU@_H_ -#include "Controller.h" - -class @TCLASS@ { -public: - @TCLASS@(); - virtual ~@TCLASS@(); - bool service(HttpRequest* req, HttpResponse* res); -}; - + +#ifndef @TCLASSU@_H_ +#define @TCLASSU@_H_ +#include "Controller.h" + +class @TCLASS@ { +public: + @TCLASS@(); + virtual ~@TCLASS@(); + bool service(HttpRequest* req, HttpResponse* res); +}; + #endif /* @TCLASSU@_H_ */ \ No newline at end of file diff --git a/resources/ffead-gen/xml/TFilterDef.t b/resources/ffead-gen/xml/TFilterDef.t index 16fb8893d..1df7bc2a1 100644 --- a/resources/ffead-gen/xml/TFilterDef.t +++ b/resources/ffead-gen/xml/TFilterDef.t @@ -1,22 +1,22 @@ - -#include "@TCLASS@.h" - -@TCLASS@::@TCLASS@() { -} - -@TCLASS@::~@TCLASS@() { -} - -void @TCLASS@::doInputFilter(HttpRequest *req) -{ -} - -void @TCLASS@::doOutputFilter(HttpResponse *res) -{ -} - -bool @TCLASS@::doHandle(HttpRequest *req, HttpResponse* res) -{ - bool continue_proc_request = true; - return continue_proc_request; + +#include "@TCLASS@.h" + +@TCLASS@::@TCLASS@() { +} + +@TCLASS@::~@TCLASS@() { +} + +void @TCLASS@::doInputFilter(HttpRequest *req) +{ +} + +void @TCLASS@::doOutputFilter(HttpResponse *res) +{ +} + +bool @TCLASS@::doHandle(HttpRequest *req, HttpResponse* res) +{ + bool continue_proc_request = true; + return continue_proc_request; } \ No newline at end of file diff --git a/resources/ffead-gen/xml/TFilterHeader.t b/resources/ffead-gen/xml/TFilterHeader.t index e459c5c6e..c6708f7e1 100644 --- a/resources/ffead-gen/xml/TFilterHeader.t +++ b/resources/ffead-gen/xml/TFilterHeader.t @@ -1,15 +1,15 @@ - -#ifndef @TCLASSU@_H_ -#define @TCLASSU@_H_ -#include "Controller.h" - -class @TCLASS@ { -public: - @TCLASS@(); - virtual ~@TCLASS@(); - void doInputFilter(HttpRequest *req); - void doOutputFilter(HttpResponse *res); - bool doHandle(HttpRequest *req, HttpResponse* res); -}; - + +#ifndef @TCLASSU@_H_ +#define @TCLASSU@_H_ +#include "Controller.h" + +class @TCLASS@ { +public: + @TCLASS@(); + virtual ~@TCLASS@(); + void doInputFilter(HttpRequest *req); + void doOutputFilter(HttpResponse *res); + bool doHandle(HttpRequest *req, HttpResponse* res); +}; + #endif /* @TCLASSU@_H_ */ \ No newline at end of file diff --git a/resources/ffead-gen/xml/TRestApiDef.t b/resources/ffead-gen/xml/TRestApiDef.t index 8a0b8474a..76e5176e2 100644 --- a/resources/ffead-gen/xml/TRestApiDef.t +++ b/resources/ffead-gen/xml/TRestApiDef.t @@ -1,13 +1,13 @@ - -#include "@TCLASS@.h" - -@TCLASS@::@TCLASS@() { -} - -@TCLASS@::~@TCLASS@() { -} - -int @TCLASS@::serve() -{ - return 1; + +#include "@TCLASS@.h" + +@TCLASS@::@TCLASS@() { +} + +@TCLASS@::~@TCLASS@() { +} + +int @TCLASS@::serve() +{ + return 1; } \ No newline at end of file diff --git a/resources/ffead-gen/xml/TRestApiHeader.t b/resources/ffead-gen/xml/TRestApiHeader.t index 7c3e01061..5640f3d1b 100644 --- a/resources/ffead-gen/xml/TRestApiHeader.t +++ b/resources/ffead-gen/xml/TRestApiHeader.t @@ -1,12 +1,12 @@ - -#ifndef @TCLASSU@_H_ -#define @TCLASSU@_H_ - -class @TCLASS@ { -public: - @TCLASS@(); - virtual ~@TCLASS@(); - int serve(); -}; - + +#ifndef @TCLASSU@_H_ +#define @TCLASSU@_H_ + +class @TCLASS@ { +public: + @TCLASS@(); + virtual ~@TCLASS@(); + int serve(); +}; + #endif /* @TCLASSU@_H_ */ \ No newline at end of file