From 4ef2d70398bb159e3c5b9230fbbc8b9896d388a9 Mon Sep 17 00:00:00 2001 From: walon Date: Wed, 12 Apr 2023 00:36:41 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=20=E4=BF=AE=E5=A4=8Dconfig=20cpp=E5=AF=B9?= =?UTF-8?q?=E5=A4=9A=E8=81=94=E5=90=88=E7=B4=A2=E5=BC=95=E7=94=9F=E6=88=90?= =?UTF-8?q?=E7=9A=84=E4=BB=A3=E7=A0=81=E7=9A=84=E7=BC=96=E8=AF=91=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Templates/config/cpp_bin/table.tpl | 55 +------------------ 1 file changed, 3 insertions(+), 52 deletions(-) diff --git a/src/Luban.Server/Templates/config/cpp_bin/table.tpl b/src/Luban.Server/Templates/config/cpp_bin/table.tpl index 0a109b4..02c0b0b 100644 --- a/src/Luban.Server/Templates/config/cpp_bin/table.tpl +++ b/src/Luban.Server/Templates/config/cpp_bin/table.tpl @@ -14,38 +14,6 @@ */ {{~end~}} -{{~if x.is_list_table ~}} -{{~if x.is_union_index~}} -typedef struct t_{{name}}_MultiKey -{ -{{~for idx in x.index_list~}} - {{cpp_define_type idx.type}} {{idx.index_field.name}}; -{{~end~}} - bool operator==(const t_{{name}}_MultiKey& stOther) const - { - bool bEqual = true; - {{~for idx in x.index_list~}} - bEqual = bEqual && (stOther.{{idx.index_field.name}} == {{idx.index_field.name}}); - {{~end~}} - return bEqual; - } -}t_{{name}}_MultiKey; - -typedef struct t_{{name}}_MultiKey_HashFunc -{ - std::size_t operator()(const t_{{name}}_MultiKey& stMK) const - { - std::size_t sHash = 0; - {{~for idx in x.index_list~}} - sHash ^= std::hash<{{cpp_define_type idx.type}}>()(stMK.{{idx.index_field.name}}); - {{~end~}} - return sHash; - } -}t_{{name}}_MultiKey_HashFunc; -{{~end~}} -{{~end~}} - - class {{name}} { {{~if x.is_map_table ~}} @@ -95,7 +63,7 @@ class {{name}} private: ::bright::Vector<{{cpp_define_type value_type}}> _dataList; {{~if x.is_union_index~}} - ::bright::HashMapMultiKey _dataMap; + {{~else if !x.index_list.empty?~}} {{~for idx in x.index_list~}} ::bright::HashMap<{{cpp_define_type idx.type}}, {{cpp_define_type value_type}}> _dataMap_{{idx.index_field.name}}; @@ -114,11 +82,7 @@ class {{name}} {{cpp_deserialize '_buf' '_v' value_type}} _dataList.push_back(_v); {{~if x.is_union_index~}} - t_{{name}}_MultiKey stKey; - {{~for idx in x.index_list~}} - stKey.{{idx.index_field.name}} = _v->{{idx.index_field.name}}; - {{~end~}} - _dataMap[stKey] = _v; + {{~else if !x.index_list.empty?~}} {{~for idx in x.index_list~}} _dataMap_{{idx.index_field.name}}[_v->{{idx.index_field.name}}] = _v; @@ -132,20 +96,7 @@ class {{name}} const ::bright::Vector<{{cpp_define_type value_type}}>& getDataList() const { return _dataList; } {{~if x.is_union_index~}} - ::bright::HashMapMultiKey& getDataMap() - { - return _dataMap; - } - {{value_type.bean.cpp_full_name}}* getRaw(t_{{name}}_MultiKey& key) - { - auto it = _dataMap.find(key); - return it != _dataMap.end() ? it->second.get() : nullptr; - } - {{cpp_define_type value_type}} get(t_{{name}}_MultiKey& key) - { - auto it = _dataMap.find(key); - return it != _dataMap.end() ? it->second : nullptr; - } + {{~else if !x.index_list.empty?~}} {{~for idx in x.index_list~}} ::bright::HashMap<{{cpp_define_type idx.type}}, {{cpp_define_type value_type}}>& getDataMapBy{{idx.index_field.name}}()