SVAPI_API bool SubmitTask(OBJECT taskobj,string user,string addr) { if(taskobj==INVALID_VALUE) return false; if(user.empty()||addr.empty()) return false; try{ Section *pmtp=reinterpret_cast<Section *>(taskobj); S_UINT len=pmtp->GetRawDataSize(); svutil::buffer buf; if(!buf.checksize(len)) return false; if(pmtp->GetRawData(buf,len)==NULL) return false; SVDBQUERY querybuf={0}; querybuf.len = sizeof(SVDBQUERY); querybuf.querytype=QUERY_UPDATE; querybuf.datatype=S_TASK; strcpy(querybuf.qstr,pmtp->GetSection().getword()); querybuf.datalen=len; strcpy(querybuf.idcuser,user.c_str()); QueryData qd; SVDBRESULT ret={0}; return qd.Update(&querybuf,buf,len,&ret,addr); }catch(...) { return false; } return false; }
SVAPI_API bool SubmitSVSE(OBJECT svseobj,string user,string addr) { if(svseobj==INVALID_VALUE) return false; if(user.empty()||addr.empty()) return false; try{ SVSE *pmtp=reinterpret_cast<SVSE *>(svseobj); S_UINT len=pmtp->GetRawDataSize(); svutil::buffer buf; if(!buf.checksize(len)) return false; if(pmtp->GetRawData(buf,len)==NULL) return false; SVDBQUERY querybuf={0}; querybuf.len = sizeof(SVDBQUERY); querybuf.querytype=QUERY_UPDATE; querybuf.datatype=S_SVSE; sprintf(querybuf.qstr,"%d",pmtp->GetID()); querybuf.datalen=len; strcpy(querybuf.idcuser,user.c_str()); QueryData qd; SVDBRESULT ret={0}; return qd.Update(&querybuf,buf,len,&ret,addr); }catch(...) { return false; } return true; }
SVAPI_API bool EditTask(OBJECT taskobj,string taskname,string user,string addr) { if(taskobj==INVALID_VALUE) return false; if(user.empty()||addr.empty()) return false; if(taskname.empty()) return SubmitTask(taskobj,user,addr); try{ Section *pmtp=reinterpret_cast<Section *>(taskobj); if(taskname.compare(pmtp->GetSection().getword())==0) return SubmitTask(taskobj,user,addr); if(pmtp->Find("$newtaskname3721$")) return false; if(!pmtp->Push("$newsection3721$",taskname)) return false; S_UINT len=pmtp->GetRawDataSize(); svutil::buffer buf; if(!buf.checksize(len)) { pmtp->Delete("$newsection3721$"); return false; } if(pmtp->GetRawData(buf,len)==NULL) { pmtp->Delete("$newsection3721$"); return false; } pmtp->Delete("$newsection3721$"); SVDBQUERY querybuf={0}; querybuf.len = sizeof(SVDBQUERY); querybuf.querytype=QUERY_EDIT; querybuf.datatype=S_TASK; strcpy(querybuf.qstr,pmtp->GetSection().getword()); querybuf.datalen=len; strcpy(querybuf.idcuser,user.c_str()); QueryData qd; SVDBRESULT ret={0}; return qd.Update(&querybuf,buf,len,&ret,addr); }catch(...) { return false; } return false; }
SVAPI_API bool CopyIniFile(string filecopy,string addr,string user) { if(filecopy.empty()||addr.empty()||user.empty()) return false; if( filecopy.size()>MAXQUEREYSTRINGLEN ) return false; if(user.compare("default")==0) return false; try{ S_UINT dlen=0; SVDBQUERY querybuf={0}; querybuf.len = sizeof(SVDBQUERY); querybuf.querytype=QUERY_COPY_INI; querybuf.datatype=S_GROUP; strcpy(querybuf.qstr,filecopy.c_str()); strcpy(querybuf.idcuser,user.c_str()); INIQUERY iquery={0}; iquery.len=sizeof(INIQUERY); dlen+=sizeof(INIQUERY); querybuf.datalen=dlen; buffer buf; if(!buf.checksize(dlen)) return false; char *pt=buf.getbuffer(); memcpy(pt,&iquery,sizeof(INIQUERY)); QueryData qd; SVDBRESULT ret={0}; return qd.Update(&querybuf,buf,dlen,&ret,addr); }catch(...) { return false; } }
SVAPI_API string AddNewGroup(OBJECT groupobj,string pid,string user,string addr) { if(groupobj==INVALID_VALUE) return ""; if(user.empty()||addr.empty()||pid.empty()) return ""; try{ Group *pmtp=reinterpret_cast<Group *>(groupobj); S_UINT len=pmtp->GetRawDataSize(); svutil::buffer buf; if(!buf.checksize(len)) return ""; if(pmtp->GetRawData(buf,len)==NULL) return ""; SVDBQUERY querybuf={0}; querybuf.len = sizeof(SVDBQUERY); querybuf.querytype=QUERY_ADDNEW; querybuf.datatype=S_GROUP; strcpy(querybuf.qstr,pid.c_str()); querybuf.datalen=len; strcpy(querybuf.idcuser,user.c_str()); QueryData qd; SVDBRESULT ret={0}; if(!qd.Update(&querybuf,buf,len,&ret,addr)) return ""; return ret.info; }catch(...) { return ""; } return ""; }
SVAPI_API bool SubmitEntityGroup(OBJECT egobj,string user,string addr) { if(egobj==INVALID_VALUE) return false; if(user.empty()||addr.empty()) return false; if(user.size()>MAXUSERLEN) return false; try{ EntityGroup *pmtp=reinterpret_cast<EntityGroup *>(egobj); S_UINT len=pmtp->GetRawDataSize(); svutil::buffer buf; if(!buf.checksize(len)) return false; if(pmtp->GetRawData(buf,len)==NULL) return false; SVDBQUERY querybuf={0}; querybuf.len = sizeof(SVDBQUERY); querybuf.querytype=QUERY_UPDATE; querybuf.datatype=S_ENTITYGROUP; strcpy(querybuf.qstr,pmtp->GetID().getword()); querybuf.datalen=len; strcpy(querybuf.idcuser,user.c_str()); QueryData qd; SVDBRESULT ret={0}; return qd.Update(&querybuf,buf,len,&ret,addr); }catch(...) { return false; } return true; }