Sirikata
|
#include <JSObjectScriptManager.hpp>
typedef std::tr1::unordered_map<Transfer::URI, Mesh::VisualWPtr, Transfer::URI::Hasher> Sirikata::JS::JSObjectScriptManager::MeshCache [private] |
typedef std::tr1::unordered_map<Transfer::URI, Transfer::ResourceDownloadTaskPtr, Transfer::URI::Hasher> Sirikata::JS::JSObjectScriptManager::MeshDownloads [private] |
typedef std::tr1::function<void(Mesh::VisualPtr)> Sirikata::JS::JSObjectScriptManager::MeshLoadCallback |
typedef std::vector<MeshLoadCallback> Sirikata::JS::JSObjectScriptManager::MeshLoadCallbackList [private] |
typedef std::tr1::unordered_map<Transfer::URI, MeshLoadCallbackList, Transfer::URI::Hasher> Sirikata::JS::JSObjectScriptManager::WaitingMeshCallbacks [private] |
Sirikata::JS::JSObjectScriptManager::JSObjectScriptManager | ( | ObjectHostContext * | ctx, |
const Sirikata::String & | arguments | ||
) |
References Sirikata::OptionValue::as(), Sirikata::Path::Placeholders::DIR_CURRENT, Sirikata::Path::Placeholders::DIR_SYSTEM_CONFIG, Sirikata::FactoryImpl< T, Ftype >::getConstructor(), getOptions(), Sirikata::ModelsSystemFactory::getSingleton(), Sirikata::Transfer::TransferMediator::getSingleton(), JS_PLUGINS_DIR, JS_SCRIPTS_DIR, mContext, mModelFilter, mModelParser, mOptions, mParsingIOService, mParsingThread, mParsingWork, mTransferPool, Sirikata::OptionSet::parse(), Sirikata::Transfer::TransferMediator::registerClient(), Sirikata::Path::Placeholders::RESOURCE(), Sirikata::Network::IOService::runNoReturn(), SILOG, and Sirikata::Logging::warning.
Sirikata::JS::JSObjectScriptManager::~JSObjectScriptManager | ( | ) | [virtual] |
References Sirikata::Thread::join(), mContext, mModelFilter, mModelParser, mParsingIOService, and mParsingThread.
void Sirikata::JS::JSObjectScriptManager::createContextGlobalTemplate | ( | JSCtx * | jsctx | ) | [private] |
void Sirikata::JS::JSObjectScriptManager::createContextTemplate | ( | JSCtx * | jsctx | ) | [private] |
JSObjectScript * Sirikata::JS::JSObjectScriptManager::createHeadless | ( | const String & | args, |
const String & | script, | ||
int32 | maxres | ||
) |
References Sirikata::Logging::error, Sirikata::JS::JSObjectScript::initialize(), JSLOG, and Sirikata::UUID::random().
Referenced by main().
JSCtx * Sirikata::JS::JSObjectScriptManager::createJSCtx | ( | HostedObjectPtr | ho | ) | [private] |
References createContextGlobalTemplate(), createContextTemplate(), createJSInvokableObjectTemplate(), createPresenceTemplate(), Sirikata::JS::CreateQuaternionTemplate(), Sirikata::Network::IOService::createStrand(), createSystemTemplate(), createTimerTemplate(), createUtilTemplate(), Sirikata::JS::CreateVec3Template(), createVisibleTemplate(), Sirikata::Context::ioService, mContext, Sirikata::JS::JSCtx::mIsolate, Sirikata::JS::JSCtx::mQuaternionTemplate, and Sirikata::JS::JSCtx::mVec3Template.
Referenced by createObjectScript().
void Sirikata::JS::JSObjectScriptManager::createJSInvokableObjectTemplate | ( | JSCtx * | jsctx | ) | [private] |
References Sirikata::JS::JSInvokableObject::invoke(), JSSIMOBJECT_TEMPLATE_FIELD_COUNT, and Sirikata::JS::JSCtx::mInvokableObjectTemplate.
Referenced by createJSCtx().
ObjectScript * Sirikata::JS::JSObjectScriptManager::createObjectScript | ( | HostedObjectPtr | ho, |
const String & | args, | ||
const String & | init_script | ||
) | [virtual] |
Create a script linked to this HostedObject.
Called by HostedObject::initializeScripted().
Implements Sirikata::ObjectScriptManager.
References createJSCtx(), and Sirikata::JS::EmersonScript::valid().
ObjectScriptManager * Sirikata::JS::JSObjectScriptManager::createObjectScriptManager | ( | ObjectHostContext * | ctx, |
const Sirikata::String & | arguments | ||
) | [static] |
Referenced by init().
void Sirikata::JS::JSObjectScriptManager::createPresenceTemplate | ( | JSCtx * | jsctx | ) | [private] |
References Sirikata::JS::JSPresence::getAllData(), Sirikata::JS::JSPresence::getAnimationList(), Sirikata::JS::JSPresence::getIsConnected(), Sirikata::JS::JSPresence::getMesh(), Sirikata::JS::JSPresence::getOref(), Sirikata::JS::JSPresence::getOrientation(), Sirikata::JS::JSPresence::getOrientationVel(), Sirikata::JS::JSPresence::getPhysics(), Sirikata::JS::JSPresence::getPosition(), Sirikata::JS::JSPresence::getQuery(), Sirikata::JS::JSPresence::getScale(), Sirikata::JS::JSPresence::getSpace(), Sirikata::JS::JSPresence::getVelocity(), Sirikata::JS::JSPresence::loadMesh(), Sirikata::JS::JSPresence::meshBounds(), Sirikata::JS::JSCtx::mPresenceTemplate, Sirikata::JS::JSPresence::pres_disconnect(), Sirikata::JS::JSPresence::pres_resume(), Sirikata::JS::JSPresence::pres_suspend(), PRESENCE_FIELD_COUNT, Sirikata::JS::JSPresence::raytrace(), Sirikata::JS::JSPresence::runSimulation(), Sirikata::JS::JSPresence::setMesh(), Sirikata::JS::JSPresence::setOrientation(), Sirikata::JS::JSPresence::setOrientationVel(), Sirikata::JS::JSPresence::setPhysics(), Sirikata::JS::JSPresence::setPosition(), Sirikata::JS::JSPresence::setQuery(), Sirikata::JS::JSPresence::setScale(), Sirikata::JS::JSPresence::setVelocity(), Sirikata::JS::JSPresence::toString(), Sirikata::JS::JSPresence::toVisible(), Sirikata::JS::JSPresence::unloadMesh(), and Sirikata::JS::JSPresence::untransformedMeshBounds().
Referenced by createJSCtx().
void Sirikata::JS::JSObjectScriptManager::createSystemTemplate | ( | JSCtx * | jsctx | ) | [private] |
References Sirikata::JS::JSSystem::debug_fileRead(), Sirikata::JS::JSSystem::debug_fileWrite(), Sirikata::JS::JSSystem::emersonCompileString(), Sirikata::JS::JSSystem::evalInGlobal(), Sirikata::JS::JSSystem::getAssociatedPresence(), Sirikata::JS::JSSystem::getUniqueToken(), JS_STRING, Sirikata::JS::JSCtx::mPresenceTemplate, Sirikata::JS::JSCtx::mSystemTemplate, Sirikata::JS::JSCtx::mVisibleTemplate, Sirikata::JS::JSSystem::popEvalContextScopeDirectory(), Sirikata::JS::JSSystem::pushEvalContextScopeDirectory(), Sirikata::JS::JSSystem::root_canCreateEnt(), Sirikata::JS::JSSystem::root_canCreatePres(), Sirikata::JS::JSSystem::root_canEval(), Sirikata::JS::JSSystem::root_canImport(), Sirikata::JS::JSSystem::root_canProxCallback(), Sirikata::JS::JSSystem::root_canProxChangeQuery(), Sirikata::JS::JSSystem::root_canRecvMessage(), Sirikata::JS::JSSystem::root_canSendMessage(), Sirikata::JS::JSSystem::root_createContext(), Sirikata::JS::JSSystem::root_createEntity(), Sirikata::JS::JSSystem::root_createEntityNoSpace(), Sirikata::JS::JSSystem::root_createVisible(), Sirikata::JS::JSSystem::root_deserialize(), Sirikata::JS::JSSystem::root_event(), Sirikata::JS::JSSystem::root_getScript(), Sirikata::JS::JSSystem::root_getVersion(), Sirikata::JS::JSSystem::root_headless(), Sirikata::JS::JSSystem::root_http(), Sirikata::JS::JSSystem::root_import(), Sirikata::JS::JSSystem::root_jsimport(), Sirikata::JS::JSSystem::root_jsrequire(), Sirikata::JS::JSSystem::root_killEntity(), Sirikata::JS::JSSystem::root_onPresenceConnected(), Sirikata::JS::JSSystem::root_onPresenceDisconnected(), Sirikata::JS::JSSystem::root_print(), Sirikata::JS::JSSystem::root_proxAddedHandler(), Sirikata::JS::JSSystem::root_proxRemovedHandler(), Sirikata::JS::JSSystem::root_require(), Sirikata::JS::JSSystem::root_reset(), Sirikata::JS::JSSystem::root_restorePresence(), Sirikata::JS::JSSystem::root_sendHome(), Sirikata::JS::JSSystem::root_sendSandbox(), Sirikata::JS::JSSystem::root_serialize(), Sirikata::JS::JSSystem::root_setScript(), Sirikata::JS::JSSystem::root_timeout(), Sirikata::JS::JSSystem::sendMessageReliable(), Sirikata::JS::JSSystem::sendMessageUnreliable(), Sirikata::JS::JSSystem::setPresenceMessageCallback(), Sirikata::JS::JSSystem::setRestoreScript(), Sirikata::JS::JSSystem::setSandboxMessageCallback(), Sirikata::JS::JSSystem::storageBeginTransaction(), Sirikata::JS::JSSystem::storageCommit(), Sirikata::JS::JSSystem::storageCount(), Sirikata::JS::JSSystem::storageErase(), Sirikata::JS::JSSystem::storageRangeErase(), Sirikata::JS::JSSystem::storageRangeRead(), Sirikata::JS::JSSystem::storageRead(), Sirikata::JS::JSSystem::storageWrite(), and SYSTEM_TEMPLATE_FIELD_COUNT.
Referenced by createJSCtx().
void Sirikata::JS::JSObjectScriptManager::createTimerTemplate | ( | JSCtx * | jsctx | ) | [private] |
References Sirikata::JS::JSTimer::clear(), Sirikata::JS::JSTimer::getAllData(), Sirikata::JS::JSTimer::getType(), Sirikata::JS::JSTimer::isSuspended(), Sirikata::JS::JSCtx::mTimerTemplate, Sirikata::JS::JSTimer::resetTimer(), Sirikata::JS::JSTimer::resume(), Sirikata::JS::JSTimer::suspend(), and TIMER_JSTIMER_TEMPLATE_FIELD_COUNT.
Referenced by createJSCtx().
void Sirikata::JS::JSObjectScriptManager::createUtilTemplate | ( | JSCtx * | jsctx | ) | [private] |
References Sirikata::JS::JSUtilObj::Base64Decode(), Sirikata::JS::JSUtilObj::Base64DecodeURL(), Sirikata::JS::JSUtilObj::Base64Encode(), Sirikata::JS::JSUtilObj::Base64EncodeURL(), JS_STRING, Sirikata::JS::JSCtx::mQuaternionTemplate, Sirikata::JS::JSCtx::mUtilTemplate, Sirikata::JS::JSCtx::mVec3Template, Sirikata::JS::JSUtilObj::ScriptAbsFunction(), Sirikata::JS::JSUtilObj::ScriptAcosFunction(), Sirikata::JS::JSUtilObj::ScriptAsinFunction(), Sirikata::JS::JSUtilObj::ScriptCosFunction(), Sirikata::JS::JSUtilObj::ScriptDiv(), Sirikata::JS::JSUtilObj::ScriptEqual(), Sirikata::JS::JSUtilObj::ScriptExpFunction(), Sirikata::JS::JSUtilObj::ScriptMinus(), Sirikata::JS::JSUtilObj::ScriptMod(), Sirikata::JS::JSUtilObj::ScriptMult(), Sirikata::JS::JSUtilObj::ScriptPlus(), Sirikata::JS::JSUtilObj::ScriptPowFunction(), Sirikata::JS::JSUtilObj::ScriptRandFunction(), Sirikata::JS::JSUtilObj::ScriptSinFunction(), Sirikata::JS::JSUtilObj::ScriptSporef(), Sirikata::JS::JSUtilObj::ScriptSqrtFunction(), and UTIL_TEMPLATE_FIELD_COUNT.
Referenced by createJSCtx().
void Sirikata::JS::JSObjectScriptManager::createVisibleTemplate | ( | JSCtx * | jsctx | ) | [private] |
References Sirikata::JS::JSVisible::__debugRef(), Sirikata::JS::JSVisible::checkEqual(), Sirikata::JS::JSVisible::dist(), Sirikata::JS::JSVisible::getAllData(), Sirikata::JS::JSVisible::getAnimationList(), Sirikata::JS::JSVisible::getMesh(), Sirikata::JS::JSVisible::getOref(), Sirikata::JS::JSVisible::getOrientation(), Sirikata::JS::JSVisible::getOrientationVel(), Sirikata::JS::JSVisible::getPhysics(), Sirikata::JS::JSVisible::getPosition(), Sirikata::JS::JSVisible::getScale(), Sirikata::JS::JSVisible::getSpace(), Sirikata::JS::JSVisible::getStillVisible(), Sirikata::JS::JSVisible::getType(), Sirikata::JS::JSVisible::getVelocity(), Sirikata::JS::JSVisible::loadMesh(), Sirikata::JS::JSVisible::meshBounds(), Sirikata::JS::JSCtx::mVisibleTemplate, Sirikata::JS::JSVisible::raytrace(), Sirikata::JS::JSVisible::toString(), Sirikata::JS::JSVisible::unloadMesh(), Sirikata::JS::JSVisible::untransformedMeshBounds(), and VISIBLE_FIELD_COUNT.
Referenced by createJSCtx().
void Sirikata::JS::JSObjectScriptManager::destroyObjectScript | ( | ObjectScript * | toDestroy | ) | [virtual] |
Delete this ObjectScript instance.
Implements Sirikata::ObjectScriptManager.
void Sirikata::JS::JSObjectScriptManager::finishMeshDownload | ( | const Transfer::URI & | uri, |
Mesh::VisualPtr | mesh | ||
) | [private] |
References Sirikata::Context::mainStrand, mContext, mMeshCache, mMeshCallbacks, mMeshDownloads, and Sirikata::Network::IOStrand::post().
Referenced by parseMeshWork().
OptionSet* Sirikata::JS::JSObjectScriptManager::getOptions | ( | ) | const [inline] |
void Sirikata::JS::JSObjectScriptManager::loadMesh | ( | const Transfer::URI & | uri, |
MeshLoadCallback | cb | ||
) |
References Sirikata::SelfWeakPtr< ResourceDownloadTask >::construct(), JSLOG, Sirikata::Context::mainStrand, mContext, meshDownloaded(), mMeshCache, mMeshCallbacks, mMeshDownloads, mTransferPool, Sirikata::Network::IOStrand::post(), Sirikata::Context::stopped(), and Sirikata::Logging::warn.
Referenced by Sirikata::JS::JSPositionListener::eLoadMesh().
void Sirikata::JS::JSObjectScriptManager::meshDownloaded | ( | Transfer::ResourceDownloadTaskPtr | taskptr, |
Transfer::TransferRequestPtr | request, | ||
Transfer::DenseDataPtr | data | ||
) | [private] |
References mParsingIOService, parseMeshWork(), and Sirikata::Network::IOService::post().
Referenced by loadMesh().
void Sirikata::JS::JSObjectScriptManager::meshParsed | ( | ) | [private] |
void Sirikata::JS::JSObjectScriptManager::parseMeshWork | ( | const Transfer::RemoteFileMetadata & | metadata, |
const Transfer::Fingerprint & | fp, | ||
Transfer::DenseDataPtr | data | ||
) | [private] |
Referenced by createJSCtx(), finishMeshDownload(), JSObjectScriptManager(), loadMesh(), parseMeshWork(), and ~JSObjectScriptManager().
Referenced by finishMeshDownload(), and loadMesh().
Referenced by finishMeshDownload(), and loadMesh().
Referenced by finishMeshDownload(), and loadMesh().
Referenced by JSObjectScriptManager(), parseMeshWork(), and ~JSObjectScriptManager().
Referenced by JSObjectScriptManager(), parseMeshWork(), and ~JSObjectScriptManager().
Referenced by JSObjectScriptManager().
Referenced by JSObjectScriptManager(), meshDownloaded(), and ~JSObjectScriptManager().
Referenced by JSObjectScriptManager(), and ~JSObjectScriptManager().
Referenced by JSObjectScriptManager().
Referenced by JSObjectScriptManager(), and loadMesh().