Example #1
0
	virtual void evaluate_income(int target_size, std::ostream &os)
	{
		if (not_available(target_size, os))
		{
			return;
		}

		int remaining = target_size;
		price_t income(0);

		// start from the end of the order list to maximize profit
		// iterate over sorted orders; O(N), N/2 on average
		sorted_orders_t::iterator it = m_sorted_orders.begin();
		for (; it != m_sorted_orders.end() && remaining > 0; ++it)
		{
			order_ptr & ord = (*it);

			if (!ord->active())
			{
				continue;
			}

			int shares = std::min(remaining, ord->size());

			income += ord->price_of(shares);

			remaining -= shares;
		}
		report_income(income, os);
	}
NLPQLPOptimizer* new_NLPQLPOptimizer(Model& model)
{
#ifdef DAKOTA_DYNLIB
  not_available("NLPQLP");
  return 0;
#else
  return new NLPQLPOptimizer(model);
#endif // DAKOTA_DYNLIB
}
NLPQLPOptimizer* new_NLPQLPOptimizer(NoDBBaseConstructor, Model& model)
{
#ifdef DAKOTA_DYNLIB
  not_available("NLPQLP");
  return 0;
#else
  return new NLPQLPOptimizer(NoDBBaseConstructor(), model);
#endif // DAKOTA_DYNLIB
}
Example #4
0
static DBusMessage *remove_service_record(DBusConnection *conn,
					DBusMessage *msg, void *data)
{
	struct service_adapter *serv_adapter = data;
	dbus_uint32_t handle;
	const char *sender;

	if (dbus_message_get_args(msg, NULL, DBUS_TYPE_UINT32, &handle,
						DBUS_TYPE_INVALID) == FALSE)
		return NULL;

	sender = dbus_message_get_sender(msg);

	if (remove_record(conn, sender, serv_adapter, handle) < 0)
		return not_available(msg);

	return dbus_message_new_method_return(msg);
}