README.md 2.57 KB
Newer Older
*This repository is part of the outcomes of the Specialist Task Force 620 focusing on the authoring 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 authoring 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*

---

# WORLD STORAGE CPP SERVER (PISTACHE)

## Description

This repo contains the API specification needed to generate a pistache server library.
It also contains a sample using that library, it's a basic implementation allowing the user to perform all CRUD operations on the Trackable model

## Repo Content

|                    | File / Folder  | Description                                                                                                                                                                         |
|--------------------|----------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| :open_file_folder: | 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 |
| :open_file_folder: | 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 object Trackable              |
| :page_with_curl:   | openapi.yaml   | The api specification file                                                                                                                                                          |
| :page_with_curl:   | package.json   | The file containing the npm scripts automating the whole  library generation process                                                                                                |

## Requirements

- A Linux based machine
- CMake
- npm

## Code Generation

To generate the code and the DLLs use the following commands:

    npm install
    npm run generate && npm run dependencies && npm run build