Skip to content

Commit

Permalink
[sourcegen] Add logger implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
ischoegl committed Feb 3, 2025
1 parent 30db3be commit 3a2e8ec
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 3 deletions.
4 changes: 2 additions & 2 deletions interfaces/sourcegen/sourcegen/_data/ct_auto.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ recipes:
- name: getGitCommit
implements: gitCommit # inconsistent API (preexisting)
- name: getCanteraError
- name: setLogWriter
- name: setLogCallback
- name: addCanteraDirectory
implements: addDirectory # inconsistent API (preexisting)
- name: getDataDirectories
Expand Down Expand Up @@ -42,5 +44,3 @@ recipes:
implements: epsilon_0
- name: clearStorage
- name: resetStorage
- name: setLogWriter
- name: setLogCallback
3 changes: 2 additions & 1 deletion interfaces/sourcegen/sourcegen/clib/_CLibSourceGenerator.py
Original file line number Diff line number Diff line change
Expand Up @@ -441,7 +441,8 @@ def merge_params(

func_name = f"{recipe.prefix}_{recipe.name}"
reserved = ["cabinetSize", "parentHandle",
"getCanteraError", "clearStorage", "resetStorage"]
"getCanteraError", "setLogWriter", "setLogCallback",
"clearStorage", "resetStorage"]
if recipe.name in reserved:
recipe.what = "reserved"
loader = Environment(loader=BaseLoader)
Expand Down
1 change: 1 addition & 0 deletions interfaces/sourcegen/sourcegen/clib/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ ignore_funcs:
includes:
"":
- cantera/base/global.h
- cantera/base/ExternalLogger.h
Solution:
- cantera/base/Solution.h
Interface:
Expand Down
33 changes: 33 additions & 0 deletions interfaces/sourcegen/sourcegen/clib/templates.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,18 @@ clib-reserved-getCanteraError-h: |-
*/
int {{ prefix }}_getCanteraError(int bufLen, char* buf);
clib-reserved-setLogWriter-h: |-
/**
* Undocumented.
*/
int {{ prefix }}_setLogWriter(void* logger);
clib-reserved-setLogCallback-h: |-
/**
* Undocumented.
*/
int {{ prefix }}_setLogCallback(LogCallback writer);
clib-reserved-resetStorage-h: |-
/**
* Delete all objects and erase mapping.
Expand Down Expand Up @@ -449,6 +461,27 @@ clib-reserved-getCanteraError-cpp: |-
return handleAllExceptions(-1, ERR);
}
clib-reserved-setLogWriter-cpp: |-
// reserved: setLogWriter
try {
Logger* logwriter = (Logger*)logger;
setLogger(logwriter);
return 0;
} catch (...) {
return handleAllExceptions(-1, ERR);
}
clib-reserved-setLogCallback-cpp: |-
// reserved: setLogCallback
static unique_ptr<Logger> logwriter;
try {
logwriter = make_unique<ExternalLogger>(writer);
setLogger(logwriter.get());
return 0;
} catch (...) {
return handleAllExceptions(-1, ERR);
}
clib-reserved-resetStorage-cpp: |-
// reserved: void Cabinet<T>::reset()
try {
Expand Down

0 comments on commit 3a2e8ec

Please sign in to comment.