Array GraphEdit::_get_connection_list() const { List<Connection> conns; get_connection_list(&conns); Array arr; for(List<Connection>::Element *E=conns.front();E;E=E->next()) { Dictionary d; d["from"]=E->get().from; d["from_port"]=E->get().from_port; d["to"]=E->get().to; d["to_port"]=E->get().to_port; arr.push_back(d); } return arr; }
static void process_message(iscsid_request_t *req, iscsid_response_t **prsp, int *prsp_temp) { iscsid_response_t *rsp; void *p = req->parameter; *prsp_temp = FALSE; *prsp = rsp = (iscsid_response_t *)(void *)rsp_buf; rsp->parameter_length = 0; rsp->status = ISCSID_STATUS_SUCCESS; switch (req->request) { case ISCSID_ADD_TARGET: if (req->parameter_length < sizeof(iscsid_add_target_req_t)) { rsp->status = ISCSID_STATUS_INVALID_PARAMETER; break; } add_target((iscsid_add_target_req_t *)p, prsp, prsp_temp); break; case ISCSID_ADD_PORTAL: if (req->parameter_length != sizeof(iscsid_add_portal_req_t)) { rsp->status = ISCSID_STATUS_INVALID_PARAMETER; break; } add_portal((iscsid_add_portal_req_t *)p, prsp, prsp_temp); break; case ISCSID_SET_TARGET_OPTIONS: if (req->parameter_length != sizeof(iscsid_get_set_target_options_t)) { rsp->status = ISCSID_STATUS_INVALID_PARAMETER; break; } rsp->status = set_target_options((iscsid_get_set_target_options_t *)p); break; case ISCSID_GET_TARGET_OPTIONS: if (req->parameter_length != sizeof(iscsid_sym_id_t)) { rsp->status = ISCSID_STATUS_INVALID_PARAMETER; break; } rsp->status = ISCSID_STATUS_NOTIMPL; break; case ISCSID_SET_TARGET_AUTHENTICATION: if (req->parameter_length != sizeof(iscsid_set_target_authentication_req_t)) { rsp->status = ISCSID_STATUS_INVALID_PARAMETER; break; } rsp->status = set_target_auth((iscsid_set_target_authentication_req_t *)p); break; case ISCSID_SLP_FIND_TARGETS: rsp->status = ISCSID_STATUS_NOTIMPL; break; case ISCSID_REFRESH_TARGETS: if (req->parameter_length < sizeof(iscsid_refresh_req_t)) { rsp->status = ISCSID_STATUS_INVALID_PARAMETER; break; } rsp->status = refresh_targets((iscsid_refresh_req_t *)p); break; case ISCSID_REMOVE_TARGET: if (req->parameter_length != sizeof(iscsid_list_id_t)) { rsp->status = ISCSID_STATUS_INVALID_PARAMETER; break; } rsp->status = remove_target((iscsid_list_id_t *)p); break; case ISCSID_SEARCH_LIST: if (req->parameter_length != sizeof(iscsid_search_list_req_t)) { rsp->status = ISCSID_STATUS_INVALID_PARAMETER; break; } search_list((iscsid_search_list_req_t *)p, prsp, prsp_temp); break; case ISCSID_GET_LIST: if (req->parameter_length != sizeof(iscsid_get_list_req_t)) { rsp->status = ISCSID_STATUS_INVALID_PARAMETER; break; } get_list((iscsid_get_list_req_t *)p, prsp, prsp_temp); break; case ISCSID_GET_TARGET_INFO: if (req->parameter_length != sizeof(iscsid_list_id_t)) { rsp->status = ISCSID_STATUS_INVALID_PARAMETER; break; } get_target_info((iscsid_list_id_t *)p, prsp, prsp_temp); break; case ISCSID_GET_PORTAL_INFO: if (req->parameter_length != sizeof(iscsid_list_id_t)) { rsp->status = ISCSID_STATUS_INVALID_PARAMETER; break; } get_portal_info((iscsid_list_id_t *)p, prsp, prsp_temp); break; #ifndef ISCSI_MINIMAL case ISCSID_ADD_ISNS_SERVER: if (req->parameter_length != sizeof(iscsid_add_isns_server_req_t)) { rsp->status = ISCSID_STATUS_INVALID_PARAMETER; break; } add_isns_server((iscsid_add_isns_server_req_t *)p, prsp, prsp_temp); break; case ISCSID_GET_ISNS_SERVER: if (req->parameter_length != sizeof(iscsid_sym_id_t)) { rsp->status = ISCSID_STATUS_INVALID_PARAMETER; break; } get_isns_server((iscsid_sym_id_t *)p, prsp, prsp_temp); break; case ISCSID_SLP_FIND_ISNS_SERVERS: rsp->status = ISCSID_STATUS_NOTIMPL; break; case ISCSID_REMOVE_ISNS_SERVER: if (req->parameter_length != sizeof(iscsid_sym_id_t)) { rsp->status = ISCSID_STATUS_INVALID_PARAMETER; break; } rsp->status = remove_isns_server((iscsid_sym_id_t *)p); break; #endif case ISCSID_ADD_INITIATOR_PORTAL: if (req->parameter_length != sizeof(iscsid_add_initiator_req_t)) { rsp->status = ISCSID_STATUS_INVALID_PARAMETER; break; } add_initiator_portal((iscsid_add_initiator_req_t *)p, prsp, prsp_temp); break; case ISCSID_GET_INITIATOR_PORTAL: if (req->parameter_length != sizeof(iscsid_sym_id_t)) { rsp->status = ISCSID_STATUS_INVALID_PARAMETER; break; } get_initiator_portal((iscsid_sym_id_t *)p, prsp, prsp_temp); break; case ISCSID_REMOVE_INITIATOR_PORTAL: if (req->parameter_length != sizeof(iscsid_sym_id_t)) { rsp->status = ISCSID_STATUS_INVALID_PARAMETER; break; } rsp->status = remove_initiator_portal((iscsid_sym_id_t *)p); break; case ISCSID_LOGIN: if (req->parameter_length != sizeof(iscsid_login_req_t)) { rsp->status = ISCSID_STATUS_INVALID_PARAMETER; break; } login((iscsid_login_req_t *)p, rsp); break; case ISCSID_ADD_CONNECTION: if (req->parameter_length != sizeof(iscsid_login_req_t)) { rsp->status = ISCSID_STATUS_INVALID_PARAMETER; break; } add_connection((iscsid_login_req_t *)p, rsp); break; case ISCSID_LOGOUT: if (req->parameter_length != sizeof(iscsid_sym_id_t)) { rsp->status = ISCSID_STATUS_INVALID_PARAMETER; break; } rsp->status = logout((iscsid_sym_id_t *)p); break; case ISCSID_REMOVE_CONNECTION: if (req->parameter_length != sizeof(iscsid_remove_connection_req_t)) { rsp->status = ISCSID_STATUS_INVALID_PARAMETER; break; } rsp->status = remove_connection((iscsid_remove_connection_req_t *)p); break; case ISCSID_GET_SESSION_LIST: get_session_list(prsp, prsp_temp); break; case ISCSID_GET_CONNECTION_LIST: if (req->parameter_length != sizeof(iscsid_sym_id_t)) { rsp->status = ISCSID_STATUS_INVALID_PARAMETER; break; } get_connection_list((iscsid_sym_id_t *)p, prsp, prsp_temp); break; case ISCSID_GET_CONNECTION_INFO: if (req->parameter_length != sizeof(iscsid_get_connection_info_req_t)) { rsp->status = ISCSID_STATUS_INVALID_PARAMETER; break; } get_connection_info((iscsid_get_connection_info_req_t *)p, prsp, prsp_temp); break; case ISCSID_SET_NODE_NAME: if (req->parameter_length != sizeof(iscsid_set_node_name_req_t)) { rsp->status = ISCSID_STATUS_INVALID_PARAMETER; break; } rsp->status = set_node_name((iscsid_set_node_name_req_t *)p); break; case ISCSID_GET_VERSION: get_version(prsp, prsp_temp); break; default: rsp->status = ISCSID_STATUS_INVALID_REQUEST; break; } }
bool AnimationTreePlayer::_get(const StringName& p_name,Variant &r_ret) const { if (String(p_name)=="base_path") { r_ret=base_path; return true; } if (String(p_name)=="master_player") { r_ret=master; return true; } if (String(p_name) == "playback/active") { r_ret=is_active(); return true; } if (String(p_name)!="data") return false; Dictionary data; Array nodes; for(Map<StringName,NodeBase*>::Element *E=node_map.front();E;E=E->next()) { NodeBase *n = node_map[E->key()]; Dictionary node; node["id"]=E->key(); node["pos"]=n->pos; switch(n->type) { case NODE_OUTPUT: node["type"]= "output"; break; case NODE_ANIMATION: node["type"]= "animation"; break; case NODE_ONESHOT: node["type"]= "oneshot"; break; case NODE_MIX: node["type"]= "mix"; break; case NODE_BLEND2: node["type"]= "blend2"; break; case NODE_BLEND3: node["type"]= "blend3"; break; case NODE_BLEND4: node["type"]= "blend4"; break; case NODE_TIMESCALE: node["type"]= "timescale"; break; case NODE_TIMESEEK: node["type"]= "timeseek"; break; case NODE_TRANSITION: node["type"]= "transition"; break; default: node["type"]= ""; break; } switch(n->type) { case NODE_OUTPUT: { } break; case NODE_ANIMATION: { AnimationNode *an = static_cast<AnimationNode*>(n); if (master!=NodePath() && an->from!="") { node["from"]=an->from; } else { node["animation"]=an->animation; } } break; case NODE_ONESHOT: { OneShotNode *osn = static_cast<OneShotNode*>(n); node["fade_in"]=osn->fade_in; node["fade_out"]=osn->fade_out; node["mix"]=osn->mix; node["autorestart"]=osn->autorestart; node["autorestart_delay"]=osn->autorestart_delay; node["autorestart_random_delay"]=osn->autorestart_random_delay; Array k; List<NodePath> keys; osn->filter.get_key_list(&keys); k.resize(keys.size()); int i=0; for(List<NodePath>::Element *E=keys.front();E;E=E->next()) { k[i++]=E->get(); } node["filter"]=k; } break; case NODE_MIX: { MixNode *mn = static_cast<MixNode*>(n); node["mix"]=mn->amount; } break; case NODE_BLEND2: { Blend2Node *bn = static_cast<Blend2Node*>(n); node["blend"]=bn->value; Array k; List<NodePath> keys; bn->filter.get_key_list(&keys); k.resize(keys.size()); int i=0; for(List<NodePath>::Element *E=keys.front();E;E=E->next()) { k[i++]=E->get(); } node["filter"]=k; } break; case NODE_BLEND3: { Blend3Node *bn = static_cast<Blend3Node*>(n); node["blend"]=bn->value; } break; case NODE_BLEND4: { Blend4Node *bn = static_cast<Blend4Node*>(n); node["blend"]=bn->value; } break; case NODE_TIMESCALE: { TimeScaleNode *tsn = static_cast<TimeScaleNode*>(n); node["scale"]=tsn->scale; } break; case NODE_TIMESEEK: { } break; case NODE_TRANSITION: { TransitionNode *tn = static_cast<TransitionNode*>(n); node["xfade"]=tn->xfade; Array transitions; for(int i=0;i<tn->input_data.size();i++) { Dictionary d; d["auto_advance"]=tn->input_data[i].auto_advance; transitions.push_back(d); } node["transitions"]=transitions; } break; default: {}; } nodes.push_back(node); } data["nodes"]=nodes; //connectiosn List<Connection> connections; get_connection_list(&connections); Array connections_arr; connections_arr.resize(connections.size()*3); int idx=0; for (List<Connection>::Element *E=connections.front();E;E=E->next()) { connections_arr.set(idx+0,E->get().src_node); connections_arr.set(idx+1,E->get().dst_node); connections_arr.set(idx+2,E->get().dst_input); idx+=3; } data["connections"]=connections_arr; data["active"]=active; data["master"]=master; r_ret=data; return true; }