This commit is contained in:
codeboss 2025-08-10 18:05:58 +08:00
parent 0f7d7a44bf
commit efb7d3aa5f
3 changed files with 34 additions and 34 deletions

View File

@ -99,8 +99,8 @@ public:
class RuleMatch : public Serializable {
public:
virtual QString matchType() const = 0;
virtual std::shared_ptr<ExtractWrap> bindRule() const = 0;
virtual void bindRule(std::shared_ptr<ExtractWrap> rule) = 0;
virtual std::shared_ptr<ExtractUnit> bindRule() const = 0;
virtual void bindRule(std::shared_ptr<ExtractUnit> rule) = 0;
virtual bool checkpass(const QByteArray& buffer) const = 0;
};

View File

@ -332,12 +332,12 @@ QString AsUnsigned::topic()
}
#include <stdexcept>
std::shared_ptr<ExtractWrap> AsList::elementRule() const
std::shared_ptr<ExtractUnit> AsList::elementRule() const
{
return this->_list._bind_unit;
}
bool AsList::setElementRule(std::shared_ptr<ExtractWrap> u)
bool AsList::setElementRule(std::shared_ptr<ExtractUnit> u)
{
this->_list._bind_unit = u;
return true;
@ -381,7 +381,7 @@ void AsList::loadFrom(std::shared_ptr<TranslateBasic> core, const QJsonObject& o
QString bind_unit_name = "";
STRING_PEAK(bind_unit_name, obj);
xdev = core->operator[](bind_unit_name)->newDefault();
this->_list._bind_unit = std::dynamic_pointer_cast<ExtractWrap>(xdev);
this->_list._bind_unit = std::dynamic_pointer_cast<ExtractUnit>(xdev);
QJsonObject unit_obj;
@ -623,7 +623,7 @@ void AsRuleSet::loadFrom(std::shared_ptr<TranslateBasic> core, const QJsonObject
auto xdev = core->operator[](match_name)->newDefault();
xdev->loadFrom(core, match_obj);
_bind.sub_units << std::dynamic_pointer_cast<ExtractWrap>(xdev);
_bind.sub_units << std::dynamic_pointer_cast<ExtractUnit>(xdev);
}
}
@ -653,17 +653,17 @@ std::shared_ptr<Serializable> AsRuleSet::newDefault() const
return std::make_shared<AsRuleSet>();
}
std::shared_ptr<ExtractWrap> AsRuleSet::operator[](int index) const
std::shared_ptr<ExtractUnit> AsRuleSet::operator[](int index) const
{
return this->_bind.sub_units[index];
}
void AsRuleSet::replace(int index, std::shared_ptr<ExtractWrap> inst)
void AsRuleSet::replace(int index, std::shared_ptr<ExtractUnit> inst)
{
this->_bind.sub_units.replace(index, inst);
}
extract::AsRuleSet& AsRuleSet::append(std::shared_ptr<ExtractWrap> u)
extract::AsRuleSet& AsRuleSet::append(std::shared_ptr<ExtractUnit> u)
{
this->_bind.sub_units.append(u);
return *this;
@ -683,14 +683,14 @@ QList<QString> AsRuleSet::fieldNames() const
return fields_store;;
}
std::shared_ptr<ExtractWrap> AsRuleSet::operator[](const QString& field) const
std::shared_ptr<ExtractUnit> AsRuleSet::operator[](const QString& field) const
{
for (auto pair : this->_bind.sub_units) {
if(pair->name() == field)
return pair;
}
return std::shared_ptr<ExtractWrap>();
return std::shared_ptr<ExtractUnit>();
}
void AsRuleSet::setAlias(const QString& typeAlias)
@ -713,33 +713,33 @@ QString AsRuleSet::topic()
return NAME(AsRuleSet);
}
QString ExtractProcess::name() const
QString SingleBasedUnit::name() const
{
return _inst._field_name;
}
bool ExtractProcess::setOffsetSpan(int bytes)
bool SingleBasedUnit::setOffsetSpan(int bytes)
{
_inst._bytes_offset = bytes;
return true;
}
int ExtractProcess::offsetSpan() const
int SingleBasedUnit::offsetSpan() const
{
return _inst._bytes_offset;
}
std::shared_ptr<ExtractDelegate> ExtractProcess::delegateInst() const
std::shared_ptr<ExtractDelegate> SingleBasedUnit::delegateInst() const
{
return _inst._delegate_inst;
}
void ExtractProcess::setDelegate(std::shared_ptr<ExtractDelegate> inst)
void SingleBasedUnit::setDelegate(std::shared_ptr<ExtractDelegate> inst)
{
_inst._delegate_inst = inst;
}
void ExtractProcess::registSubField(std::shared_ptr<ScopeFieldsSetter> inst)
void SingleBasedUnit::registSubField(std::shared_ptr<ScopeFieldsSetter> inst)
{
inst->setField(name(), _inst._delegate_inst->outType());
@ -747,7 +747,7 @@ void ExtractProcess::registSubField(std::shared_ptr<ScopeFieldsSetter> inst)
_inst._delegate_inst->registSubField(nlayer);
}
void ExtractProcess::parse(const QByteArray& bytes, std::shared_ptr<DataContext> out) const
void SingleBasedUnit::parse(const QByteArray& bytes, std::shared_ptr<DataContext> out) const
{
auto context = std::make_shared<ValueAccessContext>();
context->init(name(), out);
@ -756,7 +756,7 @@ void ExtractProcess::parse(const QByteArray& bytes, std::shared_ptr<DataContext>
_inst._delegate_inst->parse(bytes_sec, context);
}
void ExtractProcess::loadFrom(std::shared_ptr<TranslateBasic> core, const QJsonObject& obj)
void SingleBasedUnit::loadFrom(std::shared_ptr<TranslateBasic> core, const QJsonObject& obj)
{
QJsonObject field_obj;
OBJECT_PEAK(field_obj, obj);
@ -773,7 +773,7 @@ void ExtractProcess::loadFrom(std::shared_ptr<TranslateBasic> core, const QJsonO
_inst._delegate_inst->loadFrom(core, data_obj);
}
void ExtractProcess::saveTo(QJsonObject& obj) const
void SingleBasedUnit::saveTo(QJsonObject& obj) const
{
QJsonObject field_obj;
STRING_SAVE(_inst._field_name, field_obj);
@ -788,17 +788,17 @@ void ExtractProcess::saveTo(QJsonObject& obj) const
OBJECT_SAVE(field_obj, obj);
}
std::shared_ptr<Serializable> ExtractProcess::newDefault() const
std::shared_ptr<Serializable> SingleBasedUnit::newDefault() const
{
return std::make_shared<ExtractProcess>();
return std::make_shared<SingleBasedUnit>();
}
void ExtractProcess::setName(const QString& name)
void SingleBasedUnit::setName(const QString& name)
{
_inst._field_name = name;
}
int ExtractProcess::countWithin() const
int SingleBasedUnit::countWithin() const
{
return _inst._delegate_inst->countWithin() + offsetSpan();
}

View File

@ -63,7 +63,7 @@ public:
/// <summary>
/// ×ֶδúÀí
/// </summary>
class ExtractWrap : public ExtractStruct {
class ExtractUnit : public ExtractStruct {
public:
/// <summary>
/// ×Ö¶ÎÃû³Æ
@ -246,15 +246,15 @@ namespace extract {
struct __Private {
QString _alias_name = "";
int count_acculate = 0;
std::shared_ptr<ExtractWrap> _bind_unit = nullptr;
std::shared_ptr<ExtractUnit> _bind_unit = nullptr;
std::shared_ptr<SizeProvider> _bind_size_v = nullptr;
} _list;
public:
static QString topic();
std::shared_ptr<ExtractWrap> elementRule() const;
bool setElementRule(std::shared_ptr<ExtractWrap> u);
std::shared_ptr<ExtractUnit> elementRule() const;
bool setElementRule(std::shared_ptr<ExtractUnit> u);
std::shared_ptr<SizeProvider> sizeProvider() const;
bool setSizeProvider(std::shared_ptr<SizeProvider> ins);
@ -312,20 +312,20 @@ namespace extract {
private:
struct __Private {
QString alias_name = "";
QList<std::shared_ptr<ExtractWrap>> sub_units;
QList<std::shared_ptr<ExtractUnit>> sub_units;
}_bind;
public:
static QString topic();
QList<QString> fieldNames() const;
std::shared_ptr<ExtractWrap> operator[](const QString& field) const;
std::shared_ptr<ExtractUnit> operator[](const QString& field) const;
int memberCount() const;
std::shared_ptr<ExtractWrap> operator[](int index) const;
void replace(int index, std::shared_ptr<ExtractWrap> inst);
std::shared_ptr<ExtractUnit> operator[](int index) const;
void replace(int index, std::shared_ptr<ExtractUnit> inst);
void removeAt(int index);
AsRuleSet& append(std::shared_ptr<ExtractWrap> u);
AsRuleSet& append(std::shared_ptr<ExtractUnit> u);
public:
QString unitType() const override;
@ -345,7 +345,7 @@ namespace extract {
};
class ExtractProcess : public ExtractWrap {
class SingleBasedUnit : public ExtractUnit {
private:
struct __Private {
QString _field_name = "";