Example #1
0
File: ui.c Project: imgflo/imgflo
UiConnection *
ui_connection_new(const gchar *hostname, int internal_port, int external_port) {
    UiConnection *self = g_new(UiConnection, 1);

    self->connection = NULL;
    self->main_network = NULL;
    self->network_map = g_hash_table_new_full(g_str_hash, g_str_equal,
                                              g_free, (GDestroyNotify)network_free);
    self->hostname = g_strdup(hostname);
    self->registry = registry_new(runtime_info_new_from_env(hostname, external_port));
    self->component_lib = library_new();

    setup_log_handlers(self);

    self->server = soup_server_new(SOUP_SERVER_SERVER_HEADER, "imgflo-runtime", NULL);
    if (!self->server) {
        g_free(self);
        return NULL;
    }

    soup_server_add_handler(self->server, NULL,
        server_callback, self, NULL);

    soup_server_add_websocket_handler(self->server, NULL, NULL, NULL,
        websocket_callback, self, NULL);

    soup_server_listen_all(self->server, internal_port, SOUP_SERVER_LISTEN_IPV4_ONLY, NULL);

    return self;
}
Example #2
0
Engine* engine_new(Configuration* config) {
	MAGIC_ASSERT(config);

	/* Don't do anything in this function that will cause a log message. The
	 * global engine is still NULL since we are creating it now, and logging
	 * here will cause an assertion error.
	 */

	Engine* engine = g_new0(Engine, 1);
	MAGIC_INIT(engine);

	engine->config = config;
	engine->random = random_new(config->randomSeed);
	engine->runTimer = g_timer_new();

	/* initialize the singleton-per-thread worker class */
	engine->workerKey.index = 0;
	engine->preloadKey.index = 0;

	/* holds all events if single-threaded, and non-node events otherwise. */
	engine->masterEventQueue =
			asyncpriorityqueue_new((GCompareDataFunc)shadowevent_compare, NULL,
			(GDestroyNotify)shadowevent_free);
	engine->workersIdle = g_cond_new();
	engine->engineIdle = g_mutex_new();

	engine->registry = registry_new();
	registry_register(engine->registry, SOFTWARE, NULL, software_free);
	registry_register(engine->registry, CDFS, NULL, cdf_free);
	registry_register(engine->registry, PLUGINPATHS, g_free, g_free);

	engine->minTimeJump = config->minRunAhead * SIMTIME_ONE_MILLISECOND;

	engine->internet = internetwork_new();

	engine->lock = g_mutex_new();

	/* get the raw speed of the experiment machine */
	gchar* contents = NULL;
	gsize length = 0;
	GError* error = NULL;
	if(!g_file_get_contents(CONFIG_CPU_MAX_FREQ_FILE, &contents, &length, &error)) {
		engine->rawFrequencyKHz = 0;
	} else {
		engine->rawFrequencyKHz = (guint)atoi(contents);
	}

	return engine;
}
Example #3
0
rdpRdp* rdp_new()
{
	rdpRdp* rdp;

	rdp = (rdpRdp*) xzalloc(sizeof(rdpRdp));

	if (rdp != NULL)
	{
		rdp->connected = False;
		rdp->settings = settings_new();
		rdp->registry = registry_new(rdp->settings);
		rdp->transport = transport_new(rdp->settings);
		rdp->license = license_new(rdp);
		rdp->nego = nego_new(rdp->transport);
		rdp->mcs = mcs_new(rdp->transport);
	}

	return rdp;
}