summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHwankyu Jhun <h.jhun@samsung.com>2024-04-25 11:00:17 +0900
committerHwankyu Jhun <h.jhun@samsung.com>2024-04-25 11:00:17 +0900
commitec79e0e5db592580e6de9d686155160d6e86cb35 (patch)
tree2a16f1091ce5c315fd9bd9897a8621a956ec5995
parent29d8591ec4ed43c33945778f11965ffdc2b6ea1c (diff)
downloadtidl-ec79e0e5db592580e6de9d686155160d6e86cb35.tar.gz
tidl-ec79e0e5db592580e6de9d686155160d6e86cb35.tar.bz2
tidl-ec79e0e5db592580e6de9d686155160d6e86cb35.zip
Fix C++ Generator of version 2
- Add setting the initialization value Change-Id: I7226c5892c948a75b044fd6ca21257ac8c67ec10 Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
-rw-r--r--idlc/gen/version2/cpp_generator_base.cc6
-rw-r--r--idlc/gen/version2/cpp_generator_base_cb.hh8
2 files changed, 9 insertions, 5 deletions
diff --git a/idlc/gen/version2/cpp_generator_base.cc b/idlc/gen/version2/cpp_generator_base.cc
index 61f8b7a..83f3135 100644
--- a/idlc/gen/version2/cpp_generator_base.cc
+++ b/idlc/gen/version2/cpp_generator_base.cc
@@ -898,7 +898,8 @@ std::string CppGeneratorBase::GenUnitImplDeserializer(const BaseType& type) {
} else {
code = ReplaceAll(CB_UNIT_IMPL_DESERIALIZER_BASE)
.Change("<TYPE>", ConvertTypeToString(type))
- .Change("<PARCEL_TYPE>", GetParcelType(type));
+ .Change("<PARCEL_TYPE>", GetParcelType(type))
+ .Change("<SET_INIT_VALUE>", GetSettingInitValue(type));
}
return RemoveLine(code);
@@ -912,7 +913,8 @@ std::string CppGeneratorBase::GenUnitMapBaseRead(const Structure& st) {
for (auto& elm : st.GetElements()) {
code += ReplaceAll(CB_UNIT_MAP_BASE_READ)
.Change("<TYPE>", ConvertTypeToString(elm->GetType()))
- .Change("<NAME>", elm->GetID());
+ .Change("<NAME>", elm->GetID())
+ .Change("<SET_INIT_VALUE>", GetSettingInitValue(elm->GetType()));
}
return code;
diff --git a/idlc/gen/version2/cpp_generator_base_cb.hh b/idlc/gen/version2/cpp_generator_base_cb.hh
index aaeda07..237da74 100644
--- a/idlc/gen/version2/cpp_generator_base_cb.hh
+++ b/idlc/gen/version2/cpp_generator_base_cb.hh
@@ -820,10 +820,11 @@ for (int index = 0; index < tmp_size; ++index) {
/**
* <NAME> The name of the element of the value.
+ * <SET_INIT_VALUE> The setting initialization value.
*/
constexpr const char CB_UNIT_MAP_BASE_READ[] =
R"__cpp_cb(
-<TYPE> tmp_<NAME>;
+<TYPE> tmp_<NAME><SET_INIT_VALUE>;
unit_map.Read("<NAME>", tmp_<NAME>);
value.Set<NAME>(tmp_<NAME>);
)__cpp_cb";
@@ -905,10 +906,11 @@ if (tmp_filename != nullptr) {
/**
* <TYPE> The type of the parameter.
* <PARCEL_TYPE> The type of the parcel type of the parameter.
+ * <SET_INIT_VALUE> The setting initialization value.
*/
constexpr const char CB_UNIT_IMPL_DESERIALIZER_BASE[] =
R"__cpp_cb(
-<TYPE> tmp_value;
+<TYPE> tmp_value<SET_INIT_VALUE>;
rpc_port_parcel_read_<PARCEL_TYPE>(GetParcel(), &tmp_value);
value = tmp_value;
)__cpp_cb";
@@ -918,7 +920,7 @@ value = tmp_value;
*/
constexpr const char CB_UNIT_IMPL_DESERIALIZER_ENUM[] =
R"__cpp_cb(
-int tmp_value;
+int tmp_value = -1;
rpc_port_parcel_read_int32(GetParcel(), &tmp_value);
value = static_cast<<TYPE>>(tmp_value);
)__cpp_cb";