diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..6804ff8 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,8 @@ +* text=auto +*.bat text=crlf +*.dsp text=crlf +*.sln text=crlf +*.vcp text=crlf +*.vcproj text=crlf +*.vcw text=crlf +*.vcxproj text=crlf diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml old mode 100755 new mode 100644 diff --git a/.gitignore b/.gitignore old mode 100755 new mode 100644 diff --git a/BUILD.TXT b/BUILD.TXT old mode 100755 new mode 100644 diff --git a/CMakeLists.txt b/CMakeLists.txt old mode 100755 new mode 100644 diff --git a/LICENSE b/LICENSE old mode 100755 new mode 100644 diff --git a/README.md b/README.md old mode 100755 new mode 100644 diff --git a/TODO.TXT b/TODO.TXT old mode 100755 new mode 100644 index 6b87af3..7c4f528 --- a/TODO.TXT +++ b/TODO.TXT @@ -13,6 +13,5 @@ the future: types/functions as appropriate. -Brian Adamson - +Brian Adamson 26 June 2017 diff --git a/VERSION.TXT b/VERSION.TXT old mode 100755 new mode 100644 diff --git a/android/README.TXT b/android/README.TXT old mode 100755 new mode 100644 diff --git a/android/build.gradle b/android/build.gradle old mode 100755 new mode 100644 index 651d63d..7ee8ad2 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,16 +1,16 @@ -buildscript { - repositories { - google() - jcenter() - } - dependencies { - classpath 'com.android.tools.build:gradle:3.1.1' - } -} - -allprojects { - repositories { - google() - jcenter() - } -} +buildscript { + repositories { + google() + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:3.1.1' + } +} + +allprojects { + repositories { + google() + jcenter() + } +} diff --git a/android/gradle/wrapper/LICENSE-for-gradlewrapper.txt b/android/gradle/wrapper/LICENSE-for-gradlewrapper.txt old mode 100755 new mode 100644 diff --git a/android/gradle/wrapper/gradle-wrapper.jar b/android/gradle/wrapper/gradle-wrapper.jar old mode 100755 new mode 100644 diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties old mode 100755 new mode 100644 diff --git a/android/gradlew.bat b/android/gradlew.bat old mode 100755 new mode 100644 diff --git a/android/lib/CMakeLists.txt b/android/lib/CMakeLists.txt old mode 100755 new mode 100644 index 0c7479b..de9a21c --- a/android/lib/CMakeLists.txt +++ b/android/lib/CMakeLists.txt @@ -1,86 +1,86 @@ - -cmake_minimum_required(VERSION 3.4.1) - -project("protolib") - -#add_definitions("-DANDROID=1" "-D__ANDROID_API__=24" "-DANDROID_API_VERSION=24" "-DPUSH_NOTIFICATIONS=1" "-DANDROID" "-DLINUX" "-DUNIX" "-DHAVE_IPV6" "-DHAVE_DIRFD" "-DPROTO_DEBUG" "-DHAVE_ASSERT" "-DHAVE_GETLOGIN" "-DUSE_SELECT" "-D_FILE_OFFSET_BITS=64" "-DHAVE_OLD_SIGNALHANDLER" "-DHAVE_SCHED" "-DNO_SCM_RIGHTS" "-DAPP_VERSION=1.0.0" "-DAPP_VERSION_HEX=0x10000") - -add_definitions("-DANDROID=1" "-DANDROID_API_VERSION=24" "-DPUSH_NOTIFICATIONS=1" "-DANDROID" "-DLINUX" "-DUNIX" "-DHAVE_IPV6" "-DHAVE_DIRFD" "-DPROTO_DEBUG" "-DHAVE_ASSERT" "-DHAVE_GETLOGIN" "-DUSE_SELECT" "-D_FILE_OFFSET_BITS=64" "-DHAVE_OLD_SIGNALHANDLER" "-DHAVE_SCHED" "-DNO_SCM_RIGHTS" "-DAPP_VERSION=1.0.0" "-DAPP_VERSION_HEX=0x10000") - - -include_directories( AFTER - "../../OID_NDK}/sources/android/cpufeatures" - "../../include" -) - -enable_language(ASM) - -IF(BUILD_CONFIGURATION MATCHES "DEBUG") - SET(BINARY_NAME "protokit") - add_definitions("-DDEBUG=1" "-D_DEBUG=1") -ELSEIF(BUILD_CONFIGURATION MATCHES "RELEASE") - SET(BINARY_NAME "protokit") - add_definitions("-DNDEBUG=1") -ELSE(BUILD_CONFIGURATION MATCHES "DEBUG") - MESSAGE( FATAL_ERROR "No matching build-configuration found." ) -ENDIF(BUILD_CONFIGURATION MATCHES "DEBUG") - -add_library( ${BINARY_NAME} - - STATIC - - "../../src/manet/manetGraph.cpp" - "../../src/manet/manetMsg.cpp" - "../../src/common/protoAddress.cpp" - "../../src/common/protoApp.cpp" - "../../src/common/protoBase64.cpp" - "../../src/common/protoBitmask.cpp" - "../../src/common/protoCap.cpp" - "../../src/common/protoChannel.cpp" - "../../src/common/protoCheck.cpp" - "../../src/common/protoDebug.cpp" - "../../src/common/protoDispatcher.cpp" - "../../src/common/protoEvent.cpp" - "../../src/common/protoFile.cpp" - "../../src/common/protoFlow.cpp" - "../../src/common/protoGraph.cpp" - "../../src/common/protoJson.cpp" - "../../src/common/protoLFSR.cpp" - "../../src/common/protoList.cpp" - "../../src/common/protoNet.cpp" - "../../src/common/protoPipe.cpp" - "../../src/common/protoPkt.cpp" - "../../src/common/protoPktARP.cpp" - "../../src/common/protoPktETH.cpp" - "../../src/common/protoPktIGMP.cpp" - "../../src/common/protoPktIP.cpp" - "../../src/common/protoPktRIP.cpp" - "../../src/common/protoPktRTP.cpp" - "../../src/common/protoPktTCP.cpp" - "../../src/common/protoQueue.cpp" - "../../src/common/protoRouteMgr.cpp" - "../../src/common/protoRouteTable.cpp" - "../../src/common/protoSocket.cpp" - "../../src/common/protoSpace.cpp" - "../../src/common/protoString.cpp" - "../../src/common/protoTime.cpp" - "../../src/common/protoTimer.cpp" - "../../src/common/protoTree.cpp" - "../../src/common/protoVif.cpp" - "../../src/unix/unixNet.cpp" - "../../src/linux/linuxNet.cpp" - "../../src/unix/unixVif.cpp" -) - -find_library(log "log") -find_library(android "android") -find_library(glesv2 "GLESv2") -find_library(egl "EGL") - -target_link_libraries( ${BINARY_NAME} - - ${log} - ${android} - ${glesv2} - ${egl} -) + +cmake_minimum_required(VERSION 3.4.1) + +project("protolib") + +#add_definitions("-DANDROID=1" "-D__ANDROID_API__=24" "-DANDROID_API_VERSION=24" "-DPUSH_NOTIFICATIONS=1" "-DANDROID" "-DLINUX" "-DUNIX" "-DHAVE_IPV6" "-DHAVE_DIRFD" "-DPROTO_DEBUG" "-DHAVE_ASSERT" "-DHAVE_GETLOGIN" "-DUSE_SELECT" "-D_FILE_OFFSET_BITS=64" "-DHAVE_OLD_SIGNALHANDLER" "-DHAVE_SCHED" "-DNO_SCM_RIGHTS" "-DAPP_VERSION=1.0.0" "-DAPP_VERSION_HEX=0x10000") + +add_definitions("-DANDROID=1" "-DANDROID_API_VERSION=24" "-DPUSH_NOTIFICATIONS=1" "-DANDROID" "-DLINUX" "-DUNIX" "-DHAVE_IPV6" "-DHAVE_DIRFD" "-DPROTO_DEBUG" "-DHAVE_ASSERT" "-DHAVE_GETLOGIN" "-DUSE_SELECT" "-D_FILE_OFFSET_BITS=64" "-DHAVE_OLD_SIGNALHANDLER" "-DHAVE_SCHED" "-DNO_SCM_RIGHTS" "-DAPP_VERSION=1.0.0" "-DAPP_VERSION_HEX=0x10000") + + +include_directories( AFTER + "../../OID_NDK}/sources/android/cpufeatures" + "../../include" +) + +enable_language(ASM) + +IF(BUILD_CONFIGURATION MATCHES "DEBUG") + SET(BINARY_NAME "protokit") + add_definitions("-DDEBUG=1" "-D_DEBUG=1") +ELSEIF(BUILD_CONFIGURATION MATCHES "RELEASE") + SET(BINARY_NAME "protokit") + add_definitions("-DNDEBUG=1") +ELSE(BUILD_CONFIGURATION MATCHES "DEBUG") + MESSAGE( FATAL_ERROR "No matching build-configuration found." ) +ENDIF(BUILD_CONFIGURATION MATCHES "DEBUG") + +add_library( ${BINARY_NAME} + + STATIC + + "../../src/manet/manetGraph.cpp" + "../../src/manet/manetMsg.cpp" + "../../src/common/protoAddress.cpp" + "../../src/common/protoApp.cpp" + "../../src/common/protoBase64.cpp" + "../../src/common/protoBitmask.cpp" + "../../src/common/protoCap.cpp" + "../../src/common/protoChannel.cpp" + "../../src/common/protoCheck.cpp" + "../../src/common/protoDebug.cpp" + "../../src/common/protoDispatcher.cpp" + "../../src/common/protoEvent.cpp" + "../../src/common/protoFile.cpp" + "../../src/common/protoFlow.cpp" + "../../src/common/protoGraph.cpp" + "../../src/common/protoJson.cpp" + "../../src/common/protoLFSR.cpp" + "../../src/common/protoList.cpp" + "../../src/common/protoNet.cpp" + "../../src/common/protoPipe.cpp" + "../../src/common/protoPkt.cpp" + "../../src/common/protoPktARP.cpp" + "../../src/common/protoPktETH.cpp" + "../../src/common/protoPktIGMP.cpp" + "../../src/common/protoPktIP.cpp" + "../../src/common/protoPktRIP.cpp" + "../../src/common/protoPktRTP.cpp" + "../../src/common/protoPktTCP.cpp" + "../../src/common/protoQueue.cpp" + "../../src/common/protoRouteMgr.cpp" + "../../src/common/protoRouteTable.cpp" + "../../src/common/protoSocket.cpp" + "../../src/common/protoSpace.cpp" + "../../src/common/protoString.cpp" + "../../src/common/protoTime.cpp" + "../../src/common/protoTimer.cpp" + "../../src/common/protoTree.cpp" + "../../src/common/protoVif.cpp" + "../../src/unix/unixNet.cpp" + "../../src/linux/linuxNet.cpp" + "../../src/unix/unixVif.cpp" +) + +find_library(log "log") +find_library(android "android") +find_library(glesv2 "GLESv2") +find_library(egl "EGL") + +target_link_libraries( ${BINARY_NAME} + + ${log} + ${android} + ${glesv2} + ${egl} +) diff --git a/android/lib/build.gradle b/android/lib/build.gradle old mode 100755 new mode 100644 index 84263a9..dbe17a9 --- a/android/lib/build.gradle +++ b/android/lib/build.gradle @@ -1,92 +1,92 @@ -apply plugin: 'com.android.library' - -android { - compileSdkVersion 34 - externalNativeBuild { - cmake { - path "CMakeLists.txt" - } - } - signingConfigs { - protokitSigning { - storeFile file("${System.properties['user.home']}${File.separator}.android${File.separator}debug.keystore") - storePassword "android" - keyAlias "androiddebugkey" - keyPassword "android" - storeType "jks" - } - } - - defaultConfig { - externalNativeBuild { - cmake { - arguments "-DANDROID_TOOLCHAIN=clang", "-DANDROID_PLATFORM=android-24", "-DANDROID_STL=c++_static", "-DANDROID_CPP_FEATURES=exceptions rtti", "-DANDROID_ARM_MODE=arm", "-DANDROID_ARM_NEON=TRUE" - cFlags "-fsigned-char" - cppFlags "-fsigned-char", "-std=c++14" - } - } - } - - buildTypes { - debug { - initWith debug - debuggable true - jniDebuggable true - signingConfig signingConfigs.protokitSigning - } - release { - initWith release - debuggable false - jniDebuggable false - signingConfig signingConfigs.protokitSigning - } - } - - flavorDimensions "default" - productFlavors { - debug_ { - ndk { - abiFilters "armeabi-v7a", "x86" - } - externalNativeBuild { - cmake { - targets "protokit" - arguments "-DBUILD_CONFIGURATION=DEBUG", "-DCMAKE_CXX_FLAGS_DEBUG=-O0", "-DCMAKE_C_FLAGS_DEBUG=-O0" - } - } - - dimension "default" - } - release_ { - externalNativeBuild { - cmake { - targets "protokit" - arguments "-DBUILD_CONFIGURATION=RELEASE", "-DCMAKE_CXX_FLAGS_RELEASE=-O3", "-DCMAKE_C_FLAGS_RELEASE=-O3" - } - } - - dimension "default" - } - } - - variantFilter { variant -> - def names = variant.flavors*.name - if (names.contains ("debug_") - && variant.buildType.name != "debug") { - setIgnore(true) - } - if (names.contains ("release_") - && variant.buildType.name != "release") { - setIgnore(true) - } - } - -repositories { -} - -dependencies { -} - - -} - +apply plugin: 'com.android.library' + +android { + compileSdkVersion 34 + externalNativeBuild { + cmake { + path "CMakeLists.txt" + } + } + signingConfigs { + protokitSigning { + storeFile file("${System.properties['user.home']}${File.separator}.android${File.separator}debug.keystore") + storePassword "android" + keyAlias "androiddebugkey" + keyPassword "android" + storeType "jks" + } + } + + defaultConfig { + externalNativeBuild { + cmake { + arguments "-DANDROID_TOOLCHAIN=clang", "-DANDROID_PLATFORM=android-24", "-DANDROID_STL=c++_static", "-DANDROID_CPP_FEATURES=exceptions rtti", "-DANDROID_ARM_MODE=arm", "-DANDROID_ARM_NEON=TRUE" + cFlags "-fsigned-char" + cppFlags "-fsigned-char", "-std=c++14" + } + } + } + + buildTypes { + debug { + initWith debug + debuggable true + jniDebuggable true + signingConfig signingConfigs.protokitSigning + } + release { + initWith release + debuggable false + jniDebuggable false + signingConfig signingConfigs.protokitSigning + } + } + + flavorDimensions "default" + productFlavors { + debug_ { + ndk { + abiFilters "armeabi-v7a", "x86" + } + externalNativeBuild { + cmake { + targets "protokit" + arguments "-DBUILD_CONFIGURATION=DEBUG", "-DCMAKE_CXX_FLAGS_DEBUG=-O0", "-DCMAKE_C_FLAGS_DEBUG=-O0" + } + } + + dimension "default" + } + release_ { + externalNativeBuild { + cmake { + targets "protokit" + arguments "-DBUILD_CONFIGURATION=RELEASE", "-DCMAKE_CXX_FLAGS_RELEASE=-O3", "-DCMAKE_C_FLAGS_RELEASE=-O3" + } + } + + dimension "default" + } + } + + variantFilter { variant -> + def names = variant.flavors*.name + if (names.contains ("debug_") + && variant.buildType.name != "debug") { + setIgnore(true) + } + if (names.contains ("release_") + && variant.buildType.name != "release") { + setIgnore(true) + } + } + +repositories { +} + +dependencies { +} + + +} + diff --git a/android/lib/src/main/AndroidManifest.xml b/android/lib/src/main/AndroidManifest.xml old mode 100755 new mode 100644 diff --git a/android/settings.gradle b/android/settings.gradle old mode 100755 new mode 100644 diff --git a/doc/BUILD_RTEMS.TXT b/doc/BUILD_RTEMS.TXT old mode 100755 new mode 100644 diff --git a/doc/README-DOXYGEN b/doc/README-DOXYGEN old mode 100755 new mode 100644 index c82e51e..44d84d5 --- a/doc/README-DOXYGEN +++ b/doc/README-DOXYGEN @@ -1,103 +1,103 @@ -Generating doxygen output on Windows: - -1. Make sure the doc/doxygen/Doxyfile configuration file points to the correct location - of graphwiz's "dot" exectuable for your system. (DOT_PATH variable) -2. Load the doxygen configuration file (doc/doxygen/Doxyfile) into the - doxygen wizard. -3. Start, output will be put in /doc/doxygen/html. - -Generating doxygen output on Linux: - -1. Make sure the doc/doxygen/Doxyfile file points to the correct location of - graphwiz's "dot" exectuable for your system. (DOT_PATH variable) -2. Run "doxygen doxyfile", output will be put in /doc/doxygen/html -3. Rumor has it that there is a doxygen wizard (gui) available for linux. - -------------------------------------------------------------------------- -Supplemental Documentation - -Supplemental documentation (e.g. Introduction, Summarized class list by -category etc. are stored in the doc/doxygen/mainpages directory. - -How to document classes: - -/** - * @class ClassName - * - * @brief Enter a brief description of the - * class, the first sentence (deliminated by a period) - * will be included in the brief description. - * - * Anything after the first sentence, and included - * in the "@class" block will be part of the - * detailed description. - * - * The "@brief" description will be used to - * describe the class on the class list. - * - */ - -How to document functions: --------------------------- - -Keep the Doxygen function documentation with the function definition, e.g. in -either the .h or the .cpp file. - -Placing "/**" before the comments will cause Doxygen to generate a link -to the function documentation. - -/** - * - * @brief Description of the function. Will appear before function - * definition. Don't really need "@brief" as JAVADOC_AUTOBRIEF is - * turned on. - * - * @param Defailed parameter text, if needed. Will appear in - * separate parameter secion. - * - * @retval Detailed text about return value, if needed. - * - */ -void someFunc() {} - -Placing "///" before the comments will cause Doxygen to include the -associated text next to the function name in the function listing only. - - -Other Notes: - -1. Sometimes the html directory has to be cleared out and the entire -doxygen output regenerated if the graphics get screwed up. - -2. Need "dot" from graphwiz. In some doxygen implementations it is -included. - -3. Can generate called/call graphs. To enable or disable call graphs -for each function, toggle CALL_GRAPH and CALLER_GRAPH variables in the -config file. To enable for specific functions when CALL_GRAPH is set -to no, use the @callgraph/@callergraph commands. - -4. @sa "See also" alias. - @note "Note" alias - @exception - @class - @param - @return - @retval - - ProtoGraph::~Vertice has an example of function text and a @note. - -5. Can turn off documentation of inherited functions and properties. - -8. We are generating documentation from all src files included under -the doc tree. This can be changed to include/exclude specific directories. - -Modify INPUT in config file to add additional code/directories, e.g. - -INPUT = ../common - -#Add protolib to the doxygen output -#INPUT += ../../protolib/common - -#To add files +Generating doxygen output on Windows: + +1. Make sure the doc/doxygen/Doxyfile configuration file points to the correct location + of graphwiz's "dot" exectuable for your system. (DOT_PATH variable) +2. Load the doxygen configuration file (doc/doxygen/Doxyfile) into the + doxygen wizard. +3. Start, output will be put in /doc/doxygen/html. + +Generating doxygen output on Linux: + +1. Make sure the doc/doxygen/Doxyfile file points to the correct location of + graphwiz's "dot" exectuable for your system. (DOT_PATH variable) +2. Run "doxygen doxyfile", output will be put in /doc/doxygen/html +3. Rumor has it that there is a doxygen wizard (gui) available for linux. + +------------------------------------------------------------------------- +Supplemental Documentation + +Supplemental documentation (e.g. Introduction, Summarized class list by +category etc. are stored in the doc/doxygen/mainpages directory. + +How to document classes: + +/** + * @class ClassName + * + * @brief Enter a brief description of the + * class, the first sentence (deliminated by a period) + * will be included in the brief description. + * + * Anything after the first sentence, and included + * in the "@class" block will be part of the + * detailed description. + * + * The "@brief" description will be used to + * describe the class on the class list. + * + */ + +How to document functions: +-------------------------- + +Keep the Doxygen function documentation with the function definition, e.g. in +either the .h or the .cpp file. + +Placing "/**" before the comments will cause Doxygen to generate a link +to the function documentation. + +/** + * + * @brief Description of the function. Will appear before function + * definition. Don't really need "@brief" as JAVADOC_AUTOBRIEF is + * turned on. + * + * @param Defailed parameter text, if needed. Will appear in + * separate parameter secion. + * + * @retval Detailed text about return value, if needed. + * + */ +void someFunc() {} + +Placing "///" before the comments will cause Doxygen to include the +associated text next to the function name in the function listing only. + + +Other Notes: + +1. Sometimes the html directory has to be cleared out and the entire +doxygen output regenerated if the graphics get screwed up. + +2. Need "dot" from graphwiz. In some doxygen implementations it is +included. + +3. Can generate called/call graphs. To enable or disable call graphs +for each function, toggle CALL_GRAPH and CALLER_GRAPH variables in the +config file. To enable for specific functions when CALL_GRAPH is set +to no, use the @callgraph/@callergraph commands. + +4. @sa "See also" alias. + @note "Note" alias + @exception + @class + @param + @return + @retval + + ProtoGraph::~Vertice has an example of function text and a @note. + +5. Can turn off documentation of inherited functions and properties. + +8. We are generating documentation from all src files included under +the doc tree. This can be changed to include/exclude specific directories. + +Modify INPUT in config file to add additional code/directories, e.g. + +INPUT = ../common + +#Add protolib to the doxygen output +#INPUT += ../../protolib/common + +#To add files #INPUT += ../../protolib/common/protoApp.h ../../protolib/common/protoApp.cpp \ No newline at end of file diff --git a/doc/README-UNIX.TXT b/doc/README-UNIX.TXT old mode 100755 new mode 100644 index 23a4b05..af9e76a --- a/doc/README-UNIX.TXT +++ b/doc/README-UNIX.TXT @@ -10,8 +10,7 @@ type "make protoApp" (Note: The "Makefile" has been tested for Linux using gcc 2.96. It can be easily modified for other platforms or compilers.) - -Brian Adamson - + +Brian Adamson 18 December 2001 diff --git a/doc/README-WIN32.TXT b/doc/README-WIN32.TXT old mode 100755 new mode 100644 index bd10c3b..e2ba4da --- a/doc/README-WIN32.TXT +++ b/doc/README-WIN32.TXT @@ -10,7 +10,6 @@ to have no user interface for background processing or as an example to use the PROTOLIB classes in classical GUI Win32 applications. -Brian Adamson - +Brian Adamson 18 December 2001 diff --git a/doc/README-WINCE.TXT b/doc/README-WINCE.TXT old mode 100755 new mode 100644 diff --git a/doc/doxygen/Doxyfile b/doc/doxygen/Doxyfile old mode 100755 new mode 100644 diff --git a/doc/doxygen/DoxygenLayout.xml b/doc/doxygen/DoxygenLayout.xml old mode 100755 new mode 100644 diff --git a/doc/doxygen/customdoxygen.css b/doc/doxygen/customdoxygen.css old mode 100755 new mode 100644 index d908c5c..d377f21 --- a/doc/doxygen/customdoxygen.css +++ b/doc/doxygen/customdoxygen.css @@ -1,441 +1,441 @@ -body, table, div, p, dl { - font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; - font-size: 12px; -} - -/* @group Heading Levels */ - -h1 { - text-align: center; - font-size: 150%; -} - -h2 { - font-size: 120%; -} - -h3 { - font-size: 100%; -} - -/* @end */ - -caption { - font-weight: bold; -} - -div.qindex, div.navtab{ - background-color: #e8eef2; - border: 1px solid #84b0c7; - text-align: center; - margin: 2px; - padding: 2px; -} - -div.qindex, div.navpath { - width: 100%; - line-height: 140%; -} - -div.navtab { - margin-right: 15px; -} - -/* @group Link Styling */ - -a { - color: #153788; - font-weight: normal; - text-decoration: none; -} - -.contents a:visited { - color: #1b77c5; -} - -a:hover { - text-decoration: underline; -} - -a.qindex { - font-weight: bold; -} - -a.qindexHL { - font-weight: bold; - background-color: #6666cc; - color: #ffffff; - border: 1px double #9295C2; -} - -.contents a.qindexHL:visited { - color: #ffffff; -} - -a.el { - font-weight: bold; -} - -a.elRef { -} - -a.code { -} - -a.codeRef { -} - -/* @end */ - -dl.el { - margin-left: -1cm; -} - -.fragment { - font-family: monospace, fixed; - font-size: 105%; -} - -pre.fragment { - border: 1px solid #CCCCCC; - background-color: #f5f5f5; - padding: 4px 6px; - margin: 4px 8px 4px 2px; -} - -div.ah { - background-color: black; - font-weight: bold; - color: #ffffff; - margin-bottom: 3px; - margin-top: 3px -} - -div.groupHeader { - margin-left: 16px; - margin-top: 12px; - margin-bottom: 6px; - font-weight: bold; -} - -div.groupText { - margin-left: 16px; - font-style: italic; -} - -body { - background: white; - color: black; - margin-right: 20px; - margin-left: 20px; -} - -td.indexkey { - background-color: #e8eef2; - font-weight: bold; - border: 1px solid #CCCCCC; - margin: 2px 0px 2px 0; - padding: 2px 10px; -} - -td.indexvalue { - background-color: #e8eef2; - border: 1px solid #CCCCCC; - padding: 2px 10px; - margin: 2px 0px; -} - -tr.memlist { - background-color: #f0f0f0; -} - -p.formulaDsp { - text-align: center; -} - -img.formulaDsp { - -} - -img.formulaInl { - vertical-align: middle; -} - -/* @group Code Colorization */ - -span.keyword { - color: #008000 -} - -span.keywordtype { - color: #604020 -} - -span.keywordflow { - color: #e08000 -} - -span.comment { - color: #800000 -} - -span.preprocessor { - color: #806020 -} - -span.stringliteral { - color: #002080 -} - -span.charliteral { - color: #008080 -} - -span.vhdldigit { - color: #ff00ff -} - -span.vhdlchar { - color: #000000 -} - -span.vhdlkeyword { - color: #700070 -} - -span.vhdllogic { - color: #ff0000 -} - -/* @end */ - -.search { - color: #003399; - font-weight: bold; -} - -form.search { - margin-bottom: 0px; - margin-top: 0px; -} - -input.search { - font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; -} - -td.tiny { - font-size: 75%; -} - -.dirtab { - padding: 4px; - border-collapse: collapse; - border: 1px solid #84b0c7; -} - -th.dirtab { - background: #e8eef2; - font-weight: bold; -} - -hr { - height: 0; - border: none; - border-top: 1px solid #666; -} - -/* @group Member Descriptions */ - -.mdescLeft, .mdescRight, -.memItemLeft, .memItemRight, -.memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: #FAFAFA; - border: none; - margin: 4px; - padding: 1px 0 0 8px; -} - -.mdescLeft, .mdescRight { - padding: 0px 8px 4px 8px; - color: #555; -} - -.memItemLeft, .memItemRight, .memTemplParams { - border-top: 1px solid #ccc; -} - -.memTemplParams { - color: #606060; -} - -/* @end */ - -/* @group Member Details */ - -/* Styles for detailed member documentation */ - -.memtemplate { - font-size: 80%; - color: #606060; - font-weight: normal; - margin-left: 3px; -} - -.memnav { - background-color: #e8eef2; - border: 1px solid #84b0c7; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} - -.memitem { - padding: 0; -} - -.memname { - white-space: nowrap; - font-weight: bold; -} - -.memproto, .memdoc { - border: 1px solid #84b0c7; -} - -.memproto { - padding: 0; - background-color: #d5e1e8; - font-weight: bold; - -webkit-border-top-left-radius: 8px; - -webkit-border-top-right-radius: 8px; - -moz-border-radius-topleft: 8px; - -moz-border-radius-topright: 8px; -} - -.memdoc { - padding: 2px 5px; - background-color: #eef3f5; - border-top-width: 0; - -webkit-border-bottom-left-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomleft: 8px; - -moz-border-radius-bottomright: 8px; -} - -.paramkey { - text-align: right; -} - -.paramtype { - white-space: nowrap; -} - -.paramname { - color: #602020; - white-space: nowrap; -} -.paramname em { - font-style: normal; -} - -/* @end */ - -/* @group Directory (tree) */ - -/* for the tree view */ - -.ftvtree { - font-family: sans-serif; - margin: 0.5em; -} - -/* these are for tree view when used as main index */ - -.directory { - font-size: 9pt; - font-weight: bold; -} - -.directory h3 { - margin: 0px; - margin-top: 1em; - font-size: 11pt; -} - -/* -The following two styles can be used to replace the root node title -with an image of your choice. Simply uncomment the next two styles, -specify the name of your image and be sure to set 'height' to the -proper pixel height of your image. -*/ - -/* -.directory h3.swap { - height: 110px; - background-repeat: no-repeat; - background-image: url("../nrlheadbkg.gif"); -} -.directory h3.swap span { - display: none; -} -*/ - -.directory > h3 { - margin-top: 0; -} - -.directory p { - margin: 0px; - white-space: nowrap; -} - -.directory div { - display: none; - margin: 0px; -} - -.directory img { - vertical-align: -30%; -} - -/* these are for tree view when not used as main index */ - -.directory-alt { - font-size: 100%; - font-weight: bold; -} - -.directory-alt h3 { - margin: 0px; - margin-top: 1em; - font-size: 11pt; -} - -.directory-alt > h3 { - margin-top: 0; -} - -.directory-alt p { - margin: 0px; - white-space: nowrap; -} - -.directory-alt div { - display: none; - margin: 0px; -} - -.directory-alt img { - vertical-align: -30%; -} - -/* @end */ - -address { - font-style: normal; - color: #333; -} +body, table, div, p, dl { + font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; + font-size: 12px; +} + +/* @group Heading Levels */ + +h1 { + text-align: center; + font-size: 150%; +} + +h2 { + font-size: 120%; +} + +h3 { + font-size: 100%; +} + +/* @end */ + +caption { + font-weight: bold; +} + +div.qindex, div.navtab{ + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #153788; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #1b77c5; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #6666cc; + color: #ffffff; + border: 1px double #9295C2; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code { +} + +a.codeRef { +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +.fragment { + font-family: monospace, fixed; + font-size: 105%; +} + +pre.fragment { + border: 1px solid #CCCCCC; + background-color: #f5f5f5; + padding: 4px 6px; + margin: 4px 8px 4px 2px; +} + +div.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + margin-bottom: 6px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background: white; + color: black; + margin-right: 20px; + margin-left: 20px; +} + +td.indexkey { + background-color: #e8eef2; + font-weight: bold; + border: 1px solid #CCCCCC; + margin: 2px 0px 2px 0; + padding: 2px 10px; +} + +td.indexvalue { + background-color: #e8eef2; + border: 1px solid #CCCCCC; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #f0f0f0; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +/* @end */ + +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #84b0c7; +} + +th.dirtab { + background: #e8eef2; + font-weight: bold; +} + +hr { + height: 0; + border: none; + border-top: 1px solid #666; +} + +/* @group Member Descriptions */ + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #FAFAFA; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memItemLeft, .memItemRight, .memTemplParams { + border-top: 1px solid #ccc; +} + +.memTemplParams { + color: #606060; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #606060; + font-weight: normal; + margin-left: 3px; +} + +.memnav { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.memitem { + padding: 0; +} + +.memname { + white-space: nowrap; + font-weight: bold; +} + +.memproto, .memdoc { + border: 1px solid #84b0c7; +} + +.memproto { + padding: 0; + background-color: #d5e1e8; + font-weight: bold; + -webkit-border-top-left-radius: 8px; + -webkit-border-top-right-radius: 8px; + -moz-border-radius-topleft: 8px; + -moz-border-radius-topright: 8px; +} + +.memdoc { + padding: 2px 5px; + background-color: #eef3f5; + border-top-width: 0; + -webkit-border-bottom-left-radius: 8px; + -webkit-border-bottom-right-radius: 8px; + -moz-border-radius-bottomleft: 8px; + -moz-border-radius-bottomright: 8px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} + +/* @end */ + +/* @group Directory (tree) */ + +/* for the tree view */ + +.ftvtree { + font-family: sans-serif; + margin: 0.5em; +} + +/* these are for tree view when used as main index */ + +.directory { + font-size: 9pt; + font-weight: bold; +} + +.directory h3 { + margin: 0px; + margin-top: 1em; + font-size: 11pt; +} + +/* +The following two styles can be used to replace the root node title +with an image of your choice. Simply uncomment the next two styles, +specify the name of your image and be sure to set 'height' to the +proper pixel height of your image. +*/ + +/* +.directory h3.swap { + height: 110px; + background-repeat: no-repeat; + background-image: url("../nrlheadbkg.gif"); +} +.directory h3.swap span { + display: none; +} +*/ + +.directory > h3 { + margin-top: 0; +} + +.directory p { + margin: 0px; + white-space: nowrap; +} + +.directory div { + display: none; + margin: 0px; +} + +.directory img { + vertical-align: -30%; +} + +/* these are for tree view when not used as main index */ + +.directory-alt { + font-size: 100%; + font-weight: bold; +} + +.directory-alt h3 { + margin: 0px; + margin-top: 1em; + font-size: 11pt; +} + +.directory-alt > h3 { + margin-top: 0; +} + +.directory-alt p { + margin: 0px; + white-space: nowrap; +} + +.directory-alt div { + display: none; + margin: 0px; +} + +.directory-alt img { + vertical-align: -30%; +} + +/* @end */ + +address { + font-style: normal; + color: #333; +} diff --git a/doc/doxygen/footer.html b/doc/doxygen/footer.html old mode 100755 new mode 100644 index 08db8f4..48990ae --- a/doc/doxygen/footer.html +++ b/doc/doxygen/footer.html @@ -1,4 +1,4 @@ -
-Generated on $datetime for $projectname by doxygen $doxygenversion
- - +
+Generated on $datetime for $projectname by doxygen $doxygenversion
+ + diff --git a/doc/doxygen/header.html b/doc/doxygen/header.html old mode 100755 new mode 100644 index 17f187d..41c1d88 --- a/doc/doxygen/header.html +++ b/doc/doxygen/header.html @@ -1,6 +1,6 @@ - - -$title - - - + + +$title + + + diff --git a/doc/doxygen/mainpages/building.h b/doc/doxygen/mainpages/building.h old mode 100755 new mode 100644 diff --git a/doc/doxygen/mainpages/buildingExamplesWithWaf.h b/doc/doxygen/mainpages/buildingExamplesWithWaf.h old mode 100755 new mode 100644 index 2d53f74..ddbfbe9 --- a/doc/doxygen/mainpages/buildingExamplesWithWaf.h +++ b/doc/doxygen/mainpages/buildingExamplesWithWaf.h @@ -1,82 +1,82 @@ -/** -@page building_examples_with_waf Building Protolib Examples with WAF - -@li @ref building_with_waf -@li @ref building_configuring_waf -@li @ref building_the_examples -@li @ref building_cleaning - -
-@section building_with_waf Building with WAF - -Protolib examples can be built using the Waf build tool, included in the distribution. -To see a full list of example programs, run: - -@verbatim - ./waf -h -@endverbatim - -
-@section building_configuring_waf Configuring WAF - -To perform the configure checks, run: - -@verbatim - ./waf configure -@endverbatim - -Some options for the configure step: - -@verbatim - --prefix= - Directory to install files to (Default - /usr/local) - - --debug - Builds a debug build (with debugging symbols), otherwise an - optimized library is built. - --static - Builds a statically linked library, otherwise a shared library - is built. - - --build-python - Builds the Python ProtoPipe extension - --build-java - Builds the Java ProtoPipe extension - You must set the JAVA_HOME environment variable to the location of your - JDK directory - --build-ns3 - Builds the NS3 extensions - You must set the NS3_HOME environment variable to the location of your - NS3 directory - - --disable-X - Disables the feature X (See ./waf -h for descriptions) -@endverbatim - -
-@section building_the_examples Building the Examples - -To build all the examples, simply run: - -@verbatim - ./waf -ex-all -@endverbatim - -To build a specific example, run: - -@verbatim - ./waf --ex-XXX -@endverbatim - -Where XXX is the name of the example you want to build (see ./waf -h). - -
-@section building_cleaning Cleaning - -@verbatim - ./waf clean -@endverbatim - -will delete all compiled files and configuration settings. - -@verbatim - ./waf distclean -@endverbatim - -will do the same as clean, and additionally delete the waf cache files. - -*/ - +/** +@page building_examples_with_waf Building Protolib Examples with WAF + +@li @ref building_with_waf +@li @ref building_configuring_waf +@li @ref building_the_examples +@li @ref building_cleaning + +
+@section building_with_waf Building with WAF + +Protolib examples can be built using the Waf build tool, included in the distribution. +To see a full list of example programs, run: + +@verbatim + ./waf -h +@endverbatim + +
+@section building_configuring_waf Configuring WAF + +To perform the configure checks, run: + +@verbatim + ./waf configure +@endverbatim + +Some options for the configure step: + +@verbatim + --prefix= - Directory to install files to (Default - /usr/local) + + --debug - Builds a debug build (with debugging symbols), otherwise an + optimized library is built. + --static - Builds a statically linked library, otherwise a shared library + is built. + + --build-python - Builds the Python ProtoPipe extension + --build-java - Builds the Java ProtoPipe extension + You must set the JAVA_HOME environment variable to the location of your + JDK directory + --build-ns3 - Builds the NS3 extensions + You must set the NS3_HOME environment variable to the location of your + NS3 directory + + --disable-X - Disables the feature X (See ./waf -h for descriptions) +@endverbatim + +
+@section building_the_examples Building the Examples + +To build all the examples, simply run: + +@verbatim + ./waf -ex-all +@endverbatim + +To build a specific example, run: + +@verbatim + ./waf --ex-XXX +@endverbatim + +Where XXX is the name of the example you want to build (see ./waf -h). + +
+@section building_cleaning Cleaning + +@verbatim + ./waf clean +@endverbatim + +will delete all compiled files and configuration settings. + +@verbatim + ./waf distclean +@endverbatim + +will do the same as clean, and additionally delete the waf cache files. + +*/ + diff --git a/doc/doxygen/mainpages/buildingProtolibJNI.h b/doc/doxygen/mainpages/buildingProtolibJNI.h old mode 100755 new mode 100644 index e5afb2e..359c6d9 --- a/doc/doxygen/mainpages/buildingProtolibJNI.h +++ b/doc/doxygen/mainpages/buildingProtolibJNI.h @@ -1,14 +1,14 @@ -/** -@page building_protolibJni_with_waf Building ProtolibJni with WAF - -
-@section building_protolibJni_with_waf Building ProtolibJni - -ProtolibJNI is a java native library that allows java applications access -to the Protolib ProtoPipe class. The source code is available in the +/** +@page building_protolibJni_with_waf Building ProtolibJni with WAF + +
+@section building_protolibJni_with_waf Building ProtolibJni + +ProtolibJNI is a java native library that allows java applications access +to the Protolib ProtoPipe class. The source code is available in the protolib/src/java directory. -To build the library, you may find it helpful to load the protolib project +To build the library, you may find it helpful to load the protolib project into Visual Studio (see @ref building_with_vs) and open a Visual Studio command so that the correct environment variables are set. @@ -33,6 +33,6 @@ waf @endverbatim The ProtolibJni.dll, ProtolibJni.jar, and ProtolibJni.lib files will be -created in the build/default directory. -*/ - +created in the build/default directory. +*/ + diff --git a/doc/doxygen/mainpages/buildingWithMake.h b/doc/doxygen/mainpages/buildingWithMake.h old mode 100755 new mode 100644 index c8e4e5b..12ed0ba --- a/doc/doxygen/mainpages/buildingWithMake.h +++ b/doc/doxygen/mainpages/buildingWithMake.h @@ -1,42 +1,42 @@ -/** -@page building_with_make Building Protolib with Make - -@li @ref building_with_make -@li @ref building_with_make_the_library -@li @ref building_with_make_cleaning - -
-@section building_with_make Building Protolib with Make - -Protolib can be built using the Make build tool. Makefile configuration files -for a variety of platforms are included in the distribution in the makefiles -directory. - -
-@section building_with_make_the_library Building the Library - -To build the library, simply run: - -@verbatim - make -f Makefile. -@endverbatim - -To build examples along with the library, run: - -@verbatim - make -f Makefile. -@endverbatim - -Where XXX is the name of the example you want to build. - -
-@section building_with_make_cleaning Cleaning - -@verbatim - make -f Makefile. clean -@endverbatim - -will delete all compiled files. - -*/ - +/** +@page building_with_make Building Protolib with Make + +@li @ref building_with_make +@li @ref building_with_make_the_library +@li @ref building_with_make_cleaning + +
+@section building_with_make Building Protolib with Make + +Protolib can be built using the Make build tool. Makefile configuration files +for a variety of platforms are included in the distribution in the makefiles +directory. + +
+@section building_with_make_the_library Building the Library + +To build the library, simply run: + +@verbatim + make -f Makefile. +@endverbatim + +To build examples along with the library, run: + +@verbatim + make -f Makefile. +@endverbatim + +Where XXX is the name of the example you want to build. + +
+@section building_with_make_cleaning Cleaning + +@verbatim + make -f Makefile. clean +@endverbatim + +will delete all compiled files. + +*/ + diff --git a/doc/doxygen/mainpages/buildingWithVisualStudio.h b/doc/doxygen/mainpages/buildingWithVisualStudio.h old mode 100755 new mode 100644 index 60f7aaa..5a03245 --- a/doc/doxygen/mainpages/buildingWithVisualStudio.h +++ b/doc/doxygen/mainpages/buildingWithVisualStudio.h @@ -1,19 +1,19 @@ -/** -@page building_with_visual_studio Building Protolib with Visual Studio - -@li @ref building_with_vs - -
-@section building_with_vs Building Protolib with Visual Studio - -Visual Studio solution files for building protolib are included in -the distribution in the protolib/makefiles/win32 directory. - -Load the appropriate solution file into Visual Studio (project files for Visual -Studio 2008 Express and Pro Editions are provided) and configure VS to build -either a Debug or Release version of the library. The library will be placed in -the protolib/makefiles/win32/Release or protolib/makefiles/Debug as appropriate. - - -*/ - +/** +@page building_with_visual_studio Building Protolib with Visual Studio + +@li @ref building_with_vs + +
+@section building_with_vs Building Protolib with Visual Studio + +Visual Studio solution files for building protolib are included in +the distribution in the protolib/makefiles/win32 directory. + +Load the appropriate solution file into Visual Studio (project files for Visual +Studio 2008 Express and Pro Editions are provided) and configure VS to build +either a Debug or Release version of the library. The library will be placed in +the protolib/makefiles/win32/Release or protolib/makefiles/Debug as appropriate. + + +*/ + diff --git a/doc/doxygen/mainpages/buildingWithWaf.h b/doc/doxygen/mainpages/buildingWithWaf.h old mode 100755 new mode 100644 index 7cc5ae3..d46eab1 --- a/doc/doxygen/mainpages/buildingWithWaf.h +++ b/doc/doxygen/mainpages/buildingWithWaf.h @@ -1,108 +1,108 @@ -/** -@page building_with_waf Building Protolib with WAF - -@li @ref building_with_waf -@li @ref building_configuring_waf -@li @ref building_the_library -@li @ref building_installing -@li @ref building_uninstalling -@li @ref building_cleaning - -
-@section building_with_waf Building Protolib with WAF - -Protolib can be built using the Waf build tool, included in the distribution. -To see a full list of options, run: - -@verbatim - ./waf -h -@endverbatim - -
-@section building_configuring_waf Configuring WAF - -To perform the configure checks, run: - -@verbatim - ./waf configure -@endverbatim - -Some options for the configure step: - -@verbatim - --prefix= - Directory to install files to (Default - /usr/local) - - --debug - Builds a debug build (with debugging symbols), otherwise an - optimized library is built. - --static - Builds a statically linked library, otherwise a shared library - is built. - - --build-python - Builds the Python ProtoPipe extension - --build-java - Builds the Java ProtoPipe extension - You must set the JAVA_HOME environment variable to the location of your - JDK directory - --build-ns3 - Builds the NS3 extensions - You must set the NS3_HOME environment variable to the location of your - NS3 directory - - --disable-X - Disables the feature X (See ./waf -h for descriptions) -@endverbatim - -
-@section building_the_library Building the Library - -To build the library, simply run: - -@verbatim - ./waf -@endverbatim - -To build examples along with the library, run: - -@verbatim - ./waf --ex-XXX -@endverbatim - -Where XXX is the name of the example you want to build (see ./waf -h). -Additionally, you can add the --ex-all flag to build all the example programs. - -
-@section building_installing Installing - -To install, run: - -@verbatim - ./waf install -@endverbatim - -This will install the compiled library and headers to wherever your prefix was -specified. (See configure flags) - -
-@section building_uninstalling Uninstalling - -Waf tracks the files it installs, so run: - -@verbatim - ./waf uninstall -@endverbatim - -to remove all files from a previous ./waf install - -
-@section building_cleaning Cleaning - -@verbatim - ./waf clean -@endverbatim - -will delete all compiled files and configuration settings. - -@verbatim - ./waf distclean -@endverbatim - -will do the same as clean, and additionally delete the waf cache files. - -*/ - +/** +@page building_with_waf Building Protolib with WAF + +@li @ref building_with_waf +@li @ref building_configuring_waf +@li @ref building_the_library +@li @ref building_installing +@li @ref building_uninstalling +@li @ref building_cleaning + +
+@section building_with_waf Building Protolib with WAF + +Protolib can be built using the Waf build tool, included in the distribution. +To see a full list of options, run: + +@verbatim + ./waf -h +@endverbatim + +
+@section building_configuring_waf Configuring WAF + +To perform the configure checks, run: + +@verbatim + ./waf configure +@endverbatim + +Some options for the configure step: + +@verbatim + --prefix= - Directory to install files to (Default - /usr/local) + + --debug - Builds a debug build (with debugging symbols), otherwise an + optimized library is built. + --static - Builds a statically linked library, otherwise a shared library + is built. + + --build-python - Builds the Python ProtoPipe extension + --build-java - Builds the Java ProtoPipe extension + You must set the JAVA_HOME environment variable to the location of your + JDK directory + --build-ns3 - Builds the NS3 extensions + You must set the NS3_HOME environment variable to the location of your + NS3 directory + + --disable-X - Disables the feature X (See ./waf -h for descriptions) +@endverbatim + +
+@section building_the_library Building the Library + +To build the library, simply run: + +@verbatim + ./waf +@endverbatim + +To build examples along with the library, run: + +@verbatim + ./waf --ex-XXX +@endverbatim + +Where XXX is the name of the example you want to build (see ./waf -h). +Additionally, you can add the --ex-all flag to build all the example programs. + +
+@section building_installing Installing + +To install, run: + +@verbatim + ./waf install +@endverbatim + +This will install the compiled library and headers to wherever your prefix was +specified. (See configure flags) + +
+@section building_uninstalling Uninstalling + +Waf tracks the files it installs, so run: + +@verbatim + ./waf uninstall +@endverbatim + +to remove all files from a previous ./waf install + +
+@section building_cleaning Cleaning + +@verbatim + ./waf clean +@endverbatim + +will delete all compiled files and configuration settings. + +@verbatim + ./waf distclean +@endverbatim + +will do the same as clean, and additionally delete the waf cache files. + +*/ + diff --git a/doc/doxygen/mainpages/class_summary.h b/doc/doxygen/mainpages/class_summary.h old mode 100755 new mode 100644 diff --git a/doc/doxygen/mainpages/introduction.h b/doc/doxygen/mainpages/introduction.h old mode 100755 new mode 100644 diff --git a/doc/doxygen/mainpages/mainpage.h b/doc/doxygen/mainpages/mainpage.h old mode 100755 new mode 100644 index 1de53ba..f885f19 --- a/doc/doxygen/mainpages/mainpage.h +++ b/doc/doxygen/mainpages/mainpage.h @@ -14,5 +14,5 @@ */ - - + + diff --git a/doc/doxygen/nrlheadbkg.gif b/doc/doxygen/nrlheadbkg.gif old mode 100755 new mode 100644 diff --git a/examples/arposer.cpp b/examples/arposer.cpp old mode 100755 new mode 100644 diff --git a/examples/averageExample.cpp b/examples/averageExample.cpp old mode 100755 new mode 100644 diff --git a/examples/base64Example.cpp b/examples/base64Example.cpp old mode 100755 new mode 100644 diff --git a/examples/detourExample.cpp b/examples/detourExample.cpp old mode 100755 new mode 100644 diff --git a/examples/eventExample.cpp b/examples/eventExample.cpp old mode 100755 new mode 100644 diff --git a/examples/fileTest.cpp b/examples/fileTest.cpp old mode 100755 new mode 100644 diff --git a/examples/graphExample.cpp b/examples/graphExample.cpp old mode 100755 new mode 100644 diff --git a/examples/graphRider.cpp b/examples/graphRider.cpp old mode 100755 new mode 100644 diff --git a/examples/graphXMLExample.cpp b/examples/graphXMLExample.cpp old mode 100755 new mode 100644 diff --git a/examples/join.cpp b/examples/join.cpp old mode 100755 new mode 100644 diff --git a/examples/jsonExample.cpp b/examples/jsonExample.cpp old mode 100755 new mode 100644 diff --git a/examples/juce/juceProtoExample/Resources/proteanWave.png b/examples/juce/juceProtoExample/Resources/proteanWave.png old mode 100755 new mode 100644 diff --git a/examples/juce/juceProtoExample/Source/ControlWindow.cpp b/examples/juce/juceProtoExample/Source/ControlWindow.cpp old mode 100755 new mode 100644 index 93b78ce..0f0bf2f --- a/examples/juce/juceProtoExample/Source/ControlWindow.cpp +++ b/examples/juce/juceProtoExample/Source/ControlWindow.cpp @@ -1,200 +1,200 @@ -/* - ============================================================================== - - This is an automatically generated GUI class created by the Projucer! - - Be careful when adding custom code to these files, as only the code within - the "//[xyz]" and "//[/xyz]" sections will be retained when the file is loaded - and re-saved. - - Created with Projucer version: 5.3.2 - - ------------------------------------------------------------------------------ - - The Projucer is part of the JUCE library. - Copyright (c) 2017 - ROLI Ltd. - - ============================================================================== -*/ - -//[Headers] You can add your own extra header files here... -#include "protoDebug.h" -//[/Headers] - -#include "ControlWindow.h" - - -//[MiscUserDefs] You can add your own user definitions and misc code here... -//[/MiscUserDefs] - -//============================================================================== -ControlWindow::ControlWindow () -{ - //[Constructor_pre] You can add your own custom stuff here.. - //[/Constructor_pre] - - startButton.reset (new ToggleButton ("startButton")); - addAndMakeVisible (startButton.get()); - startButton->setTooltip (TRANS("start stop audio loop")); - startButton->setButtonText (TRANS("Do Something")); - startButton->addListener (this); - startButton->setColour (ToggleButton::textColourId, Colours::white); - - helloLabel.reset (new Label ("helloLabel", - TRANS("Hello, ProtoWorld"))); - addAndMakeVisible (helloLabel.get()); - helloLabel->setFont (Font (18.00f, Font::plain).withTypefaceStyle ("Regular")); - helloLabel->setJustificationType (Justification::centred); - helloLabel->setEditable (false, false, false); - helloLabel->setColour (Label::backgroundColourId, Colours::white); - helloLabel->setColour (Label::textColourId, Colour (0xff1e2d75)); - helloLabel->setColour (TextEditor::textColourId, Colours::black); - helloLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); - - viewport.reset (new Viewport ("viewport")); - addAndMakeVisible (viewport.get()); - - drawable1.reset (Drawable::createFromImageData (BinaryData::proteanWave_png, BinaryData::proteanWave_pngSize)); - - //[UserPreSize] - //addAndMakeVisible(drawable1.get()); - activity_icon = new IvoxActivityComponent(); - activity_icon->SetBackgroundColour(Colour(0xff283f88)); - viewport.get()->setViewedComponent(activity_icon); - //[/UserPreSize] - - setSize (600, 400); - - - //[Constructor] You can add your own custom stuff here.. - //[/Constructor] -} - -ControlWindow::~ControlWindow() -{ - //[Destructor_pre]. You can add your own custom destruction code here.. - //[/Destructor_pre] - - startButton = nullptr; - helloLabel = nullptr; - viewport = nullptr; - drawable1 = nullptr; - - - //[Destructor]. You can add your own custom destruction code here.. - //[/Destructor] -} - -//============================================================================== -void ControlWindow::paint (Graphics& g) -{ - //[UserPrePaint] Add your own custom painting code here.. - //[/UserPrePaint] - - g.fillAll (Colour (0xff283f88)); - - { - int x = 0, y = 0, width = proportionOfWidth (1.0000f), height = proportionOfHeight (0.2500f); - //[UserPaintCustomArguments] Customize the painting arguments here.. - //[/UserPaintCustomArguments] - g.setColour (Colours::black); - jassert (drawable1 != 0); - if (drawable1 != 0) - drawable1->drawWithin (g, Rectangle (x, y, width, height), - RectanglePlacement::centred, 1.000f); - } - - //[UserPaint] Add your own custom painting code here.. - //[/UserPaint] -} - -void ControlWindow::resized() -{ - //[UserPreResize] Add your own custom resize code here.. - //[/UserPreResize] - - startButton->setBounds (0, proportionOfHeight (0.2500f), 120, 32); - helloLabel->setBounds (0 + 120, proportionOfHeight (0.2500f), getWidth() - 240, 40); - viewport->setBounds ((0 + 120) + 0, proportionOfHeight (0.3994f), roundToInt ((getWidth() - 240) * 1.0000f), proportionOfHeight (0.5000f)); - //[UserResized] Add your own custom resize handling here.. - activity_icon->setSize(viewport->getWidth(), viewport->getHeight()); - //[/UserResized] -} - -void ControlWindow::buttonClicked (Button* buttonThatWasClicked) -{ - //[UserbuttonClicked_Pre] - //[/UserbuttonClicked_Pre] - - if (buttonThatWasClicked == startButton.get()) - { - IvoxActivityComponent::Status status = activity_icon->GetStatus(); - if (status < IvoxActivityComponent::PLAY) - activity_icon->SetStatus((IvoxActivityComponent::Status)(status + 1), true); - else - activity_icon->SetStatus(IvoxActivityComponent::DEAD); - } - else - { - //[UserButtonCode_startButton] -- add your button handler code here ... - if (buttonThatWasClicked->getToggleState()) - { - activity_icon->SetStatus(IvoxActivityComponent::IDLE); - } - else - { - activity_icon->SetStatus(IvoxActivityComponent::DEAD); - } - //[/UserButtonCode_startButton] - } - - //[UserbuttonClicked_Post] - //[/UserbuttonClicked_Post] -} - - - -//[MiscUserCode] You can add your own definitions of your custom methods or any other code here... -//[/MiscUserCode] - - -//============================================================================== -#if 0 -/* -- Projucer information section -- - - This is where the Projucer stores the metadata that describe this GUI layout, so - make changes in here at your peril! - -BEGIN_JUCER_METADATA - - - - - - - - -END_JUCER_METADATA -*/ -#endif - - -//[EndFile] You can add extra defines here... -//[/EndFile] +/* + ============================================================================== + + This is an automatically generated GUI class created by the Projucer! + + Be careful when adding custom code to these files, as only the code within + the "//[xyz]" and "//[/xyz]" sections will be retained when the file is loaded + and re-saved. + + Created with Projucer version: 5.3.2 + + ------------------------------------------------------------------------------ + + The Projucer is part of the JUCE library. + Copyright (c) 2017 - ROLI Ltd. + + ============================================================================== +*/ + +//[Headers] You can add your own extra header files here... +#include "protoDebug.h" +//[/Headers] + +#include "ControlWindow.h" + + +//[MiscUserDefs] You can add your own user definitions and misc code here... +//[/MiscUserDefs] + +//============================================================================== +ControlWindow::ControlWindow () +{ + //[Constructor_pre] You can add your own custom stuff here.. + //[/Constructor_pre] + + startButton.reset (new ToggleButton ("startButton")); + addAndMakeVisible (startButton.get()); + startButton->setTooltip (TRANS("start stop audio loop")); + startButton->setButtonText (TRANS("Do Something")); + startButton->addListener (this); + startButton->setColour (ToggleButton::textColourId, Colours::white); + + helloLabel.reset (new Label ("helloLabel", + TRANS("Hello, ProtoWorld"))); + addAndMakeVisible (helloLabel.get()); + helloLabel->setFont (Font (18.00f, Font::plain).withTypefaceStyle ("Regular")); + helloLabel->setJustificationType (Justification::centred); + helloLabel->setEditable (false, false, false); + helloLabel->setColour (Label::backgroundColourId, Colours::white); + helloLabel->setColour (Label::textColourId, Colour (0xff1e2d75)); + helloLabel->setColour (TextEditor::textColourId, Colours::black); + helloLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + viewport.reset (new Viewport ("viewport")); + addAndMakeVisible (viewport.get()); + + drawable1.reset (Drawable::createFromImageData (BinaryData::proteanWave_png, BinaryData::proteanWave_pngSize)); + + //[UserPreSize] + //addAndMakeVisible(drawable1.get()); + activity_icon = new IvoxActivityComponent(); + activity_icon->SetBackgroundColour(Colour(0xff283f88)); + viewport.get()->setViewedComponent(activity_icon); + //[/UserPreSize] + + setSize (600, 400); + + + //[Constructor] You can add your own custom stuff here.. + //[/Constructor] +} + +ControlWindow::~ControlWindow() +{ + //[Destructor_pre]. You can add your own custom destruction code here.. + //[/Destructor_pre] + + startButton = nullptr; + helloLabel = nullptr; + viewport = nullptr; + drawable1 = nullptr; + + + //[Destructor]. You can add your own custom destruction code here.. + //[/Destructor] +} + +//============================================================================== +void ControlWindow::paint (Graphics& g) +{ + //[UserPrePaint] Add your own custom painting code here.. + //[/UserPrePaint] + + g.fillAll (Colour (0xff283f88)); + + { + int x = 0, y = 0, width = proportionOfWidth (1.0000f), height = proportionOfHeight (0.2500f); + //[UserPaintCustomArguments] Customize the painting arguments here.. + //[/UserPaintCustomArguments] + g.setColour (Colours::black); + jassert (drawable1 != 0); + if (drawable1 != 0) + drawable1->drawWithin (g, Rectangle (x, y, width, height), + RectanglePlacement::centred, 1.000f); + } + + //[UserPaint] Add your own custom painting code here.. + //[/UserPaint] +} + +void ControlWindow::resized() +{ + //[UserPreResize] Add your own custom resize code here.. + //[/UserPreResize] + + startButton->setBounds (0, proportionOfHeight (0.2500f), 120, 32); + helloLabel->setBounds (0 + 120, proportionOfHeight (0.2500f), getWidth() - 240, 40); + viewport->setBounds ((0 + 120) + 0, proportionOfHeight (0.3994f), roundToInt ((getWidth() - 240) * 1.0000f), proportionOfHeight (0.5000f)); + //[UserResized] Add your own custom resize handling here.. + activity_icon->setSize(viewport->getWidth(), viewport->getHeight()); + //[/UserResized] +} + +void ControlWindow::buttonClicked (Button* buttonThatWasClicked) +{ + //[UserbuttonClicked_Pre] + //[/UserbuttonClicked_Pre] + + if (buttonThatWasClicked == startButton.get()) + { + IvoxActivityComponent::Status status = activity_icon->GetStatus(); + if (status < IvoxActivityComponent::PLAY) + activity_icon->SetStatus((IvoxActivityComponent::Status)(status + 1), true); + else + activity_icon->SetStatus(IvoxActivityComponent::DEAD); + } + else + { + //[UserButtonCode_startButton] -- add your button handler code here ... + if (buttonThatWasClicked->getToggleState()) + { + activity_icon->SetStatus(IvoxActivityComponent::IDLE); + } + else + { + activity_icon->SetStatus(IvoxActivityComponent::DEAD); + } + //[/UserButtonCode_startButton] + } + + //[UserbuttonClicked_Post] + //[/UserbuttonClicked_Post] +} + + + +//[MiscUserCode] You can add your own definitions of your custom methods or any other code here... +//[/MiscUserCode] + + +//============================================================================== +#if 0 +/* -- Projucer information section -- + + This is where the Projucer stores the metadata that describe this GUI layout, so + make changes in here at your peril! + +BEGIN_JUCER_METADATA + + + + + + + + +END_JUCER_METADATA +*/ +#endif + + +//[EndFile] You can add extra defines here... +//[/EndFile] diff --git a/examples/juce/juceProtoExample/Source/ControlWindow.h b/examples/juce/juceProtoExample/Source/ControlWindow.h old mode 100755 new mode 100644 index 7797223..d05a996 --- a/examples/juce/juceProtoExample/Source/ControlWindow.h +++ b/examples/juce/juceProtoExample/Source/ControlWindow.h @@ -1,72 +1,72 @@ -/* - ============================================================================== - - This is an automatically generated GUI class created by the Projucer! - - Be careful when adding custom code to these files, as only the code within - the "//[xyz]" and "//[/xyz]" sections will be retained when the file is loaded - and re-saved. - - Created with Projucer version: 5.3.2 - - ------------------------------------------------------------------------------ - - The Projucer is part of the JUCE library. - Copyright (c) 2017 - ROLI Ltd. - - ============================================================================== -*/ - -#pragma once - -//[Headers] -- You can add your own extra header files here -- -#include "../JuceLibraryCode/JuceHeader.h" -#include "ivoxActivityComponent.h" -//[/Headers] - - - -//============================================================================== -/** - //[Comments] - An auto-generated component, created by the Projucer. - - Describe your class and how it works here! - //[/Comments] -*/ -class ControlWindow : public Component, - public Button::Listener -{ -public: - //============================================================================== - ControlWindow (); - ~ControlWindow(); - - //============================================================================== - //[UserMethods] -- You can add your own custom methods in this section. - //[/UserMethods] - - void paint (Graphics& g) override; - void resized() override; - void buttonClicked (Button* buttonThatWasClicked) override; - - - -private: - //[UserVariables] -- You can add your own custom variables in this section. - IvoxActivityComponent* activity_icon; - //[/UserVariables] - - //============================================================================== - std::unique_ptr startButton; - std::unique_ptr