CommandSequence.h dnacalib/Command.h dnacalib/Defs.h dnacalib/types/Aliases.h CommandSequence.cpp DNACalib.h dnac::CommandSequence dnac //CopyrightEpicGames,Inc.AllRightsReserved. #pragmaonce #include"dnacalib/Command.h" #include"dnacalib/Defs.h" #include"dnacalib/types/Aliases.h" namespacednac{ classDNACalibDNAReader; classCommandSequence:publicCommand{ public: DNACAPIexplicitCommandSequence(MemoryResource*memRes=nullptr); DNACAPI~CommandSequence(); CommandSequence(constCommandSequence&)=delete; CommandSequence&operator=(constCommandSequence&)=delete; DNACAPICommandSequence(CommandSequence&&); DNACAPICommandSequence&operator=(CommandSequence&&); DNACAPIvoidrun(DNACalibDNAReader*output)override; DNACAPIvoidadd(Command*command); DNACAPIvoidadd(ArrayView<Command>commands); template<class...Commands> voidadd(Commands...commands){ static_assert(sizeof...(commands)>0,"Atleastonecommandmustbepassed."); Command*commandList[]={commands...}; for(autocmd:commandList){ add(cmd); } } DNACAPIvoidremove(Command*command); DNACAPIvoidremove(ArrayView<Command>commands); template<class...Commands> voidremove(Commands...commands){ static_assert(sizeof...(commands)>0,"Atleastonecommandmustbepassed."); Command*commandList[]={commands...}; for(autocmd:commandList){ remove(cmd); } } DNACAPIboolcontains(Command*command)const; DNACAPIstd::size_tsize()const; private: classImpl; ScopedPtr<Impl>pImpl; }; }//namespacednac