79 lines
1.8 KiB
C++
79 lines
1.8 KiB
C++
#include "TranslateBasic.h"
|
|
|
|
using namespace extract;
|
|
|
|
|
|
TranslateBasic::TranslateBasic()
|
|
{
|
|
// extractor type-list
|
|
std::shared_ptr<ExtractUnit> u_ptr = std::make_shared<BytesAsBitCombine>();
|
|
_extractor_types[u_ptr->name()] = u_ptr;
|
|
|
|
u_ptr = std::make_shared<BytesAsInteger>();
|
|
_extractor_types[u_ptr->name()] = u_ptr;
|
|
|
|
u_ptr = std::make_shared<BytesAsUnsigned>();
|
|
_extractor_types[u_ptr->name()] = u_ptr;
|
|
|
|
u_ptr = std::make_shared<BytesAsString>();
|
|
_extractor_types[u_ptr->name()] = u_ptr;
|
|
|
|
u_ptr = std::make_shared<BytesAsHex>();
|
|
_extractor_types[u_ptr->name()] = u_ptr;
|
|
this->_default_translate_rule = u_ptr;
|
|
|
|
u_ptr = std::make_shared<BytesAsFloat>();
|
|
_extractor_types[u_ptr->name()] = u_ptr;
|
|
|
|
u_ptr = std::make_shared<BytesAsDouble>();
|
|
_extractor_types[u_ptr->name()] = u_ptr;
|
|
|
|
u_ptr = std::make_shared<BytesAsList>();
|
|
_extractor_types[u_ptr->name()] = u_ptr;
|
|
|
|
// size-provider type-list
|
|
auto sz_ptr = std::make_shared<ConstNumberProvider>();
|
|
this->_default_size_provider = sz_ptr;
|
|
_size_provider_types[sz_ptr->name()] = sz_ptr;
|
|
}
|
|
|
|
std::shared_ptr<ExtractUnit> TranslateBasic::defaultRule() const
|
|
{
|
|
return _default_translate_rule;
|
|
}
|
|
|
|
std::shared_ptr<SizeProvider> TranslateBasic::defaultSizeProvider() const
|
|
{
|
|
return _default_size_provider;
|
|
}
|
|
|
|
QHash<QString, std::shared_ptr<ExtractUnit>> TranslateBasic::extactors() const
|
|
{
|
|
return _extractor_types;
|
|
}
|
|
|
|
QHash<QString, std::shared_ptr<SizeProvider>> TranslateBasic::sizeProviders() const
|
|
{
|
|
return _size_provider_types;
|
|
}
|
|
|
|
QString ConstNumberProvider::name() const
|
|
{
|
|
return NAME(ConstNumberProvider);
|
|
}
|
|
|
|
int32_t ConstNumberProvider::value(const QString& expr) const
|
|
{
|
|
return expr.toInt();
|
|
}
|
|
|
|
void ConstNumberProvider::setExpression(const QString& expr)
|
|
{
|
|
this->_number_value = expr;
|
|
}
|
|
|
|
QString ConstNumberProvider::expression() const
|
|
{
|
|
return this->_number_value;
|
|
}
|