DoubletSolver::DoubletSolver() { start_word = "river"; goal_word = "sweep"; word_size = start_word.size(); expansions = 0; priority_queue = new MinHeap(3); parse_dictionary("data/AStarTestFile.txt"); }
DoubletSolver::DoubletSolver(std::string start, std::string end, std::string filename){ start_word = start; goal_word = end; word_size = start_word.size(); expansions = 0; priority_queue = new MinHeap(3); parse_dictionary(filename); }
/* * A Phdc Manager requests to be added to the manager list. * - parse the parameters * * Initial version: the PHDC manager calls dbus_register_phdc_manager, * sending a simple path and a service name * TODO: check for DBUS_TYPE_UNIX_FD ((int) 'h') */ static DBusMessage *dbus_register_phdc_agent(DBusConnection *conn, DBusMessage *msg, void *data) { struct near_phdc_data *phdc_mgr; int err; DBG("conn %p", conn); /* Allocate the phdc_mgr struct */ phdc_mgr = g_try_malloc0(sizeof(struct near_phdc_data)); if (!phdc_mgr) { err = -ENOMEM; goto error; } /* Allocate a default p2p_driver */ phdc_mgr->p2p_driver = g_try_malloc0(sizeof(struct near_p2p_driver)); if (!phdc_mgr->p2p_driver) { err = -ENOMEM; goto error; } /* Get the the sender name */ phdc_mgr->sender = g_strdup(dbus_message_get_sender(msg)); DBG("%s", phdc_mgr->sender); /* default p2p values */ phdc_mgr->p2p_driver->fallback_service_name = NULL; phdc_mgr->p2p_driver->sock_type = SOCK_STREAM; phdc_mgr->p2p_driver->single_connection = FALSE; phdc_mgr->p2p_driver->new_client = phdc_p2p_newclient; phdc_mgr->p2p_driver->close = phdc_p2p_close; /* look for dict values and fill the struct */ err = parse_dictionary(msg, data, phdc_mgr, phdc_mgr->p2p_driver); if (err < 0) goto error; /* TODO: At this time, there's no support for Role == Agent */ if (phdc_mgr->role == ROLE_AGENT) { err = -ENOTSUP; goto error; } /* No correct role ? */ if (phdc_mgr->role == ROLE_UNKNOWN) { err = -EINVAL; goto error; } /* No path ? */ if (!phdc_mgr->path) { err = -EINVAL; goto error; } /* defaulting the p2p driver */ if (!phdc_mgr->p2p_driver->service_name) phdc_mgr->p2p_driver->service_name = g_strdup(DEFAULT_PHDC_SERVICE); /* p2p internal name */ phdc_mgr->p2p_driver->name = g_strdup_printf("{%s-%s}", (phdc_mgr->role == ROLE_MANAGER ? ROLE_MANAGER_TEXT : ROLE_AGENT_TEXT), phdc_mgr->p2p_driver->service_name); /* if one pointer is null, memory failed ! */ if ((!phdc_mgr->p2p_driver->name) || (!phdc_mgr->p2p_driver->service_name)) { err = -ENOMEM; goto error; } /* Watch the Phdc Manager */ phdc_mgr->watch = g_dbus_add_disconnect_watch(phdc_conn, phdc_mgr->sender, phdc_manager_disconnect, phdc_mgr, NULL); /* Add to the existing Manager list */ err = manager_add_to_list(phdc_mgr); if (err < 0) goto error; /* and register the p2p driver for the specified service */ err = near_p2p_register(phdc_mgr->p2p_driver); if (err < 0) goto error; return g_dbus_create_reply(msg, DBUS_TYPE_INVALID); error: /* free memory */ free_mgr_data(phdc_mgr); return error_failed(msg, -err); }