| 5070 | ////////////////////////////////////////////////////////// |
| 5071 | |
| 5072 | void smem_visualize_store(agent* thisAgent, std::string* return_val) |
| 5073 | { |
| 5074 | // header |
| 5075 | return_val->append("digraph smem {"); |
| 5076 | return_val->append("\n"); |
| 5077 | |
| 5078 | // LTIs |
| 5079 | return_val->append("node [ shape = doublecircle ];"); |
| 5080 | return_val->append("\n"); |
| 5081 | |
| 5082 | std::map< smem_lti_id, std::string > lti_names; |
| 5083 | std::map< smem_lti_id, std::string >::iterator n_p; |
| 5084 | { |
| 5085 | soar_module::sqlite_statement* q; |
| 5086 | |
| 5087 | smem_lti_id lti_id; |
| 5088 | char lti_letter; |
| 5089 | uint64_t lti_number; |
| 5090 | |
| 5091 | std::string* lti_name; |
| 5092 | std::string temp_str; |
| 5093 | int64_t temp_int; |
| 5094 | double temp_double; |
| 5095 | |
| 5096 | // id, soar_letter, number |
| 5097 | q = thisAgent->smem_stmts->vis_lti; |
| 5098 | while (q->execute() == soar_module::row) |
| 5099 | { |
| 5100 | lti_id = q->column_int(0); |
| 5101 | lti_letter = static_cast<char>(q->column_int(1)); |
| 5102 | lti_number = static_cast<uint64_t>(q->column_int(2)); |
| 5103 | |
| 5104 | lti_name = & lti_names[ lti_id ]; |
| 5105 | lti_name->push_back(lti_letter); |
| 5106 | |
| 5107 | to_string(lti_number, temp_str); |
| 5108 | lti_name->append(temp_str); |
| 5109 | |
| 5110 | return_val->append((*lti_name)); |
| 5111 | return_val->append(" [ label=\""); |
| 5112 | return_val->append((*lti_name)); |
| 5113 | return_val->append("\\n["); |
| 5114 | |
| 5115 | temp_double = q->column_double(3); |
| 5116 | to_string(temp_double, temp_str, 3, true); |
| 5117 | if (temp_double >= 0) |
| 5118 | { |
| 5119 | return_val->append("+"); |
| 5120 | } |
| 5121 | return_val->append(temp_str); |
| 5122 | |
| 5123 | return_val->append("]\""); |
| 5124 | return_val->append(" ];"); |
| 5125 | return_val->append("\n"); |
| 5126 | } |
| 5127 | q->reinitialize(); |
| 5128 | |
| 5129 | if (!lti_names.empty()) |
no test coverage detected