# Data Provider Framework

Copyright © 2025 by Ceetron AS

The HOOPS CAE Data Provider Framework is a framework for writing data providers that can be plugged into applications based on HOOPS Envision. This includes HOOPS Envision Demo Analyzer and the RemoteModel server (CeeCloudServer) in HOOPS Envision for Web. The same plugin can be used both in cloud and desktop.

The DataProvider enables the user to provide the following data based on a given ModelKey:

- Meta data about the given model: Number of states, geometries, results, sets
- CAE model with elements and nodes
- Results: Scalar, Vector, Displacements and Tensor (Stress and Strain)
- Rigid body transformations
- Element sets

The DataProvider also supports communicating updated data to the host application. This is done via the `pollForChanges()` method which will be called at regular intervals by host applications that have polling support. This methods allows for notifying the host application that data has changed (using the `CDPChangeNotifications` interface), and the host will then ask for the updated data whenever needed.

The following modifications are supported:

- Results: Modified, added and deleted
- States: Modified meta data (name and reference value), added and deleted
- Geometry: Modified

Finally, there is way to communicate with the data provider from the client (web) or host (desktop) application. By implementing the `handleClientRequest()` method a data provider can respond to queries, modify the data or do some other custom operation. As with `pollForChanges()`, there is a mechanism to notify the host that the data has changed, as well as communicate custom data back to the client (via the `CDPClientResponse` interface).

Distribution Content

To get access to the data provider framework, download the “HOOPS Envision for Desktop” from https://developer.techsoft3d.com. The data provider framework is found in the DataProviderFramework folder in the distribution. The data provider framework is free to download and use, and is provided as source code so you can compile with your favorite compiler and settings.

- CMakeLists.txt: Main CMake file (used for building the framework and example apps).
- DataProviderHostLib: Library used by host applications to interface with data providers, e.g. example applications, HOOPS Envision for Web and Envision Analyzer Desktop.
- DataProviderPlugin: Header only library defining the interfaces needed for developing a plugin. A custom plugin has no external dependencies (not depending on DataProviderHostLib).
- ExampleApps: A TestDriver for interrogating and validating a plugin with a given model key.
- ExamplePlugins: MinimalPlugin: A small example showing how to create a plugin.

Supported Platforms

HOOPS CAE Data Provider Framework supports most compilers on most platforms. It has been tested on:

- Windows: Libraries compiled with VS2019 (142 toolset), which will work in VS2019 and VS2022.
- Linux: Libraries compiled with Rocky 8.9 using glibc 2.28 and gcc 8.5.
- MacOS: MacOS 10.14, 10.15, Xcode 10 and 11

For further information please contact us
URL: https://www.techsoft3d.com
Support: support@techsoft3d.com

All Rights Reserved. No part of this documentation or the accompanying source code shall be reproduced, stored in a retrieval system or transmitted by any means without written permission from the publisher.

Conversation saved
HOOPSY BETA

### Hello! I'm HOOPSY

Your multilingual generative AI assistant for documentation. Ask me anything about HOOPS Envision for Desktop in your own language, or choose a sample question below to start a conversation:

What is HOOPS Envision for Desktop?
What are the latest release notes for HOOPS Envision for Desktop?
How do I start evaluating HOOPS Envision for Desktop?
How do I write my first sample application?
How can I get assistance?

HOOPSY may store conversations according to OpenAI's policy. Responses may not always be accurate.

HOOPSY is thinking...