static JSObject* gjs_lookup_param_prototype(JSContext *context) { JS::RootedId gobject_name(context, gjs_intern_string_to_id(context, "GObject")); JS::RootedObject in_object(context, gjs_lookup_namespace_object_by_name(context, gobject_name)); if (G_UNLIKELY (!in_object)) return NULL; JS::RootedValue value(context); if (!JS_GetProperty(context, in_object, "ParamSpec", &value)) return NULL; if (G_UNLIKELY (!value.isObject())) return NULL; JS::RootedObject constructor(context, &value.toObject()); g_assert(constructor); if (!gjs_object_get_property(context, constructor, GJS_STRING_PROTOTYPE, &value)) return NULL; if (G_UNLIKELY (!value.isObjectOrNull())) return NULL; return value.toObjectOrNull(); }
os_boolean in_channelInit( in_channel _this, in_objectKind kind, in_objectDeinitFunc deinit, in_stream stream, in_plugKernel plug, in_configChannel config) { os_boolean success; assert(_this); assert(kind < IN_OBJECT_KIND_COUNT); assert(kind > IN_OBJECT_KIND_INVALID); assert(deinit); assert(stream); assert(plug); assert(config); success = in_objectInit(in_object(_this), kind, deinit); if(success) { _this->stream = in_streamKeep(stream); _this->plug = in_plugKernelKeep(plug); _this->config = config; _this->reader = NULL; _this->writer = NULL; } return success; }
static os_boolean in_ddsiDiscoveredReaderDataInit( in_ddsiDiscoveredReaderData _this) { os_boolean success; assert(_this); success = in_objectInit(in_object(_this), IN_OBJECT_KIND_DISCOVERED_READER_DATA, in_ddsiDiscoveredReaderDataDeinit) && in_ddsiSubscriptionBuiltinTopicDataInit(&_this->topicData) && in_ddsiReaderProxyInit(&_this->proxy); return success; }
os_boolean in_connectivityPeerEntityInit( in_connectivityPeerEntity _this, in_objectKind kind, in_objectDeinitFunc deinit) { os_boolean success; assert(_this); success = in_objectInit( in_object(_this), kind, deinit); return success; }
Coll_List* in_connectivityPeerEntityGetUnicastLocators( in_connectivityPeerEntity _this) { assert(_this); switch (in_objectGetKind(in_object(_this))) { case IN_OBJECT_KIND_PEER_READER: return in_connectivityPeerReaderGetUnicastLocators(in_connectivityPeerReader(_this)); case IN_OBJECT_KIND_PEER_WRITER: return in_connectivityPeerWriterGetUnicastLocators(in_connectivityPeerWriter(_this)); case IN_OBJECT_KIND_PEER_PARTICIPANT: return in_connectivityPeerParticipantGetUnicastLocators(in_connectivityPeerParticipant(_this)); default: assert(FALSE); /* one of the above should be valid */ } return NULL; }
static os_boolean in_ddsiDiscoveredParticipantDataInit( in_ddsiDiscoveredParticipantData _this) { os_boolean success; assert(_this); success = in_objectInit(in_object(_this), IN_OBJECT_KIND_DISCOVERED_PARTICIPANT_DATA, in_ddsiDiscoveredParticipantDataDeinit); if(success) { success = in_ddsiParticipantBuiltinTopicDataInit(&_this->builtinTopicData); if(success) { success = in_ddsiParticipantProxyInit(&_this->proxy); } _this->leaseDuration = C_TIME_ZERO; } return success; }
/** \brief destructor */ void in_transportPairFree(in_transportPair _this) { in_objectFree(in_object(_this)); }
void in_serviceMain( const os_char* serviceName, const os_char* uri) { u_service service; in_config config; in_result result; u_serviceManager serviceManager; in_controller controller; v_duration leasePeriod; os_time sleepTime; os_boolean terminate = OS_FALSE; in_connectivityAdmin admin; assert(serviceName); assert(uri); /* Create networking service with kernel */ service = u_serviceNew( uri, IN_ATTACH_TIMEOUT, serviceName, NULL, U_SERVICE_NETWORKING, NULL); assert(service); /* Initialize configuration */ config = in_configGetInstance(); result = in_configConvertDomTree(config, uri, service); if(result == IN_RESULT_OK) { /* Ask service manager for splicedaemon state */ serviceManager = u_serviceManagerNew(u_participant(service)); admin = in_connectivityAdminGetInstance(); /* Create the controller which starts the updating */ controller = in_controllerNew(service); if (controller) { /* Start the actual engine */ IN_REPORT_INFO(1, "DDSI networking started"); IN_TRACE(Mainloop, 1, "DDSI networking started"); in_controllerStart(controller); /* Change state for spliced */ u_serviceChangeState(service, STATE_INITIALISING); u_serviceChangeState(service, STATE_OPERATIONAL); /* Get sleeptime from configuration */ in_retrieveLeaseSettings(&leasePeriod, &sleepTime); u_serviceRenewLease(service, leasePeriod); /* Loop until termination is requested */ u_serviceWatchSpliceDaemon( service, in_splicedaemonListener, &terminate); /* terminate flag is modified by the splice deamon listener thread*/ while (!terminate) { /* Assert my liveliness and the Splicedaemon's liveliness */ u_serviceRenewLease(service, leasePeriod); /* Wait before renewing again */ os_nanoSleep(sleepTime); } leasePeriod.seconds = 20; u_serviceRenewLease(service, leasePeriod); u_serviceChangeState(service, STATE_TERMINATING); in_controllerStop(controller); in_controllerFree(controller); IN_REPORT_INFO(1, "DDSI networking stopped"); IN_TRACE(Mainloop, 1, "DDSI networking stopped"); } u_serviceChangeState(service, STATE_TERMINATED); u_serviceManagerFree(serviceManager); in_objectFree(in_object(admin)); } /* Clean up */ in_configFree(config); u_serviceFree(service); }