//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~ Scripting::I_ObjectReference* AccountService::getScriptObject() { if (m_pScriptObject == NULL) { m_pScriptObject = new ScriptWrapper_type(getScriptModule(), getScriptModule()->getScriptType(getScriptTypeName()), this ); } return m_pScriptObject; }
//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~ Scripting::I_ObjectReference* Connection_impl::getScriptObject() { if (m_pScriptObject == NULL) { m_pScriptObject = new ScriptWrapper_type(getScriptModule(), getScriptModule()->getScriptType(getScriptTypeName()), this ); } return m_pScriptObject; }
//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~ Zen::Scripting::I_ObjectReference* Log::getScriptObject() { if (m_pScriptObject == NULL) { m_pScriptObject = new ScriptWrapper_type( getScriptModule(), getScriptModule()->getScriptType(getScriptTypeName()), getSelfReference().lock() ); } return m_pScriptObject; }
//------------------------------------------------------------------------------------- void Proxy::initClientCellPropertys() { if(getClientMailbox() == NULL) return; Mercury::Bundle* pBundle = Mercury::Bundle::ObjPool().createObject(); (*pBundle).newMessage(ClientInterface::onUpdatePropertys); (*pBundle) << this->getID(); ENTITY_PROPERTY_UID spaceuid = ENTITY_BASE_PROPERTY_UTYPE_SPACEID; Mercury::FixedMessages::MSGInfo* msgInfo = Mercury::FixedMessages::getSingleton().isFixed("Property::spaceID"); if(msgInfo != NULL) { spaceuid = msgInfo->msgid; } if(getScriptModule()->usePropertyDescrAlias()) { uint8 aliasID = ENTITY_BASE_PROPERTY_ALIASID_SPACEID; (*pBundle) << aliasID << this->getSpaceID(); } else { (*pBundle) << spaceuid << this->getSpaceID(); } MemoryStream* s = MemoryStream::ObjPool().createObject(); addPositionAndDirectionToStream(*s, true); (*pBundle).append(s); MemoryStream::ObjPool().reclaimObject(s); // celldata获取客户端感兴趣的数据初始化客户端 如:ALL_CLIENTS s = MemoryStream::ObjPool().createObject(); addCellDataToStream(ED_FLAG_ALL_CLIENTS|ED_FLAG_CELL_PUBLIC_AND_OWN|ED_FLAG_OWN_CLIENT, s, true); (*pBundle).append(*s); MemoryStream::ObjPool().reclaimObject(s); //getClientMailbox()->postMail((*pBundle)); //Mercury::Bundle::ObjPool().reclaimObject(pBundle); sendToClient(ClientInterface::onUpdatePropertys, pBundle); }
//----------------------------------------------------------------------------// Event::Connection EventSet::subscribeScriptedEvent(const String& name, Event::Group group, const String& subscriber_name) { return getScriptModule()->subscribeEvent(this, name, group, subscriber_name); }