Aurora OS IPC Tests
The set of applications that allow to test the IPC communication mechanisms.
Terms of Use and Participation
The source code of the project is provided under the license, which allows its use in third-party applications.
The contributor agreement documents the rights granted by contributors of the Open Mobile Platform.
Information about the contributors is specified in the AUTHORS file.
Code of conduct is a current set of rules of the Open Mobile Platform which informs you how we expect the members of the community will interact while contributing and communicating.
Project Structure
The project has a standard structure of an application based on C++ and QML for Aurora OS.
-
common directory contains a common applications C++ and QML source code.
-
qml directory contains the QML source code and the UI resources.
- cover directory contains the application cover implementations.
- icons directory contains the custom UI icons.
- pages directory contains the application pages.
- IPCGUIApplication.qml file provides the application window implementation.
-
src directory contains the C++ source code.
-
controllers directory contains the source code of the
Controller
-classes. - dbus directory contains the source code classes to perform a comminication via DBus.
- fifopipes directory contains the source code classes to perform a comminication via FIFO pipes.
- filesharing directory contains the source code classes to perform a comminication via file system.
- messagequeues directory contains the source code classes to perform a comminication via SYSV message queues.
- networksockets directory contains the source code classes to perform a comminication via network sockets: TCP and UDP.
- sharedmemory directory contains the source code classes to perform a comminication via SYSV shared memory.
- main.cpp file is the application entry point.
-
controllers directory contains the source code of the
-
qml directory contains the QML source code and the UI resources.
-
IPCFirstGUIApplication directory contains a project of the first GUI application to test IPC comminications.
- icons directory contains application icons for different screen resolutions.
- translations directory contains the UI translation files.
- ru.auroraos.IPCFirstGUIApplication.desktop file defines the display and parameters for launching the application.
-
IPCSecondGUIApplication directory contains a project of the second GUI application to test IPC comminications.
- icons directory contains application icons for different screen resolutions.
- translations directory contains the UI translation files.
- ru.auroraos.IPCSecondGUIApplication.desktop file defines the display and parameters for launching the application.
-
protobuf directory contains the Protobuf library v3.18.3 source code.
- CMakeLists.txt file describes the Protobuf library build configuration for the CMake build system.
- chat_message.proto file describes the protobuf file to generate the data class to serialize and deserialize messages.
-
rpm directory contains the rpm-package build settings.
- ru.auroraos.IPCCatalog.spec file is used by rpmbuild tool.
Compatibility
The project is compatible with all the supported versions of the Aurora OS.
Project Building
The project is built in the usual way using the Aurora SDK.
To build the project it needs to increase the Build Engine virtaul machine RAM.
Allocate 500 MB RAM to the virtual machine for each processor core.
For example, if Build Engine has 4 processor cores, then its RAM must be at least 2000 MB.
To build the Protobuf library it uses CMake. The CMake running configuration is described inside the CMakeLists.txt file.
The shared libraries and include files of the Protobuf library will be built into the <build-project-dir>/dist/
directory.
The shared libraries files of Protobuf library will be installed into the /usr/share/ru.auroraos.IPCFirstGUIApplication/lib/
and /usr/share/ru.auroraos.IPCSecondGUIApplication/lib/
directories on the Aurora OS device.
Setup project for Windows
The repository has symbolic links for the common applications code. Windows Git requires one-time settings to enable Git symbolic links. It needs to:
- Enable the "Developer mode" on Windows: https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging#additional-developer-mode-features.
- Set up tht Git global configuration to handle symlinks: https://www.scivision.dev/git-windows-symlink/.
- Clone the repository, because the changes are applied only to new cloned repositories.
If the steps are correct, symbolic links will be created. It was tested on Windows 11 Pro.
Features
The applications has been tested for the following features:
- The applications allows to choose an IPC to perform a communication.
- The applications allows to choose a mode ("Server" or "Client") to perform a communication.
- The applications allows to send and receive messages using the FIFO pipes.
- The applications allows to send and receive messages using DBus.
- The applications allows to send and receive messages using the TCP network sockets.
- The applications allows to send and receive messages using the UDP network sockets.
- The applications allows to send and receive messages using the file system.
- The applications allows to send and receive messages using the SYSV message queues.
- The applications allows to send and receive messages using the SYSV shared memory.
- The applications allows to serialize and deserialize messages using the Protobuf 3.18.3 library.