#47 "net/messages.xdr.nw" /* copyright 2003-2005 David MENTRE */ /* this software is under GNU GPL. See COPYING.GPL file for details */ #58 "net/messages.xdr.nw" const PROTOCOL_VERSION = 1; #71 "net/messages.xdr.nw" const MAX_LOGIN_SIZE = 64; /* characters */ const MAX_PASSWORD_SIZE = 64; /* characters */ const MAX_EXPLANATION_SIZE = 255; /* characters */ const MAX_QUESTION_SIZE = 1024; /* characters */ const MAX_RESPONSE_STRING_SIZE = 1024; /* characters */ const MAX_TAG_LABEL_SIZE = 255; /* characters */ const MAX_NUMBER_RESPONSES = 2048; /* number of responses */ const MAX_NUMBER_QUESTIONS = 200; /* number of questions */ const MAX_EXTERNAL_LINK_SIZE = 255; /* characters */ const MAX_NUMBER_WINNING_RESPONSES = 10; /* number of responses */ const MAX_GROUP_NAME_SIZE = 255; /* characters */ const MAX_NUMBER_GROUPS = 20; /* number of groups */ const MAX_NUMBER_IDS = 100; /* number of information fields */ const MAX_NUMBER_TAGS_PER_QUESTION = 200; /* number of tags per question */ const MAX_COMPRESSED_SIZE = 1048576; /* in bytes */ const MAX_TIMERS_STRING_SIZE = 65536; /* characters */ #92 "net/messages.xdr.nw" typedef string login_t; typedef string password_t; typedef int question_id_t; typedef string question_desc_t; typedef string response_desc_t; typedef hyper date_t; /* as number of seconds since since 00:00:00 GMT, Jan. 1, 1970 */ typedef string external_link_t; typedef int vote_choice_t; typedef string group_name_t; typedef group_name_t groups_t; typedef string tag_label_t; typedef int tag_set_t; typedef string server_timers_t; #119 "net/messages.xdr.nw" enum return_code_t { rt_ok = 200, rt_generic_client_error = 400,/* it's client's fault */ rt_not_enough_rights = 401, /* client hasn't the right to do that */ rt_already_exists = 402, /* we wanted to some information but it already exists on server */ rt_not_found = 403, /* we looked for some information but it does not exist on the server */ rt_request_too_much_ids = 404, /* we request information on a number of ids which is bigger than MAX_NUMBER_IDS */ rt_bad_status = 405, /* the provided new status to set_question_status() is not tagging_only neither public */ rt_vote_choice_not_found = 406, /* we included in our vote a response number that does not exists on the server */ rt_duplicate_vote_choice = 407, /* we included the same response more than once in our vote */ rt_anonymous_cannot_vote = 408, /* Anonymous user cannot vote */ rt_bad_format = 409, /* a login, question or response is not formated as expected */ rt_bad_login = 410, /* the server could not authenticate the client */ rt_generic_server_error = 500 /* it's server's fault */ }; #164 "net/messages.xdr.nw" struct login_return_t { return_code_t login_return_code; int server_protocol_version; cookie_t login_cookie; }; #174 "net/messages.xdr.nw" struct get_timestamps_return_t { return_code_t gt_return_code; opaque gt_participant; opaque gt_question; opaque gt_tag; }; #185 "net/messages.xdr.nw" struct question_id_return_t { return_code_t question_id_return_code; question_id_t question_id_id; }; #192 "net/messages.xdr.nw" struct max_question_id_return_t { return_code_t max_question_id_rc; question_id_t max_question_id; }; #199 "net/messages.xdr.nw" struct response_t { response_desc_t r_info_desc; external_link_t r_info_link; }; enum question_status_e { tagging_only = 1, public = 2 }; struct question_t { _int32 int q_timestamp; question_id_t q_id; question_desc_t q_desc; date_t q_info_limit_date; /* if set to zero, there is no limit date */ question_status_e q_info_status; response_t q_info_responses; int q_info_num_votes; int q_info_elected_responses; }; struct question_info_return_t { return_code_t question_info_rc; question_t question_info; }; #224 "net/messages.xdr.nw" struct get_vote_return_t { return_code_t get_vote_rc; vote_choice_t get_vote; }; #233 "net/messages.xdr.nw" struct max_participant_id_return_t { return_code_t max_participant_id_rc; int max_participant_id; }; #240 "net/messages.xdr.nw" struct add_participant_return_t { return_code_t add_participant_rc; int add_participant_id; }; #247 "net/messages.xdr.nw" struct info_on_participant_t { int info_id; _int32 int info_timestamp; login_t info_login; password_t info_password; groups_t info_groups; }; struct participant_info_return_t { return_code_t participant_info_rc; info_on_participant_t participant_info; }; #264 "net/messages.xdr.nw" struct max_tag_id_return_t { return_code_t max_tag_id_rc; int max_tag_id; }; #271 "net/messages.xdr.nw" struct create_tag_return_t { return_code_t create_tag_rc; int create_tag_id; }; #278 "net/messages.xdr.nw" struct info_on_tag_t { int a_tag_id; _int32 int a_tag_timestamp; tag_label_t a_tag_label; }; struct tag_info_return_t { return_code_t tag_info_rc; info_on_tag_t tag_info; }; #293 "net/messages.xdr.nw" struct question_tag_set_t { question_id_t tag_set_qid; tag_set_t tag_set; }; struct tag_set_group_t { return_code_t tag_set_group_rc; question_tag_set_t tag_set_group; }; #310 "net/messages.xdr.nw" typedef unsigned int cookie_t; #318 "net/messages.xdr.nw" program Demexp { version V1 { #336 "net/messages.xdr.nw" login_return_t login(int/*client_protocol_version*/, login_t, password_t) = 0; #345 "net/messages.xdr.nw" void goodbye(cookie_t) = 1; #354 "net/messages.xdr.nw" get_timestamps_return_t get_timestamps(cookie_t) = 400; #364 "net/messages.xdr.nw" question_id_return_t new_question(cookie_t, question_desc_t) = 2; #374 "net/messages.xdr.nw" question_id_return_t get_question_id(cookie_t, question_desc_t) = 3; #383 "net/messages.xdr.nw" return_code_t add_response(cookie_t, question_id_t, response_desc_t, external_link_t) = 4; #391 "net/messages.xdr.nw" max_question_id_return_t max_question_id(cookie_t) = 5; #400 "net/messages.xdr.nw" question_info_return_t question_info(cookie_t, int/*base_id*/, int/*number*/) = 6; #410 "net/messages.xdr.nw" return_code_t set_question_status(cookie_t, question_id_t, question_status_e) = 7; #425 "net/messages.xdr.nw" return_code_t vote(cookie_t, question_id_t, vote_choice_t) = 8; #435 "net/messages.xdr.nw" get_vote_return_t get_vote(cookie_t, question_id_t, login_t) = 9; #449 "net/messages.xdr.nw" max_participant_id_return_t max_participant_id(cookie_t) = 100; #457 "net/messages.xdr.nw" participant_info_return_t participant_info(cookie_t, int /*base_id*/, int /*number*/) = 101; #468 "net/messages.xdr.nw" add_participant_return_t add_participant(cookie_t, login_t, password_t, groups_t) = 102; #478 "net/messages.xdr.nw" return_code_t update_participant(cookie_t, login_t, password_t, groups_t) = 103; #485 "net/messages.xdr.nw" return_code_t remove_participant(cookie_t, login_t) = 104; #498 "net/messages.xdr.nw" max_tag_id_return_t max_tag_id(cookie_t) = 200; #506 "net/messages.xdr.nw" create_tag_return_t create_tag(cookie_t, tag_label_t) = 201; #513 "net/messages.xdr.nw" tag_info_return_t tag_info(cookie_t, int /*base_id*/, int /*number*/) = 202; #521 "net/messages.xdr.nw" return_code_t update_tag(cookie_t, int /*tag_id*/, tag_label_t) = 203; #534 "net/messages.xdr.nw" return_code_t tag_question(cookie_t, question_id_t, int /*tag_id*/) = 300; #542 "net/messages.xdr.nw" return_code_t untag_question(cookie_t, question_id_t, int /*tag_id*/) = 301; #550 "net/messages.xdr.nw" tag_set_t get_question_tags(cookie_t, question_id_t) = 302; #561 "net/messages.xdr.nw" tag_set_group_t tag_set_of_question_group(cookie_t, int /*base_id*/, int /*number*/) = 303; #574 "net/messages.xdr.nw" return_code_t stop_server(cookie_t) = 900; #581 "net/messages.xdr.nw" server_timers_t server_timers(cookie_t) = 901; #595 "net/messages.xdr.nw" } = 1; } = 0x20000000;