aboutsummaryrefslogtreecommitdiffstats
path: root/toj/center/src/center_judge.h
diff options
context:
space:
mode:
authorpzread <netfirewall@gmail.com>2013-04-09 09:37:29 +0800
committerpzread <netfirewall@gmail.com>2013-04-09 09:44:11 +0800
commit31e170379d567a71f1792e0bad9aea6ca3c6478a (patch)
tree73cac5d618f466db3b5be6982824cc0e1b421f90 /toj/center/src/center_judge.h
parent3c6abbe11d9f2d173020add74217af2d450a1d16 (diff)
downloadtaiwan-online-judge-31e170379d567a71f1792e0bad9aea6ca3c6478a.tar
taiwan-online-judge-31e170379d567a71f1792e0bad9aea6ca3c6478a.tar.gz
taiwan-online-judge-31e170379d567a71f1792e0bad9aea6ca3c6478a.tar.bz2
taiwan-online-judge-31e170379d567a71f1792e0bad9aea6ca3c6478a.tar.lz
taiwan-online-judge-31e170379d567a71f1792e0bad9aea6ca3c6478a.tar.xz
taiwan-online-judge-31e170379d567a71f1792e0bad9aea6ca3c6478a.tar.zst
taiwan-online-judge-31e170379d567a71f1792e0bad9aea6ca3c6478a.zip
Fix segment fault(use deleted memory). Add square-problem manage. Check setting file exist
Diffstat (limited to 'toj/center/src/center_judge.h')
-rwxr-xr-xtoj/center/src/center_judge.h14
1 files changed, 8 insertions, 6 deletions
diff --git a/toj/center/src/center_judge.h b/toj/center/src/center_judge.h
index 99a3cf9..a955ce9 100755
--- a/toj/center/src/center_judge.h
+++ b/toj/center/src/center_judge.h
@@ -22,6 +22,7 @@ public:
int submit(judge_submit_info *submit_info);
int result(int subid,char *res_data);
int updatepro(std::vector<std::pair<int,int> > &pro_list);
+ int updatejmod(std::vector<std::pair<char*,int> > &jmod_list);
};
class judge_conn : public netio{
@@ -58,7 +59,7 @@ public:
int send_setid(int judgeid);
int send_submit(judge_submit_info* submit_info);
int send_setpro(std::vector<std::pair<int,int> > &pro_list,int type);
- int send_setjmod(char **jmod_name,int *cacheid,int type,int count);
+ int send_setjmod(std::vector<std::pair<char*,int> > &jmod_list,int type);
virtual int readidle();
};
@@ -70,13 +71,13 @@ public:
char *set_data;
size_t set_len;
- judge_submit_info(int subid,int proid,int lang,char *setdata,size_t setlen){
+ judge_submit_info(int subid,int proid,int lang,char *set_data,size_t set_len){
this->subid = subid;
this->proid = proid;
this->lang = lang;
- this->set_data = new char[setlen];
- memcpy(this->set_data,setdata,setlen);
- this->set_len = setlen;
+ this->set_data = new char[set_len];
+ memcpy(this->set_data,set_data,set_len);
+ this->set_len = set_len;
}
~judge_submit_info(){
delete this->set_data;
@@ -92,8 +93,9 @@ static std::queue<judge_submit_info*> judge_submitqueue;
int center_judge_init();
void* center_judge_addconn(int fd);
int center_judge_dispatch(int evflag,void *data);
-int center_judge_submit(int subid,int proid,int lang,char *setdata,size_t setlen);
+int center_judge_submit(int subid,int proid,int lang,char *set_data,size_t set_len);
int center_judge_updatepro(std::vector<std::pair<int,int> > &pro_list);
+int center_judge_updatejmod(std::vector<std::pair<char*,int> > &jmod_list);
extern int center_manage_result(int subid,char *res_data);
extern center_pro_info* center_manage_getprobyid(int proid);