// ----------------------------------------------------------------------------- // CMoveObject::MoveObjectL // Move object operation // ----------------------------------------------------------------------------- // void CMoveObject::MoveObjectL() { PRINT( _L( "MM MTP => CMoveObject::MoveObjectL" ) ); TMTPResponseCode responseCode = EMTPRespCodeOK; GetParametersL(); RBuf newObjectName; newObjectName.CreateL( KMaxFileName ); newObjectName.CleanupClosePushL(); // + newObjectName newObjectName = *iDest; TPtrC suid( iObjectInfo->DesC( CMTPObjectMetaData::ESuid ) ); TParsePtrC fileNameParser( suid ); if ( ( newObjectName.Length() + fileNameParser.NameAndExt().Length() ) <= newObjectName.MaxLength() ) { newObjectName.Append( fileNameParser.NameAndExt() ); responseCode = CanMoveObjectL( suid, newObjectName ); if ( responseCode == EMTPRespCodeOK ) MoveFileL( newObjectName ); } else // Destination is not appropriate for the full path name shouldn't be longer than 255 responseCode = EMTPRespCodeInvalidDataset; SendResponseL( responseCode ); CleanupStack::PopAndDestroy( &newObjectName ); // - newObjectName PRINT1( _L( "MM MTP <= CMoveObject::MoveObjectL responseCode = 0x%x" ), responseCode ); }
void Config_Cache::check_cache_solution(void) { { // 跨服不需要检查(调试版也不能检查了) const Json::Value &server_solution = CONFIG_INSTANCE->open_solution(); int inter_solution_id = server_solution["inter_solution_id"].asInt(); if (inter_solution_id) { // 场景不在开服方案 const Server_Solution_Cache &server_solution_cache = CONFIG_CACHE->server_solution_cache(); Monitor_Mark_Vec muid; Scene_Unique_ID scene_uid; Hash_Map<Scene_Unique_ID, Monitor_Unique_ID, NULL_MUTEX> scene_muid_map_; server_solution_cache.fetch_muid_by_type(muid, Server_Enum::MONITOR_SCENE); for (Monitor_Mark_Vec::iterator it = muid.begin(); it != muid.end(); ++it) { scene_uid.scene_id = (*it).id; scene_uid.scene_order = (*it).order; if (scene_muid_map_.bind(scene_uid, (*it))) { LOG_ABORT("scene repeat, scene_id:%d, scene_order:%d", (*it).id, (*it).order); } } const Json::Value json_scene = CONFIG_INSTANCE->config_json()["scene"]["scene_config"]; for (Json::Value::const_iterator it = json_scene.begin(); it != json_scene.end(); it++) { int scene_id = (*it)["sceneId"].asInt(); Monitor_Unique_ID muid; Scene_Unique_ID suid(scene_id, 0); if (scene_muid_map_.find(suid, muid)) { LOG_ABORT("场景:%d不在开服方案", scene_id); } } Hash_Map<Scene_Unique_ID, Monitor_Unique_ID, NULL_MUTEX>::iterator begin = scene_muid_map_.begin(); Hash_Map<Scene_Unique_ID, Monitor_Unique_ID, NULL_MUTEX>::iterator end = scene_muid_map_.end(); for (Hash_Map<Scene_Unique_ID, Monitor_Unique_ID, NULL_MUTEX>::iterator it = begin; it != end; ++it) { const Scene_Config *scene_config = CONFIG_CACHE_SCENE->scene_config_cache(it->first.scene_id); if (!scene_config) { LOG_ABORT("方案场景:%d找不到配制", it->first.scene_id); } int map_id = scene_config->map_id ? scene_config->map_id : scene_config->scene_id; if (!CONFIG_CACHE_SCENE->scene_map_data_cache(map_id)) { LOG_ABORT("场景:%d地图%d不存在", scene_config->scene_id, map_id); } } } } }