Newer
Older
*This repository is part of the outcomes of the Specialist Task Force 620 and 669 focusing on the authoring and use of a World Representation as part of the ETSI ISG Augmented Reality Framework architecture (https://www.etsi.org/deliver/etsi_gs/ARF/001_099/003/01.01.01_60/gs_ARF003v010101p.pdf).*
*The set of the World Representation components includes:*
*• The C++ and C# source code for servers and clients generated from OpenAPI available here (https://forge.etsi.org/rep/arf/arf005)*
*• A Unity plugin and a Unity editor for authoring and accessing a World Representation hosted on a World Storage server.*
*All these components are available under the ETSI Labs group “World Storage API Helpers”: https://labs.etsi.org/rep/arf/world-storage-api-helpers*
*If you wish to contribute to this project or any other projects in the context of the [ETSI ISG Augmented Reality Framework architecture](https://www.etsi.org/committee/1420-arf), please refer to the ["How to get involved in an ISG" section on the ETSI website](https://www.etsi.org/how-to-get-involved-in-an-isg)*
This repo contains a restbed server library generation pipeline compliant to the World Storage API.
It also contains a sample using that library, it's a basic implementation allowing the user to perform all CRUD operations on the Trackable models.
| | File / Folder | Description |
|:-:|:--------------:|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
| 📂 | EtsiServerGen | The folder where the library code will be generated, the openapi generator is set to not overwrite the CmakeLists.txt used to generate and export the library to the user's sytem |
| 📂 | EtsiServerImpl | This folder contains a basic implementation of this library, its main set up a local hosted server on port 8080 waiting for CRUD REST queries on the Trackable objects |
| 📂 | arf005 | A submodule pointing to the git containing the API specification file |
| 📃 | package.json | The file containing the npm scripts automating the whole library generation process |
## Install or update cmake
To install the last version of Cmake, we recommend to follow the instruction detailed on the following link (Using APT Repositories): https://askubuntu.com/questions/355565/how-do-i-install-the-latest-version-of-cmake-from-the-command-line
## Install conan v2
Check if conan is already installed on your machine, and if the version 2 is installed:
conan version
If conan version 1 is installed, you will have to remove it before installing version 2.
To install conan version 2, simply run:
pip install conan
To setup your conan profile, run:
conan profile detect
Conan is installed on your machine, you are ready to generate the cpp code for RestBed server.
## Instal openapi-generator-cli
First, install openapi-generator-cli with npm:
npm install @openapitools/openapi-generator-cli -g
Then, set its version to 7.5.0:
openapi-generator-cli version-manager set 7.5.0
To generate the code and the static library use the following commands:
To build in debug mode, use the following command:
npm run generate && npm run buildDebug
You will find the header files in:
/usr/local/include/worldStorageRestBedcppServer/
and the library file in:
/usr/local/lib/libworldStorageRestBedcppServer.a