示例#1
0
void SQLite::insert_workspace(string robots, string obstacles, int qtd_robots, int qtd_obstacles){
	clean_query();

	query << "INSERT INTO workspace (robots, obstacles, qtd_robots, qtd_obstacles";
	
	query << "VALUES (";
	query << robots;
	query << ", " << obstacles;
	query << ", " << qtd_robots;
	query << ", " << qtd_obstacles;
	query << ");";

	open();

	status_db = sqlite3_exec(db, query.str().c_str(), callback, 0, &error_query);

	if(status_db != SQLITE_OK){
		fprintf(stderr, "SQL error: %s\n", error_query);
		sqlite3_free(error_query);
	}

	close();
}
示例#2
0
static void *on_answer(ruli_host_t *qry, void *arg)
{
  char      *domain  = (char *) arg;
  const int BUFSZ    = 1024;
  char      buf[BUFSZ];
  int       str_len;
  int       answer_code = ruli_host_answer_code(qry);

  assert(answer_code != RULI_HOST_CODE_VOID);

  if (answer_code == RULI_HOST_CODE_ALARM) {
    str_len = snprintf(buf, BUFSZ, "%s query-timeout\n", domain);

    assert(str_len < BUFSZ);

    printf(buf);
    
    return clean_query(qry, domain);
  }

  if (answer_code) {
    int rcode = ruli_host_rcode(qry);
    if (rcode != RULI_RCODE_NOERROR) {
      printf("%s bad-server-rcode: %d\n", domain, rcode);
      return clean_query(qry, domain);
    }

    str_len = snprintf(buf, BUFSZ, "%s query-failure: %d\n", 
		       domain, answer_code);
    assert(str_len < BUFSZ);
    printf(buf);

    return clean_query(qry, domain);
  }

#ifdef RULI_HOST_DEBUG
  {
    ruli_msg_header_t msg_hdr;

    /* debug only, DON'T do this in real programs >:] */
    msg_hdr = qry->host_query.answer_header;

    str_len = snprintf(buf, BUFSZ,
		       "%s: query succeded: domain=%s id=%d "
		       "rcode=%d qd=%d an=%d ns=%d ar=%d "
		       "answer_buf_size=%d answer_msg_len=%d\n", 
		       prog_name, domain, msg_hdr.id, msg_hdr.rcode, 
		       msg_hdr.qdcount, msg_hdr.ancount, 
		       msg_hdr.nscount, msg_hdr.arcount,
		       qry->host_query.answer_buf_size,
                       qry->host_query.answer_msg_len);

    assert(str_len < BUFSZ);

    printf(buf);
  }
#endif
  
  {
    ruli_list_t *addr_list = &qry->answer_addr_list;
    int addr_list_size = ruli_list_size(addr_list);
    int i;

    printf("%s", domain);
    for (i = 0; i < addr_list_size; ++i) {
      ruli_addr_t *addr = ruli_list_get(addr_list, i);
      printf(" ");
      ruli_addr_print(stdout, addr);
    }
    printf("\n");
  }

  return clean_query(qry, domain);
}