/* context here is of type USERDATA */ PRIVATE void rdf_new_triple_handler (HTRDF *rdfp, HTTriple *t, void *context) { USERDATA *userdata = (USERDATA *)context; #ifdef LIBWWW_DEBUG xsb_dbgmsg((LOG_DEBUG,"***In rdf_new_triple_handler(%s)", RequestID(userdata->request))); #endif /* create a new triple */ if (rdfp && t) { prolog_term ptriple = extern_p2p_car(userdata->parsed_term_tail); extern_c2p_functor("rdftriple",3,ptriple); if (HTTriple_predicate(t)) extern_c2p_string(HTTriple_predicate(t), extern_p2p_arg(ptriple,1)); else extern_c2p_string("rdfunknown", extern_p2p_arg(ptriple,1)); if (HTTriple_subject(t)) extern_c2p_string(HTTriple_subject(t), extern_p2p_arg(ptriple,2)); else extern_c2p_string("rdfunknown", extern_p2p_arg(ptriple,2)); if (HTTriple_object(t)) extern_c2p_string(HTTriple_object(t), extern_p2p_arg(ptriple,3)); else extern_c2p_string("rdfunknown", extern_p2p_arg(ptriple,3)); #ifdef LIBWWW_DEBUG_VERBOSE print_prolog_term(userdata->parsed_term_tail, "Current result tail"); #endif userdata->parsed_term_tail = extern_p2p_cdr(userdata->parsed_term_tail); extern_c2p_list(userdata->parsed_term_tail); } }
void LevelDirector::Reset() { m_maxObjects = 5; m_initialSinkPixels = 0; m_currentSinkPixels = 0; m_spawnTimeout = 0; m_objectsCounts.clear(); m_protos.clear(); m_spawns.clear(); m_chances.clear(); m_requests.clear(); m_targetObjectProto = ""; m_targetObjectX = 0; m_targetObjectY = 0; m_sinkLineY = 0; m_sinkPercent = 0; m_initialSinkPixels = 0; m_currentSinkPixels = 0; m_targetObjectID = GameObjectID(); m_createTargetRequestID = RequestID(); m_playByPlay.clear(); m_briefing.clear(); m_reflectionParams = SReflectionControllerParams(); m_groundParams = SGroundControllerParams(); m_skyParams = SSkyControllerParams(); }
AsynchronousStatus NokiaMaemoLocationInterfaceImpl::startLbs() { if (m_registeredAndTracking) { // We are already started and tracking are on. nav2log << "[Debug] NokiaMaemoLocationInterfaceImpl::startLbs : " << "We are already started and are tracking are on." << endl; return AsynchronousStatus(RequestID(RequestID::INVALID_REQUEST_ID), OK, "", ""); } // Send CellID request if (!checkAndSendCellIDRequest(true)) { nav2log << "[Debug] NokiaMaemoLocationInterfaceImpl::startLbs : " << "Send CellID request failed" << endl; return AsynchronousStatus(RequestID(RequestID::INVALID_REQUEST_ID), LBS_STARTUP_FAILED, "", ""); } bool started = registerLbsClient(); if (!started) { // Not good, could not start the gps. nav2log << "[Debug] NokiaMaemoLocationInterfaceImpl::startLbs : " << "registerLbsClient() failed." << endl; return AsynchronousStatus(RequestID(RequestID::INVALID_REQUEST_ID), LBS_STARTUP_FAILED, "", ""); } else { if (!startTracking()) { // Failed to start the tracking, fatal error. Deregister // client nav2log << "[Debug] NokiaMaemoLocationInterfaceImpl::startLbs : " << "startTracking() failed." << endl; deregisterLbsClient(); return AsynchronousStatus(RequestID(RequestID::INVALID_REQUEST_ID), LBS_START_TRACKING_FAILED, "", ""); } m_registeredAndTracking = true; m_needSendStartedCallback = true; isab::GenericGuiMess message(isab::GuiProtEnums::CONNECT_GPS); sendAsynchronousRequestToNav2(&message); return AsynchronousStatus(RequestID(RequestID::INVALID_REQUEST_ID), OK, "", ""); } }
AsynchronousStatus LinuxNav2API::start(Nav2StatusListener* statusListener, StartupData* startupData) { ReadyToRunListener* listener = new GtkReadyToRunListener; listener->setReceiver(getImpl()); ReadyToRunListener* notifyListener = new GtkReadyToRunListener; Nav2StatusNotifier* notifier = new Nav2StatusNotifier(statusListener, notifyListener); notifyListener->setReceiver(notifier); // if (g_thread_supported()) { // listener = // } else { // /// Uh-oh.. // } WFString httpUserAgent; // Empty not used // WFString httpRequestString; // Empty not used WFString httpFixedHost; // Empty not used // Allocate tracking object, not turn it on bool useTracking = true; // No service window at startup, and no WFID bool wayfinderIDStartUp = false; HardwareIDArray hwids; // A better approach could be reading a "imei.txt" file here. WFString imeiStr("LinuxNav2APITestIMEI001"); hwids.push_back(HardwareID(imeiStr, "imei")); if (startupData->getConnectionManager() == NULL){ startupData->setConnectionManager(new LinuxConnectionManager); } getImpl()->start(startupData, m_sharedImpl->m_audioTypeDirName, m_sharedImpl->m_programVersion, m_sharedImpl->m_clientType, m_sharedImpl->m_clientTypeOptions, m_sharedImpl->m_httpProto, httpUserAgent, m_sharedImpl->m_httpRequestString, httpFixedHost, useTracking, wayfinderIDStartUp, hwids, listener, notifier); return AsynchronousStatus( RequestID(RequestID::INVALID_REQUEST_ID), OK, "", ""); }
PRIVATE void rdf_delete_userData(void *userdata) { prolog_term parsed_result, status_term; USERDATA *me = (USERDATA *)userdata; HTRequest *request = me->request; if (request) { parsed_result = ((REQUEST_CONTEXT *)HTRequest_context(request))->request_result; status_term = ((REQUEST_CONTEXT *)HTRequest_context(request))->status_term; } else return; #ifdef LIBWWW_DEBUG xsb_dbgmsg((LOG_DEBUG,"***In rdf_delete_userData(%s)", RequestID(request))); #endif #ifdef LIBWWW_DEBUG_VERBOSE print_prolog_term(me->parsed_term, "Current parse value"); #endif /* terminate the parsed prolog terms list */ extern_c2p_nil(me->parsed_term_tail); /* pass the result to the outside world */ if (is_var(me->parsed_term)) extern_p2p_unify(parsed_result, me->parsed_term); else xsb_abort("[LIBWWW_REQUEST] Request %s: Arg 4 (Result) must be unbound variable", RequestID(request)); HT_FREE(me); #ifdef LIBWWW_DEBUG xsb_dbgmsg((LOG_DEBUG,"***Request %s: freed the USERDATA object", RequestID(request))); #endif return; }
PRIVATE USERDATA *rdf_create_userData(HTRDF *parser, HTRequest *request, HTStream *target_stream) { USERDATA *me = NULL; #ifdef LIBWWW_DEBUG xsb_dbgmsg((LOG_DEBUG,"***Start rdf_create_userData: Request %s", RequestID(request))); #endif if (parser) { /* make sure that MIME type is appropriate for RDF */ if (!verifyMIMEformat(request, RDFPARSE)) { /* HTStream * input = HTRequest_inputStream(request); (*input->isa->abort)(input, NULL); HTRequest_setInputStream(request,NULL); HTRequest_kill(request); return NULL; */ xsb_abort("[LIBWWW_REQUEST] Bug: Request type/MIME type mismatch"); } if ((me = (USERDATA *) HT_CALLOC(1, sizeof(USERDATA))) == NULL) HT_OUTOFMEM("libwww_parse_rdf"); me->delete_method = rdf_delete_userData; me->parser = parser; me->request = request; me->target = target_stream; me->parsed_term = extern_p2p_new(); extern_c2p_list(me->parsed_term); me->parsed_term_tail = me->parsed_term; } #ifdef LIBWWW_DEBUG xsb_dbgmsg((LOG_DEBUG,"***End rdf_create_userData: Request %s", RequestID(request))); #endif /* Hook up userdata to the request context */ ((REQUEST_CONTEXT *)HTRequest_context(request))->userdata = (void *)me; return me; }
AsynchronousStatus MaemoNav2API::start(Nav2StatusListener* statusListener, StartupData* startupData) { ReadyToRunListener* listener = new GtkReadyToRunListener; listener->setReceiver(getImpl()); ReadyToRunListener* notifyListener = new GtkReadyToRunListener; Nav2StatusNotifier* notifier = new Nav2StatusNotifier(statusListener, notifyListener); notifyListener->setReceiver(notifier); WFString httpUserAgent; // Empty not used WFString httpFixedHost; // Empty not used // Allocate tracking object, not turn it on bool useTracking = true; // No service window at startup, and no WFID bool wayfinderIDStartUp = false; // Hardware keys HardwareIDArray hwids; SynchronousStatus status = makeHardwareIDs(hwids); if (status.getStatusCode() == OK) { getImpl()->start(startupData, m_sharedImpl->m_audioTypeDirName, m_sharedImpl->m_programVersion, m_sharedImpl->m_clientType, m_sharedImpl->m_clientTypeOptions, m_sharedImpl->m_httpProto, httpUserAgent, m_sharedImpl->m_httpRequestString, httpFixedHost, useTracking, wayfinderIDStartUp, hwids, listener, notifier); } return AsynchronousStatus( RequestID(RequestID::INVALID_REQUEST_ID), status.getStatusCode(), status.getStatusMessage(), status.getStatusURL()); }
AsynchronousStatus S60Nav2APIImpl::start(Nav2StatusListener* statusListener, StartupData* startupData, const WFString& clientType, const WFString& clientTypeOptions, bool httpProto, const WFString& httpRequestString, const ProgramVersion& programVersion) { m_statusListener = statusListener; ///Tidieus copy of the startupData so it won't go out of scope. m_startupData = new StartupData(*startupData); m_clientType = clientType; m_clientTypeOptions = clientTypeOptions; m_httpProto = httpProto; m_httpRequestString = httpRequestString; m_programVersion = programVersion; fetchImei(); return AsynchronousStatus(RequestID(RequestID::INVALID_REQUEST_ID), OK, "", ""); }
bool QueueThread::doStartup() { coreprintln("Initializing startup"); // In startup // Send a msg for a parameter and wait for reply then Nav2 is // considered started // Test to wait for msg before sending { WFAPISync sync(&m_guiMonitor); isab::Buffer buf; bool readRes = false; do { readRes = m_guiChannel->readData(&buf, &m_guiMonitor); } while (!readRes && !m_shutDown); if (buf.getLength() > 8) { buf.setReadPos(4); // Start after version and length std::auto_ptr<isab::GuiProtMess> guiProtMess( isab::GuiProtMess::createMsgFromBuf(&buf)); nav2log << "QueueThread run got first msg from Nav2, id " << guiProtMess->getMessageID() << endl; } else { nav2log << "QueueThread run got first msg from Nav2, empty" << endl; } } for (size_t i = 0; i < m_initialMsgs.size(); ++i) { m_nav2API->sendGuiMessage(m_initialMsgs[i]); m_initialMsgs[i]->deleteMembers(); delete m_initialMsgs[i]; m_initialMsgs[i] = NULL; } // Timeout. If there is a problem this might happen. // Send parameter get for wayfinder username. isab::GeneralParameterMess gpm( (uint16)isab::GuiProtEnums::paramUserAndPassword); wf_uint16 reqID = m_nav2API->sendGuiMessage(&gpm); // Wait for reply, then Nav2 is up and running! StatusCode startupCode = OK; while (m_inStartup && !m_shutDown) { WFAPISync sync(&m_guiMonitor); isab::Buffer buf; m_guiChannel->readData(&buf, &m_guiMonitor); if (buf.getLength() != 0) { // Check if it is the reply we want! while (buf.remaining() > 4) { // Start after version and length buf.setReadPos(buf.getReadPos() + 4); std::auto_ptr<isab::GuiProtMess> guiProtMess( isab::GuiProtMess::createMsgFromBuf(&buf)); if (guiProtMess.get() != NULL && guiProtMess->getMessageID() == reqID) { m_inStartup = false; // Set startup result startupCode = OK; } else if (guiProtMess.get() != NULL && guiProtMess->getMessageType() == isab::GuiProtEnums::SET_GENERAL_PARAMETER) { // Check if to store it for later use in MapLib below isab::GeneralParameterMess* mess = static_cast<isab::GeneralParameterMess*> ( guiProtMess.get()); m_nav2API->handleSetParameter(*mess); if (mess->getParamId() == isab::GuiProtEnums::paramMapCacheSize || mess->getParamId() == isab::GuiProtEnums::paramPoiCategories || mess->getParamId() == isab::GuiProtEnums::userTrafficUpdatePeriod || mess->getParamId() == isab::GuiProtEnums::paramDistanceMode) { m_mapLibParams.push_back(mess); guiProtMess.release(); } } else if (guiProtMess.get() != NULL && guiProtMess->getMessageType() == isab::GuiProtEnums::SOUND_FILE_LIST) { nav2log << "QueueThread run got SOUND_FILE_LIST!" << endl; // Send it to NavigationInterfaceImpl m_nav2API->getNavigationInterface().getImpl()-> receiveAsynchronousReply( *guiProtMess, RequestID( RequestID::INVALID_REQUEST_ID)); } if (guiProtMess.get() != NULL) { guiProtMess->deleteMembers(); } } } else { // Wait for data m_guiMonitor.wait(); } } coreprintln("Startup is now complete."); // Call startupComplete m_nav2API->startupComplete(startupCode); return true; }
Ogre::String SceneManager::RequestIDStr() { return Ogre::StringConverter::toString(RequestID()); }