Full Code of aregtech/areg-sdk for AI

master 78be212621a2 cached
1112 files
18.1 MB
4.8M tokens
8517 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (19,249K chars total). Download the full file to get everything.
Repository: aregtech/areg-sdk
Branch: master
Commit: 78be212621a2
Files: 1112
Total size: 18.1 MB

Directory structure:
gitextract_3lusol1m/

├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   └── feature_request.md
│   ├── config.yml
│   ├── dependabot.yml
│   ├── pull_request_template.md
│   └── workflows/
│       ├── accessibility-bot.yml
│       ├── cmake.yml
│       ├── codeql-analysis.yml
│       ├── msbuild.yml
│       └── validate-pr.yml
├── .gitignore
├── CMakeLists.txt
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE.txt
├── README.md
├── Releases.md
├── areg-sdk.sln
├── areg.cmake
├── conf/
│   ├── README.md
│   ├── cmake/
│   │   ├── clang.cmake
│   │   ├── common.cmake
│   │   ├── functions.cmake
│   │   ├── gnu.cmake
│   │   ├── install.cmake
│   │   ├── msvc.cmake
│   │   ├── setup.cmake
│   │   └── user.cmake
│   ├── exports/
│   │   ├── areg.pc.in
│   │   ├── aregextend.pc.in
│   │   ├── areglogger.pc.in
│   │   ├── config.cmake.in
│   │   ├── example/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ReadMe.md
│   │   │   ├── example.cpp
│   │   │   └── toolchains/
│   │   │       ├── clang-linux-arm32.cmake
│   │   │       ├── clang-linux-arm64.cmake
│   │   │       ├── clang-linux-x64.cmake
│   │   │       ├── clang-linux-x86.cmake
│   │   │       ├── clang-macos-arm64.cmake
│   │   │       ├── clang-macos-x64.cmake
│   │   │       ├── clang-win-x64.cmake
│   │   │       ├── clang-win-x86.cmake
│   │   │       ├── gnu-linux-arm32.cmake
│   │   │       ├── gnu-linux-arm64.cmake
│   │   │       ├── gnu-linux-x64.cmake
│   │   │       ├── gnu-linux-x86.cmake
│   │   │       ├── msvc-win-x64.cmake
│   │   │       └── msvc-win-x86.cmake
│   │   ├── logcollector.service.in
│   │   ├── logcollector.service.install.bat.in
│   │   ├── logcollector.service.install.sh.in
│   │   ├── logcollector.service.uninstall.bat.in
│   │   ├── logcollector.service.uninstall.sh.in
│   │   ├── mtrouter.service.in
│   │   ├── mtrouter.service.install.bat.in
│   │   ├── mtrouter.service.install.sh.in
│   │   ├── mtrouter.service.uninstall.bat.in
│   │   ├── mtrouter.service.uninstall.sh.in
│   │   ├── tech.areg.logcollector.plist.in
│   │   └── tech.areg.mtrouter.plist.in
│   └── msvc/
│       ├── compile.props
│       ├── project.props
│       ├── project_defaults.props
│       └── user.props
├── docs/
│   ├── DEVELOP.md
│   ├── HOWTO.md
│   ├── HelloService.md
│   ├── HelloService.siml
│   ├── POSIX.md
│   ├── README.md
│   ├── Sample.siml
│   ├── Sample.xsd
│   ├── ServiceInterface.md
│   ├── USECASES.md
│   ├── WIN32.md
│   ├── templates/
│   │   ├── Readme.md
│   │   ├── contributors.yml
│   │   ├── msvc-dynamic-lib.vcxproj
│   │   ├── msvc-dynamic-lib.vcxproj.filters
│   │   ├── msvc-exe.vcxproj
│   │   ├── msvc-exe.vcxproj.filters
│   │   ├── msvc-static-lib.vcxproj
│   │   └── msvc-static-lib.vcxproj.filters
│   └── wiki/
│       ├── 01a-areg-package.md
│       ├── 01b-cmake-build.md
│       ├── 01c-msvc-build.md
│       ├── 01d-wsl-build.md
│       ├── 02a-quick-project-setup.md
│       ├── 02b-cmake-integrate.md
│       ├── 02c-msvc-integrate.md
│       ├── 02d-cmake-config.md
│       ├── 02e-cmake-functions.md
│       ├── 02f-preprocessor-definitions.md
│       ├── 03a-mtrouter.md
│       ├── 04a-logging-config.md
│       ├── 04b-logging-develop.md
│       ├── 04c-logobserver.md
│       ├── 04d-logcollector.md
│       ├── 05a-persistence-syntax.md
│       ├── 06a-areg-sdk-tools.md
│       ├── 06b-code-generator.md
│       ├── 06c-build-lusan.md
│       ├── 06d-setup-lusan.md
│       ├── 06e-lusan-service-interface.md
│       ├── 06f-lusan-live-logging.md
│       ├── 06g-lusan-offline-logging.md
│       ├── 07a-troubleshooting-wsl-update.md
│       ├── 07b-troubleshooting-cmake-linux-builds.md
│       ├── 07c-troubleshooting-integration.md
│       ├── 08a-examples-and-tests.md
│       └── README.md
├── examples/
│   ├── 01_minimalrpc/
│   │   ├── 01_generated.vcxproj
│   │   ├── 01_generated.vcxproj.filters
│   │   ├── 01_minimalrpc.vcxproj
│   │   ├── 01_minimalrpc.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── services/
│   │   │   └── HelloService.siml
│   │   └── src/
│   │       └── main.cpp
│   ├── 02_minimalipc/
│   │   ├── 02_consumeripc.vcxproj
│   │   ├── 02_consumeripc.vcxproj.filters
│   │   ├── 02_generated.vcxproj
│   │   ├── 02_generated.vcxproj.filters
│   │   ├── 02_provideripc.vcxproj
│   │   ├── 02_provideripc.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── services/
│   │   │   └── HelloService.siml
│   │   └── src/
│   │       ├── consumeripc.cpp
│   │       └── provideripc.cpp
│   ├── 03_helloservice/
│   │   ├── 03_clientproc.vcxproj
│   │   ├── 03_clientproc.vcxproj.filters
│   │   ├── 03_generated.vcxproj
│   │   ├── 03_generated.vcxproj.filters
│   │   ├── 03_onethread.vcxproj
│   │   ├── 03_onethread.vcxproj.filters
│   │   ├── 03_serviceproc.vcxproj
│   │   ├── 03_serviceproc.vcxproj.filters
│   │   ├── 03_twothreads.vcxproj
│   │   ├── 03_twothreads.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── common/
│   │   │   └── src/
│   │   │       ├── ClientComponent.cpp
│   │   │       ├── ClientComponent.hpp
│   │   │       ├── ServiceComponent.cpp
│   │   │       └── ServiceComponent.hpp
│   │   ├── multiprocess/
│   │   │   ├── clientproc/
│   │   │   │   └── src/
│   │   │   │       └── main.cpp
│   │   │   └── serviceproc/
│   │   │       └── src/
│   │   │           └── main.cpp
│   │   ├── onethread/
│   │   │   └── src/
│   │   │       └── main.cpp
│   │   ├── services/
│   │   │   └── HelloService.siml
│   │   └── twothreads/
│   │       └── src/
│   │           └── main.cpp
│   ├── 04_hellothread/
│   │   ├── 04_hellothread.vcxproj
│   │   ├── 04_hellothread.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   └── src/
│   │       └── main.cpp
│   ├── 05_buffer/
│   │   ├── 05_buffer.vcxproj
│   │   ├── 05_buffer.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   └── src/
│   │       └── main.cpp
│   ├── 06_file/
│   │   ├── 06_file.vcxproj
│   │   ├── 06_file.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   └── src/
│   │       └── main.cpp
│   ├── 07_logging/
│   │   ├── 07_logging.vcxproj
│   │   ├── 07_logging.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   └── src/
│   │       └── main.cpp
│   ├── 08_timer/
│   │   ├── 08_timer.vcxproj
│   │   ├── 08_timer.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   └── src/
│   │       └── main.cpp
│   ├── 09_threads/
│   │   ├── 09_threads.vcxproj
│   │   ├── 09_threads.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   └── src/
│   │       └── main.cpp
│   ├── 10_sync/
│   │   ├── 10_sync.vcxproj
│   │   ├── 10_sync.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   └── src/
│   │       └── main.cpp
│   ├── 11_service/
│   │   ├── 11_service.vcxproj
│   │   ├── 11_service.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   └── src/
│   │       ├── ServicingComponent.cpp
│   │       ├── ServicingComponent.hpp
│   │       └── main.cpp
│   ├── 12_svcmulti/
│   │   ├── 12_svcmulti.vcxproj
│   │   ├── 12_svcmulti.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   └── src/
│   │       ├── ServicingComponent.cpp
│   │       ├── ServicingComponent.hpp
│   │       └── main.cpp
│   ├── 13_locsvc/
│   │   ├── 13_generated.vcxproj
│   │   ├── 13_generated.vcxproj.filters
│   │   ├── 13_locservice.vcxproj
│   │   ├── 13_locservice.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── locservice/
│   │   │   └── src/
│   │   │       ├── ServiceClient.cpp
│   │   │       ├── ServiceClient.hpp
│   │   │       ├── ServicingComponent.cpp
│   │   │       ├── ServicingComponent.hpp
│   │   │       └── main.cpp
│   │   └── services/
│   │       └── HelloWorld.siml
│   ├── 14_locmesh/
│   │   ├── 14_generated.vcxproj
│   │   ├── 14_generated.vcxproj.filters
│   │   ├── 14_localmesh.vcxproj
│   │   ├── 14_localmesh.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── locsvcmesh/
│   │   │   └── src/
│   │   │       ├── ClientComponent.cpp
│   │   │       ├── ClientComponent.hpp
│   │   │       ├── ServiceClient.cpp
│   │   │       ├── ServiceClient.hpp
│   │   │       ├── ServiceHelloWorld.cpp
│   │   │       ├── ServiceHelloWorld.hpp
│   │   │       ├── ServicingComponents.cpp
│   │   │       ├── ServicingComponents.hpp
│   │   │       └── main.cpp
│   │   └── services/
│   │       └── HelloWorld.siml
│   ├── 15_pubsvc/
│   │   ├── 15_generated.vcxproj
│   │   ├── 15_generated.vcxproj.filters
│   │   ├── 15_pubclient.vcxproj
│   │   ├── 15_pubclient.vcxproj.filters
│   │   ├── 15_pubservice.vcxproj
│   │   ├── 15_pubservice.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── pubclient/
│   │   │   └── src/
│   │   │       ├── ServiceClient.cpp
│   │   │       ├── ServiceClient.hpp
│   │   │       └── main.cpp
│   │   ├── pubservice/
│   │   │   └── src/
│   │   │       ├── ServicingComponent.cpp
│   │   │       ├── ServicingComponent.hpp
│   │   │       └── main.cpp
│   │   └── services/
│   │       └── HelloWorld.siml
│   ├── 16_pubmesh/
│   │   ├── 16_common.vcxproj
│   │   ├── 16_common.vcxproj.filters
│   │   ├── 16_generated.vcxproj
│   │   ├── 16_generated.vcxproj.filters
│   │   ├── 16_pubclients.vcxproj
│   │   ├── 16_pubclients.vcxproj.filters
│   │   ├── 16_pubservice.vcxproj
│   │   ├── 16_pubservice.vcxproj.filters
│   │   ├── 16_pubsvcmesh.vcxproj
│   │   ├── 16_pubsvcmesh.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── common/
│   │   │   └── src/
│   │   │       ├── LocalHelloWorldClient.cpp
│   │   │       ├── LocalHelloWorldClient.hpp
│   │   │       ├── LocalHelloWorldService.cpp
│   │   │       ├── LocalHelloWorldService.hpp
│   │   │       ├── NECommon.hpp
│   │   │       ├── PublicHelloWorldClient.cpp
│   │   │       ├── PublicHelloWorldClient.hpp
│   │   │       ├── PublicHelloWorldService.cpp
│   │   │       └── PublicHelloWorldService.hpp
│   │   ├── pubclients/
│   │   │   └── src/
│   │   │       └── main.cpp
│   │   ├── pubservice/
│   │   │   └── src/
│   │   │       ├── PublicServiceComponent.cpp
│   │   │       ├── PublicServiceComponent.hpp
│   │   │       └── main.cpp
│   │   ├── pubsvcmesh/
│   │   │   └── src/
│   │   │       └── main.cpp
│   │   └── services/
│   │       ├── LocalHelloWorld.siml
│   │       ├── PublicHelloWorld.siml
│   │       └── SystemShutdown.siml
│   ├── 17_pubtraffic/
│   │   ├── 17_generated.vcxproj
│   │   ├── 17_generated.vcxproj.filters
│   │   ├── 17_pubclient.vcxproj
│   │   ├── 17_pubclient.vcxproj.filters
│   │   ├── 17_pubservice.vcxproj
│   │   ├── 17_pubservice.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── common/
│   │   │   └── NECommon.hpp
│   │   ├── pubclient/
│   │   │   └── src/
│   │   │       ├── TrafficLightClient.cpp
│   │   │       ├── TrafficLightClient.hpp
│   │   │       └── main.cpp
│   │   ├── pubservice/
│   │   │   └── src/
│   │   │       ├── TrafficLightService.cpp
│   │   │       ├── TrafficLightService.hpp
│   │   │       └── main.cpp
│   │   └── services/
│   │       └── SimpleTrafficLight.siml
│   ├── 18_pubworker/
│   │   ├── 18_common.vcxproj
│   │   ├── 18_common.vcxproj.filters
│   │   ├── 18_generated.vcxproj
│   │   ├── 18_generated.vcxproj.filters
│   │   ├── 18_pubclient.vcxproj
│   │   ├── 18_pubclient.vcxproj.filters
│   │   ├── 18_pubservice.vcxproj
│   │   ├── 18_pubservice.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── common/
│   │   │   ├── NECommon.hpp
│   │   │   └── PatientInfoEvent.hpp
│   │   ├── pubclient/
│   │   │   └── src/
│   │   │       ├── HardwareWorkerConsumer.cpp
│   │   │       ├── HardwareWorkerConsumer.hpp
│   │   │       ├── PatientClient.cpp
│   │   │       ├── PatientClient.hpp
│   │   │       └── main.cpp
│   │   ├── pubservice/
│   │   │   └── src/
│   │   │       ├── PatientService.cpp
│   │   │       ├── PatientService.hpp
│   │   │       ├── PatientServiceWorkerConsumer.cpp
│   │   │       ├── PatientServiceWorkerConsumer.hpp
│   │   │       └── main.cpp
│   │   └── services/
│   │       └── PatientInformation.siml
│   ├── 19_pubfsm/
│   │   ├── 19_generated.vcxproj
│   │   ├── 19_generated.vcxproj.filters
│   │   ├── 19_pubclient.vcxproj
│   │   ├── 19_pubclient.vcxproj.filters
│   │   ├── 19_pubservice.vcxproj
│   │   ├── 19_pubservice.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── common/
│   │   │   └── NECommon.hpp
│   │   ├── pubclient/
│   │   │   └── src/
│   │   │       ├── TrafficLightClient.cpp
│   │   │       ├── TrafficLightClient.hpp
│   │   │       └── main.cpp
│   │   ├── pubservice/
│   │   │   └── src/
│   │   │       ├── IETrafficLightActionHandler.cpp
│   │   │       ├── IETrafficLightActionHandler.hpp
│   │   │       ├── NETrafficLightFSM.cpp
│   │   │       ├── NETrafficLightFSM.hpp
│   │   │       ├── PowerControllerClient.cpp
│   │   │       ├── PowerControllerClient.hpp
│   │   │       ├── TrafficLightFSM.cpp
│   │   │       ├── TrafficLightFSM.hpp
│   │   │       ├── TrafficLightService.cpp
│   │   │       ├── TrafficLightService.hpp
│   │   │       └── main.cpp
│   │   └── services/
│   │       ├── PowerManager.siml
│   │       └── TrafficController.siml
│   ├── 20_winchat/
│   │   ├── 20_chatter.vcxproj
│   │   ├── 20_chatter.vcxproj.filters
│   │   ├── 20_generated.vcxproj
│   │   ├── 20_generated.vcxproj.filters
│   │   ├── 20_register.vcxproj
│   │   ├── 20_register.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── chatter/
│   │   │   ├── DistrbutedApp.cpp
│   │   │   ├── DistrbutedApp.hpp
│   │   │   ├── NEDistributedApp.cpp
│   │   │   ├── NEDistributedApp.hpp
│   │   │   ├── res/
│   │   │   │   ├── chatter.rc
│   │   │   │   ├── chatter.rc2
│   │   │   │   ├── resource.h
│   │   │   │   ├── stdafx.cpp
│   │   │   │   ├── stdafx.h
│   │   │   │   └── targetver.h
│   │   │   ├── services/
│   │   │   │   ├── CentralMessaging.cpp
│   │   │   │   ├── CentralMessaging.hpp
│   │   │   │   ├── ChatParticipantService.cpp
│   │   │   │   ├── ChatParticipantService.hpp
│   │   │   │   ├── ChatPrticipantHandler.cpp
│   │   │   │   ├── ChatPrticipantHandler.hpp
│   │   │   │   ├── ConnectionHandler.cpp
│   │   │   │   ├── ConnectionHandler.hpp
│   │   │   │   ├── ConnectionList.cpp
│   │   │   │   ├── ConnectionList.hpp
│   │   │   │   ├── ConnectionService.cpp
│   │   │   │   ├── ConnectionService.hpp
│   │   │   │   ├── DirectChatService.cpp
│   │   │   │   ├── DirectChatService.hpp
│   │   │   │   ├── DirectConnectionClient.cpp
│   │   │   │   ├── DirectConnectionClient.hpp
│   │   │   │   ├── DirectConnectionService.cpp
│   │   │   │   ├── DirectConnectionService.hpp
│   │   │   │   ├── DirectMessagingClient.cpp
│   │   │   │   ├── DirectMessagingClient.hpp
│   │   │   │   ├── NetworkSetup.cpp
│   │   │   │   └── NetworkSetup.hpp
│   │   │   └── ui/
│   │   │       ├── DistributedDialog.cpp
│   │   │       ├── DistributedDialog.hpp
│   │   │       ├── PageChat.cpp
│   │   │       ├── PageChat.hpp
│   │   │       ├── PageConnections.cpp
│   │   │       ├── PageConnections.hpp
│   │   │       ├── PageMessaging.cpp
│   │   │       ├── PageMessaging.hpp
│   │   │       ├── PageNetworkSetup.cpp
│   │   │       └── PageNetworkSetup.hpp
│   │   ├── common/
│   │   │   └── NECommon.hpp
│   │   ├── register/
│   │   │   ├── CentralApp.cpp
│   │   │   ├── CentralApp.hpp
│   │   │   ├── NECentralApp.cpp
│   │   │   ├── NECentralApp.hpp
│   │   │   ├── res/
│   │   │   │   ├── register.rc
│   │   │   │   ├── register.rc2
│   │   │   │   ├── resource.h
│   │   │   │   ├── stdafx.cpp
│   │   │   │   ├── stdafx.h
│   │   │   │   └── targetver.h
│   │   │   ├── services/
│   │   │   │   ├── ConnectionManager.cpp
│   │   │   │   └── ConnectionManager.hpp
│   │   │   └── ui/
│   │   │       ├── CentralDialog.cpp
│   │   │       ├── CentralDialog.hpp
│   │   │       ├── PageBrokerSetup.cpp
│   │   │       ├── PageBrokerSetup.hpp
│   │   │       ├── PageConnections.cpp
│   │   │       └── PageConnections.hpp
│   │   └── services/
│   │       ├── CentralMessager.siml
│   │       ├── ConnectionManager.siml
│   │       ├── DirectConnection.siml
│   │       └── DirectMessager.siml
│   ├── 21_locwatchdog/
│   │   ├── 21_generated.vcxproj
│   │   ├── 21_generated.vcxproj.filters
│   │   ├── 21_locservice.vcxproj
│   │   ├── 21_locservice.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── locservice/
│   │   │   └── src/
│   │   │       ├── ServiceClient.cpp
│   │   │       ├── ServiceClient.hpp
│   │   │       ├── ServicingComponent.cpp
│   │   │       ├── ServicingComponent.hpp
│   │   │       └── main.cpp
│   │   └── services/
│   │       └── HelloWatchdog.siml
│   ├── 22_pubwatchdog/
│   │   ├── 22_generated.vcxproj
│   │   ├── 22_generated.vcxproj.filters
│   │   ├── 22_pubclient.vcxproj
│   │   ├── 22_pubclient.vcxproj.filters
│   │   ├── 22_pubservice.vcxproj
│   │   ├── 22_pubservice.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── common/
│   │   │   └── NECommon.hpp
│   │   ├── pubclient/
│   │   │   └── src/
│   │   │       ├── ServiceClient.cpp
│   │   │       ├── ServiceClient.hpp
│   │   │       └── main.cpp
│   │   ├── pubservice/
│   │   │   └── src/
│   │   │       ├── ServicingComponent.cpp
│   │   │       ├── ServicingComponent.hpp
│   │   │       └── main.cpp
│   │   └── services/
│   │       └── HelloWatchdog.siml
│   ├── 23_pubdatarate/
│   │   ├── 23_generated.vcxproj
│   │   ├── 23_generated.vcxproj.filters
│   │   ├── 23_pubclient.vcxproj
│   │   ├── 23_pubclient.vcxproj.filters
│   │   ├── 23_pubservice.vcxproj
│   │   ├── 23_pubservice.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── common/
│   │   │   ├── NELargeData.hpp
│   │   │   └── SimpleBitmap.hpp
│   │   ├── pubclient/
│   │   │   └── src/
│   │   │       ├── ServiceClient.cpp
│   │   │       ├── ServiceClient.hpp
│   │   │       └── main.cpp
│   │   ├── pubservice/
│   │   │   └── src/
│   │   │       ├── NEUtilities.cpp
│   │   │       ├── NEUtilities.hpp
│   │   │       ├── ServicingComponent.cpp
│   │   │       ├── ServicingComponent.hpp
│   │   │       └── main.cpp
│   │   └── services/
│   │       └── LargeData.siml
│   ├── 24_pubunblock/
│   │   ├── 24_generated.vcxproj
│   │   ├── 24_generated.vcxproj.filters
│   │   ├── 24_pubclient.vcxproj
│   │   ├── 24_pubclient.vcxproj.filters
│   │   ├── 24_pubservice.vcxproj
│   │   ├── 24_pubservice.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── pubclient/
│   │   │   └── src/
│   │   │       ├── ServiceClient.cpp
│   │   │       ├── ServiceClient.hpp
│   │   │       └── main.cpp
│   │   ├── pubservice/
│   │   │   └── src/
│   │   │       ├── ServiceComponent.cpp
│   │   │       ├── ServiceComponent.hpp
│   │   │       └── main.cpp
│   │   └── services/
│   │       └── HelloUnblock.siml
│   ├── 25_pubsub/
│   │   ├── 25_generated.vcxproj
│   │   ├── 25_generated.vcxproj.filters
│   │   ├── 25_publisher.vcxproj
│   │   ├── 25_publisher.vcxproj.filters
│   │   ├── 25_subscriber.vcxproj
│   │   ├── 25_subscriber.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── publisher/
│   │   │   └── src/
│   │   │       ├── Publisher.cpp
│   │   │       ├── Publisher.hpp
│   │   │       └── main.cpp
│   │   ├── services/
│   │   │   └── PubSub.siml
│   │   └── subscriber/
│   │       └── src/
│   │           ├── Subscriber.cpp
│   │           ├── Subscriber.hpp
│   │           └── main.cpp
│   ├── 26_pubsubmix/
│   │   ├── 26_common.vcxproj
│   │   ├── 26_common.vcxproj.filters
│   │   ├── 26_generated.vcxproj
│   │   ├── 26_generated.vcxproj.filters
│   │   ├── 26_pubsubctrl.vcxproj
│   │   ├── 26_pubsubctrl.vcxproj.filters
│   │   ├── 26_pubsubdyn.vcxproj
│   │   ├── 26_pubsubdyn.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── common/
│   │   │   └── src/
│   │   │       ├── NECommon.cpp
│   │   │       ├── NECommon.hpp
│   │   │       ├── PubSubMixed.cpp
│   │   │       ├── PubSubMixed.hpp
│   │   │       ├── Publisher.cpp
│   │   │       ├── Publisher.hpp
│   │   │       ├── Subscriber.cpp
│   │   │       └── Subscriber.hpp
│   │   ├── pubsubctrl/
│   │   │   └── src/
│   │   │       ├── PubSubController.cpp
│   │   │       ├── PubSubController.hpp
│   │   │       └── main.cpp
│   │   ├── pubsubdyn/
│   │   │   └── src/
│   │   │       └── main.cpp
│   │   └── services/
│   │       └── PubSubMix.siml
│   ├── 27_pubsubmulti/
│   │   ├── 27_generated.vcxproj
│   │   ├── 27_generated.vcxproj.filters
│   │   ├── 27_publisher.vcxproj
│   │   ├── 27_publisher.vcxproj.filters
│   │   ├── 27_subscribermulti.vcxproj
│   │   ├── 27_subscribermulti.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── publisher/
│   │   │   └── src/
│   │   │       ├── Publisher.cpp
│   │   │       ├── Publisher.hpp
│   │   │       └── main.cpp
│   │   ├── services/
│   │   │   └── PubSub.siml
│   │   └── subscribermulti/
│   │       └── src/
│   │           ├── NECommon.hpp
│   │           ├── Subscriber.cpp
│   │           ├── Subscriber.hpp
│   │           ├── SubscriberBase.cpp
│   │           ├── SubscriberBase.hpp
│   │           ├── SubscriberSecond.cpp
│   │           ├── SubscriberSecond.hpp
│   │           └── main.cpp
│   ├── 28_stlsync/
│   │   ├── 28_stlsync.vcxproj
│   │   ├── 28_stlsync.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   └── src/
│   │       └── main.cpp
│   ├── 29_syncevent/
│   │   ├── 29_syncevent.vcxproj
│   │   ├── 29_syncevent.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   └── src/
│   │       └── main.cpp
│   ├── CMakeLists.txt
│   ├── README.md
│   ├── dummy/
│   │   ├── dummy.cpp
│   │   ├── dummy.vcxproj
│   │   └── dummy.vcxproj.filters
│   └── examples_generate.bat
├── framework/
│   ├── CMakeLists.txt
│   ├── README.md
│   ├── areg/
│   │   ├── CMakeLists.txt
│   │   ├── Readme.md
│   │   ├── appbase/
│   │   │   ├── Application.hpp
│   │   │   ├── NEApplication.hpp
│   │   │   └── private/
│   │   │       ├── Application.cpp
│   │   │       ├── CMakeLists.txt
│   │   │       ├── NEApplication.cpp
│   │   │       ├── configure.cpp
│   │   │       ├── configure.hpp
│   │   │       ├── posix/
│   │   │       │   └── ApplicationPosix.cpp
│   │   │       └── win32/
│   │   │           └── ApplicationWin32.cpp
│   │   ├── base/
│   │   │   ├── BufferStreamBase.hpp
│   │   │   ├── Containers.hpp
│   │   │   ├── DateTime.hpp
│   │   │   ├── File.hpp
│   │   │   ├── FileBase.hpp
│   │   │   ├── FileBuffer.hpp
│   │   │   ├── GEGlobal.h
│   │   │   ├── GEMacros.h
│   │   │   ├── GESwitches.h
│   │   │   ├── GETypes.h
│   │   │   ├── IEByteBuffer.hpp
│   │   │   ├── IECursorPosition.hpp
│   │   │   ├── IEGenericObject.hpp
│   │   │   ├── IEIOStream.hpp
│   │   │   ├── IESyncObject.hpp
│   │   │   ├── IEThreadConsumer.hpp
│   │   │   ├── Identifier.hpp
│   │   │   ├── NECommon.hpp
│   │   │   ├── NEMath.hpp
│   │   │   ├── NEMemory.hpp
│   │   │   ├── NESocket.hpp
│   │   │   ├── NEString.hpp
│   │   │   ├── NEUtilities.hpp
│   │   │   ├── Object.hpp
│   │   │   ├── Process.hpp
│   │   │   ├── RemoteMessage.hpp
│   │   │   ├── RuntimeClassID.hpp
│   │   │   ├── RuntimeObject.hpp
│   │   │   ├── SharedBuffer.hpp
│   │   │   ├── Socket.hpp
│   │   │   ├── SocketAccepted.hpp
│   │   │   ├── SocketClient.hpp
│   │   │   ├── SocketServer.hpp
│   │   │   ├── String.hpp
│   │   │   ├── SyncObjects.hpp
│   │   │   ├── TEArrayList.hpp
│   │   │   ├── TEFixedArray.hpp
│   │   │   ├── TEHashMap.hpp
│   │   │   ├── TELinkedList.hpp
│   │   │   ├── TEMap.hpp
│   │   │   ├── TEProperty.hpp
│   │   │   ├── TEResourceListMap.hpp
│   │   │   ├── TEResourceMap.hpp
│   │   │   ├── TERingStack.hpp
│   │   │   ├── TERuntimeResourceMap.hpp
│   │   │   ├── TESortedLinkedList.hpp
│   │   │   ├── TEStack.hpp
│   │   │   ├── TEString.hpp
│   │   │   ├── TETemplateBase.hpp
│   │   │   ├── Thread.hpp
│   │   │   ├── ThreadAddress.hpp
│   │   │   ├── ThreadLocalStorage.hpp
│   │   │   ├── Version.hpp
│   │   │   ├── WideString.hpp
│   │   │   └── private/
│   │   │       ├── BufferPosition.cpp
│   │   │       ├── BufferPosition.hpp
│   │   │       ├── BufferStreamBase.cpp
│   │   │       ├── CMakeLists.txt
│   │   │       ├── Containers.cpp
│   │   │       ├── DateTime.cpp
│   │   │       ├── File.cpp
│   │   │       ├── FileBase.cpp
│   │   │       ├── FileBuffer.cpp
│   │   │       ├── GEGlobal.cpp
│   │   │       ├── IEByteBuffer.cpp
│   │   │       ├── IECursorPosition.cpp
│   │   │       ├── IEGenericObject.cpp
│   │   │       ├── IEIOStream.cpp
│   │   │       ├── IESyncObject.cpp
│   │   │       ├── IEThreadConsumer.cpp
│   │   │       ├── Identifier.cpp
│   │   │       ├── NECommon.cpp
│   │   │       ├── NEDebug.cpp
│   │   │       ├── NEDebug.hpp
│   │   │       ├── NEMath.cpp
│   │   │       ├── NEMemory.cpp
│   │   │       ├── NESocket.cpp
│   │   │       ├── NEString.cpp
│   │   │       ├── NEUtilities.cpp
│   │   │       ├── Object.cpp
│   │   │       ├── Process.cpp
│   │   │       ├── ReadConverter.cpp
│   │   │       ├── ReadConverter.hpp
│   │   │       ├── RemoteMessage.cpp
│   │   │       ├── RuntimeBase.cpp
│   │   │       ├── RuntimeBase.hpp
│   │   │       ├── RuntimeClassID.cpp
│   │   │       ├── RuntimeObject.cpp
│   │   │       ├── SharedBuffer.cpp
│   │   │       ├── Socket.cpp
│   │   │       ├── SocketAccepted.cpp
│   │   │       ├── SocketClient.cpp
│   │   │       ├── SocketServer.cpp
│   │   │       ├── String.cpp
│   │   │       ├── SyncObjects.cpp
│   │   │       ├── Thread.cpp
│   │   │       ├── ThreadAddress.cpp
│   │   │       ├── ThreadLocalStorage.cpp
│   │   │       ├── Version.cpp
│   │   │       ├── WideString.cpp
│   │   │       ├── WriteConverter.cpp
│   │   │       ├── WriteConverter.hpp
│   │   │       ├── posix/
│   │   │       │   ├── CMakeLists.txt
│   │   │       │   ├── CriticalSectionIX.cpp
│   │   │       │   ├── CriticalSectionIX.hpp
│   │   │       │   ├── FilePosix.cpp
│   │   │       │   ├── IESyncObjectBaseIX.cpp
│   │   │       │   ├── IESyncObjectBaseIX.hpp
│   │   │       │   ├── IEWaitableBaseIX.cpp
│   │   │       │   ├── IEWaitableBaseIX.hpp
│   │   │       │   ├── MutexIX.cpp
│   │   │       │   ├── MutexIX.hpp
│   │   │       │   ├── NEDebugPosix.cpp
│   │   │       │   ├── NESocketPosix.cpp
│   │   │       │   ├── NESyncTypesIX.hpp
│   │   │       │   ├── NEUtilitiesPosix.cpp
│   │   │       │   ├── ProcessPosix.cpp
│   │   │       │   ├── SpinLockIX.cpp
│   │   │       │   ├── SpinLockIX.hpp
│   │   │       │   ├── SyncLockAndWaitIX.cpp
│   │   │       │   ├── SyncLockAndWaitIX.hpp
│   │   │       │   ├── SyncObjectsPosix.cpp
│   │   │       │   ├── ThreadPosix.cpp
│   │   │       │   ├── WaitableEventIX.cpp
│   │   │       │   ├── WaitableEventIX.hpp
│   │   │       │   ├── WaitableMutexIX.cpp
│   │   │       │   ├── WaitableMutexIX.hpp
│   │   │       │   ├── WaitableSemaphoreIX.cpp
│   │   │       │   ├── WaitableSemaphoreIX.hpp
│   │   │       │   ├── WaitableTimerIX.cpp
│   │   │       │   └── WaitableTimerIX.hpp
│   │   │       └── win32/
│   │   │           ├── CMakeLists.txt
│   │   │           ├── FileWin32.cpp
│   │   │           ├── NEDebugWin32.cpp
│   │   │           ├── NESocketWin32.cpp
│   │   │           ├── NEUtilitiesWin32.cpp
│   │   │           ├── ProcessWin32.cpp
│   │   │           ├── SpinLockWin32.cpp
│   │   │           ├── SpinLockWin32.hpp
│   │   │           ├── SyncObjectsWin32.cpp
│   │   │           └── ThreadWin32.cpp
│   │   ├── component/
│   │   │   ├── Channel.hpp
│   │   │   ├── Component.hpp
│   │   │   ├── ComponentAddress.hpp
│   │   │   ├── ComponentLoader.hpp
│   │   │   ├── ComponentThread.hpp
│   │   │   ├── DispatcherThread.hpp
│   │   │   ├── Event.hpp
│   │   │   ├── EventData.hpp
│   │   │   ├── EventDataStream.hpp
│   │   │   ├── EventDispatcher.hpp
│   │   │   ├── IEEventConsumer.hpp
│   │   │   ├── IEEventRouter.hpp
│   │   │   ├── IEProxyListener.hpp
│   │   │   ├── IERemoteEventConsumer.hpp
│   │   │   ├── IETimerConsumer.hpp
│   │   │   ├── IEWorkerThreadConsumer.hpp
│   │   │   ├── NERegistry.hpp
│   │   │   ├── NEService.hpp
│   │   │   ├── NotificationEvent.hpp
│   │   │   ├── ProxyAddress.hpp
│   │   │   ├── ProxyBase.hpp
│   │   │   ├── ProxyEvent.hpp
│   │   │   ├── RemoteEventFactory.hpp
│   │   │   ├── RequestEvents.hpp
│   │   │   ├── ResponseEvents.hpp
│   │   │   ├── ServiceAddress.hpp
│   │   │   ├── ServiceItem.hpp
│   │   │   ├── ServiceRequestEvent.hpp
│   │   │   ├── ServiceResponseEvent.hpp
│   │   │   ├── StreamableEvent.hpp
│   │   │   ├── StubAddress.hpp
│   │   │   ├── StubBase.hpp
│   │   │   ├── StubEvent.hpp
│   │   │   ├── TEEvent.hpp
│   │   │   ├── Timer.hpp
│   │   │   ├── TimerBase.hpp
│   │   │   ├── WorkerThread.hpp
│   │   │   └── private/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── Channel.cpp
│   │   │       ├── ClientInfo.cpp
│   │   │       ├── ClientInfo.hpp
│   │   │       ├── ClientList.cpp
│   │   │       ├── ClientList.hpp
│   │   │       ├── Component.cpp
│   │   │       ├── ComponentAddress.cpp
│   │   │       ├── ComponentInfo.cpp
│   │   │       ├── ComponentInfo.hpp
│   │   │       ├── ComponentLoader.cpp
│   │   │       ├── ComponentThread.cpp
│   │   │       ├── DispatcherThread.cpp
│   │   │       ├── Event.cpp
│   │   │       ├── EventConsumerMap.cpp
│   │   │       ├── EventConsumerMap.hpp
│   │   │       ├── EventData.cpp
│   │   │       ├── EventDataStream.cpp
│   │   │       ├── EventDispatcher.cpp
│   │   │       ├── EventDispatcherBase.cpp
│   │   │       ├── EventDispatcherBase.hpp
│   │   │       ├── EventQueue.cpp
│   │   │       ├── EventQueue.hpp
│   │   │       ├── ExitEvent.cpp
│   │   │       ├── ExitEvent.hpp
│   │   │       ├── IEEventConsumer.cpp
│   │   │       ├── IEEventDispatcher.cpp
│   │   │       ├── IEEventDispatcher.hpp
│   │   │       ├── IEEventRouter.cpp
│   │   │       ├── IEProxyListener.cpp
│   │   │       ├── IEQueueListener.cpp
│   │   │       ├── IEQueueListener.hpp
│   │   │       ├── IERemoteEventConsumer.cpp
│   │   │       ├── IETimerConsumer.cpp
│   │   │       ├── IEWorkerThreadConsumer.cpp
│   │   │       ├── NERegistry.cpp
│   │   │       ├── NEService.cpp
│   │   │       ├── NotificationEvent.cpp
│   │   │       ├── ProxyAddress.cpp
│   │   │       ├── ProxyBase.cpp
│   │   │       ├── ProxyConnectEvent.cpp
│   │   │       ├── ProxyConnectEvent.hpp
│   │   │       ├── ProxyEvent.cpp
│   │   │       ├── RemoteEventFactory.cpp
│   │   │       ├── RequestEvents.cpp
│   │   │       ├── ResponseEvents.cpp
│   │   │       ├── ServerInfo.cpp
│   │   │       ├── ServerInfo.hpp
│   │   │       ├── ServerList.cpp
│   │   │       ├── ServerList.hpp
│   │   │       ├── ServiceAddress.cpp
│   │   │       ├── ServiceItem.cpp
│   │   │       ├── ServiceManager.cpp
│   │   │       ├── ServiceManager.hpp
│   │   │       ├── ServiceManagerEventProcessor.cpp
│   │   │       ├── ServiceManagerEventProcessor.hpp
│   │   │       ├── ServiceManagerEvents.cpp
│   │   │       ├── ServiceManagerEvents.hpp
│   │   │       ├── ServiceRequestEvent.cpp
│   │   │       ├── ServiceResponseEvent.cpp
│   │   │       ├── SortedEventStack.cpp
│   │   │       ├── SortedEventStack.hpp
│   │   │       ├── StreamableEvent.cpp
│   │   │       ├── StubAddress.cpp
│   │   │       ├── StubBase.cpp
│   │   │       ├── StubConnectEvent.cpp
│   │   │       ├── StubConnectEvent.hpp
│   │   │       ├── StubEvent.cpp
│   │   │       ├── TEEvent.cpp
│   │   │       ├── Timer.cpp
│   │   │       ├── TimerBase.cpp
│   │   │       ├── TimerEventData.cpp
│   │   │       ├── TimerEventData.hpp
│   │   │       ├── TimerManager.cpp
│   │   │       ├── TimerManager.hpp
│   │   │       ├── TimerManagerBase.cpp
│   │   │       ├── TimerManagerBase.hpp
│   │   │       ├── TimerManagerEvent.cpp
│   │   │       ├── TimerManagerEvent.hpp
│   │   │       ├── Watchdog.cpp
│   │   │       ├── Watchdog.hpp
│   │   │       ├── WatchdogManager.cpp
│   │   │       ├── WatchdogManager.hpp
│   │   │       ├── WorkerThread.cpp
│   │   │       ├── posix/
│   │   │       │   ├── CMakeLists.txt
│   │   │       │   ├── TimerBasePosix.cpp
│   │   │       │   ├── TimerManagerPosix.cpp
│   │   │       │   ├── TimerPosix.cpp
│   │   │       │   ├── TimerPosix.hpp
│   │   │       │   └── WatchdogManagerPosix.cpp
│   │   │       └── win32/
│   │   │           ├── CMakeLists.txt
│   │   │           ├── TimerBaseWin32.cpp
│   │   │           ├── TimerManagerWin32.cpp
│   │   │           └── WatchdogManagerWin32.cpp
│   │   ├── ipc/
│   │   │   ├── ClientConnection.hpp
│   │   │   ├── ConnectionConfiguration.hpp
│   │   │   ├── IERemoteMessageHandler.hpp
│   │   │   ├── IEServiceConnectionConsumer.hpp
│   │   │   ├── IEServiceConnectionProvider.hpp
│   │   │   ├── IEServiceRegisterConsumer.hpp
│   │   │   ├── IEServiceRegisterProvider.hpp
│   │   │   ├── NERemoteService.hpp
│   │   │   ├── SendMessageEvent.hpp
│   │   │   ├── ServerConnectionBase.hpp
│   │   │   ├── ServiceClientConnectionBase.hpp
│   │   │   ├── ServiceEvent.hpp
│   │   │   ├── ServiceEventConsumerBase.hpp
│   │   │   ├── SocketConnectionBase.hpp
│   │   │   └── private/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── ClientConnection.cpp
│   │   │       ├── ClientReceiveThread.cpp
│   │   │       ├── ClientReceiveThread.hpp
│   │   │       ├── ClientSendThread.cpp
│   │   │       ├── ClientSendThread.hpp
│   │   │       ├── ConnectionConfiguration.cpp
│   │   │       ├── IERemoteMessageHandler.cpp
│   │   │       ├── IEServiceConnectionConsumer.cpp
│   │   │       ├── IEServiceConnectionProvider.cpp
│   │   │       ├── IEServiceRegisterConsumer.cpp
│   │   │       ├── IEServiceRegisterProvider.cpp
│   │   │       ├── NEConnection.cpp
│   │   │       ├── NEConnection.hpp
│   │   │       ├── NERemoteService.cpp
│   │   │       ├── RouterClient.cpp
│   │   │       ├── RouterClient.hpp
│   │   │       ├── SendMessageEvent.cpp
│   │   │       ├── ServerConnectionBase.cpp
│   │   │       ├── ServiceClientConnectionBase.cpp
│   │   │       ├── ServiceEvent.cpp
│   │   │       ├── ServiceEventConsumerBase.cpp
│   │   │       └── SocketConnectionBase.cpp
│   │   ├── logging/
│   │   │   ├── GELog.h
│   │   │   ├── IELogDatabaseEngine.hpp
│   │   │   ├── LogConfiguration.hpp
│   │   │   ├── LogScope.hpp
│   │   │   ├── NELogging.hpp
│   │   │   ├── ScopeMessage.hpp
│   │   │   └── private/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── DatabaseLogger.cpp
│   │   │       ├── DatabaseLogger.hpp
│   │   │       ├── DebugOutputLogger.cpp
│   │   │       ├── DebugOutputLogger.hpp
│   │   │       ├── FileLogger.cpp
│   │   │       ├── FileLogger.hpp
│   │   │       ├── IELogDatabaseEngine.cpp
│   │   │       ├── LayoutManager.cpp
│   │   │       ├── LayoutManager.hpp
│   │   │       ├── Layouts.cpp
│   │   │       ├── Layouts.hpp
│   │   │       ├── LogConfiguration.cpp
│   │   │       ├── LogEventProcessor.cpp
│   │   │       ├── LogEventProcessor.hpp
│   │   │       ├── LogManager.cpp
│   │   │       ├── LogManager.hpp
│   │   │       ├── LogMessage.cpp
│   │   │       ├── LogMessage.hpp
│   │   │       ├── LogScope.cpp
│   │   │       ├── LoggerBase.cpp
│   │   │       ├── LoggerBase.hpp
│   │   │       ├── LoggingEvent.cpp
│   │   │       ├── LoggingEvent.hpp
│   │   │       ├── NELogOptions.cpp
│   │   │       ├── NELogOptions.hpp
│   │   │       ├── NELogging.cpp
│   │   │       ├── NetTcpLogger.cpp
│   │   │       ├── NetTcpLogger.hpp
│   │   │       ├── ScopeController.cpp
│   │   │       ├── ScopeController.hpp
│   │   │       ├── ScopeMessage.cpp
│   │   │       ├── ScopeNodeBase.cpp
│   │   │       ├── ScopeNodeBase.hpp
│   │   │       ├── ScopeNodes.cpp
│   │   │       └── ScopeNodes.hpp
│   │   ├── persist/
│   │   │   ├── ConfigManager.hpp
│   │   │   ├── IEConfigurationListener.hpp
│   │   │   ├── IEDatabaseEngine.hpp
│   │   │   ├── NEPersistence.hpp
│   │   │   ├── Property.hpp
│   │   │   ├── PropertyKey.hpp
│   │   │   ├── PropertyValue.hpp
│   │   │   └── private/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── ConfigManager.cpp
│   │   │       ├── IEConfigurationListener.cpp
│   │   │       ├── IEDatabaseEngine.cpp
│   │   │       ├── NEPersistence.cpp
│   │   │       ├── Property.cpp
│   │   │       ├── PropertyKey.cpp
│   │   │       └── PropertyValue.cpp
│   │   ├── resources/
│   │   │   ├── areg.init
│   │   │   ├── areg.rc
│   │   │   ├── areg_post_build.bat
│   │   │   └── resource.h
│   │   └── system/
│   │       ├── GEPlatform.h
│   │       ├── posix/
│   │       │   └── GEPosix.h
│   │       └── windows/
│   │           └── GEWindows.h
│   ├── areg.vcxproj
│   ├── areg.vcxproj.filters
│   ├── aregextend/
│   │   ├── CMakeLists.txt
│   │   ├── Readme.md
│   │   ├── console/
│   │   │   ├── Console.hpp
│   │   │   ├── OptionParser.hpp
│   │   │   ├── SystemServiceConsole.hpp
│   │   │   └── private/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── Console.cpp
│   │   │       ├── OptionParser.cpp
│   │   │       ├── SystemServiceConsole.cpp
│   │   │       ├── ansi/
│   │   │       │   └── ConsoleAnsi.cpp
│   │   │       ├── ncurses/
│   │   │       │   └── ConsoleNcurses.cpp
│   │   │       └── win32/
│   │   │           └── ConsoleWin32.cpp
│   │   ├── db/
│   │   │   ├── LogSqliteDatabase.hpp
│   │   │   ├── SqliteDatabase.hpp
│   │   │   ├── SqliteRow.hpp
│   │   │   ├── SqliteStatement.hpp
│   │   │   └── private/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── LogSqliteDatabase.cpp
│   │   │       ├── SqliteDatabase.cpp
│   │   │       ├── SqliteRow.cpp
│   │   │       └── SqliteStatement.cpp
│   │   ├── resources/
│   │   │   ├── aregextend.rc
│   │   │   └── resource.h
│   │   └── service/
│   │       ├── DataRateHelper.hpp
│   │       ├── IEServiceConnectionHandler.hpp
│   │       ├── NESystemService.hpp
│   │       ├── ServerConnection.hpp
│   │       ├── ServiceApplicationBase.hpp
│   │       ├── ServiceCommunicatonBase.hpp
│   │       ├── SystemServiceBase.hpp
│   │       └── private/
│   │           ├── CMakeLists.txt
│   │           ├── DataRateHelper.cpp
│   │           ├── IEServiceConnectionHandler.cpp
│   │           ├── NESystemService.cpp
│   │           ├── ServerConnection.cpp
│   │           ├── ServerReceiveThread.cpp
│   │           ├── ServerReceiveThread.hpp
│   │           ├── ServerSendThread.cpp
│   │           ├── ServerSendThread.hpp
│   │           ├── ServiceApplicationBase.cpp
│   │           ├── ServiceCommunicatonBase.cpp
│   │           ├── SystemServiceBase.cpp
│   │           ├── posix/
│   │           │   └── ServiceApplicationBasePosix.cpp
│   │           └── win32/
│   │               └── ServiceApplicationBaseWin32.cpp
│   ├── aregextend.vcxproj
│   ├── aregextend.vcxproj.filters
│   ├── areglogger/
│   │   ├── CMakeLists.txt
│   │   ├── Readme.md
│   │   ├── client/
│   │   │   ├── LogObserverApi.h
│   │   │   ├── LogObserverBase.hpp
│   │   │   ├── LogObserverSwitches.h
│   │   │   └── private/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── LogObserverApi.cpp
│   │   │       ├── LogObserverBase.cpp
│   │   │       ├── LoggerClient.cpp
│   │   │       ├── LoggerClient.hpp
│   │   │       ├── ObserverMessageProcessor.cpp
│   │   │       └── ObserverMessageProcessor.hpp
│   │   └── resources/
│   │       ├── areglogger.def
│   │       ├── areglogger.rc
│   │       └── resource.h
│   ├── areglogger.vcxproj
│   ├── areglogger.vcxproj.filters
│   ├── logcollector/
│   │   ├── CMakeLists.txt
│   │   ├── Readme.md
│   │   ├── app/
│   │   │   ├── LogCollector.hpp
│   │   │   ├── NELogCollectorSettings.hpp
│   │   │   └── private/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── LogCollector.cpp
│   │   │       ├── LogCollectorConsoleService.cpp
│   │   │       ├── LogCollectorConsoleService.hpp
│   │   │       ├── NELogCollectorSettings.cpp
│   │   │       ├── posix/
│   │   │       │   └── LogCollectorPosix.cpp
│   │   │       └── win32/
│   │   │           └── LogCollectorWin32.cpp
│   │   ├── resources/
│   │   │   ├── Readme.md
│   │   │   ├── logcollector.rc
│   │   │   ├── logcollector.service
│   │   │   ├── logcollector.service.install.bat
│   │   │   ├── logcollector.service.uninstall.bat
│   │   │   ├── logcollector_post_build.bat
│   │   │   ├── resource.h
│   │   │   ├── targetver.h
│   │   │   └── tech.areg.logcollector.plist
│   │   └── service/
│   │       ├── LogCollectorServerService.hpp
│   │       └── private/
│   │           ├── CMakeLists.txt
│   │           ├── LogCollectorMessageProcessor.cpp
│   │           ├── LogCollectorMessageProcessor.hpp
│   │           └── LogCollectorServerService.cpp
│   ├── logcollector.vcxproj
│   ├── logcollector.vcxproj.filters
│   ├── logobserver/
│   │   ├── CMakeLists.txt
│   │   ├── Readme.md
│   │   ├── app/
│   │   │   ├── LogObserver.hpp
│   │   │   ├── NELogObserverSettings.hpp
│   │   │   └── private/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── LogObserver.cpp
│   │   │       ├── NELogObserverSettings.cpp
│   │   │       ├── posix/
│   │   │       │   └── LogObserverPosix.cpp
│   │   │       └── win32/
│   │   │           └── LogObserverWin32.cpp
│   │   └── resources/
│   │       ├── logobserver.rc
│   │       ├── resource.h
│   │       └── targetver.h
│   ├── logobserver.vcxproj
│   ├── logobserver.vcxproj.filters
│   ├── mtrouter/
│   │   ├── CMakeLists.txt
│   │   ├── Readme.md
│   │   ├── app/
│   │   │   ├── MultitargetRouter.hpp
│   │   │   ├── NEMultitargetRouterSettings.hpp
│   │   │   └── private/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── MultitargetRouter.cpp
│   │   │       ├── NEMultitargetRouterSettings.cpp
│   │   │       ├── RouterConsoleService.cpp
│   │   │       ├── RouterConsoleService.hpp
│   │   │       ├── posix/
│   │   │       │   └── MultitargetRouterPosix.cpp
│   │   │       └── win32/
│   │   │           └── MultitargetRouterWin32.cpp
│   │   ├── resources/
│   │   │   ├── Readme.md
│   │   │   ├── mtrouter.rc
│   │   │   ├── mtrouter.service
│   │   │   ├── mtrouter.service.install.bat
│   │   │   ├── mtrouter.service.uninstall.bat
│   │   │   ├── mtrouter_post_build.bat
│   │   │   ├── resource.h
│   │   │   ├── targetver.h
│   │   │   └── tech.areg.mtrouter.plist
│   │   └── service/
│   │       ├── RouterServerService.hpp
│   │       └── private/
│   │           ├── CMakeLists.txt
│   │           ├── ListServiceProxies.cpp
│   │           ├── ListServiceProxies.hpp
│   │           ├── RouterServerService.cpp
│   │           ├── ServiceProxy.cpp
│   │           ├── ServiceProxy.hpp
│   │           ├── ServiceRegistry.cpp
│   │           ├── ServiceRegistry.hpp
│   │           ├── ServiceStub.cpp
│   │           └── ServiceStub.hpp
│   ├── mtrouter.vcxproj
│   └── mtrouter.vcxproj.filters
├── msvc_setup.props
├── nuget.config
├── tests/
│   ├── CMakeLists.txt
│   ├── areg-unit-tests.vcxproj
│   ├── areg-unit-tests.vcxproj.filters
│   ├── packages.config
│   └── units/
│       ├── CMakeLists.txt
│       ├── DateTimeTest.cpp
│       ├── FileTest.cpp
│       ├── GUnitTest.cpp
│       ├── GUnitTest.hpp
│       ├── LogScopesTest.cpp
│       ├── NEStringTest.cpp
│       ├── OptionParserTest.cpp
│       ├── StringUtilsTest.cpp
│       ├── TEArrayListTest.cpp
│       ├── TEFixedArrayTest.cpp
│       ├── TEHashMapTest.cpp
│       ├── TELinkedListTest.cpp
│       ├── TEMapTest.cpp
│       ├── TEPropertyTest.cpp
│       ├── TERingStackTest.cpp
│       ├── TESortedLinkedListTest.cpp
│       ├── TEStackTest.cpp
│       └── UnitTestUtilities.hpp
├── thirdparty/
│   ├── CMakeLists.txt
│   ├── sqlite3/
│   │   ├── CMakeLists.txt
│   │   ├── LICENSE.txt
│   │   ├── Readme.md
│   │   └── amalgamation/
│   │       ├── shell.c
│   │       ├── sqlite3.c
│   │       ├── sqlite3.h
│   │       └── sqlite3ext.h
│   ├── sqlite3.vcxproj
│   └── sqlite3.vcxproj.filters
└── tools/
    ├── README.md
    ├── codegen.jar
    ├── codegenerate.bat
    ├── codegenerate.sh
    ├── setup-project.bat
    └── setup-project.sh

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
assignees: aregtech

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior.
- It would be very helpful to get a running example.
- If bug is obvious without an example, please be clear like
1. Open the file '...'
2. Go to line '...'
3. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Desktop or embedded (please complete the following information):**
- OS: [e.g. Ubuntu Linux]
- Version [e.g. 22]
- Hardware [e.g. x86]
- Compiler [e.g. g++]
- AREG SDK version [e.g. 1.0.1]
 
**Additional context**
Add any other context about the problem here.


================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: aregtech

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.


================================================
FILE: .github/config.yml
================================================
# DCO Bot Configuration
dco:
  enabled: true
  require:
    - pull_request
  token: ${{ secrets.GITHUB_TOKEN }}


================================================
FILE: .github/dependabot.yml
================================================
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file

version: 2
updates:
  - package-ecosystem: "github-actions" # See documentation for possible values
    directory: "/" # Location of package manifests
    schedule:
      interval: "monthly"
    groups:
      github-actions:
        patterns:
          - "*"


================================================
FILE: .github/pull_request_template.md
================================================
## Summary
<!-- One or two sentences explaining the purpose of this PR. -->

## Changes
<!-- Key updates, fixes, or features. -->

## Testing
<!-- Optional: steps to verify the behavior. -->

## Notes
<!-- Optional: extra context for reviewers. -->

## Checklist

Please check the box ( `[x]` ) and sign-off the this PR:

[ ] I have read CONTRIBUTING.md

Signed-off-by: Your Name or GitHub ID (optional email)


================================================
FILE: .github/workflows/accessibility-bot.yml
================================================
name: Accessibility-alt-text-bot
on: 
  issues:
    types: [opened, edited]
  pull_request:
    types: [opened, edited]
  issue_comment:
    types: [created, edited]
  discussion:
    types: [created, edited]
  discussion_comment:
    types: [created, edited]

permissions:
  issues: write
  pull-requests: write
  discussions: write

jobs:
  accessibility_alt_text_bot:
    name: Check alt text is set on issue or pull requests
    runs-on: ubuntu-latest
    if: ${{ github.event.issue || github.event.pull_request || github.event.discussion }}
    steps:
      - name: Get action 'github/accessibility-alt-text-bot'
        uses: github/accessibility-alt-text-bot@v1.7.2 # Set to latest


================================================
FILE: .github/workflows/cmake.yml
================================================
name: CMake

on:
  push:         # Keep empty to run on each branch when push the code. Otherwise use branches: [ master ]
    branches: [ master ]
  pull_request: # Set to master to run only when merge with master branch
    branches: [ master ]

env:
  # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
  BUILD_TYPE: Release

# The CMake configure and build commands are platform agnostic and should work equally well on Windows or Linux.
# You can convert this to a matrix build if you need cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix

jobs:
  build-tests:
    name: ${{matrix.config.name}}
    runs-on: ${{matrix.config.os}}

    strategy:
      fail-fast: false
      matrix:
        config: # Create matrix with combinations

            # compile Areg engine as a shared library with GNU g++ / gcc on Ubuntu Linux, enable Areg extensions and logs
          - { name  : linux-gnu-shared-ext-log,
              os    : ubuntu-latest,
              lib   : shared,
              family: gnu,
              cxx   : g++,
              cc    : gcc,
              extend: ON,
              logs  : ON,
              test  : OFF
            }

            # compile Areg engine as a shared library with GNU g++ / gcc on Ubuntu Linux, enable Areg extensions and no logs
          - { name  : linux-gnu-shared-ext-nolog,
              os    : ubuntu-latest,
              lib   : shared,
              family: gnu,
              cxx   : g++,
              cc    : gcc,
              extend: ON,
              logs  : OFF,
              test  : OFF
            }

            # compile Areg engine as a static library with GNU g++ / gcc on Ubuntu Linux, enable Areg extensions, logs, examples and tests
          - { name  : linux-gnu-static-all-test,
              os    : ubuntu-latest,
              lib   : static,
              family: gnu,
              cxx   : g++,
              cc    : gcc,
              extend: ON,
              logs  : ON,
              test: ON
            }

            # compile Areg engine as a shared library with GNU g++ / gcc on Ubuntu Linux, enable Areg extensions, logs, examples and tests
          - { name  : linux-gnu-shared-all-test,
              os    : ubuntu-latest,
              lib   : shared,
              family: gnu,
              cxx   : g++,
              cc    : gcc,
              extend: ON,
              logs  : ON,
              test  : ON
            }

            # compile Areg engine as a shared library with GNU g++ / gcc on Ubuntu Linux, disable Areg extensions and no logs
          - { name  : linux-gnu-shared-noext-nolog,
              os    : ubuntu-latest,
              lib   : shared,
              family: gnu,
              cxx   : g++,
              cc    : gcc,
              extend: OFF,
              logs  : OFF,
              test  : OFF
            }

            # compile Areg engine as a shared library with clang on Ubuntu Linux, enable Areg extensions and logs
          - { name  : linux-clang-shared-ext-log,
              os    : ubuntu-latest,
              lib   : shared,
              family: llvm,
              cxx   : clang++,
              cc    : clang,
              extend: ON,
              logs  : ON,
              test  : OFF
            }

            # compile Areg engine as a shared library with clang on Ubuntu Linux, enable Areg extensions and no logs
          - { name  : linux-clang-shared-ext-nolog,
              os    : ubuntu-latest,
              lib   : shared,
              family: llvm,
              cxx   : clang++,
              cc    : clang,
              extend: ON,
              logs  : OFF,
              test  : OFF
            }

            # compile Areg engine as a static library with clang on Ubuntu Linux, enable Areg extensions, logs, examples and tests
          - { name  : linux-clang-static-all-test,
              os    : ubuntu-latest,
              lib   : static,
              family: llvm,
              cxx   : clang++,
              cc    : clang,
              extend: ON,
              logs  : ON,
              test  : ON
            }

            # compile Areg engine as a static library with clang on Ubuntu Linux, enable Areg extensions, logs, examples and tests
          - { name  : linux-clang-shared-all-test,
              os    : ubuntu-latest,
              lib   : shared,
              family: llvm,
              cxx   : clang++,
              cc    : clang,
              extend: ON,
              logs  : ON,
              test  : ON
            }

            # compile Areg engine as a shared library with clang on Ubuntu Linux, disable Areg extensions and no logs
          - { name  : linux-clang-shared-noext-nolog,
              os    : ubuntu-latest,
              lib   : shared,
              family: llvm,
              cxx   : clang++,
              cc    : clang,
              extend: OFF,
              logs  : OFF,
              test  : OFF
            }

            # compile Areg engine as a shared library with clang on macOS, enable logs and tests, disable Areg extensions
          - { name  : macos-clang-shared-noext,
              os    : macos-latest,
              lib   : shared,
              family: llvm,
              cxx   : clang++,
              cc    : clang,
              extend: OFF,
              logs  : ON,
              test  : ON
            }

            # compile Areg engine as a shared library with clang on macOS, enable tests, disable Areg extensions and no logs
          - { name  : macos-clang-shared-noext-nolog,
              os    : macos-latest,
              lib   : shared,
              family: llvm,
              cxx   : clang++,
              cc    : clang,
              extend: OFF,
              logs  : OFF,
              test  : ON
            }

            # compile Areg engine as a shared library with clang on macOS, enable tests, disable Areg extensions and no logs
          - { name  : macos-clang-shared-noext-nolog-notest,
              os    : macos-latest,
              lib   : shared,
              family: llvm,
              cxx   : clang++,
              cc    : clang,
              extend: OFF,
              logs  : OFF,
              test  : OFF
            }

            # compile Areg engine as a static library with clang on macOS, enable logs and tests, disable Areg extensions
          - { name  : macos-clang-static-noext,
              os    : macos-latest,
              lib   : static,
              family: llvm,
              cxx   : clang++,
              cc    : clang,
              extend: OFF,
              logs  : ON,
              test  : ON
            }

            # compile Areg engine as a static library with clang on macOS, enable tests, disable Areg extensions and no logs
          - { name  : macos-clang-static-noext-nolog,
              os    : macos-latest,
              lib   : static,
              family: llvm,
              cxx   : clang++,
              cc    : clang,
              extend: OFF,
              logs  : OFF,
              test  : ON
            }

            # compile Areg engine as a static library with clang on macOS, enable tests, disable Areg extensions and no logs
          - { name  : macos-clang-static-noext-nolog-notest,
              os    : macos-latest,
              lib   : static,
              family: llvm,
              cxx   : clang++,
              cc    : clang,
              extend: OFF,
              logs  : OFF,
              test  : OFF
            }

            # compile Areg engine as a shared with CYGWIN g++ / gcc on Windows, enable Areg extensions and logs
          - { name  : win-cygwin-shared-ext-log,
              os    : windows-latest,
              lib   : shared,
              family: cygwin,
              cxx   : g++,
              cc    : gcc,
              extend: ON,
              logs  : ON,
              test  : OFF}

            # compile Areg engine as a shared with CYGWIN g++ / gcc on Windows, enable Areg extensions and no logs
          - { name  : win-cygwin-shared-ext-nolog,
              os    : windows-latest,
              lib   : shared,
              family: cygwin,
              cxx   : g++,
              cc    : gcc,
              extend: ON,
              logs  : OFF,
              test  : OFF
            }

            # compile Areg engine as a static with CYGWIN g++ / gcc on Windows, enable Areg extensions, logs, examples and tests
          - { name  : win-cygwin-static-all-test,
              os    : windows-latest,
              lib   : static,
              family: cygwin,
              cxx   : g++,
              cc    : gcc,
              extend: ON,
              logs  : ON,
              test  : ON
            }

            # compile Areg engine as a static with CYGWIN g++ / gcc on Windows, enable Areg extensions, logs, examples and tests
          - { name  : win-cygwin-shared-all-test,
              os    : windows-latest,
              lib   : shared,
              family: cygwin,
              cxx   : g++,
              cc    : gcc,
              extend: ON,
              logs  : ON,
              test  : ON
            }

            # compile Areg engine as a shared with CYGWIN g++ / gcc on Windows, disable Areg extensions and no logs
          - { name  : win-cygwin-shared-noext-nolog,
              os    : windows-latest,
              lib   : shared,
              family: cygwin,
              cxx   : g++,
              cc    : gcc,
              extend: OFF,
              logs  : OFF,
              test  : OFF
            }

          # compile Areg engine as a shared library with clang on Windows, enable Areg extensions and logs
          - { name  : win-clang-shared-ext-log,
              os    : windows-latest,
              lib   : shared,
              family: llvm,
              cxx   : clang-cl,
              cc    : clang-cl,
              extend: ON,
              logs  : ON,
              test  : OFF
            }

            # compile Areg engine as a shared library with clang on Windows, enable Areg extensions and no logs
          - { name  : win-clang-shared-ext-nolog,
              os    : windows-latest,
              lib   : shared,
              family: llvm,
              cxx   : clang-cl,
              cc    : clang-cl,
              extend: ON,
              logs  : OFF,
              test  : OFF
            }

            # compile Areg engine as a static library with clang on Windows, enable Areg extensions, logs, examples and tests
          - { name  : win-clang-static-all-test,
              os    : windows-latest,
              lib   : static,
              family: llvm,
              cxx   : clang-cl,
              cc    : clang-cl,
              extend: ON,
              logs  : ON,
              test  : ON
            }

            # compile Areg engine as a static library with clang on Windows, enable Areg extensions, logs, examples and tests
          - { name  : win-clang-shared-all-test,
              os    : windows-latest,
              lib   : shared,
              family: llvm,
              cxx   : clang-cl,
              cc    : clang-cl,
              extend: ON,
              logs  : ON,
              test  : ON
            }

            # compile Areg engine as a shared library with clang on Windows, disable Areg extensions and no logs
          - { name  : win-clang-shared-noext-nolog,
              os    : windows-latest,
              lib   : shared,
              family: llvm,
              cxx   : clang-cl,
              cc    : clang-cl,
              extend: OFF,
              logs  : OFF,
              test  : OFF
            }

            # compile Areg engine as a shared with MSVC on Windows, enable Areg extensions and logs
          - { name  : win-msvc-shared-ext-log,
              os    : windows-latest,
              lib   : shared,
              family: msvc,
              cxx   : cl,
              cc    : cl,
              extend: ON,
              logs  : ON,
              test  : OFF
            }

            # compile Areg engine as a shared with MSVC on Windows, enable Areg extensions and no logs
          - { name  : win-msvc-shared-ext-nolog,
              os    : windows-latest,
              lib   : shared,
              family: msvc,
              cxx   : cl,
              cc    : cl,
              extend: ON,
              logs  : OFF,
              test  : OFF
            }

            # compile Areg engine as a static with MSVC on Windows, enable Areg extensions, logs, examples and tests
          - { name  : win-msvc-static-all-test,
              os    : windows-latest,
              lib   : static,
              family: msvc,
              cxx   : cl,
              cc    : cl,
              extend: ON,
              logs  : ON,
              test  : ON
            }

            # compile Areg engine as a static with MSVC on Windows, enable Areg extensions, logs, examples and tests
          - { name  : win-msvc-shared-all-test,
              os    : windows-latest,
              lib   : shared,
              family: msvc,
              cxx   : cl,
              cc    : cl,
              extend: ON,
              logs  : ON,
              test  : ON
            }

            # compile Areg engine as a shared with MSVC on Windows, enable Areg extensions and logs
          - { name  : win-msvc-shared-noext-log,
              os    : windows-latest,
              lib   : shared,
              family: msvc,
              cxx   : cl,
              cc    : cl,
              extend: OFF,
              logs  : ON,
              test  : OFF
            }

            # compile Areg engine as a shared with MSVC on Windows, enable Areg extensions and no logs
          - { name  : win-msvc-shared-noext-nolog,
              os    : windows-latest,
              lib   : shared,
              family: msvc,
              cxx   : cl,
              cc    : cl,
              extend: OFF,
              logs  : OFF,
              test  : OFF
            }

    steps:

      - name: Checkout Areg SDK source codes
        uses: actions/checkout@v6

      - name: Setup Java JDK to run code generator
        uses: actions/setup-java@v5.2.0
        with: 
          java-version: 17
          java-package: jre
          distribution: temurin

      - name: Set cmake cache destination for Linux
        if: matrix.config.os == 'ubuntu-latest'
        run: |
            echo "CACHE_DEST=./product/cache/${{matrix.config.family}}-${{matrix.config.cxx}}" >> "$GITHUB_ENV"
            echo "BUILD_DEST=./product/build/${{matrix.config.family}}-${{matrix.config.cxx}}/linux-64-x86_64-release-${{matrix.config.lib}}" >> "$GITHUB_ENV"
            echo "INSTALL_DEST=./product/install/${{matrix.config.family}}-${{matrix.config.cxx}}" >> "$GITHUB_ENV"

      - name: Set cmake cache destination for macOS
        if: matrix.config.os == 'macos-latest'
        run: |
            ARCH=$(uname -m)
            echo "CACHE_DEST=./product/cache/${{matrix.config.family}}-${{matrix.config.cxx}}" >> "$GITHUB_ENV"
            echo "BUILD_DEST=./product/build/${{matrix.config.family}}-${{matrix.config.cxx}}/darwin-64-${ARCH}-release-${{matrix.config.lib}}" >> "$GITHUB_ENV"
            echo "INSTALL_DEST=./product/install/${{matrix.config.family}}-${{matrix.config.cxx}}" >> "$GITHUB_ENV"

      - name: Set cmake cache destination for Windows
        if: matrix.config.os == 'windows-latest'
        run: |
            echo "CACHE_DEST=./product/cache/${{matrix.config.family}}-${{matrix.config.cxx}}" >> $env:GITHUB_ENV
            echo "BUILD_DEST=./product/build/${{matrix.config.family}}-${{matrix.config.cxx}}/windows-64-amd64-release-${{matrix.config.lib}}" >> $env:GITHUB_ENV
            echo "INSTALL_DEST=./product/install/${{matrix.config.family}}-${{matrix.config.cxx}}" >> $env:GITHUB_ENV

      - name: Ensure Xcode CLI Tools
        if: matrix.config.os == 'macos-latest'
        run: sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer

      - name: Set Windows PATH environment variable
        if: matrix.config.os == 'windows-latest' && matrix.config.family == 'cygwin'
        run: echo "PATH=C:\cygwin;C:\cygwin\bin;C:\cygwin\lib;%SYSTEMROOT%\system32;%PATH%" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append

      - name: Install cygwin on Windows
        if: matrix.config.os == 'windows-latest' && matrix.config.family == 'cygwin'
        uses: cygwin/cygwin-install-action@v6
        with:
          packages: cmake, dos2unix, flexdll, gcc-g++, git, libncurses-devel, make
          install-dir: 'C:\cygwin'
          add-to-path: false
          work-vol: 'C:'

      - name: create build and product directories
        working-directory: ${{github.workspace}}
        run: |
            mkdir build
            mkdir product

      - name: Configure CMake by selecting compiler family
        if: matrix.config.extend == 'ON'
        working-directory: ${{github.workspace}}
        run: |
          cmake -B ${{env.CACHE_DEST}} -DAREG_COMPILER_FAMILY=${{matrix.config.family}} -DAREG_BUILD_TYPE=${{env.BUILD_TYPE}} -DAREG_BINARY=${{matrix.config.lib}} -DAREG_EXTENDED:BOOL=${{matrix.config.extend}} -DAREG_LOGS:BOOL=${{matrix.config.logs}} -DAREG_BUILD_EXAMPLES:BOOL=${{matrix.config.test}} -DAREG_BUILD_TESTS:BOOL=${{matrix.config.test}} -DAREG_INSTALL:BOOL=ON -DAREG_INSTALL_PATH:PATH="${{env.INSTALL_DEST}}"

      - name: Configure CMake by selecting compiler name
        if: matrix.config.extend == 'OFF'
        working-directory: ${{github.workspace}}
        run: |
          cmake -B ${{env.CACHE_DEST}} -DAREG_COMPILER=${{matrix.config.cc}} -DAREG_BUILD_TYPE=${{env.BUILD_TYPE}} -DAREG_BINARY=${{matrix.config.lib}} -DAREG_EXTENDED:BOOL=${{matrix.config.extend}} -DAREG_LOGS:BOOL=${{matrix.config.logs}} -DAREG_BUILD_EXAMPLES:BOOL=${{matrix.config.test}} -DAREG_BUILD_TESTS:BOOL=${{matrix.config.test}} -DAREG_INSTALL:BOOL=ON -DAREG_INSTALL_PATH:PATH="${{env.INSTALL_DEST}}"

      - name: Build with CMake
        working-directory: ${{github.workspace}}
        # Build your program with the given configuration
        run: cmake --build ${{env.CACHE_DEST}} --config Release -j 16

      - name: Install with CMake
        working-directory: ${{github.workspace}}
        # Install the binaries and headers
        run: cmake --install ${{env.CACHE_DEST}}

      - name: Run Unit Tests. Ignore if unit tests are not compiled
        if: matrix.config.test == 'ON'
        working-directory: ${{github.workspace}}
        run: ctest --test-dir ${{env.CACHE_DEST}} --output-on-failure --output-junit test_results.xml

      - name: Copy test artifacts if unit tests fail. Ignore if unit tests are not compiled
        if: failure() && matrix.config.test == 'ON'
        working-directory: ${{github.workspace}}
        shell: bash
        run: |
          mkdir ./${{matrix.config.name}}/
          cp -R ./${{env.BUILD_DEST}}/bin/ ./${{matrix.config.name}}/
          cp -R ./${{env.INSTALL_DEST}}/   ./${{matrix.config.name}}/

      - name: Upload artifacts if tests fail. Ignore if unit tests are not compiled
        if: failure() && matrix.config.test == 'ON'
        uses: actions/upload-artifact@v6
        with:
          name: ${{matrix.config.name}}
          path: ./${{matrix.config.name}}/


================================================
FILE: .github/workflows/codeql-analysis.yml
================================================
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"

on:
  push:
    branches: [ master ]
  pull_request:
    # The branches below must be a subset of the branches above
    branches: [ master ]
  schedule:
    - cron: '32 22 * * 1'

jobs:
  analyze:
    name: Analyze
    runs-on: ubuntu-latest
    permissions:
      actions: read
      contents: read
      security-events: write

    strategy:
      fail-fast: false
      matrix:
        language: [ 'cpp' ]
        # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
        # Learn more:
        # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed

    steps:
    - name: Checkout repository
      uses: actions/checkout@v6

    - name: Setup Java JDK to run code generator
      uses: actions/setup-java@v5.2.0
      with: 
        java-version: 17
        java-package: jre
        distribution: temurin

    # Initializes the CodeQL tools for scanning.
    - name: Initialize CodeQL
      uses: github/codeql-action/init@v4
      with:
        languages: ${{ matrix.language }}
        # If you wish to specify custom queries, you can do so here or in a config file.
        # By default, queries listed here will override any specified in a config file.
        # Prefix the list here with "+" to use these queries and those in the config file.
        # queries: ./path/to/local/query, your-org/your-repo/queries@main

    # Autobuild attempts to build any compiled languages  (C/C++, C#, or Java).
    # If this step fails, then you should remove it and run the build manually (see below)
    - name: Autobuild
      uses: github/codeql-action/autobuild@v4

    # ℹ️ Command-line programs to run using the OS shell.
    # 📚 https://git.io/JvXDl

    - name: Perform CodeQL Analysis
      uses: github/codeql-action/analyze@v4


================================================
FILE: .github/workflows/msbuild.yml
================================================
name: MSBuild

on:
  push:         # Keep empty to run on each branch when push the code. Otherwise, use branches: [ master ]
    branches: [ master ]
  pull_request:
    branches: [ master ]

env:
  # Path to the solution file relative to the root of the project.
  SOLUTION_FILE_PATH: .

  # Configuration type to build.
  # You can convert this to a build matrix if you need coverage of multiple configuration types.
  # https://docs.github.com/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
  BUILD_CONFIGURATION: Release

permissions:
  contents: read

jobs:
  build-tests:
    name: ${{matrix.config.name}}
    runs-on: windows-latest

    strategy:
      fail-fast: false
      matrix:
        config: # Create matrix with combinations
          # Compile for 32-bit platform, enabled Areg extensions and logs
          - {name: MSBuild-Win32-ext-log,     platform: Win32,  extend: 1,  logs: 1}
          # Compile for 32-bit platform, enabled Areg extensions and no logs
          - {name: MSBuild-Win32-ext-nolog,   platform: Win32,  extend: 1,  logs: 0}
          # Compile for 32-bit platform, disable Areg extensions and logs
          - {name: MSBuild-Win32-noext-log,   platform: Win32,  extend: 0,  logs: 1}
          # Compile for 32-bit platform, disable Areg extensions and no logs
          - {name: MSBuild-Win32-noext-nolog, platform: Win32,  extend: 0,  logs: 0}
          # Compile for 32-bit platform, enabled Areg extensions and logs
          - {name: MSBuild-x64-ext-log,       platform: x64,    extend: 1,  logs: 1}
          # Compile for 32-bit platform, enabled Areg extensions and no logs
          - {name: MSBuild-x64-ext-nolog,     platform: x64,    extend: 1,  logs: 0}
          # Compile for 32-bit platform, disable Areg extensions and logs
          - {name: MSBuild-x64-noext-log,     platform: x64,    extend: 0,  logs: 1}
          # Compile for 32-bit platform, disable Areg extensions and no logs
          - {name: MSBuild-x64-noext-nolog,   platform: x64,    extend: 0,  logs: 0}

    steps:
    - name: Checkout Areg engine (Areg SDK) source codes
      uses: actions/checkout@v6

    - name: Setup Java JDK to run code generator
      uses: actions/setup-java@v5.2.0
      with: 
        java-version: 17
        java-package: jre
        distribution: temurin

    - name: Add MSBuild to PATH
      uses: microsoft/setup-msbuild@v2

    - name: Restore NuGet packages
      working-directory: ${{github.workspace}}
      run: nuget restore ${{env.SOLUTION_FILE_PATH}}

    - name: Build areg-sdk solution.
      working-directory: ${{github.workspace}}
      # Add additional options to the MSBuild command line here (like platform or verbosity level).
      # See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference
      run: msbuild /m /property:Configuration=${{env.BUILD_CONFIGURATION}} /property:Platform=${{matrix.config.platform}} /property:AregExtended=${{matrix.config.extend}} /property:AregLogs=${{matrix.config.logs}} ${{env.SOLUTION_FILE_PATH}} -t:restore,build -p:RestorePackagesConfig=true


================================================
FILE: .github/workflows/validate-pr.yml
================================================
name: PR Validation

on:
  pull_request:
    types: [opened, edited, reopened, synchronize]

jobs:
  pr-check:
    runs-on: ubuntu-latest
    steps:
      - name: Verify PR Checklist
        uses: actions/github-script@v8
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          script: |
            const prBody = context.payload.pull_request.body || '';
            const errors = [];

            if (!prBody.includes('[x] I have read CONTRIBUTING.md')) {
              errors.push('Please check the box confirming you have read CONTRIBUTING.md.');
            }
            if (!prBody.includes('Signed-off-by:')) {
              errors.push('Missing "Signed-off-by:" line in PR.');
            }
            if (errors.length > 0) {
              core.setFailed(errors.join('\n'));
            }


================================================
FILE: .gitignore
================================================
*.aps
*.opensdf
*.suo
*.sdf
*.user
*.o
*.obj
*.log
*.stackdump
*.d
*.diff

.git
.metadata
.vs
.vscode

build/*
out/*
product/*
tools/*.zip

areg-sdk.code-workspace

Debug
Release
framework/*/Debug
framework/*/Release
framework/*/.settings
framework/*/.gitignore

examples/*/.gitignore
examples/*/.settings
examples/*/Debug
examples/*/Release

examples/*/*/.gitignore
examples/*/*/.settings
examples/*/*/Debug
examples/*/*/Release

examples/*/*/*/.gitignore
examples/*/*/*/.settings
examples/*/*/*/Debug
examples/*/*/*/Release
CMakeSettings.json


================================================
FILE: CMakeLists.txt
================================================
# ###########################################################################
#               CMake options of Areg SDK
# Copyright 2022-2026 Aregtech
# ###########################################################################

cmake_minimum_required(VERSION 3.20.0)

# Areg root directory
set(AREG_SDK_ROOT           "${CMAKE_CURRENT_LIST_DIR}")
set(AREG_CMAKE_CONFIG_DIR   "${AREG_SDK_ROOT}/conf/cmake")

# Set 'AREG_SDK_ROOT' and optional 'AREG_CMAKE_CONFIG_DIR' variables
#  before 'setup.cmake', and include 'setup.cmake'
# before 'project' call.
include(${AREG_CMAKE_CONFIG_DIR}/setup.cmake)

# set CMake tool settings
set(CMAKE_BUILD_TYPE        ${AREG_BUILD_TYPE} CACHE STRING "Configuration Type" FORCE)

# Areg SDK project name and version
set(AREG_PROJECT_NAME "areg-sdk")
set(AREG_PROJECT_VERSION "1.9.99.111")

# Project's properties
set(PROJECT_NAME ${AREG_PROJECT_NAME})
set(PROJECT_VERSION ${AREG_PROJECT_VERSION})
project("${PROJECT_NAME}" 
        VERSION      "${PROJECT_VERSION}" 
        DESCRIPTION  "Areg Communication Framework and Tools" 
        HOMEPAGE_URL "https://areg.tech" 
        LANGUAGES    CXX C)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)# The 'common.cmake' file should be included after 'project' call
include(${AREG_CMAKE_CONFIG_DIR}/common.cmake)

# add a custom command to create output build folders if they are not existing.
# create a dummy project to add as a dependency in all other projects.
# this ensures that the commands to create directories are called first.
add_custom_target(areg-dummy ALL COMMAND ${CMAKE_COMMAND} VERBATIM)
add_custom_command( TARGET areg-dummy PRE_BUILD
                    COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}"
                    COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}"
                    VERBATIM)

include_directories(${AREG_FRAMEWORK})
include_directories(${AREG_THIRDPARTY})

# build Areg Framework thirdparty software
include(${AREG_THIRDPARTY}/CMakeLists.txt)
if (NOT AREG_SQLITE_FOUND)
    add_dependencies(aregsqlite3 areg-dummy)
endif()

# build Areg Framework software
include(${AREG_FRAMEWORK}/CMakeLists.txt)
add_dependencies(areg areg-dummy)

# build optional Areg project examples, if required
if(AREG_BUILD_EXAMPLES)
    include(${AREG_EXAMPLES}/CMakeLists.txt)
endif()

# build optional Areg Framework unit tests, if required
if(AREG_BUILD_TESTS)
    include(${AREG_TESTS}/CMakeLists.txt)
    if (NOT AREG_GTEST_FOUND)
        # Set dependency of 'areg-dummy' to make sure
        # the build directories are created before the
        # 'gtest' libraries are built
        add_dependencies(areg-unit-tests areg-dummy)
    endif()
else()
    option(AREG_GTEST_PACKAGE   "Use GTest package"         FALSE)
    option(AREG_GTEST_FOUND     "GTest package found flag"  FALSE)
endif()

if (AREG_INSTALL)
    include(${AREG_CMAKE_CONFIG_DIR}/install.cmake)
endif()

# Print the configuration status
printAregConfigStatus(
    TRUE
    "Areg"
    "----------------------> Areg project CMake Status Report Begin <-----------------------"
    "-----------------------> Areg project CMake Status Report End <------------------------"
)


================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.

## Our Standards

Examples of behavior that contributes to a positive environment for our
community include:

* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
  and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
  overall community

Examples of unacceptable behavior include:

* The use of sexualized language or imagery, and sexual attention or
  advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
  address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
  professional setting

## Enforcement Responsibilities

Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.

Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.

## Scope

This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
**artak[at]areg.tech**.
All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the
reporter of any incident.

## Enforcement Guidelines

Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:

### 1. Correction

**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.

**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.

### 2. Warning

**Community Impact**: A violation through a single incident or series
of actions.

**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.

### 3. Temporary Ban

**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.

**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.

### 4. Permanent Ban

**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior,  harassment of an
individual, or aggression toward or disparagement of classes of individuals.

**Consequence**: A permanent ban from any sort of public interaction within
the community.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.

Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.


================================================
FILE: CONTRIBUTING.md
================================================
# CONTRIBUTING TO Areg SDK

Thank you for your interest in contributing to Areg SDK.  
We welcome developers, companies, researchers, and hobbyists who want to help improve the framework.

This guide explains how to contribute, how copyrights work, and what you need to do so your contribution can be accepted.

---

## 1. Code Licensing

All contributions are licensed under:

**Apache License, Version 2.0**

By submitting a pull request or commit, you agree that your contribution is provided under Apache 2.0.

---

## 2. Developer Certificate of Origin (DCO)

To contribute, you must confirm that you have the right to submit the code.

Areg SDK uses the **Developer Certificate of Origin (DCO)**. It is a simple and widely adopted alternative to contributor license agreements.

Every commit must include a `Signed-off-by` line:

```

Signed-off-by: Your Name [email@example.com](mailto:email@example.com)

```

Most Git tools can add this automatically:

```

git commit -s

```

By signing off, you state that your contribution is your original work or that you have permission to submit it.  
More information can be found at https://developercertificate.org/

---

## 3. Copyright Headers

You may add a copyright header if you want your name or organization to appear in the source file.

If you prefer not to add a header, the project may include a default header for clarity and consistent licensing.  
This does not affect your ownership or your rights in any way.

Example of an optional header:

```cpp
/************************************************************************
 * This file is part of the Areg SDK core engine.
 * Areg SDK is dual licensed under Apache 2.0 and commercial licenses.
 *
 * \copyright   (c) 2017-2026 Your Name or Aregtech UG
 * \file        path/to/YourFile.hpp
 * \ingroup     Areg SDK
 * \author      Your Full Name or GitHub ID
 * \brief       Brief description
 ************************************************************************/
```

Minor edits such as typo fixes, grammar corrections, formatting cleanup, comment updates, CMake changes, and YAML updates do not require contributor copyright headers.

---

## 4. Contribution Guidelines

### a. Reporting Bugs

When reporting an issue, please include:

* steps to reproduce
* expected and actual behavior
* platform and compiler information

### b. Submitting Code

Pull requests should follow these rules:

* one clear improvement per pull request
* keep the existing code style
* include tests when possible
* include a `Signed-off-by` line in every commit

### c. Documentation

Improvements to guides, examples, comments, and general documentation are welcome.
Small corrections only require a Signed-off-by line.

---

## 5. Areas Where Help Is Needed

1. C++17 development such as core framework, features, and services
2. Unit tests and example applications
3. Build systems and cross compilation setups
4. UI and UX improvements for the Areg SDK Tools
5. Technical writing including documentation and guides

---

## 6. Dual Licensing and Commercial Use

Areg SDK is licensed under the Apache License 2.0.  
You retain ownership of your contribution, which will always remain available under Apache 2.0.

Project maintainers may also offer Areg SDK under separate commercial terms.  
By contributing under the DCO and Apache 2.0, you grant the maintainers an irrevocable right to use, modify, sublicense, and distribute your contribution as part of both the open-source and any commercial editions of Areg SDK.

---

## 7. Code of Conduct

Always communicate respectfully and constructively.
We strive to maintain a welcoming community for everyone.

---

## 8. Questions

If you have any questions about licensing, rights, or the contribution process, open an issue or start a discussion.

We are happy to help you get started.


================================================
FILE: LICENSE.txt
================================================
                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   Copyright 2017-2026 Aregtech, UG

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.


================================================
FILE: README.md
================================================
<h1 align="center" style="font-size:2.5em; font-weight:bold; margin:1em 0;">
  <a href="https://www.areg.tech">
    <img 
      src="./docs/img/areg-sdk-1280x360px-logo.png" 
      alt="Areg SDK - C++ Middleware and Framework for RPC and IPC"
      title="Areg SDK - Lightweight Cross-Platform C++ Framework and Middleware for RPC, IPC, and Distributed Systems"
      style="width:100%;height:auto" 
    />
  </a>
</h1>

[![Latest release](https://img.shields.io/github/v/release/aregtech/areg-sdk?label=Latest%20release&style=social)](https://github.com/aregtech/areg-sdk/releases/tag/v1.5.0)
[![GitHub commits](https://img.shields.io/github/commits-since/aregtech/areg-sdk/v1.5.0.svg?style=social)](https://github.com/aregtech/areg-sdk/compare/v1.5.0...master)
[![Stars](https://img.shields.io/github/stars/aregtech/areg-sdk?style=social)](https://github.com/aregtech/areg-sdk/stargazers)
[![Wiki Pages](https://img.shields.io/badge/Areg%20Wiki%20Pages-Docs-brightgreen?style=social&logo=wikipedia)](./docs/wiki/README.md)

⭐ **If you find Areg SDK useful, give us a star - it helps the project grow!**

---

Most C++ projects don't fail on algorithms. They fail on **threads, IPC, and brittle integration code**. Areg SDK eliminates this complexity using **Object RPC** to automate communication, unifying async RPC, Pub/Sub, and service discovery. Its self-managed service mesh enables scalable systems across threads, processes, and devices with no manual wiring and no fragile glue code.

*Named after the ancient Armenian word for "Sun", Areg creates a star network where services orbit around a central router - enabling automatic discovery, seamless communication, and fault-tolerant distributed computing.*

---

## Project Status[![](./docs/img/pin.svg)](#project-status)

<table class="no-border">
  <tr>
    <td><a href="https://github.com/aregtech/areg-sdk/actions/workflows/cmake.yml"><img src="https://github.com/aregtech/areg-sdk/actions/workflows/cmake.yml/badge.svg" alt="CMake build"/></a></td>
    <td><a href="https://github.com/aregtech/areg-sdk/actions/workflows/msbuild.yml"><img src="https://github.com/aregtech/areg-sdk/actions/workflows/msbuild.yml/badge.svg" alt="MS Build"/></a></td>
    <td><a href="https://github.com/aregtech/areg-sdk/actions/workflows/codeql-analysis.yml"><img src="https://github.com/aregtech/areg-sdk/actions/workflows/codeql-analysis.yml/badge.svg" alt="CodeQL"/></a></td>
  </tr>
  <tr>
    <td><img src="https://img.shields.io/badge/Solution-C++17-blue.svg?style=flat&logo=c%2B%2B&logoColor=b0c0c0&labelColor=363D44" alt="C++ solution"/></td>
    <td><img src="https://img.shields.io/badge/OS-Linux%20%7C%20macOS%20%7C%20Windows-blue?style=flat&logo=Linux&logoColor=b0c0c0&labelColor=363D44" alt="Operating systems"/></td>
    <td><img src="https://img.shields.io/badge/CPU-x86%20%7C%20x86__64%20%7C%20arm32%20%7C%20arm64-blue?style=flat&logo=amd&logoColor=b0c0c0&labelColor=363D44" alt="CPU Architectures"/></td>
  </tr>
</table>

---

## Table of Contents[![](./docs/img/pin.svg)](#table-of-contents)

- [Why Areg SDK](#why-areg-sdk)
- [What is Areg SDK](#what-is-areg-sdk)
- [Getting Started in 5 Minutes](#getting-started-in-5-minutes)
- [Architecture and Core Concepts](#architecture-and-core-concepts)
- [Real-World Use Cases](#real-world-use-cases)
- [Roadmap](#roadmap)
- [Documentation](#documentation)
- [License](#license)
- [Community and Contribution](#community-and-contribution)

> [!IMPORTANT]
> Complete technical documentation, build guides, and integration patterns are available in the [Wiki](./docs/wiki/).

---

## Why Areg SDK[![](./docs/img/pin.svg)](#why-areg-sdk)

### The Real Cost of Distributed C++

Every C++ developer knows the frustration: threading bugs that appear only in production, race conditions that vanish under debuggers, and IPC code that requires weeks of careful integration. Your algorithms work perfectly, but the scaffolding around them is fragile, time-consuming, and error-prone.

**Ask yourself these 5 questions:**

- [ ] Do threading and synchronization issues slow your development velocity?
- [ ] Does debugging across threads, processes, or devices consume excessive time?
- [ ] Is setting up communication between components complex and error-prone?
- [ ] Do remote failures and reconnections create cascading delays?
- [ ] Would location-transparent services simplify your architecture?

💡 **If you answered "Yes" to 3 or more**, Areg SDK will accelerate your development.

---

### How Areg SDK Solves This

Areg SDK eliminates infrastructure complexity with five core capabilities:

**1. Automated Threading Management**  
Thread creation, lifecycle, and message dispatch are fully managed by the framework. You define components and their dependencies - the framework handles threading, synchronization, and safe message passing between threads.

**2. Location-Transparent Services**  
Services work identically whether local (same thread), IPC (same machine), or remote (network). Change deployment without changing code.

**3. Self-Managing Service Mesh**  
Automatic discovery and routing across threads, processes, and devices. Services find each other with no configuration files, no manual wiring.

**4. Built-In Fault Tolerance**  
Components can join or leave dynamically. Watchdogs automatically restart failed threads. Systems stay operational under failure.

**5. Native Observability**  
Integrated distributed logging with visual analysis. Per-method execution timing enables performance profiling without external tools.

💡 **Best for:** Embedded to enterprise C++ applications on Linux, macOS and Windows, scaling from resource-constrained devices to high-performance server systems.  
⚠️ **Not for:** RTOS (planned), web services, or non-C++ ecosystems.

---

### Areg SDK vs. Alternatives

| Feature               | Areg SDK                            | gRPC / DDS / ZeroMQ                                  |
|-----------------------|----------------------------------|------------------------------------------------------|
| **Setup Complexity**  | ✅ Automated, zero boilerplate   | ⚠️ Manual configuration, [verbose setup](https://www.innoq.com/en/blog/2024/06/grpc/#whataresomechallengesofworkingwithgrpc) |
| **Threading**         | ✅ Automated threading           | ⚠️ Manual threading and synchronization              |
| **Code Generation**   | ✅ Full ORPC automation          | ⚠️ [Stubs only](https://grpc.io/docs/what-is-grpc/introduction/#overview), manual dispatch |
| **Service Discovery** | ✅ Built-in mesh management      | ✅ DDS: [native](https://opendds.readthedocs.io/en/latest-release/devguide/introduction_to_dds.html#discovery-matching-and-association), ⚠️ gRPC/ZeroMQ: [external](https://stackoverflow.com/questions/59398556/grpc-equivalent-of-wcf-service-discovery) |
| **Fault Recovery**    | ✅ Watchdog auto-restart         | ✅ DDS: [QoS policies](https://opendds.readthedocs.io/en/latest-release/devguide/quality_of_service.html), ⚠️ gRPC/ZeroMQ: [manual](https://grpc.io/docs/guides/retry/) |
| **Request-Reply**     | ✅ Native Object RPC             | ✅ gRPC: [RPC calls](https://grpc.io/docs/what-is-grpc/core-concepts/#overview), ⚠️ DDS/ZeroMQ: [topic/pattern](https://zguide.zeromq.org/docs/chapter3/) |
| **Pub/Sub**           | ✅ Native Attributes             | ✅ DDS: [topics](https://opendds.readthedocs.io/en/latest-release/devguide/built_in_topics.html), ⚠️ gRPC/ZeroMQ: add-ons |
| **API Consistency**   | ✅ Identical for threads and IPC | ⚠️ Different APIs for local vs. remote               |
| **Logging System**    | ✅ Distributed logs + viewer     | ⚠️ [Vendor-specific](https://community.rti.com/static/documentation/connext-dds/current/doc/manuals/addon_products/observability/telemetry_data/logs.html) or external tools |
| **Developer Speed**   | ✅ Faster via automation         | ⚠️ Slower, more boilerplate                          |

🔹 **Key Differentiators:**
- **Complete automation** - Not just transport, but threading, dispatch, and lifecycle
- **True location transparency** - Same interface whether thread, process, or network
- **Zero configuration** - Services auto-discover, no manual registry setup
- **Integrated stack** - Framework + Router + Tools + Logging in one cohesive SDK

<div align="right"><kbd><a href="#table-of-contents">↑ Back to top ↑</a></kbd></div>

---

## What is Areg SDK[![](./docs/img/pin.svg)](#what-is-areg-sdk)

**Areg SDK** is a complete toolkit for building service-oriented C++ systems, centered around the **Areg Framework** - a runtime that automates threading, IPC, and service orchestration using **interface-centric Object RPC (ORPC)**.

### The ORPC Model

Unlike traditional RPC that treats remote calls as simple functions, Areg's Object RPC represents services as **stateful objects** with:
- **Methods** - Request-reply interactions
- **Attributes** - Publish-subscribe data with automatic update notifications
- **Events** - Asynchronous notifications across service boundaries

This enables true **service-oriented architecture** where services are logical entities independent of physical location.

---

### What's Inside the SDK

**Core Runtime:**  
🔹 **Areg Framework** (`areg`) - The engine that automates threading, IPC, and service mesh  
🔹 **Multitarget Router** (`mtrouter`) - Central message router for inter-process and network communication

**Development Tools:**  
🔹 **Code Generator** (`codegen.jar`) - Eliminates boilerplate, generates service stubs from interfaces  
🔹 **[Lusan GUI](https://github.com/aregtech/areg-sdk-tools)** - Visual service designer and distributed log viewer

**Monitoring & Debug:**  
🔹 **Log Collector** (`logcollector`) + **Observer** (`logobserver`) - Distributed logging and real-time analysis  
🔹 **Areg Extend** - Additional utilities and extensions

> 📦 **All components** work together seamlessly with no integration glue required.

---

### How Location Transparency Works

With Areg SDK, you:
1. Define service interfaces (methods, attributes, events)
2. Run code generator to create base classes
3. Implement your business logic
4. Load services via model configuration

**The same service code runs:**
- **Multithreaded** - Components in different threads, same process
- **Multiprocess** - Components in different processes, same machine (requires `mtrouter`)
- **Multi-device** - Components across network devices (requires `mtrouter`)

**No code changes required** - just configuration. Example: [`03_helloservice`](./examples/03_helloservice) demonstrates this flexibility.

<div align="right"><kbd><a href="#table-of-contents">↑ Back to top ↑</a></kbd></div>

---

## Getting Started in 5 Minutes[![](./docs/img/pin.svg)](#getting-started-in-5-minutes)

### Prerequisites

- **C++17 compiler**: GCC, Clang, MSVC, or MinGW
- **CMake 3.20+**
- **Java 17+** (for code generation)
- **OS:** Linux, macOS or Windows  
- **Hardware:** x86, x86_64, ARM, AArch64 / arm64

See [CMake Configuration Guide](./docs/wiki/02d-cmake-config.md) for detailed setup and troubleshooting.

---

### Quick Build

```bash
git clone https://github.com/aregtech/areg-sdk.git
cd areg-sdk
cmake -B build
cmake --build build -j20
```

> [!TIP]
> These commands work in Linux or macOS Terminal, Windows CMD, or PowerShell.

---

### Run Your First Example

The [`01_minimalrpc`](./examples/01_minimalrpc/) example demonstrates automated multithreading:

**Example location after build:**
```bash
# Linux:
./product/build/gnu-g++/linux-64-x86_64-release-shared/bin/01_minimalrpc

# macOS:
./product/build/llvm-clang++/macos-64-arm64-release-shared/bin/01_minimalrpc

# Windows (adjust for compiler):
.\product\build\msvc-cl\windows-64-amd64-release-shared\bin\01_minimalrpc.exe
```

**What happens:**
- Service **Consumer** and **Provider** run in separate threads
- Consumer calls Provider's method asynchronously
- Communication is fully automated with zero manual wiring

**Message flow:**
```
🟢 main() → 🏗 load model → 🔗 auto-connect → 📤 Consumer request → 🖨 Provider prints → ✅ exit
```

---

### Understanding the Code

**1. Service Provider (responds to requests):**
```cpp
class ServiceProvider : public Component, protected HelloServiceStub {
public:
  ServiceProvider(const NERegistry::ComponentEntry& entry, ComponentThread& owner)
    : Component(entry, owner), HelloServiceStub(static_cast<Component&>(*this)) {}

  void requestHelloService() override {
    std::cout << "'Hello Service!'" << std::endl;
    Application::signalAppQuit();
  }
};
```

**2. Service Consumer (initiates requests):**
```cpp
class ServiceConsumer : public Component, protected HelloServiceClientBase {
public:
  ServiceConsumer(const NERegistry::ComponentEntry& entry, ComponentThread& owner)
    : Component(entry, owner)
    , HelloServiceClientBase(entry.mDependencyServices[0].mRoleName, owner) {}

  bool serviceConnected(NEService::eServiceConnection status, ProxyBase& proxy) override {
    HelloServiceClientBase::serviceConnected(status, proxy);
    if (NEService::isServiceConnected(status))
      requestHelloService();  // Service found, call it now
    return true;
  }
};
```

**3. Model (defines threads and dependencies):**
```cpp
BEGIN_MODEL("ServiceModel")
  BEGIN_REGISTER_THREAD("Thread1")
    BEGIN_REGISTER_COMPONENT("ServiceProvider", ServiceProvider)
      REGISTER_IMPLEMENT_SERVICE(NEHelloService::ServiceName, NEHelloService::InterfaceVersion)
    END_REGISTER_COMPONENT("ServiceProvider")
  END_REGISTER_THREAD("Thread1")

  BEGIN_REGISTER_THREAD("Thread2")
    BEGIN_REGISTER_COMPONENT("ServiceClient", ServiceConsumer)
      REGISTER_DEPENDENCY("ServiceProvider")
    END_REGISTER_COMPONENT("ServiceClient")
  END_REGISTER_THREAD("Thread2")
END_MODEL("ServiceModel")
```

**4. Main function (loads model and runs):**
```cpp
int main() {
  Application::initApplication();
  Application::loadModel("ServiceModel");
  Application::waitAppQuit(NECommon::WAIT_INFINITE);
  Application::releaseApplication();
  return 0;
}
```

📄 **Full source:** [examples/01_minimalrpc/src/main.cpp](./examples/01_minimalrpc/src/main.cpp)

---

### Learning Path

Follow this progression to master Areg SDK:

1. **[01_minimalrpc](examples/01_minimalrpc/)** - Start here: minimal RPC between components
2. **[02_minimalipc](examples/02_minimalipc/)** - IPC across processes (**requires `mtrouter`**)
3. **[03_helloservice](examples/03_helloservice/)** - Location transparency: same code, different deployment
4. **[23_pubdatarate](examples/23_pubdatarate/)** - High-throughput benchmark
5. **[More Examples](examples/README.md)** - Advanced patterns and features
6. **[Areg and Edge AI](https://github.com/aregtech/areg-edgeai)** - Real-world AI integration

> [!IMPORTANT]
> **IPC examples** require `mtrouter` to be running. See [mtrouter documentation](./docs/wiki/05a-mtrouter.md).

---

### Create Your Own Project

Use the project setup script to bootstrap a new Areg-based application:

**On Linux or macOS:**
```bash
./areg-sdk/tools/setup-project.sh
```

**On Windows:**
```bash
.\areg-sdk\tools\setup-project.bat
```

The script will:
- Prompt for project name and location
- Ask whether to create multithreaded or multiprocess architecture
- Generate ready-to-build project with CMake files
- Create "Hello Service" example as starting point

After generation, build with:
```bash
cd <your_project>
cmake -B build
cmake --build build -j20
```

For multiprocess projects, ensure `mtrouter` is running to enable Service Consumer-Provider communication.

---

### Integration Options

- **CMake FetchContent:** [Integration Guide](./docs/wiki/02b-cmake-integrate.md)
- **Demo Project:** [areg-sdk-demo](https://github.com/aregtech/areg-sdk-demo)
- **Qt Tools (Lusan):** [areg-sdk-tools](https://github.com/aregtech/areg-sdk-tools)
- **Edge AI Use Cases:** [areg-edgeai](https://github.com/aregtech/areg-edgeai)

> 💡 **Advanced builds** (IDE setup, cross-compilation, custom configurations) - see the [Wiki](./docs/wiki/).

<div align="right"><kbd><a href="#table-of-contents">↑ Back to top ↑</a></kbd></div>

---

## Architecture and Core Concepts[![](./docs/img/pin.svg)](#architecture-and-core-concepts)

### Modules Overview

| Module | Purpose | When Required |
|--------|---------|---------------|
| **[Areg Library](./docs/HelloService.md)**<br/>(`areg`) | Core framework automating Object RPC, threading,<br/>IPC routing, and fault recovery | ✅ Always |
| **[Code Generator](./docs/wiki/03a-code-generator.md)**<br/>(`codegen.jar`) | Generates service stubs from interface definitions,<br/>eliminating boilerplate | ✅ Build-time |
| **[Multitarget Router](./docs/wiki/05a-mtrouter.md)**<br/>(`mtrouter`) | Central message router for inter-process and<br/>network communication | ⚠️ IPC/Network only |
| **[Log Collector](./docs/wiki/04d-logcollector.md)**<br/>(`logcollector`) | Aggregates distributed logs for monitoring<br/>and debugging | ❌ Optional |
| **[Lusan GUI](https://github.com/aregtech/areg-sdk-tools)**<br/>(`lusan`) | Visual service designer and log analysis tool | ❌ Optional |
| **[Examples](./examples/README.md)** | Sample projects demonstrating SDK features | ❌ Optional |

---

### Interface-Centric Architecture

Areg's **Object RPC (ORPC)** model treats services as **stateful objects** rather than simple function calls. Applications expose **Service Providers** and interact via **Service Consumers**, with the **Multitarget Router** handling inter-process and network communication.

<div align="center"><a href="https://github.com/aregtech/areg-sdk/blob/master/docs/img/interface-centric.png"><img src="./docs/img/interface-centric.png" alt="Interface-centric communication diagram" style="width:50%;height:50%"/></a></div>

**Key architectural patterns:**
- **Request-Reply** - Traditional RPC method calls
- **Publish-Subscribe** - Automatic attribute updates across all subscribers
- **Event Broadcasting** - Asynchronous notifications to interested parties

This architecture supports **multithreading**, **multiprocessing**, and **multi-device** systems with consistent low-latency characteristics.

---

### Lusan Development Tool

**Lusan** streamlines service-oriented development with two core capabilities: **visual service design** and **distributed log analysis**.

#### Service Interface Designer

The visual designer enables rapid, error-free service definition with automatic code generation. Define methods, attributes, and events graphically - Lusan generates production-ready C++ code for both providers and consumers.

<div align="center"><a href="./docs/img/lusan-service-if-general.png"><img src="./docs/img/lusan-service-if-general.png" alt="Lusan Service Interface Designer" style="width:80%;height:80%"/></a></div>

**Benefits:**
- Visual clarity prevents interface design errors
- Consistent code generation eliminates manual mistakes
- Integrated documentation in the design process

📄 **Learn more:** [Service Interface Design Guide](./docs/wiki/06d-setup-lusan.md)

#### Live and Offline Log Viewer

Lusan's log viewer aggregates logs from multiple processes, supporting both **real-time monitoring** and **offline analysis** of recorded sessions.

**Key capabilities:**
- Real-time log aggregation across processes and devices
- Dynamic scope filtering and priority control at runtime
- Offline session replay for post-mortem debugging
- Performance profiling with per-method execution timing

<div align="center"><a href="./docs/img/lusan-live-log-scope-prio.png"><img src="./docs/img/lusan-live-log-scope-prio.png" alt="Lusan Log Viewer" style="width:80%;height:80%"/></a></div>

📄 **Documentation:**
- [Live Log Viewer Guide](./docs/wiki/06f-lusan-live-logging.md) - Real-time monitoring
- [Offline Log Viewer Guide](./docs/wiki/06g-lusan-offline-logging.md) - Session analysis

**In summary**, Lusan unifies service design and runtime observability, accelerating development cycles and enabling safer development of service-oriented systems.

<div align="right"><kbd><a href="#table-of-contents">↑ Back to top ↑</a></kbd></div>

---

## Real-World Use Cases[![](./docs/img/pin.svg)](#real-world-use-cases)

### Embedded and Edge AI Systems

AI-powered edge devices require coordinating multiple concurrent processes: data acquisition, preprocessing, inference, decision-making, monitoring, and connectivity. Areg SDK lets each stage run as an **independent service** with event-driven communication and automatic thread management.

<div align="center"><a href="https://github.com/aregtech/areg-sdk/blob/master/docs/img/areg-for-embedded-ai.png"><img src="./docs/img/areg-for-embedded-ai.png" alt="Modular AI pipeline architecture" style="width:40%;height:40%"/></a></div>

**Benefits:**
- **Modular pipelines** - Each AI stage (capture, preprocess, infer, decide) is isolated
- **Automatic concurrency** - Framework handles threading and synchronization
- **Real-time responsiveness** - Non-blocking architecture for fast control loops
- **Scalable orchestration** - Distribute AI workloads across devices seamlessly

> [!TIP]
> **See it in action:** [areg-edgeai](https://github.com/aregtech/areg-edgeai) - Real-world Edge AI integration examples

---

### IoT: Mist-to-Cloud Architecture

Traditional IoT architectures stream raw sensor data to distant cloud servers, creating latency, network congestion, and privacy concerns. With Areg SDK, devices form a **mist network** - a mesh of micro-services that process and aggregate data locally before sending refined insights to the cloud.

<div align="center"><a href="https://github.com/aregtech/areg-sdk/blob/master/docs/img/mist-network.png"><img src="./docs/img/mist-network.png" alt="Mist-to-Cloud network topology" style="width:70%;height:70%"/></a></div>

**Benefits:**
- **Low-latency processing** - Data analyzed at the edge, not in distant datacenters
- **Autonomous operation** - Edge mesh continues working during network outages
- **Enhanced privacy** - Sensitive data stays on-device; only insights leave the edge
- **Reduced cloud costs** - Less data transmission and cloud compute needed

---

### Simulation and Testing Environments

Validating service-oriented systems traditionally requires expensive hardware and complex test environments. Areg SDK enables **Data Layer simulation** in external applications, providing realistic test environments without physical devices. Services appear **location-transparent** to higher layers - tests can't distinguish simulated from real hardware.

<div align="center"><a href="https://github.com/aregtech/areg-sdk/blob/master/docs/img/software-layers.png"><img src="./docs/img/software-layers.png" alt="Software layer architecture with simulated Data Layer" style="width:70%;height:70%"/></a></div>

**Benefits:**
- **Hardware-independent testing** - Test logic layer without physical devices
- **Continuous integration** - Automated testing without hardware dependencies
- **Fault injection** - Safely simulate failures and test recovery mechanisms
- **Cost reduction** - Eliminate expensive test hardware and lab time

---

### Driverless Device Architecture

Traditional device drivers are slow to develop, complex to maintain, and platform-specific. Areg SDK lets you **expose hardware as portable services**, making devices platform-independent and network-accessible.

<div align="center"><a href="https://github.com/aregtech/areg-sdk/blob/master/docs/img/driverless-solution.png"><img src="./docs/img/driverless-solution.png" alt="Service-enabled driverless device architecture" style="width:70%;height:70%"/></a></div>

**Benefits:**
- **Faster development** - Accelerates prototyping and iteration
- **Platform independence** - Hardware abstracted as services
- **Network accessibility** - Devices accessible from anywhere on network
- **Early validation** - Test hardware integration before driver implementation

---

### Industry 4.0: Smart Manufacturing Systems

Traditional industrial automation relies on proprietary protocols and rigid architectures that make factory reconfiguration expensive and time-consuming. When production lines change, entire systems often require reprogramming. Areg SDK transforms factory components into **modular services** that communicate seamlessly, enabling flexible manufacturing systems that adapt to changing production needs.

<div align="center"><a href="https://github.com/aregtech/areg-sdk/blob/master/docs/img/areg-services.png"><img src="./docs/img/areg-services.png" alt="Service types and message flow" style="width:70%;height:70%"/></a></div>

**Service types:**
- **Local Services** - Confined within a single process, protecting sensitive data from external access
- **Public Services** - Accessible across processes and devices within the network created by `mtrouter`

**Benefits:**
- **Flexible reconfiguration** - Add or replace equipment without reprogramming entire production lines
- **Protocol independence** - Abstract proprietary industrial protocols behind unified service interfaces
- **Digital twin integration** - Services work identically on physical equipment and simulation environments
- **Predictive maintenance** - Distributed logging enables real-time equipment health monitoring
- **Reduced integration costs** - Modular services eliminate expensive custom integration code

**Typical applications:**
- Coordinating robotic cells with conveyor systems and quality inspection stations
- Integrating edge gateways with modern MES and SCADA systems
- Building reconfigurable production lines for small-batch manufacturing
- Creating digital twins for production optimization and operator training

<div align="right"><kbd><a href="#table-of-contents">↑ Back to top ↑</a></kbd></div>

---

## Roadmap[![](./docs/img/pin.svg)](#roadmap)

Areg SDK evolves continuously for desktop and embedded platforms, focusing on automation, reliability, platform expansion, and developer experience.

**2026 Priorities:**  
🎯 **Multi-channel support** - Multiplexed communications for higher throughput  
🎯 **Enhanced security** - Encryption, authentication, and authorization  
🎯 **RTOS support (Zephyr OS)** - Real-time embedded environments  
🎯 **Lusan improvements** - Enhanced performance and usability ([Areg SDK Tools](https://github.com/aregtech/areg-sdk-tools))  
🎯 **Expanded documentation** - More tutorials and real-world examples  
🎯 **Performance optimization** - Profiling tools and benchmark suite

**Future Vision:**  
🔮 Cross-language bindings (Python, Rust, etc.)  
🔮 Cloud integration patterns and deployment guides  
🔮 Container orchestration (Kubernetes, Docker Compose)  
🔮 Advanced debugging and profiling tools

> [!TIP]
> Influence the roadmap: Join [discussions](https://github.com/aregtech/areg-sdk/discussions) or contribute via [issues](https://github.com/aregtech/areg-sdk/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22).

<div align="right"><kbd><a href="#table-of-contents">↑ Back to top ↑</a></kbd></div>

---

## Documentation[![](./docs/img/pin.svg)](#documentation)

- **[Installation and Build](./docs/wiki/README.md#1-installation-and-build)** - Cross-platform builds, toolchains, CMake integration
- **[Build Options and Integrations](./docs/wiki/README.md#2-build-options-and-integrations)** - FetchContent, packaging, embedding
- **[Networking and Communication](./docs/wiki/README.md#3-networking-and-communication)** - Router setup, IPC, low-latency messaging
- **[Logging and Monitoring](./docs/wiki/README.md#4-logging-and-monitoring)** - Distributed logging for debugging
- **[Persistence](./docs/wiki/README.md#5-persistence)** - Local data storage
- **[Development and Testing Tools](./docs/wiki/README.md#6-development-and-testing-tools)** - Code generator, Lusan, testing utilities
- **[Troubleshooting](./docs/wiki/README.md#7-troubleshooting)** - Common issues and solutions
- **[Examples and Tests](./docs/wiki/README.md#8-examples-and-tests)** - Sample projects catalog
- **[HOWTO Guide](docs/HOWTO.md)** - Practical development tasks

<div align="right"><kbd><a href="#table-of-contents">↑ Back to top ↑</a></kbd></div>

---

## License[![](./docs/img/pin.svg)](#license)

Areg SDK is released under the **[Apache License 2.0](LICENSE.txt)** - a permissive license suitable for both open-source and commercial use.

**Commercial support:** Enterprise licensing, training, and dedicated support available. Visit **[areg.tech](https://www.areg.tech/)** or email **info[at]areg[dot]tech**.

<div align="right"><kbd><a href="#table-of-contents">↑ Back to top ↑</a></kbd></div>

---

## Community and Contribution[![](./docs/img/pin.svg)](#community-and-contribution)

🚀 **Join the Areg SDK community** and help shape the future of service-oriented C++ development:

- 🛠️ [Contribute to open issues](https://github.com/aregtech/areg-sdk/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) - Review [contribution guidelines](CONTRIBUTING.md) first
- 💡 Share ideas or request features via [issues](https://github.com/aregtech/areg-sdk/issues) or [discussions](https://github.com/aregtech/areg-sdk/discussions)
- 🔀 Submit pull requests following [contribution guidelines](CONTRIBUTING.md)
- ⭐ **Give us a star** if you find Areg SDK useful - it helps others discover the project
- 🌍 **Showcase your project** - Building with Areg SDK? [Share your work](https://github.com/aregtech/areg-sdk/discussions/new?category=show-and-tell)!

**Add this badge to projects built with Areg SDK:**
```markdown
[![Built with Areg SDK](https://img.shields.io/badge/Built%20with-Areg%20SDK-blue?style=flat-square&logo=cplusplus)](https://github.com/aregtech/areg-sdk)
```

<div align="right"><kbd><a href="#table-of-contents">↑ Back to top ↑</a></kbd></div>

---

**Follow Us:**  
[![X Follow](https://img.shields.io/twitter/follow/aregtech)](https://x.com/aregtech?lang=en)
[![LinkedIn](https://img.shields.io/badge/LinkedIn-Aregtech-blue?style=flat&logo=linkedin\&logoColor=b0c0c0\&labelColor=363D44)](https://www.linkedin.com/company/aregtech)
[![Gitter](https://badges.gitter.im/areg-sdk/community.svg)](https://gitter.im/areg-sdk/community)

---

================================================
FILE: Releases.md
================================================
# Release Notes

```
This document contains the release notes of Areg SDK project.
Copyright © Aregtech UG, 2021-2026
Contact: info[at]areg.tech
```

## Version 1.5.0

Release date: 15.06.2023

### New Features
- Build with CMake
- Compilation with CYGWIN
- Compilation with VSCode
- Service Watchdog
- Areg extended objects (Console)
- GTest integration for unit tests
- More examples

### Bugs fixes
- Application crash on exit (#96)
- Unexpected update notifications (#107)


### Documentation
- Wiki pages:
   * Clone source codes
   * Software build
   * Preprocessor define symbols
   * Compile with WSL
   * Areg Logging System
   * Areg Multitarget Router
   * Persistence Syntax

### Deprecated
- Eclipse build support

---

## Version 1.0.0

Release date: 11.11.2021

### New Features
- Areg interface-centric framework
- Build with MSVC
- Build with Makefile
- Build with Eclipse

---



================================================
FILE: areg-sdk.sln
================================================

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.2.32616.157
MinimumVisualStudioVersion = 16.0.0
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "areg", "framework\areg.vcxproj", "{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mtrouter", "framework\mtrouter.vcxproj", "{24A4F250-C09B-40BF-A6F2-25BD8ABBED6F}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3} = {FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3}
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{FD549A95-E734-4E26-A5B2-2330FC310C8D}"
	ProjectSection(SolutionItems) = preProject
		areg.cmake = areg.cmake
		CMakeLists.txt = CMakeLists.txt
		CODE_OF_CONDUCT.md = CODE_OF_CONDUCT.md
		CONTRIBUTING.md = CONTRIBUTING.md
		LICENSE.txt = LICENSE.txt
		msvc_setup.props = msvc_setup.props
		nuget.config = nuget.config
		README.md = README.md
		Releases.md = Releases.md
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{7D57975F-814D-4F13-9F2F-87B667937FC7}"
	ProjectSection(SolutionItems) = preProject
		tools\codegen.jar = tools\codegen.jar
		tools\codegenerate.bat = tools\codegenerate.bat
		tools\codegenerate.sh = tools\codegenerate.sh
		tools\README.md = tools\README.md
		tools\setup-project.bat = tools\setup-project.bat
		tools\setup-project.sh = tools\setup-project.sh
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{1D3709F1-9915-4CEA-A9F6-4D3FDFD79965}"
	ProjectSection(SolutionItems) = preProject
		docs\DEVELOP.md = docs\DEVELOP.md
		docs\HelloService.md = docs\HelloService.md
		docs\HelloService.siml = docs\HelloService.siml
		docs\HOWTO.md = docs\HOWTO.md
		docs\POSIX.md = docs\POSIX.md
		docs\README.md = docs\README.md
		docs\Sample.siml = docs\Sample.siml
		docs\Sample.xsd = docs\Sample.xsd
		docs\ServiceInterface.md = docs\ServiceInterface.md
		docs\USECASES.md = docs\USECASES.md
		docs\WIN32.md = docs\WIN32.md
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "conf", "conf", "{A9875C78-1248-4693-9310-5C46C73DDCEB}"
	ProjectSection(SolutionItems) = preProject
		conf\README.md = conf\README.md
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "msvc", "msvc", "{C0125346-EA97-4FE0-ABC8-592A556B3481}"
	ProjectSection(SolutionItems) = preProject
		conf\msvc\compile.props = conf\msvc\compile.props
		conf\msvc\project.props = conf\msvc\project.props
		conf\msvc\project_defaults.props = conf\msvc\project_defaults.props
		conf\msvc\user.props = conf\msvc\user.props
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "img", "img", "{7BD2AAAA-FA5E-4895-837F-4A24C85A851A}"
	ProjectSection(SolutionItems) = preProject
		docs\img\areg-for-embedded-ai.png = docs\img\areg-for-embedded-ai.png
		docs\img\areg-sdk-1280x360px-logo.png = docs\img\areg-sdk-1280x360px-logo.png
		docs\img\areg-sdk-1280x640px-light.png = docs\img\areg-sdk-1280x640px-light.png
		docs\img\areg-sdk-features.png = docs\img\areg-sdk-features.png
		docs\img\areg-sdk-media-1280x640.png = docs\img\areg-sdk-media-1280x640.png
		docs\img\areg-services.png = docs\img\areg-services.png
		docs\img\back-to-top.png = docs\img\back-to-top.png
		docs\img\contributors.svg = docs\img\contributors.svg
		docs\img\driver-solution.png = docs\img\driver-solution.png
		docs\img\driverless-solution.png = docs\img\driverless-solution.png
		docs\img\generated-sources.png = docs\img\generated-sources.png
		docs\img\interface-centric.png = docs\img\interface-centric.png
		docs\img\logo-aregtech.png = docs\img\logo-aregtech.png
		docs\img\logo-aregtech.svg = docs\img\logo-aregtech.svg
		docs\img\lusan-app.png = docs\img\lusan-app.png
		docs\img\lusan-live-log-columns.png = docs\img\lusan-live-log-columns.png
		docs\img\lusan-live-log-config.png = docs\img\lusan-live-log-config.png
		docs\img\lusan-live-log-connect.png = docs\img\lusan-live-log-connect.png
		docs\img\lusan-live-log-connected-apps.png = docs\img\lusan-live-log-connected-apps.png
		docs\img\lusan-live-log-duration.png = docs\img\lusan-live-log-duration.png
		docs\img\lusan-live-log-gen.png = docs\img\lusan-live-log-gen.png
		docs\img\lusan-live-log-message-prio.png = docs\img\lusan-live-log-message-prio.png
		docs\img\lusan-live-log-scope-analyzes.png = docs\img\lusan-live-log-scope-analyzes.png
		docs\img\lusan-live-log-scope-log-prio.png = docs\img\lusan-live-log-scope-log-prio.png
		docs\img\lusan-live-log-scope-prio.png = docs\img\lusan-live-log-scope-prio.png
		docs\img\lusan-navigation-logs.png = docs\img\lusan-navigation-logs.png
		docs\img\lusan-offline-log-gen.png = docs\img\lusan-offline-log-gen.png
		docs\img\lusan-offline-log-scope-prio.png = docs\img\lusan-offline-log-scope-prio.png
		docs\img\lusan-offline-log-scopes.png = docs\img\lusan-offline-log-scopes.png
		docs\img\lusan-option-logcollector.png = docs\img\lusan-option-logcollector.png
		docs\img\lusan-option-workspace-dirs.png = docs\img\lusan-option-workspace-dirs.png
		docs\img\lusan-option-workspace-list.png = docs\img\lusan-option-workspace-list.png
		docs\img\lusan-service-if-attributes.png = docs\img\lusan-service-if-attributes.png
		docs\img\lusan-service-if-constants.png = docs\img\lusan-service-if-constants.png
		docs\img\lusan-service-if-data-types.png = docs\img\lusan-service-if-data-types.png
		docs\img\lusan-service-if-general.png = docs\img\lusan-service-if-general.png
		docs\img\lusan-service-if-includes.png = docs\img\lusan-service-if-includes.png
		docs\img\lusan-service-if-methods.png = docs\img\lusan-service-if-methods.png
		docs\img\lusan-service-if-new-doc.png = docs\img\lusan-service-if-new-doc.png
		docs\img\lusan-service-if-overview.png = docs\img\lusan-service-if-overview.png
		docs\img\lusan-si-start-app.png = docs\img\lusan-si-start-app.png
		docs\img\lusan-workspace-setup.png = docs\img\lusan-workspace-setup.png
		docs\img\mist-network.png = docs\img\mist-network.png
		docs\img\pin.svg = docs\img\pin.svg
		docs\img\software-layers.png = docs\img\software-layers.png
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "cmake", "cmake", "{5E95D089-DBB0-467A-BC0A-B00B9297023A}"
	ProjectSection(SolutionItems) = preProject
		conf\cmake\clang.cmake = conf\cmake\clang.cmake
		conf\cmake\common.cmake = conf\cmake\common.cmake
		conf\cmake\functions.cmake = conf\cmake\functions.cmake
		conf\cmake\gnu.cmake = conf\cmake\gnu.cmake
		conf\cmake\install.cmake = conf\cmake\install.cmake
		conf\cmake\msvc.cmake = conf\cmake\msvc.cmake
		conf\cmake\setup.cmake = conf\cmake\setup.cmake
		conf\cmake\user.cmake = conf\cmake\user.cmake
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "examples", "examples", "{07BFF46A-D4BC-4FAD-9727-D959755BFBAC}"
	ProjectSection(SolutionItems) = preProject
		examples\CMakeLists.txt = examples\CMakeLists.txt
		examples\examples_generate.bat = examples\examples_generate.bat
		examples\README.md = examples\README.md
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "03_helloservice", "03_helloservice", "{2DF9C20F-08BB-475B-8901-C1A64D88BA8A}"
	ProjectSection(SolutionItems) = preProject
		examples\03_helloservice\CMakeLists.txt = examples\03_helloservice\CMakeLists.txt
		examples\03_helloservice\ReadMe.md = examples\03_helloservice\ReadMe.md
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "03_generated", "examples\03_helloservice\03_generated.vcxproj", "{92CF6BFF-1A9A-455A-9252-BF6D120C3CC9}"
	ProjectSection(ProjectDependencies) = postProject
		{98743716-82FC-4B02-96AF-E6F649403A0A} = {98743716-82FC-4B02-96AF-E6F649403A0A}
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "services", "services", "{5B537BA4-4245-4E64-93E9-E35738AB22B3}"
	ProjectSection(SolutionItems) = preProject
		examples\03_helloservice\services\HelloService.siml = examples\03_helloservice\services\HelloService.siml
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "03_onethread", "examples\03_helloservice\03_onethread.vcxproj", "{FE25F3A4-FB2F-47AE-89FA-7399D5475E6D}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{92CF6BFF-1A9A-455A-9252-BF6D120C3CC9} = {92CF6BFF-1A9A-455A-9252-BF6D120C3CC9}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "03_twothreads", "examples\03_helloservice\03_twothreads.vcxproj", "{CF1C33CA-6F11-4B5C-B92B-F0138B90B956}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{92CF6BFF-1A9A-455A-9252-BF6D120C3CC9} = {92CF6BFF-1A9A-455A-9252-BF6D120C3CC9}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "03_serviceproc", "examples\03_helloservice\03_serviceproc.vcxproj", "{70CAB882-8FA3-4E1C-930D-53F7DA29D1E4}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{92CF6BFF-1A9A-455A-9252-BF6D120C3CC9} = {92CF6BFF-1A9A-455A-9252-BF6D120C3CC9}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "03_clientproc", "examples\03_helloservice\03_clientproc.vcxproj", "{7F508C90-D49D-4E26-B7B0-3CBCA677A272}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{92CF6BFF-1A9A-455A-9252-BF6D120C3CC9} = {92CF6BFF-1A9A-455A-9252-BF6D120C3CC9}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "04_hellothread", "examples\04_hellothread\04_hellothread.vcxproj", "{2BCCB75A-D179-4DB4-9B50-BF6F501B5CAE}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "05_buffer", "examples\05_buffer\05_buffer.vcxproj", "{5B49EFBF-FC6B-4016-BC84-77784BF37944}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "06_file", "examples\06_file\06_file.vcxproj", "{13E221EB-7446-49CB-8150-2575425667BF}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "07_logging", "examples\07_logging\07_logging.vcxproj", "{18F81610-018F-4FE9-9B33-D2060E0F2CB6}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "08_timer", "examples\08_timer\08_timer.vcxproj", "{09DBC624-4CBA-4345-B8F1-A2786F00A615}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "09_threads", "examples\09_threads\09_threads.vcxproj", "{CEFC6857-FA75-4334-AB78-F3AC6CB54942}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "10_sync", "examples\10_sync\10_sync.vcxproj", "{0450B090-2EAA-4454-944E-ABD6CFFD26F9}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "11_service", "examples\11_service\11_service.vcxproj", "{ABEE2F20-BB60-434F-92D8-75DB71020E01}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "12_svcmulti", "examples\12_svcmulti\12_svcmulti.vcxproj", "{88DC6432-0356-43A9-821B-2444C564BDF2}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "13_locsvc", "13_locsvc", "{F99F67DA-37F9-46DD-A416-64C930758DE5}"
	ProjectSection(SolutionItems) = preProject
		examples\13_locsvc\CMakeLists.txt = examples\13_locsvc\CMakeLists.txt
		examples\13_locsvc\ReadMe.md = examples\13_locsvc\ReadMe.md
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "services", "services", "{B3924215-AD6D-45DA-81D7-FE5D406A677B}"
	ProjectSection(SolutionItems) = preProject
		examples\13_locsvc\services\HelloWorld.siml = examples\13_locsvc\services\HelloWorld.siml
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "13_generated", "examples\13_locsvc\13_generated.vcxproj", "{4056956C-7E12-4432-86F8-D900A52866A4}"
	ProjectSection(ProjectDependencies) = postProject
		{98743716-82FC-4B02-96AF-E6F649403A0A} = {98743716-82FC-4B02-96AF-E6F649403A0A}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "13_locservice", "examples\13_locsvc\13_locservice.vcxproj", "{8273239C-C5A8-4752-9DFC-E1678222C36E}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{4056956C-7E12-4432-86F8-D900A52866A4} = {4056956C-7E12-4432-86F8-D900A52866A4}
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "14_locmesh", "14_locmesh", "{35133FDA-2CD3-4BAD-9C54-145DC4DC787A}"
	ProjectSection(SolutionItems) = preProject
		examples\14_locmesh\CMakeLists.txt = examples\14_locmesh\CMakeLists.txt
		examples\14_locmesh\ReadMe.md = examples\14_locmesh\ReadMe.md
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "services", "services", "{FBEE67BE-BFF5-43BB-A9DB-2E8A65734B3D}"
	ProjectSection(SolutionItems) = preProject
		examples\14_locmesh\services\HelloWorld.siml = examples\14_locmesh\services\HelloWorld.siml
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "14_generated", "examples\14_locmesh\14_generated.vcxproj", "{1D3A6135-F0EE-4531-B682-55270B70B699}"
	ProjectSection(ProjectDependencies) = postProject
		{98743716-82FC-4B02-96AF-E6F649403A0A} = {98743716-82FC-4B02-96AF-E6F649403A0A}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "14_localmesh", "examples\14_locmesh\14_localmesh.vcxproj", "{18CE1C5F-A87D-42E2-B9F8-89FDD6ECE323}"
	ProjectSection(ProjectDependencies) = postProject
		{1D3A6135-F0EE-4531-B682-55270B70B699} = {1D3A6135-F0EE-4531-B682-55270B70B699}
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "15_pubsvc", "15_pubsvc", "{13F637CA-7D9B-4218-8B55-D415897B8DE0}"
	ProjectSection(SolutionItems) = preProject
		examples\15_pubsvc\CMakeLists.txt = examples\15_pubsvc\CMakeLists.txt
		examples\15_pubsvc\ReadMe.md = examples\15_pubsvc\ReadMe.md
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "services", "services", "{9235A909-A2F2-4C90-977A-DA514B76BBE5}"
	ProjectSection(SolutionItems) = preProject
		examples\15_pubsvc\services\HelloWorld.siml = examples\15_pubsvc\services\HelloWorld.siml
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "15_generated", "examples\15_pubsvc\15_generated.vcxproj", "{CCBBF424-D22D-480F-A13E-28095E33827C}"
	ProjectSection(ProjectDependencies) = postProject
		{98743716-82FC-4B02-96AF-E6F649403A0A} = {98743716-82FC-4B02-96AF-E6F649403A0A}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "15_pubclient", "examples\15_pubsvc\15_pubclient.vcxproj", "{C6AEF053-AA0C-46A8-A2F2-4330021D2DE2}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{CCBBF424-D22D-480F-A13E-28095E33827C} = {CCBBF424-D22D-480F-A13E-28095E33827C}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "15_pubservice", "examples\15_pubsvc\15_pubservice.vcxproj", "{D20E2DBD-4224-479D-9608-5BC062A48BE4}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{CCBBF424-D22D-480F-A13E-28095E33827C} = {CCBBF424-D22D-480F-A13E-28095E33827C}
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "16_pubmesh", "16_pubmesh", "{BB26B4E2-9A39-4CD5-8BE0-A14BA7BE2D5D}"
	ProjectSection(SolutionItems) = preProject
		examples\16_pubmesh\CMakeLists.txt = examples\16_pubmesh\CMakeLists.txt
		examples\16_pubmesh\ReadMe.md = examples\16_pubmesh\ReadMe.md
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "services", "services", "{08364AF0-D407-4FEC-A759-A4499EE45A59}"
	ProjectSection(SolutionItems) = preProject
		examples\16_pubmesh\services\LocalHelloWorld.siml = examples\16_pubmesh\services\LocalHelloWorld.siml
		examples\16_pubmesh\services\PublicHelloWorld.siml = examples\16_pubmesh\services\PublicHelloWorld.siml
		examples\16_pubmesh\services\SystemShutdown.siml = examples\16_pubmesh\services\SystemShutdown.siml
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "16_generated", "examples\16_pubmesh\16_generated.vcxproj", "{D708316F-7E34-4E09-A782-4021C5500C0D}"
	ProjectSection(ProjectDependencies) = postProject
		{98743716-82FC-4B02-96AF-E6F649403A0A} = {98743716-82FC-4B02-96AF-E6F649403A0A}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "16_pubclients", "examples\16_pubmesh\16_pubclients.vcxproj", "{CC971823-8685-4102-B7E6-E56E31C02370}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{5372A6CE-25DA-4E7D-9EC5-8F99A74BF4E7} = {5372A6CE-25DA-4E7D-9EC5-8F99A74BF4E7}
		{D708316F-7E34-4E09-A782-4021C5500C0D} = {D708316F-7E34-4E09-A782-4021C5500C0D}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "16_pubsvcmesh", "examples\16_pubmesh\16_pubsvcmesh.vcxproj", "{2600865C-8A10-4404-B05D-8F3CAE3FC417}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{5372A6CE-25DA-4E7D-9EC5-8F99A74BF4E7} = {5372A6CE-25DA-4E7D-9EC5-8F99A74BF4E7}
		{D708316F-7E34-4E09-A782-4021C5500C0D} = {D708316F-7E34-4E09-A782-4021C5500C0D}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "16_pubservice", "examples\16_pubmesh\16_pubservice.vcxproj", "{61FF9AD1-F474-4990-9DE5-FA30260B9D39}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{5372A6CE-25DA-4E7D-9EC5-8F99A74BF4E7} = {5372A6CE-25DA-4E7D-9EC5-8F99A74BF4E7}
		{D708316F-7E34-4E09-A782-4021C5500C0D} = {D708316F-7E34-4E09-A782-4021C5500C0D}
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "17_pubtraffic", "17_pubtraffic", "{5EB605B1-44A1-4C33-B5BA-23AFEA531487}"
	ProjectSection(SolutionItems) = preProject
		examples\17_pubtraffic\CMakeLists.txt = examples\17_pubtraffic\CMakeLists.txt
		examples\17_pubtraffic\ReadMe.md = examples\17_pubtraffic\ReadMe.md
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "services", "services", "{0AC9ECDD-CCF4-4E61-BAD3-EF379002EDCE}"
	ProjectSection(SolutionItems) = preProject
		examples\17_pubtraffic\services\SimpleTrafficLight.siml = examples\17_pubtraffic\services\SimpleTrafficLight.siml
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "17_generated", "examples\17_pubtraffic\17_generated.vcxproj", "{5B38C49F-3C26-43CD-B457-75806BFE69EC}"
	ProjectSection(ProjectDependencies) = postProject
		{98743716-82FC-4B02-96AF-E6F649403A0A} = {98743716-82FC-4B02-96AF-E6F649403A0A}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "17_pubclient", "examples\17_pubtraffic\17_pubclient.vcxproj", "{28F7BC4C-5CAD-457D-B208-9E92759910E7}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{5B38C49F-3C26-43CD-B457-75806BFE69EC} = {5B38C49F-3C26-43CD-B457-75806BFE69EC}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "17_pubservice", "examples\17_pubtraffic\17_pubservice.vcxproj", "{2BE2FB7A-E258-4AE1-A744-D52BD7ACC548}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{5B38C49F-3C26-43CD-B457-75806BFE69EC} = {5B38C49F-3C26-43CD-B457-75806BFE69EC}
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "18_pubworker", "18_pubworker", "{5EE61717-AD86-46E4-B4D0-5AA9280B0E09}"
	ProjectSection(SolutionItems) = preProject
		examples\18_pubworker\CMakeLists.txt = examples\18_pubworker\CMakeLists.txt
		examples\18_pubworker\ReadMe.md = examples\18_pubworker\ReadMe.md
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "services", "services", "{8B53447D-2482-4219-93DA-D33C2F899B71}"
	ProjectSection(SolutionItems) = preProject
		examples\18_pubworker\services\PatientInformation.siml = examples\18_pubworker\services\PatientInformation.siml
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "18_generated", "examples\18_pubworker\18_generated.vcxproj", "{68C8AE77-005B-4F81-8876-5A87A69823E3}"
	ProjectSection(ProjectDependencies) = postProject
		{98743716-82FC-4B02-96AF-E6F649403A0A} = {98743716-82FC-4B02-96AF-E6F649403A0A}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "18_pubclient", "examples\18_pubworker\18_pubclient.vcxproj", "{1EB10EE3-1F75-440E-94EE-D74FCF7CA79E}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{68C8AE77-005B-4F81-8876-5A87A69823E3} = {68C8AE77-005B-4F81-8876-5A87A69823E3}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "18_pubservice", "examples\18_pubworker\18_pubservice.vcxproj", "{4FF0146F-F69B-4566-8679-A190632A0958}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{68C8AE77-005B-4F81-8876-5A87A69823E3} = {68C8AE77-005B-4F81-8876-5A87A69823E3}
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "19_pubfsm", "19_pubfsm", "{7955A5EE-8C1E-4BE2-BE4F-55839EDC4E3C}"
	ProjectSection(SolutionItems) = preProject
		examples\19_pubfsm\CMakeLists.txt = examples\19_pubfsm\CMakeLists.txt
		examples\19_pubfsm\ReadMe.md = examples\19_pubfsm\ReadMe.md
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "services", "services", "{58982601-1D8A-4F81-A69E-1D148C667937}"
	ProjectSection(SolutionItems) = preProject
		examples\19_pubfsm\services\PowerManager.siml = examples\19_pubfsm\services\PowerManager.siml
		examples\19_pubfsm\services\TrafficController.siml = examples\19_pubfsm\services\TrafficController.siml
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "19_generated", "examples\19_pubfsm\19_generated.vcxproj", "{AA7F1615-AF3B-465F-A2CE-6A9AD1786F8B}"
	ProjectSection(ProjectDependencies) = postProject
		{98743716-82FC-4B02-96AF-E6F649403A0A} = {98743716-82FC-4B02-96AF-E6F649403A0A}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "19_pubclient", "examples\19_pubfsm\19_pubclient.vcxproj", "{C23BA253-475E-49DD-A92E-616C2A93831A}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{AA7F1615-AF3B-465F-A2CE-6A9AD1786F8B} = {AA7F1615-AF3B-465F-A2CE-6A9AD1786F8B}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "19_pubservice", "examples\19_pubfsm\19_pubservice.vcxproj", "{57693047-C0E4-4183-91B5-8BCAB76F1B7D}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{AA7F1615-AF3B-465F-A2CE-6A9AD1786F8B} = {AA7F1615-AF3B-465F-A2CE-6A9AD1786F8B}
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "20_winchat", "20_winchat", "{503FAC02-04F9-466D-B783-4608413BDFBA}"
	ProjectSection(SolutionItems) = preProject
		examples\20_winchat\CMakeLists.txt = examples\20_winchat\CMakeLists.txt
		examples\20_winchat\ReadMe.md = examples\20_winchat\ReadMe.md
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "services", "services", "{DF308E31-0D12-4B57-93CE-770B2D538DB1}"
	ProjectSection(SolutionItems) = preProject
		examples\20_winchat\services\CentralMessager.siml = examples\20_winchat\services\CentralMessager.siml
		examples\20_winchat\services\ConnectionManager.siml = examples\20_winchat\services\ConnectionManager.siml
		examples\20_winchat\services\DirectConnection.siml = examples\20_winchat\services\DirectConnection.siml
		examples\20_winchat\services\DirectMessager.siml = examples\20_winchat\services\DirectMessager.siml
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "20_generated", "examples\20_winchat\20_generated.vcxproj", "{BAD5F8A5-B916-4E76-8594-78B003C1155B}"
	ProjectSection(ProjectDependencies) = postProject
		{98743716-82FC-4B02-96AF-E6F649403A0A} = {98743716-82FC-4B02-96AF-E6F649403A0A}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "20_chatter", "examples\20_winchat\20_chatter.vcxproj", "{DB6BDE22-DB74-49FD-AB01-8DB5FCEE16FD}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{BAD5F8A5-B916-4E76-8594-78B003C1155B} = {BAD5F8A5-B916-4E76-8594-78B003C1155B}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "20_register", "examples\20_winchat\20_register.vcxproj", "{B8884358-CC9D-41DB-A352-9EDA045DFD7A}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{BAD5F8A5-B916-4E76-8594-78B003C1155B} = {BAD5F8A5-B916-4E76-8594-78B003C1155B}
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "21_locwatchdog", "21_locwatchdog", "{83821483-D719-475B-88E3-F548C267E3AB}"
	ProjectSection(SolutionItems) = preProject
		examples\21_locwatchdog\CMakeLists.txt = examples\21_locwatchdog\CMakeLists.txt
		examples\21_locwatchdog\ReadMe.md = examples\21_locwatchdog\ReadMe.md
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "21_generated", "examples\21_locwatchdog\21_generated.vcxproj", "{38A88D1E-B86C-48E2-9B9E-68F672388734}"
	ProjectSection(ProjectDependencies) = postProject
		{98743716-82FC-4B02-96AF-E6F649403A0A} = {98743716-82FC-4B02-96AF-E6F649403A0A}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "21_locservice", "examples\21_locwatchdog\21_locservice.vcxproj", "{766E4B9C-F428-4289-8975-DC3D22EEDBF6}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{38A88D1E-B86C-48E2-9B9E-68F672388734} = {38A88D1E-B86C-48E2-9B9E-68F672388734}
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "22_pubwatchdog", "22_pubwatchdog", "{E5D433F5-DBA3-45D5-8A7A-32A10566AA8E}"
	ProjectSection(SolutionItems) = preProject
		examples\22_pubwatchdog\CMakeLists.txt = examples\22_pubwatchdog\CMakeLists.txt
		examples\22_pubwatchdog\ReadMe.md = examples\22_pubwatchdog\ReadMe.md
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "22_generated", "examples\22_pubwatchdog\22_generated.vcxproj", "{F6570975-AE13-41EB-8465-066A6766C211}"
	ProjectSection(ProjectDependencies) = postProject
		{98743716-82FC-4B02-96AF-E6F649403A0A} = {98743716-82FC-4B02-96AF-E6F649403A0A}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "22_pubclient", "examples\22_pubwatchdog\22_pubclient.vcxproj", "{7ECC4BF9-45A4-4774-869B-239E3B152E05}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{F6570975-AE13-41EB-8465-066A6766C211} = {F6570975-AE13-41EB-8465-066A6766C211}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "22_pubservice", "examples\22_pubwatchdog\22_pubservice.vcxproj", "{3A13DBD7-D3CA-4908-8B76-9F8AEB5EC81B}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{F6570975-AE13-41EB-8465-066A6766C211} = {F6570975-AE13-41EB-8465-066A6766C211}
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "23_pubdatarate", "23_pubdatarate", "{840A1C6C-5940-4464-AF58-DBA24484C64F}"
	ProjectSection(SolutionItems) = preProject
		examples\23_pubdatarate\CMakeLists.txt = examples\23_pubdatarate\CMakeLists.txt
		examples\23_pubdatarate\ReadMe.md = examples\23_pubdatarate\ReadMe.md
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "multiprocess", "multiprocess", "{9DFC39D1-06B5-4E91-972D-1749CE02ED7F}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "onethread", "onethread", "{9563EACE-4C0C-49D2-8DC7-37261B140F7A}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "twothreads", "twothreads", "{A635554F-60C0-4415-A6BD-A5A47C0D9221}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "23_generated", "examples\23_pubdatarate\23_generated.vcxproj", "{B8900569-8956-47AF-A2E7-50EB1DD788DD}"
	ProjectSection(ProjectDependencies) = postProject
		{98743716-82FC-4B02-96AF-E6F649403A0A} = {98743716-82FC-4B02-96AF-E6F649403A0A}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "23_pubclient", "examples\23_pubdatarate\23_pubclient.vcxproj", "{70307B6F-61D5-4015-8578-E0E3549B7AB9}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{B8900569-8956-47AF-A2E7-50EB1DD788DD} = {B8900569-8956-47AF-A2E7-50EB1DD788DD}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "23_pubservice", "examples\23_pubdatarate\23_pubservice.vcxproj", "{2F18E4B1-966E-4A8D-B91E-8F216186A6E3}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{B8900569-8956-47AF-A2E7-50EB1DD788DD} = {B8900569-8956-47AF-A2E7-50EB1DD788DD}
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "services", "services", "{C8E80B4D-FE97-48F9-A056-F916E6897CE4}"
	ProjectSection(SolutionItems) = preProject
		examples\21_locwatchdog\services\HelloWatchdog.siml = examples\21_locwatchdog\services\HelloWatchdog.siml
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "services", "services", "{5DF9E173-0D3F-4D4B-A838-37ED95A093FC}"
	ProjectSection(SolutionItems) = preProject
		examples\22_pubwatchdog\services\HelloWatchdog.siml = examples\22_pubwatchdog\services\HelloWatchdog.siml
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "services", "services", "{5EBF83AB-0028-4075-AA32-CA3EBEA4B7A0}"
	ProjectSection(SolutionItems) = preProject
		examples\23_pubdatarate\services\LargeData.siml = examples\23_pubdatarate\services\LargeData.siml
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "16_common", "examples\16_pubmesh\16_common.vcxproj", "{5372A6CE-25DA-4E7D-9EC5-8F99A74BF4E7}"
	ProjectSection(ProjectDependencies) = postProject
		{D708316F-7E34-4E09-A782-4021C5500C0D} = {D708316F-7E34-4E09-A782-4021C5500C0D}
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "24_pubunblock", "24_pubunblock", "{967610F9-FBB0-4793-9E76-F500C4167FCE}"
	ProjectSection(SolutionItems) = preProject
		examples\24_pubunblock\CMakeLists.txt = examples\24_pubunblock\CMakeLists.txt
		examples\24_pubunblock\ReadMe.md = examples\24_pubunblock\ReadMe.md
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "24_generated", "examples\24_pubunblock\24_generated.vcxproj", "{EB228067-EA4D-452C-91FC-91DB3B445C31}"
	ProjectSection(ProjectDependencies) = postProject
		{98743716-82FC-4B02-96AF-E6F649403A0A} = {98743716-82FC-4B02-96AF-E6F649403A0A}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "24_pubclient", "examples\24_pubunblock\24_pubclient.vcxproj", "{A09D9D20-FBB8-4C1A-8628-3071AC7903DA}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{EB228067-EA4D-452C-91FC-91DB3B445C31} = {EB228067-EA4D-452C-91FC-91DB3B445C31}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "24_pubservice", "examples\24_pubunblock\24_pubservice.vcxproj", "{D89AC0DB-DFF2-4F15-8A26-63D51EDABB57}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{EB228067-EA4D-452C-91FC-91DB3B445C31} = {EB228067-EA4D-452C-91FC-91DB3B445C31}
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{93F005FC-C82E-41C7-AD15-C2F7C8287BFF}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "units", "units", "{48E60088-F431-4FFB-A170-31DAF8EC2DC8}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "areg-unit-tests", "tests\areg-unit-tests.vcxproj", "{E8BD18E5-EF07-42A0-BB98-461F3D9BCDE1}"
	ProjectSection(ProjectDependencies) = postProject
		{FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3} = {FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3}
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "services", "services", "{C485A89F-A149-4893-A023-253593403974}"
	ProjectSection(SolutionItems) = preProject
		examples\24_pubunblock\services\HelloUnblock.siml = examples\24_pubunblock\services\HelloUnblock.siml
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "logcollector", "framework\logcollector.vcxproj", "{0A2D4D13-6AC2-4602-BF8F-DA73133C1974}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3} = {FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aregextend", "framework\aregextend.vcxproj", "{FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "25_generated", "examples\25_pubsub\25_generated.vcxproj", "{73EC875E-F233-4FA9-B3AF-E2981EA59B3A}"
	ProjectSection(ProjectDependencies) = postProject
		{98743716-82FC-4B02-96AF-E6F649403A0A} = {98743716-82FC-4B02-96AF-E6F649403A0A}
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "25_pubsub", "25_pubsub", "{285E5D8D-7561-4FA9-9B90-89054E8EE93F}"
	ProjectSection(SolutionItems) = preProject
		examples\25_pubsub\CMakeLists.txt = examples\25_pubsub\CMakeLists.txt
		examples\25_pubsub\ReadMe.md = examples\25_pubsub\ReadMe.md
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "services", "services", "{29121F55-3BA7-4701-9C44-2B1BA5103A5F}"
	ProjectSection(SolutionItems) = preProject
		examples\25_pubsub\services\PubSub.siml = examples\25_pubsub\services\PubSub.siml
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "25_publisher", "examples\25_pubsub\25_publisher.vcxproj", "{DFA66387-8E95-4745-9DEB-AC4A82165F9A}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{73EC875E-F233-4FA9-B3AF-E2981EA59B3A} = {73EC875E-F233-4FA9-B3AF-E2981EA59B3A}
		{FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3} = {FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "25_subscriber", "examples\25_pubsub\25_subscriber.vcxproj", "{2AC5EE08-C6FC-4224-8250-F3586B81E2E5}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{73EC875E-F233-4FA9-B3AF-E2981EA59B3A} = {73EC875E-F233-4FA9-B3AF-E2981EA59B3A}
		{FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3} = {FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3}
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "26_pubsubmix", "26_pubsubmix", "{5CB52248-C396-4985-BB18-266DACF7838C}"
	ProjectSection(SolutionItems) = preProject
		examples\26_pubsubmix\CMakeLists.txt = examples\26_pubsubmix\CMakeLists.txt
		examples\26_pubsubmix\ReadMe.md = examples\26_pubsubmix\ReadMe.md
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "26_generated", "examples\26_pubsubmix\26_generated.vcxproj", "{D6A76B16-C1F9-4FCC-B625-74471FA47BD6}"
	ProjectSection(ProjectDependencies) = postProject
		{98743716-82FC-4B02-96AF-E6F649403A0A} = {98743716-82FC-4B02-96AF-E6F649403A0A}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "26_pubsubctrl", "examples\26_pubsubmix\26_pubsubctrl.vcxproj", "{175B6636-9885-40EF-8748-37136DEB5122}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{6C5C01FA-1F9B-4132-881C-14C18EC15FA9} = {6C5C01FA-1F9B-4132-881C-14C18EC15FA9}
		{D6A76B16-C1F9-4FCC-B625-74471FA47BD6} = {D6A76B16-C1F9-4FCC-B625-74471FA47BD6}
		{FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3} = {FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "26_pubsubdyn", "examples\26_pubsubmix\26_pubsubdyn.vcxproj", "{16B91C15-D6ED-49F7-9C67-CEA02DD56FCB}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{6C5C01FA-1F9B-4132-881C-14C18EC15FA9} = {6C5C01FA-1F9B-4132-881C-14C18EC15FA9}
		{D6A76B16-C1F9-4FCC-B625-74471FA47BD6} = {D6A76B16-C1F9-4FCC-B625-74471FA47BD6}
		{FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3} = {FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3}
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "services", "services", "{E74A499A-2B19-4EC5-ADCC-549565C9F2A9}"
	ProjectSection(SolutionItems) = preProject
		examples\26_pubsubmix\services\PubSubMix.siml = examples\26_pubsubmix\services\PubSubMix.siml
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "26_common", "examples\26_pubsubmix\26_common.vcxproj", "{6C5C01FA-1F9B-4132-881C-14C18EC15FA9}"
	ProjectSection(ProjectDependencies) = postProject
		{D6A76B16-C1F9-4FCC-B625-74471FA47BD6} = {D6A76B16-C1F9-4FCC-B625-74471FA47BD6}
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "27_pubsubmulti", "27_pubsubmulti", "{7B7FB883-C82B-45F1-BCEA-0E97E8BAD476}"
	ProjectSection(SolutionItems) = preProject
		examples\27_pubsubmulti\CMakeLists.txt = examples\27_pubsubmulti\CMakeLists.txt
		examples\27_pubsubmulti\ReadMe.md = examples\27_pubsubmulti\ReadMe.md
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "27_generated", "examples\27_pubsubmulti\27_generated.vcxproj", "{76479E1B-8BD5-4143-897F-F1E93DC1C64B}"
	ProjectSection(ProjectDependencies) = postProject
		{98743716-82FC-4B02-96AF-E6F649403A0A} = {98743716-82FC-4B02-96AF-E6F649403A0A}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "27_publisher", "examples\27_pubsubmulti\27_publisher.vcxproj", "{383F6294-1771-4E78-B5CB-61B04F6BD660}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{76479E1B-8BD5-4143-897F-F1E93DC1C64B} = {76479E1B-8BD5-4143-897F-F1E93DC1C64B}
		{FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3} = {FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "27_subscribermulti", "examples\27_pubsubmulti\27_subscribermulti.vcxproj", "{EB36417C-8220-4DC9-B9BD-F3EAAE24DC0D}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{76479E1B-8BD5-4143-897F-F1E93DC1C64B} = {76479E1B-8BD5-4143-897F-F1E93DC1C64B}
		{FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3} = {FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "areglogger", "framework\areglogger.vcxproj", "{B29F438E-904C-4929-903C-F4673182A417}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{A19D14E3-19FE-46FE-91CA-0BAD1CDB91C5} = {A19D14E3-19FE-46FE-91CA-0BAD1CDB91C5}
		{FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3} = {FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "logobserver", "framework\logobserver.vcxproj", "{6941F2A7-F0C7-4293-8646-AF68A7E35183}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{B29F438E-904C-4929-903C-F4673182A417} = {B29F438E-904C-4929-903C-F4673182A417}
		{FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3} = {FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aregsqlite3", "thirdparty\sqlite3.vcxproj", "{A19D14E3-19FE-46FE-91CA-0BAD1CDB91C5}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "thirdparty", "thirdparty", "{BB98F00E-A26C-48A8-AE2A-CEECB9E3FFB1}"
	ProjectSection(SolutionItems) = preProject
		thirdparty\CMakeLists.txt = thirdparty\CMakeLists.txt
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dummy", "examples\dummy\dummy.vcxproj", "{98743716-82FC-4B02-96AF-E6F649403A0A}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "github-workflows", "github-workflows", "{85EF9AE6-92A6-4DD9-833C-455EEAEA186D}"
	ProjectSection(SolutionItems) = preProject
		.github\workflows\accessibility-bot.yml = .github\workflows\accessibility-bot.yml
		.github\workflows\cmake.yml = .github\workflows\cmake.yml
		.github\workflows\codeql-analysis.yml = .github\workflows\codeql-analysis.yml
		.github\workflows\msbuild.yml = .github\workflows\msbuild.yml
		.github\workflows\validate-pr.yml = .github\workflows\validate-pr.yml
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "services", "services", "{11AEF28F-83CA-493A-B507-F271FCB35DBA}"
	ProjectSection(SolutionItems) = preProject
		examples\27_pubsubmulti\services\PubSub.siml = examples\27_pubsubmulti\services\PubSub.siml
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "exports", "exports", "{60EE7204-7D44-4087-8880-900D00536202}"
	ProjectSection(SolutionItems) = preProject
		conf\exports\areg.pc.in = conf\exports\areg.pc.in
		conf\exports\aregextend.pc.in = conf\exports\aregextend.pc.in
		conf\exports\areglogger.pc.in = conf\exports\areglogger.pc.in
		conf\exports\config.cmake.in = conf\exports\config.cmake.in
		conf\exports\logcollector.service.in = conf\exports\logcollector.service.in
		conf\exports\logcollector.service.install.bat.in = conf\exports\logcollector.service.install.bat.in
		conf\exports\logcollector.service.install.sh.in = conf\exports\logcollector.service.install.sh.in
		conf\exports\logcollector.service.uninstall.bat.in = conf\exports\logcollector.service.uninstall.bat.in
		conf\exports\logcollector.service.uninstall.sh.in = conf\exports\logcollector.service.uninstall.sh.in
		conf\exports\mtrouter.service.in = conf\exports\mtrouter.service.in
		conf\exports\mtrouter.service.install.bat.in = conf\exports\mtrouter.service.install.bat.in
		conf\exports\mtrouter.service.install.sh.in = conf\exports\mtrouter.service.install.sh.in
		conf\exports\mtrouter.service.uninstall.bat.in = conf\exports\mtrouter.service.uninstall.bat.in
		conf\exports\mtrouter.service.uninstall.sh.in = conf\exports\mtrouter.service.uninstall.sh.in
		conf\exports\tech.areg.logcollector.plist.in = conf\exports\tech.areg.logcollector.plist.in
		conf\exports\tech.areg.mtrouter.plist.in = conf\exports\tech.areg.mtrouter.plist.in
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "example", "example", "{31AB3D1E-3F6C-4415-B3A5-BB8AA449A1E2}"
	ProjectSection(SolutionItems) = preProject
		conf\exports\example\CMakeLists.txt = conf\exports\example\CMakeLists.txt
		conf\exports\example\example.cpp = conf\exports\example\example.cpp
		conf\exports\example\README.md = conf\exports\example\README.md
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "wiki", "wiki", "{C33D0DF1-A5DB-4F6E-A526-6AA2B3C31AD3}"
	ProjectSection(SolutionItems) = preProject
		docs\wiki\01a-areg-package.md = docs\wiki\01a-areg-package.md
		docs\wiki\01b-cmake-build.md = docs\wiki\01b-cmake-build.md
		docs\wiki\01c-msvc-build.md = docs\wiki\01c-msvc-build.md
		docs\wiki\01d-wsl-build.md = docs\wiki\01d-wsl-build.md
		docs\wiki\02a-quick-project-setup.md = docs\wiki\02a-quick-project-setup.md
		docs\wiki\02b-cmake-integrate.md = docs\wiki\02b-cmake-integrate.md
		docs\wiki\02c-msvc-integrate.md = docs\wiki\02c-msvc-integrate.md
		docs\wiki\02d-cmake-config.md = docs\wiki\02d-cmake-config.md
		docs\wiki\02e-cmake-functions.md = docs\wiki\02e-cmake-functions.md
		docs\wiki\02f-preprocessor-definitions.md = docs\wiki\02f-preprocessor-definitions.md
		docs\wiki\03a-mtrouter.md = docs\wiki\03a-mtrouter.md
		docs\wiki\04a-logging-config.md = docs\wiki\04a-logging-config.md
		docs\wiki\04b-logging-develop.md = docs\wiki\04b-logging-develop.md
		docs\wiki\04c-logobserver.md = docs\wiki\04c-logobserver.md
		docs\wiki\04d-logcollector.md = docs\wiki\04d-logcollector.md
		docs\wiki\05a-persistence-syntax.md = docs\wiki\05a-persistence-syntax.md
		docs\wiki\06a-areg-sdk-tools.md = docs\wiki\06a-areg-sdk-tools.md
		docs\wiki\06b-code-generator.md = docs\wiki\06b-code-generator.md
		docs\wiki\06c-build-lusan.md = docs\wiki\06c-build-lusan.md
		docs\wiki\06d-setup-lusan.md = docs\wiki\06d-setup-lusan.md
		docs\wiki\06e-lusan-service-interface.md = docs\wiki\06e-lusan-service-interface.md
		docs\wiki\06f-lusan-live-logging.md = docs\wiki\06f-lusan-live-logging.md
		docs\wiki\06g-lusan-offline-logging.md = docs\wiki\06g-lusan-offline-logging.md
		docs\wiki\07a-troubleshooting-wsl-update.md = docs\wiki\07a-troubleshooting-wsl-update.md
		docs\wiki\07b-troubleshooting-cmake-linux-builds.md = docs\wiki\07b-troubleshooting-cmake-linux-builds.md
		docs\wiki\07c-troubleshooting-integration.md = docs\wiki\07c-troubleshooting-integration.md
		docs\wiki\08a-examples-and-tests.md = docs\wiki\08a-examples-and-tests.md
		docs\wiki\README.md = docs\wiki\README.md
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "02_minimalipc", "02_minimalipc", "{02EA681E-C7D8-13C7-8484-4AC65E1B71E8}"
	ProjectSection(SolutionItems) = preProject
		examples\02_minimalipc\CMakeLists.txt = examples\02_minimalipc\CMakeLists.txt
		examples\02_minimalipc\ReadMe.md = examples\02_minimalipc\ReadMe.md
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "02_consumeripc", "examples\02_minimalipc\02_consumeripc.vcxproj", "{BD9615AA-7202-4D22-8C0E-78160756D9D4}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{7F864438-F4C3-463A-B5CE-CB1DB5847FB5} = {7F864438-F4C3-463A-B5CE-CB1DB5847FB5}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "02_generated", "examples\02_minimalipc\02_generated.vcxproj", "{7F864438-F4C3-463A-B5CE-CB1DB5847FB5}"
	ProjectSection(ProjectDependencies) = postProject
		{98743716-82FC-4B02-96AF-E6F649403A0A} = {98743716-82FC-4B02-96AF-E6F649403A0A}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "02_provideripc", "examples\02_minimalipc\02_provideripc.vcxproj", "{FD299611-3D51-49AD-995D-37CF39E10A81}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{7F864438-F4C3-463A-B5CE-CB1DB5847FB5} = {7F864438-F4C3-463A-B5CE-CB1DB5847FB5}
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "01_minimalrpc", "01_minimalrpc", "{B7A439E5-E0F9-4BD3-9668-76DC4C398045}"
	ProjectSection(SolutionItems) = preProject
		examples\01_minimalrpc\CMakeLists.txt = examples\01_minimalrpc\CMakeLists.txt
		examples\01_minimalrpc\ReadMe.md = examples\01_minimalrpc\ReadMe.md
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "01_generated", "examples\01_minimalrpc\01_generated.vcxproj", "{ECE372F3-6511-4EDB-BEFC-18E5675093E2}"
	ProjectSection(ProjectDependencies) = postProject
		{98743716-82FC-4B02-96AF-E6F649403A0A} = {98743716-82FC-4B02-96AF-E6F649403A0A}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "01_minimalrpc", "examples\01_minimalrpc\01_minimalrpc.vcxproj", "{404ADA93-B3AE-4161-9EE8-9CF7F8B062A8}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
		{ECE372F3-6511-4EDB-BEFC-18E5675093E2} = {ECE372F3-6511-4EDB-BEFC-18E5675093E2}
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "services", "services", "{27B2554D-B2F0-45C6-9F42-76F6BDEA4916}"
	ProjectSection(SolutionItems) = preProject
		examples\01_minimalrpc\services\HelloService.siml = examples\01_minimalrpc\services\HelloService.siml
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "services", "services", "{49BD1BA3-692A-48DC-85F9-4F31415132C7}"
	ProjectSection(SolutionItems) = preProject
		examples\02_minimalipc\services\HelloService.siml = examples\02_minimalipc\services\HelloService.siml
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "28_stlsync", "examples\28_stlsync\28_stlsync.vcxproj", "{57D67BC9-C172-47F0-A379-6DA93E845202}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "29_syncevent", "examples\29_syncevent\29_syncevent.vcxproj", "{E5605BA4-CC97-4635-B9B6-E73F10A8704F}"
	ProjectSection(ProjectDependencies) = postProject
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5} = {2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "toolchains", "toolchains", "{E653E5C4-D807-4A3A-993A-C797E915E56A}"
	ProjectSection(SolutionItems) = preProject
		conf\exports\example\toolchains\clang-linux-arm32.cmake = conf\exports\example\toolchains\clang-linux-arm32.cmake
		conf\exports\example\toolchains\clang-linux-arm64.cmake = conf\exports\example\toolchains\clang-linux-arm64.cmake
		conf\exports\example\toolchains\clang-linux-x64.cmake = conf\exports\example\toolchains\clang-linux-x64.cmake
		conf\exports\example\toolchains\clang-linux-x86.cmake = conf\exports\example\toolchains\clang-linux-x86.cmake
		conf\exports\example\toolchains\clang-macos-arm64.cmake = conf\exports\example\toolchains\clang-macos-arm64.cmake
		conf\exports\example\toolchains\clang-macos-x64.cmake = conf\exports\example\toolchains\clang-macos-x64.cmake
		conf\exports\example\toolchains\clang-win-x64.cmake = conf\exports\example\toolchains\clang-win-x64.cmake
		conf\exports\example\toolchains\clang-win-x86.cmake = conf\exports\example\toolchains\clang-win-x86.cmake
		conf\exports\example\toolchains\gnu-linux-arm32.cmake = conf\exports\example\toolchains\gnu-linux-arm32.cmake
		conf\exports\example\toolchains\gnu-linux-arm64.cmake = conf\exports\example\toolchains\gnu-linux-arm64.cmake
		conf\exports\example\toolchains\gnu-linux-x64.cmake = conf\exports\example\toolchains\gnu-linux-x64.cmake
		conf\exports\example\toolchains\gnu-linux-x86.cmake = conf\exports\example\toolchains\gnu-linux-x86.cmake
		conf\exports\example\toolchains\msvc-win-x64.cmake = conf\exports\example\toolchains\msvc-win-x64.cmake
		conf\exports\example\toolchains\msvc-win-x86.cmake = conf\exports\example\toolchains\msvc-win-x86.cmake
	EndProjectSection
EndProject
Global
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
		Debug|Win32 = Debug|Win32
		Debug|x64 = Debug|x64
		Release|Win32 = Release|Win32
		Release|x64 = Release|x64
	EndGlobalSection
	GlobalSection(ProjectConfigurationPlatforms) = postSolution
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}.Debug|Win32.ActiveCfg = Debug|Win32
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}.Debug|Win32.Build.0 = Debug|Win32
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}.Debug|x64.ActiveCfg = Debug|x64
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}.Debug|x64.Build.0 = Debug|x64
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}.Release|Win32.ActiveCfg = Release|Win32
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}.Release|Win32.Build.0 = Release|Win32
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}.Release|x64.ActiveCfg = Release|x64
		{2DF8165C-EDE2-4F76-8D2C-2FFE82CB6CE5}.Release|x64.Build.0 = Release|x64
		{24A4F250-C09B-40BF-A6F2-25BD8ABBED6F}.Debug|Win32.ActiveCfg = Debug|Win32
		{24A4F250-C09B-40BF-A6F2-25BD8ABBED6F}.Debug|Win32.Build.0 = Debug|Win32
		{24A4F250-C09B-40BF-A6F2-25BD8ABBED6F}.Debug|x64.ActiveCfg = Debug|x64
		{24A4F250-C09B-40BF-A6F2-25BD8ABBED6F}.Debug|x64.Build.0 = Debug|x64
		{24A4F250-C09B-40BF-A6F2-25BD8ABBED6F}.Release|Win32.ActiveCfg = Release|Win32
		{24A4F250-C09B-40BF-A6F2-25BD8ABBED6F}.Release|Win32.Build.0 = Release|Win32
		{24A4F250-C09B-40BF-A6F2-25BD8ABBED6F}.Release|x64.ActiveCfg = Release|x64
		{24A4F250-C09B-40BF-A6F2-25BD8ABBED6F}.Release|x64.Build.0 = Release|x64
		{92CF6BFF-1A9A-455A-9252-BF6D120C3CC9}.Debug|Win32.ActiveCfg = Debug|Win32
		{92CF6BFF-1A9A-455A-9252-BF6D120C3CC9}.Debug|Win32.Build.0 = Debug|Win32
		{92CF6BFF-1A9A-455A-9252-BF6D120C3CC9}.Debug|x64.ActiveCfg = Debug|x64
		{92CF6BFF-1A9A-455A-9252-BF6D120C3CC9}.Debug|x64.Build.0 = Debug|x64
		{92CF6BFF-1A9A-455A-9252-BF6D120C3CC9}.Release|Win32.ActiveCfg = Release|Win32
		{92CF6BFF-1A9A-455A-9252-BF6D120C3CC9}.Release|Win32.Build.0 = Release|Win32
		{92CF6BFF-1A9A-455A-9252-BF6D120C3CC9}.Release|x64.ActiveCfg = Release|x64
		{92CF6BFF-1A9A-455A-9252-BF6D120C3CC9}.Release|x64.Build.0 = Release|x64
		{FE25F3A4-FB2F-47AE-89FA-7399D5475E6D}.Debug|Win32.ActiveCfg = Debug|Win32
		{FE25F3A4-FB2F-47AE-89FA-7399D5475E6D}.Debug|Win32.Build.0 = Debug|Win32
		{FE25F3A4-FB2F-47AE-89FA-7399D5475E6D}.Debug|x64.ActiveCfg = Debug|x64
		{FE25F3A4-FB2F-47AE-89FA-7399D5475E6D}.Debug|x64.Build.0 = Debug|x64
		{FE25F3A4-FB2F-47AE-89FA-7399D5475E6D}.Release|Win32.ActiveCfg = Release|Win32
		{FE25F3A4-FB2F-47AE-89FA-7399D5475E6D}.Release|Win32.Build.0 = Release|Win32
		{FE25F3A4-FB2F-47AE-89FA-7399D5475E6D}.Release|x64.ActiveCfg = Release|x64
		{FE25F3A4-FB2F-47AE-89FA-7399D5475E6D}.Release|x64.Build.0 = Release|x64
		{CF1C33CA-6F11-4B5C-B92B-F0138B90B956}.Debug|Win32.ActiveCfg = Debug|Win32
		{CF1C33CA-6F11-4B5C-B92B-F0138B90B956}.Debug|Win32.Build.0 = Debug|Win32
		{CF1C33CA-6F11-4B5C-B92B-F0138B90B956}.Debug|x64.ActiveCfg = Debug|x64
		{CF1C33CA-6F11-4B5C-B92B-F0138B90B956}.Debug|x64.Build.0 = Debug|x64
		{CF1C33CA-6F11-4B5C-B92B-F0138B90B956}.Release|Win32.ActiveCfg = Release|Win32
		{CF1C33CA-6F11-4B5C-B92B-F0138B90B956}.Release|Win32.Build.0 = Release|Win32
		{CF1C33CA-6F11-4B5C-B92B-F0138B90B956}.Release|x64.ActiveCfg = Release|x64
		{CF1C33CA-6F11-4B5C-B92B-F0138B90B956}.Release|x64.Build.0 = Release|x64
		{70CAB882-8FA3-4E1C-930D-53F7DA29D1E4}.Debug|Win32.ActiveCfg = Debug|Win32
		{70CAB882-8FA3-4E1C-930D-53F7DA29D1E4}.Debug|Win32.Build.0 = Debug|Win32
		{70CAB882-8FA3-4E1C-930D-53F7DA29D1E4}.Debug|x64.ActiveCfg = Debug|x64
		{70CAB882-8FA3-4E1C-930D-53F7DA29D1E4}.Debug|x64.Build.0 = Debug|x64
		{70CAB882-8FA3-4E1C-930D-53F7DA29D1E4}.Release|Win32.ActiveCfg = Release|Win32
		{70CAB882-8FA3-4E1C-930D-53F7DA29D1E4}.Release|Win32.Build.0 = Release|Win32
		{70CAB882-8FA3-4E1C-930D-53F7DA29D1E4}.Release|x64.ActiveCfg = Release|x64
		{70CAB882-8FA3-4E1C-930D-53F7DA29D1E4}.Release|x64.Build.0 = Release|x64
		{7F508C90-D49D-4E26-B7B0-3CBCA677A272}.Debug|Win32.ActiveCfg = Debug|Win32
		{7F508C90-D49D-4E26-B7B0-3CBCA677A272}.Debug|Win32.Build.0 = Debug|Win32
		{7F508C90-D49D-4E26-B7B0-3CBCA677A272}.Debug|x64.ActiveCfg = Debug|x64
		{7F508C90-D49D-4E26-B7B0-3CBCA677A272}.Debug|x64.Build.0 = Debug|x64
		{7F508C90-D49D-4E26-B7B0-3CBCA677A272}.Release|Win32.ActiveCfg = Release|Win32
		{7F508C90-D49D-4E26-B7B0-3CBCA677A272}.Release|Win32.Build.0 = Release|Win32
		{7F508C90-D49D-4E26-B7B0-3CBCA677A272}.Release|x64.ActiveCfg = Release|x64
		{7F508C90-D49D-4E26-B7B0-3CBCA677A272}.Release|x64.Build.0 = Release|x64
		{2BCCB75A-D179-4DB4-9B50-BF6F501B5CAE}.Debug|Win32.ActiveCfg = Debug|Win32
		{2BCCB75A-D179-4DB4-9B50-BF6F501B5CAE}.Debug|Win32.Build.0 = Debug|Win32
		{2BCCB75A-D179-4DB4-9B50-BF6F501B5CAE}.Debug|x64.ActiveCfg = Debug|x64
		{2BCCB75A-D179-4DB4-9B50-BF6F501B5CAE}.Debug|x64.Build.0 = Debug|x64
		{2BCCB75A-D179-4DB4-9B50-BF6F501B5CAE}.Release|Win32.ActiveCfg = Release|Win32
		{2BCCB75A-D179-4DB4-9B50-BF6F501B5CAE}.Release|Win32.Build.0 = Release|Win32
		{2BCCB75A-D179-4DB4-9B50-BF6F501B5CAE}.Release|x64.ActiveCfg = Release|x64
		{2BCCB75A-D179-4DB4-9B50-BF6F501B5CAE}.Release|x64.Build.0 = Release|x64
		{5B49EFBF-FC6B-4016-BC84-77784BF37944}.Debug|Win32.ActiveCfg = Debug|Win32
		{5B49EFBF-FC6B-4016-BC84-77784BF37944}.Debug|Win32.Build.0 = Debug|Win32
		{5B49EFBF-FC6B-4016-BC84-77784BF37944}.Debug|x64.ActiveCfg = Debug|x64
		{5B49EFBF-FC6B-4016-BC84-77784BF37944}.Debug|x64.Build.0 = Debug|x64
		{5B49EFBF-FC6B-4016-BC84-77784BF37944}.Release|Win32.ActiveCfg = Release|Win32
		{5B49EFBF-FC6B-4016-BC84-77784BF37944}.Release|Win32.Build.0 = Release|Win32
		{5B49EFBF-FC6B-4016-BC84-77784BF37944}.Release|x64.ActiveCfg = Release|x64
		{5B49EFBF-FC6B-4016-BC84-77784BF37944}.Release|x64.Build.0 = Release|x64
		{13E221EB-7446-49CB-8150-2575425667BF}.Debug|Win32.ActiveCfg = Debug|Win32
		{13E221EB-7446-49CB-8150-2575425667BF}.Debug|Win32.Build.0 = Debug|Win32
		{13E221EB-7446-49CB-8150-2575425667BF}.Debug|x64.ActiveCfg = Debug|x64
		{13E221EB-7446-49CB-8150-2575425667BF}.Debug|x64.Build.0 = Debug|x64
		{13E221EB-7446-49CB-8150-2575425667BF}.Release|Win32.ActiveCfg = Release|Win32
		{13E221EB-7446-49CB-8150-2575425667BF}.Release|Win32.Build.0 = Release|Win32
		{13E221EB-7446-49CB-8150-2575425667BF}.Release|x64.ActiveCfg = Release|x64
		{13E221EB-7446-49CB-8150-2575425667BF}.Release|x64.Build.0 = Release|x64
		{18F81610-018F-4FE9-9B33-D2060E0F2CB6}.Debug|Win32.ActiveCfg = Debug|Win32
		{18F81610-018F-4FE9-9B33-D2060E0F2CB6}.Debug|Win32.Build.0 = Debug|Win32
		{18F81610-018F-4FE9-9B33-D2060E0F2CB6}.Debug|x64.ActiveCfg = Debug|x64
		{18F81610-018F-4FE9-9B33-D2060E0F2CB6}.Debug|x64.Build.0 = Debug|x64
		{18F81610-018F-4FE9-9B33-D2060E0F2CB6}.Release|Win32.ActiveCfg = Release|Win32
		{18F81610-018F-4FE9-9B33-D2060E0F2CB6}.Release|Win32.Build.0 = Release|Win32
		{18F81610-018F-4FE9-9B33-D2060E0F2CB6}.Release|x64.ActiveCfg = Release|x64
		{18F81610-018F-4FE9-9B33-D2060E0F2CB6}.Release|x64.Build.0 = Release|x64
		{09DBC624-4CBA-4345-B8F1-A2786F00A615}.Debug|Win32.ActiveCfg = Debug|Win32
		{09DBC624-4CBA-4345-B8F1-A2786F00A615}.Debug|Win32.Build.0 = Debug|Win32
		{09DBC624-4CBA-4345-B8F1-A2786F00A615}.Debug|x64.ActiveCfg = Debug|x64
		{09DBC624-4CBA-4345-B8F1-A2786F00A615}.Debug|x64.Build.0 = Debug|x64
		{09DBC624-4CBA-4345-B8F1-A2786F00A615}.Release|Win32.ActiveCfg = Release|Win32
		{09DBC624-4CBA-4345-B8F1-A2786F00A615}.Release|Win32.Build.0 = Release|Win32
		{09DBC624-4CBA-4345-B8F1-A2786F00A615}.Release|x64.ActiveCfg = Release|x64
		{09DBC624-4CBA-4345-B8F1-A2786F00A615}.Release|x64.Build.0 = Release|x64
		{CEFC6857-FA75-4334-AB78-F3AC6CB54942}.Debug|Win32.ActiveCfg = Debug|Win32
		{CEFC6857-FA75-4334-AB78-F3AC6CB54942}.Debug|Win32.Build.0 = Debug|Win32
		{CEFC6857-FA75-4334-AB78-F3AC6CB54942}.Debug|x64.ActiveCfg = Debug|x64
		{CEFC6857-FA75-4334-AB78-F3AC6CB54942}.Debug|x64.Build.0 = Debug|x64
		{CEFC6857-FA75-4334-AB78-F3AC6CB54942}.Release|Win32.ActiveCfg = Release|Win32
		{CEFC6857-FA75-4334-AB78-F3AC6CB54942}.Release|Win32.Build.0 = Release|Win32
		{CEFC6857-FA75-4334-AB78-F3AC6CB54942}.Release|x64.ActiveCfg = Release|x64
		{CEFC6857-FA75-4334-AB78-F3AC6CB54942}.Release|x64.Build.0 = Release|x64
		{0450B090-2EAA-4454-944E-ABD6CFFD26F9}.Debug|Win32.ActiveCfg = Debug|Win32
		{0450B090-2EAA-4454-944E-ABD6CFFD26F9}.Debug|Win32.Build.0 = Debug|Win32
		{0450B090-2EAA-4454-944E-ABD6CFFD26F9}.Debug|x64.ActiveCfg = Debug|x64
		{0450B090-2EAA-4454-944E-ABD6CFFD26F9}.Debug|x64.Build.0 = Debug|x64
		{0450B090-2EAA-4454-944E-ABD6CFFD26F9}.Release|Win32.ActiveCfg = Release|Win32
		{0450B090-2EAA-4454-944E-ABD6CFFD26F9}.Release|Win32.Build.0 = Release|Win32
		{0450B090-2EAA-4454-944E-ABD6CFFD26F9}.Release|x64.ActiveCfg = Release|x64
		{0450B090-2EAA-4454-944E-ABD6CFFD26F9}.Release|x64.Build.0 = Release|x64
		{ABEE2F20-BB60-434F-92D8-75DB71020E01}.Debug|Win32.ActiveCfg = Debug|Win32
		{ABEE2F20-BB60-434F-92D8-75DB71020E01}.Debug|Win32.Build.0 = Debug|Win32
		{ABEE2F20-BB60-434F-92D8-75DB71020E01}.Debug|x64.ActiveCfg = Debug|x64
		{ABEE2F20-BB60-434F-92D8-75DB71020E01}.Debug|x64.Build.0 = Debug|x64
		{ABEE2F20-BB60-434F-92D8-75DB71020E01}.Release|Win32.ActiveCfg = Release|Win32
		{ABEE2F20-BB60-434F-92D8-75DB71020E01}.Release|Win32.Build.0 = Release|Win32
		{ABEE2F20-BB60-434F-92D8-75DB71020E01}.Release|x64.ActiveCfg = Release|x64
		{ABEE2F20-BB60-434F-92D8-75DB71020E01}.Release|x64.Build.0 = Release|x64
		{88DC6432-0356-43A9-821B-2444C564BDF2}.Debug|Win32.ActiveCfg = Debug|Win32
		{88DC6432-0356-43A9-821B-2444C564BDF2}.Debug|Win32.Build.0 = Debug|Win32
		{88DC6432-0356-43A9-821B-2444C564BDF2}.Debug|x64.ActiveCfg = Debug|x64
		{88DC6432-0356-43A9-821B-2444C564BDF2}.Debug|x64.Build.0 = Debug|x64
		{88DC6432-0356-43A9-821B-2444C564BDF2}.Release|Win32.ActiveCfg = Release|Win32
		{88DC6432-0356-43A9-821B-2444C564BDF2}.Release|Win32.Build.0 = Release|Win32
		{88DC6432-0356-43A9-821B-2444C564BDF2}.Release|x64.ActiveCfg = Release|x64
		{88DC6432-0356-43A9-821B-2444C564BDF2}.Release|x64.Build.0 = Release|x64
		{4056956C-7E12-4432-86F8-D900A52866A4}.Debug|Win32.ActiveCfg = Debug|Win32
		{4056956C-7E12-4432-86F8-D900A52866A4}.Debug|Win32.Build.0 = Debug|Win32
		{4056956C-7E12-4432-86F8-D900A52866A4}.Debug|x64.ActiveCfg = Debug|x64
		{4056956C-7E12-4432-86F8-D900A52866A4}.Debug|x64.Build.0 = Debug|x64
		{4056956C-7E12-4432-86F8-D900A52866A4}.Release|Win32.ActiveCfg = Release|Win32
		{4056956C-7E12-4432-86F8-D900A52866A4}.Release|Win32.Build.0 = Release|Win32
		{4056956C-7E12-4432-86F8-D900A52866A4}.Release|x64.ActiveCfg = Release|x64
		{4056956C-7E12-4432-86F8-D900A52866A4}.Release|x64.Build.0 = Release|x64
		{8273239C-C5A8-4752-9DFC-E1678222C36E}.Debug|Win32.ActiveCfg = Debug|Win32
		{8273239C-C5A8-4752-9DFC-E1678222C36E}.Debug|Win32.Build.0 = Debug|Win32
		{8273239C-C5A8-4752-9DFC-E1678222C36E}.Debug|x64.ActiveCfg = Debug|x64
		{8273239C-C5A8-4752-9DFC-E1678222C36E}.Debug|x64.Build.0 = Debug|x64
		{8273239C-C5A8-4752-9DFC-E1678222C36E}.Release|Win32.ActiveCfg = Release|Win32
		{8273239C-C5A8-4752-9DFC-E1678222C36E}.Release|Win32.Build.0 = Release|Win32
		{8273239C-C5A8-4752-9DFC-E1678222C36E}.Release|x64.ActiveCfg = Release|x64
		{8273239C-C5A8-4752-9DFC-E1678222C36E}.Release|x64.Build.0 = Release|x64
		{1D3A6135-F0EE-4531-B682-55270B70B699}.Debug|Win32.ActiveCfg = Debug|Win32
		{1D3A6135-F0EE-4531-B682-55270B70B699}.Debug|Win32.Build.0 = Debug|Win32
		{1D3A6135-F0EE-4531-B682-55270B70B699}.Debug|x64.ActiveCfg = Debug|x64
		{1D3A6135-F0EE-4531-B682-55270B70B699}.Debug|x64.Build.0 = Debug|x64
		{1D3A6135-F0EE-4531-B682-55270B70B699}.Release|Win32.ActiveCfg = Release|Win32
		{1D3A6135-F0EE-4531-B682-55270B70B699}.Release|Win32.Build.0 = Release|Win32
		{1D3A6135-F0EE-4531-B682-55270B70B699}.Release|x64.ActiveCfg = Release|x64
		{1D3A6135-F0EE-4531-B682-55270B70B699}.Release|x64.Build.0 = Release|x64
		{18CE1C5F-A87D-42E2-B9F8-89FDD6ECE323}.Debug|Win32.ActiveCfg = Debug|Win32
		{18CE1C5F-A87D-42E2-B9F8-89FDD6ECE323}.Debug|Win32.Build.0 = Debug|Win32
		{18CE1C5F-A87D-42E2-B9F8-89FDD6ECE323}.Debug|x64.ActiveCfg = Debug|x64
		{18CE1C5F-A87D-42E2-B9F8-89FDD6ECE323}.Debug|x64.Build.0 = Debug|x64
		{18CE1C5F-A87D-42E2-B9F8-89FDD6ECE323}.Release|Win32.ActiveCfg = Release|Win32
		{18CE1C5F-A87D-42E2-B9F8-89FDD6ECE323}.Release|Win32.Build.0 = Release|Win32
		{18CE1C5F-A87D-42E2-B9F8-89FDD6ECE323}.Release|x64.ActiveCfg = Release|x64
		{18CE1C5F-A87D-42E2-B9F8-89FDD6ECE323}.Release|x64.Build.0 = Release|x64
		{CCBBF424-D22D-480F-A13E-28095E33827C}.Debug|Win32.ActiveCfg = Debug|Win32
		{CCBBF424-D22D-480F-A13E-28095E33827C}.Debug|Win32.Build.0 = Debug|Win32
		{CCBBF424-D22D-480F-A13E-28095E33827C}.Debug|x64.ActiveCfg = Debug|x64
		{CCBBF424-D22D-480F-A13E-28095E33827C}.Debug|x64.Build.0 = Debug|x64
		{CCBBF424-D22D-480F-A13E-28095E33827C}.Release|Win32.ActiveCfg = Release|Win32
		{CCBBF424-D22D-480F-A13E-28095E33827C}.Release|Win32.Build.0 = Release|Win32
		{CCBBF424-D22D-480F-A13E-28095E33827C}.Release|x64.ActiveCfg = Release|x64
		{CCBBF424-D22D-480F-A13E-28095E33827C}.Release|x64.Build.0 = Release|x64
		{C6AEF053-AA0C-46A8-A2F2-4330021D2DE2}.Debug|Win32.ActiveCfg = Debug|Win32
		{C6AEF053-AA0C-46A8-A2F2-4330021D2DE2}.Debug|Win32.Build.0 = Debug|Win32
		{C6AEF053-AA0C-46A8-A2F2-4330021D2DE2}.Debug|x64.ActiveCfg = Debug|x64
		{C6AEF053-AA0C-46A8-A2F2-4330021D2DE2}.Debug|x64.Build.0 = Debug|x64
		{C6AEF053-AA0C-46A8-A2F2-4330021D2DE2}.Release|Win32.ActiveCfg = Release|Win32
		{C6AEF053-AA0C-46A8-A2F2-4330021D2DE2}.Release|Win32.Build.0 = Release|Win32
		{C6AEF053-AA0C-46A8-A2F2-4330021D2DE2}.Release|x64.ActiveCfg = Release|x64
		{C6AEF053-AA0C-46A8-A2F2-4330021D2DE2}.Release|x64.Build.0 = Release|x64
		{D20E2DBD-4224-479D-9608-5BC062A48BE4}.Debug|Win32.ActiveCfg = Debug|Win32
		{D20E2DBD-4224-479D-9608-5BC062A48BE4}.Debug|Win32.Build.0 = Debug|Win32
		{D20E2DBD-4224-479D-9608-5BC062A48BE4}.Debug|x64.ActiveCfg = Debug|x64
		{D20E2DBD-4224-479D-9608-5BC062A48BE4}.Debug|x64.Build.0 = Debug|x64
		{D20E2DBD-4224-479D-9608-5BC062A48BE4}.Release|Win32.ActiveCfg = Release|Win32
		{D20E2DBD-4224-479D-9608-5BC062A48BE4}.Release|Win32.Build.0 = Release|Win32
		{D20E2DBD-4224-479D-9608-5BC062A48BE4}.Release|x64.ActiveCfg = Release|x64
		{D20E2DBD-4224-479D-9608-5BC062A48BE4}.Release|x64.Build.0 = Release|x64
		{D708316F-7E34-4E09-A782-4021C5500C0D}.Debug|Win32.ActiveCfg = Debug|Win32
		{D708316F-7E34-4E09-A782-4021C5500C0D}.Debug|Win32.Build.0 = Debug|Win32
		{D708316F-7E34-4E09-A782-4021C5500C0D}.Debug|x64.ActiveCfg = Debug|x64
		{D708316F-7E34-4E09-A782-4021C5500C0D}.Debug|x64.Build.0 = Debug|x64
		{D708316F-7E34-4E09-A782-4021C5500C0D}.Release|Win32.ActiveCfg = Release|Win32
		{D708316F-7E34-4E09-A782-4021C5500C0D}.Release|Win32.Build.0 = Release|Win32
		{D708316F-7E34-4E09-A782-4021C5500C0D}.Release|x64.ActiveCfg = Release|x64
		{D708316F-7E34-4E09-A782-4021C5500C0D}.Release|x64.Build.0 = Release|x64
		{CC971823-8685-4102-B7E6-E56E31C02370}.Debug|Win32.ActiveCfg = Debug|Win32
		{CC971823-8685-4102-B7E6-E56E31C02370}.Debug|Win32.Build.0 = Debug|Win32
		{CC971823-8685-4102-B7E6-E56E31C02370}.Debug|x64.ActiveCfg = Debug|x64
		{CC971823-8685-4102-B7E6-E56E31C02370}.Debug|x64.Build.0 = Debug|x64
		{CC971823-8685-4102-B7E6-E56E31C02370}.Release|Win32.ActiveCfg = Release|Win32
		{CC971823-8685-4102-B7E6-E56E31C02370}.Release|Win32.Build.0 = Release|Win32
		{CC971823-8685-4102-B7E6-E56E31C02370}.Release|x64.ActiveCfg = Release|x64
		{CC971823-8685-4102-B7E6-E56E31C02370}.Release|x64.Build.0 = Release|x64
		{2600865C-8A10-4404-B05D-8F3CAE3FC417}.Debug|Win32.ActiveCfg = Debug|Win32
		{2600865C-8A10-4404-B05D-8F3CAE3FC417}.Debug|Win32.Build.0 = Debug|Win32
		{2600865C-8A10-4404-B05D-8F3CAE3FC417}.Debug|x64.ActiveCfg = Debug|x64
		{2600865C-8A10-4404-B05D-8F3CAE3FC417}.Debug|x64.Build.0 = Debug|x64
		{2600865C-8A10-4404-B05D-8F3CAE3FC417}.Release|Win32.ActiveCfg = Release|Win32
		{2600865C-8A10-4404-B05D-8F3CAE3FC417}.Release|Win32.Build.0 = Release|Win32
		{2600865C-8A10-4404-B05D-8F3CAE3FC417}.Release|x64.ActiveCfg = Release|x64
		{2600865C-8A10-4404-B05D-8F3CAE3FC417}.Release|x64.Build.0 = Release|x64
		{61FF9AD1-F474-4990-9DE5-FA30260B9D39}.Debug|Win32.ActiveCfg = Debug|Win32
		{61FF9AD1-F474-4990-9DE5-FA30260B9D39}.Debug|Win32.Build.0 = Debug|Win32
		{61FF9AD1-F474-4990-9DE5-FA30260B9D39}.Debug|x64.ActiveCfg = Debug|x64
		{61FF9AD1-F474-4990-9DE5-FA30260B9D39}.Debug|x64.Build.0 = Debug|x64
		{61FF9AD1-F474-4990-9DE5-FA30260B9D39}.Release|Win32.ActiveCfg = Release|Win32
		{61FF9AD1-F474-4990-9DE5-FA30260B9D39}.Release|Win32.Build.0 = Release|Win32
		{61FF9AD1-F474-4990-9DE5-FA30260B9D39}.Release|x64.ActiveCfg = Release|x64
		{61FF9AD1-F474-4990-9DE5-FA30260B9D39}.Release|x64.Build.0 = Release|x64
		{5B38C49F-3C26-43CD-B457-75806BFE69EC}.Debug|Win32.ActiveCfg = Debug|Win32
		{5B38C49F-3C26-43CD-B457-75806BFE69EC}.Debug|Win32.Build.0 = Debug|Win32
		{5B38C49F-3C26-43CD-B457-75806BFE69EC}.Debug|x64.ActiveCfg = Debug|x64
		{5B38C49F-3C26-43CD-B457-75806BFE69EC}.Debug|x64.Build.0 = Debug|x64
		{5B38C49F-3C26-43CD-B457-75806BFE69EC}.Release|Win32.ActiveCfg = Release|Win32
		{5B38C49F-3C26-43CD-B457-75806BFE69EC}.Release|Win32.Build.0 = Release|Win32
		{5B38C49F-3C26-43CD-B457-75806BFE69EC}.Release|x64.ActiveCfg = Release|x64
		{5B38C49F-3C26-43CD-B457-75806BFE69EC}.Release|x64.Build.0 = Release|x64
		{28F7BC4C-5CAD-457D-B208-9E92759910E7}.Debug|Win32.ActiveCfg = Debug|Win32
		{28F7BC4C-5CAD-457D-B208-9E92759910E7}.Debug|Win32.Build.0 = Debug|Win32
		{28F7BC4C-5CAD-457D-B208-9E92759910E7}.Debug|x64.ActiveCfg = Debug|x64
		{28F7BC4C-5CAD-457D-B208-9E92759910E7}.Debug|x64.Build.0 = Debug|x64
		{28F7BC4C-5CAD-457D-B208-9E92759910E7}.Release|Win32.ActiveCfg = Release|Win32
		{28F7BC4C-5CAD-457D-B208-9E92759910E7}.Release|Win32.Build.0 = Release|Win32
		{28F7BC4C-5CAD-457D-B208-9E92759910E7}.Release|x64.ActiveCfg = Release|x64
		{28F7BC4C-5CAD-457D-B208-9E92759910E7}.Release|x64.Build.0 = Release|x64
		{2BE2FB7A-E258-4AE1-A744-D52BD7ACC548}.Debug|Win32.ActiveCfg = Debug|Win32
		{2BE2FB7A-E258-4AE1-A744-D52BD7ACC548}.Debug|Win32.Build.0 = Debug|Win32
		{2BE2FB7A-E258-4AE1-A744-D52BD7ACC548}.Debug|x64.ActiveCfg = Debug|x64
		{2BE2FB7A-E258-4AE1-A744-D52BD7ACC548}.Debug|x64.Build.0 = Debug|x64
		{2BE2FB7A-E258-4AE1-A744-D52BD7ACC548}.Release|Win32.ActiveCfg = Release|Win32
		{2BE2FB7A-E258-4AE1-A744-D52BD7ACC548}.Release|Win32.Build.0 = Release|Win32
		{2BE2FB7A-E258-4AE1-A744-D52BD7ACC548}.Release|x64.ActiveCfg = Release|x64
		{2BE2FB7A-E258-4AE1-A744-D52BD7ACC548}.Release|x64.Build.0 = Release|x64
		{68C8AE77-005B-4F81-8876-5A87A69823E3}.Debug|Win32.ActiveCfg = Debug|Win32
		{68C8AE77-005B-4F81-8876-5A87A69823E3}.Debug|Win32.Build.0 = Debug|Win32
		{68C8AE77-005B-4F81-8876-5A87A69823E3}.Debug|x64.ActiveCfg = Debug|x64
		{68C8AE77-005B-4F81-8876-5A87A69823E3}.Debug|x64.Build.0 = Debug|x64
		{68C8AE77-005B-4F81-8876-5A87A69823E3}.Release|Win32.ActiveCfg = Release|Win32
		{68C8AE77-005B-4F81-8876-5A87A69823E3}.Release|Win32.Build.0 = Release|Win32
		{68C8AE77-005B-4F81-8876-5A87A69823E3}.Release|x64.ActiveCfg = Release|x64
		{68C8AE77-005B-4F81-8876-5A87A69823E3}.Release|x64.Build.0 = Release|x64
		{1EB10EE3-1F75-440E-94EE-D74FCF7CA79E}.Debug|Win32.ActiveCfg = Debug|Win32
		{1EB10EE3-1F75-440E-94EE-D74FCF7CA79E}.Debug|Win32.Build.0 = Debug|Win32
		{1EB10EE3-1F75-440E-94EE-D74FCF7CA79E}.Debug|x64.ActiveCfg = Debug|x64
		{1EB10EE3-1F75-440E-94EE-D74FCF7CA79E}.Debug|x64.Build.0 = Debug|x64
		{1EB10EE3-1F75-440E-94EE-D74FCF7CA79E}.Release|Win32.ActiveCfg = Release|Win32
		{1EB10EE3-1F75-440E-94EE-D74FCF7CA79E}.Release|Win32.Build.0 = Release|Win32
		{1EB10EE3-1F75-440E-94EE-D74FCF7CA79E}.Release|x64.ActiveCfg = Release|x64
		{1EB10EE3-1F75-440E-94EE-D74FCF7CA79E}.Release|x64.Build.0 = Release|x64
		{4FF0146F-F69B-4566-8679-A190632A0958}.Debug|Win32.ActiveCfg = Debug|Win32
		{4FF0146F-F69B-4566-8679-A190632A0958}.Debug|Win32.Build.0 = Debug|Win32
		{4FF0146F-F69B-4566-8679-A190632A0958}.Debug|x64.ActiveCfg = Debug|x64
		{4FF0146F-F69B-4566-8679-A190632A0958}.Debug|x64.Build.0 = Debug|x64
		{4FF0146F-F69B-4566-8679-A190632A0958}.Release|Win32.ActiveCfg = Release|Win32
		{4FF0146F-F69B-4566-8679-A190632A0958}.Release|Win32.Build.0 = Release|Win32
		{4FF0146F-F69B-4566-8679-A190632A0958}.Release|x64.ActiveCfg = Release|x64
		{4FF0146F-F69B-4566-8679-A190632A0958}.Release|x64.Build.0 = Release|x64
		{AA7F1615-AF3B-465F-A2CE-6A9AD1786F8B}.Debug|Win32.ActiveCfg = Debug|Win32
		{AA7F1615-AF3B-465F-A2CE-6A9AD1786F8B}.Debug|Win32.Build.0 = Debug|Win32
		{AA7F1615-AF3B-465F-A2CE-6A9AD1786F8B}.Debug|x64.ActiveCfg = Debug|x64
		{AA7F1615-AF3B-465F-A2CE-6A9AD1786F8B}.Debug|x64.Build.0 = Debug|x64
		{AA7F1615-AF3B-465F-A2CE-6A9AD1786F8B}.Release|Win32.ActiveCfg = Release|Win32
		{AA7F1615-AF3B-465F-A2CE-6A9AD1786F8B}.Release|Win32.Build.0 = Release|Win32
		{AA7F1615-AF3B-465F-A2CE-6A9AD1786F8B}.Release|x64.ActiveCfg = Release|x64
		{AA7F1615-AF3B-465F-A2CE-6A9AD1786F8B}.Release|x64.Build.0 = Release|x64
		{C23BA253-475E-49DD-A92E-616C2A93831A}.Debug|Win32.ActiveCfg = Debug|Win32
		{C23BA253-475E-49DD-A92E-616C2A93831A}.Debug|Win32.Build.0 = Debug|Win32
		{C23BA253-475E-49DD-A92E-616C2A93831A}.Debug|x64.ActiveCfg = Debug|x64
		{C23BA253-475E-49DD-A92E-616C2A93831A}.Debug|x64.Build.0 = Debug|x64
		{C23BA253-475E-49DD-A92E-616C2A93831A}.Release|Win32.ActiveCfg = Release|Win32
		{C23BA253-475E-49DD-A92E-616C2A93831A}.Release|Win32.Build.0 = Release|Win32
		{C23BA253-475E-49DD-A92E-616C2A93831A}.Release|x64.ActiveCfg = Release|x64
		{C23BA253-475E-49DD-A92E-616C2A93831A}.Release|x64.Build.0 = Release|x64
		{57693047-C0E4-4183-91B5-8BCAB76F1B7D}.Debug|Win32.ActiveCfg = Debug|Win32
		{57693047-C0E4-4183-91B5-8BCAB76F1B7D}.Debug|Win32.Build.0 = Debug|Win32
		{57693047-C0E4-4183-91B5-8BCAB76F1B7D}.Debug|x64.ActiveCfg = Debug|x64
		{57693047-C0E4-4183-91B5-8BCAB76F1B7D}.Debug|x64.Build.0 = Debug|x64
		{57693047-C0E4-4183-91B5-8BCAB76F1B7D}.Release|Win32.ActiveCfg = Release|Win32
		{57693047-C0E4-4183-91B5-8BCAB76F1B7D}.Release|Win32.Build.0 = Release|Win32
		{57693047-C0E4-4183-91B5-8BCAB76F1B7D}.Release|x64.ActiveCfg = Release|x64
		{57693047-C0E4-4183-91B5-8BCAB76F1B7D}.Release|x64.Build.0 = Release|x64
		{BAD5F8A5-B916-4E76-8594-78B003C1155B}.Debug|Win32.ActiveCfg = Debug|Win32
		{BAD5F8A5-B916-4E76-8594-78B003C1155B}.Debug|Win32.Build.0 = Debug|Win32
		{BAD5F8A5-B916-4E76-8594-78B003C1155B}.Debug|x64.ActiveCfg = Debug|x64
		{BAD5F8A5-B916-4E76-8594-78B003C1155B}.Debug|x64.Build.0 = Debug|x64
		{BAD5F8A5-B916-4E76-8594-78B003C1155B}.Release|Win32.ActiveCfg = Release|Win32
		{BAD5F8A5-B916-4E76-8594-78B003C1155B}.Release|Win32.Build.0 = Release|Win32
		{BAD5F8A5-B916-4E76-8594-78B003C1155B}.Release|x64.ActiveCfg = Release|x64
		{BAD5F8A5-B916-4E76-8594-78B003C1155B}.Release|x64.Build.0 = Release|x64
		{DB6BDE22-DB74-49FD-AB01-8DB5FCEE16FD}.Debug|Win32.ActiveCfg = Debug|Win32
		{DB6BDE22-DB74-49FD-AB01-8DB5FCEE16FD}.Debug|Win32.Build.0 = Debug|Win32
		{DB6BDE22-DB74-49FD-AB01-8DB5FCEE16FD}.Debug|x64.ActiveCfg = Debug|x64
		{DB6BDE22-DB74-49FD-AB01-8DB5FCEE16FD}.Debug|x64.Build.0 = Debug|x64
		{DB6BDE22-DB74-49FD-AB01-8DB5FCEE16FD}.Release|Win32.ActiveCfg = Release|Win32
		{DB6BDE22-DB74-49FD-AB01-8DB5FCEE16FD}.Release|Win32.Build.0 = Release|Win32
		{DB6BDE22-DB74-49FD-AB01-8DB5FCEE16FD}.Release|x64.ActiveCfg = Release|x64
		{DB6BDE22-DB74-49FD-AB01-8DB5FCEE16FD}.Release|x64.Build.0 = Release|x64
		{B8884358-CC9D-41DB-A352-9EDA045DFD7A}.Debug|Win32.ActiveCfg = Debug|Win32
		{B8884358-CC9D-41DB-A352-9EDA045DFD7A}.Debug|Win32.Build.0 = Debug|Win32
		{B8884358-CC9D-41DB-A352-9EDA045DFD7A}.Debug|x64.ActiveCfg = Debug|x64
		{B8884358-CC9D-41DB-A352-9EDA045DFD7A}.Debug|x64.Build.0 = Debug|x64
		{B8884358-CC9D-41DB-A352-9EDA045DFD7A}.Release|Win32.ActiveCfg = Release|Win32
		{B8884358-CC9D-41DB-A352-9EDA045DFD7A}.Release|Win32.Build.0 = Release|Win32
		{B8884358-CC9D-41DB-A352-9EDA045DFD7A}.Release|x64.ActiveCfg = Release|x64
		{B8884358-CC9D-41DB-A352-9EDA045DFD7A}.Release|x64.Build.0 = Release|x64
		{38A88D1E-B86C-48E2-9B9E-68F672388734}.Debug|Win32.ActiveCfg = Debug|Win32
		{38A88D1E-B86C-48E2-9B9E-68F672388734}.Debug|Win32.Build.0 = Debug|Win32
		{38A88D1E-B86C-48E2-9B9E-68F672388734}.Debug|x64.ActiveCfg = Debug|x64
		{38A88D1E-B86C-48E2-9B9E-68F672388734}.Debug|x64.Build.0 = Debug|x64
		{38A88D1E-B86C-48E2-9B9E-68F672388734}.Release|Win32.ActiveCfg = Release|Win32
		{38A88D1E-B86C-48E2-9B9E-68F672388734}.Release|Win32.Build.0 = Release|Win32
		{38A88D1E-B86C-48E2-9B9E-68F672388734}.Release|x64.ActiveCfg = Release|x64
		{38A88D1E-B86C-48E2-9B9E-68F672388734}.Release|x64.Build.0 = Release|x64
		{766E4B9C-F428-4289-8975-DC3D22EEDBF6}.Debug|Win32.ActiveCfg = Debug|Win32
		{766E4B9C-F428-4289-8975-DC3D22EEDBF6}.Debug|Win32.Build.0 = Debug|Win32
		{766E4B9C-F428-4289-8975-DC3D22EEDBF6}.Debug|x64.ActiveCfg = Debug|x64
		{766E4B9C-F428-4289-8975-DC3D22EEDBF6}.Debug|x64.Build.0 = Debug|x64
		{766E4B9C-F428-4289-8975-DC3D22EEDBF6}.Release|Win32.ActiveCfg = Release|Win32
		{766E4B9C-F428-4289-8975-DC3D22EEDBF6}.Release|Win32.Build.0 = Release|Win32
		{766E4B9C-F428-4289-8975-DC3D22EEDBF6}.Release|x64.ActiveCfg = Release|x64
		{766E4B9C-F428-4289-8975-DC3D22EEDBF6}.Release|x64.Build.0 = Release|x64
		{F6570975-AE13-41EB-8465-066A6766C211}.Debug|Win32.ActiveCfg = Debug|Win32
		{F6570975-AE13-41EB-8465-066A6766C211}.Debug|Win32.Build.0 = Debug|Win32
		{F6570975-AE13-41EB-8465-066A6766C211}.Debug|x64.ActiveCfg = Debug|x64
		{F6570975-AE13-41EB-8465-066A6766C211}.Debug|x64.Build.0 = Debug|x64
		{F6570975-AE13-41EB-8465-066A6766C211}.Release|Win32.ActiveCfg = Release|Win32
		{F6570975-AE13-41EB-8465-066A6766C211}.Release|Win32.Build.0 = Release|Win32
		{F6570975-AE13-41EB-8465-066A6766C211}.Release|x64.ActiveCfg = Release|x64
		{F6570975-AE13-41EB-8465-066A6766C211}.Release|x64.Build.0 = Release|x64
		{7ECC4BF9-45A4-4774-869B-239E3B152E05}.Debug|Win32.ActiveCfg = Debug|Win32
		{7ECC4BF9-45A4-4774-869B-239E3B152E05}.Debug|Win32.Build.0 = Debug|Win32
		{7ECC4BF9-45A4-4774-869B-239E3B152E05}.Debug|x64.ActiveCfg = Debug|x64
		{7ECC4BF9-45A4-4774-869B-239E3B152E05}.Debug|x64.Build.0 = Debug|x64
		{7ECC4BF9-45A4-4774-869B-239E3B152E05}.Release|Win32.ActiveCfg = Release|Win32
		{7ECC4BF9-45A4-4774-869B-239E3B152E05}.Release|Win32.Build.0 = Release|Win32
		{7ECC4BF9-45A4-4774-869B-239E3B152E05}.Release|x64.ActiveCfg = Release|x64
		{7ECC4BF9-45A4-4774-869B-239E3B152E05}.Release|x64.Build.0 = Release|x64
		{3A13DBD7-D3CA-4908-8B76-9F8AEB5EC81B}.Debug|Win32.ActiveCfg = Debug|Win32
		{3A13DBD7-D3CA-4908-8B76-9F8AEB5EC81B}.Debug|Win32.Build.0 = Debug|Win32
		{3A13DBD7-D3CA-4908-8B76-9F8AEB5EC81B}.Debug|x64.ActiveCfg = Debug|x64
		{3A13DBD7-D3CA-4908-8B76-9F8AEB5EC81B}.Debug|x64.Build.0 = Debug|x64
		{3A13DBD7-D3CA-4908-8B76-9F8AEB5EC81B}.Release|Win32.ActiveCfg = Release|Win32
		{3A13DBD7-D3CA-4908-8B76-9F8AEB5EC81B}.Release|Win32.Build.0 = Release|Win32
		{3A13DBD7-D3CA-4908-8B76-9F8AEB5EC81B}.Release|x64.ActiveCfg = Release|x64
		{3A13DBD7-D3CA-4908-8B76-9F8AEB5EC81B}.Release|x64.Build.0 = Release|x64
		{B8900569-8956-47AF-A2E7-50EB1DD788DD}.Debug|Win32.ActiveCfg = Debug|Win32
		{B8900569-8956-47AF-A2E7-50EB1DD788DD}.Debug|Win32.Build.0 = Debug|Win32
		{B8900569-8956-47AF-A2E7-50EB1DD788DD}.Debug|x64.ActiveCfg = Debug|x64
		{B8900569-8956-47AF-A2E7-50EB1DD788DD}.Debug|x64.Build.0 = Debug|x64
		{B8900569-8956-47AF-A2E7-50EB1DD788DD}.Release|Win32.ActiveCfg = Release|Win32
		{B8900569-8956-47AF-A2E7-50EB1DD788DD}.Release|Win32.Build.0 = Release|Win32
		{B8900569-8956-47AF-A2E7-50EB1DD788DD}.Release|x64.ActiveCfg = Release|x64
		{B8900569-8956-47AF-A2E7-50EB1DD788DD}.Release|x64.Build.0 = Release|x64
		{70307B6F-61D5-4015-8578-E0E3549B7AB9}.Debug|Win32.ActiveCfg = Debug|Win32
		{70307B6F-61D5-4015-8578-E0E3549B7AB9}.Debug|Win32.Build.0 = Debug|Win32
		{70307B6F-61D5-4015-8578-E0E3549B7AB9}.Debug|x64.ActiveCfg = Debug|x64
		{70307B6F-61D5-4015-8578-E0E3549B7AB9}.Debug|x64.Build.0 = Debug|x64
		{70307B6F-61D5-4015-8578-E0E3549B7AB9}.Release|Win32.ActiveCfg = Release|Win32
		{70307B6F-61D5-4015-8578-E0E3549B7AB9}.Release|Win32.Build.0 = Release|Win32
		{70307B6F-61D5-4015-8578-E0E3549B7AB9}.Release|x64.ActiveCfg = Release|x64
		{70307B6F-61D5-4015-8578-E0E3549B7AB9}.Release|x64.Build.0 = Release|x64
		{2F18E4B1-966E-4A8D-B91E-8F216186A6E3}.Debug|Win32.ActiveCfg = Debug|Win32
		{2F18E4B1-966E-4A8D-B91E-8F216186A6E3}.Debug|Win32.Build.0 = Debug|Win32
		{2F18E4B1-966E-4A8D-B91E-8F216186A6E3}.Debug|x64.ActiveCfg = Debug|x64
		{2F18E4B1-966E-4A8D-B91E-8F216186A6E3}.Debug|x64.Build.0 = Debug|x64
		{2F18E4B1-966E-4A8D-B91E-8F216186A6E3}.Release|Win32.ActiveCfg = Release|Win32
		{2F18E4B1-966E-4A8D-B91E-8F216186A6E3}.Release|Win32.Build.0 = Release|Win32
		{2F18E4B1-966E-4A8D-B91E-8F216186A6E3}.Release|x64.ActiveCfg = Release|x64
		{2F18E4B1-966E-4A8D-B91E-8F216186A6E3}.Release|x64.Build.0 = Release|x64
		{5372A6CE-25DA-4E7D-9EC5-8F99A74BF4E7}.Debug|Win32.ActiveCfg = Debug|Win32
		{5372A6CE-25DA-4E7D-9EC5-8F99A74BF4E7}.Debug|Win32.Build.0 = Debug|Win32
		{5372A6CE-25DA-4E7D-9EC5-8F99A74BF4E7}.Debug|x64.ActiveCfg = Debug|x64
		{5372A6CE-25DA-4E7D-9EC5-8F99A74BF4E7}.Debug|x64.Build.0 = Debug|x64
		{5372A6CE-25DA-4E7D-9EC5-8F99A74BF4E7}.Release|Win32.ActiveCfg = Release|Win32
		{5372A6CE-25DA-4E7D-9EC5-8F99A74BF4E7}.Release|Win32.Build.0 = Release|Win32
		{5372A6CE-25DA-4E7D-9EC5-8F99A74BF4E7}.Release|x64.ActiveCfg = Release|x64
		{5372A6CE-25DA-4E7D-9EC5-8F99A74BF4E7}.Release|x64.Build.0 = Release|x64
		{EB228067-EA4D-452C-91FC-91DB3B445C31}.Debug|Win32.ActiveCfg = Debug|Win32
		{EB228067-EA4D-452C-91FC-91DB3B445C31}.Debug|Win32.Build.0 = Debug|Win32
		{EB228067-EA4D-452C-91FC-91DB3B445C31}.Debug|x64.ActiveCfg = Debug|x64
		{EB228067-EA4D-452C-91FC-91DB3B445C31}.Debug|x64.Build.0 = Debug|x64
		{EB228067-EA4D-452C-91FC-91DB3B445C31}.Release|Win32.ActiveCfg = Release|Win32
		{EB228067-EA4D-452C-91FC-91DB3B445C31}.Release|Win32.Build.0 = Release|Win32
		{EB228067-EA4D-452C-91FC-91DB3B445C31}.Release|x64.ActiveCfg = Release|x64
		{EB228067-EA4D-452C-91FC-91DB3B445C31}.Release|x64.Build.0 = Release|x64
		{A09D9D20-FBB8-4C1A-8628-3071AC7903DA}.Debug|Win32.ActiveCfg = Debug|Win32
		{A09D9D20-FBB8-4C1A-8628-3071AC7903DA}.Debug|Win32.Build.0 = Debug|Win32
		{A09D9D20-FBB8-4C1A-8628-3071AC7903DA}.Debug|x64.ActiveCfg = Debug|x64
		{A09D9D20-FBB8-4C1A-8628-3071AC7903DA}.Debug|x64.Build.0 = Debug|x64
		{A09D9D20-FBB8-4C1A-8628-3071AC7903DA}.Release|Win32.ActiveCfg = Release|Win32
		{A09D9D20-FBB8-4C1A-8628-3071AC7903DA}.Release|Win32.Build.0 = Release|Win32
		{A09D9D20-FBB8-4C1A-8628-3071AC7903DA}.Release|x64.ActiveCfg = Release|x64
		{A09D9D20-FBB8-4C1A-8628-3071AC7903DA}.Release|x64.Build.0 = Release|x64
		{D89AC0DB-DFF2-4F15-8A26-63D51EDABB57}.Debug|Win32.ActiveCfg = Debug|Win32
		{D89AC0DB-DFF2-4F15-8A26-63D51EDABB57}.Debug|Win32.Build.0 = Debug|Win32
		{D89AC0DB-DFF2-4F15-8A26-63D51EDABB57}.Debug|x64.ActiveCfg = Debug|x64
		{D89AC0DB-DFF2-4F15-8A26-63D51EDABB57}.Debug|x64.Build.0 = Debug|x64
		{D89AC0DB-DFF2-4F15-8A26-63D51EDABB57}.Release|Win32.ActiveCfg = Release|Win32
		{D89AC0DB-DFF2-4F15-8A26-63D51EDABB57}.Release|Win32.Build.0 = Release|Win32
		{D89AC0DB-DFF2-4F15-8A26-63D51EDABB57}.Release|x64.ActiveCfg = Release|x64
		{D89AC0DB-DFF2-4F15-8A26-63D51EDABB57}.Release|x64.Build.0 = Release|x64
		{E8BD18E5-EF07-42A0-BB98-461F3D9BCDE1}.Debug|Win32.ActiveCfg = Debug|Win32
		{E8BD18E5-EF07-42A0-BB98-461F3D9BCDE1}.Debug|Win32.Build.0 = Debug|Win32
		{E8BD18E5-EF07-42A0-BB98-461F3D9BCDE1}.Debug|x64.ActiveCfg = Debug|x64
		{E8BD18E5-EF07-42A0-BB98-461F3D9BCDE1}.Debug|x64.Build.0 = Debug|x64
		{E8BD18E5-EF07-42A0-BB98-461F3D9BCDE1}.Release|Win32.ActiveCfg = Release|Win32
		{E8BD18E5-EF07-42A0-BB98-461F3D9BCDE1}.Release|Win32.Build.0 = Release|Win32
		{E8BD18E5-EF07-42A0-BB98-461F3D9BCDE1}.Release|x64.ActiveCfg = Release|x64
		{E8BD18E5-EF07-42A0-BB98-461F3D9BCDE1}.Release|x64.Build.0 = Release|x64
		{0A2D4D13-6AC2-4602-BF8F-DA73133C1974}.Debug|Win32.ActiveCfg = Debug|Win32
		{0A2D4D13-6AC2-4602-BF8F-DA73133C1974}.Debug|Win32.Build.0 = Debug|Win32
		{0A2D4D13-6AC2-4602-BF8F-DA73133C1974}.Debug|x64.ActiveCfg = Debug|x64
		{0A2D4D13-6AC2-4602-BF8F-DA73133C1974}.Debug|x64.Build.0 = Debug|x64
		{0A2D4D13-6AC2-4602-BF8F-DA73133C1974}.Release|Win32.ActiveCfg = Release|Win32
		{0A2D4D13-6AC2-4602-BF8F-DA73133C1974}.Release|Win32.Build.0 = Release|Win32
		{0A2D4D13-6AC2-4602-BF8F-DA73133C1974}.Release|x64.ActiveCfg = Release|x64
		{0A2D4D13-6AC2-4602-BF8F-DA73133C1974}.Release|x64.Build.0 = Release|x64
		{FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3}.Debug|Win32.ActiveCfg = Debug|Win32
		{FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3}.Debug|Win32.Build.0 = Debug|Win32
		{FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3}.Debug|x64.ActiveCfg = Debug|x64
		{FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3}.Debug|x64.Build.0 = Debug|x64
		{FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3}.Release|Win32.ActiveCfg = Release|Win32
		{FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3}.Release|Win32.Build.0 = Release|Win32
		{FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3}.Release|x64.ActiveCfg = Release|x64
		{FBC5BEAE-01B9-4943-A5CB-0D3DE2067EB3}.Release|x64.Build.0 = Release|x64
		{73EC875E-F233-4FA9-B3AF-E2981EA59B3A}.Debug|Win32.ActiveCfg = Debug|Win32
		{73EC875E-F233-4FA9-B3AF-E2981EA59B3A}.Debug|Win32.Build.0 = Debug|Win32
		{73EC875E-F233-4FA9-B3AF-E2981EA59B3A}.Debug|x64.ActiveCfg = Debug|x64
		{73EC875E-F233-4FA9-B3AF-E2981EA59B3A}.Debug|x64.Build.0 = Debug|x64
		{73EC875E-F233-4FA9-B3AF-E2981EA59B3A}.Release|Win32.ActiveCfg = Release|Win32
		{73EC875E-F233-4FA9-B3AF-E2981EA59B3A}.Release|Win32.Build.0 = Release|Win32
		{73EC875E-F233-4FA9-B3AF-E2981EA59B3A}.Release|x64.ActiveCfg = Release|x64
		{73EC875E-F233-4FA9-B3AF-E2981EA59B3A}.Release|x64.Build.0 = Release|x64
		{DFA66387-8E95-4745-9DEB-AC4A82165F9A}.Debug|Win32.ActiveCfg = Debug|Win32
		{DFA66387-8E95-4745-9DEB-AC4A82165F9A}.Debug|Win32.Build.0 = Debug|Win32
		{DFA66387-8E95-4745-9DEB-AC4A82165F9A}.Debug|x64.ActiveCfg = Debug|x64
		{DFA66387-8E95-4745-9DEB-AC4A82165F9A}.Debug|x64.Build.0 = Debug|x64
		{DFA66387-8E95-4745-9DEB-AC4A82165F9A}.Release|Win32.ActiveCfg = Release|Win32
		{DFA66387-8E95-4745-9DEB-AC4A82165F9A}.Release|Win32.Build.0 = Release|Win32
		{DFA66387-8E95-4745-9DEB-AC4A82165F9A}.Release|x64.ActiveCfg = Release|x64
		{DFA66387-8E95-4745-9DEB-AC4A82165F9A}.Release|x64.Build.0 = Release|x64
		{2AC5EE08-C6FC-4224-8250-F3586B81E2E5}.Debug|Win32.ActiveCfg = Debug|Win32
		{2AC5EE08-C6FC-4224-8250-F3586B81E2E5}.Debug|Win32.Build.0 = Debug|Win32
		{2AC5EE08-C6FC-4224-8250-F3586B81E2E5}.Debug|x64.ActiveCfg = Debug|x64
		{2AC5EE08-C6FC-4224-8250-F3586B81E2E5}.Debug|x64.Build.0 = Debug|x64
		{2AC5EE08-C6FC-4224-8250-F3586B81E2E5}.Release|Win32.ActiveCfg = Release|Win32
		{2AC5EE08-C6FC-4224-8250-F3586B81E2E5}.Release|Win32.Build.0 = Release|Win32
		{2AC5EE08-C6FC-4224-8250-F3586B81E2E5}.Release|x64.ActiveCfg = Release|x64
		{2AC5EE08-C6FC-4224-8250-F3586B81E2E5}.Release|x64.Build.0 = Release|x64
		{D6A76B16-C1F9-4FCC-B625-74471FA47BD6}.Debug|Win32.ActiveCfg = Debug|Win32
		{D6A76B16-C1F9-4FCC-B625-74471FA47BD6}.Debug|Win32.Build.0 = Debug|Win32
		{D6A76B16-C1F9-4FCC-B625-74471FA47BD6}.Debug|x64.ActiveCfg = Debug|x64
		{D6A76B16-C1F9-4FCC-B625-74471FA47BD6}.Debug|x64.Build.0 = Debug|x64
		{D6A76B16-C1F9-4FCC-B625-74471FA47BD6}.Release|Win32.ActiveCfg = Release|Win32
		{D6A76B16-C1F9-4FCC-B625-74471FA47BD6}.Release|Win32.Build.0 = Release|Win32
		{D6A76B16-C1F9-4FCC-B625-74471FA47BD6}.Release|x64.ActiveCfg = Release|x64
		{D6A76B16-C1F9-4FCC-B625-74471FA47BD6}.Release|x64.Build.0 = Release|x64
		{175B6636-9885-40EF-8748-37136DEB5122}.Debug|Win32.ActiveCfg = Debug|Win32
		{175B6636-9885-40EF-8748-37136DEB5122}.Debug|Win32.Build.0 = Debug|Win32
		{175B6636-9885-40EF-8748-37136DEB5122}.Debug|x64.ActiveCfg = Debug|x64
		{175B6636-9885-40EF-8748-37136DEB5122}.Debug|x64.Build.0 = Debug|x64
		{175B6636-9885-40EF-8748-37136DEB5122}.Release|Win32.ActiveCfg = Release|Win32
		{175B6636-9885-40EF-8748-37136DEB5122}.Release|Win32.Build.0 = Release|Win32
		{175B6636-9885-40EF-8748-37136DEB5122}.Release|x64.ActiveCfg = Release|x64
		{175B6636-9885-40EF-8748-37136DEB5122}.Release|x64.Build.0 = Release|x64
		{16B91C15-D6ED-49F7-9C67-CEA02DD56FCB}.Debug|Win32.ActiveCfg = Debug|Win32
		{16B91C15-D6ED-49F7-9C67-CEA02DD56FCB}.Debug|Win32.Build.0 = Debug|Win32
		{16B91C15-D6ED-49F7-9C67-CEA02DD56FCB}.Debug|x64.ActiveCfg = Debug|x64
		{16B91C15-D6ED-49F7-9C67-CEA02DD56FCB}.Debug|x64.Build.0 = Debug|x64
		{16B91C15-D6ED-49F7-9C67-CEA02DD56FCB}.Release|Win32.ActiveCfg = Release|Win32
		{16B91C15-D6ED-49F7-9C67-CEA02DD56FCB}.Release|Win32.Build.0 = Release|Win32
		{16B91C15-D6ED-49F7-9C67-CEA02DD56FCB}.Release|x64.ActiveCfg = Release|x64
		{16B91C15-D6ED-49F7-9C67-CEA02DD56FCB}.Release|x64.Build.0 = Release|x64
		{6C5C01FA-1F9B-4132-881C-14C18EC15FA9}.Debug|Win32.ActiveCfg = Debug|Win32
		{6C5C01FA-1F9B-4132-881C-14C18EC15FA9}.Debug|Win32.Build.0 = Debug|Win32
		{6C5C01FA-1F9B-4132-881C-14C18EC15FA9}.Debug|x64.ActiveCfg = Debug|x64
		{6C5C01FA-1F9B-4132-881C-14C18EC15FA9}.Debug|x64.Build.0 = Debug|x64
		{6C5C01FA-1F9B-4132-881C-14C18EC15FA9}.Release|Win32.ActiveCfg = Release|Win32
		{6C5C01FA-1F9B-4132-881C-14C18EC15FA9}.Release|Win32.Build.0 = Release|Win32
		{6C5C01FA-1F9B-4132-881C-14C18EC15FA9}.Release|x64.ActiveCfg = Release|x64
		{6C5C01FA-1F9B-4132-881C-14C18EC15FA9}.Release|x64.Build.0 = Release|x64
		{76479E1B-8BD5-4143-897F-F1E93DC1C64B}.Debug|Win32.ActiveCfg = Debug|Win32
		{76479E1B-8BD5-4143-897F-F1E93DC1C64B}.Debug|Win32.Build.0 = Debug|Win32
		{76479E1B-8BD5-4143-897F-F1E93DC1C64B}.Debug|x64.ActiveCfg = Debug|x64
		{76479E1B-8BD5-4143-897F-F1E93DC1C64B}.Debug|x64.Build.0 = Debug|x64
		{76479E1B-8BD5-4143-897F-F1E93DC1C64B}.Release|Win32.ActiveCfg = Release|Win32
		{76479E1B-8BD5-4143-897F-F1E93DC1C64B}.Release|Win32.Build.0 = Release|Win32
		{76479E1B-8BD5-4143-897F-F1E93DC1C64B}.Release|x64.ActiveCfg = Release|x64
		{76479E1B-8BD5-4143-897F-F1E93DC1C64B}.Release|x64.Build.0 = Release|x64
		{383F6294-1771-4E78-B5CB-61B04F6BD660}.Debug|Win32.ActiveCfg = Debug|Win32
		{383F6294-1771-4E78-B5CB-61B04F6BD660}.Debug|Win32.Build.0 = Debug|Win32
		{383F6294-1771-4E78-B5CB-61B04F6BD660}.Debug|x64.ActiveCfg = Debug|x64
		{383F6294-1771-4E78-B5CB-61B04F6BD660}.Debug|x64.Build.0 = Debug|x64
		{383F6294-1771-4E78-B5CB-61B04F6BD660}.Release|Win32.ActiveCfg = Release|Win32
		{383F6294-1771-4E78-B5CB-61B04F6BD660}.Release|Win32.Build.0 = Release|Win32
		{383F6294-1771-4E78-B5CB-61B04F6BD660}.Release|x64.ActiveCfg = Release|x64
		{383F6294-1771-4E78-B5CB-61B04F6BD660}.Release|x64.Build.0 = Release|x64
		{EB36417C-8220-4DC9-B9BD-F3EAAE24DC0D}.Debug|Win32.ActiveCfg = Debug|Win32
		{EB36417C-8220-4DC9-B9BD-F3EAAE24DC0D}.Debug|Win32.Build.0 = Debug|Win32
		{EB36417C-8220-4DC9-B9BD-F3EAAE24DC0D}.Debug|x64.ActiveCfg = Debug|x64
		{EB36417C-8220-4DC9-B9BD-F3EAAE24DC0D}.Debug|x64.Build.0 = Debug|x64
		{EB36417C-8220-4DC9-B9BD-F3EAAE24DC0D}.Release|Win32.ActiveCfg = Release|Win32
		{EB36417C-8220-4DC9-B9BD-F3EAAE24DC0D}.Release|Win32.Build.0 = Release|Win32
		{EB36417C-8220-4DC9-B9BD-F3EAAE24DC0D}.Release|x64.ActiveCfg = Release|x64
		{EB36417C-8220-4DC9-B9BD-F3EAAE24DC0D}.Release|x64.Build.0 = Release|x64
		{B29F438E-904C-4929-903C-F4673182A417}.Debug|Win32.ActiveCfg = Debug|Win32
		{B29F438E-904C-4929-903C-F4673182A417}.Debug|Win32.Build.0 = Debug|Win32
		{B29F438E-904C-4929-903C-F4673182A417}.Debug|x64.ActiveCfg = Debug|x64
		{B29F438E-904C-4929-903C-F4673182A417}.Debug|x64.Build.0 = Debug|x64
		{B29F438E-904C-4929-903C-F4673182A417}.Release|Win32.ActiveCfg = Release|Win32
		{B29F438E-904C-4929-903C-F4673182A417}.Release|Win32.Build.0 = Release|Win32
		{B29F438E-904C-4929-903C-F4673182A417}.Release|x64.ActiveCfg = Release|x64
		{B29F438E-904C-4929-903C-F4673182A417}.Release|x64.Build.0 = Release|x64
		{6941F2A7-F0C7-4293-8646-AF68A7E35183}.Debug|Win32.ActiveCfg = Debug|Win32
		{6941F2A7-F0C7-4293-8646-AF68A7E35183}.Debug|Win32.Build.0 = Debug|Win32
		{6941F2A7-F0C7-4293-8646-AF68A7E35183}.Debug|x64.ActiveCfg = Debug|x64
		{6941F2A7-F0C7-4293-8646-AF68A7E35183}.Debug|x64.Build.0 = Debug|x64
		{6941F2A7-F0C7-4293-8646-AF68A7E35183}.Release|Win32.ActiveCfg = Release|Win32
		{6941F2A7-F0C7-4293-8646-AF68A7E35183}.Release|Win32.Build.0 = Release|Win32
		{6941F2A7-F0C7-4293-8646-AF68A7E35183}.Release|x64.ActiveCfg = Release|x64
		{6941F2A7-F0C7-4293-8646-AF68A7E35183}.Release|x64.Build.0 = Release|x64
		{A19D14E3-19FE-46FE-91CA-0BAD1CDB91C5}.Debug|Win32.ActiveCfg = Debug|Win32
		{A19D14E3-19FE-46FE-91CA-0BAD1CDB91C5}.Debug|Win32.Build.0 = Debug|Win32
		{A19D14E3-19FE-46FE-91CA-0BAD1CDB91C5}.Debug|x64.ActiveCfg = Debug|x64
		{A19D14E3-19FE-46FE-91CA-0BAD1CDB91C5}.Debug|x64.Build.0 = Debug|x64
		{A19D14E3-19FE-46FE-91CA-0BAD1CDB91C5}.Release|Win32.ActiveCfg = Release|Win32
		{A19D14E3-19FE-46FE-91CA-0BAD1CDB91C5}.Release|Win32.Build.0 = Release|Win32
		{A19D14E3-19FE-46FE-91CA-0BAD1CDB91C5}.Release|x64.ActiveCfg = Release|x64
		{A19D14E3-19FE-46FE-91CA-0BAD1CDB91C5}.Release|x64.Build.0 = Release|x64
		{98743716-82FC-4B02-96AF-E6F649403A0A}.Debug|Win32.ActiveCfg = Debug|Win32
		{98743716-82FC-4B02-96AF-E6F649403A0A}.Debug|Win32.Build.0 = Debug|Win32
		{98743716-82FC-4B02-96AF-E6F649403A0A}.Debug|x64.ActiveCfg = Debug|x64
		{98743716-82FC-4B02-96AF-E6F649403A0A}.Debug|x64.Build.0 = Debug|x64
		{98743716-82FC-4B02-96AF-E6F649403A0A}.Release|Win32.ActiveCfg = Release|Win32
		{98743716-82FC-4B02-96AF-E6F649403A0A}.Release|Win32.Build.0 = Release|Win32
		{98743716-82FC-4B02-96AF-E6F649403A0A}.Release|x64.ActiveCfg = Release|x64
		{98743716-82FC-4B02-96AF-E6F649403A0A}.Release|x64.Build.0 = Release|x64
		{BD9615AA-7202-4D22-8C0E-78160756D9D4}.Debug|Win32.ActiveCfg = Debug|Win32
		{BD9615AA-7202-4D22-8C0E-78160756D9D4}.Debug|Win32.Build.0 = Debug|Win32
		{BD9615AA-7202-4D22-8C0E-78160756D9D4}.Debug|x64.ActiveCfg = Debug|x64
		{BD9615AA-7202-4D22-8C0E-78160756D9D4}.Debug|x64.Build.0 = Debug|x64
		{BD9615AA-7202-4D22-8C0E-78160756D9D4}.Release|Win32.ActiveCfg = Release|Win32
		{BD9615AA-7202-4D22-8C0E-78160756D9D4}.Release|Win32.Build.0 = Release|Win32
		{BD9615AA-7202-4D22-8C0E-78160756D9D4}.Release|x64.ActiveCfg = Release|x64
		{BD9615AA-7202-4D22-8C0E-78160756D9D4}.Release|x64.Build.0 = Release|x64
		{7F864438-F4C3-463A-B5CE-CB1DB5847FB5}.Debug|Win32.ActiveCfg = Debug|Win32
		{7F864438-F4C3-463A-B5CE-CB1DB5847FB5}.Debug|Win32.Build.0 = Debug|Win32
		{7F864438-F4C3-463A-B5CE-CB1DB5847FB5}.Debug|x64.ActiveCfg = Debug|x64
		{7F864438-F4C3-463A-B5CE-CB1DB5847FB5}.Debug|x64.Build.0 = Debug|x64
		{7F864438-F4C3-463A-B5CE-CB1DB5847FB5}.Release|Win32.ActiveCfg = Release|Win32
		{7F864438-F4C3-463A-B5CE-CB1DB5847FB5}.Release|Win32.Build.0 = Release|Win32
		{7F864438-F4C3-463A-B5CE-CB1DB5847FB5}.Release|x64.ActiveCfg = Release|x64
		{7F864438-F4C3-463A-B5CE-CB1DB5847FB5}.Release|x64.Build.0 = Release|x64
		{FD299611-3D51-49AD-995D-37CF39E10A81}.Debug|Win32.ActiveCfg = Debug|Win32
		{FD299611-3D51-49AD-995D-37CF39E10A81}.Debug|Win32.Build.0 = Debug|Win32
		{FD299611-3D51-49AD-995D-37CF39E10A81}.Debug|x64.ActiveCfg = Debug|x64
		{FD299611-3D51-49AD-995D-37CF39E10A81}.Debug|x64.Build.0 = Debug|x64
		{FD299611-3D51-49AD-995D-37CF39E10A81}.Release|Win32.ActiveCfg = Release|Win32
		{FD299611-3D51-49AD-995D-37CF39E10A81}.Release|Win32.Build.0 = Release|Win32
		{FD299611-3D51-49AD-995D-37CF39E10A81}.Release|x64.ActiveCfg = Release|x64
		{FD299611-3D51-49AD-995D-37CF39E10A81}.Release|x64.Build.0 = Release|x64
		{ECE372F3-6511-4EDB-BEFC-18E5675093E2}.Debug|Win32.ActiveCfg = Debug|Win32
		{ECE372F3-6511-4EDB-BEFC-18E5675093E2}.Debug|Win32.Build.0 = Debug|Win32
		{ECE372F3-6511-4EDB-BEFC-18E5675093E2}.Debug|x64.ActiveCfg = Debug|x64
		{ECE372F3-6511-4EDB-BEFC-18E5675093E2}.Debug|x64.Build.0 = Debug|x64
		{ECE372F3-6511-4EDB-BEFC-18E5675093E2}.Release|Win32.ActiveCfg = Release|Win32
		{ECE372F3-6511-4EDB-BEFC-18E5675093E2}.Release|Win32.Build.0 = Release|Win32
		{ECE372F3-6511-4EDB-BEFC-18E5675093E2}.Release|x64.ActiveCfg = Release|x64
		{ECE372F3-6511-4EDB-BEFC-18E5675093E2}.Release|x64.Build.0 = Release|x64
		{404ADA93-B3AE-4161-9EE8-9CF7F8B062A8}.Debug|Win32.ActiveCfg = Debug|Win32
		{404ADA93-B3AE-4161-9EE8-9CF7F8B062A8}.Debug|Win32.Build.0 = Debug|Win32
		{404ADA93-B3AE-4161-9EE8-9CF7F8B062A8}.Debug|x64.ActiveCfg = Debug|x64
		{404ADA93-B3AE-4161-9EE8-9CF7F8B062A8}.Debug|x64.Build.0 = Debug|x64
		{404ADA93-B3AE-4161-9EE8-9CF7F8B062A8}.Release|Win32.ActiveCfg = Release|Win32
		{404ADA93-B3AE-4161-9EE8-9CF7F8B062A8}.Release|Win32.Build.0 = Release|Win32
		{404ADA93-B3AE-4161-9EE8-9CF7F8B062A8}.Release|x64.ActiveCfg = Release|x64
		{404ADA93-B3AE-4161-9EE8-9CF7F8B062A8}.Release|x64.Build.0 = Release|x64
		{57D67BC9-C172-47F0-A379-6DA93E845202}.Debug|Win32.ActiveCfg = Debug|Win32
		{57D67BC9-C172-47F0-A379-6DA93E845202}.Debug|Win32.Build.0 = Debug|Win32
		{57D67BC9-C172-47F0-A379-6DA93E845202}.Debug|x64.ActiveCfg = Debug|x64
		{57D67BC9-C172-47F0-A379-6DA93E845202}.Debug|x64.Build.0 = Debug|x64
		{57D67BC9-C172-47F0-A379-6DA93E845202}.Release|Win32.ActiveCfg = Release|Win32
		{57D67BC9-C172-47F0-A379-6DA93E845202}.Release|Win32.Build.0 = Release|Win32
		{57D67BC9-C172-47F0-A379-6DA93E845202}.Release|x64.ActiveCfg = Release|x64
		{57D67BC9-C172-47F0-A379-6DA93E845202}.Release|x64.Build.0 = Release|x64
		{E5605BA4-CC97-4635-B9B6-E73F10A8704F}.Debug|Win32.ActiveCfg = Debug|Win32
		{E5605BA4-CC97-4635-B9B6-E73F10A8704F}.Debug|Win32.Build.0 = Debug|Win32
		{E5605BA4-CC97-4635-B9B6-E73F10A8704F}.Debug|x64.ActiveCfg = Debug|x64
		{E5605BA4-CC97-4635-B9B6-E73F10A8704F}.Debug|x64.Build.0 = Debug|x64
		{E5605BA4-CC97-4635-B9B6-E73F10A8704F}.Release|Win32.ActiveCfg = Release|Win32
		{E5605BA4-CC97-4635-B9B6-E73F10A8704F}.Release|Win32.Build.0 = Release|Win32
		{E5605BA4-CC97-4635-B9B6-E73F10A8704F}.Release|x64.ActiveCfg = Release|x64
		{E5605BA4-CC97-4635-B9B6-E73F10A8704F}.Release|x64.Build.0 = Release|x64
	EndGlobalSection
	GlobalSection(SolutionProperties) = preSolution
		HideSolutionNode = FALSE
	EndGlobalSection
	GlobalSection(NestedProjects) = preSolution
		{7D57975F-814D-4F13-9F2F-87B667937FC7} = {FD549A95-E734-4E26-A5B2-2330FC310C8D}
		{1D3709F1-9915-4CEA-A9F6-4D3FDFD79965} = {FD549A95-E734-4E26-A5B2-2330FC310C8D}
		{A9875C78-1248-4693-9310-5C46C73DDCEB} = {FD549A95-E734-4E26-A5B2-2330FC310C8D}
		{C0125346-EA97-4FE0-ABC8-592A556B3481} = {A9875C78-1248-4693-9310-5C46C73DDCEB}
		{7BD2AAAA-FA5E-4895-837F-4A24C85A851A} = {1D3709F1-9915-4CEA-A9F6-4D3FDFD79965}
		{5E95D089-DBB0-467A-BC0A-B00B9297023A} = {A9875C78-1248-4693-9310-5C46C73DDCEB}
		{2DF9C20F-08BB-475B-8901-C1A64D88BA8A} = {07BFF46A-D4BC-4FAD-9727-D959755BFBAC}
		{92CF6BFF-1A9A-455A-9252-BF6D120C3CC9} = {2DF9C20F-08BB-475B-8901-C1A64D88BA8A}
		{5B537BA4-4245-4E64-93E9-E35738AB22B3} = {2DF9C20F-08BB-475B-8901-C1A64D88BA8A}
		{FE25F3A4-FB2F-47AE-89FA-7399D5475E6D} = {9563EACE-4C0C-49D2-8DC7-37261B140F7A}
		{CF1C33CA-6F11-4B5C-B92B-F0138B90B956} = {A635554F-60C0-4415-A6BD-A5A47C0D9221}
		{70CAB882-8FA3-4E1C-930D-53F7DA29D1E4} = {9DFC39D1-06B5-4E91-972D-1749CE02ED7F}
		{7F508C90-D49D-4E26-B7B0-3CBCA677A272} = {9DFC39D1-06B5-4E91-972D-1749CE02ED7F}
		{2BCCB75A-D179-4DB4-9B50-BF6F501B5CAE} = {07BFF46A-D4BC-4FAD-9727-D959755BFBAC}
		{5B49EFBF-FC6B-4016-BC84-77784BF37944} = {07BFF46A-D4BC-4FAD-9727-D959755BFBAC}
		{13E221EB-7446-49CB-8150-2575425667BF} = {07BFF46A-D4BC-4FAD-9727-D959755BFBAC}
		{18F81610-018F-4FE9-9B33-D2060E0F2CB6} = {07BFF46A-D4BC-4FAD-9727-D959755BFBAC}
		{09DBC624-4CBA-4345-B8F1-A2786F00A615} = {07BFF46A-D4BC-4FAD-9727-D959755BFBAC}
		{CEFC6857-FA75-4334-AB78-F3AC6CB54942} = {07BFF46A-D4BC-4FAD-9727-D959755BFBAC}
		{0450B090-2EAA-4454-944E-ABD6CFFD26F9} = {07BFF46A-D4BC-4FAD-9727-D959755BFBAC}
		{ABEE2F20-BB60-434F-92D8-75DB71020E01} = {07BFF46A-D4BC-4FAD-9727-D959755BFBAC}
		{88DC6432-0356-43A9-821B-2444C564BDF2} = {07BFF46A-D4BC-4FAD-9727-D959755BFBAC}
		{F99F67DA-37F9-46DD-A416-64C930758DE5} = {07BFF46A-D4BC-4FAD-9727-D959755BFBAC}
		{B3924215-AD6D-45DA-81D7-FE5D406A677B} = {F99F67DA-37F9-46DD-A416-64C930758DE5}
		{4056956C-7E12-4432-86F8-D900A52866A4} = {F99F67DA-37F9-46DD-A416-64C930758DE5}
		{8273239C-C5A8-4752-9DFC-E1678222C36E} = {F99F67DA-37F9-46DD-A416-64C930758DE5}
		{35133FDA-2CD3-4BAD-9C54-145DC4DC787A} = {07BFF46A-D4BC-4FAD-9727-D959755BFBAC}
		{FBEE67BE-BFF5-43BB-A9DB-2E8A65734B3D} = {35133FDA-2CD3-4BAD-9C54-145DC4DC787A}
		{1D3A6135-F0EE-4531-B682-55270B70B699} = {35133FDA-2CD3-4BAD-9C54-145DC4DC787A}
		{18CE1C5F-A87D-42E2-B9F8-89FDD6ECE323} = {35133FDA-2CD3-4BAD-9C54-145DC4DC787A}
		{13F637CA-7D9B-4218-8B55-D415897B8DE0} = {07BFF46A-D4BC-4FAD-9727-D959755BFBAC}
		{9235A909-A2F2-4C90-977A-DA514B76BBE5} = {13F637CA-7D9B-4218-8B55-D415897B8DE0}
		{CCBBF424-D22D-480F-A13E-28095E33827C} = {13F637CA-7D9B-4218-8B55-D415897B8DE0}
		{C6AEF053-AA0C-46A8-A2F2-4330021D2DE2} = {13F637CA-7D9B-4218-8B55-D415897B8DE0}
		{D20E2DBD-4224-479D-9608-5BC062A48BE4} = {13F637CA-7D9B-4218-8B55-D415897B8DE0}
		{BB26B4E2-9A39-4CD5-8BE0-A14BA7BE2D5D} = {07BFF46A-D4BC-4FAD-9727-D959755BFBAC}
		{08364AF0-D407-4FEC-A759-A4499EE45A59} = {BB26B4E2-9A39-4CD5-8BE0-A14BA7BE2D5D}
		{D708316F-7E34-4E09-A782-4021C5500C0D} = {BB26B4E2-9A39-4CD5-8BE0-A14BA7BE2D5D}
		{CC971823-8685-4102-B7E6-E56E31C02370} = {BB26B4E2-9A39-4CD5-8BE0-A14BA7BE2D5D}
		{2600865C-8A10-4404-B05D-8F3CAE3FC417} = {BB26B4E2-9A39-4CD5-8BE0-A14BA7BE2D5D}
		{61FF9AD1-F474-4990-9DE5-FA30260B9D39} = {BB26B4E2-9A39-4CD5-8BE0-A14BA7BE2D5D}
		{5EB605B1-44A1-4C33-B5BA-23AFEA531487} = {07BFF46A-D4BC-4FAD-9727-D959755BFBAC}
		{0AC9ECDD-CCF4-4E61-BAD3-EF379002EDCE} = {5EB605B1-44A1-4C33-B5BA-23AFEA531487}
		{5B38C49F-3C26-43CD-B457-75806BFE69EC} = {5EB605B1-44A1-4C33-B5BA-23AFEA531487}
		{28F7BC4C-5CAD-457D-B208-9E92759910E7} = {5EB605B1-44A1-4C33-B5BA-23AFEA531487}
		{2BE2FB7A-E258-4AE1-A744-D52BD7ACC548} = {5EB605B1-44A1-4C33-B5BA-23AFEA531487}
		{5EE61717-AD86-46E4-B4D0-5AA9280B0E09} = {07BFF46A-D4BC-4FAD-9727-D959755BFBAC}
		{8B53447D-2482-4219-93DA-D33C2F899B71} = {5EE61717-AD86-46E4-B4D0-5AA9280B0E09}
		{68C8AE77-005B-4F81-8876-5A87A69823E3} = {5EE61717-AD86-46E4-B4D0-5AA9280B0E09}
		{1EB10EE3-1F75-440E-94EE-D74FCF7CA79E} = {5EE61717-AD86-46E4-B4D0-5AA9280B0E09}
		{4FF0146F-F69B-4566-8679-A190632A0958} = {5EE61717-AD86-46E4-B4D0-5AA9280B0E09}
		{7955A5EE-8C1E-4BE2-BE4F-55839EDC4E3C} = {07BFF46A-D4BC-4FAD-9727-D959755BFBAC}
		{58982601-1D8A-4F81-A69E-1D148C667937} = {7955A5EE-8C1E-4BE2-BE4F-55839EDC4E3C}
		{AA7F1615-AF3B-465F-A2CE-6A9AD1786F8B} = {7955A5EE-8C1E-4BE2-BE4F-55839EDC4E3C}
		{C23BA253-475E-49DD-A92E-616C2A93831A} = {7955A5EE-8C1E-4BE2-BE4F-55839EDC4E3C}
		{57693047-C0E4-4183-91B5-8BCAB76F1B7D} = {7955A5EE-8C1E-4BE2-BE4F-55839EDC4E3C}
		{503FAC02-04F9-466D-B783-4608413BDFBA} = {07BFF46A-D4BC-4FAD-9727-D959755BFBAC}
		{DF308E31-0D12-4B57-93CE-770B2D538DB1} = {503FAC02-04F9-466D-B783-4608413BDFBA}
		{BAD5F8A5-B916-4E76-8594-78B003C1155B} = {503FAC02-04F9-466D-B783-4608413BDFBA}
		{DB6BDE22-DB74-49FD-AB01-8DB5FCEE16FD} = {503FAC02-04F9-466D-B783-4608413BDFBA}
		{B8884358-CC9D-41DB-A352-9EDA045DFD7A} = {503FAC02-04F9-466D-B783-4608413BDFBA}
		{83821483-D719-475B-88E3-F548C267E3AB} = {07BFF46A-D4BC-4FAD-9727-D959755BFBAC}
		{38A88D1E-B86C-48E2-9B9E-68F672388734} = {83821483-D719-475B-88E3-F548C267E3AB}
		{766E4B9C-F428-4289-8975-DC3D22EEDBF6} = {83821483-D719-475B-88E3-F548C267E3AB}
		{E5D433F5-DBA3-45D5-8A7A-32A10566AA8E} = {07BFF46A-D4BC-4FAD-9727-D959755BFBAC}
		{F6570975-AE13-41EB-8465-066A6766C211} = {E5D433F5-DBA3-45D5-8A7A-32A10566AA8E}
		{7ECC4BF9-45A4-4774-869B-239E3B152E05} = {E5D433F5-DBA3-45D5-8A7A-32A10566AA8E}
		{3A13DBD7-D3CA-4908-8B76-9F8AEB5EC81B} = {E5D433F5-DBA3-45D5-8A7A-32A10566AA8E}
		{840A1C6C-5940-4464-AF58-DBA24484C64F} = {07BFF46A-D4BC-4FAD-9727-D959755BFBAC}
		{9DFC39D1-06B5-4E91-972D-1749CE02ED7F} = {2DF9C20F-08BB-475B-8901-C1A64D88BA8A}
		{9563EACE-4C0C-49D2-8DC7-37261B140F7A} = {2DF9C20F-08BB-475B-8901-C1A64D88BA8A}
		{A635554F-60C0-4415-A6BD-A5A47C0D9221} = {2DF9C20F-08BB-475B-8901-C1A64D88BA8A}
		{B8900569-8956-47AF-A2E7-50EB1DD788DD} = {840A1C6C-5940-4464-AF58-DBA24484C64F}
		{70307B6F-61D5-4015-8578-E0E3549B7AB9} = {840A1C6C-5940-4464-AF58-DBA24484C64F}
		{2F18E4B1-966E-4A8D-B91E-8F216186A6E3} = {840A1C6C-5940-4464-AF58-DBA24484C64F}
		{C8E80B4D-FE97-48F9-A056-F916E6897CE4} = {83821483-D719-475B-88E3-F548C267E3AB}
		{5DF9E173-0D3F-4D4B-A838-37ED95A093FC} = {E5D433F5-DBA3-45D5-8A7A-32A10566AA8E}
		{5EBF83AB-0028-4075-AA32-CA3EBEA4B7A0} = {840A1C6C-5940-4464-AF58-DBA24484C64F}
		{5372A6CE-25DA-4E7D-9EC5-8F99A74BF4E7} = {BB26B4E2-9A39-4CD5-8BE0-A14BA7BE2D5D}
		{967610F9-FBB0-4793-9E76-F500C4167FCE} = {07BFF46A-D4BC-4FAD-9727-D959755BFBAC}
		{EB228067-EA4D-452C-91FC-91DB3B445C31} = {967610F9-FBB0-4793-9E76-F500C4167FCE}
		{A09D9D20-FBB8-4C1A-8628-3071AC7903DA} = {967610F9-FBB0-4793-9E76-F500C4167FCE}
		{D89AC0DB-DFF2-4F15-8A26-63D51EDABB57} = {967610F9-FBB0-4793-9E76-F500C4167FCE}
		{48E60088-F431-4FFB-A170-31DAF8EC2DC8} = {93F005FC-C82E-41C7-AD15-C2F7C8287BFF}
		{E8BD18E5-EF07-42A0-BB98-461F3D9BCDE1} = {48E60088-F431-4FFB-A170-31DAF8EC2DC8}
		{C485A89F-A149-4893-A023-253593403974} = {967610F9-FBB0-4793-9E76-F500C4167FCE}
		{73EC875E-F233-4FA9-B3AF-E2981EA59B3A} = {285E5D8D-7561-4FA9-9B90-89054E8EE93F}
		{285E5D8D-7561-4FA9-9B90-89054E8EE93F} = {07BFF46A-D4BC-4FAD-9727-D959755BFBAC}
		{29121F55-3BA7-4701-9C44-2B1BA5103A5F} = {285E5D8D-7561-4FA9-9B90-89054E8EE93F}
		{DFA66387-8E95-4745-9DEB-AC4A82165F9A} = {285E5D8D-7561-4FA9-9B90-89054E8EE93F}
		{2AC5EE08-C6FC-4224-8250-F3586B81E2E5} = {285E5D8D-7561-4FA9-9B90-89054E8EE93F}
		{5CB52248-C396-4985-BB18-266DACF7838C} = {07BFF46A-D4BC-4FAD-9727-D959755BFBAC}
		{D6A76B16-C1F9-4FCC-B625-74471FA47BD6} = {5CB52248-C396-4985-BB18-266DACF7838C}
		{175B6636-9885-40EF-8748-37136DEB5122} = {5CB52248-C396-4985-BB18-266DACF7838C}
		{16B91C15-D6ED-49F7-9C67-CEA02DD56FCB} = {5CB52248-C396-4985-BB18-266DACF7838C}
		{E74A499A-2B19-4EC5-ADCC-549565C9F2A9} = {5CB52248-C396-4985-BB18-266DACF7838C}
		{6C5C01FA-1F9B-4132-881C-14C18EC15FA9} = {5CB52248-C396-4985-BB18-266DACF7838C}
		{7B7FB883-C82B-45F1-BCEA-0E97E8BAD476} = {07BFF46A-D4BC-4FAD-9727-D959755BFBAC}
		{76479E1B-8BD5-4143-897F-F1E93DC1C64B} = {7B7FB883-C82B-45F1-BCEA-0E97E8BAD476}
		{383F6294-1771-4E78-B5CB-61B04F6BD660} = {7B7FB883-C82B-45F1-BCEA-0E97E8BAD476}
		{EB36417C-8220-4DC9-B9BD-F3EAAE24DC0D} = {7B7FB883-C82B-45F1-BCEA-0E97E8BAD476}
		{A19D14E3-19FE-46FE-91CA-0BAD1CDB91C5} = {BB98F00E-A26C-48A8-AE2A-CEECB9E3FFB1}
		{98743716-82FC-4B02-96AF-E6F649403A0A} = {07BFF46A-D4BC-4FAD-9727-D959755BFBAC}
		{85EF9AE6-92A6-4DD9-833C-455EEAEA186D} = {FD549A95-E734-4E26-A5B2-2330FC310C8D}
		{11AEF28F-83CA-493A-B507-F271FCB35DBA} = {7B7FB883-C82B-45F1-BCEA-0E97E8BAD476}
		{60EE7204-7D44-4087-8880-900D00536202} = {A9875C78-1248-4693-9310-5C46C73DDCEB}
		{31AB3D1E-3F6C-4415-B3A5-BB8AA449A1E2} = {60EE7204-7D44-4087-8880-900D00536202}
		{C33D0DF1-A5DB-4F6E-A526-6AA2B3C31AD3} = {1D3709F1-9915-4CEA-A9F6-4D3FDFD79965}
		{02EA681E-C7D8-13C7-8484-4AC65E1B71E8} = {07BFF46A-D4BC-4FAD-9727-D959755BFBAC}
		{BD9615AA-7202-4D22-8C0E-78160756D9D4} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
		{7F864438-F4C3-463A-B5CE-CB1DB5847FB5} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
		{FD299611-3D51-49AD-995D-37CF39E10A81} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
		{B7A439E5-E0F9-4BD3-9668-76DC4C398045} = {07BFF46A-D4BC-4FAD-9727-D959755BFBAC}
		{ECE372F3-6511-4EDB-BEFC-18E5675093E2} = {B7A439E5-E0F9-4BD3-9668-76DC4C398045}
		{404ADA93-B3AE-4161-9EE8-9CF7F8B062A8} = {B7A439E5-E0F9-4BD3-9668-76DC4C398045}
		{27B2554D-B2F0-45C6-9F42-76F6BDEA4916} = {B7A439E5-E0F9-4BD3-9668-76DC4C398045}
		{49BD1BA3-692A-48DC-85F9-4F31415132C7} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
		{57D67BC9-C172-47F0-A379-6DA93E845202} = {07BFF46A-D4BC-4FAD-9727-D959755BFBAC}
		{E5605BA4-CC97-4635-B9B6-E73F10A8704F} = {07BFF46A-D4BC-4FAD-9727-D959755BFBAC}
		{E653E5C4-D807-4A3A-993A-C797E915E56A} = {31AB3D1E-3F6C-4415-B3A5-BB8AA449A1E2}
	EndGlobalSection
	GlobalSection(ExtensibilityGlobals) = postSolution
		SolutionGuid = {1034084F-74DD-4B33-86E3-D8038C748F48}
	EndGlobalSection
EndGlobal


================================================
FILE: areg.cmake
================================================
# ###########################################################################
# Settings for external projects to integrate Areg framework
# Copyright (c) 2022-2026 Aregtech
# ###########################################################################

# include this cmake file in the project if want to use
# areg-sdk features like automatic code generator
# and constants.

# Define AREG_SDK_ROOT before including this file in the project.
if (NOT DEFINED AREG_SDK_ROOT OR "${AREG_SDK_ROOT}" STREQUAL "")
    # Make sure that AREG_SDK_ROOT is set before the 'setup.cmake' is included
    message(FATAL_ERROR "Areg: >>> Set \'AREG_SDK_ROOT\' before including \'setup.cmake\'. Stopping building the project.")
    return()
else()
    message(STATUS "Areg: >>> Specified AREG_SDK_ROOT = \'${AREG_SDK_ROOT}\'")
endif()

# The location of cmake configuration files.
if (NOT DEFINED AREG_CMAKE_CONFIG_DIR OR "${AREG_CMAKE_CONFIG_DIR}" STREQUAL "")
    set(AREG_CMAKE_CONFIG_DIR   "${AREG_SDK_ROOT}/conf/cmake")
else()
    message(STATUS "Areg: >>> Specified AREG_CMAKE_CONFIG_DIR = \'${AREG_CMAKE_CONFIG_DIR}\'")
endif()

# Disable or enable areg-sdk specific outputs
if (NOT DEFINED AREG_ENABLE_OUTPUTS OR "${AREG_ENABLE_OUTPUTS}" STREQUAL "")
    option(AREG_ENABLE_OUTPUTS "Disable Areg SDK specific outputs, use defaults" OFF)
    message(STATUS "Areg: >>> Disable Areg SDK specific outputs, use defaults")
endif()

# Include setup.cmake to initialize variables
message(STATUS "Areg: >>> Including \'${AREG_CMAKE_CONFIG_DIR}/setup.cmake\'")
include("${AREG_CMAKE_CONFIG_DIR}/setup.cmake")

# Include common.cmake to initialize compile options
message(STATUS "Areg: >>> Including \'${AREG_CMAKE_CONFIG_DIR}/common.cmake\'")
include("${AREG_CMAKE_CONFIG_DIR}/common.cmake")

set(AREG_RESOURCES "${AREG_FRAMEWORK}/areg/resources")

# Set the 'framework' in the include directories
include_directories("${AREG_FRAMEWORK}")
# Now the header files of the areg framework can be included in the projects.


================================================
FILE: conf/README.md
================================================
# Configuration Overview

This document provides a brief overview of the configuration directory's contents and instructions for setting up configurations for various toolsets.

## Directory Structure

```
conf/
├── cmake/          # CMake build configuration files
├── exports/        # Installation templates and examples
├── msvc/           # Microsoft Visual Studio property files
└── README.md       # This file
```

---

## CMake

The [./cmake](./cmake/) directory contains project-wide and developer-specific settings for building with CMake.

| File | Purpose |
|------|---------|
| `setup.cmake` | Main setup and initialization |
| `user.cmake` | User-configurable build options |
| `common.cmake` | Common settings across all platforms |
| `functions.cmake` | CMake utility functions and macros |
| `gnu.cmake` | GCC compiler settings |
| `clang.cmake` | Clang/Apple Clang compiler settings |
| `msvc.cmake` | Microsoft Visual C++ settings |
| `install.cmake` | Installation and packaging rules |

Direct modifications to files within this directory are generally unnecessary. Instead, use the options in [user.cmake](./cmake/user.cmake) to customize the build configuration.

---

## Microsoft Visual Studio

The [./msvc](./msvc/) directory includes Visual Studio-specific property files referenced by the project. Directly modifying `.props` files is not recommended. To customize your build, copy the [msvc_setup.props](./../msvc_setup.props) file into your solution directory and apply necessary changes there.

---

## Exports

The [./exports](./exports/) directory contains templates and examples required for packaging, installation, service management, and project integration.

### Directory Contents

| File/Directory | Purpose |
|----------------|---------|
| `*.pc.in` | pkg-config templates for library discovery |
| `config.cmake.in` | CMake package configuration template |
| `*.service.in` | Linux systemd service templates |
| `*.service.*.bat.in` | Windows service install/uninstall scripts |
| `tech.areg.*.plist.in` | macOS launchd service templates |
| `*.service.*.sh.in` | macOS service install/uninstall scripts |
| `example/` | Example project and CMake toolchains |

### Package Configuration Files

| Tem
Download .txt
gitextract_3lusol1m/

├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   └── feature_request.md
│   ├── config.yml
│   ├── dependabot.yml
│   ├── pull_request_template.md
│   └── workflows/
│       ├── accessibility-bot.yml
│       ├── cmake.yml
│       ├── codeql-analysis.yml
│       ├── msbuild.yml
│       └── validate-pr.yml
├── .gitignore
├── CMakeLists.txt
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE.txt
├── README.md
├── Releases.md
├── areg-sdk.sln
├── areg.cmake
├── conf/
│   ├── README.md
│   ├── cmake/
│   │   ├── clang.cmake
│   │   ├── common.cmake
│   │   ├── functions.cmake
│   │   ├── gnu.cmake
│   │   ├── install.cmake
│   │   ├── msvc.cmake
│   │   ├── setup.cmake
│   │   └── user.cmake
│   ├── exports/
│   │   ├── areg.pc.in
│   │   ├── aregextend.pc.in
│   │   ├── areglogger.pc.in
│   │   ├── config.cmake.in
│   │   ├── example/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ReadMe.md
│   │   │   ├── example.cpp
│   │   │   └── toolchains/
│   │   │       ├── clang-linux-arm32.cmake
│   │   │       ├── clang-linux-arm64.cmake
│   │   │       ├── clang-linux-x64.cmake
│   │   │       ├── clang-linux-x86.cmake
│   │   │       ├── clang-macos-arm64.cmake
│   │   │       ├── clang-macos-x64.cmake
│   │   │       ├── clang-win-x64.cmake
│   │   │       ├── clang-win-x86.cmake
│   │   │       ├── gnu-linux-arm32.cmake
│   │   │       ├── gnu-linux-arm64.cmake
│   │   │       ├── gnu-linux-x64.cmake
│   │   │       ├── gnu-linux-x86.cmake
│   │   │       ├── msvc-win-x64.cmake
│   │   │       └── msvc-win-x86.cmake
│   │   ├── logcollector.service.in
│   │   ├── logcollector.service.install.bat.in
│   │   ├── logcollector.service.install.sh.in
│   │   ├── logcollector.service.uninstall.bat.in
│   │   ├── logcollector.service.uninstall.sh.in
│   │   ├── mtrouter.service.in
│   │   ├── mtrouter.service.install.bat.in
│   │   ├── mtrouter.service.install.sh.in
│   │   ├── mtrouter.service.uninstall.bat.in
│   │   ├── mtrouter.service.uninstall.sh.in
│   │   ├── tech.areg.logcollector.plist.in
│   │   └── tech.areg.mtrouter.plist.in
│   └── msvc/
│       ├── compile.props
│       ├── project.props
│       ├── project_defaults.props
│       └── user.props
├── docs/
│   ├── DEVELOP.md
│   ├── HOWTO.md
│   ├── HelloService.md
│   ├── HelloService.siml
│   ├── POSIX.md
│   ├── README.md
│   ├── Sample.siml
│   ├── Sample.xsd
│   ├── ServiceInterface.md
│   ├── USECASES.md
│   ├── WIN32.md
│   ├── templates/
│   │   ├── Readme.md
│   │   ├── contributors.yml
│   │   ├── msvc-dynamic-lib.vcxproj
│   │   ├── msvc-dynamic-lib.vcxproj.filters
│   │   ├── msvc-exe.vcxproj
│   │   ├── msvc-exe.vcxproj.filters
│   │   ├── msvc-static-lib.vcxproj
│   │   └── msvc-static-lib.vcxproj.filters
│   └── wiki/
│       ├── 01a-areg-package.md
│       ├── 01b-cmake-build.md
│       ├── 01c-msvc-build.md
│       ├── 01d-wsl-build.md
│       ├── 02a-quick-project-setup.md
│       ├── 02b-cmake-integrate.md
│       ├── 02c-msvc-integrate.md
│       ├── 02d-cmake-config.md
│       ├── 02e-cmake-functions.md
│       ├── 02f-preprocessor-definitions.md
│       ├── 03a-mtrouter.md
│       ├── 04a-logging-config.md
│       ├── 04b-logging-develop.md
│       ├── 04c-logobserver.md
│       ├── 04d-logcollector.md
│       ├── 05a-persistence-syntax.md
│       ├── 06a-areg-sdk-tools.md
│       ├── 06b-code-generator.md
│       ├── 06c-build-lusan.md
│       ├── 06d-setup-lusan.md
│       ├── 06e-lusan-service-interface.md
│       ├── 06f-lusan-live-logging.md
│       ├── 06g-lusan-offline-logging.md
│       ├── 07a-troubleshooting-wsl-update.md
│       ├── 07b-troubleshooting-cmake-linux-builds.md
│       ├── 07c-troubleshooting-integration.md
│       ├── 08a-examples-and-tests.md
│       └── README.md
├── examples/
│   ├── 01_minimalrpc/
│   │   ├── 01_generated.vcxproj
│   │   ├── 01_generated.vcxproj.filters
│   │   ├── 01_minimalrpc.vcxproj
│   │   ├── 01_minimalrpc.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── services/
│   │   │   └── HelloService.siml
│   │   └── src/
│   │       └── main.cpp
│   ├── 02_minimalipc/
│   │   ├── 02_consumeripc.vcxproj
│   │   ├── 02_consumeripc.vcxproj.filters
│   │   ├── 02_generated.vcxproj
│   │   ├── 02_generated.vcxproj.filters
│   │   ├── 02_provideripc.vcxproj
│   │   ├── 02_provideripc.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── services/
│   │   │   └── HelloService.siml
│   │   └── src/
│   │       ├── consumeripc.cpp
│   │       └── provideripc.cpp
│   ├── 03_helloservice/
│   │   ├── 03_clientproc.vcxproj
│   │   ├── 03_clientproc.vcxproj.filters
│   │   ├── 03_generated.vcxproj
│   │   ├── 03_generated.vcxproj.filters
│   │   ├── 03_onethread.vcxproj
│   │   ├── 03_onethread.vcxproj.filters
│   │   ├── 03_serviceproc.vcxproj
│   │   ├── 03_serviceproc.vcxproj.filters
│   │   ├── 03_twothreads.vcxproj
│   │   ├── 03_twothreads.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── common/
│   │   │   └── src/
│   │   │       ├── ClientComponent.cpp
│   │   │       ├── ClientComponent.hpp
│   │   │       ├── ServiceComponent.cpp
│   │   │       └── ServiceComponent.hpp
│   │   ├── multiprocess/
│   │   │   ├── clientproc/
│   │   │   │   └── src/
│   │   │   │       └── main.cpp
│   │   │   └── serviceproc/
│   │   │       └── src/
│   │   │           └── main.cpp
│   │   ├── onethread/
│   │   │   └── src/
│   │   │       └── main.cpp
│   │   ├── services/
│   │   │   └── HelloService.siml
│   │   └── twothreads/
│   │       └── src/
│   │           └── main.cpp
│   ├── 04_hellothread/
│   │   ├── 04_hellothread.vcxproj
│   │   ├── 04_hellothread.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   └── src/
│   │       └── main.cpp
│   ├── 05_buffer/
│   │   ├── 05_buffer.vcxproj
│   │   ├── 05_buffer.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   └── src/
│   │       └── main.cpp
│   ├── 06_file/
│   │   ├── 06_file.vcxproj
│   │   ├── 06_file.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   └── src/
│   │       └── main.cpp
│   ├── 07_logging/
│   │   ├── 07_logging.vcxproj
│   │   ├── 07_logging.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   └── src/
│   │       └── main.cpp
│   ├── 08_timer/
│   │   ├── 08_timer.vcxproj
│   │   ├── 08_timer.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   └── src/
│   │       └── main.cpp
│   ├── 09_threads/
│   │   ├── 09_threads.vcxproj
│   │   ├── 09_threads.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   └── src/
│   │       └── main.cpp
│   ├── 10_sync/
│   │   ├── 10_sync.vcxproj
│   │   ├── 10_sync.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   └── src/
│   │       └── main.cpp
│   ├── 11_service/
│   │   ├── 11_service.vcxproj
│   │   ├── 11_service.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   └── src/
│   │       ├── ServicingComponent.cpp
│   │       ├── ServicingComponent.hpp
│   │       └── main.cpp
│   ├── 12_svcmulti/
│   │   ├── 12_svcmulti.vcxproj
│   │   ├── 12_svcmulti.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   └── src/
│   │       ├── ServicingComponent.cpp
│   │       ├── ServicingComponent.hpp
│   │       └── main.cpp
│   ├── 13_locsvc/
│   │   ├── 13_generated.vcxproj
│   │   ├── 13_generated.vcxproj.filters
│   │   ├── 13_locservice.vcxproj
│   │   ├── 13_locservice.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── locservice/
│   │   │   └── src/
│   │   │       ├── ServiceClient.cpp
│   │   │       ├── ServiceClient.hpp
│   │   │       ├── ServicingComponent.cpp
│   │   │       ├── ServicingComponent.hpp
│   │   │       └── main.cpp
│   │   └── services/
│   │       └── HelloWorld.siml
│   ├── 14_locmesh/
│   │   ├── 14_generated.vcxproj
│   │   ├── 14_generated.vcxproj.filters
│   │   ├── 14_localmesh.vcxproj
│   │   ├── 14_localmesh.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── locsvcmesh/
│   │   │   └── src/
│   │   │       ├── ClientComponent.cpp
│   │   │       ├── ClientComponent.hpp
│   │   │       ├── ServiceClient.cpp
│   │   │       ├── ServiceClient.hpp
│   │   │       ├── ServiceHelloWorld.cpp
│   │   │       ├── ServiceHelloWorld.hpp
│   │   │       ├── ServicingComponents.cpp
│   │   │       ├── ServicingComponents.hpp
│   │   │       └── main.cpp
│   │   └── services/
│   │       └── HelloWorld.siml
│   ├── 15_pubsvc/
│   │   ├── 15_generated.vcxproj
│   │   ├── 15_generated.vcxproj.filters
│   │   ├── 15_pubclient.vcxproj
│   │   ├── 15_pubclient.vcxproj.filters
│   │   ├── 15_pubservice.vcxproj
│   │   ├── 15_pubservice.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── pubclient/
│   │   │   └── src/
│   │   │       ├── ServiceClient.cpp
│   │   │       ├── ServiceClient.hpp
│   │   │       └── main.cpp
│   │   ├── pubservice/
│   │   │   └── src/
│   │   │       ├── ServicingComponent.cpp
│   │   │       ├── ServicingComponent.hpp
│   │   │       └── main.cpp
│   │   └── services/
│   │       └── HelloWorld.siml
│   ├── 16_pubmesh/
│   │   ├── 16_common.vcxproj
│   │   ├── 16_common.vcxproj.filters
│   │   ├── 16_generated.vcxproj
│   │   ├── 16_generated.vcxproj.filters
│   │   ├── 16_pubclients.vcxproj
│   │   ├── 16_pubclients.vcxproj.filters
│   │   ├── 16_pubservice.vcxproj
│   │   ├── 16_pubservice.vcxproj.filters
│   │   ├── 16_pubsvcmesh.vcxproj
│   │   ├── 16_pubsvcmesh.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── common/
│   │   │   └── src/
│   │   │       ├── LocalHelloWorldClient.cpp
│   │   │       ├── LocalHelloWorldClient.hpp
│   │   │       ├── LocalHelloWorldService.cpp
│   │   │       ├── LocalHelloWorldService.hpp
│   │   │       ├── NECommon.hpp
│   │   │       ├── PublicHelloWorldClient.cpp
│   │   │       ├── PublicHelloWorldClient.hpp
│   │   │       ├── PublicHelloWorldService.cpp
│   │   │       └── PublicHelloWorldService.hpp
│   │   ├── pubclients/
│   │   │   └── src/
│   │   │       └── main.cpp
│   │   ├── pubservice/
│   │   │   └── src/
│   │   │       ├── PublicServiceComponent.cpp
│   │   │       ├── PublicServiceComponent.hpp
│   │   │       └── main.cpp
│   │   ├── pubsvcmesh/
│   │   │   └── src/
│   │   │       └── main.cpp
│   │   └── services/
│   │       ├── LocalHelloWorld.siml
│   │       ├── PublicHelloWorld.siml
│   │       └── SystemShutdown.siml
│   ├── 17_pubtraffic/
│   │   ├── 17_generated.vcxproj
│   │   ├── 17_generated.vcxproj.filters
│   │   ├── 17_pubclient.vcxproj
│   │   ├── 17_pubclient.vcxproj.filters
│   │   ├── 17_pubservice.vcxproj
│   │   ├── 17_pubservice.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── common/
│   │   │   └── NECommon.hpp
│   │   ├── pubclient/
│   │   │   └── src/
│   │   │       ├── TrafficLightClient.cpp
│   │   │       ├── TrafficLightClient.hpp
│   │   │       └── main.cpp
│   │   ├── pubservice/
│   │   │   └── src/
│   │   │       ├── TrafficLightService.cpp
│   │   │       ├── TrafficLightService.hpp
│   │   │       └── main.cpp
│   │   └── services/
│   │       └── SimpleTrafficLight.siml
│   ├── 18_pubworker/
│   │   ├── 18_common.vcxproj
│   │   ├── 18_common.vcxproj.filters
│   │   ├── 18_generated.vcxproj
│   │   ├── 18_generated.vcxproj.filters
│   │   ├── 18_pubclient.vcxproj
│   │   ├── 18_pubclient.vcxproj.filters
│   │   ├── 18_pubservice.vcxproj
│   │   ├── 18_pubservice.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── common/
│   │   │   ├── NECommon.hpp
│   │   │   └── PatientInfoEvent.hpp
│   │   ├── pubclient/
│   │   │   └── src/
│   │   │       ├── HardwareWorkerConsumer.cpp
│   │   │       ├── HardwareWorkerConsumer.hpp
│   │   │       ├── PatientClient.cpp
│   │   │       ├── PatientClient.hpp
│   │   │       └── main.cpp
│   │   ├── pubservice/
│   │   │   └── src/
│   │   │       ├── PatientService.cpp
│   │   │       ├── PatientService.hpp
│   │   │       ├── PatientServiceWorkerConsumer.cpp
│   │   │       ├── PatientServiceWorkerConsumer.hpp
│   │   │       └── main.cpp
│   │   └── services/
│   │       └── PatientInformation.siml
│   ├── 19_pubfsm/
│   │   ├── 19_generated.vcxproj
│   │   ├── 19_generated.vcxproj.filters
│   │   ├── 19_pubclient.vcxproj
│   │   ├── 19_pubclient.vcxproj.filters
│   │   ├── 19_pubservice.vcxproj
│   │   ├── 19_pubservice.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── common/
│   │   │   └── NECommon.hpp
│   │   ├── pubclient/
│   │   │   └── src/
│   │   │       ├── TrafficLightClient.cpp
│   │   │       ├── TrafficLightClient.hpp
│   │   │       └── main.cpp
│   │   ├── pubservice/
│   │   │   └── src/
│   │   │       ├── IETrafficLightActionHandler.cpp
│   │   │       ├── IETrafficLightActionHandler.hpp
│   │   │       ├── NETrafficLightFSM.cpp
│   │   │       ├── NETrafficLightFSM.hpp
│   │   │       ├── PowerControllerClient.cpp
│   │   │       ├── PowerControllerClient.hpp
│   │   │       ├── TrafficLightFSM.cpp
│   │   │       ├── TrafficLightFSM.hpp
│   │   │       ├── TrafficLightService.cpp
│   │   │       ├── TrafficLightService.hpp
│   │   │       └── main.cpp
│   │   └── services/
│   │       ├── PowerManager.siml
│   │       └── TrafficController.siml
│   ├── 20_winchat/
│   │   ├── 20_chatter.vcxproj
│   │   ├── 20_chatter.vcxproj.filters
│   │   ├── 20_generated.vcxproj
│   │   ├── 20_generated.vcxproj.filters
│   │   ├── 20_register.vcxproj
│   │   ├── 20_register.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── chatter/
│   │   │   ├── DistrbutedApp.cpp
│   │   │   ├── DistrbutedApp.hpp
│   │   │   ├── NEDistributedApp.cpp
│   │   │   ├── NEDistributedApp.hpp
│   │   │   ├── res/
│   │   │   │   ├── chatter.rc
│   │   │   │   ├── chatter.rc2
│   │   │   │   ├── resource.h
│   │   │   │   ├── stdafx.cpp
│   │   │   │   ├── stdafx.h
│   │   │   │   └── targetver.h
│   │   │   ├── services/
│   │   │   │   ├── CentralMessaging.cpp
│   │   │   │   ├── CentralMessaging.hpp
│   │   │   │   ├── ChatParticipantService.cpp
│   │   │   │   ├── ChatParticipantService.hpp
│   │   │   │   ├── ChatPrticipantHandler.cpp
│   │   │   │   ├── ChatPrticipantHandler.hpp
│   │   │   │   ├── ConnectionHandler.cpp
│   │   │   │   ├── ConnectionHandler.hpp
│   │   │   │   ├── ConnectionList.cpp
│   │   │   │   ├── ConnectionList.hpp
│   │   │   │   ├── ConnectionService.cpp
│   │   │   │   ├── ConnectionService.hpp
│   │   │   │   ├── DirectChatService.cpp
│   │   │   │   ├── DirectChatService.hpp
│   │   │   │   ├── DirectConnectionClient.cpp
│   │   │   │   ├── DirectConnectionClient.hpp
│   │   │   │   ├── DirectConnectionService.cpp
│   │   │   │   ├── DirectConnectionService.hpp
│   │   │   │   ├── DirectMessagingClient.cpp
│   │   │   │   ├── DirectMessagingClient.hpp
│   │   │   │   ├── NetworkSetup.cpp
│   │   │   │   └── NetworkSetup.hpp
│   │   │   └── ui/
│   │   │       ├── DistributedDialog.cpp
│   │   │       ├── DistributedDialog.hpp
│   │   │       ├── PageChat.cpp
│   │   │       ├── PageChat.hpp
│   │   │       ├── PageConnections.cpp
│   │   │       ├── PageConnections.hpp
│   │   │       ├── PageMessaging.cpp
│   │   │       ├── PageMessaging.hpp
│   │   │       ├── PageNetworkSetup.cpp
│   │   │       └── PageNetworkSetup.hpp
│   │   ├── common/
│   │   │   └── NECommon.hpp
│   │   ├── register/
│   │   │   ├── CentralApp.cpp
│   │   │   ├── CentralApp.hpp
│   │   │   ├── NECentralApp.cpp
│   │   │   ├── NECentralApp.hpp
│   │   │   ├── res/
│   │   │   │   ├── register.rc
│   │   │   │   ├── register.rc2
│   │   │   │   ├── resource.h
│   │   │   │   ├── stdafx.cpp
│   │   │   │   ├── stdafx.h
│   │   │   │   └── targetver.h
│   │   │   ├── services/
│   │   │   │   ├── ConnectionManager.cpp
│   │   │   │   └── ConnectionManager.hpp
│   │   │   └── ui/
│   │   │       ├── CentralDialog.cpp
│   │   │       ├── CentralDialog.hpp
│   │   │       ├── PageBrokerSetup.cpp
│   │   │       ├── PageBrokerSetup.hpp
│   │   │       ├── PageConnections.cpp
│   │   │       └── PageConnections.hpp
│   │   └── services/
│   │       ├── CentralMessager.siml
│   │       ├── ConnectionManager.siml
│   │       ├── DirectConnection.siml
│   │       └── DirectMessager.siml
│   ├── 21_locwatchdog/
│   │   ├── 21_generated.vcxproj
│   │   ├── 21_generated.vcxproj.filters
│   │   ├── 21_locservice.vcxproj
│   │   ├── 21_locservice.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── locservice/
│   │   │   └── src/
│   │   │       ├── ServiceClient.cpp
│   │   │       ├── ServiceClient.hpp
│   │   │       ├── ServicingComponent.cpp
│   │   │       ├── ServicingComponent.hpp
│   │   │       └── main.cpp
│   │   └── services/
│   │       └── HelloWatchdog.siml
│   ├── 22_pubwatchdog/
│   │   ├── 22_generated.vcxproj
│   │   ├── 22_generated.vcxproj.filters
│   │   ├── 22_pubclient.vcxproj
│   │   ├── 22_pubclient.vcxproj.filters
│   │   ├── 22_pubservice.vcxproj
│   │   ├── 22_pubservice.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── common/
│   │   │   └── NECommon.hpp
│   │   ├── pubclient/
│   │   │   └── src/
│   │   │       ├── ServiceClient.cpp
│   │   │       ├── ServiceClient.hpp
│   │   │       └── main.cpp
│   │   ├── pubservice/
│   │   │   └── src/
│   │   │       ├── ServicingComponent.cpp
│   │   │       ├── ServicingComponent.hpp
│   │   │       └── main.cpp
│   │   └── services/
│   │       └── HelloWatchdog.siml
│   ├── 23_pubdatarate/
│   │   ├── 23_generated.vcxproj
│   │   ├── 23_generated.vcxproj.filters
│   │   ├── 23_pubclient.vcxproj
│   │   ├── 23_pubclient.vcxproj.filters
│   │   ├── 23_pubservice.vcxproj
│   │   ├── 23_pubservice.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── common/
│   │   │   ├── NELargeData.hpp
│   │   │   └── SimpleBitmap.hpp
│   │   ├── pubclient/
│   │   │   └── src/
│   │   │       ├── ServiceClient.cpp
│   │   │       ├── ServiceClient.hpp
│   │   │       └── main.cpp
│   │   ├── pubservice/
│   │   │   └── src/
│   │   │       ├── NEUtilities.cpp
│   │   │       ├── NEUtilities.hpp
│   │   │       ├── ServicingComponent.cpp
│   │   │       ├── ServicingComponent.hpp
│   │   │       └── main.cpp
│   │   └── services/
│   │       └── LargeData.siml
│   ├── 24_pubunblock/
│   │   ├── 24_generated.vcxproj
│   │   ├── 24_generated.vcxproj.filters
│   │   ├── 24_pubclient.vcxproj
│   │   ├── 24_pubclient.vcxproj.filters
│   │   ├── 24_pubservice.vcxproj
│   │   ├── 24_pubservice.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── pubclient/
│   │   │   └── src/
│   │   │       ├── ServiceClient.cpp
│   │   │       ├── ServiceClient.hpp
│   │   │       └── main.cpp
│   │   ├── pubservice/
│   │   │   └── src/
│   │   │       ├── ServiceComponent.cpp
│   │   │       ├── ServiceComponent.hpp
│   │   │       └── main.cpp
│   │   └── services/
│   │       └── HelloUnblock.siml
│   ├── 25_pubsub/
│   │   ├── 25_generated.vcxproj
│   │   ├── 25_generated.vcxproj.filters
│   │   ├── 25_publisher.vcxproj
│   │   ├── 25_publisher.vcxproj.filters
│   │   ├── 25_subscriber.vcxproj
│   │   ├── 25_subscriber.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── publisher/
│   │   │   └── src/
│   │   │       ├── Publisher.cpp
│   │   │       ├── Publisher.hpp
│   │   │       └── main.cpp
│   │   ├── services/
│   │   │   └── PubSub.siml
│   │   └── subscriber/
│   │       └── src/
│   │           ├── Subscriber.cpp
│   │           ├── Subscriber.hpp
│   │           └── main.cpp
│   ├── 26_pubsubmix/
│   │   ├── 26_common.vcxproj
│   │   ├── 26_common.vcxproj.filters
│   │   ├── 26_generated.vcxproj
│   │   ├── 26_generated.vcxproj.filters
│   │   ├── 26_pubsubctrl.vcxproj
│   │   ├── 26_pubsubctrl.vcxproj.filters
│   │   ├── 26_pubsubdyn.vcxproj
│   │   ├── 26_pubsubdyn.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── common/
│   │   │   └── src/
│   │   │       ├── NECommon.cpp
│   │   │       ├── NECommon.hpp
│   │   │       ├── PubSubMixed.cpp
│   │   │       ├── PubSubMixed.hpp
│   │   │       ├── Publisher.cpp
│   │   │       ├── Publisher.hpp
│   │   │       ├── Subscriber.cpp
│   │   │       └── Subscriber.hpp
│   │   ├── pubsubctrl/
│   │   │   └── src/
│   │   │       ├── PubSubController.cpp
│   │   │       ├── PubSubController.hpp
│   │   │       └── main.cpp
│   │   ├── pubsubdyn/
│   │   │   └── src/
│   │   │       └── main.cpp
│   │   └── services/
│   │       └── PubSubMix.siml
│   ├── 27_pubsubmulti/
│   │   ├── 27_generated.vcxproj
│   │   ├── 27_generated.vcxproj.filters
│   │   ├── 27_publisher.vcxproj
│   │   ├── 27_publisher.vcxproj.filters
│   │   ├── 27_subscribermulti.vcxproj
│   │   ├── 27_subscribermulti.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   ├── publisher/
│   │   │   └── src/
│   │   │       ├── Publisher.cpp
│   │   │       ├── Publisher.hpp
│   │   │       └── main.cpp
│   │   ├── services/
│   │   │   └── PubSub.siml
│   │   └── subscribermulti/
│   │       └── src/
│   │           ├── NECommon.hpp
│   │           ├── Subscriber.cpp
│   │           ├── Subscriber.hpp
│   │           ├── SubscriberBase.cpp
│   │           ├── SubscriberBase.hpp
│   │           ├── SubscriberSecond.cpp
│   │           ├── SubscriberSecond.hpp
│   │           └── main.cpp
│   ├── 28_stlsync/
│   │   ├── 28_stlsync.vcxproj
│   │   ├── 28_stlsync.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   └── src/
│   │       └── main.cpp
│   ├── 29_syncevent/
│   │   ├── 29_syncevent.vcxproj
│   │   ├── 29_syncevent.vcxproj.filters
│   │   ├── CMakeLists.txt
│   │   ├── ReadMe.md
│   │   └── src/
│   │       └── main.cpp
│   ├── CMakeLists.txt
│   ├── README.md
│   ├── dummy/
│   │   ├── dummy.cpp
│   │   ├── dummy.vcxproj
│   │   └── dummy.vcxproj.filters
│   └── examples_generate.bat
├── framework/
│   ├── CMakeLists.txt
│   ├── README.md
│   ├── areg/
│   │   ├── CMakeLists.txt
│   │   ├── Readme.md
│   │   ├── appbase/
│   │   │   ├── Application.hpp
│   │   │   ├── NEApplication.hpp
│   │   │   └── private/
│   │   │       ├── Application.cpp
│   │   │       ├── CMakeLists.txt
│   │   │       ├── NEApplication.cpp
│   │   │       ├── configure.cpp
│   │   │       ├── configure.hpp
│   │   │       ├── posix/
│   │   │       │   └── ApplicationPosix.cpp
│   │   │       └── win32/
│   │   │           └── ApplicationWin32.cpp
│   │   ├── base/
│   │   │   ├── BufferStreamBase.hpp
│   │   │   ├── Containers.hpp
│   │   │   ├── DateTime.hpp
│   │   │   ├── File.hpp
│   │   │   ├── FileBase.hpp
│   │   │   ├── FileBuffer.hpp
│   │   │   ├── GEGlobal.h
│   │   │   ├── GEMacros.h
│   │   │   ├── GESwitches.h
│   │   │   ├── GETypes.h
│   │   │   ├── IEByteBuffer.hpp
│   │   │   ├── IECursorPosition.hpp
│   │   │   ├── IEGenericObject.hpp
│   │   │   ├── IEIOStream.hpp
│   │   │   ├── IESyncObject.hpp
│   │   │   ├── IEThreadConsumer.hpp
│   │   │   ├── Identifier.hpp
│   │   │   ├── NECommon.hpp
│   │   │   ├── NEMath.hpp
│   │   │   ├── NEMemory.hpp
│   │   │   ├── NESocket.hpp
│   │   │   ├── NEString.hpp
│   │   │   ├── NEUtilities.hpp
│   │   │   ├── Object.hpp
│   │   │   ├── Process.hpp
│   │   │   ├── RemoteMessage.hpp
│   │   │   ├── RuntimeClassID.hpp
│   │   │   ├── RuntimeObject.hpp
│   │   │   ├── SharedBuffer.hpp
│   │   │   ├── Socket.hpp
│   │   │   ├── SocketAccepted.hpp
│   │   │   ├── SocketClient.hpp
│   │   │   ├── SocketServer.hpp
│   │   │   ├── String.hpp
│   │   │   ├── SyncObjects.hpp
│   │   │   ├── TEArrayList.hpp
│   │   │   ├── TEFixedArray.hpp
│   │   │   ├── TEHashMap.hpp
│   │   │   ├── TELinkedList.hpp
│   │   │   ├── TEMap.hpp
│   │   │   ├── TEProperty.hpp
│   │   │   ├── TEResourceListMap.hpp
│   │   │   ├── TEResourceMap.hpp
│   │   │   ├── TERingStack.hpp
│   │   │   ├── TERuntimeResourceMap.hpp
│   │   │   ├── TESortedLinkedList.hpp
│   │   │   ├── TEStack.hpp
│   │   │   ├── TEString.hpp
│   │   │   ├── TETemplateBase.hpp
│   │   │   ├── Thread.hpp
│   │   │   ├── ThreadAddress.hpp
│   │   │   ├── ThreadLocalStorage.hpp
│   │   │   ├── Version.hpp
│   │   │   ├── WideString.hpp
│   │   │   └── private/
│   │   │       ├── BufferPosition.cpp
│   │   │       ├── BufferPosition.hpp
│   │   │       ├── BufferStreamBase.cpp
│   │   │       ├── CMakeLists.txt
│   │   │       ├── Containers.cpp
│   │   │       ├── DateTime.cpp
│   │   │       ├── File.cpp
│   │   │       ├── FileBase.cpp
│   │   │       ├── FileBuffer.cpp
│   │   │       ├── GEGlobal.cpp
│   │   │       ├── IEByteBuffer.cpp
│   │   │       ├── IECursorPosition.cpp
│   │   │       ├── IEGenericObject.cpp
│   │   │       ├── IEIOStream.cpp
│   │   │       ├── IESyncObject.cpp
│   │   │       ├── IEThreadConsumer.cpp
│   │   │       ├── Identifier.cpp
│   │   │       ├── NECommon.cpp
│   │   │       ├── NEDebug.cpp
│   │   │       ├── NEDebug.hpp
│   │   │       ├── NEMath.cpp
│   │   │       ├── NEMemory.cpp
│   │   │       ├── NESocket.cpp
│   │   │       ├── NEString.cpp
│   │   │       ├── NEUtilities.cpp
│   │   │       ├── Object.cpp
│   │   │       ├── Process.cpp
│   │   │       ├── ReadConverter.cpp
│   │   │       ├── ReadConverter.hpp
│   │   │       ├── RemoteMessage.cpp
│   │   │       ├── RuntimeBase.cpp
│   │   │       ├── RuntimeBase.hpp
│   │   │       ├── RuntimeClassID.cpp
│   │   │       ├── RuntimeObject.cpp
│   │   │       ├── SharedBuffer.cpp
│   │   │       ├── Socket.cpp
│   │   │       ├── SocketAccepted.cpp
│   │   │       ├── SocketClient.cpp
│   │   │       ├── SocketServer.cpp
│   │   │       ├── String.cpp
│   │   │       ├── SyncObjects.cpp
│   │   │       ├── Thread.cpp
│   │   │       ├── ThreadAddress.cpp
│   │   │       ├── ThreadLocalStorage.cpp
│   │   │       ├── Version.cpp
│   │   │       ├── WideString.cpp
│   │   │       ├── WriteConverter.cpp
│   │   │       ├── WriteConverter.hpp
│   │   │       ├── posix/
│   │   │       │   ├── CMakeLists.txt
│   │   │       │   ├── CriticalSectionIX.cpp
│   │   │       │   ├── CriticalSectionIX.hpp
│   │   │       │   ├── FilePosix.cpp
│   │   │       │   ├── IESyncObjectBaseIX.cpp
│   │   │       │   ├── IESyncObjectBaseIX.hpp
│   │   │       │   ├── IEWaitableBaseIX.cpp
│   │   │       │   ├── IEWaitableBaseIX.hpp
│   │   │       │   ├── MutexIX.cpp
│   │   │       │   ├── MutexIX.hpp
│   │   │       │   ├── NEDebugPosix.cpp
│   │   │       │   ├── NESocketPosix.cpp
│   │   │       │   ├── NESyncTypesIX.hpp
│   │   │       │   ├── NEUtilitiesPosix.cpp
│   │   │       │   ├── ProcessPosix.cpp
│   │   │       │   ├── SpinLockIX.cpp
│   │   │       │   ├── SpinLockIX.hpp
│   │   │       │   ├── SyncLockAndWaitIX.cpp
│   │   │       │   ├── SyncLockAndWaitIX.hpp
│   │   │       │   ├── SyncObjectsPosix.cpp
│   │   │       │   ├── ThreadPosix.cpp
│   │   │       │   ├── WaitableEventIX.cpp
│   │   │       │   ├── WaitableEventIX.hpp
│   │   │       │   ├── WaitableMutexIX.cpp
│   │   │       │   ├── WaitableMutexIX.hpp
│   │   │       │   ├── WaitableSemaphoreIX.cpp
│   │   │       │   ├── WaitableSemaphoreIX.hpp
│   │   │       │   ├── WaitableTimerIX.cpp
│   │   │       │   └── WaitableTimerIX.hpp
│   │   │       └── win32/
│   │   │           ├── CMakeLists.txt
│   │   │           ├── FileWin32.cpp
│   │   │           ├── NEDebugWin32.cpp
│   │   │           ├── NESocketWin32.cpp
│   │   │           ├── NEUtilitiesWin32.cpp
│   │   │           ├── ProcessWin32.cpp
│   │   │           ├── SpinLockWin32.cpp
│   │   │           ├── SpinLockWin32.hpp
│   │   │           ├── SyncObjectsWin32.cpp
│   │   │           └── ThreadWin32.cpp
│   │   ├── component/
│   │   │   ├── Channel.hpp
│   │   │   ├── Component.hpp
│   │   │   ├── ComponentAddress.hpp
│   │   │   ├── ComponentLoader.hpp
│   │   │   ├── ComponentThread.hpp
│   │   │   ├── DispatcherThread.hpp
│   │   │   ├── Event.hpp
│   │   │   ├── EventData.hpp
│   │   │   ├── EventDataStream.hpp
│   │   │   ├── EventDispatcher.hpp
│   │   │   ├── IEEventConsumer.hpp
│   │   │   ├── IEEventRouter.hpp
│   │   │   ├── IEProxyListener.hpp
│   │   │   ├── IERemoteEventConsumer.hpp
│   │   │   ├── IETimerConsumer.hpp
│   │   │   ├── IEWorkerThreadConsumer.hpp
│   │   │   ├── NERegistry.hpp
│   │   │   ├── NEService.hpp
│   │   │   ├── NotificationEvent.hpp
│   │   │   ├── ProxyAddress.hpp
│   │   │   ├── ProxyBase.hpp
│   │   │   ├── ProxyEvent.hpp
│   │   │   ├── RemoteEventFactory.hpp
│   │   │   ├── RequestEvents.hpp
│   │   │   ├── ResponseEvents.hpp
│   │   │   ├── ServiceAddress.hpp
│   │   │   ├── ServiceItem.hpp
│   │   │   ├── ServiceRequestEvent.hpp
│   │   │   ├── ServiceResponseEvent.hpp
│   │   │   ├── StreamableEvent.hpp
│   │   │   ├── StubAddress.hpp
│   │   │   ├── StubBase.hpp
│   │   │   ├── StubEvent.hpp
│   │   │   ├── TEEvent.hpp
│   │   │   ├── Timer.hpp
│   │   │   ├── TimerBase.hpp
│   │   │   ├── WorkerThread.hpp
│   │   │   └── private/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── Channel.cpp
│   │   │       ├── ClientInfo.cpp
│   │   │       ├── ClientInfo.hpp
│   │   │       ├── ClientList.cpp
│   │   │       ├── ClientList.hpp
│   │   │       ├── Component.cpp
│   │   │       ├── ComponentAddress.cpp
│   │   │       ├── ComponentInfo.cpp
│   │   │       ├── ComponentInfo.hpp
│   │   │       ├── ComponentLoader.cpp
│   │   │       ├── ComponentThread.cpp
│   │   │       ├── DispatcherThread.cpp
│   │   │       ├── Event.cpp
│   │   │       ├── EventConsumerMap.cpp
│   │   │       ├── EventConsumerMap.hpp
│   │   │       ├── EventData.cpp
│   │   │       ├── EventDataStream.cpp
│   │   │       ├── EventDispatcher.cpp
│   │   │       ├── EventDispatcherBase.cpp
│   │   │       ├── EventDispatcherBase.hpp
│   │   │       ├── EventQueue.cpp
│   │   │       ├── EventQueue.hpp
│   │   │       ├── ExitEvent.cpp
│   │   │       ├── ExitEvent.hpp
│   │   │       ├── IEEventConsumer.cpp
│   │   │       ├── IEEventDispatcher.cpp
│   │   │       ├── IEEventDispatcher.hpp
│   │   │       ├── IEEventRouter.cpp
│   │   │       ├── IEProxyListener.cpp
│   │   │       ├── IEQueueListener.cpp
│   │   │       ├── IEQueueListener.hpp
│   │   │       ├── IERemoteEventConsumer.cpp
│   │   │       ├── IETimerConsumer.cpp
│   │   │       ├── IEWorkerThreadConsumer.cpp
│   │   │       ├── NERegistry.cpp
│   │   │       ├── NEService.cpp
│   │   │       ├── NotificationEvent.cpp
│   │   │       ├── ProxyAddress.cpp
│   │   │       ├── ProxyBase.cpp
│   │   │       ├── ProxyConnectEvent.cpp
│   │   │       ├── ProxyConnectEvent.hpp
│   │   │       ├── ProxyEvent.cpp
│   │   │       ├── RemoteEventFactory.cpp
│   │   │       ├── RequestEvents.cpp
│   │   │       ├── ResponseEvents.cpp
│   │   │       ├── ServerInfo.cpp
│   │   │       ├── ServerInfo.hpp
│   │   │       ├── ServerList.cpp
│   │   │       ├── ServerList.hpp
│   │   │       ├── ServiceAddress.cpp
│   │   │       ├── ServiceItem.cpp
│   │   │       ├── ServiceManager.cpp
│   │   │       ├── ServiceManager.hpp
│   │   │       ├── ServiceManagerEventProcessor.cpp
│   │   │       ├── ServiceManagerEventProcessor.hpp
│   │   │       ├── ServiceManagerEvents.cpp
│   │   │       ├── ServiceManagerEvents.hpp
│   │   │       ├── ServiceRequestEvent.cpp
│   │   │       ├── ServiceResponseEvent.cpp
│   │   │       ├── SortedEventStack.cpp
│   │   │       ├── SortedEventStack.hpp
│   │   │       ├── StreamableEvent.cpp
│   │   │       ├── StubAddress.cpp
│   │   │       ├── StubBase.cpp
│   │   │       ├── StubConnectEvent.cpp
│   │   │       ├── StubConnectEvent.hpp
│   │   │       ├── StubEvent.cpp
│   │   │       ├── TEEvent.cpp
│   │   │       ├── Timer.cpp
│   │   │       ├── TimerBase.cpp
│   │   │       ├── TimerEventData.cpp
│   │   │       ├── TimerEventData.hpp
│   │   │       ├── TimerManager.cpp
│   │   │       ├── TimerManager.hpp
│   │   │       ├── TimerManagerBase.cpp
│   │   │       ├── TimerManagerBase.hpp
│   │   │       ├── TimerManagerEvent.cpp
│   │   │       ├── TimerManagerEvent.hpp
│   │   │       ├── Watchdog.cpp
│   │   │       ├── Watchdog.hpp
│   │   │       ├── WatchdogManager.cpp
│   │   │       ├── WatchdogManager.hpp
│   │   │       ├── WorkerThread.cpp
│   │   │       ├── posix/
│   │   │       │   ├── CMakeLists.txt
│   │   │       │   ├── TimerBasePosix.cpp
│   │   │       │   ├── TimerManagerPosix.cpp
│   │   │       │   ├── TimerPosix.cpp
│   │   │       │   ├── TimerPosix.hpp
│   │   │       │   └── WatchdogManagerPosix.cpp
│   │   │       └── win32/
│   │   │           ├── CMakeLists.txt
│   │   │           ├── TimerBaseWin32.cpp
│   │   │           ├── TimerManagerWin32.cpp
│   │   │           └── WatchdogManagerWin32.cpp
│   │   ├── ipc/
│   │   │   ├── ClientConnection.hpp
│   │   │   ├── ConnectionConfiguration.hpp
│   │   │   ├── IERemoteMessageHandler.hpp
│   │   │   ├── IEServiceConnectionConsumer.hpp
│   │   │   ├── IEServiceConnectionProvider.hpp
│   │   │   ├── IEServiceRegisterConsumer.hpp
│   │   │   ├── IEServiceRegisterProvider.hpp
│   │   │   ├── NERemoteService.hpp
│   │   │   ├── SendMessageEvent.hpp
│   │   │   ├── ServerConnectionBase.hpp
│   │   │   ├── ServiceClientConnectionBase.hpp
│   │   │   ├── ServiceEvent.hpp
│   │   │   ├── ServiceEventConsumerBase.hpp
│   │   │   ├── SocketConnectionBase.hpp
│   │   │   └── private/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── ClientConnection.cpp
│   │   │       ├── ClientReceiveThread.cpp
│   │   │       ├── ClientReceiveThread.hpp
│   │   │       ├── ClientSendThread.cpp
│   │   │       ├── ClientSendThread.hpp
│   │   │       ├── ConnectionConfiguration.cpp
│   │   │       ├── IERemoteMessageHandler.cpp
│   │   │       ├── IEServiceConnectionConsumer.cpp
│   │   │       ├── IEServiceConnectionProvider.cpp
│   │   │       ├── IEServiceRegisterConsumer.cpp
│   │   │       ├── IEServiceRegisterProvider.cpp
│   │   │       ├── NEConnection.cpp
│   │   │       ├── NEConnection.hpp
│   │   │       ├── NERemoteService.cpp
│   │   │       ├── RouterClient.cpp
│   │   │       ├── RouterClient.hpp
│   │   │       ├── SendMessageEvent.cpp
│   │   │       ├── ServerConnectionBase.cpp
│   │   │       ├── ServiceClientConnectionBase.cpp
│   │   │       ├── ServiceEvent.cpp
│   │   │       ├── ServiceEventConsumerBase.cpp
│   │   │       └── SocketConnectionBase.cpp
│   │   ├── logging/
│   │   │   ├── GELog.h
│   │   │   ├── IELogDatabaseEngine.hpp
│   │   │   ├── LogConfiguration.hpp
│   │   │   ├── LogScope.hpp
│   │   │   ├── NELogging.hpp
│   │   │   ├── ScopeMessage.hpp
│   │   │   └── private/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── DatabaseLogger.cpp
│   │   │       ├── DatabaseLogger.hpp
│   │   │       ├── DebugOutputLogger.cpp
│   │   │       ├── DebugOutputLogger.hpp
│   │   │       ├── FileLogger.cpp
│   │   │       ├── FileLogger.hpp
│   │   │       ├── IELogDatabaseEngine.cpp
│   │   │       ├── LayoutManager.cpp
│   │   │       ├── LayoutManager.hpp
│   │   │       ├── Layouts.cpp
│   │   │       ├── Layouts.hpp
│   │   │       ├── LogConfiguration.cpp
│   │   │       ├── LogEventProcessor.cpp
│   │   │       ├── LogEventProcessor.hpp
│   │   │       ├── LogManager.cpp
│   │   │       ├── LogManager.hpp
│   │   │       ├── LogMessage.cpp
│   │   │       ├── LogMessage.hpp
│   │   │       ├── LogScope.cpp
│   │   │       ├── LoggerBase.cpp
│   │   │       ├── LoggerBase.hpp
│   │   │       ├── LoggingEvent.cpp
│   │   │       ├── LoggingEvent.hpp
│   │   │       ├── NELogOptions.cpp
│   │   │       ├── NELogOptions.hpp
│   │   │       ├── NELogging.cpp
│   │   │       ├── NetTcpLogger.cpp
│   │   │       ├── NetTcpLogger.hpp
│   │   │       ├── ScopeController.cpp
│   │   │       ├── ScopeController.hpp
│   │   │       ├── ScopeMessage.cpp
│   │   │       ├── ScopeNodeBase.cpp
│   │   │       ├── ScopeNodeBase.hpp
│   │   │       ├── ScopeNodes.cpp
│   │   │       └── ScopeNodes.hpp
│   │   ├── persist/
│   │   │   ├── ConfigManager.hpp
│   │   │   ├── IEConfigurationListener.hpp
│   │   │   ├── IEDatabaseEngine.hpp
│   │   │   ├── NEPersistence.hpp
│   │   │   ├── Property.hpp
│   │   │   ├── PropertyKey.hpp
│   │   │   ├── PropertyValue.hpp
│   │   │   └── private/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── ConfigManager.cpp
│   │   │       ├── IEConfigurationListener.cpp
│   │   │       ├── IEDatabaseEngine.cpp
│   │   │       ├── NEPersistence.cpp
│   │   │       ├── Property.cpp
│   │   │       ├── PropertyKey.cpp
│   │   │       └── PropertyValue.cpp
│   │   ├── resources/
│   │   │   ├── areg.init
│   │   │   ├── areg.rc
│   │   │   ├── areg_post_build.bat
│   │   │   └── resource.h
│   │   └── system/
│   │       ├── GEPlatform.h
│   │       ├── posix/
│   │       │   └── GEPosix.h
│   │       └── windows/
│   │           └── GEWindows.h
│   ├── areg.vcxproj
│   ├── areg.vcxproj.filters
│   ├── aregextend/
│   │   ├── CMakeLists.txt
│   │   ├── Readme.md
│   │   ├── console/
│   │   │   ├── Console.hpp
│   │   │   ├── OptionParser.hpp
│   │   │   ├── SystemServiceConsole.hpp
│   │   │   └── private/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── Console.cpp
│   │   │       ├── OptionParser.cpp
│   │   │       ├── SystemServiceConsole.cpp
│   │   │       ├── ansi/
│   │   │       │   └── ConsoleAnsi.cpp
│   │   │       ├── ncurses/
│   │   │       │   └── ConsoleNcurses.cpp
│   │   │       └── win32/
│   │   │           └── ConsoleWin32.cpp
│   │   ├── db/
│   │   │   ├── LogSqliteDatabase.hpp
│   │   │   ├── SqliteDatabase.hpp
│   │   │   ├── SqliteRow.hpp
│   │   │   ├── SqliteStatement.hpp
│   │   │   └── private/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── LogSqliteDatabase.cpp
│   │   │       ├── SqliteDatabase.cpp
│   │   │       ├── SqliteRow.cpp
│   │   │       └── SqliteStatement.cpp
│   │   ├── resources/
│   │   │   ├── aregextend.rc
│   │   │   └── resource.h
│   │   └── service/
│   │       ├── DataRateHelper.hpp
│   │       ├── IEServiceConnectionHandler.hpp
│   │       ├── NESystemService.hpp
│   │       ├── ServerConnection.hpp
│   │       ├── ServiceApplicationBase.hpp
│   │       ├── ServiceCommunicatonBase.hpp
│   │       ├── SystemServiceBase.hpp
│   │       └── private/
│   │           ├── CMakeLists.txt
│   │           ├── DataRateHelper.cpp
│   │           ├── IEServiceConnectionHandler.cpp
│   │           ├── NESystemService.cpp
│   │           ├── ServerConnection.cpp
│   │           ├── ServerReceiveThread.cpp
│   │           ├── ServerReceiveThread.hpp
│   │           ├── ServerSendThread.cpp
│   │           ├── ServerSendThread.hpp
│   │           ├── ServiceApplicationBase.cpp
│   │           ├── ServiceCommunicatonBase.cpp
│   │           ├── SystemServiceBase.cpp
│   │           ├── posix/
│   │           │   └── ServiceApplicationBasePosix.cpp
│   │           └── win32/
│   │               └── ServiceApplicationBaseWin32.cpp
│   ├── aregextend.vcxproj
│   ├── aregextend.vcxproj.filters
│   ├── areglogger/
│   │   ├── CMakeLists.txt
│   │   ├── Readme.md
│   │   ├── client/
│   │   │   ├── LogObserverApi.h
│   │   │   ├── LogObserverBase.hpp
│   │   │   ├── LogObserverSwitches.h
│   │   │   └── private/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── LogObserverApi.cpp
│   │   │       ├── LogObserverBase.cpp
│   │   │       ├── LoggerClient.cpp
│   │   │       ├── LoggerClient.hpp
│   │   │       ├── ObserverMessageProcessor.cpp
│   │   │       └── ObserverMessageProcessor.hpp
│   │   └── resources/
│   │       ├── areglogger.def
│   │       ├── areglogger.rc
│   │       └── resource.h
│   ├── areglogger.vcxproj
│   ├── areglogger.vcxproj.filters
│   ├── logcollector/
│   │   ├── CMakeLists.txt
│   │   ├── Readme.md
│   │   ├── app/
│   │   │   ├── LogCollector.hpp
│   │   │   ├── NELogCollectorSettings.hpp
│   │   │   └── private/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── LogCollector.cpp
│   │   │       ├── LogCollectorConsoleService.cpp
│   │   │       ├── LogCollectorConsoleService.hpp
│   │   │       ├── NELogCollectorSettings.cpp
│   │   │       ├── posix/
│   │   │       │   └── LogCollectorPosix.cpp
│   │   │       └── win32/
│   │   │           └── LogCollectorWin32.cpp
│   │   ├── resources/
│   │   │   ├── Readme.md
│   │   │   ├── logcollector.rc
│   │   │   ├── logcollector.service
│   │   │   ├── logcollector.service.install.bat
│   │   │   ├── logcollector.service.uninstall.bat
│   │   │   ├── logcollector_post_build.bat
│   │   │   ├── resource.h
│   │   │   ├── targetver.h
│   │   │   └── tech.areg.logcollector.plist
│   │   └── service/
│   │       ├── LogCollectorServerService.hpp
│   │       └── private/
│   │           ├── CMakeLists.txt
│   │           ├── LogCollectorMessageProcessor.cpp
│   │           ├── LogCollectorMessageProcessor.hpp
│   │           └── LogCollectorServerService.cpp
│   ├── logcollector.vcxproj
│   ├── logcollector.vcxproj.filters
│   ├── logobserver/
│   │   ├── CMakeLists.txt
│   │   ├── Readme.md
│   │   ├── app/
│   │   │   ├── LogObserver.hpp
│   │   │   ├── NELogObserverSettings.hpp
│   │   │   └── private/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── LogObserver.cpp
│   │   │       ├── NELogObserverSettings.cpp
│   │   │       ├── posix/
│   │   │       │   └── LogObserverPosix.cpp
│   │   │       └── win32/
│   │   │           └── LogObserverWin32.cpp
│   │   └── resources/
│   │       ├── logobserver.rc
│   │       ├── resource.h
│   │       └── targetver.h
│   ├── logobserver.vcxproj
│   ├── logobserver.vcxproj.filters
│   ├── mtrouter/
│   │   ├── CMakeLists.txt
│   │   ├── Readme.md
│   │   ├── app/
│   │   │   ├── MultitargetRouter.hpp
│   │   │   ├── NEMultitargetRouterSettings.hpp
│   │   │   └── private/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── MultitargetRouter.cpp
│   │   │       ├── NEMultitargetRouterSettings.cpp
│   │   │       ├── RouterConsoleService.cpp
│   │   │       ├── RouterConsoleService.hpp
│   │   │       ├── posix/
│   │   │       │   └── MultitargetRouterPosix.cpp
│   │   │       └── win32/
│   │   │           └── MultitargetRouterWin32.cpp
│   │   ├── resources/
│   │   │   ├── Readme.md
│   │   │   ├── mtrouter.rc
│   │   │   ├── mtrouter.service
│   │   │   ├── mtrouter.service.install.bat
│   │   │   ├── mtrouter.service.uninstall.bat
│   │   │   ├── mtrouter_post_build.bat
│   │   │   ├── resource.h
│   │   │   ├── targetver.h
│   │   │   └── tech.areg.mtrouter.plist
│   │   └── service/
│   │       ├── RouterServerService.hpp
│   │       └── private/
│   │           ├── CMakeLists.txt
│   │           ├── ListServiceProxies.cpp
│   │           ├── ListServiceProxies.hpp
│   │           ├── RouterServerService.cpp
│   │           ├── ServiceProxy.cpp
│   │           ├── ServiceProxy.hpp
│   │           ├── ServiceRegistry.cpp
│   │           ├── ServiceRegistry.hpp
│   │           ├── ServiceStub.cpp
│   │           └── ServiceStub.hpp
│   ├── mtrouter.vcxproj
│   └── mtrouter.vcxproj.filters
├── msvc_setup.props
├── nuget.config
├── tests/
│   ├── CMakeLists.txt
│   ├── areg-unit-tests.vcxproj
│   ├── areg-unit-tests.vcxproj.filters
│   ├── packages.config
│   └── units/
│       ├── CMakeLists.txt
│       ├── DateTimeTest.cpp
│       ├── FileTest.cpp
│       ├── GUnitTest.cpp
│       ├── GUnitTest.hpp
│       ├── LogScopesTest.cpp
│       ├── NEStringTest.cpp
│       ├── OptionParserTest.cpp
│       ├── StringUtilsTest.cpp
│       ├── TEArrayListTest.cpp
│       ├── TEFixedArrayTest.cpp
│       ├── TEHashMapTest.cpp
│       ├── TELinkedListTest.cpp
│       ├── TEMapTest.cpp
│       ├── TEPropertyTest.cpp
│       ├── TERingStackTest.cpp
│       ├── TESortedLinkedListTest.cpp
│       ├── TEStackTest.cpp
│       └── UnitTestUtilities.hpp
├── thirdparty/
│   ├── CMakeLists.txt
│   ├── sqlite3/
│   │   ├── CMakeLists.txt
│   │   ├── LICENSE.txt
│   │   ├── Readme.md
│   │   └── amalgamation/
│   │       ├── shell.c
│   │       ├── sqlite3.c
│   │       ├── sqlite3.h
│   │       └── sqlite3ext.h
│   ├── sqlite3.vcxproj
│   └── sqlite3.vcxproj.filters
└── tools/
    ├── README.md
    ├── codegen.jar
    ├── codegenerate.bat
    ├── codegenerate.sh
    ├── setup-project.bat
    └── setup-project.sh
Download .txt
Showing preview only (777K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (8517 symbols across 507 files)

FILE: conf/exports/example/example.cpp
  function main (line 7) | int main()

FILE: examples/01_minimalrpc/src/main.cpp
  class ServiceProvider (line 22) | class ServiceProvider   : public    Component
    method ServiceProvider (line 26) | ServiceProvider(const NERegistry::ComponentEntry& entry, ComponentThre...
    method requestHelloService (line 32) | virtual void requestHelloService(void) override
    method ServiceProvider (line 39) | inline ServiceProvider& self(void)
  class ServiceConsumer (line 44) | class ServiceConsumer   : public    Component
    method ServiceConsumer (line 48) | ServiceConsumer(const NERegistry::ComponentEntry & entry, ComponentThr...
    method serviceConnected (line 55) | virtual bool serviceConnected(NEService::eServiceConnection status, Pr...
  function main (line 88) | int main(void)

FILE: examples/02_minimalipc/src/consumeripc.cpp
  class ServiceConsumer (line 26) | class ServiceConsumer   : public    Component
    method ServiceConsumer (line 30) | ServiceConsumer(const NERegistry::ComponentEntry & entry, ComponentThr...
    method serviceConnected (line 38) | virtual bool serviceConnected(NEService::eServiceConnection status, Pr...
    method responseHelloService (line 50) | virtual void responseHelloService(void) override
  function main (line 74) | int main(void)

FILE: examples/02_minimalipc/src/provideripc.cpp
  class ServiceProvider (line 26) | class ServiceProvider   : public    Component
    method ServiceProvider (line 30) | ServiceProvider(const NERegistry::ComponentEntry& entry, ComponentThre...
    method requestHelloService (line 39) | virtual void requestHelloService(void) override
    method ServiceProvider (line 48) | inline ServiceProvider& self(void)
  function main (line 69) | int main(void)

FILE: examples/03_helloservice/common/src/ClientComponent.hpp
  class ClientComponent (line 14) | class ClientComponent   : public    Component
    method ClientComponent (line 57) | inline ClientComponent & self( void )
    method ClientComponent (line 64) | ClientComponent( void ) = delete;

FILE: examples/03_helloservice/common/src/ServiceComponent.hpp
  class ServiceComponent (line 14) | class ServiceComponent  : public    Component
    method ServiceComponent (line 35) | inline ServiceComponent & self( void )
    method ServiceComponent (line 42) | ServiceComponent( void ) = delete;

FILE: examples/03_helloservice/multiprocess/clientproc/src/main.cpp
  function main (line 42) | int main( void )

FILE: examples/03_helloservice/multiprocess/serviceproc/src/main.cpp
  function main (line 37) | int main( void )

FILE: examples/03_helloservice/onethread/src/main.cpp
  function main (line 44) | int main( void )

FILE: examples/03_helloservice/twothreads/src/main.cpp
  function main (line 45) | int main( void )

FILE: examples/04_hellothread/src/main.cpp
  class HelloThread (line 21) | class HelloThread : public Thread, protected IEThreadConsumer
    method HelloThread (line 24) | HelloThread( void )
    method onThreadRuns (line 34) | virtual void onThreadRuns( void ) override
  function main (line 43) | int main()

FILE: examples/05_buffer/src/main.cpp
  class HelloThread (line 26) | class HelloThread : public Thread, protected IEThreadConsumer
    method HelloThread (line 29) | explicit HelloThread(SharedBuffer& buffer)
    method onThreadRuns (line 39) | void onThreadRuns() override
  function main (line 68) | int main()

FILE: examples/06_file/src/main.cpp
  function printSeparator (line 27) | void printSeparator(char ch = '*', int count = 20)
  function writeText (line 33) | void writeText(FileBase & file)
  function writeLines (line 48) | void writeLines(FileBase & file)
  function dumpText (line 64) | void dumpText(FileBase & file)
  function main (line 87) | int main()

FILE: examples/07_logging/src/main.cpp
  class HelloThread (line 34) | class HelloThread : public Thread, protected IEThreadConsumer
    method HelloThread (line 37) | HelloThread()
    method onThreadRuns (line 48) | void onThreadRuns() override
  function main (line 62) | int main()

FILE: examples/08_timer/src/main.cpp
  class TimerDispatcher (line 42) | class TimerDispatcher   : public DispatcherThread
    method TimerDispatcher (line 50) | explicit TimerDispatcher(const String & name)
    method startTimers (line 61) | void startTimers()
    method stopTimers (line 82) | void stopTimers()
    method processTimer (line 92) | void processTimer(Timer & timer) override
    method postEvent (line 105) | virtual bool postEvent(Event& eventElem) override
  function startTimerThread (line 123) | void startTimerThread(TimerDispatcher & thread)
  function stopTimerThread (line 131) | void stopTimerThread(TimerDispatcher & thread)
  function main (line 144) | int main()

FILE: examples/09_threads/src/main.cpp
  class HelloThread (line 34) | class HelloThread   : public Thread
    method HelloThread (line 38) | HelloThread()
    method onThreadRuns (line 50) | void onThreadRuns() override
  class HelloDispatcher (line 75) | class HelloDispatcher   : public DispatcherThread
    method HelloDispatcher (line 79) | HelloDispatcher()
    method readyForEvents (line 92) | void readyForEvents(bool isReady) override
    method dispatchEvent (line 112) | bool dispatchEvent(Event & eventElem) override
    method postEvent (line 122) | virtual bool postEvent( Event & eventElem ) override
    method processTimer (line 130) | void processTimer(Timer &) override
  function main (line 145) | int main()

FILE: examples/10_sync/src/main.cpp
  class HelloThread (line 53) | class HelloThread : public Thread, protected IEThreadConsumer
    method HelloThread (line 56) | HelloThread()
    method onThreadRuns (line 66) | void onThreadRuns() override
  class GoodbyeThread (line 117) | class GoodbyeThread : public Thread, protected IEThreadConsumer
    method GoodbyeThread (line 120) | GoodbyeThread()
    method onThreadRuns (line 130) | void onThreadRuns() override
  function main (line 159) | int main()

FILE: examples/11_service/src/ServicingComponent.hpp
  class ServicingComponent (line 23) | class ServicingComponent    : public    Component
    method sendNotification (line 76) | virtual void sendNotification( unsigned int /*msgId*/ ) override
    method errorRequest (line 83) | virtual void errorRequest( unsigned int /*msgId*/, bool /*msgCancel*/ ...
    method processRequestEvent (line 94) | virtual void processRequestEvent( ServiceRequestEvent & /*eventElem*/ ...
    method processAttributeEvent (line 101) | virtual void processAttributeEvent( ServiceRequestEvent & /*eventElem*...
    method ServicingComponent (line 110) | inline ServicingComponent & self( void )
    method ServicingComponent (line 118) | ServicingComponent( void ) = delete;

FILE: examples/11_service/src/main.cpp
  function main (line 50) | int main()

FILE: examples/12_svcmulti/src/ServicingComponent.hpp
  class ServicingComponent (line 23) | class ServicingComponent    : public    Component
    method sendNotification (line 77) | virtual void sendNotification( unsigned int /*msgId*/ ) override
    method errorRequest (line 84) | virtual void errorRequest( unsigned int /*msgId*/, bool /*msgCancel*/ ...
    method processRequestEvent (line 95) | virtual void processRequestEvent( ServiceRequestEvent & /*eventElem*/ ...
    method processAttributeEvent (line 102) | virtual void processAttributeEvent( ServiceRequestEvent & /*eventElem*...
    method ServicingComponent (line 111) | inline ServicingComponent & self( void )
    method ServicingComponent (line 119) | ServicingComponent( void ) = delete;

FILE: examples/12_svcmulti/src/main.cpp
  function main (line 77) | int main()

FILE: examples/13_locsvc/locservice/src/ServiceClient.hpp
  class ServiceClient (line 24) | class ServiceClient : public    Component
    method ServiceClient (line 82) | inline ServiceClient & self( void )
    method ServiceClient (line 96) | ServiceClient( void ) = delete;

FILE: examples/13_locsvc/locservice/src/ServicingComponent.hpp
  class ServicingComponent (line 23) | class ServicingComponent    : public    Component
    method ServicingComponent (line 62) | inline ServicingComponent & self( void )
    method ServicingComponent (line 70) | ServicingComponent( void ) = delete;

FILE: examples/13_locsvc/locservice/src/main.cpp
  function main (line 73) | int main()

FILE: examples/14_locmesh/locsvcmesh/src/ClientComponent.hpp
  class ClientComponent (line 22) | class ClientComponent : public Component
    method ClientComponent (line 35) | inline ClientComponent & self( void )
    method ClientComponent (line 51) | ClientComponent( void ) = delete;

FILE: examples/14_locmesh/locsvcmesh/src/ServiceClient.cpp
  function String (line 82) | inline String ServiceClient::timerName( Component & /* owner */ ) const

FILE: examples/14_locmesh/locsvcmesh/src/ServiceClient.hpp
  class ServiceClient (line 24) | class ServiceClient : protected HelloWorldClientBase
    method ServiceClient (line 94) | inline ServiceClient & self( void )
    method ServiceClient (line 114) | ServiceClient( void ) = delete;

FILE: examples/14_locmesh/locsvcmesh/src/ServiceHelloWorld.hpp
  class ServiceHelloWorld (line 19) | class ServiceHelloWorld : protected HelloWorldStub
    method ServiceHelloWorld (line 75) | ServiceHelloWorld( void ) = delete;

FILE: examples/14_locmesh/locsvcmesh/src/ServicingComponents.hpp
  class ControllerComponent (line 23) | class ControllerComponent   : public    Component
    method ControllerComponent (line 32) | inline ControllerComponent & self( void )
    method ControllerComponent (line 46) | ControllerComponent( void ) = delete;
  class SecondaryComponent (line 53) | class SecondaryComponent    : public    Component
    method SecondaryComponent (line 63) | inline SecondaryComponent & self( void )
    method SecondaryComponent (line 79) | SecondaryComponent( void ) = delete;

FILE: examples/14_locmesh/locsvcmesh/src/main.cpp
  function main (line 107) | int main()

FILE: examples/15_pubsvc/pubclient/src/ServiceClient.hpp
  class ServiceClient (line 24) | class ServiceClient : public    Component
    method ServiceClient (line 89) | inline ServiceClient & self( void )
    method ServiceClient (line 104) | ServiceClient( void ) = delete;

FILE: examples/15_pubsvc/pubclient/src/main.cpp
  function main (line 62) | int main()

FILE: examples/15_pubsvc/pubservice/src/ServicingComponent.hpp
  class ServicingComponent (line 29) | class ServicingComponent    : public    Component
    method ServicingComponent (line 74) | inline ServicingComponent & self( void )
    method ServicingComponent (line 82) | ServicingComponent( void ) = delete;

FILE: examples/15_pubsvc/pubservice/src/main.cpp
  function main (line 55) | int main()

FILE: examples/16_pubmesh/common/src/LocalHelloWorldClient.cpp
  function String (line 76) | inline String LocalHelloWorldClient::timerName( Component & owner ) const

FILE: examples/16_pubmesh/common/src/LocalHelloWorldClient.hpp
  class LocalHelloWorldClient (line 24) | class LocalHelloWorldClient : private   LocalHelloWorldClientBase
    method LocalHelloWorldClient (line 82) | inline LocalHelloWorldClient & self( void )
    method LocalHelloWorldClient (line 101) | LocalHelloWorldClient( void ) = delete;

FILE: examples/16_pubmesh/common/src/LocalHelloWorldService.hpp
  class LocalHelloWorldService (line 20) | class LocalHelloWorldService  : private LocalHelloWorldStub
    method LocalHelloWorldService (line 62) | LocalHelloWorldService( void ) = delete;

FILE: examples/16_pubmesh/common/src/NECommon.hpp
  type NECommon (line 25) | namespace NECommon

FILE: examples/16_pubmesh/common/src/PublicHelloWorldClient.cpp
  function String (line 199) | inline String PublicHelloWorldClient::timerName( Component & owner ) const

FILE: examples/16_pubmesh/common/src/PublicHelloWorldClient.hpp
  class PublicHelloWorldClient (line 26) | class PublicHelloWorldClient    : private   PublicHelloWorldClientBase
    method PublicHelloWorldClient (line 110) | inline PublicHelloWorldClient & self( void )
    method PublicHelloWorldClient (line 129) | PublicHelloWorldClient( void ) = delete;

FILE: examples/16_pubmesh/common/src/PublicHelloWorldService.hpp
  class PublicHelloWorldService (line 20) | class PublicHelloWorldService : private PublicHelloWorldStub
    method PublicHelloWorldService (line 91) | PublicHelloWorldService( void ) = delete;

FILE: examples/16_pubmesh/pubclients/src/main.cpp
  class ServiceComponent (line 31) | class ServiceComponent : public Component
    method ServiceComponent (line 51) | ServiceComponent( const NERegistry::ComponentEntry & entry, ComponentT...
    method ServiceComponent (line 73) | inline ServiceComponent & self( void )
    method ServiceComponent (line 81) | ServiceComponent( void ) = delete;
  function main (line 119) | int main()

FILE: examples/16_pubmesh/pubservice/src/PublicServiceComponent.hpp
  class PublicServiceComponent (line 23) | class PublicServiceComponent    : public    Component
    method PublicServiceComponent (line 80) | inline PublicServiceComponent & self( void )
    method PublicServiceComponent (line 89) | PublicServiceComponent( void ) = delete;

FILE: examples/16_pubmesh/pubservice/src/main.cpp
  class LocalServiceComponent (line 31) | class LocalServiceComponent : public Component
    method LocalServiceComponent (line 36) | LocalServiceComponent( const NERegistry::ComponentEntry & entry, Compo...
    method LocalServiceComponent (line 47) | LocalServiceComponent & self( void )
  function main (line 100) | int main()

FILE: examples/16_pubmesh/pubsvcmesh/src/main.cpp
  class LocalServiceComponent (line 31) | class LocalServiceComponent : public Component
    method LocalServiceComponent (line 41) | LocalServiceComponent( const NERegistry::ComponentEntry & entry, Compo...
    method LocalServiceComponent (line 55) | LocalServiceComponent & self( void )
  class PublicServiceComponent (line 63) | class PublicServiceComponent : public Component
    method PublicServiceComponent (line 72) | PublicServiceComponent( const NERegistry::ComponentEntry & entry, Comp...
    method PublicServiceComponent (line 89) | PublicServiceComponent & self( void )
  function main (line 169) | int main()

FILE: examples/17_pubtraffic/common/NECommon.hpp
  type NECommon (line 17) | namespace NECommon
    type eTrafficDirection (line 32) | enum class eTrafficDirection

FILE: examples/17_pubtraffic/pubclient/src/TrafficLightClient.hpp
  class TrafficLightClient (line 21) | class TrafficLightClient    : public    Component
    method TrafficLightClient (line 81) | inline TrafficLightClient & self( void )

FILE: examples/17_pubtraffic/pubclient/src/main.cpp
  function main (line 34) | int main()

FILE: examples/17_pubtraffic/pubservice/src/TrafficLightService.hpp
  class TrafficSwitchData (line 24) | class TrafficSwitchData
    method TrafficSwitchData (line 27) | inline TrafficSwitchData( bool switchOn = true )
    method getData (line 33) | inline bool getData( void ) const
  class TrafficLightService (line 49) | class TrafficLightService   : public    Component
    class TrafficSwitchConsumer (line 63) | class TrafficSwitchConsumer : public IETrafficSwitchConsumer
      method TrafficSwitchConsumer (line 66) | inline TrafficSwitchConsumer( TrafficLightService & service )
      method TrafficSwitchConsumer (line 92) | TrafficSwitchConsumer( void ) = delete;
    class TimerConsumer (line 100) | class TimerConsumer : public    IETimerConsumer
      method TimerConsumer (line 103) | TimerConsumer( TrafficLightService & service )
      method TimerConsumer (line 129) | TimerConsumer( void ) = delete;
    method TrafficLightService (line 178) | inline TrafficLightService & self( void )
    method TrafficLightService (line 199) | TrafficLightService( void ) = delete;

FILE: examples/17_pubtraffic/pubservice/src/main.cpp
  function main (line 57) | int main()

FILE: examples/18_pubworker/common/NECommon.hpp
  type NECommon (line 17) | namespace NECommon

FILE: examples/18_pubworker/common/PatientInfoEvent.hpp
  class PatientInfoEventData (line 20) | class PatientInfoEventData
    type E_UpdateCommands (line 26) | enum E_UpdateCommands
  function SharedBuffer (line 134) | inline const SharedBuffer & PatientInfoEventData::getData( void ) const

FILE: examples/18_pubworker/pubclient/src/HardwareWorkerConsumer.cpp
  function HardwareWorkerConsumer (line 20) | inline HardwareWorkerConsumer & HardwareWorkerConsumer::self(void)

FILE: examples/18_pubworker/pubclient/src/HardwareWorkerConsumer.hpp
  class HardwareWorkerConsumer (line 24) | class HardwareWorkerConsumer    : public    IEWorkerThreadConsumer
    method HardwareWorkerConsumer (line 86) | HardwareWorkerConsumer( void ) = delete;

FILE: examples/18_pubworker/pubclient/src/PatientClient.cpp
  function PatientClient (line 23) | PatientClient & PatientClient::self(void)
  function IEWorkerThreadConsumer (line 28) | IEWorkerThreadConsumer * PatientClient::workerThreadConsumer(const Strin...

FILE: examples/18_pubworker/pubclient/src/PatientClient.hpp
  class PatientClient (line 27) | class PatientClient : public    Component
    method PatientClient (line 106) | PatientClient( void ) = delete;

FILE: examples/18_pubworker/pubclient/src/main.cpp
  function main (line 54) | int main()

FILE: examples/18_pubworker/pubservice/src/PatientService.cpp
  function PatientService (line 23) | inline PatientService & PatientService::self( void )
  function IEWorkerThreadConsumer (line 28) | IEWorkerThreadConsumer * PatientService::workerThreadConsumer(const Stri...

FILE: examples/18_pubworker/pubservice/src/PatientService.hpp
  class PatientService (line 24) | class PatientService    : public    Component
    method PatientService (line 80) | PatientService( void ) = delete;

FILE: examples/18_pubworker/pubservice/src/PatientServiceWorkerConsumer.hpp
  class PatientInformationStub (line 17) | class PatientInformationStub
  class PatientServiceWorkerConsumer (line 24) | class PatientServiceWorkerConsumer  : public    IEWorkerThreadConsumer
    method PatientServiceWorkerConsumer (line 75) | PatientServiceWorkerConsumer( void ) = delete;

FILE: examples/18_pubworker/pubservice/src/main.cpp
  function main (line 56) | int main()

FILE: examples/19_pubfsm/common/NECommon.hpp
  type NECommon (line 16) | namespace NECommon

FILE: examples/19_pubfsm/pubclient/src/TrafficLightClient.hpp
  class TrafficLightClient (line 22) | class TrafficLightClient    : public    Component
    method TrafficLightClient (line 104) | TrafficLightClient( void ) = delete;

FILE: examples/19_pubfsm/pubclient/src/main.cpp
  function main (line 69) | int main()

FILE: examples/19_pubfsm/pubservice/src/IETrafficLightActionHandler.hpp
  class IETrafficLightActionHandler (line 37) | class IETrafficLightActionHandler
    method IETrafficLightActionHandler (line 48) | IETrafficLightActionHandler( void ) = default;

FILE: examples/19_pubfsm/pubservice/src/NETrafficLightFSM.cpp
  type NETrafficLightFSM (line 27) | namespace NETrafficLightFSM

FILE: examples/19_pubfsm/pubservice/src/NETrafficLightFSM.hpp
  type NETrafficLightFSM (line 35) | namespace NETrafficLightFSM
    type eFsmEventData (line 54) | enum class eFsmEventData
    class FsmEventData (line 73) | class FsmEventData
      method FsmEventData (line 79) | FsmEventData( const NETrafficLightFSM::eFsmEventData & data )
      method FsmEventData (line 84) | FsmEventData( const FsmEventData & data ) = default;
      method FsmEventData (line 109) | FsmEventData( void ) = delete;
    type eFsmTimerData (line 132) | enum class eFsmTimerData

FILE: examples/19_pubfsm/pubservice/src/PowerControllerClient.hpp
  class PowerControllerEventData (line 29) | class PowerControllerEventData
    type E_Actions (line 35) | enum class E_Actions
  class PowerControllerClient (line 101) | class PowerControllerClient : public    PowerManagerClientBase
    method PowerControllerClient (line 223) | PowerControllerClient( void ) = delete;
  function PowerControllerClient (line 231) | inline PowerControllerClient & PowerControllerClient::self( void )
    method PowerControllerClient (line 223) | PowerControllerClient( void ) = delete;

FILE: examples/19_pubfsm/pubservice/src/TrafficLightFSM.hpp
  class IETrafficLightActionHandler (line 38) | class IETrafficLightActionHandler
  class DispatcherThread (line 39) | class DispatcherThread
  class TrafficLightFSM (line 49) | class TrafficLightFSM
    class TrafficLightEventConsumer (line 63) | class TrafficLightEventConsumer : public NETrafficLightFSM::IEFsmEvent...
      method TrafficLightEventConsumer (line 98) | TrafficLightEventConsumer( void ) = delete;
    class TrafficLightTimerConsumer (line 111) | class TrafficLightTimerConsumer : public IETimerConsumer
      method TrafficLightTimerConsumer (line 144) | TrafficLightTimerConsumer( void ) = delete;
    type eState (line 156) | enum class eState
  function TrafficLightFSM (line 536) | inline TrafficLightFSM& TrafficLightFSM::self( void )
    class TrafficLightEventConsumer (line 63) | class TrafficLightEventConsumer : public NETrafficLightFSM::IEFsmEvent...
      method TrafficLightEventConsumer (line 98) | TrafficLightEventConsumer( void ) = delete;
    class TrafficLightTimerConsumer (line 111) | class TrafficLightTimerConsumer : public IETimerConsumer
      method TrafficLightTimerConsumer (line 144) | TrafficLightTimerConsumer( void ) = delete;
    type eState (line 156) | enum class eState

FILE: examples/19_pubfsm/pubservice/src/TrafficLightService.hpp
  class TrafficLightService (line 34) | class TrafficLightService   : public    Component
    method TrafficLightService (line 166) | TrafficLightService( void ) = delete;
  function TrafficLightService (line 174) | inline TrafficLightService & TrafficLightService::self( void )
    method TrafficLightService (line 166) | TrafficLightService( void ) = delete;

FILE: examples/19_pubfsm/pubservice/src/main.cpp
  function main (line 66) | int main()

FILE: examples/20_winchat/chatter/DistrbutedApp.cpp
  function BOOL (line 49) | BOOL DistrbutedApp::InitInstance()

FILE: examples/20_winchat/chatter/DistrbutedApp.hpp
  class DistrbutedApp (line 29) | class DistrbutedApp : public CWinApp

FILE: examples/20_winchat/chatter/NEDistributedApp.cpp
  function _createRoleName (line 13) | static inline void _createRoleName( const String & nickName, uint32_t co...
  function _createRoleName (line 19) | static inline void _createRoleName( const String & nickName, uint32_t co...
  function String (line 25) | String NEDistributedApp::getConnectionServiceRole( const String & nickNa...
  function String (line 32) | String NEDistributedApp::getDirectMessagingRole(const String & nickName,...
  function String (line 39) | String NEDistributedApp::getDirectConnectionName( const String & nickNam...

FILE: examples/20_winchat/chatter/NEDistributedApp.hpp
  type NEDistributedApp (line 11) | namespace NEDistributedApp
    type eWndCommands (line 15) | enum class eWndCommands : unsigned int

FILE: examples/20_winchat/chatter/services/CentralMessaging.hpp
  class DispatcherThread (line 10) | class DispatcherThread
  class ConnectionHandler (line 11) | class ConnectionHandler
  class CentralMessaging (line 13) | class CentralMessaging    : public CentralMessagerClientBase
    method CentralMessaging (line 99) | CentralMessaging( void ) = delete;
  function CentralMessaging (line 107) | inline CentralMessaging & CentralMessaging::self( void )
    method CentralMessaging (line 99) | CentralMessaging( void ) = delete;

FILE: examples/20_winchat/chatter/services/ChatParticipantService.hpp
  class ComponentThread (line 13) | class ComponentThread
  class ChatParticipantService (line 15) | class ChatParticipantService  : private   Component
  function ChatParticipantService (line 70) | inline ChatParticipantService & ChatParticipantService::self( void )

FILE: examples/20_winchat/chatter/services/ChatPrticipantHandler.hpp
  class DirectChatService (line 14) | class DirectChatService
  class DirectMessagingClient (line 15) | class DirectMessagingClient
  class ChatPrticipantHandler (line 21) | class ChatPrticipantHandler
  function String (line 130) | inline const String & ChatPrticipantHandler::GetServiceName( void ) const
  function ptr_type (line 160) | inline ptr_type ChatPrticipantHandler::GetChatWindow( void ) const
  function DirectChatService (line 172) | inline DirectChatService * ChatPrticipantHandler::GetConnectionService( ...
  function DirectMessagingClient (line 196) | inline DirectMessagingClient * ChatPrticipantHandler::GetChatClient( voi...

FILE: examples/20_winchat/chatter/services/ConnectionHandler.hpp
  class ConnectionHandler (line 12) | class ConnectionHandler
  function String (line 99) | inline const String & ConnectionHandler::GetNickName(void) const
  function DateTime (line 136) | inline const DateTime & ConnectionHandler::GetTimeConnect(void) const
  function DateTime (line 148) | inline const DateTime & ConnectionHandler::GetTimeConnected(void) const

FILE: examples/20_winchat/chatter/services/ConnectionList.hpp
  class Component (line 4) | class Component
  class ConnectionHandler (line 5) | class ConnectionHandler
  class ConnectionList (line 7) | class ConnectionList : public ConnectionManagerClientBase
    method ConnectionList (line 74) | ConnectionList( void ) = delete;

FILE: examples/20_winchat/chatter/services/ConnectionService.hpp
  class ConnectionService (line 10) | class ConnectionService    : public  Component
  function ConnectionService (line 54) | inline ConnectionService & ConnectionService::self( void )

FILE: examples/20_winchat/chatter/services/DirectChatService.hpp
  class DirectConnectionClient (line 18) | class DirectConnectionClient
  class ChatPrticipantHandler (line 19) | class ChatPrticipantHandler
  class DirectChatService (line 21) | class DirectChatService : public Component
  function DirectChatService (line 146) | inline DirectChatService & DirectChatService::self( void )

FILE: examples/20_winchat/chatter/services/DirectConnectionClient.hpp
  class ChatPrticipantHandler (line 11) | class ChatPrticipantHandler
  class DirectConnectionClient (line 13) | class DirectConnectionClient  : public DirectConnectionClientBase
    method DirectConnectionClient (line 62) | DirectConnectionClient( void ) = delete;

FILE: examples/20_winchat/chatter/services/DirectConnectionService.cpp
  function DirectConnectionService (line 22) | DirectConnectionService * DirectConnectionService::GetService( void )
  function String (line 27) | String DirectConnectionService::GetGeneratedService( const String & nick...

FILE: examples/20_winchat/chatter/services/DirectConnectionService.hpp
  class DirectConnectionService (line 14) | class DirectConnectionService   : public Component
  function DirectConnectionService (line 90) | inline DirectConnectionService & DirectConnectionService::self( void )

FILE: examples/20_winchat/chatter/services/DirectMessagingClient.hpp
  class ChatPrticipantHandler (line 12) | class ChatPrticipantHandler
  class DirectMessagingClient (line 14) | class DirectMessagingClient   : public DirectMessagerClientBase
    method DirectMessagingClient (line 124) | DirectMessagingClient( void ) = delete;
  function DirectMessagingClient (line 128) | inline DirectMessagingClient & DirectMessagingClient::self( void )
    method DirectMessagingClient (line 124) | DirectMessagingClient( void ) = delete;

FILE: examples/20_winchat/chatter/services/NetworkSetup.hpp
  class Component (line 4) | class Component
  class ConnectionHandler (line 5) | class ConnectionHandler
  class NetworkSetup (line 7) | class NetworkSetup :  public ConnectionManagerClientBase
    method NetworkSetup (line 61) | NetworkSetup( void ) = delete;

FILE: examples/20_winchat/chatter/ui/DistributedDialog.cpp
  class CAboutDlg (line 36) | class CAboutDlg : public CDialogEx
  function BOOL (line 133) | BOOL DistributedDialog::OnInitDialog()
  function HCURSOR (line 227) | HCURSOR DistributedDialog::OnQueryDragIcon()
  function LRESULT (line 239) | LRESULT DistributedDialog::OnCmdServiceStartup( WPARAM wParam, LPARAM lP...
  function LRESULT (line 262) | LRESULT DistributedDialog::OnCmdServiceNetwork( WPARAM wParam, LPARAM lP...
  function LRESULT (line 285) | LRESULT DistributedDialog::OnCmdServiceConnection( WPARAM wParam, LPARAM...
  function LRESULT (line 311) | LRESULT DistributedDialog::OnCmdClientConnection( WPARAM wParam, LPARAM ...
  function LRESULT (line 338) | LRESULT DistributedDialog::OnCmdClientRegistration( WPARAM wParam, LPARA...
  function LRESULT (line 379) | LRESULT DistributedDialog::OnCmdAddConnection( WPARAM /*wParam*/, LPARAM...
  function LRESULT (line 397) | LRESULT DistributedDialog::OnCmdRemoveConnection( WPARAM /*wParam*/, LPA...
  function LRESULT (line 451) | LRESULT DistributedDialog::OnCmdChatClosed( WPARAM /*wParam*/, LPARAM lP...
  function LRESULT (line 475) | LRESULT DistributedDialog::OnCmdSendMessage( WPARAM wParam, LPARAM lParam )
  function LRESULT (line 487) | LRESULT DistributedDialog::OnCmdTypeMessage( WPARAM wParam, LPARAM lParam )
  function PageChat (line 517) | PageChat * DistributedDialog::AddChatPage( const NEDirectConnection::sIn...
  function DistributedDialog (line 548) | DistributedDialog * DistributedDialog::GetDialog( void )
  function LRESULT (line 603) | LRESULT DistributedDialog::OnCmdSetDirectConnection( WPARAM wParam, LPAR...

FILE: examples/20_winchat/chatter/ui/DistributedDialog.hpp
  class PageChat (line 25) | class PageChat
  class DistributedDialog (line 28) | class DistributedDialog : public CPropertySheet
  function DistributedDialog (line 104) | inline DistributedDialog & DistributedDialog::self( void  )

FILE: examples/20_winchat/chatter/ui/PageChat.cpp
  function BOOL (line 96) | BOOL PageChat::OnInitDialog( )
  function BOOL (line 386) | BOOL PageChat::OnKillActive( )
  function BOOL (line 393) | BOOL PageChat::OnSetActive( )
  function LRESULT (line 414) | LRESULT PageChat::OnCmdChatMessage( WPARAM /*wParam*/, LPARAM lParam)
  function LRESULT (line 432) | LRESULT PageChat::OnCmdChatTyping( WPARAM /*wParam*/, LPARAM lParam)
  function LRESULT (line 443) | LRESULT PageChat::OnCmdChatJoined( WPARAM wParam, LPARAM /*lParam*/ )

FILE: examples/20_winchat/chatter/ui/PageChat.hpp
  class PageChat (line 18) | class PageChat  : public CPropertyPage

FILE: examples/20_winchat/chatter/ui/PageConnections.cpp
  function BOOL (line 206) | BOOL PageConnections::OnInitDialog( )
  function String (line 239) | const String & PageConnections::GetRegisteredName( void ) const

FILE: examples/20_winchat/chatter/ui/PageConnections.hpp
  class String (line 9) | class String
  class Component (line 10) | class Component
  class ConnectionList (line 11) | class ConnectionList
  class DispatcherThread (line 12) | class DispatcherThread
  class ConnectionHandler (line 13) | class ConnectionHandler
  class PageConnections (line 17) | class PageConnections : public CPropertyPage

FILE: examples/20_winchat/chatter/ui/PageMessaging.cpp
  function BOOL (line 194) | BOOL PageMessaging::OnInitDialog( )
  function LRESULT (line 321) | LRESULT PageMessaging::OnOutputMessage( WPARAM /*wParam*/, LPARAM lParam)

FILE: examples/20_winchat/chatter/ui/PageMessaging.hpp
  class Component (line 9) | class Component
  class DispatcherThread (line 10) | class DispatcherThread
  class CentralMessaging (line 11) | class CentralMessaging
  class ConnectionHandler (line 12) | class ConnectionHandler
  class ConnectionList (line 13) | class ConnectionList
  class PageMessaging (line 17) | class PageMessaging : public CPropertyPage

FILE: examples/20_winchat/chatter/ui/PageNetworkSetup.cpp
  function BOOL (line 377) | BOOL PageNetworkSetup::OnInitDialog( )

FILE: examples/20_winchat/chatter/ui/PageNetworkSetup.hpp
  class Component (line 7) | class Component
  class NetworkSetup (line 8) | class NetworkSetup
  class DispatcherThread (line 9) | class DispatcherThread
  class ConnectionHandler (line 10) | class ConnectionHandler
  class PageNetworkSetup (line 14) | class PageNetworkSetup : public CPropertyPage

FILE: examples/20_winchat/common/NECommon.hpp
  type NECommon (line 17) | namespace NECommon
    type S_ChatParticipant (line 30) | struct S_ChatParticipant
    type S_MessageData (line 45) | struct S_MessageData
    type sConnection (line 91) | struct sConnection
    type sParticipant (line 189) | struct sParticipant
  function size_t (line 357) | inline NECommon::sConnection::operator size_t ( void ) const
  function IEInStream (line 368) | inline const IEInStream & operator >> ( const IEInStream & stream, NECom...
  function IEOutStream (line 382) | inline IEOutStream & operator << ( IEOutStream & stream, const NECommon:...
  type std (line 397) | namespace std
    type hash<NECommon::sConnection> (line 399) | struct hash<NECommon::sConnection>
    type hash<NECommon::sParticipant> (line 512) | struct hash<NECommon::sParticipant>
  function size_t (line 473) | inline NECommon::sParticipant::operator size_t ( void ) const
  function IEInStream (line 483) | inline const IEInStream & operator >> ( const IEInStream & stream, NECom...
  function IEOutStream (line 496) | inline IEOutStream & operator << ( IEOutStream & stream, const NECommon:...
  type std (line 510) | namespace std
    type hash<NECommon::sConnection> (line 399) | struct hash<NECommon::sConnection>
    type hash<NECommon::sParticipant> (line 512) | struct hash<NECommon::sParticipant>

FILE: examples/20_winchat/register/CentralApp.cpp
  function BOOL (line 53) | BOOL CentralApp::InitInstance()

FILE: examples/20_winchat/register/CentralApp.hpp
  class CentralApp (line 27) | class CentralApp : public CWinApp

FILE: examples/20_winchat/register/NECentralApp.hpp
  type NECentralApp (line 11) | namespace NECentralApp
    type eWndCommands (line 15) | enum class eWndCommands : unsigned int

FILE: examples/20_winchat/register/services/ConnectionManager.cpp
  function ConnectionManager (line 40) | ConnectionManager * ConnectionManager::getService( void )

FILE: examples/20_winchat/register/services/ConnectionManager.hpp
  class ComponentThread (line 13) | class ComponentThread
  class ConnectionManager (line 22) | class ConnectionManager : public    Component
  function ConnectionManager (line 160) | inline ConnectionManager & ConnectionManager::self( void )

FILE: examples/20_winchat/register/ui/CentralDialog.cpp
  class CAboutDlg (line 33) | class CAboutDlg : public CDialogEx
  function BOOL (line 131) | BOOL CentralDialog::OnInitDialog()
  function HCURSOR (line 225) | HCURSOR CentralDialog::OnQueryDragIcon()
  function LRESULT (line 230) | LRESULT CentralDialog::OnCmdServiceConnection( WPARAM wParam, LPARAM /*l...

FILE: examples/20_winchat/register/ui/CentralDialog.hpp
  class CentralDialog (line 22) | class CentralDialog : public CPropertySheet
  function CentralDialog (line 57) | inline CentralDialog & CentralDialog::self( void  )

FILE: examples/20_winchat/register/ui/PageBrokerSetup.cpp
  function BOOL (line 159) | BOOL PageBrokerSetup::OnInitDialog( )

FILE: examples/20_winchat/register/ui/PageBrokerSetup.hpp
  class PageBrokerSetup (line 7) | class PageBrokerSetup : public CPropertyPage

FILE: examples/20_winchat/register/ui/PageConnections.cpp
  function BOOL (line 186) | BOOL PageConnections::OnInitDialog( )
  function LRESULT (line 202) | LRESULT PageConnections::OnCmdRegistered( WPARAM /*wParam*/, LPARAM lParam)
  function LRESULT (line 235) | LRESULT PageConnections::OnCmdUnregistered( WPARAM /*wParam*/, LPARAM lP...
  function LRESULT (line 264) | LRESULT PageConnections::OnCmdSendMessage( WPARAM /*wParam*/, LPARAM lPa...
  function LRESULT (line 298) | LRESULT PageConnections::OnCmdTypeMessage( WPARAM /*wParam*/, LPARAM lPa...

FILE: examples/20_winchat/register/ui/PageConnections.hpp
  class PageConnections (line 11) | class PageConnections : public CPropertyPage
    type E_Header (line 16) | enum E_Header

FILE: examples/21_locwatchdog/locservice/src/ServiceClient.hpp
  class ServiceClient (line 29) | class ServiceClient : public    Component
    method ServiceClient (line 102) | ServiceClient( void ) = delete;
  function ServiceClient (line 106) | inline ServiceClient & ServiceClient::self( void )
    method ServiceClient (line 102) | ServiceClient( void ) = delete;

FILE: examples/21_locwatchdog/locservice/src/ServicingComponent.hpp
  class ServicingComponent (line 27) | class ServicingComponent    : public    Component
    method ServicingComponent (line 71) | ServicingComponent( void ) = delete;
  function ServicingComponent (line 78) | inline ServicingComponent & ServicingComponent::self( void )
    method ServicingComponent (line 71) | ServicingComponent( void ) = delete;

FILE: examples/21_locwatchdog/locservice/src/main.cpp
  function main (line 76) | int main()

FILE: examples/22_pubwatchdog/common/NECommon.hpp
  type NECommon (line 9) | namespace NECommon

FILE: examples/22_pubwatchdog/pubclient/src/ServiceClient.hpp
  class ServiceClient (line 29) | class ServiceClient : public    Component
    method ServiceClient (line 119) | ServiceClient( void ) = delete;
  function ServiceClient (line 123) | inline ServiceClient & ServiceClient::self( void )
    method ServiceClient (line 119) | ServiceClient( void ) = delete;

FILE: examples/22_pubwatchdog/pubclient/src/main.cpp
  function main (line 63) | int main()

FILE: examples/22_pubwatchdog/pubservice/src/ServicingComponent.hpp
  class ServicingComponent (line 27) | class ServicingComponent    : public    Component
    method ServicingComponent (line 85) | ServicingComponent( void ) = delete;
  function ServicingComponent (line 92) | inline ServicingComponent & ServicingComponent::self( void )
    method ServicingComponent (line 85) | ServicingComponent( void ) = delete;

FILE: examples/22_pubwatchdog/pubservice/src/main.cpp
  function main (line 59) | int main()

FILE: examples/23_pubdatarate/common/NELargeData.hpp
  type NELargeData (line 26) | namespace NELargeData
    type sRBG (line 35) | struct sRBG
    type sCoord (line 43) | struct sCoord
    type sImageData (line 50) | struct sImageData
    type sImageBlock (line 65) | struct sImageBlock
    class ImageBlock (line 82) | class ImageBlock
      method ImageBlock (line 173) | ImageBlock(const ImageBlock& /*src*/) = delete;
      method ImageBlock (line 174) | ImageBlock& operator = (const ImageBlock & /*src*/) = delete;
  function IEOutStream (line 284) | inline IEOutStream& NELargeData::operator << (IEOutStream& stream, const...
  function IEInStream (line 300) | inline const IEInStream& NELargeData::operator >> (const IEInStream& str...

FILE: examples/23_pubdatarate/common/SimpleBitmap.hpp
  class SimpleBitmap (line 27) | class SimpleBitmap
    type sBitmapInfoHeader (line 40) | struct sBitmapInfoHeader
    type sBitmapFileHeader (line 69) | struct sBitmapFileHeader
    type sBitmap (line 86) | struct sBitmap

FILE: examples/23_pubdatarate/pubclient/src/ServiceClient.hpp
  class ServiceClient (line 34) | class ServiceClient : public    Component
    method ServiceClient (line 148) | ServiceClient( void ) = delete;
  function ServiceClient (line 152) | inline ServiceClient & ServiceClient::self( void )
    method ServiceClient (line 148) | ServiceClient( void ) = delete;

FILE: examples/23_pubdatarate/pubclient/src/main.cpp
  function main (line 64) | int main()

FILE: examples/23_pubdatarate/pubservice/src/NEUtilities.hpp
  class String (line 19) | class String
  type NEUtilities (line 21) | namespace NEUtilities
    type eOptionFlags (line 27) | enum class eOptionFlags : uint32_t
    type sOptions (line 83) | struct sOptions
    type sOptionData (line 123) | struct sOptionData
  function String (line 361) | inline String NEUtilities::sOptionData::getState(void) const

FILE: examples/23_pubdatarate/pubservice/src/ServicingComponent.hpp
  class OptionData (line 35) | class OptionData : public NEUtilities::sOptionData
  class ServicingComponent (line 49) | class ServicingComponent    : public    Component
    class OptionConsumer (line 63) | class OptionConsumer    : public    IEOptionConsumer
      method OptionConsumer (line 66) | OptionConsumer( ServicingComponent & service )
      method OptionConsumer (line 91) | OptionConsumer( void ) = delete;
    class TimerConsumer (line 99) | class TimerConsumer : public    IETimerConsumer
      method TimerConsumer (line 102) | TimerConsumer( ServicingComponent & service )
      method TimerConsumer (line 127) | TimerConsumer( void ) = delete;
    method ServicingComponent (line 338) | ServicingComponent( void ) = delete;
  function ServicingComponent (line 345) | inline ServicingComponent & ServicingComponent::self( void )
    class OptionConsumer (line 63) | class OptionConsumer    : public    IEOptionConsumer
      method OptionConsumer (line 66) | OptionConsumer( ServicingComponent & service )
      method OptionConsumer (line 91) | OptionConsumer( void ) = delete;
    class TimerConsumer (line 99) | class TimerConsumer : public    IETimerConsumer
      method TimerConsumer (line 102) | TimerConsumer( ServicingComponent & service )
      method TimerConsumer (line 127) | TimerConsumer( void ) = delete;
    method ServicingComponent (line 338) | ServicingComponent( void ) = delete;

FILE: examples/23_pubdatarate/pubservice/src/main.cpp
  function main (line 56) | int main()

FILE: examples/24_pubunblock/pubclient/src/ServiceClient.hpp
  class ServiceClient (line 31) | class ServiceClient : public    Component
    method ServiceClient (line 120) | inline ServiceClient & self( void )
    method ServiceClient (line 143) | ServiceClient( void ) = delete;

FILE: examples/24_pubunblock/pubclient/src/main.cpp
  function main (line 61) | int main()

FILE: examples/24_pubunblock/pubservice/src/ServiceComponent.hpp
  class ServiceComponent (line 31) | class ServiceComponent  : public  Component
    type SessionEtnry (line 39) | struct SessionEtnry
    method ServiceComponent (line 91) | inline ServiceComponent & self (void)
    method ServiceComponent (line 111) | ServiceComponent( void ) = delete;

FILE: examples/24_pubunblock/pubservice/src/main.cpp
  function main (line 56) | int main( )

FILE: examples/25_pubsub/publisher/src/Publisher.cpp
  function String (line 33) | String generateString(uint32_t seqNr)
  function Publisher (line 324) | inline Publisher & Publisher::self(void)

FILE: examples/25_pubsub/publisher/src/Publisher.hpp
  class Publisher (line 41) | class Publisher : public    Component
    type eCommands (line 51) | enum class eCommands : int
    method Publisher (line 174) | Publisher(void) = delete;

FILE: examples/25_pubsub/publisher/src/main.cpp
  function main (line 57) | int main( )

FILE: examples/25_pubsub/subscriber/src/Subscriber.cpp
  function Subscriber (line 173) | inline Subscriber & Subscriber::self(void)

FILE: examples/25_pubsub/subscriber/src/Subscriber.hpp
  class Subscriber (line 30) | class Subscriber: public    Component

FILE: examples/25_pubsub/subscriber/src/main.cpp
  function main (line 61) | int main()

FILE: examples/26_pubsubmix/common/src/NECommon.cpp
  type NECommon (line 4) | namespace NECommon

FILE: examples/26_pubsubmix/common/src/NECommon.hpp
  type NECommon (line 27) | namespace NECommon

FILE: examples/26_pubsubmix/common/src/PubSubMixed.cpp
  function PubSubMixed (line 36) | inline PubSubMixed & PubSubMixed::self(void)

FILE: examples/26_pubsubmix/common/src/PubSubMixed.hpp
  class PubSubMixed (line 27) | class PubSubMixed   : public Component

FILE: examples/26_pubsubmix/common/src/Publisher.cpp
  function String (line 34) | String generateString(uint32_t seqNr)
  function Publisher (line 191) | inline Publisher & Publisher::self(void)

FILE: examples/26_pubsubmix/common/src/Publisher.hpp
  class Publisher (line 39) | class Publisher : protected PubSubMixStub
    method Publisher (line 123) | Publisher(void) = delete;

FILE: examples/26_pubsubmix/common/src/Subscriber.cpp
  function Subscriber (line 215) | inline Subscriber & Subscriber::self(void)

FILE: examples/26_pubsubmix/common/src/Subscriber.hpp
  class Subscriber (line 31) | class Subscriber    : protected PubSubMixClientBase

FILE: examples/26_pubsubmix/pubsubctrl/src/PubSubController.cpp
  function PubSubController (line 167) | inline PubSubController & PubSubController::self(void)

FILE: examples/26_pubsubmix/pubsubctrl/src/PubSubController.hpp
  class PubSubController (line 28) | class PubSubController  : public    Component
    type eCommands (line 37) | enum class eCommands : int
    method PubSubController (line 117) | PubSubController(void) = delete;

FILE: examples/26_pubsubmix/pubsubctrl/src/main.cpp
  function main (line 84) | int main( )

FILE: examples/26_pubsubmix/pubsubdyn/src/main.cpp
  function main (line 84) | int main()

FILE: examples/27_pubsubmulti/publisher/src/Publisher.cpp
  function String (line 33) | String generateString(uint32_t seqNr)
  function Publisher (line 324) | inline Publisher & Publisher::self(void)

FILE: examples/27_pubsubmulti/publisher/src/Publisher.hpp
  class Publisher (line 41) | class Publisher : public    Component
    type eCommands (line 51) | enum class eCommands : int
    method Publisher (line 174) | Publisher(void) = delete;

FILE: examples/27_pubsubmulti/publisher/src/main.cpp
  function main (line 57) | int main( )

FILE: examples/27_pubsubmulti/subscribermulti/src/NECommon.hpp
  type NECommon (line 19) | namespace NECommon

FILE: examples/27_pubsubmulti/subscribermulti/src/Subscriber.cpp
  function Subscriber (line 112) | inline Subscriber & Subscriber::self(void)

FILE: examples/27_pubsubmulti/subscribermulti/src/Subscriber.hpp
  class Subscriber (line 33) | class Subscriber: public    Component

FILE: examples/27_pubsubmulti/subscribermulti/src/SubscriberBase.hpp
  class SubscriberBase (line 22) | class SubscriberBase    : public    PubSubClientBase

FILE: examples/27_pubsubmulti/subscribermulti/src/SubscriberSecond.hpp
  class SubscriberSecond (line 24) | class SubscriberSecond  : public SubscriberBase

FILE: examples/27_pubsubmulti/subscribermulti/src/main.cpp
  function main (line 63) | int main()

FILE: examples/28_stlsync/src/main.cpp
  function workerThread (line 46) | void workerThread()
  function main (line 57) | int main()

FILE: examples/29_syncevent/src/main.cpp
  function WorkerThread (line 49) | void WorkerThread(void)
  function main (line 66) | int main()

FILE: framework/areg/appbase/Application.hpp
  class IEConfigurationListener (line 34) | class IEConfigurationListener
  function Application (line 49) | class AREG_API Application
  function Application (line 492) | inline Application & Application::getInstance( void )

FILE: framework/areg/appbase/NEApplication.hpp
  type NEApplication (line 33) | namespace NEApplication
    type sEntryTypesEnabling (line 192) | struct sEntryTypesEnabling
    type E_AppState (line 328) | enum class E_AppState

FILE: framework/areg/appbase/private/Application.cpp
  function String (line 337) | const String & Application::getApplicationName(void)
  function String (line 342) | const String & Application::getMachineName(void)
  function ConfigManager (line 347) | ConfigManager& Application::getConfigManager(void)

FILE: framework/areg/appbase/private/posix/ApplicationPosix.cpp
  function _getProcIdByName (line 31) | int _getProcIdByName(const char* procName)
  function _getProcIdByName (line 71) | int _getProcIdByName(const char* procName)
  function _handleSignalBrokenPipe (line 120) | void _handleSignalBrokenPipe(int s)
  function _handleSignalSegmentationFault (line 127) | void _handleSignalSegmentationFault(int s)

FILE: framework/areg/base/BufferStreamBase.hpp
  class IECursorPosition (line 29) | class IECursorPosition
  class AREG_API (line 43) | class AREG_API

FILE: framework/areg/base/Containers.hpp
  class Tokenizer (line 45) | class Tokenizer
  class TEIntegerHashMap (line 49) | class TEIntegerHashMap
    method TEIntegerHashMap (line 82) | TEIntegerHashMap( void ) = default;
    method TEIntegerHashMap (line 95) | TEIntegerHashMap( const TEIntegerHashMap<VALUE> & src ) = default;
    method TEIntegerHashMap (line 101) | TEIntegerHashMap( TEIntegerHashMap<VALUE> && src ) noexcept = default;
  class TEStringHashMap (line 51) | class TEStringHashMap
    method TEStringHashMap (line 182) | TEStringHashMap( void ) = default;
    method TEStringHashMap (line 188) | TEStringHashMap( const TEStringHashMap<VALUE> & src ) = default;
    method TEStringHashMap (line 194) | TEStringHashMap( TEStringHashMap<VALUE> && src ) noexcept = default;
  class TEPointerHashMap (line 53) | class TEPointerHashMap
    method TEPointerHashMap (line 227) | TEPointerHashMap( void ) = default;
    method TEPointerHashMap (line 233) | TEPointerHashMap( const TEPointerHashMap<VALUE> & src ) = default;
    method TEPointerHashMap (line 239) | TEPointerHashMap( TEPointerHashMap<VALUE> && src ) noexcept = default;
  class TEIntegerMap (line 57) | class TEIntegerMap
    method TEIntegerMap (line 265) | TEIntegerMap(void) = default;
    method TEIntegerMap (line 271) | TEIntegerMap(const TEIntegerMap<VALUE>& src) = default;
    method TEIntegerMap (line 277) | TEIntegerMap(TEIntegerMap<VALUE>&& src) noexcept = default;
  class TEStringMap (line 59) | class TEStringMap
    method TEStringMap (line 342) | TEStringMap(void) = default;
    method TEStringMap (line 348) | TEStringMap(const TEStringMap<VALUE>& src) = default;
    method TEStringMap (line 354) | TEStringMap(TEStringMap<VALUE>&& src) noexcept = default;
  class TEPointerMap (line 61) | class TEPointerMap
    method TEPointerMap (line 376) | TEPointerMap( void ) = default;
    method TEPointerMap (line 382) | TEPointerMap( const TEPointerMap<VALUE> & src ) = default;
    method TEPointerMap (line 388) | TEPointerMap( TEPointerMap<VALUE> && src ) noexcept = default;
  class TEIntegerHashMap (line 72) | class TEIntegerHashMap  : public TEHashMap<unsigned int, VALUE>
    method TEIntegerHashMap (line 82) | TEIntegerHashMap( void ) = default;
    method TEIntegerHashMap (line 95) | TEIntegerHashMap( const TEIntegerHashMap<VALUE> & src ) = default;
    method TEIntegerHashMap (line 101) | TEIntegerHashMap( TEIntegerHashMap<VALUE> && src ) noexcept = default;
  class TEIdHashMap (line 120) | class TEIdHashMap: public TEHashMap<id_type, VALUE>
    method TEIdHashMap (line 137) | TEIdHashMap( void ) = default;
    method TEIdHashMap (line 143) | TEIdHashMap( const TEIdHashMap<VALUE> & src ) = default;
    method TEIdHashMap (line 149) | TEIdHashMap( TEIdHashMap<VALUE> && src ) noexcept = default;
  class TEStringHashMap (line 165) | class TEStringHashMap: public TEHashMap<String, VALUE>
    method TEStringHashMap (line 182) | TEStringHashMap( void ) = default;
    method TEStringHashMap (line 188) | TEStringHashMap( const TEStringHashMap<VALUE> & src ) = default;
    method TEStringHashMap (line 194) | TEStringHashMap( TEStringHashMap<VALUE> && src ) noexcept = default;
  class TEPointerHashMap (line 211) | class TEPointerHashMap: public TEHashMap<void *, VALUE>
    method TEPointerHashMap (line 227) | TEPointerHashMap( void ) = default;
    method TEPointerHashMap (line 233) | TEPointerHashMap( const TEPointerHashMap<VALUE> & src ) = default;
    method TEPointerHashMap (line 239) | TEPointerHashMap( TEPointerHashMap<VALUE> && src ) noexcept = default;
  class TEIntegerMap (line 256) | class TEIntegerMap : public TEMap<unsigned int, VALUE>
    method TEIntegerMap (line 265) | TEIntegerMap(void) = default;
    method TEIntegerMap (line 271) | TEIntegerMap(const TEIntegerMap<VALUE>& src) = default;
    method TEIntegerMap (line 277) | TEIntegerMap(TEIntegerMap<VALUE>&& src) noexcept = default;
  class TEIdMap (line 296) | class TEIdMap : public TEMap<id_type, VALUE>
    method TEIdMap (line 305) | TEIdMap(void) = default;
    method TEIdMap (line 311) | TEIdMap(const TEIdMap<VALUE>& src) = default;
    method TEIdMap (line 317) | TEIdMap(TEIdMap<VALUE>&& src) noexcept = default;
  class TEStringMap (line 333) | class TEStringMap : public TEMap<String, VALUE>
    method TEStringMap (line 342) | TEStringMap(void) = default;
    method TEStringMap (line 348) | TEStringMap(const TEStringMap<VALUE>& src) = default;
    method TEStringMap (line 354) | TEStringMap(TEStringMap<VALUE>&& src) noexcept = default;
  class TEPointerMap (line 367) | class TEPointerMap: public TEMap<void *, VALUE>
    method TEPointerMap (line 376) | TEPointerMap( void ) = default;
    method TEPointerMap (line 382) | TEPointerMap( const TEPointerMap<VALUE> & src ) = default;
    method TEPointerMap (line 388) | TEPointerMap( TEPointerMap<VALUE> && src ) noexcept = default;
  function Tokenizer (line 526) | class AREG_API Tokenizer
  function StringArray (line 642) | inline const StringArray& Tokenizer::getList(void) const

FILE: framework/areg/base/DateTime.hpp
  type tm (line 33) | struct tm
  function DateTime (line 41) | class AREG_API DateTime
  function TIME64 (line 368) | inline DateTime::operator TIME64 ( void ) const
  function DateTime (line 388) | inline DateTime & DateTime::operator = ( const DateTime & src )
  function DateTime (line 394) | inline DateTime & DateTime::operator = ( DateTime && src ) noexcept
  function TIME64 (line 400) | inline const TIME64 & DateTime::getTime( void ) const
  function IEInStream (line 415) | inline const IEInStream & operator >> ( const IEInStream & stream, DateT...
  function IEOutStream (line 421) | inline IEOutStream & operator << ( IEOutStream & stream, const DateTime ...

FILE: framework/areg/base/File.hpp
  function FileBase (line 38) | class AREG_API File : public FileBase

FILE: framework/areg/base/FileBase.hpp
  class String (line 31) | class String
  class WideString (line 32) | class WideString
  class IEByteBuffer (line 33) | class IEByteBuffer
  class AREG_API (line 90) | class AREG_API
  function FileBase (line 895) | inline FileBase & FileBase::self( void )
  function FileBase (line 900) | inline const FileBase & FileBase::self( void ) const
  function String (line 905) | inline const String & FileBase::getName( void ) const
  function IEInStream (line 1000) | inline const IEInStream& FileBase::getReadStream( void ) const
  function IEOutStream (line 1006) | inline IEOutStream& FileBase::getWriteStream( void )
  function const (line 1022) | inline bool FileBase::readChar( wchar_t & OUT outValue ) const
  function FileBase (line 1092) | inline FileBase & operator << ( FileBase & stream, const char * ascii )
  function FileBase (line 1098) | inline FileBase & operator << ( FileBase & stream, const String & ascii )
  function FileBase (line 1104) | inline FileBase & operator << ( FileBase & stream, const wchar_t * wide )
  function FileBase (line 1110) | inline FileBase & operator << ( FileBase & stream, const WideString & wi...
  function FileBase (line 1116) | inline const FileBase & operator >> ( const FileBase & stream, String & ...
  function FileBase (line 1122) | inline const FileBase & operator >> ( const FileBase & stream, WideStrin...

FILE: framework/areg/base/FileBuffer.hpp
  function FileBuffer (line 41) | class AREG_API FileBuffer   : public    FileBase      // derive all basi...
  function SharedBuffer (line 409) | inline const SharedBuffer & FileBuffer::getSharedBuffer( void ) const
  function IEInStream (line 424) | inline const IEInStream & operator >> ( const IEInStream & stream, FileB...
  function IEOutStream (line 429) | inline IEOutStream & operator << ( IEOutStream & stream, const FileBuffe...

FILE: framework/areg/base/GETypes.h
  type id_type (line 65) | typedef uint64_t    id_type;
  type ptr_type (line 68) | typedef uintptr_t   ptr_type;
  type ptr_type (line 70) | typedef uint64_t    ptr_type;
  type id_type (line 76) | typedef uint32_t    id_type;
  type ptr_type (line 79) | typedef uintptr_t       ptr_type;
  type ptr_type (line 81) | typedef unsigned long   ptr_type;
  type SequenceNumber (line 87) | typedef uint64_t        SequenceNumber;
  type SignedSequence (line 90) | typedef int64_t         SignedSequence;
  type ITEM_ID (line 95) | typedef uint64_t        ITEM_ID;
  type SOCKETHANDLE (line 101) | typedef size_t      SOCKETHANDLE;
  type SOCKETHANDLE (line 103) | typedef int         SOCKETHANDLE;
  type TCOUNT (line 134) | typedef unsigned int	TCOUNT;
  type TIME64 (line 139) | typedef uint64_t        TIME64;
  type msg_id (line 144) | typedef uint32_t        msg_id;

FILE: framework/areg/base/IEByteBuffer.hpp
  function IEByteBuffer (line 36) | class AREG_API IEByteBuffer

FILE: framework/areg/base/IECursorPosition.hpp
  function IECursorPosition (line 32) | class AREG_API IECursorPosition

FILE: framework/areg/base/IEGenericObject.hpp
  class IEGenericObject (line 30) | class IEGenericObject
  class TEObjectFactory (line 31) | class TEObjectFactory
  function IEGenericObject (line 49) | class AREG_API IEGenericObject
  class TEObjectFactory (line 137) | class TEObjectFactory
  function IEGenericObject (line 192) | IEGenericObject* TEObjectFactory<ClassName>::createObject( void * objData )

FILE: framework/areg/base/IEIOStream.hpp
  class IEInStream (line 45) | class IEInStream
  class IEOutStream (line 46) | class IEOutStream
  class IEIOStream (line 47) | class IEIOStream
  class String (line 52) | class String
  class WideString (line 53) | class WideString
  class IEByteBuffer (line 54) | class IEByteBuffer
  function IEOutStream (line 95) | inline IEOutStream& operator << (IEOutStream& stream, const data_type& o...
  function IEInStream (line 124) | class AREG_API IEInStream
  function IEOutStream (line 236) | class AREG_API IEOutStream
  class AREG_API (line 353) | class AREG_API
  function IEOutStream (line 491) | inline IEOutStream & operator << (IEOutStream & stream, const char * out...
  function IEOutStream (line 509) | inline IEOutStream & operator << (IEOutStream & stream, const wchar_t * ...
  function IEOutStream (line 528) | inline IEOutStream& operator << (IEOutStream& stream, const std::basic_s...
  function IEOutStream (line 536) | inline IEOutStream& operator << (IEOutStream& stream, const std::basic_s...
  function IEInStream (line 544) | inline const IEInStream& operator >> (const IEInStream& stream, std::bas...
  function IEOutStream (line 560) | inline IEOutStream& operator << (IEOutStream& stream, const std::deque<E...
  function IEInStream (line 572) | inline const IEInStream& operator >> (const IEInStream& stream, std::deq...
  function IEOutStream (line 588) | inline IEOutStream& operator << (IEOutStream& stream, const std::list<El...
  function IEInStream (line 600) | inline const IEInStream& operator >> (const IEInStream& stream, std::lis...
  function IEOutStream (line 616) | inline IEOutStream& operator << (IEOutStream& stream, const std::vector<...
  function IEInStream (line 628) | inline const IEInStream& operator >> (const IEInStream& stream, std::vec...
  function IEOutStream (line 644) | inline IEOutStream& operator << (IEOutStream& stream, const std::pair<Ke...
  function IEInStream (line 652) | inline const IEInStream& operator >> (const IEInStream& stream, std::pai...
  function IEOutStream (line 660) | inline IEOutStream& operator << (IEOutStream& stream, const std::map<Key...
  function IEInStream (line 672) | inline const IEInStream& operator >> (const IEInStream& stream, std::map...
  function IEOutStream (line 689) | inline IEOutStream& operator << (IEOutStream& stream, const std::unorder...
  function IEInStream (line 701) | inline const IEInStream& operator >> (const IEInStream& stream, std::uno...

FILE: framework/areg/base/IESyncObject.hpp
  function IESyncObject (line 31) | class AREG_API IESyncObject
  function SYNCHANDLE (line 163) | inline IESyncObject::operator SYNCHANDLE ( void )
  function SYNCHANDLE (line 168) | inline SYNCHANDLE IESyncObject::getHandle( void ) const

FILE: framework/areg/base/IEThreadConsumer.hpp
  class Thread (line 26) | class Thread
  function IEThreadConsumer (line 41) | class AREG_API IEThreadConsumer

FILE: framework/areg/base/Identifier.hpp
  function Identifier (line 39) | class AREG_API Identifier
  function String (line 250) | inline const String& Identifier::convToString(unsigned int idValue, cons...
  function String (line 319) | inline const String & Identifier::getName( void ) const
  function IEInStream (line 333) | inline const IEInStream& operator >> (const IEInStream& stream, Identifi...
  function IEOutStream (line 340) | inline IEOutStream & operator << (IEOutStream& stream, const Identifier&...

FILE: framework/areg/base/NECommon.hpp
  type NECommon (line 27) | namespace NECommon
    type eRingOverlap (line 47) | enum class eRingOverlap : uint8_t
    type eSort (line 58) | enum class eSort   : uint8_t
    type eIndex (line 68) | enum class eIndex  : ElemPos
    type E_Cookies (line 490) | enum class E_Cookies : ITEM_ID

FILE: framework/areg/base/NEMath.hpp
  type NEMath (line 28) | namespace NEMath
    type E_DigitSign (line 38) | enum class E_DigitSign : int8_t
    type E_CompareResult (line 56) | enum class E_CompareResult : int8_t
    type S_Rect (line 68) | struct S_Rect
    type S_Size (line 80) | struct S_Size
    type S_Point (line 90) | struct S_Point
    type S_Coord (line 100) | struct S_Coord
    type _name (line 136) | struct _name
    function sLargeInteger (line 150) | struct AREG_API sLargeInteger
  function Type (line 509) | inline Type & NEMath::getMin( const Type & a, const Type & b )
  function Type (line 515) | inline const Type & NEMath::getMax( const Type & a, const Type & b )
  function Type (line 521) | inline Type NEMath::getAbs( const Type & val )
  function Digit (line 533) | inline Digit NEMath::makeAbsolute( Digit number )
  function uint64_t (line 608) | inline NEMath::sLargeInteger::operator uint64_t ( void ) const

FILE: framework/areg/base/NEMemory.hpp
  type NEMemory (line 146) | namespace NEMemory
    class _EmptyClass (line 152) | class _EmptyClass
    type TEAlign (line 170) | struct TEAlign
    type eMessageResult (line 215) | enum class eMessageResult : int32_t
    type eBufferType (line 233) | enum class eBufferType : int8_t
    type S_BuferHeaderInfo (line 307) | struct S_BuferHeaderInfo
    type S_RemoteMessageHeader (line 342) | struct S_RemoteMessageHeader
    type S_ByteBuffer (line 386) | struct S_ByteBuffer
    type S_RemoteMessage (line 409) | struct S_RemoteMessage
    type BufferAllocator (line 654) | struct BufferAllocator
    type BufferDeleter (line 666) | struct BufferDeleter
  function IEInStream (line 692) | inline const IEInStream & operator >> (const IEInStream & stream, NEMemo...
  function IEOutStream (line 705) | inline IEOutStream & operator << (IEOutStream & stream, const NEMemory::...
  function ELEM_TYPE (line 830) | inline ELEM_TYPE * NEMemory::constructElems(void *begin, uint32_t elemCo...
  function ELEM_TYPE (line 852) | inline ELEM_TYPE * NEMemory::constructElemsWithArgument(void *begin, uin...
  function BufType (line 978) | BufType* NEMemory::BufferAllocator<BufType>::operator ( ) (uint32_t space)

FILE: framework/areg/base/NESocket.hpp
  type sockaddr_in (line 29) | struct sockaddr_in
  type NESocket (line 45) | namespace NESocket
    function SocketAddress (line 55) | class AREG_API SocketAddress
    function UserData (line 219) | class AREG_API UserData
    type sockaddr_in (line 635) | struct sockaddr_in
    type sockaddr_in (line 642) | struct sockaddr_in
  function String (line 655) | inline const String & NESocket::SocketAddress::getHostAddress( void ) const
  function String (line 660) | inline const String& NESocket::SocketAddress::getHostName(void) const

FILE: framework/areg/base/NEString.hpp
  type NEString (line 34) | namespace NEString
    type E_CharDefs (line 49) | enum E_CharDefs   : uint16_t
    type E_Radix (line 147) | enum class E_Radix : int8_t
  function CharType (line 1121) | const CharType * NEString::getLine( CharType * strSource, NEString::Char...
  function CharType (line 1157) | const CharType * NEString::getPrintable( CharType * strSource, NEString:...
  function CharType (line 1579) | CharType * NEString::removeChar(const CharType chRemove, CharType* strSo...
  function CharType (line 1950) | inline CharType NEString::makeLower(CharType ch)
  function CharType (line 1957) | inline const CharType* NEString::makeLower(CharType* source)
  function CharType (line 1973) | inline CharType NEString::makeUpper(CharType ch)
  function CharType (line 1980) | inline const CharType* NEString::makeUpper(CharType* source)

FILE: framework/areg/base/NEUtilities.hpp
  class String (line 32) | class String
  class IEInStream (line 33) | class IEInStream
  class IEOutStream (line 34) | class IEOutStream
  type tm (line 36) | struct tm
  type NEUtilities (line 46) | namespace   NEUtilities
    type S_SystemTime (line 320) | struct S_SystemTime
    type tm (line 376) | struct tm
    type tm (line 423) | struct tm
    type tm (line 431) | struct tm
    type tm (line 438) | struct tm
    type tm (line 445) | struct tm
    type tm (line 474) | struct tm
    function Duration (line 604) | class AREG_API Duration
  function time_t (line 729) | time_t NEUtilities::convToSeconds(const TIME64& microsecs)
  function TIME64 (line 744) | inline TIME64 NEUtilities::Duration::start( void )
  function TIME64 (line 752) | inline TIME64 NEUtilities::Duration::stop( void )
  function TIME64 (line 762) | inline TIME64 NEUtilities::Duration::getStart( void ) const
  function TIME64 (line 767) | inline TIME64 NEUtilities::Duration::getStop( void ) const
  function ToPtr (line 805) | inline constexpr ToPtr NEUtilities::convToPtr( FromType ptrValue )
  function ToNum (line 818) | inline constexpr ToNum NEUtilities::convToNum(FromType value)

FILE: framework/areg/base/Object.hpp
  function IEGenericObject (line 35) | class AREG_API Object  : public IEGenericObject
  type std (line 251) | namespace std
    type hash<Object> (line 254) | struct hash<Object>

FILE: framework/areg/base/Process.hpp
  function Process (line 38) | class AREG_API Process
  function String (line 223) | inline const String & Process::getAppName( void ) const
  function String (line 228) | inline const String & Process::getName(void) const
  function String (line 233) | inline const String & Process::getExtension(void) const
  function String (line 238) | inline const String & Process::getPath(void) const
  function String (line 243) | inline const String & Process::getFullPath(void) const
  function id_type (line 248) | inline id_type Process::getId(void) const

FILE: framework/areg/base/RemoteMessage.hpp
  function SharedBuffer (line 35) | class AREG_API RemoteMessage  : public    SharedBuffer
  function ITEM_ID (line 325) | inline const ITEM_ID & RemoteMessage::getSource( void ) const
  function ITEM_ID (line 338) | inline const ITEM_ID & RemoteMessage::getTarget( void ) const
  function SequenceNumber (line 377) | inline const SequenceNumber & RemoteMessage::getSequenceNr(void) const
  function IEInStream (line 394) | inline const IEInStream & operator >> (const IEInStream & stream, Remote...
  function IEOutStream (line 405) | inline IEOutStream & operator << (IEOutStream & stream, const RemoteMess...

FILE: framework/areg/base/RuntimeClassID.hpp
  function RuntimeClassID (line 43) | class AREG_API RuntimeClassID
  type std (line 252) | namespace std
    type hash<RuntimeClassID> (line 255) | struct hash<RuntimeClassID>
  function RuntimeClassID (line 269) | inline RuntimeClassID RuntimeClassID::createEmptyClassID( void )
  function RuntimeClassID (line 274) | inline RuntimeClassID & RuntimeClassID::operator = ( const RuntimeClassI...
  function RuntimeClassID (line 282) | inline RuntimeClassID & RuntimeClassID::operator = ( RuntimeClassID && s...
  function RuntimeClassID (line 290) | inline RuntimeClassID & RuntimeClassID::operator = ( const char * src )
  function RuntimeClassID (line 296) | inline RuntimeClassID & RuntimeClassID::operator = ( const String & src )
  function String (line 342) | inline const String & RuntimeClassID::getName( void ) const

FILE: framework/areg/base/RuntimeObject.hpp
  function RuntimeClassID (line 119) | const RuntimeClassID & ClassName::getRuntimeClassId( void ) const       ...
  function String (line 122) | const String& ClassName::getRuntimeClassName( void ) const              ...
  function Template (line 156) | Template const RuntimeClassID& ClassName::getRuntimeClassId( void ) cons...
  function Template (line 159) | Template const String & ClassName::getRuntimeClassName( void ) const    ...
  function Template (line 165) | Template bool ClassName::isInstanceOfRuntimeClass( const RuntimeClassID ...
  function Template (line 168) | Template bool ClassName::isInstanceOfRuntimeClass( const char * classNam...
  function Template (line 170) | Template bool ClassName::isInstanceOfRuntimeClass( const String & classN...
  function Template (line 173) | Template bool ClassName::isInstanceOfRuntimeClass( unsigned int classMag...
  class AREG_API (line 223) | class AREG_API
  function RuntimeObject (line 342) | inline const RuntimeObject* RuntimeObject::runtimeCast( const RuntimeCla...
  function RuntimeObject (line 347) | inline const RuntimeObject* RuntimeObject::runtimeCast( const char* clas...
  function RuntimeObject (line 352) | inline const RuntimeObject* RuntimeObject::runtimeCast(const String & cl...
  function RuntimeObject (line 357) | inline const RuntimeObject* RuntimeObject::runtimeCast( unsigned int cla...
  function RuntimeObject (line 362) | inline const RuntimeObject* RuntimeCast(const RuntimeObject * ptr, const...
  function RuntimeObject (line 367) | inline const RuntimeObject* RuntimeCast(const RuntimeObject * ptr, const...
  function RuntimeObject (line 372) | inline const RuntimeObject* RuntimeCast(const RuntimeObject* ptr, const ...
  function RuntimeObject (line 377) | inline const RuntimeObject* RuntimeCast(const RuntimeObject* ptr, unsign...

FILE: framework/areg/base/SharedBuffer.hpp
  class AREG_API (line 57) | class AREG_API
  function IEInStream (line 367) | inline const IEInStream & operator >> (const IEInStream & stream, Shared...
  function IEOutStream (line 378) | inline IEOutStream & operator << (IEOutStream & stream, const SharedBuff...

FILE: framework/areg/base/Socket.hpp
  class RemoteMessage (line 31) | class RemoteMessage
  function Socket (line 47) | class AREG_API Socket
  function SOCKETHANDLE (line 339) | inline SOCKETHANDLE Socket::getHandle( void ) const

FILE: framework/areg/base/SocketAccepted.hpp
  function SocketAccepted (line 33) | class AREG_API SocketAccepted : public    Socket

FILE: framework/areg/base/SocketClient.hpp
  function SocketClient (line 35) | class AREG_API SocketClient   : public    Socket

FILE: framework/areg/base/SocketServer.hpp
  class SocketAccepted (line 27) | class SocketAccepted
  function SocketServer (line 46) | class AREG_API SocketServer   : public    Socket

FILE: framework/areg/base/String.hpp
  class IEInStream (line 32) | class IEInStream
  class IEOutStream (line 33) | class IEOutStream
  class WideString (line 34) | class WideString
  class AREG_API (line 50) | class AREG_API
  function String (line 91) | String(const String& source) = default;
  function String (line 97) | String(String&& source) noexcept = default;
  type std (line 693) | namespace std
    type hash<String> (line 696) | struct hash<String>
  function String (line 768) | inline String& String::operator = (const wchar_t* src)
  function String (line 774) | inline String& String::operator = (const wchar_t src)
  function String (line 780) | inline String& String::operator = (const String& src)
  function String (line 786) | inline String& String::operator = (const std::string& src)
  function String (line 792) | inline String& String::operator = (const std::wstring& src)
  function String (line 798) | inline String& String::operator = (const std::string_view& src)
  function String (line 804) | inline String& String::operator = (const char* src)
  function String (line 810) | inline String& String::operator = (String&& src) noexcept
  function String (line 816) | inline String& String::operator = (std::string&& src) noexcept
  function String (line 822) | inline String& String::operator = (const char src)
  function String (line 878) | inline String& String::operator += (const String& src)
  function String (line 884) | inline String& String::operator += (const std::string& src)
  function String (line 890) | inline String& String::operator += (const std::string_view& src)
  function String (line 896) | inline String& String::operator += (const char* src)
  function String (line 902) | inline String& String::operator += (const char chSource)
  function String (line 908) | inline String& String::operator += (const wchar_t* src)
  function String (line 914) | String& String::operator += (const wchar_t chSource)
  function String (line 920) | inline String& String::operator += (const std::wstring& src)
  function String (line 926) | inline String operator + (const String& lhs, const String& rhs)
  function String (line 933) | inline String operator + (const String& lhs, const std::string& rhs)
  function String (line 940) | inline String operator + (const String& lhs, const std::string_view& rhs)
  function String (line 947) | inline String operator + (const String& lhs, const char* rhs)
  function String (line 954) | inline String operator + (const String& lhs, const char rhs)
  function String (line 961) | inline String operator + (const std::string& lhs, const String& rhs)
  function String (line 968) | inline String operator + (const std::string_view& lhs, const String& rhs)
  function String (line 975) | inline String operator + (const char* lhs, const String& rhs)
  function String (line 982) | inline String operator + (const char lhs, const String& rhs)
  function String (line 989) | inline String operator + (const String& lhs, const wchar_t* rhs)
  function String (line 996) | inline String operator + (const wchar_t* lhs, const String& rhs)
  function IEInStream (line 1003) | inline const IEInStream& operator >> (const IEInStream& stream, String& ...
  function IEOutStream (line 1009) | inline IEOutStream& operator << (IEOutStream& stream, const String& output)
  function String (line 1050) | inline String & String::fromInt32( int32_t value, NEString::eRadix radix...
  function String (line 1056) | inline String & String::fromUInt32( uint32_t value, NEString::eRadix rad...
  function String (line 1062) | inline String & String::fromInt64( int64_t value, NEString::eRadix radix...
  function String (line 1068) | inline String & String::fromUInt64( uint64_t value, NEString::eRadix rad...
  function String (line 1074) | inline String & String::fromFloat( float value )
  function String (line 1080) | inline String & String::fromDouble( double value )
  function String (line 1086) | inline String & String::fromBool( bool value )
  function String (line 1092) | inline String& String::assign(const char* source, NEString::CharCount co...
  function String (line 1098) | inline String& String::assign(const std::string& source, NEString::CharP...
  function String (line 1104) | inline String& String::assign(const std::string_view& source, NEString::...
  function String (line 1110) | inline String& String::assign(const String& source, NEString::CharPos po...
  function String (line 1116) | inline String & String::assign(const char ch)
  function String (line 1122) | inline String& String::append(const char* source, NEString::CharCount co...
  function String (line 1128) | inline String& String::append(const std::string& source, NEString::CharP...
  function String (line 1134) | inline String& String::append(const std::string_view& source, NEString::...
  function String (line 1140) | inline String& String::append(const String& source, NEString::CharPos po...
  function String (line 1146) | inline String & String::append(const char ch)

FILE: framework/areg/base/SyncObjects.hpp
  class IEResourceLock (line 59) | class IEResourceLock
  class Mutex (line 60) | class Mutex
  class Semaphore (line 61) | class Semaphore
  class CriticalSection (line 62) | class CriticalSection
  class SpinLock (line 63) | class SpinLock
  class ResourceLock (line 64) | class ResourceLock
  class NolockSyncObject (line 65) | class NolockSyncObject
  class SyncEvent (line 66) | class SyncEvent
  class SyncTimer (line 67) | class SyncTimer
  class Lock (line 69) | class Lock
  class MultiLock (line 70) | class MultiLock
  class Wait (line 71) | class Wait
  function IEResourceLock (line 76) | class AREG_API IEResourceLock   : public IESyncObject
  function IEResourceLock (line 129) | class AREG_API Mutex   : public IEResourceLock
  function IESyncObject (line 269) | class AREG_API SyncEvent  : public IESyncObject
  function IEResourceLock (line 421) | class AREG_API Semaphore: public IEResourceLock
  function CriticalSection (line 572) | class AREG_API CriticalSection  : public IEResourceLock
  function IEResourceLock (line 684) | class AREG_API SpinLock: public IEResourceLock
  function IEResourceLock (line 773) | class AREG_API ResourceLock : public    IEResourceLock
  function NolockSyncObject (line 879) | class AREG_API NolockSyncObject   : public IEResourceLock
  function IESyncObject (line 950) | class AREG_API SyncTimer: public IESyncObject
  function Lock (line 1138) | class AREG_API Lock
  function MultiLock (line 1224) | class AREG_API MultiLock
  function Wait (line 1391) | class AREG_API Wait
  function id_type (line 1587) | inline id_type Mutex::getOwnerThreadId( void ) const

FILE: framework/areg/base/TEArrayList.hpp
  class TEArrayList (line 56) | class TEArrayList   : private Constless<std::vector<VALUE>>
  function VALUE (line 564) | inline VALUE& TEArrayList< VALUE >::operator [] (uint32_t index)
  function VALUE (line 571) | inline const VALUE & TEArrayList< VALUE >::operator [] (uint32_t index) ...
  function VALUE (line 683) | inline const VALUE & TEArrayList< VALUE >::getAt(uint32_t index) const
  function VALUE (line 690) | inline VALUE& TEArrayList< VALUE >::getAt(uint32_t index)
  function VALUE (line 737) | inline const VALUE & TEArrayList< VALUE >::valueAtPosition( const uint32...
  function VALUE (line 744) | inline VALUE& TEArrayList< VALUE >::valueAtPosition( uint32_t atPosition )
  function VALUE (line 751) | inline const VALUE* TEArrayList< VALUE >::getValues( void ) const
  function VALUE (line 962) | inline VALUE TEArrayList< VALUE >::removePosition(uint32_t index)
  function VALUE (line 1060) | inline const VALUE & TEArrayList<VALUE>::firstEntry( void ) const
  function VALUE (line 1067) | inline VALUE & TEArrayList<VALUE>::firstEntry( void )
  function VALUE (line 1074) | inline const VALUE & TEArrayList<VALUE>::lastEntry( void ) const
  function VALUE (line 1081) | inline VALUE & TEArrayList<VALUE>::lastEntry( void )
  function IEInStream (line 1132) | const IEInStream & operator >> ( const IEInStream & stream, TEArrayList<...
  function IEOutStream (line 1147) | IEOutStream & operator << ( IEOutStream& stream, const TEArrayList< V >&...

FILE: framework/areg/base/TEFixedArray.hpp
  class TEFixedArray (line 71) | class TEFixedArray
  function VALUE (line 383) | inline VALUE& TEFixedArray<VALUE>::operator [] (uint32_t index)
  function VALUE (line 390) | inline const VALUE& TEFixedArray<VALUE>::operator [] (uint32_t index) const
  function VALUE (line 461) | inline const VALUE& TEFixedArray<VALUE>::getAt(uint32_t index ) const
  function VALUE (line 468) | inline VALUE & TEFixedArray<VALUE>::getAt(uint32_t index )
  function VALUE (line 489) | inline const VALUE & TEFixedArray< VALUE >::valueAtPosition( const uint3...
  function VALUE (line 496) | inline VALUE& TEFixedArray< VALUE >::valueAtPosition( uint32_t atPosition )
  function VALUE (line 503) | inline const VALUE* TEFixedArray<VALUE>::getValues( void ) const
  function VALUE (line 569) | inline const VALUE & TEFixedArray<VALUE>::firstEntry( void ) const
  function VALUE (line 576) | inline VALUE & TEFixedArray<VALUE>::firstEntry( void )
  function VALUE (line 583) | inline const VALUE & TEFixedArray<VALUE>::lastEntry( void ) const
  function VALUE (line 590) | inline VALUE & TEFixedArray<VALUE>::lastEntry( void )
  function IEInStream (line 625) | const IEInStream & operator >> ( const IEInStream & stream, TEFixedArray...
  function IEOutStream (line 641) | IEOutStream & operator << ( IEOutStream & stream, const TEFixedArray<V> ...

FILE: framework/areg/base/TEHashMap.hpp
  class TEHashMap (line 79) | class TEHashMap : protected Constless<std::unordered_map<KEY, VALUE>>
    method TEHashMap (line 103) | TEHashMap( const TEHashMap<KEY, VALUE> & src ) = default;
    method TEHashMap (line 109) | TEHashMap( TEHashMap<KEY, VALUE> && src ) noexcept = default;
  function VALUE (line 584) | inline VALUE & TEHashMap<KEY, VALUE>::operator [] (const KEY& Key)
  function VALUE (line 590) | inline const VALUE & TEHashMap<KEY, VALUE>::operator [] ( const KEY & Ke...
  function VALUE (line 697) | inline VALUE & TEHashMap<KEY, VALUE>::getAt( const KEY & Key )
  function VALUE (line 703) | inline const VALUE & TEHashMap<KEY, VALUE>::getAt(const KEY & Key) const
  function KEY (line 940) | inline const KEY & TEHashMap<KEY, VALUE>::keyAtPosition(const TEHashMap<...
  function KEY (line 947) | inline KEY& TEHashMap<KEY, VALUE>::keyAtPosition(TEHashMap<KEY, VALUE>::...
  function VALUE (line 954) | inline const VALUE & TEHashMap<KEY, VALUE>::valueAtPosition(const TEHash...
  function VALUE (line 961) | inline VALUE& TEHashMap<KEY, VALUE>::valueAtPosition(TEHashMap<KEY, VALU...
  function IEInStream (line 1015) | inline const IEInStream & operator >> ( const IEInStream & stream, TEHas...
  function IEOutStream (line 1035) | inline IEOutStream & operator << ( IEOutStream & stream, const TEHashMap...

FILE: framework/areg/base/TELinkedList.hpp
  class TELinkedList (line 51) | class TELinkedList  : private Constless<std::list<VALUE>>
    method TELinkedList (line 66) | TELinkedList( void ) = default;
    method TELinkedList (line 72) | TELinkedList( const TELinkedList<VALUE> & src ) = default;
    method TELinkedList (line 78) | TELinkedList( TELinkedList<VALUE> && src ) noexcept = default;
  function VALUE (line 685) | inline VALUE & TELinkedList<VALUE>::operator [](uint32_t atIndex )
  function VALUE (line 691) | inline VALUE & TELinkedList<VALUE>::operator []( LISTPOS atPosition )
  function VALUE (line 697) | inline const VALUE & TELinkedList<VALUE>::operator [](uint32_t atIndex )...
  function VALUE (line 703) | inline const VALUE & TELinkedList<VALUE>::operator [] ( const LISTPOS at...
  function VALUE (line 791) | inline const VALUE & TELinkedList<VALUE>::firstEntry( void ) const
  function VALUE (line 798) | inline VALUE& TELinkedList<VALUE>::firstEntry(void)
  function VALUE (line 805) | inline const VALUE & TELinkedList<VALUE>::lastEntry( void ) const
  function VALUE (line 812) | inline VALUE& TELinkedList<VALUE>::lastEntry(void)
  function VALUE (line 819) | inline const VALUE & TELinkedList<VALUE>::getNext(LISTPOS& IN OUT in_out...
  function VALUE (line 825) | inline VALUE& TELinkedList<VALUE>::getNext(LISTPOS& IN OUT in_out_NextPo...
  function VALUE (line 839) | inline const VALUE & TELinkedList<VALUE>::getPrev(LISTPOS& IN OUT in_out...
  function VALUE (line 848) | inline VALUE & TELinkedList<VALUE>::getPrev(LISTPOS& IN OUT in_out_PrevP...
  function VALUE (line 864) | inline const VALUE & TELinkedList<VALUE>::valueAtPosition( const LISTPOS...
  function VALUE (line 871) | inline VALUE & TELinkedList<VALUE>::valueAtPosition(LISTPOS atPosition)
  function VALUE (line 878) | inline const VALUE & TELinkedList<VALUE>::getAt(uint32_t index) const
  function VALUE (line 887) | inline VALUE & TELinkedList<VALUE>::getAt(uint32_t index)
  function VALUE (line 896) | inline const VALUE& TELinkedList<VALUE>::getAt(const LISTPOS atPosition)...
  function VALUE (line 902) | inline VALUE& TELinkedList<VALUE>::getAt(LISTPOS atPosition)
  function const (line 908) | inline bool TELinkedList<VALUE>::nextEntry(LISTPOS & IN OUT in_out_NextP...
  function const (line 923) | inline bool TELinkedList<VALUE>::prevEntry(LISTPOS& IN OUT in_out_PrevPo...
  function VALUE (line 1077) | inline VALUE TELinkedList<VALUE>::popFirst(void)
  function VALUE (line 1086) | inline VALUE TELinkedList<VALUE>::popLast(void)
  function IEInStream (line 1308) | inline const IEInStream & operator >> ( const IEInStream & stream, TELin...
  function IEOutStream (line 1324) | inline IEOutStream & operator << ( IEOutStream & stream, const TELinkedL...

FILE: framework/areg/base/TEMap.hpp
  class TEMap (line 72) | class TEMap : protected Constless< std::map<KEY, VALUE> >
    method TEMap (line 90) | TEMap( void ) = default;
    method TEMap (line 101) | TEMap( const TEMap<KEY, VALUE> & src ) = default;
    method TEMap (line 107) | TEMap( TEMap<KEY, VALUE> && src ) noexcept = default;
  function VALUE (line 564) | inline VALUE & TEMap<KEY, VALUE>::operator [] (const KEY& Key)
  function VALUE (line 570) | inline const VALUE & TEMap<KEY, VALUE>::operator [] ( const KEY & Key ) ...
  function VALUE (line 897) | inline VALUE & TEMap<KEY, VALUE>::getAt( const KEY & Key )
  function VALUE (line 903) | inline const VALUE & TEMap<KEY, VALUE>::getAt(const KEY & Key) const
  function KEY (line 923) | inline const KEY & TEMap<KEY, VALUE>::keyAtPosition(const TEMap<KEY, VAL...
  function KEY (line 930) | inline KEY& TEMap<KEY, VALUE>::keyAtPosition(TEMap<KEY, VALUE>::MAPPOS a...
  function VALUE (line 937) | inline const VALUE & TEMap<KEY, VALUE>::valueAtPosition(const TEMap<KEY,...
  function VALUE (line 944) | inline VALUE& TEMap<KEY, VALUE>::valueAtPosition(TEMap<KEY, VALUE>::MAPP...
  function IEInStream (line 992) | inline const IEInStream & operator >> ( const IEInStream & stream, TEMap...
  function IEOutStream (line 1010) | inline IEOutStream & operator << ( IEOutStream & stream, const TEMap<K, ...

FILE: framework/areg/base/TEProperty.hpp
  class TEProperty (line 31) | class TEProperty
    method TEProperty (line 40) | TEProperty( void ) = default;
    method TEProperty (line 41) | TEProperty(const TEProperty<KEY, VALUE>& src) = default;
    method TEProperty (line 42) | TEProperty(TEProperty<KEY, VALUE>&& src)  noexcept = default;
  function KEY (line 233) | inline const KEY& TEProperty<KEY, VALUE>::getKey(void) const
  function KEY (line 239) | inline KEY& TEProperty<KEY, VALUE>::getKey(void)
  function VALUE (line 257) | inline const VALUE& TEProperty<KEY, VALUE>::getValue(void) const
  function VALUE (line 263) | inline VALUE& TEProperty<KEY, VALUE>::getValue(void)
  function IEInStream (line 273) | inline const IEInStream& operator >> (const IEInStream& stream, TEProper...
  function IEOutStream (line 283) | inline IEOutStream& operator << (IEOutStream& stream, const TEProperty<K...

FILE: framework/areg/base/TEResourceListMap.hpp
  class TEResourceListMap (line 34) | class TEResourceListMap
    method TEResourceListMap (line 263) | TEResourceListMap( void ) = delete;
    method TEResourceListMap (line 264) | TEResourceListMap( const TEResourceListMap<RESOURCE_KEY, RESOURCE_OBJE...
    method TEResourceListMap (line 266) | TEResourceListMap( TEResourceListMap<RESOURCE_KEY, RESOURCE_OBJECT, Re...
  class TELockResourceListMap (line 35) | class TELockResourceListMap
  class TENolockResourceListMap (line 36) | class TENolockResourceListMap
  class TEResourceListMap (line 83) | class TEResourceListMap : protected HashMap
    method TEResourceListMap (line 263) | TEResourceListMap( void ) = delete;
    method TEResourceListMap (line 264) | TEResourceListMap( const TEResourceListMap<RESOURCE_KEY, RESOURCE_OBJE...
    method TEResourceListMap (line 266) | TEResourceListMap( TEResourceListMap<RESOURCE_KEY, RESOURCE_OBJECT, Re...
  class TENolockResourceListMap (line 292) | class TENolockResourceListMap  : public TEResourceListMap<RESOURCE_KEY, ...
  class TELockResourceListMap (line 344) | class TELockResourceListMap    : public TEResourceListMap<RESOURCE_KEY, ...
  function ResourceList (line 475) | inline ResourceList & TEResourceListMap<RESOURCE_KEY, RESOURCE_OBJECT, R...
  function ResourceList (line 487) | inline ResourceList TEResourceListMap<RESOURCE_KEY, RESOURCE_OBJECT, Res...
  function ResourceList (line 501) | inline ResourceList * TEResourceListMap<RESOURCE_KEY, RESOURCE_OBJECT, R...
  function ResourceList (line 514) | inline const ResourceList * TEResourceListMap<RESOURCE_KEY, RESOURCE_OBJ...
  function ResourceList (line 527) | inline ResourceList * TEResourceListMap<RESOURCE_KEY, RESOURCE_OBJECT, R...
  function ResourceList (line 540) | inline const ResourceList * TEResourceListMap<RESOURCE_KEY, RESOURCE_OBJ...

FILE: framework/areg/base/TEResourceMap.hpp
  class TEResourceMap (line 32) | class TEResourceMap
    method TEResourceMap (line 249) | TEResourceMap( void ) = delete;
    method TEResourceMap (line 250) | TEResourceMap( const TEResourceMap<RESOURCE_KEY, RESOURCE_OBJECT, Hash...
    method TEResourceMap (line 252) | TEResourceMap( TEResourceMap<RESOURCE_KEY, RESOURCE_OBJECT, HashMap, D...
  class TELockResourceMap (line 33) | class TELockResourceMap
  class TENolockResourceMap (line 34) | class TENolockResourceMap
  class TEResourceMap (line 78) | class TEResourceMap     : protected HashMap
    method TEResourceMap (line 249) | TEResourceMap( void ) = delete;
    method TEResourceMap (line 250) | TEResourceMap( const TEResourceMap<RESOURCE_KEY, RESOURCE_OBJECT, Hash...
    method TEResourceMap (line 252) | TEResourceMap( TEResourceMap<RESOURCE_KEY, RESOURCE_OBJECT, HashMap, D...
  class TELockResourceMap (line 273) | class TELockResourceMap    : public TEResourceMap<RESOURCE_KEY, RESOURCE...
  class TENolockResourceMap (line 320) | class TENolockResourceMap  : public TEResourceMap<RESOURCE_KEY, RESOURCE...
  function RESOURCE_OBJECT (line 375) | inline RESOURCE_OBJECT TEResourceMap<RESOURCE_KEY, RESOURCE_OBJECT, Hash...
  function RESOURCE_OBJECT (line 385) | inline RESOURCE_OBJECT TEResourceMap<RESOURCE_KEY, RESOURCE_OBJECT, Hash...
  function RESOURCE_OBJECT (line 487) | inline RESOURCE_OBJECT TEResourceMap<RESOURCE_KEY, RESOURCE_OBJECT, Hash...
  function RESOURCE_OBJECT (line 502) | inline RESOURCE_OBJECT TEResourceMap<RESOURCE_KEY, RESOURCE_OBJECT, Hash...

FILE: framework/areg/base/TERingStack.hpp
  class TERingStack (line 35) | class TERingStack
    method TERingStack (line 447) | TERingStack( void ) = delete;
    method TERingStack (line 448) | TERingStack( const TERingStack<VALUE> & /*src*/ ) = delete;
    method TERingStack (line 449) | TERingStack( TERingStack<VALUE> && /*src*/ ) noexcept = delete;
  class TELockRingStack (line 36) | class TELockRingStack
  class TENolockRingStack (line 37) | class TENolockRingStack
  class TERingStack (line 67) | class TERingStack
    method TERingStack (line 447) | TERingStack( void ) = delete;
    method TERingStack (line 448) | TERingStack( const TERingStack<VALUE> & /*src*/ ) = delete;
    method TERingStack (line 449) | TERingStack( TERingStack<VALUE> && /*src*/ ) noexcept = delete;
  class TELockRingStack (line 466) | class TELockRingStack  : public TERingStack<VALUE>
  class TENolockRingStack (line 558) | class TENolockRingStack    : public TERingStack<VALUE>
  function VALUE (line 744) | const VALUE& TERingStack<VALUE>::operator [] (uint32_t index) const
  function VALUE (line 750) | VALUE& TERingStack<VALUE>::operator [] (uint32_t index)
  function VALUE (line 809) | const VALUE& TERingStack<VALUE>::getAt(uint32_t index) const
  function VALUE (line 819) | VALUE& TERingStack<VALUE>::getAt(uint32_t index)
  function VALUE (line 964) | VALUE TERingStack<VALUE>::pop( void )
  function IEInStream (line 1357) | const IEInStream & operator >> ( const IEInStream & stream, TERingStack<...
  function IEOutStream (line 1382) | IEOutStream & operator << ( IEOutStream & stream, const TERingStack<V> &...

FILE: framework/areg/base/TERuntimeResourceMap.hpp
  class TERuntimeHashMap (line 38) | class TERuntimeHashMap
    method TERuntimeHashMap (line 64) | TERuntimeHashMap( void ) = default;
    method TERuntimeHashMap (line 74) | TERuntimeHashMap(const TERuntimeHashMap<RUNTIME_DELEGATE> & /*src*/) =...
    method TERuntimeHashMap (line 76) | TERuntimeHashMap( TERuntimeHashMap<RUNTIME_DELEGATE> && /*src*/ ) noex...
  class TERuntimeResourceMap (line 40) | class TERuntimeResourceMap
    method TERuntimeResourceMap (line 117) | TERuntimeResourceMap( void ) = delete;
    method TERuntimeResourceMap (line 118) | TERuntimeResourceMap(const TERuntimeResourceMap<RUNTIME_DELEGATE, Dele...
    method TERuntimeResourceMap (line 120) | TERuntimeResourceMap( TERuntimeResourceMap<RUNTIME_DELEGATE, Deleter> ...
  class TENolockRuntimeResourceMap (line 41) | class TENolockRuntimeResourceMap
    method TENolockRuntimeResourceMap (line 166) | TENolockRuntimeResourceMap(const TENolockRuntimeResourceMap<RUNTIME_DE...
    method TENolockRuntimeResourceMap (line 168) | TENolockRuntimeResourceMap( TENolockRuntimeResourceMap<RUNTIME_DELEGAT...
  class TELockRuntimeResourceMap (line 42) | class TELockRuntimeResourceMap
    method TELockRuntimeResourceMap (line 212) | TELockRuntimeResourceMap(const TELockRuntimeResourceMap<RUNTIME_DELEGA...
    method TELockRuntimeResourceMap (line 214) | TELockRuntimeResourceMap( TELockRuntimeResourceMap<RUNTIME_DELEGATE, D...
  class TERuntimeHashMap (line 55) | class TERuntimeHashMap : public TEHashMap<RuntimeClassID, RUNTIME_DELEGATE>
    method TERuntimeHashMap (line 64) | TERuntimeHashMap( void ) = default;
    method TERuntimeHashMap (line 74) | TERuntimeHashMap(const TERuntimeHashMap<RUNTIME_DELEGATE> & /*src*/) =...
    method TERuntimeHashMap (line 76) | TERuntimeHashMap( TERuntimeHashMap<RUNTIME_DELEGATE> && /*src*/ ) noex...
  class TERuntimeResourceMap (line 95) | class TERuntimeResourceMap : public TEResourceMap<RuntimeClassID, RUNTIM...
    method TERuntimeResourceMap (line 117) | TERuntimeResourceMap( void ) = delete;
    method TERuntimeResourceMap (line 118) | TERuntimeResourceMap(const TERuntimeResourceMap<RUNTIME_DELEGATE, Dele...
    method TERuntimeResourceMap (line 120) | TERuntimeResourceMap( TERuntimeResourceMap<RUNTIME_DELEGATE, Deleter> ...
  class TENolockRuntimeResourceMap (line 137) | class TENolockRuntimeResourceMap   : public TERuntimeResourceMap<RUNTIME...
    method TENolockRuntimeResourceMap (line 166) | TENolockRuntimeResourceMap(const TENolockRuntimeResourceMap<RUNTIME_DE...
    method TENolockRuntimeResourceMap (line 168) | TENolockRuntimeResourceMap( TENolockRuntimeResourceMap<RUNTIME_DELEGAT...
  class TELockRuntimeResourceMap (line 184) | class TELockRuntimeResourceMap   : public TERuntimeResourceMap<RUNTIME_D...
    method TELockRuntimeResourceMap (line 212) | TELockRuntimeResourceMap(const TELockRuntimeResourceMap<RUNTIME_DELEGA...
    method TELockRuntimeResourceMap (line 214) | TELockRuntimeResourceMap( TELockRuntimeResourceMap<RUNTIME_DELEGATE, D...

FILE: framework/areg/base/TESortedLinkedList.hpp
  class TESortedLinkedList (line 53) | class TESortedLinkedList : private Constless<std::list<VALUE>>
    method TESortedLinkedList (line 74) | TESortedLinkedList(const TESortedLinkedList<VALUE>& src) = default;
    method TESortedLinkedList (line 80) | TESortedLinkedList(TESortedLinkedList<VALUE>&& src) noexcept = default;
  function VALUE (line 652) | inline const VALUE& TESortedLinkedList<VALUE>::operator [](uint32_t atIn...
  function VALUE (line 658) | inline const VALUE& TESortedLinkedList<VALUE>::operator [] (const TESort...
  function VALUE (line 758) | inline const VALUE& TESortedLinkedList<VALUE>::firstEntry(void) const
  function VALUE (line 765) | inline const VALUE& TESortedLinkedList<VALUE>::lastEntry(void) const
  function VALUE (line 772) | inline const VALUE& TESortedLinkedList<VALUE>::getNext(LISTPOS& IN OUT i...
  function VALUE (line 785) | inline const VALUE & TESortedLinkedList<VALUE>::getPrev(LISTPOS & IN OUT...
  function VALUE (line 804) | inline const VALUE& TESortedLinkedList<VALUE>::valueAtPosition(const TES...
  function VALUE (line 811) | inline const VALUE& TESortedLinkedList<VALUE>::getAt(uint32_t index) const
  function VALUE (line 820) | inline const VALUE& TESortedLinkedList<VALUE>::getAt(const TESortedLinke...
  function VALUE (line 1013) | inline VALUE TESortedLinkedList<VALUE>::popFirst(void)
  function VALUE (line 1022) | inline VALUE TESortedLinkedList<VALUE>::popLast(void)
  function IEInStream (line 1215) | const IEInStream& operator >> (const IEInStream& stream, TESortedLinkedL...
  function IEOutStream (line 1235) | IEOutStream& operator << (IEOutStream& stream, const TESortedLinkedList<...

FILE: framework/areg/base/TEStack.hpp
  class TEStack (line 37) | class TEStack
    method TEStack (line 435) | TEStack( void ) = delete;
    method TEStack (line 436) | TEStack( const TEStack<VALUE> & /* source */ ) = delete;
    method TEStack (line 437) | TEStack( TEStack<VALUE> && /* source */ ) = delete;
  class TELockStack (line 38) | class TELockStack
  class TENolockStack (line 39) | class TENolockStack
  class TEStack (line 56) | class TEStack   : private Constless<std::deque<VALUE>>
    method TEStack (line 435) | TEStack( void ) = delete;
    method TEStack (line 436) | TEStack( const TEStack<VALUE> & /* source */ ) = delete;
    method TEStack (line 437) | TEStack( TEStack<VALUE> && /* source */ ) = delete;
  class TELockStack (line 449) | class TELockStack  : public TEStack<VALUE>
  class TENolockStack (line 552) | class TENolockStack    : public TEStack<VALUE>
  function VALUE (line 717) | inline const VALUE& TEStack<VALUE>::operator [] (STACKPOS atPosition) const
  function VALUE (line 724) | inline VALUE& TEStack<VALUE>::operator [] (STACKPOS atPosition)
  function VALUE (line 867) | inline const VALUE & TEStack<VALUE>::firstEntry( void ) const
  function VALUE (line 874) | inline const VALUE & TEStack<VALUE>::lastEntry( void ) const
  function VALUE (line 933) | VALUE TEStack<VALUE>::popFirst( void )
  function VALUE (line 967) | inline const VALUE & TEStack<VALUE>::getAt( const STACKPOS pos ) const
  function VALUE (line 976) | inline VALUE & TEStack<VALUE>::getAt( STACKPOS pos )
  function VALUE (line 985) | inline const VALUE & TEStack<VALUE>::valueAtPosition( const STACKPOS atP...
  function VALUE (line 994) | inline VALUE & TEStack<VALUE>::valueAtPosition( STACKPOS atPosition )
  function IEInStream (line 1188) | const IEInStream & operator >> ( const IEInStream & stream, TEStack<V> &...
  function IEOutStream (line 1205) | IEOutStream & operator << ( IEOutStream & stream, const TEStack<V> & out...

FILE: framework/areg/base/TEString.hpp
  class IEInStream (line 34) | class IEInStream
  class IEOutStream (line 35) | class IEOutStream
  class TEString (line 53) | class TEString
  function CharType (line 1316) | inline const CharType TEString<CharType>::operator[ ](int index) const
  function CharType (line 1680) | inline const CharType* TEString<CharType>::getBuffer(NEString::CharPos s...
  function CharType (line 1688) | inline CharType* TEString<CharType>::getBuffer(NEString::CharPos startAt...
  function CharType (line 1696) | inline const CharType* TEString<CharType>::getString(void) const
  function const (line 1792) | void TEString<CharType>::getWord(TEString<CharType>& OUT word, NEString:...
  function CharType (line 2576) | inline CharType TEString<CharType>::getAt(NEString::CharPos atPos) const
  function const (line 2620) | inline void TEString<CharType>::trimLeft(TEString<CharType>& OUT strResu...
  function const (line 2626) | inline void TEString<CharType>::trimLeft(std::basic_string<CharType>& OU...
  function const (line 2671) | inline void TEString<CharType>::trimRight(TEString<CharType>& OUT strRes...
  function const (line 2677) | inline void TEString<CharType>::trimRight(std::basic_string<CharType>& O...
  function const (line 2740) | inline void TEString<CharType>::trimAll(TEString<CharType>& OUT strResul...
  function const (line 2746) | inline void TEString<CharType>::trimAll(std::basic_string<CharType>& OUT...
  function const (line 2803) | inline NEString::CharPos TEString<CharType>::readLine(TEString<CharType>...
  function const (line 2809) | NEString::CharPos TEString<CharType>::readLine(std::basic_string<CharTyp...
  function IEInStream (line 3313) | inline const IEInStream& operator >> (const IEInStream& stream, TEString...
  function IEOutStream (line 3319) | inline IEOutStream& operator << (IEOutStream& stream, const TEString<CT>...

FILE: framework/areg/base/TETemplateBase.hpp
  class TEResourceMapImpl (line 39) | class TEResourceMapImpl
    method implCleanResource (line 45) | inline void implCleanResource( RESOURCE_KEY & /*Key*/, RESOURCE_OBJECT...
  class TEResourceListMapImpl (line 61) | class TEResourceListMapImpl
    method implCleanResourceList (line 71) | inline void implCleanResourceList( RESOURCE_KEY & Key, ResourceList & ...
    method implAddResource (line 79) | inline void implAddResource( ResourceList & List, RESOURCE_OBJECT Reso...
    method implRemoveResource (line 87) | inline bool implRemoveResource( ResourceList & List, RESOURCE_OBJECT R...
  class Constless (line 101) | class Constless
    method iter (line 110) | inline const typename Container::iterator iter(const Container& cont, ...
    method iter (line 115) | inline typename Container::iterator iter(Container& cont, typename Con...
    method iter (line 120) | inline typename Container::iterator iter(Container& cont, typename Con...

FILE: framework/areg/base/Thread.hpp
  class ThreadLocalStorage (line 39) | class ThreadLocalStorage
  class IEThreadConsumer (line 40) | class IEThreadConsumer
  class IEInStream (line 41) | class IEInStream
  class String (line 42) | class String
  function RuntimeObject (line 62) | class AREG_API Thread  : public RuntimeObject
  function Thread (line 703) | inline Thread* Thread::_findThreadByHandle(THREADHANDLE threadHandle)
  function THREADHANDLE (line 708) | inline THREADHANDLE Thread::_findThreadHandleById( id_type threadId)
  function id_type (line 731) | inline id_type Thread::getId( void ) const
  function String (line 737) | inline const String& Thread::getName( void ) const
  function ThreadAddress (line 743) | inline const ThreadAddress & Thread::getAddress( void ) const
  function Thread (line 749) | inline Thread* Thread::findThreadByName(const String & threadName)
  function Thread (line 754) | inline Thread* Thread::findThreadById( id_type threadId)
  function Thread (line 759) | inline Thread* Thread::findThreadByAddress(const ThreadAddress& threadAd...
  function ThreadAddress (line 764) | inline const ThreadAddress & Thread::findThreadAddressById( id_type thre...
  function ThreadAddress (line 770) | inline const ThreadAddress& Thread::findThreadAddressByName(const String...
  function Thread (line 782) | inline Thread * Thread::getCurrentThread( void )
  function String (line 787) | inline const String & Thread::getCurrentThreadName( void )
  function ThreadAddress (line 792) | inline const ThreadAddress & Thread::getCurrentThreadAddress( void )
  function id_type (line 818) | inline id_type Thread::getCurrentThreadId( void )

FILE: framework/areg/base/ThreadAddress.hpp
  class IEInStream (line 29) | class IEInStream
  function ThreadAddress (line 39) | class AREG_API ThreadAddress
  type std (line 233) | namespace std
    type hash<ThreadAddress> (line 235) | struct hash<ThreadAddress>
  function ThreadAddress (line 248) | inline ThreadAddress & ThreadAddress::operator = ( const ThreadAddress &...
  function ThreadAddress (line 256) | inline ThreadAddress & ThreadAddress::operator = ( ThreadAddress && src ...
  function String (line 268) | inline const String & ThreadAddress::getThreadName( void ) const
  function String (line 298) | inline String ThreadAddress::convToString(void) const
  function IEInStream (line 306) | inline const IEInStream & operator >> (const IEInStream & stream, Thread...
  function IEOutStream (line 311) | inline IEOutStream & operator << (IEOutStream & stream, const ThreadAddr...

FILE: framework/areg/base/ThreadLocalStorage.hpp
  class Thread (line 31) | class Thread
  function ThreadLocalStorage (line 45) | class AREG_API ThreadLocalStorage
  function Thread (line 233) | inline Thread & ThreadLocalStorage::getOwnerThread( void ) const

FILE: framework/areg/base/Version.hpp
  class IEInStream (line 31) | class IEInStream
  class IEOutStream (line 32) | class IEOutStream
  function Version (line 42) | class AREG_API Version
  function Version (line 271) | inline Version & Version::operator = ( const char * version )
  function Version (line 276) | inline Version & Version::operator = ( const String & version )
  function IEInStream (line 298) | inline const IEInStream & operator >> (const IEInStream & stream, Versio...
  function IEOutStream (line 312) | inline IEOutStream & operator << (IEOutStream& stream, const Version& ou...

FILE: framework/areg/base/WideString.hpp
  class IEInStream (line 32) | class IEInStream
  class IEOutStream (line 33) | class IEOutStream
  class String (line 34) | class String
  class AREG_API (line 50) | class AREG_API
  function WideString (line 91) | WideString(const WideString& source) = default;
  function WideString (line 97) | WideString(WideString&& source) noexcept = default;
  type std (line 693) | namespace std
    type hash<WideString> (line 696) | struct hash<WideString>
  function WideString (line 768) | inline WideString& WideString::operator = (const char* src)
  function WideString (line 774) | inline WideString& WideString::operator = (const char src)
  function WideString (line 780) | inline WideString& WideString::operator = (const WideString& src)
  function WideString (line 786) | inline WideString& WideString::operator = (const std::wstring& src)
  function WideString (line 792) | inline WideString& WideString::operator = (const std::string& src)
  function WideString (line 798) | inline WideString& WideString::operator = (const std::wstring_view& src)
  function WideString (line 804) | inline WideString& WideString::operator = (const wchar_t* src)
  function WideString (line 810) | inline WideString& WideString::operator = (WideString&& src) noexcept
  function WideString (line 816) | inline WideString& WideString::operator = (std::wstring&& src) noexcept
  function WideString (line 822) | inline WideString& WideString::operator = (const wchar_t src)
  function WideString (line 878) | inline WideString& WideString::operator += (const WideString& src)
  function WideString (line 884) | inline WideString& WideString::operator += (const std::wstring& src)
  function WideString (line 890) | inline WideString& WideString::operator += (const std::wstring_view& src)
  function WideString (line 896) | inline WideString& WideString::operator += (const wchar_t* src)
  function WideString (line 902) | inline WideString& WideString::operator += (const wchar_t chSource)
  function WideString (line 908) | inline WideString& WideString::operator += (const char* src)
  function WideString (line 914) | WideString& WideString::operator += (const char chSource)
  function WideString (line 920) | inline WideString& WideString::operator += (const std::string& src)
  function WideString (line 926) | inline WideString operator + (const WideString& lhs, const WideString& rhs)
  function WideString (line 933) | inline WideString operator + (const WideString& lhs, const std::wstring&...
  function WideString (line 940) | inline WideString operator + (const WideString& lhs, const std::wstring_...
  function WideString (line 947) | inline WideString operator + (const WideString& lhs, const wchar_t* rhs)
  function WideString (line 954) | inline WideString operator + (const WideString& lhs, const wchar_t rhs)
  function WideString (line 961) | inline WideString operator + (const std::wstring& lhs, const WideString&...
  function WideString (line 968) | inline WideString operator + (const std::wstring_view& lhs, const WideSt...
  function WideString (line 975) | inline WideString operator + (const wchar_t* lhs, const WideString& rhs)
  function WideString (line 982) | inline WideString operator + (const wchar_t lhs, const WideString& rhs)
  function WideString (line 989) | inline WideString operator + (const WideString& lhs, const char* rhs)
  function WideString (line 996) | inline WideString operator + (const char* lhs, const WideString& rhs)
  function IEInStream (line 1003) | inline const IEInStream& operator >> (const IEInStream& stream, WideStri...
  function IEOutStream (line 1009) | inline IEOutStream& operator << (IEOutStream& stream, const WideString& ...
  function WideString (line 1050) | inline WideString & WideString::fromInt32( int32_t value, NEString::eRad...
  function WideString (line 1056) | inline WideString & WideString::fromUInt32( uint32_t value, NEString::eR...
  function WideString (line 1062) | inline WideString & WideString::fromInt64( int64_t value, NEString::eRad...
  function WideString (line 1068) | inline WideString & WideString::fromUInt64( uint64_t value, NEString::eR...
  function WideString (line 1074) | inline WideString & WideString::fromFloat( float value )
  function WideString (line 1080) | inline WideString & WideString::fromDouble( double value )
  function WideString (line 1086) | inline WideString & WideString::fromBool( bool value )
  function WideString (line 1092) | inline WideString& WideString::assign(const wchar_t* source, NEString::C...
  function WideString (line 1098) | inline WideString& WideString::assign(const std::wstring& source, NEStri...
  function WideString (line 1104) | inline WideString& WideString::assign(const std::wstring_view& source, N...
  function WideString (line 1110) | inline WideString& WideString::assign(const WideString& source, NEString...
  function WideString (line 1116) | inline WideString & WideString::assign(const wchar_t ch)
  function WideString (line 1122) | inline WideString& WideString::append(const wchar_t* source, NEString::C...
  function WideString (line 1128) | inline WideString& WideString::append(const std::wstring& source, NEStri...
  function WideString (line 1134) | inline WideString& WideString::append(const std::wstring_view& source, N...
  function WideString (line 1140) | inline WideString& WideString::append(const WideString& source, NEString...
  function WideString (line 1146) | inline WideString & WideString::append(const wchar_t ch)

FILE: framework/areg/base/private/BufferPosition.hpp
  class IEByteBuffer (line 28) | class IEByteBuffer
  function BufferPosition (line 38) | class AREG_API BufferPosition

FILE: framework/areg/base/private/Containers.cpp
  function StringArray (line 39) | const StringArray& Tokenizer::tokenize( const String & str, const String...

FILE: framework/areg/base/private/DateTime.cpp
  type tm (line 73) | struct tm
  function DateTime (line 131) | DateTime DateTime::getNow( void )
  function String (line 141) | String DateTime::formatTime( const std::string_view & formatName /*= NEU...

FILE: framework/areg/base/private/File.cpp
  function String (line 180) | String File::genTempFileName(const char* prefix, bool unique, bool inTem...
  function String (line 225) | String File::genTempFileName()
  function String (line 230) | const String & File::getExecutableDir(void)
  function String (line 235) | String File::getFileNameWithExtension( const char* filePath )
  function String (line 254) | String File::getFileName( const char* filePath )
  function String (line 266) | String File::getFileExtension( const char* filePath )
  function String (line 279) | String File::getFileDirectory(const char* filePath)
  function String (line 306) | String File::normalizePath(const char* fileName)
  function String (line 359) | String File::getParentDir(const char * filePath)
  function String (line 403) | String File::makeFileFullPath(const char* dirName, const char* fileName)
  function String (line 582) | String File::getCurrentDir(void)
  function String (line 614) | String File::getTempDir(void)
  function String (line 632) | String File::getFileFullPath(const char* filePath)
  function String (line 645) | String File::getSpecialDir(File::eSpecialFolder specialFolder)

FILE: framework/areg/base/private/FileBase.cpp
  function _readString (line 30) | inline int _readString(const FileBase & file, ClassType & outValue)
  function _readLine (line 74) | inline int _readLine(const FileBase & file, ClassType & outValue)
  function _readString (line 116) | inline int _readString(const FileBase & file, CharType * buffer, int cha...
  function _readLine (line 146) | inline int _readLine(const FileBase & file, CharType * buffer, int charC...
  function _writeString (line 175) | inline bool _writeString(FileBase & file, const CharType * buffer, int s...
  function _writeLine (line 194) | inline  bool _writeLine(FileBase & file, const CharType * buffer)
  function _compareData (line 212) | NEMath::eCompare _compareData( const DataType * memBuffer1, const DataTy...
  function _searchText (line 218) | unsigned int _searchText( const FileBase & file, unsigned int startPos, ...
  function const (line 430) | int FileBase::readString( wchar_t * IN OUT buffer, int IN charCount ) const
  function const (line 435) | int FileBase::readString(String & OUT outValue ) const
  function const (line 440) | int FileBase::readString(WideString & OUT outValue) const
  function const (line 450) | int FileBase::readLine( wchar_t * IN OUT buffer, int IN charCount ) const
  function const (line 455) | int FileBase::readLine( String & OUT outBuffer) const
  function const (line 460) | int FileBase::readLine(WideString & OUT outBuffer) const

FILE: framework/areg/base/private/Identifier.cpp
  function Identifier (line 72) | Identifier& Identifier::operator = ( const Identifier & src )
  function Identifier (line 80) | Identifier & Identifier::operator = ( Identifier && src )  noexcept

FILE: framework/areg/base/private/NEDebug.hpp
  type _EXCEPTION_POINTERS (line 39) | struct _EXCEPTION_POINTERS
  type NEDebug (line 44) | namespace NEDebug
    type E_DegubPrio (line 53) | enum class E_DegubPrio : int
    type _EXCEPTION_POINTERS (line 114) | struct _EXCEPTION_POINTERS

FILE: framework/areg/base/private/NEMath.cpp
  function AREG_API_IMPL (line 268) | AREG_API_IMPL double NEMath::round(double val)

FILE: framework/areg/base/private/NESocket.cpp
  type NESocket (line 41) | namespace NESocket
  type sockaddr_in (line 161) | struct sockaddr_in
  type sockaddr_in (line 189) | struct sockaddr_in
  type sockaddr_in (line 205) | struct sockaddr_in
  type sockaddr (line 209) | struct sockaddr
  type addrinfo (line 243) | struct addrinfo
  type sockaddr_in (line 258) | struct sockaddr_in
  type sockaddr_in (line 258) | struct sockaddr_in
  function String (line 343) | const String& NESocket::UserData::getUser(void) const
  function String (line 353) | const String& NESocket::UserData::getPassword(void) const
  function AREG_API_IMPL (line 372) | AREG_API_IMPL SOCKETHANDLE NESocket::socketCreate( void )
  function AREG_API_IMPL (line 434) | AREG_API_IMPL SOCKETHANDLE NESocket::clientSocketConnect(const std::stri...
  function AREG_API_IMPL (line 465) | AREG_API_IMPL SOCKETHANDLE NESocket::clientSocketConnect(const SocketAdd...
  function AREG_API_IMPL (line 511) | AREG_API_IMPL SOCKETHANDLE NESocket::serverSocketConnect(const std::stri...
  function AREG_API_IMPL (line 541) | AREG_API_IMPL SOCKETHANDLE NESocket::serverSocketConnect(const SocketAdd...
  function AREG_API_IMPL (line 590) | AREG_API_IMPL bool NESocket::serverListenConnection(SOCKETHANDLE serverS...
  function AREG_API_IMPL (line 595) | AREG_API_IMPL SOCKETHANDLE NESocket::serverAcceptConnection(SOCKETHANDLE...
  function AREG_API_IMPL (line 709) | AREG_API_IMPL bool NESocket::isSocketAlive(SOCKETHANDLE hSocket)
  function AREG_API_IMPL (line 721) | AREG_API_IMPL bool NESocket::socketInitialize(void)
  function AREG_API_IMPL (line 726) | AREG_API_IMPL void NESocket::socketRelease(void)
  function AREG_API_IMPL (line 731) | AREG_API_IMPL void NESocket::socketClose(SOCKETHANDLE hSocket)
  function AREG_API_IMPL (line 739) | AREG_API_IMPL int NESocket::sendData(SOCKETHANDLE hSocket, const unsigne...
  function AREG_API_IMPL (line 754) | AREG_API_IMPL int NESocket::receiveData(SOCKETHANDLE hSocket, unsigned c...
  function AREG_API_IMPL (line 770) | AREG_API_IMPL bool NESocket::disableSend(SOCKETHANDLE hSocket)
  function AREG_API_IMPL (line 781) | AREG_API_IMPL bool NESocket::disableReceive(SOCKETHANDLE hSocket)
  function AREG_API_IMPL (line 792) | AREG_API_IMPL const String & NESocket::getHostname(void)
  function AREG_API_IMPL (line 810) | AREG_API_IMPL bool NESocket::isIpAddress(const String& ipaddress)
  function AREG_API_IMPL (line 874) | AREG_API_IMPL String NESocket::convertHostNameToIpAddress(const String& ...
  function AREG_API_IMPL (line 898) | AREG_API_IMPL String NESocket::convertIpAddressToHostName(const String& ...
  function AREG_API_IMPL (line 916) | AREG_API_IMPL String NESocket::extractIpAddress(const sockaddr_in& addrH...
  function AREG_API_IMPL (line 937) | AREG_API_IMPL uint16_t NESocket::extractPortNumber(const sockaddr_in& ad...

FILE: framework/areg/base/private/NEUtilities.cpp
  type NEUtilities (line 28) | namespace NEUtilities
    type tm (line 56) | struct tm
    type tm (line 75) | struct tm
    type tm (line 93) | struct tm
    function _compareLargeIntegers (line 99) | static NEMath::eCompare _compareLargeIntegers( const NEMath::uLargeInt...
  function AREG_API_IMPL (line 119) | AREG_API_IMPL time_t NEUtilities::convToSeconds(const sSystemTime & sysT...
  function AREG_API_IMPL (line 132) | AREG_API_IMPL NEMath::eCompare NEUtilities::compareTimes( const TIME64 &...
  function AREG_API_IMPL (line 141) | AREG_API_IMPL void NEUtilities::convMicrosecs(const TIME64& IN time, tim...
  function AREG_API_IMPL (line 149) | AREG_API_IMPL void NEUtilities::convToTm(const sSystemTime & IN sysTime,...
  function AREG_API_IMPL (line 170) | AREG_API_IMPL void NEUtilities::makeTmLocal( struct tm & IN OUT utcTime )
  function AREG_API_IMPL (line 175) | AREG_API_IMPL void NEUtilities::convToTm(const TIME64& IN timeMicro, tm&...
  function AREG_API_IMPL (line 180) | AREG_API_IMPL void NEUtilities::convToSystemTime(const struct tm & IN ti...
  function AREG_API_IMPL (line 192) | AREG_API_IMPL NEMath::eCompare NEUtilities::compareTimes( const NEUtilit...
  function AREG_API_IMPL (line 210) | AREG_API_IMPL String NEUtilities::createComponentItemName( const String ...
  function AREG_API_IMPL (line 231) | AREG_API_IMPL String NEUtilities::generateName( const char* prefix )
  function AREG_API_IMPL (line 238) | AREG_API_IMPL const char * NEUtilities::generateName(const char * prefix...
  function AREG_API_IMPL (line 243) | AREG_API_IMPL const char * NEUtilities::generateName(const char * prefix...
  function AREG_API_IMPL (line 272) | AREG_API_IMPL uint64_t NEUtilities::getTickCount( void )
  function AREG_API_IMPL (line 277) | AREG_API_IMPL bool NEUtilities::convToLocalTime( const sSystemTime & IN ...
  function AREG_API_IMPL (line 283) | AREG_API_IMPL bool NEUtilities::convToLocalTime( const TIME64 & IN utcTi...
  function AREG_API_IMPL (line 288) | AREG_API_IMPL bool NEUtilities::convToLocalTm(const TIME64 & IN utcTime,...
  function AREG_API_IMPL (line 293) | AREG_API_IMPL void NEUtilities::systemTimeNow( NEUtilities::sSystemTime ...
  function AREG_API_IMPL (line 298) | AREG_API_IMPL TIME64 NEUtilities::systemTimeNow( void )
  function AREG_API_IMPL (line 303) | AREG_API_IMPL TIME64 NEUtilities::convToTime( const NEUtilities::sSystem...
  function AREG_API_IMPL (line 319) | AREG_API_IMPL TIME64 NEUtilities::convToTime(const tm& IN time)
  function AREG_API_IMPL (line 331) | AREG_API_IMPL void NEUtilities::convToSystemTime( const TIME64 & IN time...
  function AREG_API_IMPL (line 336) | AREG_API_IMPL NEUtilities::DataLiteral NEUtilities::convDataSize( uint64...
  function AREG_API_IMPL (line 353) | AREG_API_IMPL NEUtilities::DataLiteral NEUtilities::convDuration( uint64...

FILE: framework/areg/base/private/Object.cpp
  function Object (line 23) | inline const Object& Object::self( void ) const
  function IEGenericObject (line 64) | IEGenericObject* Object::clone( void ) const
  function Object (line 89) | Object & Object::operator = ( const Object& src )
  function Object (line 99) | Object & Object::operator = ( Object && src ) noexcept

FILE: framework/areg/base/private/Process.cpp
  function Process (line 27) | Process & Process::getInstance( void )
  function String (line 79) | String Process::getSafeEnvVariable( const char * var ) const

FILE: framework/areg/base/private/ReadConverter.cpp
  function const (line 55) | bool ReadConverter::getChar( wchar_t & OUT out_value ) const
  function const (line 91) | bool ReadConverter::getString( String & OUT out_value ) const
  function const (line 107) | bool ReadConverter::getString( WideString & OUT out_value ) const
  function const (line 125) | bool ReadConverter::readLine( String & OUT out_value ) const
  function const (line 148) | bool ReadConverter::readLine( WideString & OUT out_value ) const

FILE: framework/areg/base/private/ReadConverter.hpp
  class String (line 29) | class String
  class WideString (line 30) | class WideString
  class IEInStream (line 31) | class IEInStream
  class IECursorPosition (line 32) | class IECursorPosition
  function ReadConverter (line 41) | class AREG_API ReadConverter

FILE: framework/areg/base/private/RemoteMessage.cpp
  function RemoteMessage (line 168) | RemoteMessage RemoteMessage::clone(const ITEM_ID & source /*= 0*/, const...

FILE: framework/areg/base/private/RuntimeBase.cpp
  function RuntimeClassID (line 26) | inline const RuntimeClassID & RuntimeBase::_getClassId( void )
  function RuntimeClassID (line 39) | const RuntimeClassID & RuntimeBase::getRuntimeClassId( void ) const
  function String (line 44) | const String & RuntimeBase::getRuntimeClassName( void ) const

FILE: framework/areg/base/private/RuntimeBase.hpp
  class RuntimeClassID (line 27) | class RuntimeClassID
  class String (line 28) | class String
  function RuntimeBase (line 40) | class AREG_API RuntimeBase

FILE: framework/areg/base/private/SharedBuffer.cpp
  function SharedBuffer (line 25) | inline SharedBuffer& SharedBuffer::self( void )
  function SharedBuffer (line 126) | SharedBuffer & SharedBuffer::operator = ( const SharedBuffer &src )
  function SharedBuffer (line 144) | SharedBuffer & SharedBuffer::operator = ( SharedBuffer && src ) noexcept
  function SharedBuffer (line 197) | SharedBuffer SharedBuffer::clone(void) const

FILE: framework/areg/base/private/Socket.cpp
  function Socket (line 72) | Socket & Socket::operator = ( const Socket & src )
  function Socket (line 87) | Socket & Socket::operator = ( Socket && src ) noexcept

FILE: framework/areg/base/private/SocketServer.cpp
  function SOCKETHANDLE (line 57) | SOCKETHANDLE SocketServer::waitConnectionEvent(NESocket::SocketAddress &...

FILE: framework/areg/base/private/String.cpp
  function _formatDigit (line 103) | inline int32_t _formatDigit( String & result, const char * format, Digit...
  function _formatStringList (line 125) | inline int _formatStringList( char * buffer, int count, const char * for...
  function _formatStringList (line 144) | inline int32_t _formatStringList( String & result, const char * format, ...
  function _isEqual (line 155) | inline bool _isEqual(const char* str, const wchar_t* wstr)
  function String (line 167) | const String & String::getEmptyString(void)
  function String (line 192) | String & String::operator = (const WideString & src)
  function String (line 264) | String & String::operator += (const WideString & src)
  function String (line 270) | String String::getSubstring(const char * src, const char * strPhrase, co...
  function String (line 384) | String String::makeString(int32_t number, NEString::eRadix radix /*= NES...
  function String (line 418) | String String::makeString(uint32_t number, NEString::eRadix radix /*= NE...
  function String (line 446) | String String::makeString(int64_t number, NEString::eRadix radix /*= NES...
  function String (line 480) | String String::makeString(uint64_t number, NEString::eRadix radix /*= NE...
  function String (line 508) | String String::makeString(float number)
  function String (line 515) | String String::makeString(double number)
  function String (line 522) | String String::makeString( bool value )
  function String (line 541) | String & String::format(const char * format, ...)
  function String (line 553) | String & String::formatList(const char * format, va_list argptr)
  function String (line 587) | String& String::assign(const wchar_t* source, NEString::CharCount count ...
  function String (line 607) | String& String::append(const wchar_t* source, NEString::CharCount count ...

FILE: framework/areg/base/private/Thread.cpp
  function ThreadLocalStorage (line 105) | ThreadLocalStorage* Thread::_getThreadLocalStorage( Thread* ownThread )
  function ThreadLocalStorage (line 168) | ThreadLocalStorage & Thread::getCurrentThreadStorage( void )
  function String (line 250) | const String & Thread::getThreadName( id_type threadId )
  function ThreadAddress (line 256) | const ThreadAddress & Thread::getThreadAddress( id_type threadId )
  function IEThreadConsumer (line 355) | IEThreadConsumer& Thread::getCurrentThreadConsumer( void )

FILE: framework/areg/base/private/ThreadAddress.cpp
  function ThreadAddress (line 40) | const ThreadAddress & ThreadAddress::getInvalidThreadAddress(void)
  function String (line 98) | String ThreadAddress::convAddressToPath( const ThreadAddress& threadAddr...
  function ThreadAddress (line 103) | ThreadAddress ThreadAddress::convPathToAddress( const char* threadPath, ...

FILE: framework/areg/base/private/ThreadLocalStorage.cpp
  function String (line 122) | const String & ThreadLocalStorage::getName( void ) const

FILE: framework/areg/base/private/Version.cpp
  function Version (line 26) | const Version & Version::getInvalidVersion( void )
  function Version (line 92) | Version & Version::convFromString( const String & version )
  function Version (line 111) | Version & Version::convFromString( const char * version )
  function Version (line 116) | Version & Version::operator = ( const Version &src )
  function Version (line 127) | Version & Version::operator = ( Version && src ) noexcept
  function String (line 157) | String Version::convToString( void ) const

FILE: framework/areg/base/private/WideString.cpp
  function _formatDigit (line 103) | inline int32_t _formatDigit( WideString & result, const wchar_t * format...
  function _formatStringList (line 125) | inline int _formatStringList( wchar_t * buffer, int count, const wchar_t...
  function _formatStringList (line 144) | inline int32_t _formatStringList( WideString & result, const wchar_t * f...
  function _isEqual (line 155) | inline bool _isEqual(const wchar_t* str, const char* wstr)
  function WideString (line 167) | const WideString & WideString::getEmptyString(void)
  function WideString (line 192) | WideString & WideString::operator = (const String & src)
  function WideString (line 264) | WideString & WideString::operator += (const String & src)
  function WideString (line 270) | WideString WideString::getSubstring(const wchar_t * src, const wchar_t *...
  function WideString (line 384) | WideString WideString::makeString(int32_t number, NEString::eRadix radix...
  function WideString (line 418) | WideString WideString::makeString(uint32_t number, NEString::eRadix radi...
  function WideString (line 446) | WideString WideString::makeString(int64_t number, NEString::eRadix radix...
  function WideString (line 480) | WideString WideString::makeString(uint64_t number, NEString::eRadix radi...
  function WideString (line 508) | WideString WideString::makeString(float number)
  function WideString (line 515) | WideString WideString::makeString(double number)
  function WideString (line 522) | WideString WideString::makeString( bool value )
  function WideString (line 541) | WideString & WideString::format(const wchar_t * format, ...)
  function WideString (line 553) | WideString & WideString::formatList(const wchar_t * format, va_list argptr)
  function WideString (line 587) | WideString& WideString::assign(const char* source, NEString::CharCount c...
  function WideString (line 607) | WideString& WideString::append(const char* source, NEString::CharCount c...

FILE: framework/areg/base/private/WriteConverter.hpp
  class IEOutStream (line 30) | class IEOutStream
  class IECursorPosition (line 31) | class IECursorPosition
  class String (line 32) | class String
  class WideString (line 33) | class WideString
  function WriteConverter (line 41) | class AREG_API WriteConverter

FILE: framework/areg/base/private/posix/CriticalSectionIX.hpp
  class CriticalSectionIX (line 39) | class CriticalSectionIX   : protected IESyncObjectBaseIX

FILE: framework/areg/base/private/posix/FilePosix.cpp
  type S_PosixFile (line 57) | struct S_PosixFile
  type passwd (line 72) | struct passwd
  function FILEHANDLE (line 99) | FILEHANDLE File::_osGetInvalidHandle( void )

FILE: framework/areg/base/private/posix/IESyncObjectBaseIX.hpp
  class IESyncObjectBaseIX (line 33) | class IESyncObjectBaseIX
    method IESyncObjectBaseIX (line 129) | IESyncObjectBaseIX( void ) = delete;
  class MutexIX (line 34) | class MutexIX
  class WaitableBaseIX (line 35) | class WaitableBaseIX
  class WaitableEventIX (line 36) | class WaitableEventIX
  class WaitableMutexIX (line 37) | class WaitableMutexIX
  class IESyncObjectBaseIX (line 46) | class IESyncObjectBaseIX
    method IESyncObjectBaseIX (line 129) | IESyncObjectBaseIX( void ) = delete;
  function String (line 142) | inline const String & IESyncObjectBaseIX::getName( void ) const

FILE: framework/areg/base/private/posix/IEWaitableBaseIX.hpp
  class IEWaitableBaseIX (line 40) | class IEWaitableBaseIX : public MutexIX
    method IEWaitableBaseIX (line 103) | IEWaitableBaseIX( void ) = delete;

FILE: framework/areg/base/private/posix/MutexIX.hpp
  class MutexIX (line 39) | class MutexIX   : public IESyncObjectBaseIX
  class ObjectLockIX (line 191) | class ObjectLockIX
    method ObjectLockIX (line 251) | ObjectLockIX( void ) = delete;

FILE: framework/areg/base/private/posix/NESocketPosix.cpp
  type NESocket (line 39) | namespace NESocket
    function _osInitSocket (line 42) | bool _osInitSocket(void)
    function _osReleaseSocket (line 47) | void _osReleaseSocket(void)
    function _osCloseSocket (line 51) | void _osCloseSocket(SOCKETHANDLE hSocket)
    function _osSendData (line 58) | int _osSendData(SOCKETHANDLE hSocket, const unsigned char* dataBuffer,...
    function _osRecvData (line 96) | int _osRecvData(SOCKETHANDLE hSocket, unsigned char* dataBuffer, int d...
    function _osControl (line 128) | bool _osControl(SOCKETHANDLE hSocket, int cmd, unsigned long& arg)
    function _osGetOption (line 134) | bool _osGetOption(SOCKETHANDLE hSocket, int level, int name, unsigned ...

FILE: framework/areg/base/private/posix/NESyncTypesIX.hpp
  type NESyncTypesIX (line 39) | namespace NESyncTypesIX
    type E_SyncObjectFired (line 52) | enum  E_SyncObjectFired : int
    type E_EventResetInfo (line 92) | enum  class  E_EventResetInfo
    type E_MatchCondition (line 107) | enum class E_MatchCondition
    type E_SyncObject (line 121) | enum class E_SyncObject : unsigned int

FILE: framework/areg/base/private/posix/NEUtilitiesPosix.cpp
  type NEUtilities (line 29) | namespace NEUtilities
    function _osGetTickCount (line 31) | uint64_t _osGetTickCount( void )
    function TIME64 (line 38) | TIME64 _osSystemTimeNow(void)
    function _osSystemTimeNow (line 46) | void _osSystemTimeNow( NEUtilities::sSystemTime & OUT sysTime, bool lo...
    function _osMakeTmLocal (line 73) | void _osMakeTmLocal(struct tm& IN OUT utcTime)
    function _osConvToLocalTime (line 80) | bool _osConvToLocalTime(const TIME64& IN utcTime, sSystemTime& OUT loc...
    function _osConvToLocalTm (line 101) | bool _osConvToLocalTm(const TIME64& IN utcTime, struct tm& OUT localTm)
    function _osConvToSystemTime (line 107) | void _osConvToSystemTime(const TIME64& IN timeValue, NEUtilities::sSys...
    function _osConvToTm (line 122) | void _osConvToTm(const TIME64& IN timeValue, tm& OUT time)

FILE: framework/areg/base/private/posix/ProcessPosix.cpp
  function String (line 91) | String Process::_osGetEnvVariable( const char* var ) const

FILE: framework/areg/base/private/posix/SpinLockIX.hpp
  class SpinLockIX (line 41) | class SpinLockIX
  class SpinAutolockIX (line 151) | class SpinAutolockIX
    method SpinAutolockIX (line 163) | inline SpinAutolockIX( SpinLockIX & spinLock )
    method lock (line 186) | inline bool lock( void )
    method unlock (line 195) | inline bool unlock( void )
    method SpinAutolockIX (line 211) | SpinAutolockIX( void ) = delete;

FILE: framework/areg/base/private/posix/SyncLockAndWaitIX.hpp
  class IEWaitableBaseIX (line 40) | class IEWaitableBaseIX
  class SyncLockAndWaitIX (line 41) | class SyncLockAndWaitIX
    class ImplResourceListMap (line 70) | class ImplResourceListMap : public TEResourceListMapImpl<IEWaitableBas...
      method implCleanResourceList (line 80) | inline void implCleanResourceList( IEWaitableBaseIX * & /* Key */, L...
      method implAddResource (line 90) | inline void implAddResource( ListLockAndWait & List, SyncLockAndWait...
      method implRemoveResource (line 100) | inline bool implRemoveResource( ListLockAndWait & List, SyncLockAndW...
    type E_WaitType (line 144) | enum class E_WaitType
    type E_EventFired (line 155) | enum class E_EventFired
    method SyncLockAndWaitIX (line 421) | SyncLockAndWaitIX( void ) = delete;
  class SyncLockAndWaitIX (line 53) | class SyncLockAndWaitIX
    class ImplResourceListMap (line 70) | class ImplResourceListMap : public TEResourceListMapImpl<IEWaitableBas...
      method implCleanResourceList (line 80) | inline void implCleanResourceList( IEWaitableBaseIX * & /* Key */, L...
      method implAddResource (line 90) | inline void implAddResource( ListLockAndWait & List, SyncLockAndWait...
      method implRemoveResource (line 100) | inline bool implRemoveResource( ListLockAndWait & List, SyncLockAndW...
    type E_WaitType (line 144) | enum class E_WaitType
    type E_EventFired (line 155) | enum class E_EventFired
    method SyncLockAndWaitIX (line 421) | SyncLockAndWaitIX( void ) = delete;

FILE: framework/areg/base/private/posix/SyncObjectsPosix.cpp
  type timespec (line 350) | struct timespec

FILE: framework/areg/base/private/posix/ThreadPosix.cpp
  type S_PosixThread (line 47) | struct S_PosixThread
  type timespec (line 122) | struct timespec
  function id_type (line 128) | id_type Thread::_osGetCurrentThreadId( void )
  type sched_param (line 265) | struct sched_param

FILE: framework/areg/base/private/posix/WaitableEventIX.hpp
  class WaitableEventIX (line 51) | class WaitableEventIX : public IEWaitableBaseIX
    method WaitableEventIX (line 176) | WaitableEventIX( void ) = delete;

FILE: framework/areg/base/private/posix/WaitableMutexIX.hpp
  class WaitableMutexIX (line 41) | class WaitableMutexIX : public IEWaitableBaseIX
  function pthread_t (line 158) | inline pthread_t WaitableMutexIX::getOwningThreadId(void) const

FILE: framework/areg/base/private/posix/WaitableSemaphoreIX.hpp
  class WaitableSemaphoreIX (line 43) | class WaitableSemaphoreIX : public IEWaitableBaseIX
    method WaitableSemaphoreIX (line 137) | WaitableSemaphoreIX( void ) = delete;

FILE: framework/areg/base/private/posix/WaitableTimerIX.cpp
  type sigevent (line 67) | struct sigevent
  type sigevent (line 68) | struct sigevent
  type itimerspec (line 123) | struct itimerspec
  type itimerspec (line 124) | struct itimerspec

FILE: framework/areg/base/private/posix/WaitableTimerIX.hpp
  class WaitableTimerIX (line 41) | class WaitableTimerIX : public IEWaitableBaseIX
    type timespec (line 180) | struct timespec

FILE: framework/areg/base/private/win32/FileWin32.cpp
  function String (line 63) | static String _searchFile( const char* fileName, const char* fileExtensi...
  function FILEHANDLE (line 86) | FILEHANDLE File::_osGetInvalidHandle( void )

FILE: framework/areg/base/private/win32/NEDebugWin32.cpp
  type _EXCEPTION_POINTERS (line 48) | struct _EXCEPTION_POINTERS
  type _EXCEPTION_POINTERS (line 161) | struct _EXCEPTION_POINTERS

FILE: framework/areg/base/private/win32/NESocketWin32.cpp
  type NESocket (line 50) | namespace NESocket
    function _osInitSocket (line 52) | bool _osInitSocket(void)
    function _osReleaseSocket (line 69) | void _osReleaseSocket(void)
    function _osCloseSocket (line 77) | void _osCloseSocket(SOCKETHANDLE hSocket)
    function _osSendData (line 84) | int _osSendData(SOCKETHANDLE hSocket, const unsigned char* dataBuffer,...
    function _osRecvData (line 121) | int _osRecvData(SOCKETHANDLE hSocket, unsigned char* dataBuffer, int d...
    function _osControl (line 163) | bool _osControl(SOCKETHANDLE hSocket, int cmd, unsigned long& arg)
    function _osGetOption (line 169) | bool _osGetOption(SOCKETHANDLE hSocket, int level, int name, unsigned ...

FILE: framework/areg/base/private/win32/NEUtilitiesWin32.cpp
  function _osGetTickCount (line 30) | uint64_t _osGetTickCount(void)
  function TIME64 (line 35) | TIME64 _osSystemTimeNow(void)
  function _osSystemTimeNow (line 49) | void _osSystemTimeNow( NEUtilities::sSystemTime & OUT sysTime, bool loca...

FILE: framework/areg/base/private/win32/ProcessWin32.cpp
  function String (line 51) | String Process::_osGetEnvVariable( const char* var ) const

FILE: framework/areg/base/private/win32/SpinLockWin32.hpp
  class SpinLockWin32 (line 34) | class SpinLockWin32

FILE: framework/areg/base/private/win32/SyncObjectsWin32.cpp
  function _getFrequencyNs (line 370) | inline double _getFrequencyNs(void)

FILE: framework/areg/base/private/win32/ThreadWin32.cpp
  type tagTHREADNAME_INFO (line 52) | struct tagTHREADNAME_INFO
  function id_type (line 97) | id_type Thread::_osGetCurrentThreadId( void )

FILE: framework/areg/component/Channel.hpp
  function Channel (line 36) | class AREG_API Channel
  function ITEM_ID (line 218) | inline const ITEM_ID & Channel::getSource(void) const
  function ITEM_ID (line 228) | inline const ITEM_ID & Channel::getTarget(void) const
  function ITEM_ID (line 238) | inline const ITEM_ID & Channel::getCookie(void) const
  function IEInStream (line 275) | inline const IEInStream & operator >> ( const IEInStream & stream, Chann...
  function IEOutStream (line 283) | inline IEOutStream & operator << ( IEOutStream & stream, const Channel &...

FILE: framework/areg/component/Component.hpp
  class IEWorkerThreadConsumer (line 34) | class IEWorkerThreadConsumer
  class ComponentThread (line 35) | class ComponentThread
  class WorkerThread (line 36) | class WorkerThread
  class StubBase (line 37) | class StubBase
  function RuntimeObject (line 57) | class AREG_API Component   : public    RuntimeObject
  function ComponentThread (line 387) | inline ComponentThread & Component::getMasterThread( void )
  function DispatcherThread (line 392) | inline DispatcherThread * Component::findEventConsumer( const RuntimeCla...
  function String (line 397) | inline const String & Component::getRoleName( void ) const
  function ComponentAddress (line 402) | inline const ComponentAddress& Component::getAddress( void ) const
  function Component (line 412) | inline Component& Component::self( void )

FILE: framework/areg/component/ComponentAddress.hpp
  class IEInStream (line 34) | class IEInStream
  class IEOutStream (line 35) | class IEOutStream
  function ComponentAddress (line 48) | class AREG_API ComponentAddress
  type std (line 278) | namespace std
    type hash<ComponentAddress> (line 281) | struct hash<ComponentAddress>
  function ComponentAddress (line 295) | inline ComponentAddress & ComponentAddress::operator = ( const Component...
  function ComponentAddress (line 304) | inline ComponentAddress & ComponentAddress::operator = ( ComponentAddres...
  function ThreadAddress (line 332) | inline const ThreadAddress& ComponentAddress::getThreadAddress( void ) c...
  function String (line 337) | inline const String& ComponentAddress::getRoleName( void ) const
  function IEInStream (line 345) | inline const IEInStream & operator >> (const IEInStream & stream, Compon...
  function IEOutStream (line 351) | inline IEOutStream & operator << (IEOutStream & stream, const ComponentA...

FILE: framework/areg/component/ComponentLoader.hpp
  class Component (line 283) | class Component
  class ComponentThread (line 284) | class ComponentThread
  class Thread (line 285) | class Thread
  function ModelDataCreator (line 296) | class AREG_API ModelDataCreator
  function ComponentLoader (line 362) | class AREG_API ComponentLoader

FILE: framework/areg/component/ComponentThread.hpp
  class Component (line 33) | class Component
  function DispatcherThread (line 45) | class AREG_API ComponentThread  : public    DispatcherThread

FILE: framework/areg/component/DispatcherThread.hpp
  class DispatcherThread (line 31) | class DispatcherThread
  class NullDispatcherThread (line 32) | class NullDispatcherThread
  class AREG_API (line 48) | class AREG_API
  function DispatcherThread (line 289) | inline DispatcherThread & DispatcherThread::getDispatcherThread( const S...
  function DispatcherThread (line 295) | inline DispatcherThread & DispatcherThread::getDispatcherThread( id_type...
  function DispatcherThread (line 301) | inline DispatcherThread & DispatcherThread::getDispatcherThread(const Th...
  function DispatcherThread (line 307) | inline DispatcherThread & DispatcherThread::getCurrentDispatcherThread( ...
  function EventDispatcher (line 313) | inline EventDispatcher & DispatcherThread::getCurrentDispatcher( void )
  function EventDispatcher (line 318) | inline EventDispatcher & DispatcherThread::getEventDispatcher( void )
  function DispatcherThread (line 323) | inline DispatcherThread & DispatcherThread::self( void )

FILE: framework/areg/component/Event.hpp
  class IEEventConsumer (line 111) | class IEEventConsumer
  class EventDispatcher (line 112) | class EventDispatcher
  class DispatcherThread (line 113) | class DispatcherThread
  class Thread (line 114) | class Thread
  function RuntimeObject (line 140) | class AREG_API Event   : public RuntimeObject
  function IEEventConsumer (line 570) | inline IEEventConsumer * Event::getEventConsumer( void )

FILE: framework/areg/component/EventData.hpp
  function EventData (line 40) | class AREG_API EventData
  function IEInStream (line 185) | inline const IEInStream& EventData::getReadStream( void ) const
  function IEOutStream (line 190) | inline IEOutStream & EventData::getWriteStream( void )
  function EventDataStream (line 195) | inline const EventDataStream & EventData::getDataStream( void ) const
  function IEInStream (line 200) | inline const IEInStream & operator >> ( const IEInStream & stream, Event...
  function IEOutStream (line 208) | inline IEOutStream & operator << ( IEOutStream & stream, const EventData...

FILE: framework/areg/component/EventDataStream.hpp
  function EventDataStream (line 40) | class AREG_API EventDataStream : public IEIOStream
  function IEInStream (line 341) | inline const IEInStream & EventDataStream::getStreamForRead( void ) const
  function IEOutStream (line 346) | inline IEOutStream & EventDataStream::getStreamForWrite( void )
  function IEInStream (line 351) | inline const IEInStream & operator >> ( const IEInStream & stream, Event...
  function IEOutStream (line 359) | inline IEOutStream & operator << ( IEOutStream & stream, const EventData...

FILE: framework/areg/component/EventDispatcher.hpp
  class AREG_API (line 39) | class AREG_API
  function DispatcherThread (line 146) | inline DispatcherThread * EventDispatcher::getDispatcherThread( void ) c...

FILE: framework/areg/component/IEEventConsumer.hpp
  class Event (line 27) | class Event
  function IEEventConsumer (line 42) | class AREG_API IEEventConsumer

FILE: framework/areg/component/IEEventRouter.hpp
  class Event (line 26) | class Event
  function IEEventRouter (line 40) | class AREG_API IEEventRouter

FILE: framework/areg/component/IEProxyListener.hpp
  function IENotificationEventConsumer (line 35) | class AREG_API IEProxyListener  : public IENotificationEventConsumer

FILE: framework/areg/component/IERemoteEventConsumer.hpp
  class RemoteRequestEvent (line 28) | class RemoteRequestEvent
  class RemoteNotifyRequestEvent (line 29) | class RemoteNotifyRequestEvent
  class RemoteResponseEvent (line 30) | class RemoteResponseEvent
  function IERemoteEventConsumer (line 40) | class AREG_API IERemoteEventConsumer   : public    IEEventConsumer

FILE: framework/areg/component/IETimerConsumer.hpp
  class IETimerConsumer (line 28) | class IETimerConsumer
  class Timer (line 33) | class Timer
  class TimerEventData (line 34) | class TimerEventData
  class DispatcherThread (line 35) | class DispatcherThread
  function IETimerEventConsumerBase (line 53) | class AREG_API IETimerConsumer : public  IETimerEventConsumerBase

FILE: framework/areg/component/IEWorkerThreadConsumer.hpp
  class ComponentThread (line 31) | class ComponentThread
  class WorkerThread (line 32) | class WorkerThread
  function IEWorkerThreadConsumer (line 49) | class AREG_API IEWorkerThreadConsumer
  function String (line 131) | inline const String & IEWorkerThreadConsumer::getConsumerName( void ) const

FILE: framework/areg/component/NERegistry.hpp
  type NERegistry (line 36) | namespace NERegistry
    class ServiceEntry (line 38) | class ServiceEntry
    class ServiceList (line 39) | class ServiceList
    class ComponentThreadEntry (line 40) | class ComponentThreadEntry
    class ComponentThreadList (line 41) | class ComponentThreadList
    class WorkerThreadEntry (line 42) | class WorkerThreadEntry
    class WorkerThreadList (line 43) | class WorkerThreadList
    class DependencyEntry (line 44) | class DependencyEntry
    class DependencyList (line 45) | class DependencyList
    class ComponentEntry (line 46) | class ComponentEntry
    class ComponentList (line 47) | class ComponentList
    class Model (line 48) | class Model
    function ServiceEntry (line 130) | class AREG_API ServiceEntry
    function ServiceList (line 239) | class AREG_API ServiceList
    function WorkerThreadEntry (line 362) | class AREG_API WorkerThreadEntry
    function WorkerThreadList (line 471) | class AREG_API WorkerThreadList
    function DependencyEntry (line 596) | class AREG_API DependencyEntry
    function DependencyList (line 686) | class AREG_API DependencyList
    function ComponentEntry (line 809) | class AREG_API ComponentEntry
    function ComponentList (line 1199) | class AREG_API ComponentList
    function ComponentThreadEntry (line 1343) | class AREG_API ComponentThreadEntry
    function ComponentThreadList (line 1574) | class AREG_API ComponentThreadList
    function Model (line 1702) | class AREG_API Model
  class Component (line 73) | class Component
  class WorkerThread (line 74) | class WorkerThread
  class ComponentThread (line 75) | class ComponentThread
  class IEWorkerThreadConsumer (line 76) | class IEWorkerThreadConsumer
  type NERegistry (line 116) | namespace NERegistry
    class ServiceEntry (line 38) | class ServiceEntry
    class ServiceList (line 39) | class ServiceList
    class ComponentThreadEntry (line 40) | class ComponentThreadEntry
    class ComponentThreadList (line 41) | class ComponentThreadList
    class WorkerThreadEntry (line 42) | class WorkerThreadEntry
    class WorkerThreadList (line 43) | class WorkerThreadList
    class DependencyEntry (line 44) | class DependencyEntry
    class DependencyList (line 45) | class DependencyList
    class ComponentEntry (line 46) | class ComponentEntry
    class ComponentList (line 47) | class ComponentList
    class Model (line 48) | class Model
    function ServiceEntry (line 130) | class AREG_API ServiceEntry
    function ServiceList (line 239) | class AREG_API ServiceList
    function WorkerThreadEntry (line 362) | class AREG_API WorkerThreadEntry
    function WorkerThreadList (line 471) | class AREG_API WorkerThreadList
    function DependencyEntry (line 596) | class AREG_API DependencyEntry
    function DependencyList (line 686) | class AREG_API DependencyList
    function ComponentEntry (line 809) | class AREG_API ComponentEntry
    function ComponentList (line 1199) | class AREG_API ComponentList
    function ComponentThreadEntry (line 1343) | class AREG_API ComponentThreadEntry
    function ComponentThreadList (line 1574) | class AREG_API ComponentThreadList
    function Model (line 1702) | class AREG_API Model
  function TIME64 (line 2016) | inline TIME64 NERegistry::Model::getAliveDuration( void ) const

FILE: framework/areg/component/NEService.hpp
  type NEService (line 64) | namespace NEService
    type E_ResultType (line 71) | enum class E_ResultType : uint16_t
    type E_DataStateType (line 111) | enum class E_DataStateType  : uint16_t
    type E_RequestType (line 129) | enum class E_RequestType : uint16_t
    type E_MessageDataType (line 151) | enum class E_MessageDataType : uint16_t
    type E_ServiceConnection (line 174) | enum class E_ServiceConnection : uint16_t
    type E_DisconnectReason (line 221) | enum class E_DisconnectReason : uint16_t
    type E_ServiceRequestType (line 246) | enum class E_ServiceRequestType : uint16_t
    type E_ServiceType (line 263) | enum class E_ServiceType : uint16_t
    type E_MessageSource (line 280) | enum class E_MessageSource : uint16_t
    type E_InstanceBitness (line 299) | enum class E_InstanceBitness: uint16_t
    type E_ServiceCall (line 382) | enum class E_ServiceCall  : uint16_t
    type E_FuncIdRange (line 460) | enum class E_FuncIdRange  : uint32_t
    class ParameterArray (line 575) | class ParameterArray
    function StateArrayBase (line 584) | class AREG_API StateArray : private StateArrayBase
    type AREG_API (line 673) | struct AREG_API
    function ParameterArray (line 779) | class AREG_API ParameterArray
    function ProxyData (line 964) | class AREG_API ProxyData
    type sServiceConnectedInstance (line 1062) | struct sServiceConnectedInstance
  function IEOutStream (line 1333) | inline IEOutStream& operator << (IEOutStream& stream, const NEService::s...
  function IEInStream (line 1344) | inline const IEInStream& operator >> (const IEInStream& stream, NEServic...

FILE: framework/areg/component/NotificationEvent.hpp
  class IENotificationEventConsumer (line 33) | class IENotificationEventConsumer
  class NotificationEventData (line 34) | class NotificationEventData
  class NotificationEvent (line 35) | class NotificationEvent
  class ProxyBase (line 40) | class ProxyBase
  function NotificationEventData (line 67) | class AREG_API NotificationEventData
  function NotificationEvent (line 203) | class AREG_API NotificationEvent   : public Event
  function IENotificationEventConsumer (line 291) | class AREG_API IENotificationEventConsumer  : public IEEventConsumer
  function ProxyBase (line 354) | inline const ProxyBase* NotificationEventData::getProxy( void ) const
  function SequenceNumber (line 384) | inline const SequenceNumber & NotificationEventData::getSequenceNr( void...
  function NotificationEventData (line 397) | inline const NotificationEventData & NotificationEvent::getData( void ) ...
  function NotificationEventData (line 402) | inline NotificationEventData & NotificationEvent::getData( void )

FILE: framework/areg/component/ProxyAddress.hpp
  class IEInStream (line 33) | class IEInStream
  class StubAddress (line 34) | class StubAddress
  class Event (line 35) | class Event
  class ServiceRequestEvent (line 36) | class ServiceRequestEvent
  class ServiceResponseEvent (line 37) | class ServiceResponseEvent
  function ServiceAddress (line 47) | class AREG_API ProxyAddress   : public    ServiceAddress
  type std (line 401) | namespace std
    type hash<ProxyAddress> (line 404) | struct hash<ProxyAddress>
  function ProxyAddress (line 423) | inline ProxyAddress & ProxyAddress::operator = ( const ProxyAddress & so...
  function ProxyAddress (line 436) | inline ProxyAddress & ProxyAddress::operator = ( ProxyAddress && source ...
  function String (line 494) | inline const String & ProxyAddress::getThread(void) const
  function Channel (line 499) | inline const Channel & ProxyAddress::getChannel( void ) const
  function ITEM_ID (line 509) | inline const ITEM_ID & ProxyAddress::getCookie( void ) const
  function ITEM_ID (line 519) | inline const ITEM_ID & ProxyAddress::getSource( void ) const
  function ITEM_ID (line 529) | inline const ITEM_ID & ProxyAddress::getTarget( void ) const
  function ProxyAddress (line 539) | inline ProxyAddress& ProxyAddress::self(void)

FILE: framework/areg/component/ProxyBase.hpp
  class IENotificationEventConsumer (line 44) | class IENotificationEventConsumer
  class NotificationEventData (line 45) | class NotificationEventData
  class ServiceResponseEvent (line 46) | class ServiceResponseEvent
  class RemoteResponseEvent (line 47) | class RemoteResponseEvent
  class ServiceRequestEvent (line 48) | class ServiceRequestEvent
  class NotificationEvent (line 49) | class NotificationEvent
  class DispatcherThread (line 50) | class DispatcherThread
  class EventDataStream (line 51) | class EventDataStream
  class IEProxyListener (line 52) | class IEProxyListener
  class ProxyEvent (line 53) | class ProxyEvent
  class ProxyBase (line 54) | class ProxyBase
  class Version (line 55) | class Version
  function IEProxyEventConsumer (line 91) | class AREG_API ProxyBase  : public    IEProxyEventConsumer
  function lockProxyResource (line 498) | static inline void lockProxyResource( void )
  function unlockProxyResource (line 506) | static inline void unlockProxyResource( void )
  function ProxyBase (line 1091) | inline ProxyBase & ProxyBase::self( void )
  function ProxyAddress (line 1096) | inline const ProxyAddress& ProxyBase::getProxyAddress( void ) const
  function StubAddress (line 1101) | inline const StubAddress& ProxyBase::getStubAddress( void ) const
  function DispatcherThread (line 1209) | inline DispatcherThread & ProxyBase::getProxyDispatcherThread( void ) const

FILE: framework/areg/component/ProxyEvent.hpp
  class ProxyEvent (line 30) | class ProxyEvent
  class IEProxyEventConsumer (line 31) | class IEProxyEventConsumer
  class Event (line 36) | class Event
  class ProxyEvent (line 37) | class ProxyEvent
  class StubAddress (line 38) | class StubAddress
  class ServiceResponseEvent (line 39) | class ServiceResponseEvent
  class IENotificationEventConsumer (line 40) | class IENotificationEventConsumer
  class Channel (line 41) | class Channel
  class ResponseEvent (line 42) | class ResponseEvent
  class ProxyConnectEvent (line 43) | class ProxyConnectEvent
  function StreamableEvent (line 63) | class AREG_API ProxyEvent  : public StreamableEvent
  function IEProxyEventConsumer (line 162) | class AREG_API IEProxyEventConsumer : public IEEventConsumer
  function ProxyAddress (line 277) | inline const ProxyAddress & ProxyEvent::getTargetProxy( void ) const

FILE: framework/areg/component/RemoteEventFactory.hpp
  class RemoteResponseEvent (line 26) | class RemoteResponseEvent
  class StreamableEvent (line 27) | class StreamableEvent
  class RemoteMessage (line 28) | class RemoteMessage
  class Channel (line 29) | class Channel
  function RemoteEventFactory (line 43) | class AREG_API RemoteEventFactory

FILE: framework/areg/component/RequestEvents.hpp
  class RequestEvent (line 30) | class RequestEvent
  class LocalRequestEvent (line 31) | class LocalRequestEvent
  class RemoteRequestEvent (line 32) | class RemoteRequestEvent
  class NotifyRequestEvent (line 34) | class NotifyRequestEvent
  class LocalNotifyRequestEvent (line 35) | class LocalNotifyRequestEvent
  class RemoteNotifyRequestEvent (line 36) | class RemoteNotifyRequestEvent
  function ServiceRequestEvent (line 66) | class AREG_API RequestEvent    : public ServiceRequestEvent
  function LocalRequestEvent (line 201) | class AREG_API LocalRequestEvent  : public    RequestEvent
  function RemoteRequestEvent (line 266) | class AREG_API RemoteRequestEvent : public    RequestEvent
  function ServiceRequestEvent (line 356) | class AREG_API NotifyRequestEvent : public ServiceRequestEvent
  function LocalNotifyRequestEvent (line 408) | class AREG_API LocalNotifyRequestEvent    : public    NotifyRequestEvent
  function RemoteNotifyRequestEvent (line 458) | class AREG_API RemoteNotifyRequestEvent    : public    NotifyRequestEvent
  function EventData (line 532) | inline const EventData & RequestEvent::getData( void ) const
  function EventData (line 542) | inline EventData& RequestEvent::getData( void )
  function IEInStream (line 547) | inline const IEInStream & RequestEvent::getReadStream( void ) const
  function IEOutStream (line 552) | inline IEOutStream & RequestEvent::getWriteStream( void )
  function Channel (line 566) | inline const Channel & RemoteRequestEvent::getTargetChannel( void ) const
  function Channel (line 576) | inline const Channel & RemoteRequestEvent::getSourceChannel( void ) const
  function Channel (line 590) | inline const Channel & RemoteNotifyRequestEvent::getTargetChannel( void ...
  function Channel (line 600) | inline const Channel & RemoteNotifyRequestEvent::getSourceChannel( void ...

FILE: framework/areg/component/ResponseEvents.hpp
  class ResponseEvent (line 30) | class ResponseEvent
  class LocalResponseEvent (line 31) | class LocalResponseEvent
  class RemoteResponseEvent (line 32) | class RemoteResponseEvent
  function ServiceResponseEvent (line 57) | class AREG_API ResponseEvent   : public ServiceResponseEvent
  function LocalResponseEvent (line 200) | class AREG_API LocalResponseEvent : public    ResponseEvent
  function RemoteResponseEvent (line 278) | class AREG_API RemoteResponseEvent: public    ResponseEvent
  function EventData (line 366) | inline const EventData & ResponseEvent::getData( void ) const
  function EventData (line 376) | inline EventData & ResponseEvent::getData( void )
  function IEInStream (line 381) | inline const IEInStream & ResponseEvent::getReadStream( void ) const
  function IEOutStream (line 386) | inline IEOutStream & ResponseEvent::getWriteStream( void )
  function Channel (line 400) | inline const Channel & RemoteResponseEvent::getTargetChannel( void ) const

FILE: framework/areg/component/ServiceAddress.hpp
  class StubAddress (line 30) | class StubAddress
  class ProxyAddress (line 31) | class ProxyAddress
  function ServiceAddress (line 41) | class AREG_API ServiceAddress : public    ServiceItem
  type std (line 251) | namespace std
    type hash<ServiceAddress> (line 254) | struct hash<ServiceAddress>
  function ServiceAddress (line 268) | inline ServiceAddress & ServiceAddress::operator = ( const ServiceAddres...
  function ServiceAddress (line 280) | inline ServiceAddress & ServiceAddress::operator = ( ServiceAddress && s...
  function String (line 307) | inline const String & ServiceAddress::getRoleName(void) const
  function ServiceItem (line 319) | inline const ServiceItem & ServiceAddress::getService( void ) const
  function IEInStream (line 333) | inline const IEInStream & operator >> ( const IEInStream & stream, Servi...
  function IEOutStream (line 342) | inline IEOutStream & operator << ( IEOutStream & stream, const ServiceAd...

FILE: framework/areg/component/ServiceItem.hpp
  class IEInStream (line 33) | class IEInStream
  function ServiceItem (line 43) | class AREG_API ServiceItem
  type std (line 286) | namespace std
    type hash<ServiceItem> (line 289) | struct hash<ServiceItem>
  function String (line 303) | inline const String & ServiceItem::getServiceName( void ) const
  function Version (line 315) | inline const Version & ServiceItem::getServiceVersion( void ) const
  function ServiceItem (line 354) | inline ServiceItem & ServiceItem::operator = ( const ServiceItem & source )
  function ServiceItem (line 367) | inline ServiceItem & ServiceItem::operator = ( ServiceItem && source ) n...
  function IEInStream (line 400) | inline const IEInStream & operator >> ( const IEInStream & stream, Servi...
  function IEOutStream (line 411) | inline IEOutStream & operator << ( IEOutStream & stream, const ServiceIt...

FILE: framework/areg/component/ServiceRequestEvent.hpp
  class StubAddress (line 31) | class StubAddress
  class ProxyAddress (line 32) | class ProxyAddress
  class ComponentAddress (line 33) | class ComponentAddress
  function ServiceRequestEvent (line 52) | class AREG_API ServiceRequestEvent : public StubEvent
  function ProxyAddress (line 180) | inline const ProxyAddress & ServiceRequestEvent::getEventSource( void ) ...
  function SequenceNumber (line 200) | inline const SequenceNumber & ServiceRequestEvent::getSequenceNumber( vo...

FILE: framework/areg/component/ServiceResponseEvent.hpp
  class ProxyAddress (line 30) | class ProxyAddress
  function ServiceResponseEvent (line 48) | class AREG_API ServiceResponseEvent    : public ProxyEvent
  function SequenceNumber (line 207) | inline const SequenceNumber & ServiceResponseEvent::getSequenceNumber( v...

FILE: framework/areg/component/StreamableEvent.hpp
  function StreamableEvent (line 36) | class AREG_API StreamableEvent : public Event

FILE: framework/areg/component/StubAddress.hpp
  class IEInStream (line 30) | class IEInStream
  class ProxyAddress (line 31) | class ProxyAddress
  class ServiceRequestEvent (line 32) | class ServiceRequestEvent
  function ServiceAddress (line 51) | class AREG_API StubAddress    : public    ServiceAddress
  type std (line 387) | namespace std
    type hash<StubAddress> (line 390) | struct hash<StubAddress>
    type equal_to<StubAddress> (line 400) | struct equal_to<StubAddress>
  function StubAddress (line 418) | inline StubAddress & StubAddress::operator = ( const StubAddress & source )
  function StubAddress (line 431) | inline StubAddress & StubAddress::operator = ( StubAddress && source ) n...
  function StubAddress (line 444) | inline StubAddress & StubAddress::operator = (const ServiceAddress & add...
  function StubAddress (line 457) | inline StubAddress & StubAddress::operator = ( ServiceAddress && addrSer...
  function String (line 520) | inline const String & StubAddress::getThread( void ) const
  function Channel (line 525) | inline const Channel & StubAddress::getChannel(void) const
  function ITEM_ID (line 535) | inline const ITEM_ID & StubAddress::getCookie( void ) const
  function ITEM_ID (line 545) | inline const ITEM_ID & StubAddress::getSource( void ) const
  function StubAddress (line 555) | inline StubAddress& StubAddress::self(void)

FILE: framework/areg/component/StubBase.hpp
  class RemoteNotifyRequestEvent (line 40) | class RemoteNotifyRequestEvent
  class ServiceResponseEvent (line 41) | class ServiceResponseEvent
  class RemoteRequestEvent (line 42) | class RemoteRequestEvent
  class ComponentThread (line 43) | class ComponentThread
  class EventDataStream (line 44) | class EventDataStream
  class ResponseEvent (line 45) | class ResponseEvent
  class Component (line 46) | class Component
  class AREG_API (line 57) | class AREG_API
  class AREG_API (line 89) | class AREG_API

FILE: framework/areg/component/StubEvent.hpp
  class StubEvent (line 43) | class StubEvent
  class IEStubEventConsumer (line 45) | class IEStubEventConsumer
  class ServiceRequestEvent (line 50) | class ServiceRequestEvent
  class RequestEvent (line 51) | class RequestEvent
  class NotifyRequestEvent (line 52) | class NotifyRequestEvent
  class StubConnectEvent (line 53) | class StubConnectEvent
  function StreamableEvent (line 73) | class AREG_API StubEvent  : public StreamableEvent
  function IEStubEventConsumer (line 178) | class AREG_API IEStubEventConsumer  : public IEEventConsumer
  function StubAddress (line 313) | inline const StubAddress & StubEvent::getTargetStub( void ) const
  function Event (line 318) | inline const Event* IEStubEventConsumer::getCurrentEvent(void) const

FILE: framework/areg/component/TEEvent.hpp
  class __ (line 132) | class __##ConsumerClass : public    IEEventConsumer                     ...
    class __ (line 175) | class __
  class __ (line 170) | class __##EventClass : public   Event                                   ...
    class __ (line 175) | class __
  function DATA_CLASS (line 563) | inline const DATA_CLASS & __##EventClass<DATA_CLASS>::getData( void ) co...
  class __ (line 618) | class __
    class __ (line 175) | class __

FILE: framework/areg/component/Timer.hpp
  class IETimerConsumer (line 30) | class IETimerConsumer
  class DispatcherThread (line 31) | class DispatcherThread
  function TimerBase (line 44) | class AREG_API Timer : public TimerBase
  function Timer (line 287) | inline Timer & Timer::self( void )
  function IETimerConsumer (line 292) | inline IETimerConsumer& Timer::getConsumer( void ) const

FILE: framework/areg/component/TimerBase.hpp
  function TimerBase (line 39) | class AREG_API TimerBase
  function String (line 248) | inline const String & TimerBase::getName( void ) const
  function TIMERHANDLE (line 268) | inline TIMERHANDLE TimerBase::getHandle(void) const

FILE: framework/areg/component/WorkerThread.hpp
  class Component (line 30) | class Component
  class ComponentThread (line 31) | class ComponentThread
  class IEWorkerThreadConsumer (line 32) | class IEWorkerThreadConsumer
  function DispatcherThread (line 70) | class AREG_API WorkerThread    : public DispatcherThread
  function Component (line 232) | inline Component& WorkerThread::getBindingComponent( void ) const
  function WorkerThread (line 237) | inline WorkerThread& WorkerThread::self( void )

FILE: framework/areg/component/private/Channel.cpp
  function Channel (line 20) | const Channel & Channel::getInvalidChannel( void )
  function Channel (line 54) | Channel & Channel::operator = ( const Channel & source )
  function Channel (line 62) | Channel & Channel::operator = ( Channel && source ) noexcept
  function String (line 70) | String Channel::convToString( void ) const
  function Channel (line 79) | const Channel & Channel::convFromString(const String & channel)

FILE: framework/areg/component/private/ClientInfo.cpp
  function ClientInfo (line 32) | const ClientInfo & ClientInfo::getInvalidClientInfo( void )
  function ClientInfo (line 78) | ClientInfo & ClientInfo::operator = ( const ClientInfo & src )
  function ClientInfo (line 86) | ClientInfo & ClientInfo::operator = ( ClientInfo && src ) noexcept
  function ClientInfo (line 94) | ClientInfo & ClientInfo::operator = ( const ProxyAddress & client )
  function ClientInfo (line 101) | ClientInfo & ClientInfo::operator = ( ProxyAddress && client ) noexcept

FILE: framework/areg/component/private/ClientInfo.hpp
  class StubAddress (line 25) | class StubAddress
  class ClientInfo (line 34) | class ClientInfo
  type std (line 204) | namespace std
    type hash<ClientInfo> (line 207) | struct hash<ClientInfo>
  function ProxyAddress (line 226) | inline const ProxyAddress & ClientInfo::getAddress( void ) const

FILE: framework/areg/component/private/ClientList.cpp
  function ClientInfo (line 33) | const ClientInfo & ClientList::getClient( const ProxyAddress & whichClie...
  function ClientInfo (line 39) | const ClientInfo & ClientList::registerClient( const ProxyAddress & whic...

FILE: framework/areg/component/private/ClientList.hpp
  class ProxyAddress (line 28) | class ProxyAddress
  class ServerInfo (line 29) | class ServerInfo
  class ClientList (line 38) | class ClientList    : public ClientListBase
    method ClientList (line 47) | ClientList( void ) = default;
    method ClientList (line 53) | ClientList( const ClientList & src ) = default;
    method ClientList (line 59) | ClientList( ClientList && src ) noexcept = default;
    method ClientList (line 74) | ClientList & operator = ( const ClientList & src ) = default;
    method ClientList (line 80) | ClientList & operator = ( ClientList && src ) noexcept = default;

FILE: framework/areg/component/private/Component.cpp
  function Component (line 41) | Component* Component::loadComponent(const NERegistry::ComponentEntry &en...
  function Component (line 86) | Component* Component::findComponentByName( const String & roleName )
  function Component (line 93) | Component * Component::findComponentByNumber(unsigned int magicNum)
  function Component (line 100) | Component* Component::findComponentByAddress( const ComponentAddress& co...
  function ComponentThread (line 112) | ComponentThread& Component::_getCurrentComponentThread( void )
  function WorkerThread (line 161) | WorkerThread* Component::createWorkerThread(  const String & threadName
  function StubBase (line 256) | StubBase* Component::findServerByName( const String & serviceName )
  function IEWorkerThreadConsumer (line 284) | IEWorkerThreadConsumer* Component::workerThreadConsumer( const String & ...

FILE: framework/areg/component/private/ComponentAddress.cpp
  function ComponentAddress (line 46) | const ComponentAddress & ComponentAddress::getInvalidComponentAddress( v...
  function String (line 129) | String ComponentAddress::convToString(void) const
  function String (line 169) | String ComponentAddress::convAddressToPath( const ComponentAddress& comp...
  function ComponentAddress (line 174) | ComponentAddress ComponentAddress::convPathToAddress( const char* compon...

FILE: framework/areg/component/private/ComponentInfo.cpp
  function DispatcherThread (line 49) | DispatcherThread * ComponentInfo::findEventConsumer( const RuntimeClassI...

FILE: framework/areg/component/private/ComponentInfo.hpp
  class ComponentThread (line 32) | class ComponentThread
  class WorkerThread (line 33) | class WorkerThread
  class DispatcherThread (line 34) | class DispatcherThread
  function ComponentInfo (line 47) | class AREG_API ComponentInfo
  function ComponentThread (line 274) | inline ComponentThread& ComponentInfo::getMasterThread( void ) const
  function ComponentAddress (line 279) | inline const ComponentAddress& ComponentInfo::getAddress( void ) const
  function String (line 284) | inline const String& ComponentInfo::getRoleName( void ) const
  function WorkerThread (line 294) | inline WorkerThread* ComponentInfo::findWorkerThread( const ThreadAddres...
  function WorkerThread (line 299) | inline WorkerThread* ComponentInfo::findWorkerThread( const String & thr...
  function WorkerThread (line 305) | inline WorkerThread* ComponentInfo::findThreadByPath( const String & com...
  function WorkerThread (line 311) | inline WorkerThread* ComponentInfo::getFirstWorkerThread( ThreadAddress ...
  function WorkerThread (line 316) | inline WorkerThread* ComponentInfo::getNextWorkerThread( ThreadAddress &...
  function WorkerThread (line 321) | inline WorkerThread* ComponentInfo::removeFirstWorkerThread(ThreadAddres...

FILE: framework/areg/component/private/ComponentLoader.cpp
  function ComponentLoader (line 50) | ComponentLoader & ComponentLoader::getInstance( void )

FILE: framework/areg/component/private/ComponentThread.cpp
  function Component (line 36) | Component* ComponentThread::getCurrentComponent( void )
  function ComponentThread (line 50) | inline ComponentThread & ComponentThread::self( void )
  function ComponentThread (line 55) | inline ComponentThread* ComponentThread::_getCurrentComponentThread( void )
  function DispatcherThread (line 158) | DispatcherThread* ComponentThread::getEventConsumerThread( const Runtime...

FILE: framework/areg/component/private/DispatcherThread.cpp
  function NullDispatcherThread (line 43) | class AREG_API NullDispatcherThread    : public ComponentThread
  function DispatcherThread (line 198) | DispatcherThread & DispatcherThread::_getNullDispatherThread( void )
  function DispatcherThread (line 259) | DispatcherThread* DispatcherThread::getEventConsumerThread( const Runtim...
  function DispatcherThread (line 288) | DispatcherThread * DispatcherThread::findEventConsumerThread( const Runt...

FILE: framework/areg/component/private/Event.cpp
  function Event (line 97) | inline Event & Event::self( void )
  function EventDispatcher (line 111) | EventDispatcher& Event::getDispatcher( void ) const

FILE: framework/areg/component/private/EventConsumerMap.hpp
  class EventConsumerList (line 30) | class EventConsumerList
    method EventConsumerList (line 66) | EventConsumerList( void ) = default;
    method EventConsumerList (line 71) | EventConsumerList(const EventConsumerList & src) = default;
    method EventConsumerList (line 76) | EventConsumerList( EventConsumerList && src ) noexcept = default;
    method EventConsumerList (line 90) | inline EventConsumerList & operator = (const EventConsumerList & src )...
    method EventConsumerList (line 96) | inline EventConsumerList & operator = ( EventConsumerList && src ) noe...
  class IEEventConsumer (line 35) | class IEEventConsumer
  class EventConsumerList (line 57) | class EventConsumerList   : public EventConsumerListBase
    method EventConsumerList (line 66) | EventConsumerList( void ) = default;
    method EventConsumerList (line 71) | EventConsumerList(const EventConsumerList & src) = default;
    method EventConsumerList (line 76) | EventConsumerList( EventConsumerList && src ) noexcept = default;
    method EventConsumerList (line 90) | inline EventConsumerList & operator = (const EventConsumerList & src )...
    method EventConsumerList (line 96) | inline EventConsumerList & operator = ( EventConsumerList && src ) noe...
  class ImplEventConsumerMap (line 139) | class ImplEventConsumerMap	: public TEResourceMapImpl<RuntimeClassID, Ev...

FILE: framework/areg/component/private/EventData.cpp
  function EventData (line 62) | EventData & EventData::operator = (const EventData & src)
  function EventData (line 69) | EventData & EventData::operator = ( EventData && src ) noexcept

FILE: framework/areg/component/private/EventDataStream.cpp
  function EventDataStream (line 103) | EventDataStream & EventDataStream::operator = ( const EventDataStream & ...
  function EventDataStream (line 115) | EventDataStream & EventDataStream::operator = ( EventDataStream && src )...

FILE: framework/areg/component/private/EventDispatcherBase.cpp
  function Event (line 275) | Event* EventDispatcherBase::pickEvent( void )

FILE: framework/areg/component/private/EventDispatcherBase.hpp
  class DispatcherThread (line 43) | class DispatcherThread
  class AREG_API (line 58) | class AREG_API
  function EventDispatcherBase (line 408) | inline EventDispatcherBase& EventDispatcherBase::self( void )

FILE: framework/areg/component/private/EventQueue.cpp
  function Event (line 46) | Event* EventQueue::popEvent( void )
  function InternalEventQueue (line 110) | inline InternalEventQueue & InternalEventQueue::self( void )

FILE: framework/areg/component/private/EventQueue.hpp
  class Event (line 29) | class Event
  class RuntimeClassID (line 30) | class RuntimeClassID
  function EventQueue (line 41) | class AREG_API EventQueue
  function ExternalEventQueue (line 169) | class AREG_API ExternalEventQueue   : public    EventQueue
  class AREG_API (line 214) | class AREG_API

FILE: framework/areg/component/private/ExitEvent.cpp
  function ExitEvent (line 28) | ExitEvent & ExitEvent::getExitEvent( void )

FILE: framework/areg/component/private/ExitEvent.hpp
  class ExitEvent (line 28) | class ExitEvent : public Event

FILE: framework/areg/component/private/IEEventDispatcher.hpp
  class Event (line 29) | class Event
  class RuntimeClassID (line 30) | class RuntimeClassID
  class IEEventConsumer (line 31) | class IEEventConsumer
  function IEEventDispatcher (line 46) | class AREG_API IEEventDispatcher

FILE: framework/areg/component/private/IEQueueListener.hpp
  class Event (line 30) | class Event
  function IEQueueListener (line 41) | class AREG_API IEQueueListener

FILE: framework/areg/component/private/NERegistry.cpp
  function AREG_API_IMPL (line 34) | AREG_API_IMPL const NERegistry::ServiceEntry & NERegistry::invalidServic...
  function AREG_API_IMPL (line 43) | AREG_API_IMPL const NERegistry::ServiceList & NERegistry::invalidService...
  function AREG_API_IMPL (line 52) | AREG_API_IMPL const NERegistry::WorkerThreadEntry & NERegistry::invalidW...
  function AREG_API_IMPL (line 61) | AREG_API_IMPL const NERegistry::WorkerThreadList & NERegistry::invalidWo...
  function AREG_API_IMPL (line 70) | AREG_API_IMPL const NERegistry::DependencyEntry & NERegistry::invalidDep...
  function AREG_API_IMPL (line 79) | AREG_API_IMPL const NERegistry::DependencyList & NERegistry::invalidDepe...
  function AREG_API_IMPL (line 88) | AREG_API_IMPL const NERegistry::ComponentEntry & NERegistry::invalidComp...
  function AREG_API_IMPL (line 97) | AREG_API_IMPL const NERegistry::ComponentList & NERegistry::invalidCompo...
  function AREG_API_IMPL (line 106) | AREG_API_IMPL const NERegistry::ComponentThreadEntry & NERegistry::inval...
  function AREG_API_IMPL (line 115) | AREG_API_IMPL const NERegistry::ComponentThreadList & NERegistry::invali...
  function AREG_API_IMPL (line 124) | AREG_API_IMPL const NERegistry::Model & NERegistry::invalidModel( void )
  function String (line 322) | const String & NERegistry::DependencyEntry::getDepdendentService( void )...
  function String (line 1045) | const String & NERegistry::Model::getModelName( void ) const

FILE: framework/areg/component/private/NEService.cpp
  function AREG_API_IMPL (line 242) | AREG_API_IMPL NEService::SInterfaceData & NEService::getEmptyInterface(v...

FILE: framework/areg/component/private/NotificationEvent.cpp
  function NotificationEventData (line 52) | NotificationEventData & NotificationEventData::operator = ( const Notifi...
  function NotificationEventData (line 65) | NotificationEventData & NotificationEventData::operator = ( Notification...

FILE: framework/areg/component/private/ProxyAddress.cpp
  function ProxyAddress (line 57) | const ProxyAddress & ProxyAddress::getInvalidProxyAddress()
  function String (line 66) | String ProxyAddress::convAddressToPath( const ProxyAddress & proxyAddress )
  function ProxyAddress (line 71) | ProxyAddress ProxyAddress::convPathToAddress( const char* pathProxy, con...
  function String (line 250) | String ProxyAddress::convToString(void) const
  function AREG_API_IMPL (line 290) | AREG_API_IMPL const IEInStream & operator >> ( const IEInStream & stream...
  function AREG_API_IMPL (line 303) | AREG_API_IMPL IEOutStream & operator << ( IEOutStream & stream, const Pr...

FILE: framework/areg/component/private/ProxyBase.cpp
  function RemoteResponseEvent (line 248) | RemoteResponseEvent * ProxyBase::createRequestFailureEvent(const ProxyAd...
  function RemoteResponseEvent (line 650) | RemoteResponseEvent * ProxyBase::createRemoteResponseEvent(const IEInStr...
  function RemoteResponseEvent (line 655) | RemoteResponseEvent * ProxyBase::createRemoteRequestFailedEvent(  const ...

FILE: framework/areg/component/private/ProxyConnectEvent.cpp
  function IEInStream (line 55) | const IEInStream & ProxyConnectEvent::readStream(const IEInStream & stream)
  function IEOutStream (line 63) | IEOutStream & ProxyConnectEvent::writeStream(IEOutStream & stream) const

FILE: framework/areg/component/private/ProxyConnectEvent.hpp
  class ProxyConnectEvent (line 37) | class ProxyConnectEvent   : public ServiceResponseEvent
    method ProxyConnectEvent (line 135) | ProxyConnectEvent( void ) = delete;
  function StubAddress (line 143) | inline const StubAddress & ProxyConnectEvent::getStubAddress( void ) const

FILE: framework/areg/component/private/ProxyEvent.cpp
  function IEInStream (line 69) | const IEInStream & ProxyEvent::readStream( const IEInStream & stream )
  function IEOutStream (line 76) | IEOutStream & ProxyEvent::writeStream( IEOutStream & stream ) const

FILE: framework/areg/component/private/RemoteEventFactory.cpp
  function StreamableEvent (line 33) | StreamableEvent * RemoteEventFactory::createEventFromStream( const Remot...
  function StreamableEvent (line 289) | StreamableEvent * RemoteEventFactory::createRequestFailedEvent( const Re...

FILE: framework/areg/component/private/RequestEvents.cpp
  function IEInStream (line 59) | const IEInStream & RequestEvent::readStream(const IEInStream & stream)
  function IEOutStream (line 66) | IEOutStream & RequestEvent::writeStream(IEOutStream & stream) const

FILE: framework/areg/component/private/ResponseEvents.cpp
  function IEInStream (line 65) | const IEInStream & ResponseEvent::readStream(const IEInStream & stream)
  function IEOutStream (line 72) | IEOutStream & ResponseEvent::writeStream(IEOutStream & stream) const

FILE: framework/areg/component/private/ServerInfo.cpp
  function ServerInfo (line 68) | ServerInfo & ServerInfo::operator = ( const ServerInfo & src )
  function ServerInfo (line 76) | ServerInfo & ServerInfo::operator = ( ServerInfo && src ) noexcept
  function ServerInfo (line 84) | ServerInfo & ServerInfo::operator = ( const StubAddress & server )
  function ServerInfo (line 92) | ServerInfo & ServerInfo::operator = ( StubAddress && server ) noexcept
  function ServerInfo (line 100) | ServerInfo & ServerInfo::operator = (const ServiceAddress & addService)
  function ServerInfo (line 108) | ServerInfo & ServerInfo::operator = ( ServiceAddress && addService ) noe...

FILE: framework/areg/component/private/ServerInfo.hpp
  class ClientInfo (line 29) | class ClientInfo
  class ServerInfo (line 41) | class ServerInfo
  type std (line 214) | namespace std
    type hash<ServerInfo> (line 217) | struct hash<ServerInfo>
    type equal_to<ServerInfo> (line 227) | struct equal_to<ServerInfo>
  function StubAddress (line 241) | inline const StubAddress& ServerInfo::getAddress( void ) const

FILE: framework/areg/component/private/ServerList.cpp
  function ServerInfo (line 58) | const ServerInfo & ServerList::registerClient( const ProxyAddress & whic...
  function ServerInfo (line 79) | ServerInfo ServerList::unregisterClient( const ProxyAddress & whichClien...
  function ServerInfo (line 114) | const ServerInfo & ServerList::registerServer( const StubAddress & addrS...
  function ServerInfo (line 145) | ServerInfo ServerList::unregisterServer( const StubAddress & whichServer...
  function ClientList (line 185) | const ClientList & ServerList::getClientList(const StubAddress & whichSe...
  function ServerInfo (line 197) | const ServerInfo * ServerList::findClientServer(const ProxyAddress & whi...

FILE: framework/areg/component/private/ServerList.hpp
  class StubAddress (line 30) | class StubAddress
  class ProxyAddress (line 31) | class ProxyAddress
  class ServerList (line 50) | class ServerList  : public ServerListBase
    method ServerList (line 60) | ServerList( void ) = default;

FILE: framework/areg/component/private/ServiceAddress.cpp
  function String (line 27) | String ServiceAddress::convAddressToPath( const ServiceAddress & addServ...
  function ServiceAddress (line 32) | ServiceAddress ServiceAddress::convPathToAddress( const char * pathServi...
  function String (line 105) | String ServiceAddress::convToString(void) const

FILE: framework/areg/component/private/ServiceItem.cpp
  function String (line 22) | String ServiceItem::convAddressToPath( const ServiceItem & service )
  function ServiceItem (line 27) | ServiceItem ServiceItem::convPathToAddress( const char* pathService, con...
  function String (line 88) | String ServiceItem::convToString(void) const

FILE: framework/areg/component/private/ServiceManager.cpp
  function ServiceManager (line 56) | ServiceManager & ServiceManager::getInstance( void )

FILE: framework/areg/component/private/ServiceManager.hpp
  class StubAddress (line 36) | class StubAddress
  class ProxyAddress (line 37) | class ProxyAddress
  class ServiceRequestEvent (line 38) | class ServiceRequestEvent
  class ServiceResponseEvent (line 39) | class ServiceResponseEvent
  class ServiceManager (line 67) | class ServiceManager    : private   DispatcherThread
  function IEServiceConnectionProvider (line 470) | inline IEServiceConnectionProvider& ServiceManager::getServiceConnection...
  function IEServiceRegisterProvider (line 475) | inline IEServiceRegisterProvider& ServiceManager::getServiceRegisterProv...
  function ServiceManager (line 480) | inline ServiceManager & ServiceManager::self( void )

FILE: framework/areg/component/private/ServiceManagerEventProcessor.hpp
  class IEServiceConnectionProvider (line 30) | class IEServiceConnectionProvider
  class IEServiceRegisterProvider (line 31) | class IEServiceRegisterProvider
  class ServiceManager (line 32) | class ServiceManager
  class ProxyAddress (line 33) | class ProxyAddress
  class StubAddress (line 34) | class StubAddress
  class IEInStream (line 35) | class IEInStream
  class ServiceManagerEventProcessor (line 44) | class ServiceManagerEventProcessor
    method ServiceManagerEventProcessor (line 172) | ServiceManagerEventProcessor( void ) = delete;
  function ServerList (line 180) | inline const ServerList & ServiceManagerEventProcessor::getRegisteredSer...

FILE: framework/areg/component/private/ServiceManagerEvents.cpp
  function ServiceManagerEventData (line 27) | ServiceManagerEventData ServiceManagerEventData::stopMessageRouterClient...
  function ServiceManagerEventData (line 32) | ServiceManagerEventData ServiceManagerEventData::shutdownServiceManager(...
  function ServiceManagerEventData (line 37) | ServiceManagerEventData ServiceManagerEventData::registerProxy(const Pro...
  function ServiceManagerEventData (line 46) | ServiceManagerEventData ServiceManagerEventData::unregisterProxy( const ...
  function ServiceManagerEventData (line 56) | ServiceManagerEventData ServiceManagerEventData::registerStub(const Stub...
  function ServiceManagerEventData (line 65) | ServiceManagerEventData ServiceManagerEventData::unregisterStub( const S...
  function ServiceManagerEventData (line 75) | ServiceManagerEventData ServiceManagerEventData::configureConnection(NER...
  function ServiceManagerEventData (line 84) | ServiceManagerEventData ServiceManagerEventData::startConnection(NERemot...
  function ServiceManagerEventData (line 93) | ServiceManagerEventData ServiceManagerEventData::startNetConnection( con...
  function ServiceManagerEventData (line 102) | ServiceManagerEventData ServiceManagerEventData::stopConnection(void)
  function ServiceManagerEventData (line 107) | ServiceManagerEventData ServiceManagerEventData::registerConnection(cons...
  function ServiceManagerEventData (line 115) | ServiceManagerEventData ServiceManagerEventData::unregisterConnection(co...
  function ServiceManagerEventData (line 123) | ServiceManagerEventData ServiceManagerEventData::lostConnection(const Ch...
  function ServiceManagerEventData (line 131) | ServiceManagerEventData ServiceManagerEventData::terminateComponentThrea...
  function ServiceManagerEventData (line 139) | ServiceManagerEventData ServiceManagerEventData::createComponentThread(c...

FILE: framework/areg/component/private/ServiceManagerEvents.hpp
  class ProxyAddress (line 31) | class ProxyAddress
  class StubAddress (line 32) | class StubAddress
  class Channel (line 33) | class Channel
  class String (line 34) | class String
  class ServiceManagerEventData (line 44) | class ServiceManagerEventData
    type E_ServiceManagerCommands (line 53) | enum class E_ServiceManagerCommands
    method ServiceManagerEventData (line 244) | ServiceManagerEventData( void ) = delete;
  function ServiceManagerEventData (line 274) | inline ServiceManagerEventData & ServiceManagerEventData::operator = (co...
    type E_ServiceManagerCommands (line 53) | enum class E_ServiceManagerCommands
    method ServiceManagerEventData (line 244) | ServiceManagerEventData( void ) = delete;
  function ServiceManagerEventData (line 282) | inline ServiceManagerEventData & ServiceManagerEventData::operator = ( S...
    type E_ServiceManagerCommands (line 53) | enum class E_ServiceManagerCommands
    method ServiceManagerEventData (line 244) | ServiceManagerEventData( void ) = delete;
  function IEInStream (line 290) | inline const IEInStream & ServiceManagerEventData::getReadStream( void )...
  function IEOutStream (line 295) | inline IEOutStream & ServiceManagerEventData::getWriteStream( void )

FILE: framework/areg/component/private/ServiceRequestEvent.cpp
  function IEInStream (line 56) | const IEInStream & ServiceRequestEvent::readStream(const IEInStream & st...
  function IEOutStream (line 66) | IEOutStream & ServiceRequestEvent::writeStream(IEOutStream & stream) const

FILE: framework/areg/component/private/ServiceResponseEvent.cpp
  function ServiceResponseEvent (line 53) | ServiceResponseEvent* ServiceResponseEvent::cloneForTarget( const ProxyA...
  function IEInStream (line 58) | const IEInStream & ServiceResponseEvent::readStream( const IEInStream & ...
  function IEOutStream (line 67) | IEOutStream & ServiceResponseEvent::writeStream( IEOutStream & stream ) ...

FILE: framework/areg/component/private/SortedEventStack.hpp
  class RuntimeClassID (line 26) | class RuntimeClassID
  class SortedEventStack (line 51) | class SortedEventStack  : protected TELockStack<Event *>

FILE: framework/areg/component/private/StreamableEvent.cpp
  function IEInStream (line 44) | const IEInStream & StreamableEvent::readStream( const IEInStream & stream )
  function IEOutStream (line 49) | IEOutStream & StreamableEvent::writeStream( IEOutStream & stream ) const

FILE: framework/areg/component/private/StubAddress.cpp
  function String (line 46) | String StubAddress::convAddressToPath( const StubAddress & stubAddress )
  function StubAddress (line 51) | StubAddress StubAddress::convPathToAddress( const char* pathStub, const ...
  function StubAddress (line 58) | const StubAddress & StubAddress::getInvalidStubAddress( void )
  function String (line 231) | String StubAddress::convToString(void) const
  function AREG_API_IMPL (line 284) | AREG_API_IMPL const IEInStream & operator >> ( const IEInStream & stream...
  function AREG_API_IMPL (line 297) | AREG_API_IMPL IEOutStream & operator << ( IEOutStream & stream, const St...

FILE: framework/areg/component/private/StubBase.cpp
  function SessionID (line 108) | SessionID StubBase::unblockCurrentRequest( void )
  function ComponentThread (line 263) | ComponentThread & StubBase::getComponentThread( void ) const
  function StubBase (line 268) | StubBase* StubBase::findStubByAddress( const StubAddress& address )
  function Version (line 525) | const Version & StubBase::getImplVersion( void ) const
  function ResponseEvent (line 560) | ResponseEvent * StubBase::createResponseEvent( const ProxyAddress &     ...
  function RemoteRequestEvent (line 568) | RemoteRequestEvent * StubBase::createRemoteRequestEvent( const IEInStrea...
  function RemoteNotifyRequestEvent (line 573) | RemoteNotifyRequestEvent * StubBase::createRemoteNotifyRequestEvent( con...

FILE: framework/areg/component/private/StubConnectEvent.cpp
  function IEInStream (line 50) | const IEInStream & StubConnectEvent::readStream(const IEInStream & stream)
  function IEOutStream (line 57) | IEOutStream & StubConnectEvent::writeStream(IEOutStream & stream) const

FILE: framework/areg/component/private/StubConnectEvent.hpp
  class StubConnectEvent (line 29) | class StubConnectEvent  : public    ServiceRequestEvent
    method StubConnectEvent (line 108) | StubConnectEvent( void ) = delete;

FILE: framework/areg/component/private/StubEvent.cpp
  function IEInStream (line 52) | const IEInStream & StubEvent::readStream( const IEInStream & stream )
  function IEOutStream (line 59) | IEOutStream & StubEvent::writeStream( IEOutStream & stream ) const

FILE: framework/areg/component/private/TimerEventData.hpp
  class TimerEventData (line 27) | class TimerEventData
  class TimerEvent (line 28) | class TimerEvent
  class Timer (line 33) | class Timer
  function TimerEventData (line 42) | class AREG_API TimerEventData
  function TimerEventBase (line 120) | class AREG_API TimerEvent : public TimerEventBase
  function Timer (line 213) | inline Timer* TimerEventData::getTimer( void ) const
  function TimerEventData (line 218) | inline TimerEventData & TimerEventData::operator = ( const TimerEventDat...
  function TimerEventData (line 224) | inline TimerEventData & TimerEventData::operator = ( TimerEventData && s...

FILE: framework/areg/component/private/TimerManager.cpp
  function TimerManager (line 37) | TimerManager & TimerManager::getInstance( void )

FILE: framework/areg/component/private/TimerManager.hpp
  class Timer (line 31) | class Timer
  class TimerPosix (line 32) | class TimerPosix
  class TimerManager (line 55) | class TimerManager  : protected TimerManagerBase

FILE: framework/areg/component/private/TimerManagerBase.hpp
  class TimerBase (line 29) | class TimerBase
  class TimerManagerBase (line 40) | class TimerManagerBase  : protected DispatcherThread
    method TimerManagerBase (line 127) | TimerManagerBase(void) = delete;
  function TimerManagerBase (line 135) | inline TimerManagerBase& TimerManagerBase::self( void )
    method TimerManagerBase (line 127) | TimerManagerBase(void) = delete;

FILE: framework/areg/component/private/TimerManagerEvent.hpp
  class TimerManagerEventData (line 31) | class TimerManagerEventData
  class Timer (line 52) | class Timer
  class TimerManagerEventData (line 65) | class TimerManagerEventData
  function TimerManagerEventData (line 155) | inline TimerManagerEventData& TimerManagerEventData::operator = (const T...
  function TimerBase (line 161) | inline TimerBase* TimerManagerEventData::getTimer(void) const

FILE: framework/areg/component/private/Watchdog.hpp
  class ComponentThread (line 26) | class ComponentThread
  class WorkerThread (line 27) | class WorkerThread
  function Watchdog (line 44) | class AREG_API Watchdog  : public TimerBase
  function ComponentThread (line 229) | inline const ComponentThread& Watchdog::getComponentThread(void) const

FILE: framework/areg/component/private/WatchdogManager.cpp
  function WatchdogManager (line 35) | WatchdogManager& WatchdogManager::getInstance(void)

FILE: framework/areg/component/private/WatchdogManager.hpp
  class TimerPosix (line 30) | class TimerPosix
  class WatchdogManager (line 32) | class WatchdogManager   : protected TimerManagerBase

FILE: framework/areg/component/private/WorkerThread.cpp
  function DispatcherThread (line 73) | DispatcherThread* WorkerThread::getEventConsumerThread( const RuntimeCla...
  function ComponentThread (line 87) | ComponentThread & WorkerThread::getBindingComponentThread( void ) const

FILE: framework/areg/component/private/posix/TimerBasePosix.cpp
  function TIMERHANDLE (line 28) | TIMERHANDLE TimerBase::_osCreateWaitableTimer( void )

FILE: framework/areg/component/private/posix/TimerManagerPosix.cpp
  type timespec (line 85) | struct timespec

FILE: framework/areg/component/private/posix/TimerPosix.cpp
  type sigevent (line 187) | struct sigevent
  type sigevent (line 188) | struct sigevent
  type itimerspec (line 267) | struct itimerspec
  type itimerspec (line 268) | struct itimerspec
  type itimerspec (line 311) | struct itimerspec
  type itimerspec (line 312) | struct itimerspec

FILE: framework/areg/component/private/posix/TimerPosix.hpp
  class TimerBase (line 36) | class TimerBase
  class TimerPosix (line 37) | class TimerPosix
    type timespec (line 249) | struct timespec
  class TimerPosix (line 59) | class TimerPosix
    type timespec (line 249) | struct timespec
  function timer_t (line 268) | inline timer_t TimerPosix::getTimerId(void) const
  function id_type (line 281) | inline id_type TimerPosix::getContextId(void) const
  function timespec (line 287) | inline const timespec & TimerPosix::getDueTime(void) const

FILE: framework/areg/component/private/win32/TimerBaseWin32.cpp
  function TIMERHANDLE (line 24) | TIMERHANDLE TimerBase::_osCreateWaitableTimer()

FILE: framework/areg/ipc/ClientConnection.hpp
  function SocketConnectionBase (line 37) | class AREG_API ClientConnection : private   SocketConnectionBase
  function ITEM_ID (line 233) | inline const ITEM_ID & ClientConnection::getCookie( void ) const
  function Socket (line 273) | inline Socket & ClientConnection::getSocket( void )

FILE: framework/areg/ipc/ConnectionConfiguration.hpp
  function ConnectionConfiguration (line 33) | class AREG_API ConnectionConfiguration
  function String (line 147) | inline const String& ConnectionConfiguration::getRemoteServiceName(void)...
  function String (line 152) | inline const String& ConnectionConfiguration::getConnectionType(void) const

FILE: framework/areg/ipc/IERemoteMessageHandler.hpp
  class RemoteMessage (line 26) | class RemoteMessage
  class Socket (line 27) | class Socket
  function IERemoteMessageHandler (line 37) | class AREG_API IERemoteMessageHandler

FILE: framework/areg/ipc/IEServiceConnectionConsumer.hpp
  class Channel (line 26) | class Channel
  function IEServiceConnectionConsumer (line 35) | class AREG_API IEServiceConnectionConsumer

FILE: framework/areg/ipc/IEServiceConnectionProvider.hpp
  class String (line 30) | class String
  function IEServiceConnectionProvider (line 41) | class AREG_API IEServiceConnectionProvider

FILE: framework/areg/ipc/IEServiceRegisterConsumer.hpp
  class StreamableEvent (line 30) | class StreamableEvent
  class Channel (line 31) | class Channel
  function IEServiceRegisterConsumer (line 40) | class AREG_API IEServiceRegisterConsumer

FILE: framework/areg/ipc/IEServiceRegisterProvider.hpp
  class StubAddress (line 24) | class StubAddress
  class ProxyAddress (line 25) | class ProxyAddress
  function IEServiceRegisterProvider (line 34) | class AREG_API IEServiceRegisterProvider

FILE: framework/areg/ipc/NERemoteService.hpp
  class StubAddress (line 31) | class StubAddress
  class ProxyAddress (line 32) | class ProxyAddress
  class RemoteMessage (line 33) | class RemoteMessage
  class Channel (line 34) | class Channel
  type NERemoteService (line 43) | namespace NERemoteService
    type eConnectionTypes (line 49) | enum eConnectionTypes : uint32_t
    type eRemoteServices (line 62) | enum eRemoteServices : uint32_t
    type eRemoteConnection (line 72) | enum eRemoteConnection : uint32_t

FILE: framework/areg/ipc/SendMessageEvent.hpp
  function SendMessageEventData (line 36) | class AREG_API SendMessageEventData
  function SendMessageEventData (line 169) | inline SendMessageEventData& SendMessageEventData::operator = (const Sen...
  function SendMessageEventData (line 176) | inline SendMessageEventData& SendMessageEventData::operator = (SendMessa...
  function RemoteMessage (line 183) | inline const RemoteMessage & SendMessageEventData::getRemoteMessage( voi...

FILE: framework/areg/ipc/ServerConnectionBase.hpp
  function ServerConnectionBase (line 46) | class AREG_API ServerConnectionBase
  function SOCKETHANDLE (line 374) | inline SOCKETHANDLE ServerConnectionBase::getSocketHandle( void ) const
  function ITEM_ID (line 386) | inline ITEM_ID ServerConnectionBase::getCookie(const SocketAccepted & cl...
  function ITEM_ID (line 391) | inline ITEM_ID ServerConnectionBase::getCookie(SOCKETHANDLE socketHandle...
  function SocketAccepted (line 399) | inline SocketAccepted ServerConnectionBase::getClientByCookie(const ITEM...
  fu
Copy disabled (too large) Download .json
Condensed preview — 1112 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (19,711K chars).
[
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "chars": 833,
    "preview": "---\nname: Bug report\nabout: Create a report to help us improve\ntitle: ''\nlabels: bug\nassignees: aregtech\n\n---\n\n**Describ"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "chars": 610,
    "preview": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: ''\nlabels: enhancement\nassignees: aregtech\n\n---"
  },
  {
    "path": ".github/config.yml",
    "chars": 112,
    "preview": "# DCO Bot Configuration\ndco:\n  enabled: true\n  require:\n    - pull_request\n  token: ${{ secrets.GITHUB_TOKEN }}\n"
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 605,
    "preview": "# To get started with Dependabot version updates, you'll need to specify which\n# package ecosystems to update and where "
  },
  {
    "path": ".github/pull_request_template.md",
    "chars": 410,
    "preview": "## Summary\n<!-- One or two sentences explaining the purpose of this PR. -->\n\n## Changes\n<!-- Key updates, fixes, or feat"
  },
  {
    "path": ".github/workflows/accessibility-bot.yml",
    "chars": 689,
    "preview": "name: Accessibility-alt-text-bot\non: \n  issues:\n    types: [opened, edited]\n  pull_request:\n    types: [opened, edited]\n"
  },
  {
    "path": ".github/workflows/cmake.yml",
    "chars": 19496,
    "preview": "name: CMake\n\non:\n  push:         # Keep empty to run on each branch when push the code. Otherwise use branches: [ master"
  },
  {
    "path": ".github/workflows/codeql-analysis.yml",
    "chars": 2359,
    "preview": "# For most projects, this workflow file will not need changing; you simply need\n# to commit it to your repository.\n#\n# Y"
  },
  {
    "path": ".github/workflows/msbuild.yml",
    "chars": 3113,
    "preview": "name: MSBuild\n\non:\n  push:         # Keep empty to run on each branch when push the code. Otherwise, use branches: [ mas"
  },
  {
    "path": ".github/workflows/validate-pr.yml",
    "chars": 821,
    "preview": "name: PR Validation\n\non:\n  pull_request:\n    types: [opened, edited, reopened, synchronize]\n\njobs:\n  pr-check:\n    runs-"
  },
  {
    "path": ".gitignore",
    "chars": 545,
    "preview": "*.aps\n*.opensdf\n*.suo\n*.sdf\n*.user\n*.o\n*.obj\n*.log\n*.stackdump\n*.d\n*.diff\n\n.git\n.metadata\n.vs\n.vscode\n\nbuild/*\nout/*\npro"
  },
  {
    "path": "CMakeLists.txt",
    "chars": 3224,
    "preview": "# ###########################################################################\n#               CMake options of Areg SDK\n"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 5224,
    "preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make participa"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 3846,
    "preview": "# CONTRIBUTING TO Areg SDK\n\nThank you for your interest in contributing to Areg SDK.  \nWe welcome developers, companies,"
  },
  {
    "path": "LICENSE.txt",
    "chars": 10762,
    "preview": "                                 Apache License\n                           Version 2.0, January 2004\n                   "
  },
  {
    "path": "README.md",
    "chars": 30114,
    "preview": "<h1 align=\"center\" style=\"font-size:2.5em; font-weight:bold; margin:1em 0;\">\n  <a href=\"https://www.areg.tech\">\n    <img"
  },
  {
    "path": "Releases.md",
    "chars": 897,
    "preview": "# Release Notes\n\n```\nThis document contains the release notes of Areg SDK project.\nCopyright © Aregtech UG, 2021-2026\nCo"
  },
  {
    "path": "areg-sdk.sln",
    "chars": 109525,
    "preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 17\nVisualStudioVersion = 17.2.3261"
  },
  {
    "path": "areg.cmake",
    "chars": 1998,
    "preview": "# ###########################################################################\n# Settings for external projects to integr"
  },
  {
    "path": "conf/README.md",
    "chars": 8275,
    "preview": "# Configuration Overview\n\nThis document provides a brief overview of the configuration directory's contents and instruct"
  },
  {
    "path": "conf/cmake/clang.cmake",
    "chars": 3678,
    "preview": "# ###########################################################################\n# LLVM compiler and linker options for POS"
  },
  {
    "path": "conf/cmake/common.cmake",
    "chars": 10367,
    "preview": "# ###########################################################################\n# Common settings for all projects\n# Copyr"
  },
  {
    "path": "conf/cmake/functions.cmake",
    "chars": 69056,
    "preview": "# ###########################################################################\n# Areg CMake functions\n# Copyright 2022-20"
  },
  {
    "path": "conf/cmake/gnu.cmake",
    "chars": 3254,
    "preview": "# ###########################################################################\n# GNU compiler and linker options for POSI"
  },
  {
    "path": "conf/cmake/install.cmake",
    "chars": 12183,
    "preview": "# ###########################################################################\n# Configuration file to install Areg SDK m"
  },
  {
    "path": "conf/cmake/msvc.cmake",
    "chars": 905,
    "preview": "# ###########################################################################\n# MSVC compiler and linker options for Win"
  },
  {
    "path": "conf/cmake/setup.cmake",
    "chars": 4930,
    "preview": "# ###########################################################################\n# Areg Framework based project setups.\n# -"
  },
  {
    "path": "conf/cmake/user.cmake",
    "chars": 15384,
    "preview": "# ###########################################################################\n# User specific settings\n# Copyright 2022-"
  },
  {
    "path": "conf/exports/areg.pc.in",
    "chars": 346,
    "preview": "prefix=@CMAKE_INSTALL_PREFIX@\nexec_prefix=${prefix}/tools/areg\nlibdir=@CMAKE_INSTALL_FULL_LIBDIR@\nincludedir=@CMAKE_INST"
  },
  {
    "path": "conf/exports/aregextend.pc.in",
    "chars": 446,
    "preview": "prefix=@CMAKE_INSTALL_PREFIX@\nexec_prefix=${prefix}/tools/areg\nlibdir=@CMAKE_INSTALL_FULL_LIBDIR@\nincludedir=@CMAKE_INST"
  },
  {
    "path": "conf/exports/areglogger.pc.in",
    "chars": 523,
    "preview": "prefix=@CMAKE_INSTALL_PREFIX@\nexec_prefix=${prefix}/tools/areg\nlibdir=@CMAKE_INSTALL_FULL_LIBDIR@\nincludedir=@CMAKE_INST"
  },
  {
    "path": "conf/exports/config.cmake.in",
    "chars": 5007,
    "preview": "@PACKAGE_INIT@\ninclude(CMakeFindDependencyMacro)\n\n# ##################################################\n# Set Areg SDK es"
  },
  {
    "path": "conf/exports/example/CMakeLists.txt",
    "chars": 291,
    "preview": "# CMakeList.txt : include source and link with 'areg::areg'\ncmake_minimum_required(VERSION 3.20.0)\n\nproject (\"example\" "
  },
  {
    "path": "conf/exports/example/ReadMe.md",
    "chars": 1262,
    "preview": "### Project Overview\nThis `example` is a small project that demonstrates linking with the `areg` library. It also output"
  },
  {
    "path": "conf/exports/example/example.cpp",
    "chars": 389,
    "preview": "// example.cpp : Checks availability and compilation with 'areg' library.\n//\n\n#include <iostream>\n#include \"areg/base/S"
  },
  {
    "path": "conf/exports/example/toolchains/clang-linux-arm32.cmake",
    "chars": 772,
    "preview": "# This toolchain builds 32-bit binaries with Clang compiler for Linux on 32-bit ARM processor\n# Run example:\n# cmake -B "
  },
  {
    "path": "conf/exports/example/toolchains/clang-linux-arm64.cmake",
    "chars": 781,
    "preview": "# This toolchain builds 64-bit binaries with Clang compiler for Linux on 64-bit ARM (AARCH64) processor.\n# Run example:\n"
  },
  {
    "path": "conf/exports/example/toolchains/clang-linux-x64.cmake",
    "chars": 756,
    "preview": "# This toolchain builds 64-bit binaries with Clang compiler for Linux on x86-64 processor\n# Run example:\n# cmake -B ./pr"
  },
  {
    "path": "conf/exports/example/toolchains/clang-linux-x86.cmake",
    "chars": 745,
    "preview": "# This toolchain builds 32-bit binaries with Clang compiler for Linux on x86 processor\n# Run example:\n# cmake -B ./produ"
  },
  {
    "path": "conf/exports/example/toolchains/clang-macos-arm64.cmake",
    "chars": 994,
    "preview": "# This toolchain builds 64-bit binaries with Apple Clang compiler for macOS on ARM64 processor (Apple Silicon M1/M2/M3)\n"
  },
  {
    "path": "conf/exports/example/toolchains/clang-macos-x64.cmake",
    "chars": 980,
    "preview": "# This toolchain builds 64-bit binaries with Apple Clang compiler for macOS on x86-64 processor (Intel Macs)\n# Run examp"
  },
  {
    "path": "conf/exports/example/toolchains/clang-win-x64.cmake",
    "chars": 821,
    "preview": "# This toolchain builds 64-bit binaries with Clang compiler for Windows on x86-64 processor\n# Run example:\n# cmake -B ./"
  },
  {
    "path": "conf/exports/example/toolchains/clang-win-x86.cmake",
    "chars": 818,
    "preview": "# This toolchain builds 32-bit binaries with Clang compiler for Windows on x86 processor\n# Run example:\n# cmake -B ./pro"
  },
  {
    "path": "conf/exports/example/toolchains/gnu-linux-arm32.cmake",
    "chars": 806,
    "preview": "# This toolchain builds 32-bit binaries with GNU g++/gcc compiler for Linux on 32-bit ARM processor\n# Run example:\n# cma"
  },
  {
    "path": "conf/exports/example/toolchains/gnu-linux-arm64.cmake",
    "chars": 811,
    "preview": "# This toolchain builds 64-bit binaries with GNU g++/gcc compiler for Linux on 64-bit ARM (AARCH64) processor.\n# Run exa"
  },
  {
    "path": "conf/exports/example/toolchains/gnu-linux-x64.cmake",
    "chars": 850,
    "preview": "# This toolchain builds 64-bit binaries with GNU g++/gcc compiler for Linux on x86-64 processor\n# Run example:\n# cmake -"
  },
  {
    "path": "conf/exports/example/toolchains/gnu-linux-x86.cmake",
    "chars": 731,
    "preview": "# This toolchain builds 32-bit binaries with GNU compiler for Linux on x86 processor\n# Run example:\n# cmake -B ./product"
  },
  {
    "path": "conf/exports/example/toolchains/msvc-win-x64.cmake",
    "chars": 728,
    "preview": "# This toolchain builds 64-bit binaries with MSVC compiler for Windows on x86-64 processor\n# Run example:\n# cmake -B ./p"
  },
  {
    "path": "conf/exports/example/toolchains/msvc-win-x86.cmake",
    "chars": 725,
    "preview": "# This toolchain builds 32-bit binaries with MSVC compiler for Windows on x86 processor\n# Run example:\n# cmake -B ./prod"
  },
  {
    "path": "conf/exports/logcollector.service.in",
    "chars": 675,
    "preview": "[Unit]\nDescription=Areg TCP/IP Logging Service to collect application logs\nStartLimitIntervalSec=1\n\n[Service]\n# Set the"
  },
  {
    "path": "conf/exports/logcollector.service.install.bat.in",
    "chars": 215,
    "preview": "@echo off\n\nrem : To install the Areg Log Collector Service on local machine\nrem : run this file under Windows with Admin"
  },
  {
    "path": "conf/exports/logcollector.service.install.sh.in",
    "chars": 1752,
    "preview": "#!/bin/sh\n# Areg Log Collector Service - macOS Installation Script\n# This script installs and enables the logcollector s"
  },
  {
    "path": "conf/exports/logcollector.service.uninstall.bat.in",
    "chars": 219,
    "preview": "@echo off\n\nrem : To uninstall the Areg Log Collector Service on local machine\nrem : run this file under Windows with Adm"
  },
  {
    "path": "conf/exports/logcollector.service.uninstall.sh.in",
    "chars": 970,
    "preview": "#!/bin/sh\n# Areg Log Collector Service - macOS Uninstallation Script\n# This script stops and removes the logcollector se"
  },
  {
    "path": "conf/exports/mtrouter.service.in",
    "chars": 658,
    "preview": "[Unit]\nDescription=Areg TCP/IP Multitarget Router Service to automate messaging\nStartLimitIntervalSec=1\n\n[Service]\n# Se"
  },
  {
    "path": "conf/exports/mtrouter.service.install.bat.in",
    "chars": 216,
    "preview": "@echo off\n\nrem : To install the Areg Multitarget Router Service on local machine\nrem : run this file under Windows with "
  },
  {
    "path": "conf/exports/mtrouter.service.install.sh.in",
    "chars": 1730,
    "preview": "#!/bin/sh\n# Areg Multitarget Router Service - macOS Installation Script\n# This script installs and enables the mtrouter "
  },
  {
    "path": "conf/exports/mtrouter.service.uninstall.bat.in",
    "chars": 220,
    "preview": "@echo off\n\nrem : To uninstall the Areg Multitarget Router Service on local machine\nrem : run this file under Windows wit"
  },
  {
    "path": "conf/exports/mtrouter.service.uninstall.sh.in",
    "chars": 960,
    "preview": "#!/bin/sh\n# Areg Multitarget Router Service - macOS Uninstallation Script\n# This script stops and removes the mtrouter s"
  },
  {
    "path": "conf/exports/tech.areg.logcollector.plist.in",
    "chars": 1298,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "conf/exports/tech.areg.mtrouter.plist.in",
    "chars": 1275,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "conf/msvc/compile.props",
    "chars": 1426,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsof"
  },
  {
    "path": "conf/msvc/project.props",
    "chars": 3971,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "conf/msvc/project_defaults.props",
    "chars": 4690,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "conf/msvc/user.props",
    "chars": 12485,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "docs/DEVELOP.md",
    "chars": 3092,
    "preview": "# Developer Guide\n\n```\nThis file is part of Areg SDK\nCopyright (c) 2021-2026, Aregtech\nContact: info[at]areg.tech\nWebsit"
  },
  {
    "path": "docs/HOWTO.md",
    "chars": 4506,
    "preview": "# How-To Guide\n\n```\nThis file is part of Areg SDK\nCopyright (c) 2021-2026, Aregtech\nContact: info[at]areg.tech\nWebsite: "
  },
  {
    "path": "docs/HelloService.md",
    "chars": 10459,
    "preview": "# Hello Service Tutorial\n\n```\nThis file is part of Areg SDK\nCopyright (c) 2021-2026, Aregtech\nContact: info[at]areg.tech"
  },
  {
    "path": "docs/HelloService.siml",
    "chars": 1136,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<ServiceInterface FormatVersion=\"1.1.0\">\n    <Overview ID=\"1\" Na"
  },
  {
    "path": "docs/POSIX.md",
    "chars": 4188,
    "preview": "# POSIX API Reference\n\n```\nThis file is part of Areg SDK\nCopyright (c) Aregtech, 2021-2026\nContact: info[at]areg.tech\nWe"
  },
  {
    "path": "docs/README.md",
    "chars": 2567,
    "preview": "# Documentation Overview\n\n```\nThis file is part of Areg SDK\nCopyright (c) Aregtech, 2021-2026\nContact: info[at]areg.tech"
  },
  {
    "path": "docs/Sample.siml",
    "chars": 7866,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<ServiceInterface FormatVersion=\"1.0.0\">\n    <Overview ID=\"1\" Na"
  },
  {
    "path": "docs/Sample.xsd",
    "chars": 17164,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<xs:schema xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" elementFormDefault=\"qualif"
  },
  {
    "path": "docs/ServiceInterface.md",
    "chars": 7844,
    "preview": "# Service Interface Guide\n\n```\nThis file is part of Areg SDK\nCopyright (c) 2021-2026, Aregtech\nContact: info[at]areg.tec"
  },
  {
    "path": "docs/USECASES.md",
    "chars": 6365,
    "preview": "# Use Cases and Benefits\n\nThe Areg communication engine supports a wide range of multithreaded and multiprocess applicat"
  },
  {
    "path": "docs/WIN32.md",
    "chars": 4572,
    "preview": "# Win32 API Reference\n\n```\nThis file is part of Areg SDK\nCopyright (c) Aregtech, 2017-2026\nContact: info[at]areg.tech\nWe"
  },
  {
    "path": "docs/templates/Readme.md",
    "chars": 3283,
    "preview": "# Templates\n\nThis folder contains the temaplates that developer may use to create projects using prefered IDE. Regardles"
  },
  {
    "path": "docs/templates/contributors.yml",
    "chars": 1499,
    "preview": "name: Generate Contributors\non:\n  schedule:\n    - cron: '0 1 * * 0' # At 01:00 on Sunday.\n  push:\n    branches:\n      - "
  },
  {
    "path": "docs/templates/msvc-dynamic-lib.vcxproj",
    "chars": 2054,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "docs/templates/msvc-dynamic-lib.vcxproj.filters",
    "chars": 909,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "docs/templates/msvc-exe.vcxproj",
    "chars": 2425,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "docs/templates/msvc-exe.vcxproj.filters",
    "chars": 909,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "docs/templates/msvc-static-lib.vcxproj",
    "chars": 2053,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "docs/templates/msvc-static-lib.vcxproj.filters",
    "chars": 909,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "docs/wiki/01a-areg-package.md",
    "chars": 9016,
    "preview": "# Installing Areg SDK with vcpkg Package Manager\n\nThis guide covers installing vcpkg, setting up the Areg SDK package, "
  },
  {
    "path": "docs/wiki/01b-cmake-build.md",
    "chars": 15725,
    "preview": "# Building Areg SDK with CMake\n\nThis guide covers building Areg SDK on Linux, macOS, Windows, and Cygwin using CMake, i"
  },
  {
    "path": "docs/wiki/01c-msvc-build.md",
    "chars": 9405,
    "preview": "# Building Areg SDK with Microsoft Visual Studio and MSBuild\n\nThis guide covers building Areg SDK using Microsoft Visua"
  },
  {
    "path": "docs/wiki/01d-wsl-build.md",
    "chars": 13356,
    "preview": "# Building Areg SDK on Windows Subsystem for Linux (WSL)\n\nThis guide covers setting up WSL, building Areg SDK on Linux "
  },
  {
    "path": "docs/wiki/02a-quick-project-setup.md",
    "chars": 26810,
    "preview": "# Quick Project Setup with Areg SDK\n\nCreate ready-to-build Areg SDK projects in 30 seconds using the interactive projec"
  },
  {
    "path": "docs/wiki/02b-cmake-integrate.md",
    "chars": 17399,
    "preview": "# Integrating Areg Framework with CMake\n\nThis guide covers integrating Areg Framework into your project using CMake on "
  },
  {
    "path": "docs/wiki/02c-msvc-integrate.md",
    "chars": 16302,
    "preview": "# Integrating Areg Framework with Microsoft Visual Studio\n\nThis guide covers integrating Areg Framework into Microsoft "
  },
  {
    "path": "docs/wiki/02d-cmake-config.md",
    "chars": 23884,
    "preview": "# CMake Configuration Options for Areg SDK\n\nThis guide describes all CMake configuration options for building Areg SDK,"
  },
  {
    "path": "docs/wiki/02e-cmake-functions.md",
    "chars": 27960,
    "preview": "# Areg SDK CMake Functions and Macros Reference\n\nThis document provides a comprehensive reference for CMake functions a"
  },
  {
    "path": "docs/wiki/02f-preprocessor-definitions.md",
    "chars": 18646,
    "preview": "# Areg SDK Preprocessor Definitions Reference\n\nThis guide provides a comprehensive reference for preprocessor definitio"
  },
  {
    "path": "docs/wiki/03a-mtrouter.md",
    "chars": 32084,
    "preview": "# Areg SDK Multitarget Router (mtrouter)\n\nThe Multitarget Router enables inter-process and networked communication betw"
  },
  {
    "path": "docs/wiki/04a-logging-config.md",
    "chars": 23088,
    "preview": "# Areg SDK Logging Configuration\n\nThe Areg SDK provides a highly configurable logging system via the `areg.init` config"
  },
  {
    "path": "docs/wiki/04b-logging-develop.md",
    "chars": 24863,
    "preview": "# Developing with Areg Logging System\n\nThis guide provides instructions for activating, configuring, and utilizing Areg"
  },
  {
    "path": "docs/wiki/04c-logobserver.md",
    "chars": 20440,
    "preview": "# Areg SDK Log Observer Application\n\nThe Areg SDK Log Observer is a console application for real-time log monitoring, m"
  },
  {
    "path": "docs/wiki/04d-logcollector.md",
    "chars": 22859,
    "preview": "# Areg SDK Log Collector Service\n\nThe Areg SDK Log Collector is a centralized service that gathers and routes log data "
  },
  {
    "path": "docs/wiki/05a-persistence-syntax.md",
    "chars": 18872,
    "preview": "# Key-Value Data Persistence in Areg Framework\n\n## Overview\n\nThe Areg Framework provides a lightweight key-value persis"
  },
  {
    "path": "docs/wiki/06a-areg-sdk-tools.md",
    "chars": 10694,
    "preview": "# Areg SDK Development Tools\n\nAreg SDK provides a comprehensive suite of development tools supporting the complete life"
  },
  {
    "path": "docs/wiki/06b-code-generator.md",
    "chars": 10921,
    "preview": "# Areg SDK Code Generator (`codegen.jar`)\n\nThe Areg SDK Code Generator is a build-time utility that automates the gener"
  },
  {
    "path": "docs/wiki/06c-build-lusan.md",
    "chars": 11738,
    "preview": "# Building Lusan with CMake or Qt Creator\n\nThis guide explains how to build **Lusan**, the graphical development and di"
  },
  {
    "path": "docs/wiki/06d-setup-lusan.md",
    "chars": 24026,
    "preview": "# Setup and Using Lusan\n\nThis guide explains how to build, configure, and use **Lusan**, the graphical development and "
  },
  {
    "path": "docs/wiki/06e-lusan-service-interface.md",
    "chars": 17605,
    "preview": "# Creating Service Interface Documents with Lusan\n\nThis guide explains how to create and maintain **Service Interface d"
  },
  {
    "path": "docs/wiki/06f-lusan-live-logging.md",
    "chars": 24502,
    "preview": "# Lusan Live Log Viewer: Real-Time Monitoring for Areg Applications\n\nThis guide explains how to use **Lusan** as a **li"
  },
  {
    "path": "docs/wiki/06g-lusan-offline-logging.md",
    "chars": 21820,
    "preview": "# Lusan Offline Log Viewer: Post-Mortem Analysis for Areg Applications\n\nThis guide explains how to use **Lusan** for **"
  },
  {
    "path": "docs/wiki/07a-troubleshooting-wsl-update.md",
    "chars": 12465,
    "preview": "# Troubleshooting WSL Updates\n\nThis document outlines solutions to common issues encountered while updating the Windows"
  },
  {
    "path": "docs/wiki/07b-troubleshooting-cmake-linux-builds.md",
    "chars": 9192,
    "preview": "# Troubleshooting CMake Builds on Linux\n\nThis guide provides solutions for common issues encountered when compiling pro"
  },
  {
    "path": "docs/wiki/07c-troubleshooting-integration.md",
    "chars": 16308,
    "preview": "# Integration Troubleshooting\n\nThis guide provides solutions for common issues encountered when integrating the Areg SD"
  },
  {
    "path": "docs/wiki/08a-examples-and-tests.md",
    "chars": 16645,
    "preview": "# Building and Running Areg SDK Examples and Unit Tests\n\nThe Areg SDK provides a comprehensive set of examples and unit"
  },
  {
    "path": "docs/wiki/README.md",
    "chars": 15521,
    "preview": "<h1 align=\"center\" style=\"display: block; font-size: 2.5em; font-weight: bold; margin-block-start: 1em; margin-block-end"
  },
  {
    "path": "examples/01_minimalrpc/01_generated.vcxproj",
    "chars": 3139,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "examples/01_minimalrpc/01_generated.vcxproj.filters",
    "chars": 2520,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "examples/01_minimalrpc/01_minimalrpc.vcxproj",
    "chars": 1941,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "examples/01_minimalrpc/01_minimalrpc.vcxproj.filters",
    "chars": 934,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "examples/01_minimalrpc/CMakeLists.txt",
    "chars": 181,
    "preview": "# add service interface files.\naddServiceInterface(01_generated examples/01_minimalrpc/services/HelloService.siml)\nmacro"
  },
  {
    "path": "examples/01_minimalrpc/ReadMe.md",
    "chars": 2159,
    "preview": "# 01\\_minimalrpc\n\n🧵 **Type:** Multithreading / Single Process\n\n## Overview\n\nThe **01\\_minimalrpc** example demonstrates"
  },
  {
    "path": "examples/01_minimalrpc/services/HelloService.siml",
    "chars": 294,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<ServiceInterface FormatVersion=\"1.1.0\">\n    <Overview ID=\"1\" Na"
  },
  {
    "path": "examples/01_minimalrpc/src/main.cpp",
    "chars": 4074,
    "preview": "/**\n * \\file    src/main.cpp\n * \\brief   Minimal RPC example to call 'requestHelloService()' of remote object running in"
  },
  {
    "path": "examples/02_minimalipc/02_consumeripc.vcxproj",
    "chars": 1950,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "examples/02_minimalipc/02_consumeripc.vcxproj.filters",
    "chars": 941,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "examples/02_minimalipc/02_generated.vcxproj",
    "chars": 3139,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "examples/02_minimalipc/02_generated.vcxproj.filters",
    "chars": 2520,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "examples/02_minimalipc/02_provideripc.vcxproj",
    "chars": 1950,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "examples/02_minimalipc/02_provideripc.vcxproj.filters",
    "chars": 941,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "examples/02_minimalipc/CMakeLists.txt",
    "chars": 280,
    "preview": "\n# add service interface files.\naddServiceInterface(02_generated examples/02_minimalipc/services/HelloService.siml)\n\n# a"
  },
  {
    "path": "examples/02_minimalipc/ReadMe.md",
    "chars": 1905,
    "preview": "# 02_minimalipc\n\n🚀 **Type:** IPC / Multi-Process\n\n## Overview\nThe **02_minimalipc** example demonstrates how to use **R"
  },
  {
    "path": "examples/02_minimalipc/services/HelloService.siml",
    "chars": 711,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<ServiceInterface FormatVersion=\"1.1.0\">\n    <Overview ID=\"1\" Na"
  },
  {
    "path": "examples/02_minimalipc/src/consumeripc.cpp",
    "chars": 3937,
    "preview": "/**\n * \\file    src/consumeripc.cpp\n * \\brief   Minimal IPC example with request-response.\n *          It calls 'request"
  },
  {
    "path": "examples/02_minimalipc/src/provideripc.cpp",
    "chars": 3195,
    "preview": "/**\n * \\file    src/provideripc.cpp\n * \\brief   Minimal IPC example with request-response.\n *          It gets 'requestH"
  },
  {
    "path": "examples/03_helloservice/03_clientproc.vcxproj",
    "chars": 2232,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "examples/03_helloservice/03_clientproc.vcxproj.filters",
    "chars": 1429,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "examples/03_helloservice/03_generated.vcxproj",
    "chars": 3159,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "examples/03_helloservice/03_generated.vcxproj.filters",
    "chars": 2540,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "examples/03_helloservice/03_onethread.vcxproj",
    "chars": 2216,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "examples/03_helloservice/03_onethread.vcxproj.filters",
    "chars": 1415,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "examples/03_helloservice/03_serviceproc.vcxproj",
    "chars": 2235,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "examples/03_helloservice/03_serviceproc.vcxproj.filters",
    "chars": 1430,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "examples/03_helloservice/03_twothreads.vcxproj",
    "chars": 2219,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "examples/03_helloservice/03_twothreads.vcxproj.filters",
    "chars": 1416,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "examples/03_helloservice/CMakeLists.txt",
    "chars": 781,
    "preview": "\n# add service interface files.\naddServiceInterface(03_generated examples/03_helloservice/services/HelloService.siml)\n\n#"
  },
  {
    "path": "examples/03_helloservice/ReadMe.md",
    "chars": 2889,
    "preview": "# 03_helloservice\n\n🧵🚀 **Type:** Multithreading + IPC\n\n## Overview\nThe **03_helloservice** example demonstrates building"
  },
  {
    "path": "examples/03_helloservice/common/src/ClientComponent.cpp",
    "chars": 2334,
    "preview": "/**\n * \\file    common/src/ClientComponent.hpp\n * \\brief   Implementation of the service client component.\n **/\n#include"
  },
  {
    "path": "examples/03_helloservice/common/src/ClientComponent.hpp",
    "chars": 2993,
    "preview": "/**\n * \\file    common/src/ClientComponent.hpp\n * \\brief   Declaration of the service client component.\n **/\n#pragma onc"
  },
  {
    "path": "examples/03_helloservice/common/src/ServiceComponent.cpp",
    "chars": 609,
    "preview": "/**\n * \\file    common/src/ServiceComponent.cpp\n * \\brief   Implementation of the service component.\n **/\n#include \"comm"
  },
  {
    "path": "examples/03_helloservice/common/src/ServiceComponent.hpp",
    "chars": 1603,
    "preview": "/**\n * \\file    common/src/ServiceComponent.hpp\n * \\brief   Declaration of the service component.\n **/\n#pragma once\n\n#in"
  },
  {
    "path": "examples/03_helloservice/multiprocess/clientproc/src/main.cpp",
    "chars": 1936,
    "preview": "/**\n * \\file    multiprocess/clientproc/src/main.hpp\n * \\brief   Runs service and the client in one thread.\n **/\n\n#inclu"
  },
  {
    "path": "examples/03_helloservice/multiprocess/serviceproc/src/main.cpp",
    "chars": 1744,
    "preview": "/**\n * \\file    multiprocess/serviceproc/src/main.cpp\n * \\brief   Runs service in the process.\n **/\n#include \"areg/base/"
  },
  {
    "path": "examples/03_helloservice/onethread/src/main.cpp",
    "chars": 2100,
    "preview": "/**\n * \\file    onethread/src/main.cpp\n * \\brief   Runs service and the client in one thread.\n **/\n#include \"areg/base/G"
  },
  {
    "path": "examples/03_helloservice/services/HelloService.siml",
    "chars": 1132,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<ServiceInterface FormatVersion=\"1.1.0\">\n    <Overview ID=\"1\" Na"
  },
  {
    "path": "examples/03_helloservice/twothreads/src/main.cpp",
    "chars": 2178,
    "preview": "/**\n * \\file    twothreads/src/main.cpp\n * \\brief   Runs service and the client in one thread.\n **/\n#include \"areg/base/"
  },
  {
    "path": "examples/04_hellothread/04_hellothread.vcxproj",
    "chars": 2072,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "examples/04_hellothread/04_hellothread.vcxproj.filters",
    "chars": 1063,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "examples/04_hellothread/CMakeLists.txt",
    "chars": 54,
    "preview": "macro_declare_executable(04_hellothread src/main.cpp)\n"
  },
  {
    "path": "examples/04_hellothread/ReadMe.md",
    "chars": 1741,
    "preview": "# 04_hellothread\n\n🧵 **Type:** Multithreading / Single Process\n\n## Overview\nThe **04_hellothread** example demonstrates "
  },
  {
    "path": "examples/04_hellothread/src/main.cpp",
    "chars": 2001,
    "preview": "//============================================================================\n// Name        : main.cpp\n// Author      "
  },
  {
    "path": "examples/05_buffer/05_buffer.vcxproj",
    "chars": 2062,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "examples/05_buffer/05_buffer.vcxproj.filters",
    "chars": 1063,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "examples/05_buffer/CMakeLists.txt",
    "chars": 49,
    "preview": "macro_declare_executable(05_buffer src/main.cpp)\n"
  },
  {
    "path": "examples/05_buffer/ReadMe.md",
    "chars": 2018,
    "preview": "# 05_buffer\n\n🧵 **Type:** Multithreading / Single Process\n\n## Overview\nThe **05_buffer** example demonstrates how to man"
  },
  {
    "path": "examples/05_buffer/src/main.cpp",
    "chars": 2871,
    "preview": "//============================================================================\n// Name        : main.cpp\n// Author      "
  },
  {
    "path": "examples/06_file/06_file.vcxproj",
    "chars": 2058,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "examples/06_file/06_file.vcxproj.filters",
    "chars": 1063,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "examples/06_file/CMakeLists.txt",
    "chars": 47,
    "preview": "macro_declare_executable(06_file src/main.cpp)\n"
  },
  {
    "path": "examples/06_file/ReadMe.md",
    "chars": 1903,
    "preview": "# 06_file\n\n🧵 **Type:** Multithreading / Single Process\n\n## Overview\nThe **06_file** example demonstrates how to handle "
  },
  {
    "path": "examples/06_file/src/main.cpp",
    "chars": 4594,
    "preview": "//============================================================================\n// Name        : main.cpp\n// Author      "
  },
  {
    "path": "examples/07_logging/07_logging.vcxproj",
    "chars": 2064,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "examples/07_logging/07_logging.vcxproj.filters",
    "chars": 1063,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "examples/07_logging/CMakeLists.txt",
    "chars": 50,
    "preview": "macro_declare_executable(07_logging src/main.cpp)\n"
  },
  {
    "path": "examples/07_logging/ReadMe.md",
    "chars": 2266,
    "preview": "# 07_logging\n🧵 **Type:** Multithreading / Single Process\n\n## Overview\nThe **07_logging** project demonstrates how to im"
  },
  {
    "path": "examples/07_logging/src/main.cpp",
    "chars": 3320,
    "preview": "//============================================================================\n// Name        : main.cpp\n// Author      "
  },
  {
    "path": "examples/08_timer/08_timer.vcxproj",
    "chars": 2060,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "examples/08_timer/08_timer.vcxproj.filters",
    "chars": 1063,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "examples/08_timer/CMakeLists.txt",
    "chars": 48,
    "preview": "macro_declare_executable(08_timer src/main.cpp)\n"
  },
  {
    "path": "examples/08_timer/ReadMe.md",
    "chars": 2029,
    "preview": "# 08\\_timer\n\n🧵 **Type:** Multithreading / Single Process\n\n## Overview\n\nThe **08\\_timer** project demonstrates how to im"
  },
  {
    "path": "examples/08_timer/src/main.cpp",
    "chars": 6678,
    "preview": "//============================================================================\n// Name        : main.cpp\n// Author      "
  },
  {
    "path": "examples/09_threads/09_threads.vcxproj",
    "chars": 2064,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "examples/09_threads/09_threads.vcxproj.filters",
    "chars": 1063,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "examples/09_threads/CMakeLists.txt",
    "chars": 50,
    "preview": "macro_declare_executable(09_threads src/main.cpp)\n"
  },
  {
    "path": "examples/09_threads/ReadMe.md",
    "chars": 2044,
    "preview": "# 09_thread\n\n🧵 **Type:** Multithreading / Single Process\n\n## Overview\nThe **09_thread** project demonstrates how to cre"
  },
  {
    "path": "examples/09_threads/src/main.cpp",
    "chars": 5891,
    "preview": "//============================================================================\n// Name        : main.cpp\n// Author      "
  },
  {
    "path": "examples/10_sync/10_sync.vcxproj",
    "chars": 2058,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "examples/10_sync/10_sync.vcxproj.filters",
    "chars": 1063,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "examples/10_sync/CMakeLists.txt",
    "chars": 47,
    "preview": "macro_declare_executable(10_sync src/main.cpp)\n"
  },
  {
    "path": "examples/10_sync/ReadMe.md",
    "chars": 1991,
    "preview": "# 10_sync\n\n🧵 **Type:** Multithreading / Single Process\n\n## Overview\nThe **10_sync** project demonstrates how to impleme"
  },
  {
    "path": "examples/10_sync/src/main.cpp",
    "chars": 8106,
    "preview": "//============================================================================\n// Name        : main.cpp\n// Author      "
  },
  {
    "path": "examples/11_service/11_service.vcxproj",
    "chars": 2203,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "examples/11_service/11_service.vcxproj.filters",
    "chars": 1304,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "examples/11_service/CMakeLists.txt",
    "chars": 87,
    "preview": "macro_declare_executable(11_service \n    src/main.cpp\n    src/ServicingComponent.cpp\n)\n"
  },
  {
    "path": "examples/11_service/ReadMe.md",
    "chars": 1958,
    "preview": "# 11_service\n\n🧵 **Type:** Multithreading / Single Process\n\n## Overview\nThe **11_service** project demonstrates how to c"
  },
  {
    "path": "examples/11_service/src/ServicingComponent.cpp",
    "chars": 3250,
    "preview": "/************************************************************************\n * \\file        src/ServicingComponent.cpp\n * "
  },
  {
    "path": "examples/11_service/src/ServicingComponent.hpp",
    "chars": 4485,
    "preview": "#pragma once\n\n/************************************************************************\n * \\file        src/ServicingCom"
  },
  {
    "path": "examples/11_service/src/main.cpp",
    "chars": 3607,
    "preview": "//============================================================================\n// Name        : main.cpp\n// Author      "
  },
  {
    "path": "examples/12_svcmulti/12_svcmulti.vcxproj",
    "chars": 2205,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "examples/12_svcmulti/12_svcmulti.vcxproj.filters",
    "chars": 1304,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "examples/12_svcmulti/CMakeLists.txt",
    "chars": 88,
    "preview": "macro_declare_executable(12_svcmulti \n    src/main.cpp\n    src/ServicingComponent.cpp\n)\n"
  },
  {
    "path": "examples/12_svcmulti/ReadMe.md",
    "chars": 2008,
    "preview": "# 12_svcmulti\n\n🧵 **Type:** Multithreading / Single Process\n\n## Overview\nThe **12_svcmulti** project extends the concept"
  },
  {
    "path": "examples/12_svcmulti/src/ServicingComponent.cpp",
    "chars": 3280,
    "preview": "/************************************************************************\n * \\file        src/ServicingComponent.cpp\n * "
  },
  {
    "path": "examples/12_svcmulti/src/ServicingComponent.hpp",
    "chars": 4478,
    "preview": "#pragma once\n\n/************************************************************************\n * \\file        src/ServicingCom"
  }
]

// ... and 912 more files (download for full content)

About this extraction

This page contains the full source code of the aregtech/areg-sdk GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1112 files (18.1 MB), approximately 4.8M tokens, and a symbol index with 8517 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!