📄 keyval.cc
字号:
return key_describedclassvalue(newkey,def); }// For arrays:int KeyVal::exists(const char* key,int n1,int n2) { char newkey[MaxKeywordLength]; getnewkey(newkey,key,n1,n2); return key_exists(newkey); }int KeyVal::count(const char* key,int n1,int n2) { char newkey[MaxKeywordLength]; getnewkey(newkey,key,n1,n2); return key_count(newkey); }double KeyVal::doublevalue(const char* key,int n1,int n2, const KeyValValue& def) { char newkey[MaxKeywordLength]; getnewkey(newkey,key,n1,n2); return key_doublevalue(newkey,def); }float KeyVal::floatvalue(const char* key,int n1,int n2, const KeyValValue& def) { char newkey[MaxKeywordLength]; getnewkey(newkey,key,n1,n2); return key_floatvalue(newkey,def); }char KeyVal::charvalue(const char* key,int n1,int n2, const KeyValValue& def) { char newkey[MaxKeywordLength]; getnewkey(newkey,key,n1,n2); return key_charvalue(newkey,def); }int KeyVal::intvalue(const char* key,int n1,int n2, const KeyValValue& def) { char newkey[MaxKeywordLength]; getnewkey(newkey,key,n1,n2); return key_intvalue(newkey,def); }size_t KeyVal::sizevalue(const char* key,int n1,int n2, const KeyValValue& def) { char newkey[MaxKeywordLength]; getnewkey(newkey,key,n1,n2); return key_sizevalue(newkey,def); }int KeyVal::booleanvalue(const char* key,int n1,int n2, const KeyValValue& def) { char newkey[MaxKeywordLength]; getnewkey(newkey,key,n1,n2); return key_booleanvalue(newkey,def); }char* KeyVal::pcharvalue(const char* key,int n1,int n2, const KeyValValue& def) { char newkey[MaxKeywordLength]; getnewkey(newkey,key,n1,n2); return key_pcharvalue(newkey,def); }std::string KeyVal::stringvalue(const char* key,int n1,int n2, const KeyValValue& def) { char newkey[MaxKeywordLength]; getnewkey(newkey,key,n1,n2); return key_stringvalue(newkey,def); }Ref<DescribedClass> KeyVal::describedclassvalue(const char* key,int n1,int n2, const KeyValValue& def) { char newkey[MaxKeywordLength]; getnewkey(newkey,key,n1,n2); return key_describedclassvalue(newkey,def); }// new and improved for the intel, we can once again use va_arg(), so the// 12 arg limit is gone. Unfortunately we can't use new here, so the vals// array is hardwired to 80. That should suffice in the foreseeable future//#define getnewvakey(newkey,key,narg) \ strcpy(newkey,key); \ if(narg!=0) { \ int vals[80]; \ if(narg > 80) { \ ExEnv::errn() << "keyval.cc: getnewvakey: too many varargs...sorry" << endl; \ exit(1); \ } \ va_start(args,narg); \ int i; \ for(i=0; i < narg; i++) \ vals[i] = va_arg(args,int); \ va_end(args); \ for(i=0; i < narg; i++) \ sprintf((newkey+strlen(newkey)),":%d",vals[i]); \ }// For all else:int KeyVal::Va_exists(const char* key,int narg,...) { va_list args; char newkey[MaxKeywordLength]; getnewvakey(newkey,key,narg); return key_exists(newkey); }int KeyVal::Va_count(const char* key,int narg,...) { va_list args; char newkey[MaxKeywordLength]; getnewvakey(newkey,key,narg); return key_count(newkey); }double KeyVal::Va_doublevalue(const char* key,int narg,...) { va_list args; char newkey[MaxKeywordLength]; getnewvakey(newkey,key,narg); return key_doublevalue(newkey,KeyValValuedouble()); }float KeyVal::Va_floatvalue(const char* key,int narg,...) { va_list args; char newkey[MaxKeywordLength]; getnewvakey(newkey,key,narg); return key_floatvalue(newkey,KeyValValuefloat()); }char KeyVal::Va_charvalue(const char* key,int narg,...) { va_list args; char newkey[MaxKeywordLength]; getnewvakey(newkey,key,narg); return key_charvalue(newkey,KeyValValuechar()); }int KeyVal::Va_intvalue(const char* key,int narg,...) { va_list args; char newkey[MaxKeywordLength]; getnewvakey(newkey,key,narg); return key_intvalue(newkey,KeyValValueint()); }size_t KeyVal::Va_sizevalue(const char* key,int narg,...) { va_list args; char newkey[MaxKeywordLength]; getnewvakey(newkey,key,narg); return key_sizevalue(newkey,KeyValValuesize()); }char* KeyVal::Va_pcharvalue(const char* key,int narg,...) { va_list args; char newkey[MaxKeywordLength]; getnewvakey(newkey,key,narg); return key_pcharvalue(newkey,KeyValValuepchar()); }std::string KeyVal::Va_stringvalue(const char* key,int narg,...) { va_list args; char newkey[MaxKeywordLength]; getnewvakey(newkey,key,narg); return key_stringvalue(newkey,KeyValValuestring()); }Ref<DescribedClass> KeyVal::Va_describedclassvalue(const char* key,int narg,...) { va_list args; char newkey[MaxKeywordLength]; getnewvakey(newkey,key,narg); return key_describedclassvalue(newkey,KeyValValueRefDescribedClass()); }void KeyVal::errortrace(ostream&fp){ fp << indent << "KeyVal: error: \"" << errormsg() << "\"" << endl;}void KeyVal::dump(ostream&fp){ fp << indent << "KeyVal: error: \"" << errormsg() << "\"" << endl;}void KeyVal::print_unseen(ostream&fp){ fp << indent << "(this keyval does not record unread variables)" << endl;}int KeyVal::have_unseen(){ return -1;}voidKeyVal::seterror(KeyValValue::KeyValValueError e){ if (e == KeyValValue::OK) { seterror(KeyVal::OK); } else if (e == KeyValValue::WrongType) { seterror(KeyVal::WrongType); } else { // shouldn't get here seterror(KeyVal::OperationFailed); }}// here are some inline candidates that are here for now because// they were making executables bigvoidKeyVal::seterror(KeyValError err){ errcod = err;}intKeyVal::exists(int i){ return exists((const char*)0,i);}intKeyVal::count(int i){ return count((const char*)0,i);}intKeyVal::booleanvalue(int i,const KeyValValue& def){ return booleanvalue((const char*)0,i,def);}doubleKeyVal::doublevalue(int i,const KeyValValue& def){ return doublevalue((const char*)0,i,def);}floatKeyVal::floatvalue(int i,const KeyValValue& def){ return floatvalue((const char*)0,i,def);}charKeyVal::charvalue(int i,const KeyValValue& def){ return charvalue((const char*)0,i,def);}intKeyVal::intvalue(int i,const KeyValValue& def){ return intvalue((const char*)0,i,def);}size_tKeyVal::sizevalue(int i,const KeyValValue& def){ return sizevalue((const char*)0,i,def);}char*KeyVal::pcharvalue(int i,const KeyValValue& def){ return pcharvalue((const char*)0,i,def);}std::stringKeyVal::stringvalue(int i,const KeyValValue& def){ return stringvalue((const char*)0,i,def);}Ref<DescribedClass>KeyVal::describedclassvalue(int i,const KeyValValue& def){ return describedclassvalue((const char*)0,i,def);}intKeyVal::exists(int i,int j){ return exists((const char*)0,i,j);}intKeyVal::count(int i,int j){ return count((const char*)0,i,j);}intKeyVal::booleanvalue(int i,int j,const KeyValValue& def){ return booleanvalue((const char*)0,i,j,def);}doubleKeyVal::doublevalue(int i,int j,const KeyValValue& def){ return doublevalue((const char*)0,i,j,def);}floatKeyVal::floatvalue(int i,int j,const KeyValValue& def){ return floatvalue((const char*)0,i,j,def);}charKeyVal::charvalue(int i,int j,const KeyValValue& def){ return charvalue((const char*)0,i,j,def);}intKeyVal::intvalue(int i,int j,const KeyValValue& def){ return intvalue((const char*)0,i,j,def);}size_tKeyVal::sizevalue(int i,int j,const KeyValValue& def){ return sizevalue((const char*)0,i,j,def);}char*KeyVal::pcharvalue(int i,int j,const KeyValValue& def){ return pcharvalue((const char*)0,i,j,def);}std::stringKeyVal::stringvalue(int i,int j,const KeyValValue& def){ return stringvalue((const char*)0,i,j,def);}Ref<DescribedClass>KeyVal::describedclassvalue(int i,int j,const KeyValValue& def){ return describedclassvalue((const char*)0,i,j,def);}KeyVal::KeyValErrorKeyVal::error(){ return errcod;}const char*KeyVal::errormsg(){ return errormsg(errcod);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -