RenameResourceCommand.h dnacalib/CommandImplBase.h dnacalib/TypeDefs.h dnacalib/dna/DNACalibDNAReaderImpl.h cstdint cstring RenameAnimatedMapCommand.cpp RenameBlendShapeCommand.cpp RenameJointCommand.cpp RenameMeshCommand.cpp dnac::RenameResourceCommand dnac //CopyrightEpicGames,Inc.AllRightsReserved. #pragmaonce #include"dnacalib/CommandImplBase.h" #include"dnacalib/TypeDefs.h" #include"dnacalib/dna/DNACalibDNAReaderImpl.h" #include<cstdint> #include<cstring> namespacednac{ template<classTDerived> classRenameResourceCommand:publicCommandImplBase<TDerived>{ private: usingSuper=CommandImplBase<TDerived>; enumclassConfiguration{ Unconfigured, SearchAndRename, RenameByIndex }; public: explicitRenameResourceCommand(MemoryResource*memRes_): Super{memRes_}, oldName{memRes_}, newName{memRes_}, index{}, config{Configuration::Unconfigured}{ } virtual~RenameResourceCommand()=default; RenameResourceCommand(constRenameResourceCommand&)=default; RenameResourceCommand&operator=(constRenameResourceCommand&)=default; RenameResourceCommand(RenameResourceCommand&&)=default; RenameResourceCommand&operator=(RenameResourceCommand&&)=default; voidsetName(std::uint16_tindex_,constchar*newName_){ index=index_; newName=newName_; config=Configuration::RenameByIndex; } voidsetName(constchar*oldName_,constchar*newName_){ oldName=oldName_; newName=newName_; config=Configuration::SearchAndRename; } voidrun(DNACalibDNAReaderImpl*output){ if(config==Configuration::RenameByIndex){ rename(output); }elseif(config==Configuration::SearchAndRename){ searchAndRename(output); } } private: voidsearchAndRename(DNACalibDNAReaderImpl*output){ for(std::uint16_ti=0u;i<getNameCount(output);++i){ constautoname=getNameByIndex(output,i); if(name==oldName){ setNameByIndex(output,i,newName.c_str()); return; } } } voidrename(DNACalibDNAReaderImpl*output){ setNameByIndex(output,index,newName.c_str()); } virtualstd::uint16_tgetNameCount(constdna::Reader*input)const=0; virtualStringViewgetNameByIndex(constdna::Reader*input,std::uint16_tindex_)const=0; virtualvoidsetNameByIndex(dna::Writer*output,std::uint16_tindex_,constchar*name)=0; private: String<char>oldName; String<char>newName; std::uint16_tindex; Configurationconfig; }; }//namespacednac