//------------------------------------------------------------------------------------- void ScriptDefModule::c_str() { PROPERTYDESCRIPTION_MAP::iterator iter1 = cellPropertyDescr_.begin(); for(; iter1 != cellPropertyDescr_.end(); ++iter1) { DEBUG_MSG(fmt::format("ScriptDefModule::c_str: {}.{} uid={}, flags={}, aliasID={}.\n", getName(), iter1->second->getName(), iter1->second->getUType(), entityDataFlagsToString(iter1->second->getFlags()), iter1->second->aliasID())); } iter1 = basePropertyDescr_.begin(); for(; iter1 != basePropertyDescr_.end(); ++iter1) { DEBUG_MSG(fmt::format("ScriptDefModule::c_str: {}.{} uid={}, flags={}, aliasID={}.\n", getName(), iter1->second->getName(), iter1->second->getUType(), entityDataFlagsToString(iter1->second->getFlags()), iter1->second->aliasID())); } iter1 = clientPropertyDescr_.begin(); for(; iter1 != clientPropertyDescr_.end(); ++iter1) { DEBUG_MSG(fmt::format("ScriptDefModule::c_str: {}.{} uid={}, flags={}, aliasID={}.\n", getName(), iter1->second->getName(), iter1->second->getUType(), entityDataFlagsToString(iter1->second->getFlags()), iter1->second->aliasID())); } METHODDESCRIPTION_MAP::iterator iter2 = methodCellDescr_.begin(); for(; iter2 != methodCellDescr_.end(); ++iter2) { DEBUG_MSG(fmt::format("ScriptDefModule::c_str: {}.CellMethod {} uid={}, argssize={}, aliasID={}{}.\n", getName(), iter2->second->getName(), iter2->second->getUType(), iter2->second->getArgSize(), iter2->second->aliasID(), (iter2->second->isExposed() ? ", exposed=true" : ", exposed=false"))); } METHODDESCRIPTION_MAP::iterator iter3 = methodBaseDescr_.begin(); for(; iter3 != methodBaseDescr_.end(); ++iter3) { DEBUG_MSG(fmt::format("ScriptDefModule::c_str: {}.BaseMethod {} uid={}, argssize={}, aliasID={}{}.\n", getName(), iter3->second->getName(), iter3->second->getUType(), iter3->second->getArgSize(), iter3->second->aliasID(), (iter3->second->isExposed() ? ", exposed=true" : ", exposed=false"))); } METHODDESCRIPTION_MAP::iterator iter4 = methodClientDescr_.begin(); for(; iter4 != methodClientDescr_.end(); ++iter4) { DEBUG_MSG(fmt::format("ScriptDefModule::c_str: {}.ClientMethod {} uid={}, argssize={}, aliasID={}{}.\n", getName(), iter4->second->getName(), iter4->second->getUType(), iter4->second->getArgSize(), iter4->second->aliasID())); } DEBUG_MSG(fmt::format("ScriptDefModule::c_str: [{}], cellPropertys={}, basePropertys={}, " "clientPropertys={}, cellMethods={}({}), baseMethods={}({}), clientMethods={}\n", getName(), getCellPropertyDescriptions().size(), getBasePropertyDescriptions().size(), getClientPropertyDescriptions().size(), getCellMethodDescriptions().size(), getCellExposedMethodDescriptions().size(), getBaseMethodDescriptions().size(), getBaseExposedMethodDescriptions().size(), getClientMethodDescriptions().size())); }
//------------------------------------------------------------------------------------- void ScriptDefModule::c_str() { PROPERTYDESCRIPTION_MAP::iterator iter1 = cellPropertyDescr_.begin(); for(; iter1 != cellPropertyDescr_.end(); iter1++) { DEBUG_MSG(boost::format("ScriptDefModule::c_str: %1%.%2% uid=%3%, flags=%4%, aliasID=%5%.\n") % getName() % iter1->second->getName() % iter1->second->getUType() % entityDataFlagsToString(iter1->second->getFlags()) % iter1->second->aliasID()); } iter1 = basePropertyDescr_.begin(); for(; iter1 != basePropertyDescr_.end(); iter1++) { DEBUG_MSG(boost::format("ScriptDefModule::c_str: %1%.%2% uid=%3%, flags=%4%, aliasID=%5%.\n") % getName() % iter1->second->getName() % iter1->second->getUType() % entityDataFlagsToString(iter1->second->getFlags()) % iter1->second->aliasID()); } iter1 = clientPropertyDescr_.begin(); for(; iter1 != clientPropertyDescr_.end(); iter1++) { DEBUG_MSG(boost::format("ScriptDefModule::c_str: %1%.%2% uid=%3%, flags=%4%, aliasID=%5%.\n") % getName() % iter1->second->getName() % iter1->second->getUType() % entityDataFlagsToString(iter1->second->getFlags()) % iter1->second->aliasID()); } METHODDESCRIPTION_MAP::iterator iter2 = methodCellDescr_.begin(); for(; iter2 != methodCellDescr_.end(); iter2++) { DEBUG_MSG(boost::format("ScriptDefModule::c_str: %1%.CellMethod %2% uid=%3%, argssize=%4%, aliasID=%5%%6%.\n") % getName() % iter2->second->getName() % iter2->second->getUType() % iter2->second->getArgSize() % iter2->second->aliasID() % (iter2->second->isExposed() ? ", exposed=true" : ", exposed=false")); } METHODDESCRIPTION_MAP::iterator iter3 = methodBaseDescr_.begin(); for(; iter3 != methodBaseDescr_.end(); iter3++) { DEBUG_MSG(boost::format("ScriptDefModule::c_str: %1%.BaseMethod %2% uid=%3%, argssize=%4%, aliasID=%5%%6%.\n") % getName() % iter3->second->getName() % iter3->second->getUType() % iter3->second->getArgSize() % iter3->second->aliasID() % (iter3->second->isExposed() ? ", exposed=true" : ", exposed=false")); } METHODDESCRIPTION_MAP::iterator iter4 = methodClientDescr_.begin(); for(; iter4 != methodClientDescr_.end(); iter4++) { DEBUG_MSG(boost::format("ScriptDefModule::c_str: %1%.ClientMethod %2% uid=%3%, argssize=%4%, aliasID=%5%.\n") % getName() % iter4->second->getName() % iter4->second->getUType() % iter4->second->getArgSize() % iter4->second->aliasID()); } DEBUG_MSG(boost::format("ScriptDefModule::c_str: [%1%], cellPropertys=%2%, basePropertys=%2%, " "clientPropertys=%4%, cellMethods=%5%(%6%), baseMethods=%7%(%8%), clientMethods=%9%\n") % getName() % getCellPropertyDescriptions().size() % getBasePropertyDescriptions().size() % getClientPropertyDescriptions().size() % getCellMethodDescriptions().size() % getCellExposedMethodDescriptions().size() % getBaseMethodDescriptions().size() % getBaseExposedMethodDescriptions().size() % getClientMethodDescriptions().size()); }
//------------------------------------------------------------------------------------- ScriptDefModule::PROPERTYDESCRIPTION_MAP& ScriptDefModule::getPropertyDescrs() { ScriptDefModule::PROPERTYDESCRIPTION_MAP* lpPropertyDescrs = NULL; switch(g_componentType) { case CELLAPP_TYPE: lpPropertyDescrs = &getCellPropertyDescriptions(); break; case BASEAPP_TYPE: lpPropertyDescrs = &getBasePropertyDescriptions(); break; default: lpPropertyDescrs = &getClientPropertyDescriptions(); break; }; return *lpPropertyDescrs; }
//------------------------------------------------------------------------------------- bool ScriptDefModule::addPropertyDescription(const char* attrName, PropertyDescription* propertyDescription, COMPONENT_TYPE componentType) { PropertyDescription* f_propertyDescription = NULL; PROPERTYDESCRIPTION_MAP* propertyDescr; PROPERTYDESCRIPTION_UIDMAP* propertyDescr_uidmap; switch(componentType) { case CELLAPP_TYPE: f_propertyDescription = findCellPropertyDescription(attrName); propertyDescr = &getCellPropertyDescriptions(); propertyDescr_uidmap = &getCellPropertyDescriptions_uidmap(); // 判断他们是什么级别的属性, 将其保存到对应detailLevel的地方 if((propertyDescription->getFlags() & ENTITY_CLIENT_DATA_FLAGS) > 0){ cellDetailLevelPropertyDescrs_[propertyDescription->getDetailLevel()][attrName] = propertyDescription; } setCell(true); break; case BASEAPP_TYPE: f_propertyDescription = findBasePropertyDescription(attrName); propertyDescr = &getBasePropertyDescriptions(); propertyDescr_uidmap = &getBasePropertyDescriptions_uidmap(); setBase(true); break; default: f_propertyDescription = findClientPropertyDescription(attrName); propertyDescr = &getClientPropertyDescriptions(); propertyDescr_uidmap = &getClientPropertyDescriptions_uidmap(); setClient(true); break; }; if(f_propertyDescription) { ERROR_MSG("ScriptDefModule::addPropertyDescription: [%s] is exist! componentType=%d.\n", attrName, componentType); return false; } (*propertyDescr)[attrName] = propertyDescription; (*propertyDescr_uidmap)[propertyDescription->getUType()] = propertyDescription; propertyDescription->incRef(); // 判断是否是存储属性, 是就存储到persistentPropertyDescr_ if(propertyDescription->isPersistent()) { PROPERTYDESCRIPTION_MAP::const_iterator pciter = persistentPropertyDescr_.find(attrName); if(pciter == persistentPropertyDescr_.end()) { persistentPropertyDescr_[attrName] = propertyDescription; persistentPropertyDescr_uidmap_[propertyDescription->getUType()] = propertyDescription; } } return true; }
//------------------------------------------------------------------------------------- bool ScriptDefModule::addPropertyDescription(const char* attrName, PropertyDescription* propertyDescription, COMPONENT_TYPE componentType, bool ignoreConflict) { if(!ignoreConflict && hasMethodName(attrName)) { ERROR_MSG(fmt::format("ScriptDefModule::addPropertyDescription: There is a method[{}] name conflict! componentType={}.\n", attrName, componentType)); return false; } if (!ignoreConflict && hasComponentName(attrName)) { ERROR_MSG(fmt::format("ScriptDefModule::addPropertyDescription: There is a component[{}] name conflict!\n", attrName)); return false; } bool isEntityComponent = propertyDescription->getDataType() && std::string("ENTITY_COMPONENT") == propertyDescription->getDataType()->getName(); PropertyDescription* f_propertyDescription = NULL; PROPERTYDESCRIPTION_MAP* propertyDescr; PROPERTYDESCRIPTION_UIDMAP* propertyDescr_uidmap; switch(componentType) { case CELLAPP_TYPE: f_propertyDescription = findCellPropertyDescription(attrName); propertyDescr = &getCellPropertyDescriptions(); propertyDescr_uidmap = &getCellPropertyDescriptions_uidmap(); // 判断他们是什么级别的属性, 将其保存到对应detailLevel的地方 if((propertyDescription->getFlags() & ENTITY_CLIENT_DATA_FLAGS) > 0){ cellDetailLevelPropertyDescrs_[propertyDescription->getDetailLevel()][attrName] = propertyDescription; } setCell(true); break; case BASEAPP_TYPE: f_propertyDescription = findBasePropertyDescription(attrName); propertyDescr = &getBasePropertyDescriptions(); propertyDescr_uidmap = &getBasePropertyDescriptions_uidmap(); setBase(true); break; default: f_propertyDescription = findClientPropertyDescription(attrName); propertyDescr = &getClientPropertyDescriptions(); propertyDescr_uidmap = &getClientPropertyDescriptions_uidmap(); setClient(true); break; }; if(f_propertyDescription) { ERROR_MSG(fmt::format("ScriptDefModule::addPropertyDescription: [{}] is exist! componentType={}.\n", attrName, componentType)); return false; } (*propertyDescr)[attrName] = propertyDescription; (*propertyDescr_uidmap)[propertyDescription->getUType()] = propertyDescription; propertyDescription->incRef(); if(isEntityComponent) componentPropertyDescr_[attrName] = propertyDescription; // 判断是否是存储属性, 是就存储到persistentPropertyDescr_ if(propertyDescription->isPersistent()) { PROPERTYDESCRIPTION_MAP::const_iterator pciter = persistentPropertyDescr_.find(attrName); if(pciter == persistentPropertyDescr_.end()) { persistentPropertyDescr_[attrName] = propertyDescription; persistentPropertyDescr_uidmap_[propertyDescription->getUType()] = propertyDescription; } } return true; }