From f5cbd4d30548d49c8f1eee497eee3c10bdebb0e9 Mon Sep 17 00:00:00 2001 From: tmadlener Date: Wed, 2 Oct 2024 16:13:03 +0200 Subject: [PATCH] Update available templates documentation --- doc/templates.md | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/doc/templates.md b/doc/templates.md index 79b6cbb63..6335932a9 100644 --- a/doc/templates.md +++ b/doc/templates.md @@ -26,19 +26,22 @@ Note that some of the information below will only apply to either of these gener Currently PODIO loads templates that are placed in [`/python/templates`](/python/templates). They are broadly split along the classes that are generated for each datatype or component from the EDM definition: -| template file(s) | content | generated file(s) | -|---------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------| -| `Component.h.jinja2` | Definition for each component | `[/].h` | -| `Data.h.jinja2` | POD struct of each datatype (living in the POD layer) | `[/]Data.h` | -| `Obj.{h,cc}.jinja2` | `Obj` class for each datatype (living in the object layer) and managing resources | `[/]Obj.h`, `src/Obj.cc` | -| `[Mutable]Object.{h,cc}.jinja2` | The user facing interfaces for each datatype (living in the user layer) | `[/][Mutable].h`, `src/[Mutable].cc` | -| `Collection.{h,cc}.jinja2` | The user facing collection interface (living in the user layer) | `[/]Collection.h`, `src/Collection.cc` | -| `CollectionData.{h,cc}.jinja2` | The classes managing the collection storage (not user facing!) | `[/]CollectionData.h`, `src/CollectionData.cc` | -| `datamodel.h.jinja2` | The *full datamodel header* that includes everything of a generated EDM (via including all generated `Collections`). | `[]/.h` | -| `selection.xml.jinja2` | The `selection.xml` file that is necessary for generating a root dictionary for the generated datamodel | `src/selection.xml` | -| `SIOBlock.{h,cc}.jinja2` | The SIO blocks that are necessary for the SIO backend | `[/]SIOBlock.h`, `src/SIOBlock.cc` | -| `MutableStruct.jl.jinja2` | The mutable struct definitions of components and datatypes for julia | `[/]Struct.jl`, `[/]Struct.jl` | -| `ParentModule.jl.jinja2` | The constructor and collection definitions of components and datatypes in the data model are contained within a single module named after the package-name | `[/].jl` | +| template file(s) | content | generated file(s) | +|------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------| +| `Component.h.jinja2` | Definition for each component | `[/].h` | +| `Data.h.jinja2` | POD struct of each datatype (living in the POD layer) | `[/]Data.h` | +| `Obj.{h,cc}.jinja2` | `Obj` class for each datatype (living in the object layer) and managing resources | `[/]Obj.h`, `src/Obj.cc` | +| `[Mutable]Object.{h,cc}.jinja2` | The user facing interfaces for each datatype (living in the user layer) | `[/][Mutable].h`, `src/[Mutable].cc` | +| `Collection.{h,cc}.jinja2` | The user facing collection interface (living in the user layer) | `[/]Collection.h`, `src/Collection.cc` | +| `CollectionData.{h,cc}.jinja2` | The classes managing the collection storage (not user facing!) | `[/]CollectionData.h`, `src/CollectionData.cc` | +| `datamodel.h.jinja2` | The *full datamodel header* that includes everything of a generated EDM (via including all generated `Collections`). | `[]/.h` | +| `selection.xml.jinja2` | The `selection.xml` file that is necessary for generating a root dictionary for the generated datamodel | `src/selection.xml` | +| `SIOBlock.{h,cc}.jinja2` | The SIO blocks that are necessary for the SIO backend | `[/]SIOBlock.h`, `src/SIOBlock.cc` | +| `LinkCollection.h.jinja2` | The header that is generated for each *Link* containing effectively typedefs only | | +| `DatamodelLinksSIOBlock.cc.jinja2` | The .cc file that is necessary for enabling SIO based I/O for *Link*s | | +| `DatamodelLinks.cc.jinja2` | The global .cc file that is necessary to enable I/O for all *Link*s | | +| `MutableStruct.jl.jinja2` | The mutable struct definitions of components and datatypes for julia | `[/]Struct.jl`, `[/]Struct.jl` | +| `ParentModule.jl.jinja2` | The constructor and collection definitions of components and datatypes in the data model are contained within a single module named after the package-name | `[/].jl` | The presence of a `[]` subdirectory for the header files is controlled by the `includeSubfolder` option in the yaml definition file.