DNA Calib 1.1
Project brief
Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
dnac::RenameResourceCommand< TDerived > Class Template Referenceabstract

#include <RenameResourceCommand.h>

Inheritance diagram for dnac::RenameResourceCommand< TDerived >:
Inheritance graph
Collaboration diagram for dnac::RenameResourceCommand< TDerived >:
Collaboration graph

Public Member Functions

 RenameResourceCommand (MemoryResource *memRes_)
 
virtual ~RenameResourceCommand ()=default
 
 RenameResourceCommand (const RenameResourceCommand &)=default
 
RenameResourceCommandoperator= (const RenameResourceCommand &)=default
 
 RenameResourceCommand (RenameResourceCommand &&)=default
 
RenameResourceCommandoperator= (RenameResourceCommand &&)=default
 
void setName (std::uint16_t index_, const char *newName_)
 
void setName (const char *oldName_, const char *newName_)
 
void run (DNACalibDNAReaderImpl *output)
 
- Public Member Functions inherited from dnac::CommandImplBase< TDerived >
MemoryResourcegetMemoryResource ()
 

Private Types

enum class  Configuration { Unconfigured , SearchAndRename , RenameByIndex }
 
using Super = CommandImplBase< TDerived >
 

Private Member Functions

void searchAndRename (DNACalibDNAReaderImpl *output)
 
void rename (DNACalibDNAReaderImpl *output)
 
virtual std::uint16_t getNameCount (const dna::Reader *input) const =0
 
virtual StringView getNameByIndex (const dna::Reader *input, std::uint16_t index_) const =0
 
virtual void setNameByIndex (dna::Writer *output, std::uint16_t index_, const char *name)=0
 

Private Attributes

String< char > oldName
 
String< char > newName
 
std::uint16_t index
 
Configuration config
 

Additional Inherited Members

- Static Public Member Functions inherited from dnac::CommandImplBase< TDerived >
static TDerived * create (MemoryResource *memRes)
 
static void destroy (TDerived *instance)
 
- Protected Member Functions inherited from dnac::CommandImplBase< TDerived >
 CommandImplBase (MemoryResource *memRes_)
 

Member Typedef Documentation

◆ Super

template<class TDerived >
using dnac::RenameResourceCommand< TDerived >::Super = CommandImplBase<TDerived>
private

Member Enumeration Documentation

◆ Configuration

template<class TDerived >
enum class dnac::RenameResourceCommand::Configuration
strongprivate
Enumerator
Unconfigured 
SearchAndRename 
RenameByIndex 
19 {
20 Unconfigured,
21 SearchAndRename,
22 RenameByIndex
23 };

Constructor & Destructor Documentation

◆ RenameResourceCommand() [1/3]

template<class TDerived >
dnac::RenameResourceCommand< TDerived >::RenameResourceCommand ( MemoryResource memRes_)
inlineexplicit
26 :
27 Super{memRes_},
28 oldName{memRes_},
29 newName{memRes_},
30 index{},
32 }
Configuration config
Definition: RenameResourceCommand.h:85
String< char > oldName
Definition: RenameResourceCommand.h:82
String< char > newName
Definition: RenameResourceCommand.h:83
std::uint16_t index
Definition: RenameResourceCommand.h:84
CommandImplBase< TDerived > Super
Definition: RenameResourceCommand.h:17

◆ ~RenameResourceCommand()

template<class TDerived >
virtual dnac::RenameResourceCommand< TDerived >::~RenameResourceCommand ( )
virtualdefault

◆ RenameResourceCommand() [2/3]

template<class TDerived >
dnac::RenameResourceCommand< TDerived >::RenameResourceCommand ( const RenameResourceCommand< TDerived > &  )
default

◆ RenameResourceCommand() [3/3]

template<class TDerived >
dnac::RenameResourceCommand< TDerived >::RenameResourceCommand ( RenameResourceCommand< TDerived > &&  )
default

Member Function Documentation

◆ getNameByIndex()

template<class TDerived >
virtual StringView dnac::RenameResourceCommand< TDerived >::getNameByIndex ( const dna::Reader input,
std::uint16_t  index_ 
) const
privatepure virtual

◆ getNameCount()

template<class TDerived >
virtual std::uint16_t dnac::RenameResourceCommand< TDerived >::getNameCount ( const dna::Reader input) const
privatepure virtual

◆ operator=() [1/2]

template<class TDerived >
RenameResourceCommand & dnac::RenameResourceCommand< TDerived >::operator= ( const RenameResourceCommand< TDerived > &  )
default

◆ operator=() [2/2]

template<class TDerived >
RenameResourceCommand & dnac::RenameResourceCommand< TDerived >::operator= ( RenameResourceCommand< TDerived > &&  )
default

◆ rename()

template<class TDerived >
void dnac::RenameResourceCommand< TDerived >::rename ( DNACalibDNAReaderImpl output)
inlineprivate

◆ run()

template<class TDerived >
void dnac::RenameResourceCommand< TDerived >::run ( DNACalibDNAReaderImpl output)
inline

◆ searchAndRename()

template<class TDerived >
void dnac::RenameResourceCommand< TDerived >::searchAndRename ( DNACalibDNAReaderImpl output)
inlineprivate
63 {
64 for (std::uint16_t i = 0u; i < getNameCount(output); ++i) {
65 const auto name = getNameByIndex(output, i);
66 if (name == oldName) {
67 setNameByIndex(output, i, newName.c_str());
68 return;
69 }
70 }
71 }
virtual std::uint16_t getNameCount(const dna::Reader *input) const =0
virtual StringView getNameByIndex(const dna::Reader *input, std::uint16_t index_) const =0

References dnac::RenameResourceCommand< TDerived >::getNameByIndex(), dnac::RenameResourceCommand< TDerived >::getNameCount(), dnac::RenameResourceCommand< TDerived >::newName, dnac::RenameResourceCommand< TDerived >::oldName, and dnac::RenameResourceCommand< TDerived >::setNameByIndex().

Referenced by dnac::RenameResourceCommand< TDerived >::run().

◆ setName() [1/2]

template<class TDerived >
void dnac::RenameResourceCommand< TDerived >::setName ( const char *  oldName_,
const char *  newName_ 
)
inline

◆ setName() [2/2]

template<class TDerived >
void dnac::RenameResourceCommand< TDerived >::setName ( std::uint16_t  index_,
const char *  newName_ 
)
inline

◆ setNameByIndex()

template<class TDerived >
virtual void dnac::RenameResourceCommand< TDerived >::setNameByIndex ( dna::Writer output,
std::uint16_t  index_,
const char *  name 
)
privatepure virtual

Member Data Documentation

◆ config

template<class TDerived >
Configuration dnac::RenameResourceCommand< TDerived >::config
private

◆ index

template<class TDerived >
std::uint16_t dnac::RenameResourceCommand< TDerived >::index
private

◆ newName

template<class TDerived >
String<char> dnac::RenameResourceCommand< TDerived >::newName
private

◆ oldName

template<class TDerived >
String<char> dnac::RenameResourceCommand< TDerived >::oldName
private

The documentation for this class was generated from the following file: