This commit is contained in:
codeboss 2025-08-10 18:03:02 +08:00
parent b11f556b9a
commit 0f7d7a44bf
6 changed files with 47 additions and 47 deletions

View File

@ -6,7 +6,7 @@ using namespace size_provider;
TranslateBasic::TranslateBasic() TranslateBasic::TranslateBasic()
{ {
// extractor type-list // extractor type-list
std::shared_ptr<ExtractImpl> u_ptr = std::make_shared<AsInteger>(); std::shared_ptr<ExtractDelegate> u_ptr = std::make_shared<AsInteger>();
_basic_extractor_types[u_ptr->unitType()] = u_ptr; _basic_extractor_types[u_ptr->unitType()] = u_ptr;
u_ptr = std::make_shared<AsUnsigned>(); u_ptr = std::make_shared<AsUnsigned>();
@ -46,12 +46,12 @@ TranslateBasic::TranslateBasic()
_size_provider_types[sz_ptr->name()] = sz_ptr; _size_provider_types[sz_ptr->name()] = sz_ptr;
} }
std::shared_ptr<ExtractImpl> TranslateBasic::defaultExtractUnit() const std::shared_ptr<ExtractDelegate> TranslateBasic::defaultExtractUnit() const
{ {
return _default_translate_rule; return _default_translate_rule;
} }
QHash<QString, std::shared_ptr<ExtractImpl>> TranslateBasic::basicExtractors() const QHash<QString, std::shared_ptr<ExtractDelegate>> TranslateBasic::basicExtractors() const
{ {
return _basic_extractor_types; return _basic_extractor_types;
} }
@ -66,7 +66,7 @@ std::shared_ptr<RuleMatch> TranslateBasic::defaultRuleMatch() const
return _default_rule_match; return _default_rule_match;
} }
QHash<QString, std::shared_ptr<ExtractImpl>> TranslateBasic::totalExtractors() const QHash<QString, std::shared_ptr<ExtractDelegate>> TranslateBasic::totalExtractors() const
{ {
decltype(_basic_extractor_types) ntypes; decltype(_basic_extractor_types) ntypes;
for(auto key : _complex_extractor_types.keys()) for(auto key : _complex_extractor_types.keys())
@ -75,11 +75,11 @@ QHash<QString, std::shared_ptr<ExtractImpl>> TranslateBasic::totalExtractors() c
return ntypes; return ntypes;
} }
void TranslateBasic::addDelegate(std::shared_ptr<ExtractImpl> inst) void TranslateBasic::addDelegate(std::shared_ptr<ExtractDelegate> inst)
{ {
auto repeat_name_count = std::count_if( auto repeat_name_count = std::count_if(
this->_custom_rule_types.begin(), this->_custom_rule_types.end(), this->_custom_rule_types.begin(), this->_custom_rule_types.end(),
[=](std::shared_ptr<ExtractImpl> v) { [=](std::shared_ptr<ExtractDelegate> v) {
return v->aliasName() == inst->aliasName(); return v->aliasName() == inst->aliasName();
}); });
@ -114,13 +114,13 @@ QList<QString> TranslateBasic::delegateAlias() const
{ {
QList<QString> values; QList<QString> values;
std::transform(_custom_rule_types.begin(), _custom_rule_types.end(), std::transform(_custom_rule_types.begin(), _custom_rule_types.end(),
std::back_inserter(values), [](std::shared_ptr<ExtractImpl> impl){ std::back_inserter(values), [](std::shared_ptr<ExtractDelegate> impl){
return impl->aliasName(); return impl->aliasName();
}); });
return values; return values;
} }
std::shared_ptr<ExtractImpl> TranslateBasic::operator[](const QString& name) const std::shared_ptr<ExtractDelegate> TranslateBasic::operator[](const QString& name) const
{ {
for(auto ins : _custom_rule_types) for(auto ins : _custom_rule_types)
if(ins->aliasName() == name) if(ins->aliasName() == name)
@ -129,7 +129,7 @@ std::shared_ptr<ExtractImpl> TranslateBasic::operator[](const QString& name) con
assert("Ö¸¶¨Name²»´æÔÚ" && 0); assert("Ö¸¶¨Name²»´æÔÚ" && 0);
} }
void TranslateBasic::replaceDelegate(const QString& name, std::shared_ptr<ExtractImpl> inst) void TranslateBasic::replaceDelegate(const QString& name, std::shared_ptr<ExtractDelegate> inst)
{ {
for (auto idx = 0; _custom_rule_types.size(); ++idx) { for (auto idx = 0; _custom_rule_types.size(); ++idx) {
auto rule_inst = _custom_rule_types.at(idx); auto rule_inst = _custom_rule_types.at(idx);

View File

@ -109,9 +109,9 @@ public:
/// </summary> /// </summary>
class TranslateBasic { class TranslateBasic {
private: private:
QHash<QString, std::shared_ptr<ExtractImpl>> _basic_extractor_types; QHash<QString, std::shared_ptr<ExtractDelegate>> _basic_extractor_types;
QHash<QString, std::shared_ptr<ExtractImpl>> _complex_extractor_types; QHash<QString, std::shared_ptr<ExtractDelegate>> _complex_extractor_types;
std::shared_ptr<ExtractImpl> _default_translate_rule = nullptr; std::shared_ptr<ExtractDelegate> _default_translate_rule = nullptr;
QHash<QString, std::shared_ptr<SizeProvider>> _size_provider_types; QHash<QString, std::shared_ptr<SizeProvider>> _size_provider_types;
std::shared_ptr<SizeProvider> _default_size_provider = nullptr; std::shared_ptr<SizeProvider> _default_size_provider = nullptr;
@ -119,7 +119,7 @@ private:
QHash<QString, std::shared_ptr<RuleMatch>> _rule_match_types; QHash<QString, std::shared_ptr<RuleMatch>> _rule_match_types;
std::shared_ptr<RuleMatch> _default_rule_match = nullptr; std::shared_ptr<RuleMatch> _default_rule_match = nullptr;
QList<std::shared_ptr<ExtractImpl>> _custom_rule_types; QList<std::shared_ptr<ExtractDelegate>> _custom_rule_types;
public: public:
TranslateBasic(); TranslateBasic();
@ -129,15 +129,15 @@ public:
std::shared_ptr<RuleMatch> defaultRuleMatch() const; std::shared_ptr<RuleMatch> defaultRuleMatch() const;
QHash<QString, std::shared_ptr<RuleMatch>> ruleMatchList() const; QHash<QString, std::shared_ptr<RuleMatch>> ruleMatchList() const;
std::shared_ptr<ExtractImpl> defaultExtractUnit() const; std::shared_ptr<ExtractDelegate> defaultExtractUnit() const;
QHash<QString, std::shared_ptr<ExtractImpl>> basicExtractors() const; QHash<QString, std::shared_ptr<ExtractDelegate>> basicExtractors() const;
QHash<QString, std::shared_ptr<ExtractImpl>> totalExtractors() const; QHash<QString, std::shared_ptr<ExtractDelegate>> totalExtractors() const;
void addDelegate(std::shared_ptr<ExtractImpl> inst); void addDelegate(std::shared_ptr<ExtractDelegate> inst);
void removeDelegate(const QString& alias); void removeDelegate(const QString& alias);
void replaceDelegate(const QString &name, std::shared_ptr<ExtractImpl> inst); void replaceDelegate(const QString &name, std::shared_ptr<ExtractDelegate> inst);
QList<QString> delegateAlias() const; QList<QString> delegateAlias() const;
std::shared_ptr<ExtractImpl> operator[](const QString &name) const; std::shared_ptr<ExtractDelegate> operator[](const QString &name) const;
}; };
namespace size_provider { namespace size_provider {

View File

@ -128,7 +128,7 @@ void WrapConfigs::aliasAppend()
name += "#"; name += "#";
auto ins = _bind_base->defaultExtractUnit()->newDefault(); auto ins = _bind_base->defaultExtractUnit()->newDefault();
auto nins = std::dynamic_pointer_cast<ExtractImpl>(ins); auto nins = std::dynamic_pointer_cast<ExtractDelegate>(ins);
nins->setAlias(name); nins->setAlias(name);
_bind_base->addDelegate(nins); _bind_base->addDelegate(nins);
@ -172,7 +172,7 @@ void WrapConfigs::dataChanged(QStandardItem* cell)
auto new_type = cell->text(); auto new_type = cell->text();
auto new_ins = _bind_base->basicExtractors()[new_type]->newDefault(); auto new_ins = _bind_base->basicExtractors()[new_type]->newDefault();
auto new_delegate = std::dynamic_pointer_cast<ExtractImpl>(new_ins); auto new_delegate = std::dynamic_pointer_cast<ExtractDelegate>(new_ins);
new_delegate->setAlias(origin_key); new_delegate->setAlias(origin_key);
_bind_base->replaceDelegate(origin_key, new_delegate); _bind_base->replaceDelegate(origin_key, new_delegate);
}break; }break;
@ -248,7 +248,7 @@ CountWithinConfiguration::CountWithinConfiguration(QWidget* p /*= nullptr*/)
}); });
} }
void CountWithinConfiguration::currentRuleAccept(std::shared_ptr<ExtractImpl> u, const QModelIndex& i) void CountWithinConfiguration::currentRuleAccept(std::shared_ptr<ExtractDelegate> u, const QModelIndex& i)
{ {
this->_bind_u = u; this->_bind_u = u;
this->_bind_index = i; this->_bind_index = i;
@ -295,7 +295,7 @@ EncodingConfiguration::EncodingConfiguration(QWidget* p /*= nullptr*/)
}); });
} }
void EncodingConfiguration::currentRuleAccept(std::shared_ptr<ExtractImpl> u, const QModelIndex& i) void EncodingConfiguration::currentRuleAccept(std::shared_ptr<ExtractDelegate> u, const QModelIndex& i)
{ {
this->_bind_u = u; this->_bind_u = u;
this->_bind_index = i; this->_bind_index = i;
@ -368,7 +368,7 @@ BitCombineConfiguration::BitCombineConfiguration(QWidget* p /*= nullptr*/)
}); });
} }
void BitCombineConfiguration::currentRuleAccept(std::shared_ptr<ExtractImpl> u, const QModelIndex& i) void BitCombineConfiguration::currentRuleAccept(std::shared_ptr<ExtractDelegate> u, const QModelIndex& i)
{ {
this->_bind_u = std::dynamic_pointer_cast<extract::AsBitCombine>(u);; this->_bind_u = std::dynamic_pointer_cast<extract::AsBitCombine>(u);;
this->_bind_index = i; this->_bind_index = i;

View File

@ -59,14 +59,14 @@ namespace configurations {
class CountWithinConfiguration : public QWidget { class CountWithinConfiguration : public QWidget {
Q_OBJECT Q_OBJECT
private: private:
std::shared_ptr<ExtractImpl> _bind_u; std::shared_ptr<ExtractDelegate> _bind_u;
QModelIndex _bind_index; QModelIndex _bind_index;
QSpinBox* const _count_input; QSpinBox* const _count_input;
public: public:
CountWithinConfiguration(QWidget* p = nullptr); CountWithinConfiguration(QWidget* p = nullptr);
void currentRuleAccept(std::shared_ptr<ExtractImpl> u, const QModelIndex& i); void currentRuleAccept(std::shared_ptr<ExtractDelegate> u, const QModelIndex& i);
signals: signals:
void currentRuleChanged(const QModelIndex& idx); void currentRuleChanged(const QModelIndex& idx);
@ -78,7 +78,7 @@ namespace configurations {
class EncodingConfiguration : public QWidget { class EncodingConfiguration : public QWidget {
Q_OBJECT Q_OBJECT
private: private:
std::shared_ptr<ExtractImpl> _bind_u; std::shared_ptr<ExtractDelegate> _bind_u;
QModelIndex _bind_index; QModelIndex _bind_index;
QSpinBox* const _count_input; QSpinBox* const _count_input;
QComboBox* const _encoding_set; QComboBox* const _encoding_set;
@ -86,7 +86,7 @@ namespace configurations {
public: public:
EncodingConfiguration(QWidget* p = nullptr); EncodingConfiguration(QWidget* p = nullptr);
void currentRuleAccept(std::shared_ptr<ExtractImpl> u, const QModelIndex& i); void currentRuleAccept(std::shared_ptr<ExtractDelegate> u, const QModelIndex& i);
signals: signals:
void currentRuleChanged(const QModelIndex& idx); void currentRuleChanged(const QModelIndex& idx);
@ -110,7 +110,7 @@ namespace configurations {
public: public:
BitCombineConfiguration(QWidget* p = nullptr); BitCombineConfiguration(QWidget* p = nullptr);
void currentRuleAccept(std::shared_ptr<ExtractImpl> u, const QModelIndex& i); void currentRuleAccept(std::shared_ptr<ExtractDelegate> u, const QModelIndex& i);
void reloadContent(std::shared_ptr<extract::AsBitCombine> u); void reloadContent(std::shared_ptr<extract::AsBitCombine> u);
signals: signals:

View File

@ -729,12 +729,12 @@ int ExtractProcess::offsetSpan() const
return _inst._bytes_offset; return _inst._bytes_offset;
} }
std::shared_ptr<ExtractImpl> ExtractProcess::delegateInst() const std::shared_ptr<ExtractDelegate> ExtractProcess::delegateInst() const
{ {
return _inst._delegate_inst; return _inst._delegate_inst;
} }
void ExtractProcess::setDelegate(std::shared_ptr<ExtractImpl> inst) void ExtractProcess::setDelegate(std::shared_ptr<ExtractDelegate> inst)
{ {
_inst._delegate_inst = inst; _inst._delegate_inst = inst;
} }
@ -766,7 +766,7 @@ void ExtractProcess::loadFrom(std::shared_ptr<TranslateBasic> core, const QJsonO
QString delegate_alias; QString delegate_alias;
STRING_PEAK(delegate_alias, obj); STRING_PEAK(delegate_alias, obj);
auto vcopy = core->operator[](delegate_alias)->newDefault(); auto vcopy = core->operator[](delegate_alias)->newDefault();
_inst._delegate_inst = std::dynamic_pointer_cast<ExtractImpl>(vcopy); _inst._delegate_inst = std::dynamic_pointer_cast<ExtractDelegate>(vcopy);
QJsonObject data_obj; QJsonObject data_obj;
OBJECT_PEAK(data_obj, field_obj); OBJECT_PEAK(data_obj, field_obj);

View File

@ -34,7 +34,7 @@ public:
/// <summary> /// <summary>
/// 翻译单元抽象接口 /// 翻译单元抽象接口
/// </summary> /// </summary>
class ExtractImpl : public ExtractStruct { class ExtractDelegate : public ExtractStruct {
public: public:
/// <summary> /// <summary>
/// 基础类型 /// 基础类型
@ -87,19 +87,19 @@ public:
/// 委托实例 /// 委托实例
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
virtual std::shared_ptr<ExtractImpl> delegateInst() const = 0; virtual std::shared_ptr<ExtractDelegate> delegateInst() const = 0;
/// <summary> /// <summary>
/// 设置委托实例 /// 设置委托实例
/// </summary> /// </summary>
/// <param typeAlias="inst"></param> /// <param typeAlias="inst"></param>
virtual void setDelegate(std::shared_ptr<ExtractImpl> inst) = 0; virtual void setDelegate(std::shared_ptr<ExtractDelegate> inst) = 0;
}; };
class SizeProvider; class SizeProvider;
class RuleMatch; class RuleMatch;
namespace extract { namespace extract {
class AbstractExtractor : public ExtractImpl { class AbstractExtractor : public ExtractDelegate {
private: private:
struct __Private { struct __Private {
QString typename_store = ""; QString typename_store = "";
@ -112,7 +112,7 @@ namespace extract {
AbstractExtractor(const QString& name, DataType data); AbstractExtractor(const QString& name, DataType data);
virtual bool setCountWithin(int bytes); virtual bool setCountWithin(int bytes);
// ExtractImpl =========================== // ExtractDelegate ===========================
QString unitType() const override; QString unitType() const override;
virtual DataType outType() const; virtual DataType outType() const;
int countWithin() const override; int countWithin() const override;
@ -156,7 +156,7 @@ namespace extract {
QHash<int, QString> switchOptions() const; QHash<int, QString> switchOptions() const;
virtual void clearOptions(); virtual void clearOptions();
// ExtractImpl ============================ // ExtractDelegate ============================
void parse(const QByteArray& bytes, std::shared_ptr<DataContext> out) const override; void parse(const QByteArray& bytes, std::shared_ptr<DataContext> out) const override;
// Serializable ============================== // Serializable ==============================
@ -173,7 +173,7 @@ namespace extract {
static QString topic(); static QString topic();
AsInteger(); AsInteger();
// ExtractImpl ============================ // ExtractDelegate ============================
bool setCountWithin(int bytes) override; bool setCountWithin(int bytes) override;
void parse(const QByteArray& bytes, std::shared_ptr<DataContext> out) const override; void parse(const QByteArray& bytes, std::shared_ptr<DataContext> out) const override;
@ -189,7 +189,7 @@ namespace extract {
static QString topic(); static QString topic();
AsUnsigned(); AsUnsigned();
// ExtractImpl ============================ // ExtractDelegate ============================
bool setCountWithin(int bytes) override; bool setCountWithin(int bytes) override;
void parse(const QByteArray& bytes, std::shared_ptr<DataContext> out) const override; void parse(const QByteArray& bytes, std::shared_ptr<DataContext> out) const override;
@ -213,7 +213,7 @@ namespace extract {
void setStrCodec(QTextCodec* ins); void setStrCodec(QTextCodec* ins);
QString codecName() const; QString codecName() const;
// ExtractImpl ============================ // ExtractDelegate ============================
void parse(const QByteArray& bytes, std::shared_ptr<DataContext> out) const override; void parse(const QByteArray& bytes, std::shared_ptr<DataContext> out) const override;
// Serializable ============================== // Serializable ==============================
@ -241,7 +241,7 @@ namespace extract {
}; };
class AsList : public ExtractImpl { class AsList : public ExtractDelegate {
private: private:
struct __Private { struct __Private {
QString _alias_name = ""; QString _alias_name = "";
@ -274,7 +274,7 @@ namespace extract {
}; };
class AsUnion : public ExtractImpl { class AsUnion : public ExtractDelegate {
private: private:
struct __Private { struct __Private {
int byte_count = 1; int byte_count = 1;
@ -308,7 +308,7 @@ namespace extract {
}; };
class AsRuleSet : public ExtractImpl { class AsRuleSet : public ExtractDelegate {
private: private:
struct __Private { struct __Private {
QString alias_name = ""; QString alias_name = "";
@ -350,7 +350,7 @@ namespace extract {
struct __Private { struct __Private {
QString _field_name = ""; QString _field_name = "";
int _bytes_offset = 0; int _bytes_offset = 0;
std::shared_ptr<ExtractImpl> _delegate_inst = nullptr; std::shared_ptr<ExtractDelegate> _delegate_inst = nullptr;
} _inst; } _inst;
public: public:
@ -362,8 +362,8 @@ namespace extract {
virtual int countWithin() const; virtual int countWithin() const;
std::shared_ptr<ExtractImpl> delegateInst() const override; std::shared_ptr<ExtractDelegate> delegateInst() const override;
void setDelegate(std::shared_ptr<ExtractImpl> inst) override; void setDelegate(std::shared_ptr<ExtractDelegate> inst) override;
void registSubField(std::shared_ptr<ScopeFieldsSetter> inst) override; void registSubField(std::shared_ptr<ScopeFieldsSetter> inst) override;
void parse(const QByteArray& bytes, std::shared_ptr<DataContext> out) const override; void parse(const QByteArray& bytes, std::shared_ptr<DataContext> out) const override;