int main() { unsigned long one, two; one = network_new(1); two = network_new(0); assert(network_nodes_number(one) == 0); assert(network_nodes_number(two) == 0); network_add_node(one, "1"); network_add_node(one, "2"); network_add_link(two, "1", "2"); assert(network_nodes_number(one) == 2); assert(network_links_number(one) == 0); assert(network_nodes_number(two) == 2); assert(network_links_number(two) == 1); network_add_link(one, "1", "2"); network_add_link(two, "2", "2"); assert(network_links_number(one) == 1); assert(network_links_number(two) == 2); network_remove_link(two, "2", "2"); assert(network_nodes_number(one) == 2); assert(network_links_number(one) == 1); assert(network_nodes_number(two) == 2); assert(network_links_number(two) == 1); assert(network_in_degree(543, "sadsa") == 0); return 0; }
int main(int argc, char** argv) { /* Initalize event library */ event_init(); if (fms_periodic_init(main_periodic)) { TRACE(TRACE_ERROR, "%s", "failed to start periodic generator\n"); return -1; } if (spi_link_init()) { TRACE(TRACE_ERROR, "%s", "failed to open SPI link\n"); return -1; } /* Add our datalink event */ network = network_new(LINK_HOST, LINK_PORT, DATALINK_PORT, FMS_NETWORK_BROADCAST); struct event datalink_event; event_set(&datalink_event, network->socket_in, EV_READ, on_datalink_event, &datalink_event); event_add(&datalink_event, NULL); event_dispatch(); return 0; }
int main(int argc , char** argv) { /* Set real time priority */ struct sched_param param; param.sched_priority = 90; if (sched_setscheduler(0, SCHED_FIFO, ¶m) == -1) { // TRACE(TRACE_ERROR, "sched_setscheduler failed"); perror("sched_setscheduler failed"); exit(EXIT_FAILURE); } /* Initalize event library */ event_init(); /* Add our periodic event */ evtimer_set(&periodic_event, periodic_task, &periodic_event); PERIODIC_START(); /* Add our datalink event */ network = network_new(LINK_HOST, LINK_PORT, DATALINK_PORT, FMS_UNICAST); event_set(&datalink_event, network->socket_in, EV_READ, on_datalink_event, &datalink_event); event_add(&datalink_event, NULL); event_dispatch(); return 0; }
void internetwork_createNetwork(Internetwork* internet, GQuark networkID, guint64 bandwidthdown, guint64 bandwidthup, gdouble packetloss) { MAGIC_ASSERT(internet); g_assert(!internet->isReadOnly); Network* network = network_new(networkID, bandwidthdown, bandwidthup, packetloss); g_hash_table_replace(internet->networks, network_getIDReference(network), network); }
void gcs_com_init(void) { gcs_com.network = network_new(GCS_HOST,GCS_PORT,DATALINK_PORT,FALSE); gcs_com.udp_transport = udp_transport_new(gcs_com.network); event_set(&gcs_com.datalink_event, gcs_com.network->socket_in, EV_READ| EV_PERSIST, on_datalink_event, gcs_com.udp_transport); event_add(&gcs_com.datalink_event, NULL); }
int main(int argc, char** argv) { // Set the default tracking system position and angle struct EcefCoor_d tracking_ecef; tracking_ecef.x = 3924304; tracking_ecef.y = 300360; tracking_ecef.z = 5002162; tracking_offset_angle = 123.0 / 57.6; ltp_def_from_ecef_d(&tracking_ltp, &tracking_ecef); // Parse the options from cmdline parse_options(argc, argv); printf_debug("Tracking system Latitude: %f Longitude: %f Offset to North: %f degrees\n", DegOfRad(tracking_ltp.lla.lat), DegOfRad(tracking_ltp.lla.lon), DegOfRad(tracking_offset_angle)); // Create the network connections printf_debug("Starting NatNet listening (multicast address: %s, data port: %d, version: %d.%d)\n", natnet_multicast_addr, natnet_data_port, natnet_major, natnet_minor); natnet_data = network_new("", -1, natnet_data_port, 0); // Only receiving network_subscribe_multicast(natnet_data, natnet_multicast_addr); network_set_recvbuf(natnet_data, 0x100000); // 1MB printf_debug("Starting NatNet command socket (server address: %s, command port: %d)\n", natnet_addr, natnet_cmd_port); natnet_cmd = network_new(natnet_addr, natnet_cmd_port, 0, 1); network_set_recvbuf(natnet_cmd, 0x100000); // 1MB // Create the Ivy Client GMainLoop *ml = g_main_loop_new(NULL, FALSE); IvyInit("natnet2ivy", "natnet2ivy READY", 0, 0, 0, 0); IvyStart(ivy_bus); // Create the main timers printf_debug("Starting transmitting and sampling timeouts (transmitting frequency: %dHz, minimum velocity samples: %d)\n", freq_transmit, min_velocity_samples); g_timeout_add(1000/freq_transmit, timeout_transmit_callback, NULL); GIOChannel *sk = g_io_channel_unix_new(natnet_data->socket_in); g_io_add_watch(sk, G_IO_IN | G_IO_NVAL | G_IO_HUP, sample_data, NULL); // Run the main loop g_main_loop_run(ml); return 0; }
uint8_t fms_gs_com_init(const char* gs_host, uint16_t gs_port, uint16_t datalink_port, uint8_t broadcast) { fms_gs_com.network = network_new(gs_host, gs_port, datalink_port, broadcast); fms_gs_com.udp_transport = udp_transport_new(fms_gs_com.network); event_set(&fms_gs_com.datalink_event, fms_gs_com.network->socket_in, EV_READ | EV_PERSIST, on_datalink_event, fms_gs_com.udp_transport); event_add(&fms_gs_com.datalink_event, NULL); return 0; }
int main(int argc, char** argv) { network = network_new(GCS_HOST, GCS_PORT, DATALINK_PORT, FALSE); /* Initalize the event library */ event_init(); /* Add a timeout event */ evtimer_set(&timeout, timeout_cb, &timeout); ADD_TIMEOUT(); event_dispatch(); return 0; }
ACTIVE_SERVER *active_server_new() { ACTIVE_SERVER *self = (ACTIVE_SERVER *)malloc(sizeof(ACTIVE_SERVER)); if (!self) { error("unable to get memory"); } memset(self, 0, sizeof(ACTIVE_SERVER)); ERR = exception_new(); exception_addCallback(ERR, active_server_error, self); self->exception_internal = TRUE; NET = network_new(); network_setException(NET, ERR); network_setPort(NET, ACTIVE_PORT); network_setTimeout(NET, ACTIVE_TIMEOUT); self->timestamp = time(NULL); self->root = NULL; srand(time(NULL)); return self; }
int main(int argc, char** argv) { printf("hello world\n"); network = network_new(GCS_HOST, GCS_PORT); /* Initalize the event library */ event_init(); /* Add a timeout event */ evtimer_set(&timeout, timeout_cb, &timeout); struct timeval tv; evutil_timerclear(&tv); tv.tv_sec = TIMEOUT_DT_SEC; tv.tv_usec = TIMEOUT_DT_USEC; event_add(&timeout, &tv); event_dispatch(); return 0; }
static void handle_graph_message(UiConnection *self, const gchar *command, JsonObject *payload, SoupWebsocketConnection *ws) { g_return_if_fail(payload); Graph *graph = NULL; if (g_strcmp0(command, "clear") != 0) { // All other commands must have graph // TODO: change FBP protocol to use 'graph' instead of 'id'? const gchar *graph_id = json_object_get_string_member(payload, "graph"); Network *net = (graph_id) ? g_hash_table_lookup(self->network_map, graph_id) : NULL; graph = (net) ? net->graph : NULL; g_return_if_fail(graph); } if (g_strcmp0(command, "clear") == 0) { const gchar *graph_id = json_object_get_string_member(payload, "id"); Graph *graph = graph_new(graph_id, self->component_lib); Network *network = network_new(graph); ui_connection_add_network(self, graph_id, network); } else if (g_strcmp0(command, "addnode") == 0) { graph_add_node(graph, json_object_get_string_member(payload, "id"), json_object_get_string_member(payload, "component") ); } else if (g_strcmp0(command, "removenode") == 0) { graph_remove_node(graph, json_object_get_string_member(payload, "id") ); } else if (g_strcmp0(command, "changenode") == 0) { // Just metadata, ignored } else if (g_strcmp0(command, "addinitial") == 0) { JsonObject *tgt = json_object_get_object_member(payload, "tgt"); JsonObject *src = json_object_get_object_member(payload, "src"); GValue data = G_VALUE_INIT; json_node_get_value(json_object_get_member(src, "data"), &data); graph_add_iip(graph, json_object_get_string_member(tgt, "node"), json_object_get_string_member(tgt, "port"), &data ); g_value_unset(&data); } else if (g_strcmp0(command, "removeinitial") == 0) { JsonObject *tgt = json_object_get_object_member(payload, "tgt"); graph_remove_iip(graph, json_object_get_string_member(tgt, "node"), json_object_get_string_member(tgt, "port") ); } else if (g_strcmp0(command, "addedge") == 0) { JsonObject *src = json_object_get_object_member(payload, "src"); JsonObject *tgt = json_object_get_object_member(payload, "tgt"); graph_add_edge(graph, json_object_get_string_member(src, "node"), json_object_get_string_member(src, "port"), json_object_get_string_member(tgt, "node"), json_object_get_string_member(tgt, "port") ); } else if (g_strcmp0(command, "removeedge") == 0) { JsonObject *src = json_object_get_object_member(payload, "src"); JsonObject *tgt = json_object_get_object_member(payload, "tgt"); graph_remove_edge(graph, json_object_get_string_member(src, "node"), json_object_get_string_member(src, "port"), json_object_get_string_member(tgt, "node"), json_object_get_string_member(tgt, "port") ); } else if (g_strcmp0(command, "changeedge") == 0) { // Just metadata, ignored } else { imgflo_warning("Unhandled message on protocol 'graph', command='%s'", command); } }
static void daemon_constructed (GObject *_object) { Daemon *daemon = DAEMON (_object); CockpitManager *manager; CockpitNetwork *network = NULL; CockpitResourceMonitor *monitor; CockpitRealms *realms; CockpitServices *services; CockpitJournal *journal; CockpitAccounts *accounts; CockpitStorageManager *storage_manager; CockpitObjectSkeleton *object = NULL; g_assert (_daemon_instance == NULL); _daemon_instance = daemon; daemon->system_bus_proxy = g_dbus_proxy_new_sync (daemon->connection, G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES, NULL, "org.freedesktop.DBus", "/org/freedesktop/DBus", "org.freedesktop.DBus", NULL, NULL); g_assert (daemon->system_bus_proxy != NULL); daemon->object_manager = g_dbus_object_manager_server_new ("/com/redhat/Cockpit"); /* /com/redhat/Cockpit/Manager */ manager = manager_new (daemon); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/Manager"); cockpit_object_skeleton_set_manager (object, manager); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (manager); g_object_unref (object); /* /com/redhat/Cockpit/Network */ network = network_new (daemon); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/Network"); cockpit_object_skeleton_set_network (object, network); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_clear_object (&network); g_clear_object (&object); /* /com/redhat/Cockpit/CpuMonitor */ monitor = cpu_monitor_new (daemon); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/CpuMonitor"); cockpit_object_skeleton_set_resource_monitor (object, monitor); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (monitor); g_object_unref (object); /* /com/redhat/Cockpit/MemoryMonitor */ monitor = memory_monitor_new (daemon); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/MemoryMonitor"); cockpit_object_skeleton_set_resource_monitor (object, monitor); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (monitor); g_object_unref (object); /* /com/redhat/Cockpit/NetworkMonitor */ monitor = network_monitor_new (daemon); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/NetworkMonitor"); cockpit_object_skeleton_set_resource_monitor (object, monitor); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (monitor); g_object_unref (object); /* /com/redhat/Cockpit/DiskIOMonitor */ monitor = disk_io_monitor_new (daemon); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/DiskIOMonitor"); cockpit_object_skeleton_set_resource_monitor (object, monitor); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (monitor); g_object_unref (object); /* /com/redhat/Cockpit/Realms */ realms = realms_new (daemon); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/Realms"); cockpit_object_skeleton_set_realms (object, realms); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (realms); g_object_unref (object); /* /com/redhat/Cockpit/Services */ services = services_new (daemon); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/Services"); cockpit_object_skeleton_set_services (object, services); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (services); g_object_unref (object); /* /com/redhat/Cockpit/Journal */ journal = journal_new (); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/Journal"); cockpit_object_skeleton_set_journal (object, journal); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (journal); /* /com/redhat/Cockpit/Accounts */ accounts = accounts_new (); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/Accounts"); cockpit_object_skeleton_set_accounts (object, accounts); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (accounts); g_object_unref (object); /* /com/redhat/Cockpit/Storage/Manager */ storage_manager = storage_manager_new (daemon); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/Storage/Manager"); cockpit_object_skeleton_set_storage_manager (object, storage_manager); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (storage_manager); g_object_unref (object); daemon->storage_provider = storage_provider_new (daemon); /* Export the ObjectManager */ g_dbus_object_manager_server_set_connection (daemon->object_manager, daemon->connection); daemon->tick_timeout_id = g_timeout_add_seconds (1, on_timeout, daemon); if (G_OBJECT_CLASS (daemon_parent_class)->constructed != NULL) G_OBJECT_CLASS (daemon_parent_class)->constructed (_object); }
void gps_impl_init(void) { gps.fix = GPS_FIX_NONE; gps_available = FALSE; gps_network = network_new(GPS_UDP_HOST, 6000 /*out*/, 7000 /*in*/, TRUE); }
void udp_init( void ) { network = network_new(LINK_HOST, LINK_PORT, DATALINK_PORT, FMS_NETWORK_BROADCAST); udp_buffer_id = 0; }
void gps_udp_init(void) { gps_udp.fix = GPS_FIX_NONE; gps_network = network_new(STRINGIFY(GPS_UDP_HOST), 6000 /*out*/, 7000 /*in*/, TRUE); }
int hpx_init(int *argc, char ***argv) { int status = HPX_SUCCESS; // Start the internal clock libhpx_time_start(); here = malloc(sizeof(*here)); if (!here) { status = log_error("failed to allocate a locality.\n"); goto unwind0; } here->rank = -1; here->ranks = 0; here->epoch = 0; sigset_t set; sigemptyset(&set); dbg_check(pthread_sigmask(SIG_BLOCK, &set, &here->mask)); here->config = config_new(argc, argv); if (!here->config) { status = log_error("failed to create a configuration.\n"); goto unwind1; } // check to see if everyone is waiting if (config_dbg_waitat_isset(here->config, HPX_LOCALITY_ALL)) { dbg_wait(); } // bootstrap here->boot = boot_new(here->config->boot); if (!here->boot) { status = log_error("failed to bootstrap.\n"); goto unwind1; } here->rank = boot_rank(here->boot); here->ranks = boot_n_ranks(here->boot); // initialize the debugging system // @todo We would like to do this earlier but MPI_init() for the bootstrap // network overwrites our segv handler. if (LIBHPX_OK != dbg_init(here->config)) { goto unwind1; } // Now that we know our rank, we can be more specific about waiting. if (config_dbg_waitat_isset(here->config, here->rank)) { // Don't wait twice. if (!config_dbg_waitat_isset(here->config, HPX_LOCALITY_ALL)) { dbg_wait(); } } // see if we're supposed to output the configuration, only do this at rank 0 if (config_log_level_isset(here->config, HPX_LOG_CONFIG)) { if (here->rank == 0) { config_print(here->config, stdout); } } // topology discovery and initialization here->topology = topology_new(here->config); if (!here->topology) { status = log_error("failed to discover topology.\n"); goto unwind1; } // Initialize our instrumentation. if (inst_init(here->config)) { log_dflt("error detected while initializing instrumentation\n"); } // Allocate the global heap. here->gas = gas_new(here->config, here->boot); if (!here->gas) { status = log_error("failed to create the global address space.\n"); goto unwind1; } HPX_HERE = HPX_THERE(here->rank); here->percolation = percolation_new(); if (!here->percolation) { status = log_error("failed to activate percolation.\n"); goto unwind1; } int cores = system_get_available_cores(); dbg_assert(cores > 0); if (!here->config->threads) { here->config->threads = cores; } log_dflt("HPX running %d worker threads on %d cores\n", here->config->threads, cores); here->net = network_new(here->config, here->boot, here->gas); if (!here->net) { status = log_error("failed to create network.\n"); goto unwind1; } // thread scheduler here->sched = scheduler_new(here->config); if (!here->sched) { status = log_error("failed to create scheduler.\n"); goto unwind1; } #ifdef HAVE_APEX // initialize APEX, give this main thread a name apex_init("HPX WORKER THREAD"); apex_set_node_id(here->rank); #endif action_registration_finalize(); inst_start(); // start the scheduler, this will return after scheduler_shutdown() if (scheduler_startup(here->sched, here->config) != LIBHPX_OK) { log_error("scheduler shut down with error.\n"); goto unwind1; } if ((here->ranks > 1 && here->config->gas != HPX_GAS_AGAS) || !here->config->opt_smp) { status = hpx_run(&_hpx_143_fix); } return status; unwind1: _stop(here); _cleanup(here); unwind0: return status; }