From 7df098eafa68adb0e16ff21047c308487998258e Mon Sep 17 00:00:00 2001 From: kin fuyuki Date: Fri, 5 Dec 2025 01:47:40 -0300 Subject: [PATCH] added ability to get default value if is needed --- Makefile | 1 + inc/tdf.h | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 65 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index e85ad25..7be0250 100644 --- a/Makefile +++ b/Makefile @@ -2,5 +2,6 @@ CC=clang++ CFLAGS=-std=c++23 install: + rm -rf /usr/include/tiny/ mkdir -p /usr/include/tiny/ cp inc/*.h /usr/include/tiny/ \ No newline at end of file diff --git a/inc/tdf.h b/inc/tdf.h index 31f1fbe..f393f18 100644 --- a/inc/tdf.h +++ b/inc/tdf.h @@ -352,10 +352,8 @@ struct TDF_FILE{ throw TDF_ERR(FILE_NOT_FOUND,filepath,{}); } NULLPOINTER: - //tiny::fatal("NULL POINTER of selector %c",CCHAR); throw TDF_ERR(NULL_POINTER,filepath,{std::string(1,CCHAR),std::to_string(INDEX)}); FAILTOPARSE: - //tiny::fatal("FAILED TO PARSE LINE %i OF FILE %s",INDEX,filepath); throw TDF_ERR(FAILED_TO_PARSE,filepath,{std::to_string(INDEX)}); delete data; data=nullptr; @@ -373,6 +371,14 @@ struct TDF_FILE{ } return false; } + bool defined(std::vectorpath,bool defaultval){ + try { + return defined(path);} + catch(TDF_ERR e) { + warning((char*)e.what()); + return defaultval; + } + } bool getbool(std::vectorpath){ boost::unordered_map*current=data; for(size_t i=0;ipath,bool defaultval){ + try { + return getbool(path);} + catch(TDF_ERR e) { + warning((char*)e.what()); + return defaultval; + } + } int getint(std::vectorpath){ boost::unordered_map*current=data; for(size_t i=0;ipath,int defaultval){ + try { + return getint(path);} + catch(TDF_ERR e) { + warning((char*)e.what()); + return defaultval; + } + } std::string getstring(std::vectorpath){ boost::unordered_map*current=data; for(size_t i=0;ipath,std::string defaultval){ + try { + return getstring(path);} + catch(TDF_ERR e) { + warning((char*)e.what()); + return defaultval; + } + } std::vector getpointer(std::vectorpath){ boost::unordered_map*current=data; for(size_t i=0;i getpointer(std::vectorpath,std::vector defaultval){ + try { + return getpointer(path);} + catch(TDF_ERR e) { + warning((char*)e.what()); + return defaultval; + } + } char getchar(std::vectorpath){ boost::unordered_map*current=data; for(size_t i=0;ipath,char defaultval){ + try { + return getchar(path);} + catch(TDF_ERR e) { + warning((char*)e.what()); + return defaultval; + } + } float getfloat(std::vectorpath){ boost::unordered_map*current=data; for(size_t i=0;ipath,float defaultval){ + try { + return getfloat(path);} + catch(TDF_ERR e) { + warning((char*)e.what()); + return defaultval; + } + } boost::unordered_map* getclass(std::vectorpath){ boost::unordered_map*current=data; for(size_t i=0;i* getclass(std::vectorpath,boost::unordered_map* defaultval){ + try { + return getclass(path);} + catch(TDF_ERR e) { + warning((char*)e.what()); + return defaultval; + } + } //set void setbool(std::vectorpath,bool value){