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; }
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; }
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; }