!246 hdi-gen代码告警处理

Merge pull request !246 from yue/master
This commit is contained in:
openharmony_ci
2021-09-11 15:01:15 +00:00
committed by Gitee
88 changed files with 1251 additions and 2171 deletions
+78 -107
View File
@@ -82,57 +82,28 @@ String ASTArrayType::EmitJavaType(TypeMode mode, bool isInnerType) const
return String::Format("%s[]", elementType_->EmitJavaType(TypeMode::NO_MODE, false).string());
}
void ASTArrayType::EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void ASTArrayType::EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const
{
String lenName = String::Format("%sLen", name.string());
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteUint32(%s, %s)) {\n",
parcelName.string(), lenName.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
sb.Append(prefix).AppendFormat("for (uint32_t i = 0; i < %s; i++) {\n", lenName.string());
String elementName;
String elementReadName;
String elementName = "";
if (elementType_->GetTypeKind() == TypeKind::TYPE_STRUCT
|| elementType_->GetTypeKind() == TypeKind::TYPE_UNION) {
elementName = String::Format("%s[i]", name.string());
elementReadName = "&" + elementName;
elementName = String::Format("&%s[i]", name.string());
} else {
elementName = String::Format("%s[i]", name.string());
elementReadName = elementName;
}
elementType_->EmitCProxyWriteVar(parcelName, elementReadName, gotoLabel, sb, prefix + TAB);
sb.Append(prefix).Append("}\n");
}
void ASTArrayType::EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteUint32(%s, %sLen)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
sb.Append("\n");
sb.Append(prefix).AppendFormat("for (uint32_t i = 0; i < %sLen; i++) {\n", name.string(), name.string());
String element;
if (elementType_->GetTypeKind() == TypeKind::TYPE_STRUCT
|| elementType_->GetTypeKind() == TypeKind::TYPE_UNION) {
element = String::Format("&%s[i]", name.string());
} else {
element = String::Format("%s[i]", name.string());
}
elementType_->EmitCStubWriteVar(parcelName, element, sb, prefix + TAB);
elementType_->EmitCWriteVar(parcelName, elementName, gotoLabel, sb, prefix + g_tab);
sb.Append(prefix).Append("}\n");
}
@@ -142,51 +113,51 @@ void ASTArrayType::EmitCProxyReadVar(const String& parcelName, const String& nam
String lenName = String::Format("%sLen", name.string());
sb.Append(prefix).AppendFormat("if (!HdfSbufReadUint32(%s, %s)) {\n",
parcelName.string(), lenName.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s size failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n\n");
if (elementType_->GetTypeKind() == TypeKind::TYPE_STRING) {
sb.Append(prefix).AppendFormat("*%s = (%s*)OsalMemAlloc(sizeof(%s) * (*%s));\n",
sb.Append(prefix).AppendFormat("*%s = (%s*)OsalMemCalloc(sizeof(%s) * (*%s));\n",
name.string(), elementType_->EmitCType().string(), elementType_->EmitCType().string(),
lenName.string());
sb.Append(prefix).AppendFormat("if (*%s == NULL) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat("ec = HDF_ERR_MALLOC_FAIL;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).AppendFormat("}\n");
sb.Append(prefix + g_tab).AppendFormat("ec = HDF_ERR_MALLOC_FAIL;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).AppendFormat("}\n\n");
} else {
sb.Append(prefix).AppendFormat("*%s = (%s*)OsalMemCalloc(sizeof(%s) * (*%s));\n",
name.string(), elementType_->EmitCType().string(), elementType_->EmitCType().string(),
lenName.string());
sb.Append(prefix).AppendFormat("if (*%s == NULL) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat("ec = HDF_ERR_MALLOC_FAIL;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).AppendFormat("}\n");
sb.Append(prefix + g_tab).AppendFormat("ec = HDF_ERR_MALLOC_FAIL;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).AppendFormat("}\n\n");
}
sb.Append(prefix).AppendFormat("for (uint32_t i = 0; i < *%s; i++) {\n", lenName.string());
if (elementType_->GetTypeKind() == TypeKind::TYPE_STRING) {
String cpName = String::Format("%sCp", name.string());
elementType_->EmitCProxyReadVar(parcelName, cpName, true, gotoLabel, sb, prefix + TAB);
sb.Append(prefix).Append(TAB).AppendFormat("(*%s)[i] = strdup(%sCp);\n",
elementType_->EmitCProxyReadVar(parcelName, cpName, true, gotoLabel, sb, prefix + g_tab);
sb.Append(prefix).Append(g_tab).AppendFormat("(*%s)[i] = strdup(%sCp);\n",
name.string(), name.string());
} else if (elementType_->GetTypeKind() == TypeKind::TYPE_STRUCT) {
String element = String::Format("&(*%s)[i]", name.string());
elementType_->EmitCProxyReadVar(parcelName, element, true, gotoLabel, sb, prefix + TAB);
elementType_->EmitCProxyReadVar(parcelName, element, true, gotoLabel, sb, prefix + g_tab);
} else if (elementType_->GetTypeKind() == TypeKind::TYPE_UNION) {
String element = String::Format("&(*%s)[i]", name.string());
String elementCp = String::Format("%sElementCp", name.string());
elementType_->EmitCProxyReadVar(parcelName, elementCp, true, gotoLabel, sb, prefix + TAB);
sb.Append(prefix + TAB).AppendFormat("(void)memcpy_s(%s, sizeof(%s), %s, sizeof(%s));\n",
elementType_->EmitCProxyReadVar(parcelName, elementCp, true, gotoLabel, sb, prefix + g_tab);
sb.Append(prefix + g_tab).AppendFormat("(void)memcpy_s(%s, sizeof(%s), %s, sizeof(%s));\n",
element.string(), elementType_->EmitCType().string(), elementCp.string(),
elementType_->EmitCType().string());
} else if (elementType_->GetTypeKind() == TypeKind::TYPE_FILEDESCRIPTOR) {
String element = String::Format("(*%s)[i]", name.string());
elementType_->EmitCProxyReadVar(parcelName, element, true, gotoLabel, sb, prefix + TAB);
elementType_->EmitCProxyReadVar(parcelName, element, true, gotoLabel, sb, prefix + g_tab);
} else {
String element = String::Format("&(*%s)[i]", name.string());
elementType_->EmitCProxyReadVar(parcelName, element, true, gotoLabel, sb, prefix + TAB);
elementType_->EmitCProxyReadVar(parcelName, element, true, gotoLabel, sb, prefix + g_tab);
}
sb.Append(prefix).Append("}\n");
}
@@ -197,54 +168,54 @@ void ASTArrayType::EmitCStubReadVar(const String& parcelName, const String& name
String lenName = String::Format("%sLen", name.string());
sb.Append(prefix).AppendFormat("if (!HdfSbufReadUint32(%s, &%s)) {\n",
parcelName.string(), lenName.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s size failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n\n");
sb.Append(prefix).AppendFormat("if (%s > 0) {\n", lenName.string());
if (elementType_->GetTypeKind() == TypeKind::TYPE_STRING) {
sb.Append(prefix + TAB).AppendFormat("%s = (%s*)OsalMemAlloc(sizeof(%s) * (%s));\n", name.string(),
sb.Append(prefix + g_tab).AppendFormat("%s = (%s*)OsalMemCalloc(sizeof(%s) * (%s));\n", name.string(),
elementType_->EmitCType().string(), elementType_->EmitCType().string(), lenName.string());
sb.Append(prefix + TAB).AppendFormat("if (%s == NULL) {\n", name.string());
sb.Append(prefix + TAB + TAB).AppendFormat("ec = HDF_ERR_MALLOC_FAIL;\n");
sb.Append(prefix + TAB + TAB).AppendFormat("goto errors;\n");
sb.Append(prefix + TAB).AppendFormat("}\n");
sb.Append(prefix + g_tab).AppendFormat("if (%s == NULL) {\n", name.string());
sb.Append(prefix + g_tab + g_tab).AppendFormat("ec = HDF_ERR_MALLOC_FAIL;\n");
sb.Append(prefix + g_tab + g_tab).AppendFormat("goto errors;\n");
sb.Append(prefix + g_tab).AppendFormat("}\n\n");
} else {
sb.Append(prefix + TAB).AppendFormat("%s = (%s*)OsalMemCalloc(sizeof(%s) * (%s));\n",
sb.Append(prefix + g_tab).AppendFormat("%s = (%s*)OsalMemCalloc(sizeof(%s) * (%s));\n",
name.string(), elementType_->EmitCType().string(), elementType_->EmitCType().string(),
lenName.string());
sb.Append(prefix + TAB).AppendFormat("if (%s == NULL) {\n", name.string());
sb.Append(prefix + TAB + TAB).AppendFormat("ec = HDF_ERR_MALLOC_FAIL;\n");
sb.Append(prefix + TAB + TAB).AppendFormat("goto errors;\n");
sb.Append(prefix + TAB).AppendFormat("}\n");
sb.Append(prefix + g_tab).AppendFormat("if (%s == NULL) {\n", name.string());
sb.Append(prefix + g_tab + g_tab).AppendFormat("ec = HDF_ERR_MALLOC_FAIL;\n");
sb.Append(prefix + g_tab + g_tab).AppendFormat("goto errors;\n");
sb.Append(prefix + g_tab).AppendFormat("}\n\n");
}
sb.Append(prefix + TAB).AppendFormat("for (uint32_t i = 0; i < %s; i++) {\n", lenName.string());
sb.Append(prefix + g_tab).AppendFormat("for (uint32_t i = 0; i < %s; i++) {\n", lenName.string());
if (elementType_->GetTypeKind() == TypeKind::TYPE_STRING) {
String element = String::Format("%sCp", name.string());
elementType_->EmitCStubReadVar(parcelName, element, sb, prefix + TAB + TAB);
sb.Append(prefix + TAB + TAB).AppendFormat("%s[i] = strdup(%sCp);\n", name.string(), name.string());
elementType_->EmitCStubReadVar(parcelName, element, sb, prefix + g_tab + g_tab);
sb.Append(prefix + g_tab + g_tab).AppendFormat("%s[i] = strdup(%sCp);\n", name.string(), name.string());
} else if (elementType_->GetTypeKind() == TypeKind::TYPE_STRUCT) {
String element = String::Format("&%s[i]", name.string());
elementType_->EmitCStubReadVar(parcelName, element, sb, prefix + TAB + TAB);
elementType_->EmitCStubReadVar(parcelName, element, sb, prefix + g_tab + g_tab);
} else if (elementType_->GetTypeKind() == TypeKind::TYPE_UNION) {
String element = String::Format("%s[i]", name.string());
String elementCp = String::Format("%sElementCp", name.string());
elementType_->EmitCStubReadVar(parcelName, elementCp, sb, prefix + TAB + TAB);
sb.Append(prefix + TAB + TAB).AppendFormat("(void)memcpy_s(&%s, sizeof(%s), %s, sizeof(%s));\n",
elementType_->EmitCStubReadVar(parcelName, elementCp, sb, prefix + g_tab + g_tab);
sb.Append(prefix + g_tab + g_tab).AppendFormat("(void)memcpy_s(&%s, sizeof(%s), %s, sizeof(%s));\n",
element.string(), elementType_->EmitCType().string(), elementCp.string(),
elementType_->EmitCType().string());
} else if (elementType_->GetTypeKind() == TypeKind::TYPE_FILEDESCRIPTOR) {
String element = String::Format("%s[i]", name.string());
elementType_->EmitCStubReadVar(parcelName, element, sb, prefix + TAB + TAB);
elementType_->EmitCStubReadVar(parcelName, element, sb, prefix + g_tab + g_tab);
} else {
String element = String::Format("&%s[i]", name.string());
elementType_->EmitCStubReadVar(parcelName, element, sb, prefix + TAB + TAB);
elementType_->EmitCStubReadVar(parcelName, element, sb, prefix + g_tab + g_tab);
}
sb.Append(prefix + TAB).Append("}\n");
sb.Append(prefix + g_tab).Append("}\n");
sb.Append(prefix).Append("}\n");
}
@@ -252,14 +223,14 @@ void ASTArrayType::EmitCppWriteVar(const String& parcelName, const String& name,
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteUint32(%s.size())) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s.size() failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix).Append("}\n");
String elementName = String::Format("it%d", innerLevel++);
sb.Append(prefix).AppendFormat("for (auto %s : %s) {\n", elementName.string(), name.string());
elementType_->EmitCppWriteVar(parcelName, elementName, sb, prefix + TAB, innerLevel);
elementType_->EmitCppWriteVar(parcelName, elementName, sb, prefix + g_tab, innerLevel);
sb.Append(prefix).Append("}\n");
}
@@ -274,22 +245,22 @@ void ASTArrayType::EmitCppReadVar(const String& parcelName, const String& name,
innerLevel, innerLevel, name.string(), innerLevel);
String valueName = String::Format("value%d", innerLevel++);
elementType_->EmitCppReadVar(parcelName, valueName, sb, prefix + TAB, true, innerLevel);
sb.Append(prefix + TAB).AppendFormat("%s.push_back(%s);\n", name.string(), valueName.string());
elementType_->EmitCppReadVar(parcelName, valueName, sb, prefix + g_tab, true, innerLevel);
sb.Append(prefix + g_tab).AppendFormat("%s.push_back(%s);\n", name.string(), valueName.string());
sb.Append(prefix).Append("}\n");
}
void ASTArrayType::EmitCMarshalling(const String& name, StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteUint32(data, %sLen)) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %sLen failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
sb.Append(prefix).AppendFormat("for (uint32_t i = 0; i < %sLen; i++) {\n", name.string());
String elementName = String::Format("(%s)[i]", name.string());
elementType_->EmitCMarshalling(elementName, sb, prefix + TAB);
elementType_->EmitCMarshalling(elementName, sb, prefix + g_tab);
sb.Append(prefix).Append("}\n");
}
@@ -298,38 +269,38 @@ void ASTArrayType::EmitCUnMarshalling(const String& name, StringBuilder& sb, con
{
String lenName = String::Format("%sLen", name.string());
sb.Append(prefix).AppendFormat("if (!HdfSbufReadUint32(data, &%s)) {\n", lenName.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", lenName.string());
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
sb.Append(prefix).AppendFormat("if (%s > 0) {\n", lenName.string());
String newPrefix = prefix + TAB;
String newPrefix = prefix + g_tab;
sb.Append(newPrefix).AppendFormat("%s = (%s*)OsalMemCalloc(sizeof(%s) * %s);\n",
name.string(), elementType_->EmitCType().string(), elementType_->EmitCType().string(), lenName.string());
sb.Append(newPrefix).AppendFormat("if (%s == NULL) {\n", name.string());
sb.Append(newPrefix + TAB).AppendFormat("goto errors;\n");
sb.Append(newPrefix + g_tab).AppendFormat("goto errors;\n");
sb.Append(newPrefix).Append("}\n");
freeObjStatements.push_back(String::Format("OsalMemFree(%s);\n", name.string()));
sb.Append(newPrefix).AppendFormat("for (uint32_t i = 0; i < %s; i++) {\n", lenName.string());
if (elementType_->GetTypeKind() == TypeKind::TYPE_STRING) {
String element = String::Format("%sElement", name.string());
elementType_->EmitCUnMarshalling(element, sb, newPrefix + TAB, freeObjStatements);
sb.Append(newPrefix).Append(TAB).AppendFormat("%s[i] = strdup(%s);\n",
elementType_->EmitCUnMarshalling(element, sb, newPrefix + g_tab, freeObjStatements);
sb.Append(newPrefix).Append(g_tab).AppendFormat("%s[i] = strdup(%s);\n",
name.string(), element.string());
} else if (elementType_->GetTypeKind() == TypeKind::TYPE_STRUCT) {
String element = String::Format("&%s[i]", name.string());
elementType_->EmitCUnMarshalling(element, sb, newPrefix + TAB, freeObjStatements);
elementType_->EmitCUnMarshalling(element, sb, newPrefix + g_tab, freeObjStatements);
} else if (elementType_->GetTypeKind() == TypeKind::TYPE_UNION) {
String element = String::Format("%s[i]", name.string());
String elementCp = String::Format("%sElementCp", name.string());
elementType_->EmitCUnMarshalling(elementCp, sb, newPrefix + TAB, freeObjStatements);
sb.Append(newPrefix + TAB).AppendFormat("(void)memcpy_s(&%s, sizeof(%s), %s, sizeof(%s));\n",
elementType_->EmitCUnMarshalling(elementCp, sb, newPrefix + g_tab, freeObjStatements);
sb.Append(newPrefix + g_tab).AppendFormat("(void)memcpy_s(&%s, sizeof(%s), %s, sizeof(%s));\n",
element.string(), elementType_->EmitCType().string(), elementCp.string(),
elementType_->EmitCType().string());
} else {
String element = String::Format("%s[i]", name.string());
elementType_->EmitCUnMarshalling(element, sb, newPrefix + TAB, freeObjStatements);
elementType_->EmitCUnMarshalling(element, sb, newPrefix + g_tab, freeObjStatements);
}
sb.Append(newPrefix).Append("}\n");
sb.Append(prefix).Append("}\n");
@@ -340,14 +311,14 @@ void ASTArrayType::EmitCppMarshalling(const String& parcelName, const String& na
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteUint32(%s.size())) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s.size failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
String elementName = String::Format("it%d", innerLevel++);
sb.Append(prefix).AppendFormat("for (auto %s : %s) {\n", elementName.string(), name.string());
elementType_->EmitCppMarshalling(parcelName, elementName, sb, prefix + TAB, innerLevel);
elementType_->EmitCppMarshalling(parcelName, elementName, sb, prefix + g_tab, innerLevel);
sb.Append(prefix).Append("}\n");
}
@@ -366,22 +337,22 @@ void ASTArrayType::EmitCppUnMarshalling(const String& parcelName, const String&
String valueName = String::Format("value%d", innerLevel++);
if (elementType_->GetTypeKind() == TypeKind::TYPE_STRUCT) {
sb.Append(prefix + TAB).AppendFormat("%s %s;\n",
sb.Append(prefix + g_tab).AppendFormat("%s %s;\n",
elementType_->EmitCppType().string(), valueName.string());
elementType_->EmitCppUnMarshalling(parcelName, valueName, sb, prefix + TAB, true, innerLevel);
sb.Append(prefix + TAB).AppendFormat("%s.push_back(%s);\n", name.string(), valueName.string());
elementType_->EmitCppUnMarshalling(parcelName, valueName, sb, prefix + g_tab, true, innerLevel);
sb.Append(prefix + g_tab).AppendFormat("%s.push_back(%s);\n", name.string(), valueName.string());
} else if (elementType_->GetTypeKind() == TypeKind::TYPE_UNION) {
sb.Append(prefix + TAB).AppendFormat("%s %s;\n",
sb.Append(prefix + g_tab).AppendFormat("%s %s;\n",
elementType_->EmitCppType().string(), valueName.string());
String cpName = String::Format("%sCp", valueName.string());
elementType_->EmitCppUnMarshalling(parcelName, cpName, sb, prefix + TAB, true, innerLevel);
sb.Append(prefix + TAB).AppendFormat("(void)memcpy_s(&%s, sizeof(%s), %s, sizeof(%s));\n",
elementType_->EmitCppUnMarshalling(parcelName, cpName, sb, prefix + g_tab, true, innerLevel);
sb.Append(prefix + g_tab).AppendFormat("(void)memcpy_s(&%s, sizeof(%s), %s, sizeof(%s));\n",
valueName.string(), elementType_->EmitCppType().string(), cpName.string(),
elementType_->EmitCppType().string());
sb.Append(prefix + TAB).AppendFormat("%s.push_back(%s);\n", name.string(), valueName.string());
sb.Append(prefix + g_tab).AppendFormat("%s.push_back(%s);\n", name.string(), valueName.string());
} else {
elementType_->EmitCppUnMarshalling(parcelName, valueName, sb, prefix + TAB, true, innerLevel);
sb.Append(prefix + TAB).AppendFormat("%s.push_back(%s);\n", name.string(), valueName.string());
elementType_->EmitCppUnMarshalling(parcelName, valueName, sb, prefix + g_tab, true, innerLevel);
sb.Append(prefix + g_tab).AppendFormat("%s.push_back(%s);\n", name.string(), valueName.string());
}
sb.Append(prefix).Append("}\n");
}
+1 -4
View File
@@ -37,12 +37,9 @@ public:
String EmitJavaType(TypeMode mode, bool isInnerType = false) const override;
void EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const override;
void EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const override;
void EmitCProxyReadVar(const String& parcelName, const String& name, bool isInnerType,
const String& gotoLabel, StringBuilder& sb, const String& prefix) const override;
+19 -31
View File
@@ -62,27 +62,15 @@ String ASTBooleanType::EmitJavaType(TypeMode mode, bool isInnerType) const
return isInnerType ? "Boolean" : "boolean";
}
void ASTBooleanType::EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void ASTBooleanType::EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteInt8(%s, %s ? 1 : 0)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
void ASTBooleanType::EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteInt8(%s, %s ? 1 : 0)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -91,10 +79,10 @@ void ASTBooleanType::EmitCProxyReadVar(const String& parcelName, const String& n
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadInt8(%s, (int8_t *)%s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -103,10 +91,10 @@ void ASTBooleanType::EmitCStubReadVar(const String& parcelName, const String& na
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadInt8(%s, (int8_t *)%s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -114,9 +102,9 @@ void ASTBooleanType::EmitCppWriteVar(const String& parcelName, const String& nam
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteBool(%s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix).Append("}\n");
}
@@ -135,9 +123,9 @@ void ASTBooleanType::EmitCppReadVar(const String& parcelName, const String& name
void ASTBooleanType::EmitCMarshalling(const String& name, StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteInt8(data, %s ? 1 : 0)) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
@@ -145,10 +133,10 @@ void ASTBooleanType::EmitCUnMarshalling(const String& name, StringBuilder& sb, c
std::vector<String>& freeObjStatements) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadInt8(data, (int8_t *)&%s)) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
EmitFreeStatements(freeObjStatements, sb, prefix + TAB);
sb.Append(prefix + TAB).Append("goto errors;\n");
EmitFreeStatements(freeObjStatements, sb, prefix + g_tab);
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -156,9 +144,9 @@ void ASTBooleanType::EmitCppMarshalling(const String& parcelName, const String&
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteBool(%s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
+1 -4
View File
@@ -27,12 +27,9 @@ public:
String EmitJavaType(TypeMode mode, bool isInnerType = false) const override;
void EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const override;
void EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const override;
void EmitCProxyReadVar(const String& parcelName, const String& name, bool isInnerType,
const String& gotoLabel, StringBuilder& sb, const String& prefix) const override;
+19 -31
View File
@@ -62,27 +62,15 @@ String ASTByteType::EmitJavaType(TypeMode mode, bool isInnerType) const
return isInnerType ? "Byte" : "byte";
}
void ASTByteType::EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void ASTByteType::EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteInt8(%s, %s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
void ASTByteType::EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteInt8(%s, %s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -90,10 +78,10 @@ void ASTByteType::EmitCProxyReadVar(const String& parcelName, const String& name
const String& gotoLabel, StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadInt8(%s, %s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -101,10 +89,10 @@ void ASTByteType::EmitCStubReadVar(const String& parcelName, const String& name,
const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadInt8(%s, %s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -112,9 +100,9 @@ void ASTByteType::EmitCppWriteVar(const String& parcelName, const String& name,
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteInt8(%s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix).Append("}\n");
}
@@ -133,9 +121,9 @@ void ASTByteType::EmitCppReadVar(const String& parcelName, const String& name, S
void ASTByteType::EmitCMarshalling(const String& name, StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteInt8(data, %s)) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
@@ -143,10 +131,10 @@ void ASTByteType::EmitCUnMarshalling(const String& name, StringBuilder& sb, cons
std::vector<String>& freeObjStatements) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadInt8(data, &%s)) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
EmitFreeStatements(freeObjStatements, sb, prefix + TAB);
sb.Append(prefix + TAB).Append("goto errors;\n");
EmitFreeStatements(freeObjStatements, sb, prefix + g_tab);
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -154,9 +142,9 @@ void ASTByteType::EmitCppMarshalling(const String& parcelName, const String& nam
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteInt8(%s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
+1 -4
View File
@@ -27,12 +27,9 @@ public:
String EmitJavaType(TypeMode mode, bool isInnerType = false) const override;
void EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const override;
void EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const override;
void EmitCProxyReadVar(const String& parcelName, const String& name, bool isInnerType,
const String& gotoLabel, StringBuilder& sb, const String& prefix) const override;
+19 -31
View File
@@ -62,27 +62,15 @@ String ASTDoubleType::EmitJavaType(TypeMode mode, bool isInnerType) const
return isInnerType ? "Double" : "double";
}
void ASTDoubleType::EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void ASTDoubleType::EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteDouble(%s, %s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
void ASTDoubleType::EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteDouble(%s, %s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -90,10 +78,10 @@ void ASTDoubleType::EmitCProxyReadVar(const String& parcelName, const String& na
const String& gotoLabel, StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadDouble(%s, %s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -101,10 +89,10 @@ void ASTDoubleType::EmitCStubReadVar(const String& parcelName, const String& nam
const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadDouble(%s, %s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -112,9 +100,9 @@ void ASTDoubleType::EmitCppWriteVar(const String& parcelName, const String& name
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteDouble(%s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix).Append("}\n");
}
@@ -132,9 +120,9 @@ void ASTDoubleType::EmitCppReadVar(const String& parcelName, const String& name,
void ASTDoubleType::EmitCMarshalling(const String& name, StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteDouble(data, %s)) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
@@ -142,10 +130,10 @@ void ASTDoubleType::EmitCUnMarshalling(const String& name, StringBuilder& sb, co
std::vector<String>& freeObjStatements) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadDouble(data, &%s)) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
EmitFreeStatements(freeObjStatements, sb, prefix + TAB);
sb.Append(prefix + TAB).Append("goto errors;\n");
EmitFreeStatements(freeObjStatements, sb, prefix + g_tab);
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -153,9 +141,9 @@ void ASTDoubleType::EmitCppMarshalling(const String& parcelName, const String& n
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteDouble(%s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
+1 -4
View File
@@ -27,12 +27,9 @@ public:
String EmitJavaType(TypeMode mode, bool isInnerType = false) const override;
void EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const override;
virtual void EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const;
void EmitCProxyReadVar(const String& parcelName, const String& name, bool isInnerType,
const String& gotoLabel, StringBuilder& sb, const String& prefix) const override;
+18 -30
View File
@@ -161,27 +161,15 @@ String ASTEnumType::EmitJavaTypeDecl() const
return sb.ToString();
}
void ASTEnumType::EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void ASTEnumType::EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteUint32(%s, (uint32_t)%s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
void ASTEnumType::EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteUint32(%s, (uint32_t)%s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -190,10 +178,10 @@ void ASTEnumType::EmitCProxyReadVar(const String& parcelName, const String& name
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadUint32(%s, (uint32_t*)%s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -202,10 +190,10 @@ void ASTEnumType::EmitCStubReadVar(const String& parcelName, const String& name,
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadUint32(%s, (uint32_t*)%s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -214,9 +202,9 @@ void ASTEnumType::EmitCppWriteVar(const String& parcelName, const String& name,
{
sb.Append(prefix).AppendFormat("if (!%s.WriteUint32((uint32_t)%s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix).Append("}\n");
}
@@ -235,9 +223,9 @@ void ASTEnumType::EmitCppReadVar(const String& parcelName, const String& name, S
void ASTEnumType::EmitCMarshalling(const String& name, StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteInt32(data, (int32_t)%s)) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
@@ -245,9 +233,9 @@ void ASTEnumType::EmitCUnMarshalling(const String& name, StringBuilder& sb, cons
std::vector<String>& freeObjStatements) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadInt32(data, (int32_t*)&%s)) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -256,9 +244,9 @@ void ASTEnumType::EmitCppMarshalling(const String& parcelName, const String& nam
{
sb.Append(prefix).AppendFormat("if (!%s.WriteUint32((uint32_t)%s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
+1 -4
View File
@@ -146,12 +146,9 @@ public:
String EmitJavaTypeDecl() const;
void EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const override;
void EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const override;
void EmitCProxyReadVar(const String& parcelName, const String& name, bool isInnerType,
const String& gotoLabel, StringBuilder& sb, const String& prefix) const override;
+18 -30
View File
@@ -62,27 +62,15 @@ String ASTFdType::EmitJavaType(TypeMode mode, bool isInnerType) const
return isInnerType ? "Integer" : "int";
}
void ASTFdType::EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void ASTFdType::EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteFileDescriptor(%s, %s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
void ASTFdType::EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteFileDescriptor(%s, %s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -98,10 +86,10 @@ void ASTFdType::EmitCProxyReadVar(const String& parcelName, const String& name,
name.string(), parcelName.string());
sb.Append(prefix).AppendFormat("if (*%s < 0) {\n", name.string());
}
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -111,10 +99,10 @@ void ASTFdType::EmitCStubReadVar(const String& parcelName, const String& name, S
sb.Append(prefix).AppendFormat("%s = HdfSbufReadFileDescriptor(%s);\n",
name.string(), parcelName.string());
sb.Append(prefix).AppendFormat("if (%s < 0) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -122,9 +110,9 @@ void ASTFdType::EmitCppWriteVar(const String& parcelName, const String& name, St
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteFileDescriptor(%s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix).Append("}\n");
}
@@ -142,9 +130,9 @@ void ASTFdType::EmitCppReadVar(const String& parcelName, const String& name, Str
void ASTFdType::EmitCMarshalling(const String& name, StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteFileDescriptor(data, %s)) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
@@ -153,9 +141,9 @@ void ASTFdType::EmitCUnMarshalling(const String& name, StringBuilder& sb, const
{
sb.Append(prefix).AppendFormat("%s = HdfSbufReadFileDescriptor(data);\n", name.string());
sb.Append(prefix).AppendFormat("if (%s < 0) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -163,9 +151,9 @@ void ASTFdType::EmitCppMarshalling(const String& parcelName, const String& name,
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteFileDescriptor(%s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
+1 -4
View File
@@ -27,12 +27,9 @@ public:
String EmitJavaType(TypeMode mode, bool isInnerType = false) const override;
void EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const override;
void EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const override;
void EmitCProxyReadVar(const String& parcelName, const String& name, bool isInnerType,
const String& gotoLabel, StringBuilder& sb, const String& prefix) const override;
+19 -31
View File
@@ -62,27 +62,15 @@ String ASTFloatType::EmitJavaType(TypeMode mode, bool isInnerType) const
return isInnerType ? "Float" : "float";
}
void ASTFloatType::EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void ASTFloatType::EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteFloat(%s, %s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
void ASTFloatType::EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteFloat(%s, %s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -90,10 +78,10 @@ void ASTFloatType::EmitCProxyReadVar(const String& parcelName, const String& nam
const String& gotoLabel, StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadFloat(%s, %s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -101,10 +89,10 @@ void ASTFloatType::EmitCStubReadVar(const String& parcelName, const String& name
const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadFloat(%s, %s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -112,9 +100,9 @@ void ASTFloatType::EmitCppWriteVar(const String& parcelName, const String& name,
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteFloat(%s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix).Append("}\n");
}
@@ -132,9 +120,9 @@ void ASTFloatType::EmitCppReadVar(const String& parcelName, const String& name,
void ASTFloatType::EmitCMarshalling(const String& name, StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteFloat(data, %s)) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
@@ -142,10 +130,10 @@ void ASTFloatType::EmitCUnMarshalling(const String& name, StringBuilder& sb, con
std::vector<String>& freeObjStatements) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadFloat(data, &%s)) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
EmitFreeStatements(freeObjStatements, sb, prefix + TAB);
sb.Append(prefix + TAB).Append("goto errors;\n");
EmitFreeStatements(freeObjStatements, sb, prefix + g_tab);
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -153,9 +141,9 @@ void ASTFloatType::EmitCppMarshalling(const String& parcelName, const String& na
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteFloat(%s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
+1 -4
View File
@@ -27,12 +27,9 @@ public:
String EmitJavaType(TypeMode mode, bool isInnerType = false) const override;
void EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const override;
void EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const override;
void EmitCProxyReadVar(const String& parcelName, const String& name, bool isInnerType,
const String& gotoLabel, StringBuilder& sb, const String& prefix) const override;
+19 -31
View File
@@ -62,27 +62,15 @@ String ASTIntegerType::EmitJavaType(TypeMode mode, bool isInnerType) const
return isInnerType ? "Integer" : "int";
}
void ASTIntegerType::EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void ASTIntegerType::EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteInt32(%s, %s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
void ASTIntegerType::EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteInt32(%s, %s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -90,10 +78,10 @@ void ASTIntegerType::EmitCProxyReadVar(const String& parcelName, const String& n
const String& gotoLabel, StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadInt32(%s, %s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -101,10 +89,10 @@ void ASTIntegerType::EmitCStubReadVar(const String& parcelName, const String& na
const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadInt32(%s, %s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -112,9 +100,9 @@ void ASTIntegerType::EmitCppWriteVar(const String& parcelName, const String& nam
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteInt32(%s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix).Append("}\n");
}
@@ -132,9 +120,9 @@ void ASTIntegerType::EmitCppReadVar(const String& parcelName, const String& name
void ASTIntegerType::EmitCMarshalling(const String& name, StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteInt32(data, %s)) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
@@ -142,10 +130,10 @@ void ASTIntegerType::EmitCUnMarshalling(const String& name, StringBuilder& sb, c
std::vector<String>& freeObjStatements) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadInt32(data, &%s)) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
EmitFreeStatements(freeObjStatements, sb, prefix + TAB);
sb.Append(prefix + TAB).Append("goto errors;\n");
EmitFreeStatements(freeObjStatements, sb, prefix + g_tab);
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -153,9 +141,9 @@ void ASTIntegerType::EmitCppMarshalling(const String& parcelName, const String&
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteInt32(%s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
+1 -4
View File
@@ -27,12 +27,9 @@ public:
String EmitJavaType(TypeMode mode, bool isInnerType = false) const override;
void EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const override;
void EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const override;
void EmitCProxyReadVar(const String& parcelName, const String& name, bool isInnerType,
const String& gotoLabel, StringBuilder& sb, const String& prefix) const override;
+9 -9
View File
@@ -129,14 +129,14 @@ String ASTInterfaceType::EmitJavaType(TypeMode mode, bool isInnerType) const
return name_;
}
void ASTInterfaceType::EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void ASTInterfaceType::EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (HdfSBufWriteRemoteService(data, %s->remote) != 0) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -149,10 +149,10 @@ void ASTInterfaceType::EmitCStubReadVar(const String& parcelName, const String&
sb.Append(prefix).AppendFormat("struct HdfRemoteService *%s = HdfSBufReadRemoteService(data);\n",
remoteName.string());
sb.Append(prefix).AppendFormat("if (%s == NULL) {\n", remoteName.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", remoteName.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
sb.Append(prefix).AppendFormat("%s = %sProxyObtain(%s);\n",
name.string(), miName.string(), remoteName.string());
@@ -163,9 +163,9 @@ void ASTInterfaceType::EmitCppWriteVar(const String& parcelName, const String& n
{
sb.Append(prefix).AppendFormat("if (!%s.WriteRemoteObject(%s->AsObject())) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix).Append("}\n");
}
+1 -1
View File
@@ -95,7 +95,7 @@ public:
String EmitJavaType(TypeMode mode, bool isInnerType = false) const override;
void EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const override;
void EmitCStubReadVar(const String& parcelName, const String& name, StringBuilder& sb,
+78 -106
View File
@@ -82,56 +82,28 @@ String ASTListType::EmitJavaType(TypeMode mode, bool isInnerType) const
return String::Format("List<%s>", elementType_->EmitJavaType(mode, true).string());
}
void ASTListType::EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void ASTListType::EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const
{
String lenName = String::Format("%sLen", name.string());
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteUint32(%s, %s)) {\n",
parcelName.string(), lenName.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
sb.Append(prefix).AppendFormat("for (uint32_t i = 0; i < %s; i++) {\n", lenName.string());
String elementName;
String elementReadName;
String elementName = "";
if (elementType_->GetTypeKind() == TypeKind::TYPE_STRUCT
|| elementType_->GetTypeKind() == TypeKind::TYPE_UNION) {
elementName = String::Format("%s[i]", name.string());
elementReadName = "&" + elementName;
elementName = String::Format("&%s[i]", name.string());
} else {
elementName = String::Format("%s[i]", name.string());
elementReadName = elementName;
}
elementType_->EmitCProxyWriteVar(parcelName, elementReadName, gotoLabel, sb, prefix + TAB);
sb.Append(prefix).Append("}\n");
}
void ASTListType::EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteUint32(%s, %sLen)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
sb.Append("\n");
sb.Append(prefix).AppendFormat("for (uint32_t i = 0; i < %sLen; i++) {\n", name.string(), name.string());
String element;
if (elementType_->GetTypeKind() == TypeKind::TYPE_STRUCT
|| elementType_->GetTypeKind() == TypeKind::TYPE_UNION) {
element = String::Format("&%s[i]", name.string());
} else {
element = String::Format("%s[i]", name.string());
}
elementType_->EmitCStubWriteVar(parcelName, element, sb, prefix + TAB);
elementType_->EmitCWriteVar(parcelName, elementName, gotoLabel, sb, prefix + g_tab);
sb.Append(prefix).Append("}\n");
}
@@ -141,51 +113,51 @@ void ASTListType::EmitCProxyReadVar(const String& parcelName, const String& name
String lenName = String::Format("%sLen", name.string());
sb.Append(prefix).AppendFormat("if (!HdfSbufReadUint32(%s, %s)) {\n",
parcelName.string(), lenName.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s size failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n\n");
if (elementType_->GetTypeKind() == TypeKind::TYPE_STRING) {
sb.Append(prefix).AppendFormat("*%s = (%s*)OsalMemAlloc(sizeof(%s) * (*%s));\n",
sb.Append(prefix).AppendFormat("*%s = (%s*)OsalMemCalloc(sizeof(%s) * (*%s));\n",
name.string(), elementType_->EmitCType().string(), elementType_->EmitCType().string(),
lenName.string());
sb.Append(prefix).AppendFormat("if (*%s == NULL) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat("ec = HDF_ERR_MALLOC_FAIL;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).AppendFormat("}\n");
sb.Append(prefix + g_tab).AppendFormat("ec = HDF_ERR_MALLOC_FAIL;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).AppendFormat("}\n\n");
} else {
sb.Append(prefix).AppendFormat("*%s = (%s*)OsalMemCalloc(sizeof(%s) * (*%s));\n",
name.string(), elementType_->EmitCType().string(), elementType_->EmitCType().string(),
lenName.string());
sb.Append(prefix).AppendFormat("if (*%s == NULL) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat("ec = HDF_ERR_MALLOC_FAIL;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).AppendFormat("}\n");
sb.Append(prefix + g_tab).AppendFormat("ec = HDF_ERR_MALLOC_FAIL;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).AppendFormat("}\n\n");
}
sb.Append(prefix).AppendFormat("for (uint32_t i = 0; i < *%s; i++) {\n", lenName.string());
if (elementType_->GetTypeKind() == TypeKind::TYPE_STRING) {
String cpName = String::Format("%sCp", name.string());
elementType_->EmitCProxyReadVar(parcelName, cpName, true, gotoLabel, sb, prefix + TAB);
sb.Append(prefix).Append(TAB).AppendFormat("(*%s)[i] = strdup(%sCp);\n",
elementType_->EmitCProxyReadVar(parcelName, cpName, true, gotoLabel, sb, prefix + g_tab);
sb.Append(prefix).Append(g_tab).AppendFormat("(*%s)[i] = strdup(%sCp);\n",
name.string(), name.string());
} else if (elementType_->GetTypeKind() == TypeKind::TYPE_STRUCT) {
String element = String::Format("&(*%s)[i]", name.string());
elementType_->EmitCProxyReadVar(parcelName, element, true, gotoLabel, sb, prefix + TAB);
elementType_->EmitCProxyReadVar(parcelName, element, true, gotoLabel, sb, prefix + g_tab);
} else if (elementType_->GetTypeKind() == TypeKind::TYPE_UNION) {
String element = String::Format("&(*%s)[i]", name.string());
String elementCp = String::Format("%sElementCp", name.string());
elementType_->EmitCProxyReadVar(parcelName, elementCp, true, gotoLabel, sb, prefix + TAB);
sb.Append(prefix + TAB).AppendFormat("(void)memcpy_s(%s, sizeof(%s), %s, sizeof(%s));\n",
elementType_->EmitCProxyReadVar(parcelName, elementCp, true, gotoLabel, sb, prefix + g_tab);
sb.Append(prefix + g_tab).AppendFormat("(void)memcpy_s(%s, sizeof(%s), %s, sizeof(%s));\n",
element.string(), elementType_->EmitCType().string(), elementCp.string(),
elementType_->EmitCType().string());
} else if (elementType_->GetTypeKind() == TypeKind::TYPE_FILEDESCRIPTOR) {
String element = String::Format("(*%s)[i]", name.string());
elementType_->EmitCProxyReadVar(parcelName, element, true, gotoLabel, sb, prefix + TAB);
elementType_->EmitCProxyReadVar(parcelName, element, true, gotoLabel, sb, prefix + g_tab);
} else {
String element = String::Format("&(*%s)[i]", name.string());
elementType_->EmitCProxyReadVar(parcelName, element, true, gotoLabel, sb, prefix + TAB);
elementType_->EmitCProxyReadVar(parcelName, element, true, gotoLabel, sb, prefix + g_tab);
}
sb.Append(prefix).Append("}\n");
}
@@ -196,54 +168,54 @@ void ASTListType::EmitCStubReadVar(const String& parcelName, const String& name,
String lenName = String::Format("%sLen", name.string());
sb.Append(prefix).AppendFormat("if (!HdfSbufReadUint32(%s, &%s)) {\n",
parcelName.string(), lenName.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s size failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n\n");
sb.Append(prefix).AppendFormat("if (%s > 0) {\n", lenName.string());
if (elementType_->GetTypeKind() == TypeKind::TYPE_STRING) {
sb.Append(prefix + TAB).AppendFormat("%s = (%s*)OsalMemAlloc(sizeof(%s) * (%s));\n", name.string(),
sb.Append(prefix + g_tab).AppendFormat("%s = (%s*)OsalMemCalloc(sizeof(%s) * (%s));\n", name.string(),
elementType_->EmitCType().string(), elementType_->EmitCType().string(), lenName.string());
sb.Append(prefix + TAB).AppendFormat("if (%s == NULL) {\n", name.string());
sb.Append(prefix + TAB + TAB).AppendFormat("ec = HDF_ERR_MALLOC_FAIL;\n");
sb.Append(prefix + TAB + TAB).AppendFormat("goto errors;\n");
sb.Append(prefix + TAB).AppendFormat("}\n");
sb.Append(prefix + g_tab).AppendFormat("if (%s == NULL) {\n", name.string());
sb.Append(prefix + g_tab + g_tab).AppendFormat("ec = HDF_ERR_MALLOC_FAIL;\n");
sb.Append(prefix + g_tab + g_tab).AppendFormat("goto errors;\n");
sb.Append(prefix + g_tab).AppendFormat("}\n\n");
} else {
sb.Append(prefix + TAB).AppendFormat("%s = (%s*)OsalMemCalloc(sizeof(%s) * (%s));\n",
sb.Append(prefix + g_tab).AppendFormat("%s = (%s*)OsalMemCalloc(sizeof(%s) * (%s));\n",
name.string(), elementType_->EmitCType().string(), elementType_->EmitCType().string(),
lenName.string());
sb.Append(prefix + TAB).AppendFormat("if (%s == NULL) {\n", name.string());
sb.Append(prefix + TAB + TAB).AppendFormat("ec = HDF_ERR_MALLOC_FAIL;\n");
sb.Append(prefix + TAB + TAB).AppendFormat("goto errors;\n");
sb.Append(prefix + TAB).AppendFormat("}\n");
sb.Append(prefix + g_tab).AppendFormat("if (%s == NULL) {\n", name.string());
sb.Append(prefix + g_tab + g_tab).AppendFormat("ec = HDF_ERR_MALLOC_FAIL;\n");
sb.Append(prefix + g_tab + g_tab).AppendFormat("goto errors;\n");
sb.Append(prefix + g_tab).AppendFormat("}\n\n");
}
sb.Append(prefix + TAB).AppendFormat("for (uint32_t i = 0; i < %s; i++) {\n", lenName.string());
sb.Append(prefix + g_tab).AppendFormat("for (uint32_t i = 0; i < %s; i++) {\n", lenName.string());
if (elementType_->GetTypeKind() == TypeKind::TYPE_STRING) {
String element = String::Format("%sCp", name.string());
elementType_->EmitCStubReadVar(parcelName, element, sb, prefix + TAB + TAB);
sb.Append(prefix + TAB + TAB).AppendFormat("%s[i] = strdup(%sCp);\n", name.string(), name.string());
elementType_->EmitCStubReadVar(parcelName, element, sb, prefix + g_tab + g_tab);
sb.Append(prefix + g_tab + g_tab).AppendFormat("%s[i] = strdup(%sCp);\n", name.string(), name.string());
} else if (elementType_->GetTypeKind() == TypeKind::TYPE_STRUCT) {
String element = String::Format("&%s[i]", name.string());
elementType_->EmitCStubReadVar(parcelName, element, sb, prefix + TAB + TAB);
elementType_->EmitCStubReadVar(parcelName, element, sb, prefix + g_tab + g_tab);
} else if (elementType_->GetTypeKind() == TypeKind::TYPE_UNION) {
String element = String::Format("%s[i]", name.string());
String elementCp = String::Format("%sElementCp", name.string());
elementType_->EmitCStubReadVar(parcelName, elementCp, sb, prefix + TAB + TAB);
sb.Append(prefix + TAB + TAB).AppendFormat("(void)memcpy_s(&%s, sizeof(%s), %s, sizeof(%s));\n",
elementType_->EmitCStubReadVar(parcelName, elementCp, sb, prefix + g_tab + g_tab);
sb.Append(prefix + g_tab + g_tab).AppendFormat("(void)memcpy_s(&%s, sizeof(%s), %s, sizeof(%s));\n",
element.string(), elementType_->EmitCType().string(), elementCp.string(),
elementType_->EmitCType().string());
} else if (elementType_->GetTypeKind() == TypeKind::TYPE_FILEDESCRIPTOR) {
String element = String::Format("%s[i]", name.string());
elementType_->EmitCStubReadVar(parcelName, element, sb, prefix + TAB + TAB);
elementType_->EmitCStubReadVar(parcelName, element, sb, prefix + g_tab + g_tab);
} else {
String element = String::Format("&%s[i]", name.string());
elementType_->EmitCStubReadVar(parcelName, element, sb, prefix + TAB + TAB);
elementType_->EmitCStubReadVar(parcelName, element, sb, prefix + g_tab + g_tab);
}
sb.Append(prefix + TAB).Append("}\n");
sb.Append(prefix + g_tab).Append("}\n");
sb.Append(prefix).Append("}\n");
}
@@ -251,14 +223,14 @@ void ASTListType::EmitCppWriteVar(const String& parcelName, const String& name,
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteUint32(%s.size())) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s.size() failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix).Append("}\n");
String elementName = String::Format("it%d", innerLevel++);
sb.Append(prefix).AppendFormat("for (auto %s : %s) {\n", elementName.string(), name.string());
elementType_->EmitCppWriteVar(parcelName, elementName, sb, prefix + TAB, innerLevel);
elementType_->EmitCppWriteVar(parcelName, elementName, sb, prefix + g_tab, innerLevel);
sb.Append(prefix).Append("}\n");
}
@@ -273,22 +245,22 @@ void ASTListType::EmitCppReadVar(const String& parcelName, const String& name, S
innerLevel, innerLevel, name.string(), innerLevel);
String valueName = String::Format("value%d", innerLevel++);
elementType_->EmitCppReadVar(parcelName, valueName, sb, prefix + TAB, true, innerLevel);
sb.Append(prefix + TAB).AppendFormat("%s.push_back(%s);\n", name.string(), valueName.string());
elementType_->EmitCppReadVar(parcelName, valueName, sb, prefix + g_tab, true, innerLevel);
sb.Append(prefix + g_tab).AppendFormat("%s.push_back(%s);\n", name.string(), valueName.string());
sb.Append(prefix).Append("}\n");
}
void ASTListType::EmitCMarshalling(const String& name, StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteUint32(data, %sLen)) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %sLen failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
sb.Append(prefix).AppendFormat("for (uint32_t i = 0; i < %sLen; i++) {\n", name.string());
String elementName = String::Format("(%s)[i]", name.string());
elementType_->EmitCMarshalling(elementName, sb, prefix + TAB);
elementType_->EmitCMarshalling(elementName, sb, prefix + g_tab);
sb.Append(prefix).Append("}\n");
}
@@ -297,40 +269,40 @@ void ASTListType::EmitCUnMarshalling(const String& name, StringBuilder& sb, cons
{
String lenName = String::Format("%sLen", name.string());
sb.Append(prefix).AppendFormat("if (!HdfSbufReadUint32(data, &%s)) {\n", lenName.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", lenName.string());
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
sb.Append(prefix).AppendFormat("if (%s > 0) {\n", lenName.string());
String newPrefix = prefix + TAB;
String newPrefix = prefix + g_tab;
sb.Append(newPrefix).AppendFormat("%s = (%s*)OsalMemCalloc(sizeof(%s) * %s);\n",
name.string(), elementType_->EmitCType().string(), elementType_->EmitCType().string(), lenName.string());
sb.Append(newPrefix).AppendFormat("if (%s == NULL) {\n", name.string());
sb.Append(newPrefix + TAB).AppendFormat("goto errors;\n");
sb.Append(newPrefix + g_tab).AppendFormat("goto errors;\n");
sb.Append(newPrefix).Append("}\n");
freeObjStatements.push_back(String::Format("OsalMemFree(%s);\n", name.string()));
sb.Append(newPrefix).AppendFormat("for (uint32_t i = 0; i < %s; i++) {\n", lenName.string());
if (elementType_->GetTypeKind() == TypeKind::TYPE_STRING) {
String element = String::Format("%sElement", name.string());
elementType_->EmitCUnMarshalling(element, sb, newPrefix + TAB, freeObjStatements);
sb.Append(newPrefix).Append(TAB).AppendFormat("%s[i] = strdup(%s);\n",
elementType_->EmitCUnMarshalling(element, sb, newPrefix + g_tab, freeObjStatements);
sb.Append(newPrefix).Append(g_tab).AppendFormat("%s[i] = strdup(%s);\n",
name.string(), element.string());
} else if (elementType_->GetTypeKind() == TypeKind::TYPE_STRUCT) {
String element = String::Format("&%s[i]", name.string());
elementType_->EmitCUnMarshalling(element, sb, newPrefix + TAB, freeObjStatements);
elementType_->EmitCUnMarshalling(element, sb, newPrefix + g_tab, freeObjStatements);
} else if (elementType_->GetTypeKind() == TypeKind::TYPE_UNION) {
String element = String::Format("%s[i]", name.string());
String elementCp = String::Format("%sElementCp", name.string());
elementType_->EmitCUnMarshalling(elementCp, sb, newPrefix + TAB, freeObjStatements);
sb.Append(newPrefix + TAB).AppendFormat("(void)memcpy_s(&%s, sizeof(%s), %s, sizeof(%s));\n",
elementType_->EmitCUnMarshalling(elementCp, sb, newPrefix + g_tab, freeObjStatements);
sb.Append(newPrefix + g_tab).AppendFormat("(void)memcpy_s(&%s, sizeof(%s), %s, sizeof(%s));\n",
element.string(), elementType_->EmitCType().string(), elementCp.string(),
elementType_->EmitCType().string());
} else {
String element = String::Format("%s[i]", name.string());
elementType_->EmitCUnMarshalling(element, sb, newPrefix + TAB, freeObjStatements);
elementType_->EmitCUnMarshalling(element, sb, newPrefix + g_tab, freeObjStatements);
}
sb.Append(newPrefix).Append("}\n");
sb.Append(prefix).Append("}\n");
@@ -341,14 +313,14 @@ void ASTListType::EmitCppMarshalling(const String& parcelName, const String& nam
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteUint32(%s.size())) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s.size failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
String elementName = String::Format("it%d", innerLevel++);
sb.Append(prefix).AppendFormat("for (auto %s : %s) {\n", elementName.string(), name.string());
elementType_->EmitCppMarshalling(parcelName, elementName, sb, prefix + TAB, innerLevel);
elementType_->EmitCppMarshalling(parcelName, elementName, sb, prefix + g_tab, innerLevel);
sb.Append(prefix).Append("}\n");
}
@@ -367,22 +339,22 @@ void ASTListType::EmitCppUnMarshalling(const String& parcelName, const String& n
String valueName = String::Format("value%d", innerLevel++);
if (elementType_->GetTypeKind() == TypeKind::TYPE_STRUCT) {
sb.Append(prefix + TAB).AppendFormat("%s %s;\n",
sb.Append(prefix + g_tab).AppendFormat("%s %s;\n",
elementType_->EmitCppType().string(), valueName.string());
elementType_->EmitCppUnMarshalling(parcelName, valueName, sb, prefix + TAB, true, innerLevel);
sb.Append(prefix + TAB).AppendFormat("%s.push_back(%s);\n", name.string(), valueName.string());
elementType_->EmitCppUnMarshalling(parcelName, valueName, sb, prefix + g_tab, true, innerLevel);
sb.Append(prefix + g_tab).AppendFormat("%s.push_back(%s);\n", name.string(), valueName.string());
} else if (elementType_->GetTypeKind() == TypeKind::TYPE_UNION) {
sb.Append(prefix + TAB).AppendFormat("%s %s;\n",
sb.Append(prefix + g_tab).AppendFormat("%s %s;\n",
elementType_->EmitCppType().string(), valueName.string());
String cpName = String::Format("%sCp", valueName.string());
elementType_->EmitCppUnMarshalling(parcelName, cpName, sb, prefix + TAB, true, innerLevel);
sb.Append(prefix + TAB).AppendFormat("(void)memcpy_s(&%s, sizeof(%s), %s, sizeof(%s));\n",
elementType_->EmitCppUnMarshalling(parcelName, cpName, sb, prefix + g_tab, true, innerLevel);
sb.Append(prefix + g_tab).AppendFormat("(void)memcpy_s(&%s, sizeof(%s), %s, sizeof(%s));\n",
valueName.string(), elementType_->EmitCppType().string(), cpName.string(),
elementType_->EmitCppType().string());
sb.Append(prefix + TAB).AppendFormat("%s.push_back(%s);\n", name.string(), valueName.string());
sb.Append(prefix + g_tab).AppendFormat("%s.push_back(%s);\n", name.string(), valueName.string());
} else {
elementType_->EmitCppUnMarshalling(parcelName, valueName, sb, prefix + TAB, true, innerLevel);
sb.Append(prefix + TAB).AppendFormat("%s.push_back(%s);\n", name.string(), valueName.string());
elementType_->EmitCppUnMarshalling(parcelName, valueName, sb, prefix + g_tab, true, innerLevel);
sb.Append(prefix + g_tab).AppendFormat("%s.push_back(%s);\n", name.string(), valueName.string());
}
sb.Append(prefix).Append("}\n");
}
+1 -4
View File
@@ -38,12 +38,9 @@ public:
String EmitJavaType(TypeMode mode, bool isInnerType = false) const override;
void EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const override;
void EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const override;
void EmitCProxyReadVar(const String& parcelName, const String& name, bool isInnerType,
const String& gotoLabel, StringBuilder& sb, const String& prefix) const override;
+19 -31
View File
@@ -62,27 +62,15 @@ String ASTLongType::EmitJavaType(TypeMode mode, bool isInnerType) const
return isInnerType ? "Long" : "long";
}
void ASTLongType::EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void ASTLongType::EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteInt64(%s, %s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
void ASTLongType::EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteInt64(%s, %s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -90,10 +78,10 @@ void ASTLongType::EmitCProxyReadVar(const String& parcelName, const String& name
const String& gotoLabel, StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadInt64(%s, %s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -101,10 +89,10 @@ void ASTLongType::EmitCStubReadVar(const String& parcelName, const String& name,
const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadInt64(%s, %s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -112,9 +100,9 @@ void ASTLongType::EmitCppWriteVar(const String& parcelName, const String& name,
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteInt64(%s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix).Append("}\n");
}
@@ -132,9 +120,9 @@ void ASTLongType::EmitCppReadVar(const String& parcelName, const String& name, S
void ASTLongType::EmitCMarshalling(const String& name, StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteInt64(data, %s)) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
@@ -142,10 +130,10 @@ void ASTLongType::EmitCUnMarshalling(const String& name, StringBuilder& sb, cons
std::vector<String>& freeObjStatements) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadInt64(data, &%s)) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
EmitFreeStatements(freeObjStatements, sb, prefix + TAB);
sb.Append(prefix + TAB).Append("goto errors;\n");
EmitFreeStatements(freeObjStatements, sb, prefix + g_tab);
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -153,9 +141,9 @@ void ASTLongType::EmitCppMarshalling(const String& parcelName, const String& nam
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteInt64(%s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
+1 -4
View File
@@ -27,12 +27,9 @@ public:
String EmitJavaType(TypeMode mode, bool isInnerType = false) const override;
void EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const override;
void EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const override;
void EmitCProxyReadVar(const String& parcelName, const String& name, bool isInnerType,
const String& gotoLabel, StringBuilder& sb, const String& prefix) const override;
+14 -14
View File
@@ -61,17 +61,17 @@ void ASTMapType::EmitCppWriteVar(const String& parcelName, const String& name, S
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteUint32(%s.size())) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix).Append("}\n");
String elementName = String::Format("it%d", innerLevel++);
sb.Append(prefix).AppendFormat("for (auto %s : %s) {\n", elementName.string(), name.string());
String keyName = String::Format("(%s.first)", elementName.string());
String valueName = String::Format("(%s.second)", elementName.string());
keyType_->EmitCppWriteVar(parcelName, keyName, sb, prefix + TAB, innerLevel);
valueType_->EmitCppWriteVar(parcelName, valueName, sb, prefix + TAB, innerLevel);
keyType_->EmitCppWriteVar(parcelName, keyName, sb, prefix + g_tab, innerLevel);
valueType_->EmitCppWriteVar(parcelName, valueName, sb, prefix + g_tab, innerLevel);
sb.Append(prefix).Append("}\n");
}
@@ -87,9 +87,9 @@ void ASTMapType::EmitCppReadVar(const String& parcelName, const String& name, St
String KeyName = String::Format("key%d", innerLevel);
String valueName = String::Format("value%d", innerLevel);
innerLevel++;
keyType_->EmitCppReadVar(parcelName, KeyName, sb, prefix + TAB, true, innerLevel);
valueType_->EmitCppReadVar(parcelName, valueName, sb, prefix + TAB, true, innerLevel);
sb.Append(prefix + TAB).AppendFormat("%s[%s] = %s;\n", name.string(), KeyName.string(), valueName.string());
keyType_->EmitCppReadVar(parcelName, KeyName, sb, prefix + g_tab, true, innerLevel);
valueType_->EmitCppReadVar(parcelName, valueName, sb, prefix + g_tab, true, innerLevel);
sb.Append(prefix + g_tab).AppendFormat("%s[%s] = %s;\n", name.string(), KeyName.string(), valueName.string());
sb.Append(prefix).Append("}\n");
}
@@ -97,17 +97,17 @@ void ASTMapType::EmitCppMarshalling(const String& parcelName, const String& name
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteUint32(%s.size())) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s.size failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
String elementName = String::Format("it%d", innerLevel++);
sb.Append(prefix).AppendFormat("for (auto %s : %s) {\n", elementName.string(), name.string());
String keyName = String::Format("(%s.first)", elementName.string());
String valName = String::Format("(%s.second)", elementName.string());
keyType_->EmitCppMarshalling(parcelName, keyName, sb, prefix + TAB, innerLevel);
valueType_->EmitCppMarshalling(parcelName, valName, sb, prefix + TAB, innerLevel);
keyType_->EmitCppMarshalling(parcelName, keyName, sb, prefix + g_tab, innerLevel);
valueType_->EmitCppMarshalling(parcelName, valName, sb, prefix + g_tab, innerLevel);
sb.Append(prefix).Append("}\n");
}
@@ -123,9 +123,9 @@ void ASTMapType::EmitCppUnMarshalling(const String& parcelName, const String& na
String KeyName = String::Format("key%d", innerLevel);
String valueName = String::Format("value%d", innerLevel);
innerLevel++;
keyType_->EmitCppUnMarshalling(parcelName, KeyName, sb, prefix + TAB, true, innerLevel);
valueType_->EmitCppUnMarshalling(parcelName, valueName, sb, prefix + TAB, true, innerLevel);
sb.Append(prefix + TAB).AppendFormat("%s[%s] = %s;\n",
keyType_->EmitCppUnMarshalling(parcelName, KeyName, sb, prefix + g_tab, true, innerLevel);
valueType_->EmitCppUnMarshalling(parcelName, valueName, sb, prefix + g_tab, true, innerLevel);
sb.Append(prefix + g_tab).AppendFormat("%s[%s] = %s;\n",
name.string(), KeyName.string(), valueName.string());
sb.Append(prefix).Append("}\n");
}
+11
View File
@@ -205,5 +205,16 @@ String ASTParameter::EmitJavaLocalVar()
{
return "";
}
void ASTParameter::EmitCWriteVar(const String& parcelName, const String& gotoLabel, StringBuilder& sb,
const String& prefix) const
{
if (type_ == nullptr) {
return;
}
type_->EmitCWriteVar(parcelName, name_, gotoLabel, sb, prefix);
}
} // namespace HDI
} // namespace OHOS
+2
View File
@@ -67,6 +67,8 @@ public:
String EmitCppLocalVar();
String EmitJavaLocalVar();
void EmitCWriteVar(const String& parcelName, const String& gotoLabel, StringBuilder& sb, const String& prefix) const;
private:
String name_;
AutoPtr<ASTType> type_ = nullptr;
+4 -4
View File
@@ -85,9 +85,9 @@ void ASTSequenceableType::EmitCppWriteVar(const String& parcelName, const String
{
sb.Append(prefix).AppendFormat("if (!%s.WriteStrongParcelable(%s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix).Append("}\n");
}
@@ -108,9 +108,9 @@ void ASTSequenceableType::EmitCppMarshalling(const String& parcelName, const Str
{
sb.Append(prefix).AppendFormat("if (!%s.WriteStrongParcelable(%s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
+19 -31
View File
@@ -62,27 +62,15 @@ String ASTShortType::EmitJavaType(TypeMode mode, bool isInnerType) const
return isInnerType ? "Short" : "short";
}
void ASTShortType::EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void ASTShortType::EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteInt16(%s, %s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
void ASTShortType::EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteInt16(%s, %s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -90,10 +78,10 @@ void ASTShortType::EmitCProxyReadVar(const String& parcelName, const String& nam
const String& gotoLabel, StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadInt16(%s, %s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -101,10 +89,10 @@ void ASTShortType::EmitCStubReadVar(const String& parcelName, const String& name
const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadInt16(%s, %s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -112,9 +100,9 @@ void ASTShortType::EmitCppWriteVar(const String& parcelName, const String& name,
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteInt16(%s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix).Append("}\n");
}
@@ -133,9 +121,9 @@ void ASTShortType::EmitCppReadVar(const String& parcelName, const String& name,
void ASTShortType::EmitCMarshalling(const String& name, StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteInt16(data, %s)) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
@@ -143,10 +131,10 @@ void ASTShortType::EmitCUnMarshalling(const String& name, StringBuilder& sb, con
std::vector<String>& freeObjStatements) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadInt16(data, &%s)) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
EmitFreeStatements(freeObjStatements, sb, prefix + TAB);
sb.Append(prefix + TAB).Append("goto errors;\n");
EmitFreeStatements(freeObjStatements, sb, prefix + g_tab);
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -154,9 +142,9 @@ void ASTShortType::EmitCppMarshalling(const String& parcelName, const String& na
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteInt16(%s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
+1 -4
View File
@@ -27,12 +27,9 @@ public:
String EmitJavaType(TypeMode mode, bool isInnerType = false) const override;
void EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const override;
void EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const override;
void EmitCProxyReadVar(const String& parcelName, const String& name, bool isInnerType,
const String& gotoLabel, StringBuilder& sb, const String& prefix) const override;
+19 -31
View File
@@ -62,27 +62,15 @@ String ASTStringType::EmitJavaType(TypeMode mode, bool isInnerType) const
return "String";
}
void ASTStringType::EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void ASTStringType::EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteString(%s, %s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
void ASTStringType::EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteString(%s, %s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -92,10 +80,10 @@ void ASTStringType::EmitCProxyReadVar(const String& parcelName, const String& na
sb.Append(prefix).AppendFormat("const char *%s = HdfSbufReadString(%s);\n",
name.string(), parcelName.string());
sb.Append(prefix).AppendFormat("if (%s == NULL) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -105,10 +93,10 @@ void ASTStringType::EmitCStubReadVar(const String& parcelName, const String& nam
sb.Append(prefix).AppendFormat("const char *%s = HdfSbufReadString(%s);\n",
name.string(), parcelName.string());
sb.Append(prefix).AppendFormat("if (%s == NULL) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -116,9 +104,9 @@ void ASTStringType::EmitCppWriteVar(const String& parcelName, const String& name
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteString(%s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix).Append("}\n");
}
@@ -136,9 +124,9 @@ void ASTStringType::EmitCppReadVar(const String& parcelName, const String& name,
void ASTStringType::EmitCMarshalling(const String& name, StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteString(data, %s)) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
@@ -147,10 +135,10 @@ void ASTStringType::EmitCUnMarshalling(const String& name, StringBuilder& sb, co
{
sb.Append(prefix).AppendFormat("const char *%s = HdfSbufReadString(data);\n", name.string());
sb.Append(prefix).AppendFormat("if (%s == NULL) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
EmitFreeStatements(freeObjStatements, sb, prefix + TAB);
sb.Append(prefix + TAB).Append("goto errors;\n");
EmitFreeStatements(freeObjStatements, sb, prefix + g_tab);
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -158,9 +146,9 @@ void ASTStringType::EmitCppMarshalling(const String& parcelName, const String& n
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteString(%s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
+1 -4
View File
@@ -27,12 +27,9 @@ public:
String EmitJavaType(TypeMode mode, bool isInnerType = false) const override;
void EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const override;
void EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const override;
void EmitCProxyReadVar(const String& parcelName, const String& name, bool isInnerType,
const String& gotoLabel, StringBuilder& sb, const String& prefix) const override;
+22 -34
View File
@@ -147,27 +147,15 @@ String ASTStructType::EmitJavaTypeDecl() const
return sb.ToString();
}
void ASTStructType::EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void ASTStructType::EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!%sBlockMarshalling(%s, %s)) {\n",
name_.string(), parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
void ASTStructType::EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!%sBlockMarshalling(%s, %s)) {\n",
name_.string(), parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -176,10 +164,10 @@ void ASTStructType::EmitCProxyReadVar(const String& parcelName, const String& na
{
sb.Append(prefix).AppendFormat("if (!%sBlockUnmarshalling(%s, %s)) {\n",
name_.string(), parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -188,10 +176,10 @@ void ASTStructType::EmitCStubReadVar(const String& parcelName, const String& nam
{
sb.Append(prefix).AppendFormat("if (!%sBlockUnmarshalling(%s, %s)) {\n",
name_.string(), parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).AppendFormat("}\n");
}
@@ -200,9 +188,9 @@ void ASTStructType::EmitCppWriteVar(const String& parcelName, const String& name
{
sb.Append(prefix).AppendFormat("if (!%sBlockMarshalling(%s, %s)) {\n",
EmitCppType().string(), parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix).Append("}\n");
}
@@ -214,8 +202,8 @@ void ASTStructType::EmitCppReadVar(const String& parcelName, const String& name,
}
sb.Append(prefix).AppendFormat("if (!%sBlockUnmarshalling(%s, %s)) {\n",
name_.string(), parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat("HDF_LOGE(\"%%s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("HDF_LOGE(\"%%s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + g_tab).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix).Append("}\n");
}
@@ -223,9 +211,9 @@ void ASTStructType::EmitCMarshalling(const String& name, StringBuilder& sb, cons
{
sb.Append(prefix).AppendFormat("if (!%sBlockMarshalling(data, &%s)) {\n",
name_.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
@@ -234,9 +222,9 @@ void ASTStructType::EmitCUnMarshalling(const String& name, StringBuilder& sb, co
{
sb.Append(prefix).AppendFormat("if (!%sBlockUnmarshalling(data, %s)) {\n",
name_.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -245,9 +233,9 @@ void ASTStructType::EmitCppMarshalling(const String& parcelName, const String& n
{
sb.Append(prefix).AppendFormat("if (!%sBlockMarshalling(%s, %s)) {\n",
name_.string(), parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
@@ -256,9 +244,9 @@ void ASTStructType::EmitCppUnMarshalling(const String& parcelName, const String&
{
sb.Append(prefix).AppendFormat("if (!%sBlockUnmarshalling(data, %s)) {\n",
EmitCppType().string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
} // namespace HDI
+1 -4
View File
@@ -92,12 +92,9 @@ public:
String EmitJavaTypeDecl() const;
void EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const override;
void EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const override;
void EmitCProxyReadVar(const String& parcelName, const String& name, bool isInnerType,
const String& gotoLabel, StringBuilder& sb, const String& prefix) const override;
+2 -8
View File
@@ -10,7 +10,7 @@
namespace OHOS {
namespace HDI {
const char* ASTType::TAB = " ";
const char* g_tab = " ";
void ASTType::SetName(const String& name)
{
@@ -172,18 +172,12 @@ String ASTType::EmitJavaType(TypeMode mode, bool isInnerType) const
return "unknow";
}
void ASTType::EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void ASTType::EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("//Writeing \"%s\" type of data is not supported\n", name_.string());
}
void ASTType::EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const
{
sb.Append(prefix).AppendFormat("//Writing \"%s\" type of data is not supported\n", name_.string());
}
void ASTType::EmitCProxyReadVar(const String& parcelName, const String& name, bool isInnerType,
const String& gotoLabel, StringBuilder& sb, const String& prefix) const
{
+3 -5
View File
@@ -16,6 +16,8 @@
namespace OHOS {
namespace HDI {
extern const char* g_tab;
enum class TypeKind {
TYPE_UNKNOWN = 0,
TYPE_BOOLEAN,
@@ -121,12 +123,9 @@ public:
virtual String EmitJavaType(TypeMode mode, bool isInnerType = false) const;
virtual void EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
virtual void EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const;
virtual void EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const;
virtual void EmitCProxyReadVar(const String& parcelName, const String& name, bool isInnerType,
const String& gotoLabel, StringBuilder& sb, const String& prefix) const;
@@ -153,7 +152,6 @@ public:
virtual void EmitCppUnMarshalling(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix, bool emitType, unsigned int innerLevel = 0) const;
protected:
static const char* TAB;
String name_;
AutoPtr<ASTNamespace> namespace_;
TypeKind typeKind_;
+19 -31
View File
@@ -63,27 +63,15 @@ String ASTUcharType::EmitJavaType(TypeMode mode, bool isInnerType) const
return "/";
}
void ASTUcharType::EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void ASTUcharType::EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteUint8(%s, %s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
void ASTUcharType::EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteUint8(%s, %s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -91,10 +79,10 @@ void ASTUcharType::EmitCProxyReadVar(const String& parcelName, const String& nam
const String& gotoLabel, StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadUint8(%s, %s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -102,10 +90,10 @@ void ASTUcharType::EmitCStubReadVar(const String& parcelName, const String& name
const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadUint8(%s, %s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -113,9 +101,9 @@ void ASTUcharType::EmitCppWriteVar(const String& parcelName, const String& name,
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteUint8(%s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix).Append("}\n");
}
@@ -133,9 +121,9 @@ void ASTUcharType::EmitCppReadVar(const String& parcelName, const String& name,
void ASTUcharType::EmitCMarshalling(const String& name, StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteUint8(data, %s)) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
@@ -143,10 +131,10 @@ void ASTUcharType::EmitCUnMarshalling(const String& name, StringBuilder& sb, con
std::vector<String>& freeObjStatements) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadUint8(data, &%s)) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
EmitFreeStatements(freeObjStatements, sb, prefix + TAB);
sb.Append(prefix + TAB).Append("goto errors;\n");
EmitFreeStatements(freeObjStatements, sb, prefix + g_tab);
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -154,9 +142,9 @@ void ASTUcharType::EmitCppMarshalling(const String& parcelName, const String& na
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteUint8(%s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
+1 -4
View File
@@ -27,12 +27,9 @@ public:
String EmitJavaType(TypeMode mode, bool isInnerType = false) const override;
void EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const override;
void EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const override;
void EmitCProxyReadVar(const String& parcelName, const String& name, bool isInnerType,
const String& gotoLabel, StringBuilder& sb, const String& prefix) const override;
+19 -31
View File
@@ -63,27 +63,15 @@ String ASTUintType::EmitJavaType(TypeMode mode, bool isInnerType) const
return "/";
}
void ASTUintType::EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void ASTUintType::EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteUint32(%s, %s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
void ASTUintType::EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteUint32(%s, %s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -91,10 +79,10 @@ void ASTUintType::EmitCProxyReadVar(const String& parcelName, const String& name
const String& gotoLabel, StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadUint32(%s, %s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -102,10 +90,10 @@ void ASTUintType::EmitCStubReadVar(const String& parcelName, const String& name,
const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadUint32(%s, %s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -113,9 +101,9 @@ void ASTUintType::EmitCppWriteVar(const String& parcelName, const String& name,
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteUint32(%s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix).Append("}\n");
}
@@ -133,9 +121,9 @@ void ASTUintType::EmitCppReadVar(const String& parcelName, const String& name, S
void ASTUintType::EmitCMarshalling(const String& name, StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteUint32(data, %s)) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
@@ -143,10 +131,10 @@ void ASTUintType::EmitCUnMarshalling(const String& name, StringBuilder& sb, cons
std::vector<String>& freeObjStatements) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadUint32(data, &%s)) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
EmitFreeStatements(freeObjStatements, sb, prefix + TAB);
sb.Append(prefix + TAB).Append("goto errors;\n");
EmitFreeStatements(freeObjStatements, sb, prefix + g_tab);
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -154,9 +142,9 @@ void ASTUintType::EmitCppMarshalling(const String& parcelName, const String& nam
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteUint32(%s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
+1 -4
View File
@@ -27,12 +27,9 @@ public:
String EmitJavaType(TypeMode mode, bool isInnerType = false) const override;
void EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const override;
void EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const override;
void EmitCProxyReadVar(const String& parcelName, const String& name, bool isInnerType,
const String& gotoLabel, StringBuilder& sb, const String& prefix) const override;
+19 -31
View File
@@ -63,27 +63,15 @@ String ASTUlongType::EmitJavaType(TypeMode mode, bool isInnerType) const
return "/";
}
void ASTUlongType::EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void ASTUlongType::EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteUint64(%s, %s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
void ASTUlongType::EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteUint64(%s, %s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -91,10 +79,10 @@ void ASTUlongType::EmitCProxyReadVar(const String& parcelName, const String& nam
const String& gotoLabel, StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadUint64(%s, %s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -102,10 +90,10 @@ void ASTUlongType::EmitCStubReadVar(const String& parcelName, const String& name
const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadUint64(%s, %s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -113,9 +101,9 @@ void ASTUlongType::EmitCppWriteVar(const String& parcelName, const String& name,
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteUint64(%s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix).Append("}\n");
}
@@ -133,9 +121,9 @@ void ASTUlongType::EmitCppReadVar(const String& parcelName, const String& name,
void ASTUlongType::EmitCMarshalling(const String& name, StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteUint64(data, %s)) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
@@ -143,10 +131,10 @@ void ASTUlongType::EmitCUnMarshalling(const String& name, StringBuilder& sb, con
std::vector<String>& freeObjStatements) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadUint64(data, &%s)) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
EmitFreeStatements(freeObjStatements, sb, prefix + TAB);
sb.Append(prefix + TAB).Append("goto errors;\n");
EmitFreeStatements(freeObjStatements, sb, prefix + g_tab);
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -154,9 +142,9 @@ void ASTUlongType::EmitCppMarshalling(const String& parcelName, const String& na
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteUint64(%s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
+1 -4
View File
@@ -27,12 +27,9 @@ public:
String EmitJavaType(TypeMode mode, bool isInnerType = false) const override;
void EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const override;
void EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const override;
void EmitCProxyReadVar(const String& parcelName, const String& name, bool isInnerType,
const String& gotoLabel, StringBuilder& sb, const String& prefix) const override;
+23 -33
View File
@@ -147,27 +147,15 @@ String ASTUnionType::EmitJavaTypeDecl() const
return sb.ToString();
}
void ASTUnionType::EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void ASTUnionType::EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteUnpadBuffer(%s, (const uint8_t *)%s, sizeof(%s))) {\n",
parcelName.string(), name.string(), EmitCType().string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
void ASTUnionType::EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteUnpadBuffer(%s, (const uint8_t *)%s, sizeof(%s))) {\n",
parcelName.string(), name.string(), EmitCType().string());
sb.Append(prefix + TAB).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -178,8 +166,10 @@ void ASTUnionType::EmitCProxyReadVar(const String& parcelName, const String& nam
EmitCType().string(), name.string(), EmitCType().string(), parcelName.string(),
EmitCType().string());
sb.Append(prefix).AppendFormat("if (%s == NULL) {\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -190,10 +180,10 @@ void ASTUnionType::EmitCStubReadVar(const String& parcelName, const String& name
EmitCType().string(), name.string(), EmitCType().string(), parcelName.string(),
EmitCType().string());
sb.Append(prefix).AppendFormat("if (%s == NULL) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -202,9 +192,9 @@ void ASTUnionType::EmitCppWriteVar(const String& parcelName, const String& name,
{
sb.Append(prefix).AppendFormat("if (!%s.WriteUnpadBuffer((const uint8_t *)&%s, sizeof(%s))) {\n",
parcelName.string(), name.string(), EmitCppType().string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix).Append("}\n");
}
@@ -219,8 +209,8 @@ void ASTUnionType::EmitCppReadVar(const String& parcelName, const String& name,
EmitCppType().string(), name.string(), EmitCppType().string(), parcelName.string(),
EmitCppType().string());
sb.Append(prefix).AppendFormat("if (%sCp == nullptr) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat("HDF_LOGE(\"%%s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("HDF_LOGE(\"%%s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + g_tab).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix).Append("}\n");
sb.Append(prefix).AppendFormat("(void)memcpy_s(&%s, sizeof(%s), %sCp, sizeof(%s));\n",
name.string(), EmitCppType().string(), name.string(), EmitCppType().string());
@@ -230,9 +220,9 @@ void ASTUnionType::EmitCMarshalling(const String& name, StringBuilder& sb, const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteUnpadBuffer(data, (const uint8_t *)&%s, sizeof(%s))) {\n",
name.string(), EmitCType().string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
@@ -242,9 +232,9 @@ void ASTUnionType::EmitCUnMarshalling(const String& name, StringBuilder& sb, con
sb.Append(prefix).AppendFormat("const %s *%s = (const %s *)HdfSbufReadUnpadBuffer(data, sizeof(%s));\n",
EmitCType().string(), name.string(), EmitCType().string(), EmitCType().string());
sb.Append(prefix).AppendFormat("if (%s == NULL) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -253,9 +243,9 @@ void ASTUnionType::EmitCppMarshalling(const String& parcelName, const String& na
{
sb.Append(prefix).AppendFormat("if (!%s.WriteUnpadBuffer((const void*)&%s, sizeof(%s))) {\n",
parcelName.string(), name.string(), EmitCppType().string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
@@ -267,9 +257,9 @@ void ASTUnionType::EmitCppUnMarshalling(const String& parcelName, const String&
EmitCppType().string(), name.string(), EmitCppType().string(), parcelName.string(),
EmitCppType().string());
sb.Append(prefix).AppendFormat("if (%s == nullptr) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
} // namespace HDI
+1 -4
View File
@@ -92,12 +92,9 @@ public:
String EmitJavaTypeDecl() const;
void EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const override;
void EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const override;
void EmitCProxyReadVar(const String& parcelName, const String& name, bool isInnerType,
const String& gotoLabel, StringBuilder& sb, const String& prefix) const override;
+19 -31
View File
@@ -63,27 +63,15 @@ String ASTUshortType::EmitJavaType(TypeMode mode, bool isInnerType) const
return "/";
}
void ASTUshortType::EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void ASTUshortType::EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteUint16(%s, %s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
void ASTUshortType::EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteUint16(%s, %s)) {\n",
parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -91,10 +79,10 @@ void ASTUshortType::EmitCProxyReadVar(const String& parcelName, const String& na
const String& gotoLabel, StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadUint16(%s, %s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
}
@@ -102,10 +90,10 @@ void ASTUshortType::EmitCStubReadVar(const String& parcelName, const String& nam
const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadUint16(%s, %s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -113,9 +101,9 @@ void ASTUshortType::EmitCppWriteVar(const String& parcelName, const String& name
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteUint16(%s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix).Append("}\n");
}
@@ -133,9 +121,9 @@ void ASTUshortType::EmitCppReadVar(const String& parcelName, const String& name,
void ASTUshortType::EmitCMarshalling(const String& name, StringBuilder& sb, const String& prefix) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufWriteUint16(data, %s)) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
@@ -143,10 +131,10 @@ void ASTUshortType::EmitCUnMarshalling(const String& name, StringBuilder& sb, co
std::vector<String>& freeObjStatements) const
{
sb.Append(prefix).AppendFormat("if (!HdfSbufReadUint16(data, &%s)) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: read %s failed!\", __func__);\n", name.string());
EmitFreeStatements(freeObjStatements, sb, prefix + TAB);
sb.Append(prefix + TAB).Append("goto errors;\n");
EmitFreeStatements(freeObjStatements, sb, prefix + g_tab);
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
}
@@ -154,9 +142,9 @@ void ASTUshortType::EmitCppMarshalling(const String& parcelName, const String& n
const String& prefix, unsigned int innerLevel) const
{
sb.Append(prefix).AppendFormat("if (!%s.WriteUint16(%s)) {\n", parcelName.string(), name.string());
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string());
sb.Append(prefix + TAB).Append("return false;\n");
sb.Append(prefix + g_tab).Append("return false;\n");
sb.Append(prefix).Append("}\n");
}
+1 -4
View File
@@ -27,12 +27,9 @@ public:
String EmitJavaType(TypeMode mode, bool isInnerType = false) const override;
void EmitCProxyWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
void EmitCWriteVar(const String& parcelName, const String& name, const String& gotoLabel,
StringBuilder& sb, const String& prefix) const override;
void EmitCStubWriteVar(const String& parcelName, const String& name, StringBuilder& sb,
const String& prefix) const override;
void EmitCProxyReadVar(const String& parcelName, const String& name, bool isInnerType,
const String& gotoLabel, StringBuilder& sb, const String& prefix) const override;
@@ -85,9 +85,9 @@ void CClientInterfaceCodeEmitter::EmitForwardDecls(StringBuilder& sb)
void CClientInterfaceCodeEmitter::EmitInterfaceDecl(StringBuilder& sb)
{
sb.AppendFormat("struct %s {\n", interfaceName_.string());
sb.Append(TAB).Append("struct HdfRemoteService *remote;\n");
sb.Append(g_tab).Append("struct HdfRemoteService *remote;\n");
sb.Append("\n");
EmitInterfaceMethodsDecl(sb, TAB);
EmitInterfaceMethodsDecl(sb, g_tab);
sb.Append("};\n");
if (!isCallbackInterface()) {
sb.Append("\n");
@@ -126,7 +126,7 @@ void CClientInterfaceCodeEmitter::EmitInterfaceMethodDecl(const AutoPtr<ASTMetho
}
paramStr.Append(");");
sb.Append(SpecificationParam(paramStr, prefix + TAB));
sb.Append(SpecificationParam(paramStr, prefix + g_tab));
sb.Append("\n");
}
}
@@ -149,15 +149,15 @@ void CClientProxyCodeEmitter::EmitProxyCallMethodImpl(StringBuilder& sb)
{
sb.AppendFormat("static int32_t %sProxyCall(struct %s *self, int32_t id, struct HdfSBuf *data,\n",
infName_.string(), interfaceName_.string());
sb.Append(TAB).Append("struct HdfSBuf *reply)\n");
sb.Append(g_tab).Append("struct HdfSBuf *reply)\n");
sb.Append("{\n");
sb.Append(TAB).Append("if (self->remote == NULL\n");
sb.Append(TAB).Append(TAB).Append("|| self->remote->dispatcher == NULL\n");
sb.Append(TAB).Append(TAB).Append("|| self->remote->dispatcher->Dispatch == NULL) {\n");
sb.Append(TAB).Append(TAB).Append("HDF_LOGE(\"%{public}s: obj is null\", __func__);\n");
sb.Append(TAB).Append(TAB).Append("return HDF_ERR_INVALID_OBJECT;\n");
sb.Append(TAB).Append("}\n");
sb.Append(TAB).Append("return self->remote->dispatcher->Dispatch(self->remote, id, data, reply);\n");
sb.Append(g_tab).Append("if (self->remote == NULL\n");
sb.Append(g_tab).Append(g_tab).Append("|| self->remote->dispatcher == NULL\n");
sb.Append(g_tab).Append(g_tab).Append("|| self->remote->dispatcher->Dispatch == NULL) {\n");
sb.Append(g_tab).Append(g_tab).Append("HDF_LOGE(\"%{public}s: obj is null\", __func__);\n");
sb.Append(g_tab).Append(g_tab).Append("return HDF_ERR_INVALID_OBJECT;\n");
sb.Append(g_tab).Append("}\n");
sb.Append(g_tab).Append("return self->remote->dispatcher->Dispatch(self->remote, id, data, reply);\n");
sb.Append("}\n");
}
@@ -190,7 +190,7 @@ void CClientProxyCodeEmitter::EmitProxyMethodImpl(const AutoPtr<ASTMethod>& meth
}
paramStr.Append(")");
sb.Append(SpecificationParam(paramStr, TAB));
sb.Append(SpecificationParam(paramStr, g_tab));
sb.Append("\n");
}
EmitProxyMethodBody(method, sb, "");
@@ -200,18 +200,18 @@ void CClientProxyCodeEmitter::EmitProxyMethodBody(const AutoPtr<ASTMethod>& meth
const String& prefix)
{
sb.Append(prefix).Append("{\n");
sb.Append(prefix + TAB).Append("int32_t ec = HDF_FAILURE;\n");
sb.Append(prefix + g_tab).Append("int32_t ec = HDF_FAILURE;\n");
sb.Append("\n");
sb.Append(prefix + TAB).Append("struct HdfSBuf *data = HdfSBufTypedObtain(SBUF_IPC);\n");
sb.Append(prefix + TAB).Append("struct HdfSBuf *reply = HdfSBufTypedObtain(SBUF_IPC);\n");
sb.Append(prefix + g_tab).Append("struct HdfSBuf *data = HdfSBufTypedObtain(SBUF_IPC);\n");
sb.Append(prefix + g_tab).Append("struct HdfSBuf *reply = HdfSBufTypedObtain(SBUF_IPC);\n");
sb.Append("\n");
sb.Append(prefix + TAB).Append("if (data == NULL || reply == NULL) {\n");
sb.Append(prefix + TAB + TAB).Append("HDF_LOGE(\"%{public}s: HdfSubf malloc failed!\", __func__);\n");
sb.Append(prefix + TAB + TAB).Append("ec = HDF_ERR_MALLOC_FAIL;\n");
sb.Append(prefix + TAB + TAB).Append("goto finished;\n");
sb.Append(prefix + TAB).Append("}\n");
sb.Append(prefix + g_tab).Append("if (data == NULL || reply == NULL) {\n");
sb.Append(prefix + g_tab + g_tab).Append("HDF_LOGE(\"%{public}s: HdfSubf malloc failed!\", __func__);\n");
sb.Append(prefix + g_tab + g_tab).Append("ec = HDF_ERR_MALLOC_FAIL;\n");
sb.Append(prefix + g_tab + g_tab).Append("goto finished;\n");
sb.Append(prefix + g_tab).Append("}\n");
sb.Append("\n");
String gotoName = GetGotLabel(method);
@@ -219,24 +219,24 @@ void CClientProxyCodeEmitter::EmitProxyMethodBody(const AutoPtr<ASTMethod>& meth
for (size_t i = 0; i < method->GetParameterNumber(); i++) {
AutoPtr<ASTParameter> param = method->GetParameter(i);
if (param->GetAttribute() == ParamAttr::PARAM_IN) {
EmitWriteProxyMethodParameter(param, "data", gotoName, sb, prefix + TAB);
param->EmitCWriteVar("data", gotoName, sb, prefix + g_tab);
sb.Append("\n");
}
}
sb.Append(prefix + TAB).AppendFormat("ec = %sCall(self, CMD_%s, data, reply);\n",
sb.Append(prefix + g_tab).AppendFormat("ec = %sCall(self, CMD_%s, data, reply);\n",
proxyName_.string(), ConstantName(method->GetName()).string());
sb.Append(prefix + TAB).Append("if (ec != HDF_SUCCESS) {\n");
sb.Append(prefix + TAB + TAB).Append(
sb.Append(prefix + g_tab).Append("if (ec != HDF_SUCCESS) {\n");
sb.Append(prefix + g_tab + g_tab).Append(
"HDF_LOGE(\"%{public}s: call failed! error code is %{public}d\", __func__, ec);\n");
sb.Append(prefix + TAB + TAB).AppendFormat("goto %s;\n", gotoName.string());
sb.Append(prefix + TAB).Append("}\n");
sb.Append(prefix + g_tab + g_tab).AppendFormat("goto %s;\n", gotoName.string());
sb.Append(prefix + g_tab).Append("}\n");
sb.Append("\n");
for (size_t i = 0; i < method->GetParameterNumber(); i++) {
AutoPtr<ASTParameter> param = method->GetParameter(i);
if (param->GetAttribute() == ParamAttr::PARAM_OUT) {
EmitReadProxyMethodParameter(param, "reply", gotoName, sb, prefix + TAB);
EmitReadProxyMethodParameter(param, "reply", gotoName, sb, prefix + g_tab);
sb.Append("\n");
}
}
@@ -244,23 +244,16 @@ void CClientProxyCodeEmitter::EmitProxyMethodBody(const AutoPtr<ASTMethod>& meth
EmitErrorHandle(method, sb, prefix);
sb.Append(prefix).Append("finished:\n");
sb.Append(prefix + TAB).Append("if (data != NULL) {\n");
sb.Append(prefix + TAB + TAB).Append("HdfSBufRecycle(data);\n");
sb.Append(prefix + TAB).Append("}\n");
sb.Append(prefix + TAB).Append("if (reply != NULL) {\n");
sb.Append(prefix + TAB + TAB).Append("HdfSBufRecycle(reply);\n");
sb.Append(prefix + TAB).Append("}\n");
sb.Append(prefix + TAB).Append("return ec;\n");
sb.Append(prefix + g_tab).Append("if (data != NULL) {\n");
sb.Append(prefix + g_tab + g_tab).Append("HdfSBufRecycle(data);\n");
sb.Append(prefix + g_tab).Append("}\n");
sb.Append(prefix + g_tab).Append("if (reply != NULL) {\n");
sb.Append(prefix + g_tab + g_tab).Append("HdfSBufRecycle(reply);\n");
sb.Append(prefix + g_tab).Append("}\n");
sb.Append(prefix + g_tab).Append("return ec;\n");
sb.Append("}\n");
}
void CClientProxyCodeEmitter::EmitWriteProxyMethodParameter(const AutoPtr<ASTParameter>& param,
const String& parcelName, const String& gotoLabel, StringBuilder& sb, const String& prefix)
{
AutoPtr<ASTType> type = param->GetType();
type->EmitCProxyWriteVar(parcelName, param->GetName(), gotoLabel, sb, prefix);
}
void CClientProxyCodeEmitter::EmitReadProxyMethodParameter(const AutoPtr<ASTParameter>& param,
const String& parcelName, const String& gotoLabel, StringBuilder& sb, const String& prefix)
{
@@ -275,8 +268,8 @@ void CClientProxyCodeEmitter::EmitReadProxyMethodParameter(const AutoPtr<ASTPara
sb.Append(prefix).AppendFormat("%s = (%s*)OsalMemAlloc(sizeof(%s));\n",
name.string(), type->EmitCType().string(), type->EmitCType().string());
sb.Append(prefix).AppendFormat("if (%s == NULL) {\n", name.string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_MALLOC_FAIL;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_MALLOC_FAIL;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
type->EmitCProxyReadVar(parcelName, name, false, gotoLabel, sb, prefix);
} else if (type->GetTypeKind() == TypeKind::TYPE_UNION) {
@@ -285,8 +278,8 @@ void CClientProxyCodeEmitter::EmitReadProxyMethodParameter(const AutoPtr<ASTPara
sb.Append(prefix).AppendFormat("*%s = (%s*)OsalMemAlloc(sizeof(%s));\n",
param->GetName().string(), type->EmitCType().string(), type->EmitCType().string());
sb.Append(prefix).AppendFormat("if (*%s == NULL) {\n", param->GetName().string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_MALLOC_FAIL;\n");
sb.Append(prefix + TAB).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_MALLOC_FAIL;\n");
sb.Append(prefix + g_tab).AppendFormat("goto %s;\n", gotoLabel.string());
sb.Append(prefix).Append("}\n");
sb.Append(prefix).AppendFormat("(void)memcpy_s(*%s, sizeof(%s), %s, sizeof(%s));\n",
param->GetName().string(), type->EmitCType().string(), cpName.string(), type->EmitCType().string());
@@ -329,13 +322,13 @@ void CClientProxyCodeEmitter::EmitErrorHandle(const AutoPtr<ASTMethod>& method,
|| paramType->GetTypeKind() == TypeKind::TYPE_STRUCT
|| paramType->GetTypeKind() == TypeKind::TYPE_UNION)) {
if (!errorLabel) {
sb.Append(prefix + TAB).Append("goto finished;\n");
sb.Append(prefix + g_tab).Append("goto finished;\n");
sb.Append("\n");
sb.Append(prefix).Append("errors:\n");
errorLabel = true;
}
EmitError(paramType, param->GetName(), sb, prefix + TAB);
EmitError(paramType, param->GetName(), sb, prefix + g_tab);
sb.Append("\n");
}
}
@@ -348,8 +341,8 @@ void CClientProxyCodeEmitter::EmitError(const AutoPtr<ASTType>& type, const Stri
case TypeKind::TYPE_STRING:
case TypeKind::TYPE_UNION: {
sb.Append(prefix).AppendFormat("if (*%s != NULL) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat("OsalMemFree(*%s);\n", name.string());
sb.Append(prefix + TAB).AppendFormat("*%s = NULL;\n", name.string());
sb.Append(prefix + g_tab).AppendFormat("OsalMemFree(*%s);\n", name.string());
sb.Append(prefix + g_tab).AppendFormat("*%s = NULL;\n", name.string());
sb.Append(prefix).Append("}\n");
break;
}
@@ -362,21 +355,21 @@ void CClientProxyCodeEmitter::EmitError(const AutoPtr<ASTType>& type, const Stri
if (elementType->GetTypeKind() == TypeKind::TYPE_STRING
|| elementType->GetTypeKind() == TypeKind::TYPE_STRUCT) {
sb.Append(prefix + TAB).AppendFormat("for (uint32_t i = 0; i < *%s; i++) {\n", lenName.string());
sb.Append(prefix + g_tab).AppendFormat("for (uint32_t i = 0; i < *%s; i++) {\n", lenName.string());
String elementName = String::Format("(*%s)[i]", name.string());
if (elementType->GetTypeKind() == TypeKind::TYPE_STRING) {
sb.Append(prefix + TAB + TAB).AppendFormat("if (%s != NULL) {\n", elementName.string());
sb.Append(prefix + TAB + TAB + TAB).AppendFormat("OsalMemFree(%s);\n", elementName.string());
sb.Append(prefix + TAB + TAB).Append("}\n");
sb.Append(prefix + g_tab + g_tab).AppendFormat("if (%s != NULL) {\n", elementName.string());
sb.Append(prefix + g_tab + g_tab + g_tab).AppendFormat("OsalMemFree(%s);\n", elementName.string());
sb.Append(prefix + g_tab + g_tab).Append("}\n");
} else {
sb.Append(prefix + TAB + TAB).AppendFormat("%sFree(&%s, false);\n",
sb.Append(prefix + g_tab + g_tab).AppendFormat("%sFree(&%s, false);\n",
elementType->GetName().string(), elementName.string());
}
sb.Append(prefix + TAB).Append("}\n");
sb.Append(prefix + g_tab).Append("}\n");
}
sb.Append(prefix + TAB).AppendFormat("OsalMemFree(*%s);\n", name.string());
sb.Append(prefix + TAB).AppendFormat("*%s = NULL;\n", name.string());
sb.Append(prefix + g_tab).AppendFormat("OsalMemFree(*%s);\n", name.string());
sb.Append(prefix + g_tab).AppendFormat("*%s = NULL;\n", name.string());
sb.Append(prefix).Append("}\n");
break;
}
@@ -389,28 +382,28 @@ void CClientProxyCodeEmitter::EmitError(const AutoPtr<ASTType>& type, const Stri
if (elementType->GetTypeKind() == TypeKind::TYPE_STRING
|| elementType->GetTypeKind() == TypeKind::TYPE_STRUCT) {
sb.Append(prefix + TAB).AppendFormat("for (uint32_t i = 0; i < *%s; i++) {\n", lenName.string());
sb.Append(prefix + g_tab).AppendFormat("for (uint32_t i = 0; i < *%s; i++) {\n", lenName.string());
String elementName = String::Format("(*%s)[i]", name.string());
if (elementType->GetTypeKind() == TypeKind::TYPE_STRING) {
sb.Append(prefix + TAB + TAB).AppendFormat("if (%s != NULL) {\n", elementName.string());
sb.Append(prefix + TAB + TAB + TAB).AppendFormat("OsalMemFree(%s);\n", elementName.string());
sb.Append(prefix + TAB + TAB).Append("}\n");
sb.Append(prefix + g_tab + g_tab).AppendFormat("if (%s != NULL) {\n", elementName.string());
sb.Append(prefix + g_tab + g_tab + g_tab).AppendFormat("OsalMemFree(%s);\n", elementName.string());
sb.Append(prefix + g_tab + g_tab).Append("}\n");
} else {
sb.Append(prefix + TAB + TAB).AppendFormat("%sFree(&%s, false);\n",
sb.Append(prefix + g_tab + g_tab).AppendFormat("%sFree(&%s, false);\n",
elementType->GetName().string(), elementName.string());
}
sb.Append(prefix + TAB).Append("}\n");
sb.Append(prefix + g_tab).Append("}\n");
}
sb.Append(prefix + TAB).AppendFormat("OsalMemFree(*%s);\n", name.string());
sb.Append(prefix + TAB).AppendFormat("*%s = NULL;\n", name.string());
sb.Append(prefix + g_tab).AppendFormat("OsalMemFree(*%s);\n", name.string());
sb.Append(prefix + g_tab).AppendFormat("*%s = NULL;\n", name.string());
sb.Append(prefix).Append("}\n");
break;
}
case TypeKind::TYPE_STRUCT: {
sb.Append(prefix).AppendFormat("if (*%s != NULL) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat("%sFree(*%s, true);\n", type->GetName().string(), name.string());
sb.Append(prefix + TAB).AppendFormat("*%s = NULL;\n", name.string());
sb.Append(prefix + g_tab).AppendFormat("%sFree(*%s, true);\n", type->GetName().string(), name.string());
sb.Append(prefix + g_tab).AppendFormat("*%s = NULL;\n", name.string());
sb.Append(prefix).Append("}\n");
break;
}
@@ -435,7 +428,7 @@ void CClientProxyCodeEmitter::EmitProxyConstruction(StringBuilder& sb)
for (size_t i = 0; i < interface_->GetMethodNumber(); i++) {
AutoPtr<ASTMethod> method = interface_->GetMethod(i);
sb.Append(TAB).AppendFormat("%s->%s = %sProxy%s;\n",
sb.Append(g_tab).AppendFormat("%s->%s = %sProxy%s;\n",
objName.string(), method->GetName().string(), infName_.string(), method->GetName().string());
}
@@ -446,36 +439,36 @@ void CClientProxyCodeEmitter::EmitProxyGetMethodImpl(StringBuilder& sb)
{
sb.AppendFormat("struct %s *Hdi%sGet()\n", interfaceName_.string(), infName_.string());
sb.Append("{\n");
sb.Append(TAB).Append("struct HDIServiceManager *serviceMgr = HDIServiceManagerGet();\n");
sb.Append(TAB).Append("if (serviceMgr == NULL) {\n");
sb.Append(TAB).Append(TAB).Append("HDF_LOGE(\"%{public}s: HDIServiceManager not found!\", __func__);\n");
sb.Append(TAB).Append(TAB).Append("return NULL;\n");
sb.Append(TAB).Append("}\n");
sb.Append(g_tab).Append("struct HDIServiceManager *serviceMgr = HDIServiceManagerGet();\n");
sb.Append(g_tab).Append("if (serviceMgr == NULL) {\n");
sb.Append(g_tab).Append(g_tab).Append("HDF_LOGE(\"%{public}s: HDIServiceManager not found!\", __func__);\n");
sb.Append(g_tab).Append(g_tab).Append("return NULL;\n");
sb.Append(g_tab).Append("}\n");
sb.Append("\n");
sb.Append(TAB).Append("struct HdfRemoteService *remote = ");
sb.Append(g_tab).Append("struct HdfRemoteService *remote = ");
sb.AppendFormat("serviceMgr->GetService(serviceMgr, \"%sService\");\n", infName_.string());
sb.Append(TAB).Append("HDIServiceManagerRelease(serviceMgr);\n");
sb.Append(TAB).Append("if (remote == NULL) {\n");
sb.Append(TAB).Append(TAB).AppendFormat(
sb.Append(g_tab).Append("HDIServiceManagerRelease(serviceMgr);\n");
sb.Append(g_tab).Append("if (remote == NULL) {\n");
sb.Append(g_tab).Append(g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: %sService not found!\", __func__);\n", infName_.string());
sb.Append(TAB).Append(TAB).Append("return NULL;\n");
sb.Append(TAB).Append("}\n");
sb.Append(g_tab).Append(g_tab).Append("return NULL;\n");
sb.Append(g_tab).Append("}\n");
sb.Append("\n");
sb.Append(TAB).AppendFormat("struct %s *%sClient = (struct %s *)OsalMemAlloc(sizeof(struct %s));\n",
sb.Append(g_tab).AppendFormat("struct %s *%sClient = (struct %s *)OsalMemAlloc(sizeof(struct %s));\n",
interfaceName_.string(), infName_.string(), interfaceName_.string(), interfaceName_.string());
sb.Append(TAB).AppendFormat("if (%sClient == NULL) {\n", infName_.string());
sb.Append(TAB).Append(TAB).AppendFormat(
sb.Append(g_tab).AppendFormat("if (%sClient == NULL) {\n", infName_.string());
sb.Append(g_tab).Append(g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: malloc %s instance failed!\", __func__);\n", interfaceName_.string());
sb.Append(TAB).Append(TAB).Append("HdfRemoteServiceRecycle(remote);\n");
sb.Append(TAB).Append(TAB).Append("return NULL;\n");
sb.Append(TAB).Append("}\n");
sb.Append(g_tab).Append(g_tab).Append("HdfRemoteServiceRecycle(remote);\n");
sb.Append(g_tab).Append(g_tab).Append("return NULL;\n");
sb.Append(g_tab).Append("}\n");
sb.Append("\n");
sb.Append(TAB).AppendFormat("%sClient->remote = remote;\n", infName_.string());
sb.Append(TAB).AppendFormat("%sConstruct(%sClient);\n", infName_.string(), infName_.string());
sb.Append(TAB).AppendFormat("return %sClient;\n", infName_.string());
sb.Append(g_tab).AppendFormat("%sClient->remote = remote;\n", infName_.string());
sb.Append(g_tab).AppendFormat("%sConstruct(%sClient);\n", infName_.string(), infName_.string());
sb.Append(g_tab).AppendFormat("return %sClient;\n", infName_.string());
sb.Append("}\n");
}
@@ -483,12 +476,12 @@ void CClientProxyCodeEmitter::EmitProxyReleaseMethodImpl(StringBuilder& sb)
{
sb.AppendFormat("void Hdi%sRelease(struct %s *instance)\n", infName_.string(), interfaceName_.string());
sb.Append("{\n");
sb.Append(TAB).Append("if (instance == NULL) {\n");
sb.Append(TAB).Append(TAB).Append("return;\n");
sb.Append(TAB).Append("}\n");
sb.Append(g_tab).Append("if (instance == NULL) {\n");
sb.Append(g_tab).Append(g_tab).Append("return;\n");
sb.Append(g_tab).Append("}\n");
sb.Append(TAB).Append("HdfRemoteServiceRecycle(instance->remote);\n");
sb.Append(TAB).Append("OsalMemFree(instance);\n");
sb.Append(g_tab).Append("HdfRemoteServiceRecycle(instance->remote);\n");
sb.Append(g_tab).Append("OsalMemFree(instance);\n");
sb.Append("}\n");
}
@@ -497,15 +490,15 @@ void CClientProxyCodeEmitter::EmitCbProxyObtainMethodImpl(StringBuilder& sb)
sb.AppendFormat("struct %s *%sProxyObtain(struct HdfRemoteService *remote)\n",
interfaceName_.string(), infName_.string());
sb.Append("{\n");
sb.Append(TAB).AppendFormat("struct %s *callback = (struct %s*)OsalMemAlloc(sizeof(struct %s));\n",
sb.Append(g_tab).AppendFormat("struct %s *callback = (struct %s*)OsalMemAlloc(sizeof(struct %s));\n",
interfaceName_.string(), interfaceName_.string(), interfaceName_.string());
sb.Append(TAB).Append("if (callback == NULL) {\n");
sb.Append(TAB).Append(TAB).Append("HDF_LOGE(\"%{public}s: OsalMemAlloc failed!\", __func__);\n");
sb.Append(TAB).Append(TAB).Append("return NULL;\n");
sb.Append(TAB).Append("}\n\n");
sb.Append(TAB).Append("callback->remote = remote;\n");
sb.Append(TAB).AppendFormat("%sProxyConstruct(callback);\n", infName_.string());
sb.Append(TAB).Append("return callback;\n");
sb.Append(g_tab).Append("if (callback == NULL) {\n");
sb.Append(g_tab).Append(g_tab).Append("HDF_LOGE(\"%{public}s: OsalMemAlloc failed!\", __func__);\n");
sb.Append(g_tab).Append(g_tab).Append("return NULL;\n");
sb.Append(g_tab).Append("}\n\n");
sb.Append(g_tab).Append("callback->remote = remote;\n");
sb.Append(g_tab).AppendFormat("%sProxyConstruct(callback);\n", infName_.string());
sb.Append(g_tab).Append("return callback;\n");
sb.Append("}\n");
}
@@ -513,10 +506,10 @@ void CClientProxyCodeEmitter::EmitCbProxyReleaseMethodImpl(StringBuilder& sb)
{
sb.AppendFormat("void %sProxyRelease(struct %s *callback)\n", infName_.string(), interfaceName_.string());
sb.Append("{\n");
sb.Append(TAB).Append("if (callback == NULL) {\n");
sb.Append(TAB).Append(TAB).Append("return;\n");
sb.Append(TAB).Append("}\n");
sb.Append(TAB).Append("OsalMemFree(callback);\n");
sb.Append(g_tab).Append("if (callback == NULL) {\n");
sb.Append(g_tab).Append(g_tab).Append("return;\n");
sb.Append(g_tab).Append("}\n");
sb.Append(g_tab).Append("OsalMemFree(callback);\n");
sb.Append("}\n");
}
} // namespace HDI
@@ -39,9 +39,6 @@ private:
void EmitProxyMethodBody(const AutoPtr<ASTMethod>& method, StringBuilder& sb, const String& prefix);
void EmitWriteProxyMethodParameter(const AutoPtr<ASTParameter>& param, const String& parcelName,
const String& gotoLabel, StringBuilder& sb, const String& prefix);
void EmitReadProxyMethodParameter(const AutoPtr<ASTParameter>& param, const String& parcelName,
const String& gotoLabel, StringBuilder& sb, const String& prefix);
+1 -3
View File
@@ -15,8 +15,6 @@
namespace OHOS {
namespace HDI {
const char* CCodeEmitter::TAB = " ";
CCodeEmitter::CCodeEmitter(const AutoPtr<AST>& ast, const String& targetDirectory)
:LightRefCountBase(), ast_(ast), directory_(targetDirectory)
{
@@ -70,7 +68,7 @@ void CCodeEmitter::EmitInterfaceMethodCommands(StringBuilder& sb)
sb.Append("enum {\n");
for (size_t i = 0; i < interface_->GetMethodNumber(); i++) {
AutoPtr<ASTMethod> method = interface_->GetMethod(i);
sb.Append(TAB).AppendFormat("CMD_%s,\n", ConstantName(method->GetName()).string());
sb.Append(g_tab).AppendFormat("CMD_%s,\n", ConstantName(method->GetName()).string());
}
sb.Append("};\n");
}
-2
View File
@@ -69,8 +69,6 @@ protected:
String SpecificationParam(StringBuilder& sb, const String& prefix);
static const char* TAB;
AutoPtr<AST> ast_;
AutoPtr<ASTInterfaceType> interface_;
@@ -200,11 +200,11 @@ void CCustomTypesCodeEmitter::EmitCustomTypeMarshallingImpl(StringBuilder& sb, c
String memberName = type->GetMemberName(i);
AutoPtr<ASTType> memberType = type->GetMemberType(i);
String name = String::Format("%s->%s", objName.string(), memberName.string());
memberType->EmitCMarshalling(name, sb, TAB);
memberType->EmitCMarshalling(name, sb, g_tab);
sb.Append("\n");
}
sb.Append(TAB).Append("return true;\n");
sb.Append(g_tab).Append("return true;\n");
sb.Append("}\n");
}
@@ -217,9 +217,9 @@ void CCustomTypesCodeEmitter::EmitCustomTypeUnmarshallingImpl(StringBuilder& sb,
type->GetName().string(), type->EmitCType().string(), objName.string());
sb.Append("{\n");
sb.Append(TAB).AppendFormat("if (%s == NULL) {\n", objName.string());
sb.Append(TAB).Append(TAB).Append("return false;\n");
sb.Append(TAB).Append("}\n");
sb.Append(g_tab).AppendFormat("if (%s == NULL) {\n", objName.string());
sb.Append(g_tab).Append(g_tab).Append("return false;\n");
sb.Append(g_tab).Append("}\n");
for (size_t i = 0; i < type->GetMemberNumber(); i++) {
AutoPtr<ASTType> memberType = type->GetMemberType(i);
@@ -228,20 +228,20 @@ void CCustomTypesCodeEmitter::EmitCustomTypeUnmarshallingImpl(StringBuilder& sb,
if (memberType->GetTypeKind() == TypeKind::TYPE_STRING) {
String tmpName = String::Format("%sCp", memberName.string());
memberType->EmitCUnMarshalling(tmpName, sb, TAB, freeObjStatements_);
sb.Append(TAB).AppendFormat("%s = strdup(%s);\n", name.string(), tmpName.string());
sb.Append(TAB).AppendFormat("if (%s == NULL) {\n", name.string());
sb.Append(TAB).Append(TAB).Append("goto errors;\n");
sb.Append(TAB).Append("}\n");
memberType->EmitCUnMarshalling(tmpName, sb, g_tab, freeObjStatements_);
sb.Append(g_tab).AppendFormat("%s = strdup(%s);\n", name.string(), tmpName.string());
sb.Append(g_tab).AppendFormat("if (%s == NULL) {\n", name.string());
sb.Append(g_tab).Append(g_tab).Append("goto errors;\n");
sb.Append(g_tab).Append("}\n");
sb.Append("\n");
} else if (memberType->GetTypeKind() == TypeKind::TYPE_STRUCT) {
String paramName = String::Format("&%s", name.string());
memberType->EmitCUnMarshalling(paramName, sb, TAB, freeObjStatements_);
memberType->EmitCUnMarshalling(paramName, sb, g_tab, freeObjStatements_);
sb.Append("\n");
} else if (memberType->GetTypeKind() == TypeKind::TYPE_UNION) {
String tmpName = String::Format("%sCp", memberName.string());
memberType->EmitCUnMarshalling(tmpName, sb, TAB, freeObjStatements_);
sb.Append(TAB).AppendFormat("(void)memcpy_s(&%s, sizeof(%s), %s, sizeof(%s));\n",
memberType->EmitCUnMarshalling(tmpName, sb, g_tab, freeObjStatements_);
sb.Append(g_tab).AppendFormat("(void)memcpy_s(&%s, sizeof(%s), %s, sizeof(%s));\n",
name.string(), memberType->EmitCType().string(),
tmpName.string(), memberType->EmitCType().string());
sb.Append("\n");
@@ -249,38 +249,38 @@ void CCustomTypesCodeEmitter::EmitCustomTypeUnmarshallingImpl(StringBuilder& sb,
String tmpName = String::Format("%sCp", memberName.string());
AutoPtr<ASTArrayType> arrayType = dynamic_cast<ASTArrayType*>(memberType.Get());
AutoPtr<ASTType> elementType = arrayType->GetElementType();
sb.Append(TAB).AppendFormat("%s* %s = NULL;\n", elementType->EmitCType().string(), tmpName.string());
sb.Append(TAB).AppendFormat("uint32_t %sLen = 0;\n", tmpName.string());
memberType->EmitCUnMarshalling(tmpName, sb, TAB, freeObjStatements_);
sb.Append(TAB).AppendFormat("%s = %s;\n", name.string(), tmpName.string());
sb.Append(TAB).AppendFormat("%sLen = %sLen;\n", name.string(), tmpName.string());
sb.Append(g_tab).AppendFormat("%s* %s = NULL;\n", elementType->EmitCType().string(), tmpName.string());
sb.Append(g_tab).AppendFormat("uint32_t %sLen = 0;\n", tmpName.string());
memberType->EmitCUnMarshalling(tmpName, sb, g_tab, freeObjStatements_);
sb.Append(g_tab).AppendFormat("%s = %s;\n", name.string(), tmpName.string());
sb.Append(g_tab).AppendFormat("%sLen = %sLen;\n", name.string(), tmpName.string());
sb.Append("\n");
} else if (memberType->GetTypeKind() == TypeKind::TYPE_LIST) {
String tmpName = String::Format("%sCp", memberName.string());
AutoPtr<ASTListType> listType = dynamic_cast<ASTListType*>(memberType.Get());
AutoPtr<ASTType> elementType = listType->GetElementType();
sb.Append(TAB).AppendFormat("%s* %s = NULL;\n", elementType->EmitCType().string(), tmpName.string());
sb.Append(TAB).AppendFormat("uint32_t %sLen = 0;\n", tmpName.string());
memberType->EmitCUnMarshalling(tmpName, sb, TAB, freeObjStatements_);
sb.Append(TAB).AppendFormat("%s = %s;\n", name.string(), tmpName.string());
sb.Append(TAB).AppendFormat("%sLen = %sLen;\n", name.string(), tmpName.string());
sb.Append(g_tab).AppendFormat("%s* %s = NULL;\n", elementType->EmitCType().string(), tmpName.string());
sb.Append(g_tab).AppendFormat("uint32_t %sLen = 0;\n", tmpName.string());
memberType->EmitCUnMarshalling(tmpName, sb, g_tab, freeObjStatements_);
sb.Append(g_tab).AppendFormat("%s = %s;\n", name.string(), tmpName.string());
sb.Append(g_tab).AppendFormat("%sLen = %sLen;\n", name.string(), tmpName.string());
sb.Append("\n");
} else {
memberType->EmitCUnMarshalling(name, sb, TAB, freeObjStatements_);
memberType->EmitCUnMarshalling(name, sb, g_tab, freeObjStatements_);
sb.Append("\n");
}
}
sb.Append(TAB).AppendFormat("return true;\n");
sb.Append(g_tab).AppendFormat("return true;\n");
sb.Append("errors:\n");
for (size_t i = 0; i < type->GetMemberNumber(); i++) {
AutoPtr<ASTType> memberType = type->GetMemberType(i);
String memberName = type->GetMemberName(i);
String name = String::Format("%s->%s", objName.string(), memberName.string());
EmitError(name, memberType, sb, TAB);
EmitError(name, memberType, sb, g_tab);
}
sb.Append(TAB).Append("return false;\n");
sb.Append(g_tab).Append("return false;\n");
sb.Append("}\n");
}
@@ -291,7 +291,7 @@ void CCustomTypesCodeEmitter::EmitError(const String& name, const AutoPtr<ASTTyp
switch (type->GetTypeKind()) {
case TypeKind::TYPE_STRING: {
sb.Append(prefix).AppendFormat("if (%s != NULL) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat("OsalMemFree(%s);\n", name.string());
sb.Append(prefix + g_tab).AppendFormat("OsalMemFree(%s);\n", name.string());
sb.Append(prefix).Append("}\n\n");
break;
}
@@ -303,22 +303,22 @@ void CCustomTypesCodeEmitter::EmitError(const String& name, const AutoPtr<ASTTyp
sb.Append(prefix).AppendFormat("if (%s > 0 && %s != NULL) {\n", lenName.string(), name.string());
if (elementType->GetTypeKind() == TypeKind::TYPE_STRING
|| elementType->GetTypeKind() == TypeKind::TYPE_STRUCT) {
sb.Append(prefix + TAB).AppendFormat("for (uint32_t i = 0; i < %s; i++) {\n", lenName.string());
sb.Append(prefix + g_tab).AppendFormat("for (uint32_t i = 0; i < %s; i++) {\n", lenName.string());
String elementName = String::Format("(%s)[i]", name.string());
if (elementType->GetTypeKind() == TypeKind::TYPE_STRING) {
sb.Append(prefix + TAB + TAB).AppendFormat("if (%s != NULL) {\n", elementName.string());
sb.Append(prefix + TAB + TAB + TAB).AppendFormat("OsalMemFree(%s);\n", elementName.string());
sb.Append(prefix + TAB + TAB).Append("}\n");
sb.Append(prefix + g_tab + g_tab).AppendFormat("if (%s != NULL) {\n", elementName.string());
sb.Append(prefix + g_tab + g_tab + g_tab).AppendFormat("OsalMemFree(%s);\n", elementName.string());
sb.Append(prefix + g_tab + g_tab).Append("}\n");
} else if (elementType->GetTypeKind() == TypeKind::TYPE_STRUCT) {
sb.Append(prefix + TAB + TAB).AppendFormat("%sFree(&(%s), false);\n",
sb.Append(prefix + g_tab + g_tab).AppendFormat("%sFree(&(%s), false);\n",
elementType->GetName().string(), elementName.string());
}
sb.Append(prefix + TAB).Append("}\n");
sb.Append(prefix + g_tab).Append("}\n");
}
sb.Append(prefix + TAB).AppendFormat("OsalMemFree(%s);\n", name.string());
sb.Append(prefix + g_tab).AppendFormat("OsalMemFree(%s);\n", name.string());
sb.Append(prefix).Append("}\n");
sb.Append("\n");
break;
@@ -331,22 +331,22 @@ void CCustomTypesCodeEmitter::EmitError(const String& name, const AutoPtr<ASTTyp
sb.Append(prefix).AppendFormat("if (%s > 0 && %s != NULL) {\n", lenName.string(), name.string());
if (elementType->GetTypeKind() == TypeKind::TYPE_STRING
|| elementType->GetTypeKind() == TypeKind::TYPE_STRUCT) {
sb.Append(prefix + TAB).AppendFormat("for (uint32_t i = 0; i < %s; i++) {\n", lenName.string());
sb.Append(prefix + g_tab).AppendFormat("for (uint32_t i = 0; i < %s; i++) {\n", lenName.string());
String elementName = String::Format("(%s)[i]", name.string());
if (elementType->GetTypeKind() == TypeKind::TYPE_STRING) {
sb.Append(prefix + TAB + TAB).AppendFormat("if (%s != NULL) {\n", elementName.string());
sb.Append(prefix + TAB + TAB + TAB).AppendFormat("OsalMemFree(%s);\n", elementName.string());
sb.Append(prefix + TAB + TAB).Append("}\n");
sb.Append(prefix + g_tab + g_tab).AppendFormat("if (%s != NULL) {\n", elementName.string());
sb.Append(prefix + g_tab + g_tab + g_tab).AppendFormat("OsalMemFree(%s);\n", elementName.string());
sb.Append(prefix + g_tab + g_tab).Append("}\n");
} else if (elementType->GetTypeKind() == TypeKind::TYPE_STRUCT) {
sb.Append(prefix + TAB + TAB).AppendFormat("%sFree(&(%s), false);\n",
sb.Append(prefix + g_tab + g_tab).AppendFormat("%sFree(&(%s), false);\n",
elementType->GetName().string(), elementName.string());
}
sb.Append(prefix + TAB).Append("}\n");
sb.Append(prefix + g_tab).Append("}\n");
}
sb.Append(prefix + TAB).AppendFormat("OsalMemFree(%s);\n", name.string());
sb.Append(prefix + g_tab).AppendFormat("OsalMemFree(%s);\n", name.string());
sb.Append(prefix).Append("}\n");
sb.Append("\n");
break;
@@ -367,21 +367,21 @@ void CCustomTypesCodeEmitter::EmitCustomTypeFreeImpl(StringBuilder& sb, const Au
sb.AppendFormat("void %sFree(%s *%s, bool freeSelf)\n",
type->GetName().string(), type->EmitCType().string(), objName.string());
sb.Append("{\n");
sb.Append(TAB).AppendFormat("if (%s == NULL) {\n", objName.string());
sb.Append(TAB).Append(TAB).Append("return;\n");
sb.Append(TAB).Append("}\n");
sb.Append(g_tab).AppendFormat("if (%s == NULL) {\n", objName.string());
sb.Append(g_tab).Append(g_tab).Append("return;\n");
sb.Append(g_tab).Append("}\n");
sb.Append("\n");
for (size_t i = 0; i < type->GetMemberNumber(); i++) {
AutoPtr<ASTType> memberType = type->GetMemberType(i);
String memberName = type->GetMemberName(i);
String name = String::Format("%s->%s", objName.string(), memberName.string());
EmitCustomTypeMemberFree(sb, name, memberType, TAB);
EmitCustomTypeMemberFree(sb, name, memberType, g_tab);
}
sb.Append(TAB).Append("if (freeSelf) {\n");
sb.Append(TAB).Append(TAB).Append("OsalMemFree(dataBlock);\n");
sb.Append(TAB).Append("}\n");
sb.Append(g_tab).Append("if (freeSelf) {\n");
sb.Append(g_tab).Append(g_tab).Append("OsalMemFree(dataBlock);\n");
sb.Append(g_tab).Append("}\n");
sb.Append("}\n");
}
@@ -392,7 +392,7 @@ void CCustomTypesCodeEmitter::EmitCustomTypeMemberFree(StringBuilder& sb, const
switch (type->GetTypeKind()) {
case TypeKind::TYPE_STRING: {
sb.Append(prefix).AppendFormat("if (%s != NULL) {\n", name.string());
sb.Append(prefix + TAB).AppendFormat("OsalMemFree(%s);\n", name.string());
sb.Append(prefix + g_tab).AppendFormat("OsalMemFree(%s);\n", name.string());
sb.Append(prefix).Append("}\n\n");
break;
}
@@ -402,16 +402,16 @@ void CCustomTypesCodeEmitter::EmitCustomTypeMemberFree(StringBuilder& sb, const
sb.Append(prefix).AppendFormat("if (%sLen > 0 && %s != NULL) {\n", name.string(), name.string());
if (elementType->GetTypeKind() == TypeKind::TYPE_STRING) {
sb.Append(prefix + TAB).AppendFormat("for (uint32_t i = 0; i < %sLen; i++) {\n", name.string());
sb.Append(prefix + TAB + TAB).AppendFormat("OsalMemFree(%s[i]);\n", name.string());
sb.Append(prefix + TAB).Append("}\n");
sb.Append(prefix + g_tab).AppendFormat("for (uint32_t i = 0; i < %sLen; i++) {\n", name.string());
sb.Append(prefix + g_tab + g_tab).AppendFormat("OsalMemFree(%s[i]);\n", name.string());
sb.Append(prefix + g_tab).Append("}\n");
} else if (elementType->GetTypeKind() == TypeKind::TYPE_STRUCT) {
sb.Append(prefix + TAB).AppendFormat("for (uint32_t i = 0; i < %sLen; i++) {\n", name.string());
sb.Append(prefix + TAB + TAB).AppendFormat("%sFree(%s, false);\n",
sb.Append(prefix + g_tab).AppendFormat("for (uint32_t i = 0; i < %sLen; i++) {\n", name.string());
sb.Append(prefix + g_tab + g_tab).AppendFormat("%sFree(%s, false);\n",
elementType->GetName().string(), name.string());
sb.Append(prefix + TAB).Append("}\n");
sb.Append(prefix + g_tab).Append("}\n");
}
sb.Append(prefix + TAB).AppendFormat("OsalMemFree(%s);\n", name.string());
sb.Append(prefix + g_tab).AppendFormat("OsalMemFree(%s);\n", name.string());
sb.Append(prefix).Append("}\n\n");
break;
}
@@ -421,16 +421,16 @@ void CCustomTypesCodeEmitter::EmitCustomTypeMemberFree(StringBuilder& sb, const
sb.Append(prefix).AppendFormat("if (%sLen > 0 && %s != NULL) {\n", name.string(), name.string());
if (elementType->GetTypeKind() == TypeKind::TYPE_STRING) {
sb.Append(prefix + TAB).AppendFormat("for (uint32_t i = 0; i < %sLen; i++) {\n", name.string());
sb.Append(prefix + TAB + TAB).AppendFormat("OsalMemFree(%s[i]);\n", name.string());
sb.Append(prefix + TAB).Append("}\n");
sb.Append(prefix + g_tab).AppendFormat("for (uint32_t i = 0; i < %sLen; i++) {\n", name.string());
sb.Append(prefix + g_tab + g_tab).AppendFormat("OsalMemFree(%s[i]);\n", name.string());
sb.Append(prefix + g_tab).Append("}\n");
} else if (elementType->GetTypeKind() == TypeKind::TYPE_STRUCT) {
sb.Append(prefix + TAB).AppendFormat("for (uint32_t i = 0; i < %sLen; i++) {\n", name.string());
sb.Append(prefix + TAB + TAB).AppendFormat("%sFree(%s, false);\n",
sb.Append(prefix + g_tab).AppendFormat("for (uint32_t i = 0; i < %sLen; i++) {\n", name.string());
sb.Append(prefix + g_tab + g_tab).AppendFormat("%sFree(%s, false);\n",
elementType->GetName().string(), name.string());
sb.Append(prefix + TAB).Append("}\n");
sb.Append(prefix + g_tab).Append("}\n");
}
sb.Append(prefix + TAB).AppendFormat("OsalMemFree(%s);\n", name.string());
sb.Append(prefix + g_tab).AppendFormat("OsalMemFree(%s);\n", name.string());
sb.Append(prefix).Append("}\n\n");
break;
}
@@ -79,8 +79,8 @@ void CServiceDriverCodeEmitter::EmitDriverIncluions(StringBuilder& sb)
void CServiceDriverCodeEmitter::EmitDriverServiceDecl(StringBuilder& sb)
{
sb.AppendFormat("struct Hdf%sService {\n", infName_.string());
sb.Append(TAB).AppendFormat("struct IDeviceIoService ioservice;\n");
sb.Append(TAB).Append("void *instance;\n");
sb.Append(g_tab).AppendFormat("struct IDeviceIoService ioservice;\n");
sb.Append(g_tab).Append("void *instance;\n");
sb.Append("};\n");
}
@@ -88,13 +88,13 @@ void CServiceDriverCodeEmitter::EmitDriverDispatch(StringBuilder& sb)
{
sb.AppendFormat("static int32_t %sServiceDispatch(struct HdfDeviceIoClient *client, int cmdId,\n",
infName_.string());
sb.Append(TAB).Append("struct HdfSBuf *data, struct HdfSBuf *reply)\n");
sb.Append(g_tab).Append("struct HdfSBuf *data, struct HdfSBuf *reply)\n");
sb.Append("{\n");
sb.Append(TAB).AppendFormat("struct Hdf%sService *hdf%sService = CONTAINER_OF(\n",
sb.Append(g_tab).AppendFormat("struct Hdf%sService *hdf%sService = CONTAINER_OF(\n",
infName_.string(), infName_.string());
sb.Append(TAB).Append(TAB).AppendFormat("client->device->service, struct Hdf%sService, ioservice);\n",
sb.Append(g_tab).Append(g_tab).AppendFormat("client->device->service, struct Hdf%sService, ioservice);\n",
infName_.string());
sb.Append(TAB).AppendFormat("return %sServiceOnRemoteRequest(hdf%sService->instance, cmdId, data, reply);\n",
sb.Append(g_tab).AppendFormat("return %sServiceOnRemoteRequest(hdf%sService->instance, cmdId, data, reply);\n",
infName_.string(), infName_.string());
sb.Append("}\n");
}
@@ -103,8 +103,8 @@ void CServiceDriverCodeEmitter::EmitDriverInit(StringBuilder& sb)
{
sb.AppendFormat("int Hdf%sDriverInit(struct HdfDeviceObject *deviceObject)\n", infName_.string());
sb.Append("{\n");
sb.Append(TAB).AppendFormat("HDF_LOGI(\"Hdf%sDriverInit enter, new hdi impl.\");\n", infName_.string());
sb.Append(TAB).Append("return HDF_SUCCESS;\n");
sb.Append(g_tab).AppendFormat("HDF_LOGI(\"Hdf%sDriverInit enter, new hdi impl.\");\n", infName_.string());
sb.Append(g_tab).Append("return HDF_SUCCESS;\n");
sb.Append("}\n");
}
@@ -112,29 +112,29 @@ void CServiceDriverCodeEmitter::EmitDriverBind(StringBuilder& sb)
{
sb.AppendFormat("int Hdf%sDriverBind(struct HdfDeviceObject *deviceObject)\n", infName_.string());
sb.Append("{\n");
sb.Append(TAB).AppendFormat("HDF_LOGI(\"Hdf%sDriverBind enter.\");\n", infName_.string());
sb.Append(g_tab).AppendFormat("HDF_LOGI(\"Hdf%sDriverBind enter.\");\n", infName_.string());
sb.Append("\n");
sb.Append(TAB).AppendFormat("struct Hdf%sService *hdf%sService = (struct Hdf%sService *)OsalMemAlloc(\n",
sb.Append(g_tab).AppendFormat("struct Hdf%sService *hdf%sService = (struct Hdf%sService *)OsalMemAlloc(\n",
infName_.string(), infName_.string(), infName_.string());
sb.Append(TAB).Append(TAB).AppendFormat("sizeof(struct Hdf%sService));\n", infName_.string());
sb.Append(TAB).AppendFormat("if (hdf%sService == NULL) {\n", infName_.string());
sb.Append(TAB).Append(TAB).AppendFormat(
sb.Append(g_tab).Append(g_tab).AppendFormat("sizeof(struct Hdf%sService));\n", infName_.string());
sb.Append(g_tab).AppendFormat("if (hdf%sService == NULL) {\n", infName_.string());
sb.Append(g_tab).Append(g_tab).AppendFormat(
"HDF_LOGE(\"Hdf%sDriverBind OsalMemAlloc Hdf%sService failed!\");\n", infName_.string(), infName_.string());
sb.Append(TAB).Append(TAB).Append("return HDF_FAILURE;\n");
sb.Append(TAB).Append("}\n");
sb.Append(g_tab).Append(g_tab).Append("return HDF_FAILURE;\n");
sb.Append(g_tab).Append("}\n");
sb.Append("\n");
sb.Append(TAB).AppendFormat("hdf%sService->ioservice.Dispatch = %sServiceDispatch;\n",
sb.Append(g_tab).AppendFormat("hdf%sService->ioservice.Dispatch = %sServiceDispatch;\n",
infName_.string(), infName_.string());
sb.Append(TAB).AppendFormat("hdf%sService->ioservice.Open = NULL;\n", infName_.string());
sb.Append(TAB).AppendFormat("hdf%sService->ioservice.Release = NULL;\n", infName_.string());
sb.Append(TAB).AppendFormat("hdf%sService->instance = Hdi%sInstance();\n", infName_.string(), infName_.string());
sb.Append(TAB).AppendFormat("if (hdf%sService->instance == NULL) {\n", infName_.string());
sb.Append(TAB).Append(TAB).AppendFormat("OsalMemFree(hdf%sService);\n", infName_.string());
sb.Append(TAB).Append(TAB).Append("return HDF_FAILURE;\n");
sb.Append(TAB).Append("}\n");
sb.Append(g_tab).AppendFormat("hdf%sService->ioservice.Open = NULL;\n", infName_.string());
sb.Append(g_tab).AppendFormat("hdf%sService->ioservice.Release = NULL;\n", infName_.string());
sb.Append(g_tab).AppendFormat("hdf%sService->instance = Hdi%sInstance();\n", infName_.string(), infName_.string());
sb.Append(g_tab).AppendFormat("if (hdf%sService->instance == NULL) {\n", infName_.string());
sb.Append(g_tab).Append(g_tab).AppendFormat("OsalMemFree(hdf%sService);\n", infName_.string());
sb.Append(g_tab).Append(g_tab).Append("return HDF_FAILURE;\n");
sb.Append(g_tab).Append("}\n");
sb.Append("\n");
sb.Append(TAB).AppendFormat("deviceObject->service = &hdf%sService->ioservice;\n", infName_.string());
sb.Append(TAB).Append("return HDF_SUCCESS;\n");
sb.Append(g_tab).AppendFormat("deviceObject->service = &hdf%sService->ioservice;\n", infName_.string());
sb.Append(g_tab).Append("return HDF_SUCCESS;\n");
sb.Append("}\n");
}
@@ -142,23 +142,23 @@ void CServiceDriverCodeEmitter::EmitDriverRelease(StringBuilder& sb)
{
sb.AppendFormat("void Hdf%sDriverRelease(struct HdfDeviceObject *deviceObject)\n", infName_.string());
sb.Append("{\n");
sb.Append(TAB).AppendFormat("struct Hdf%sService *hdf%sService = CONTAINER_OF(\n",
sb.Append(g_tab).AppendFormat("struct Hdf%sService *hdf%sService = CONTAINER_OF(\n",
infName_.string(), infName_.string());
sb.Append(TAB).Append(TAB).AppendFormat("deviceObject->service, struct Hdf%sService, ioservice);\n",
sb.Append(g_tab).Append(g_tab).AppendFormat("deviceObject->service, struct Hdf%sService, ioservice);\n",
infName_.string());
sb.Append(TAB).AppendFormat("Hdi%sRelease(hdf%sService->instance);\n", infName_.string(), infName_.string());
sb.Append(TAB).AppendFormat("OsalMemFree(hdf%sService);\n", infName_.string());
sb.Append(g_tab).AppendFormat("Hdi%sRelease(hdf%sService->instance);\n", infName_.string(), infName_.string());
sb.Append(g_tab).AppendFormat("OsalMemFree(hdf%sService);\n", infName_.string());
sb.Append("}\n");
}
void CServiceDriverCodeEmitter::EmitDriverEntryDefinition(StringBuilder& sb)
{
sb.AppendFormat("struct HdfDriverEntry g_%sDriverEntry = {\n", infName_.ToLowerCase().string());
sb.Append(TAB).Append(".moduleVersion = 1,\n");
sb.Append(TAB).Append(".moduleName = \"sample\", /* please change the moduleName */\n");
sb.Append(TAB).AppendFormat(".Bind = Hdf%sDriverBind,\n", infName_.string());
sb.Append(TAB).AppendFormat(".Init = Hdf%sDriverInit,\n", infName_.string());
sb.Append(TAB).AppendFormat(".Release = Hdf%sDriverRelease,\n", infName_.string());
sb.Append(g_tab).Append(".moduleVersion = 1,\n");
sb.Append(g_tab).Append(".moduleName = \"sample\", /* please change the moduleName */\n");
sb.Append(g_tab).AppendFormat(".Bind = Hdf%sDriverBind,\n", infName_.string());
sb.Append(g_tab).AppendFormat(".Init = Hdf%sDriverInit,\n", infName_.string());
sb.Append(g_tab).AppendFormat(".Release = Hdf%sDriverRelease,\n", infName_.string());
sb.Append("};\n\n");
sb.AppendFormat("HDF_INIT(g_%sDriverEntry);", infName_.ToLowerCase().string());
}
@@ -140,12 +140,12 @@ void CServiceImplCodeEmitter::EmitServiceImplMethodImpl(const AutoPtr<ASTMethod>
}
paramStr.Append(")");
sb.Append(SpecificationParam(paramStr, prefix + TAB));
sb.Append(SpecificationParam(paramStr, prefix + g_tab));
sb.Append("\n");
}
sb.Append(prefix).Append("{\n");
sb.Append(prefix + TAB).Append("return HDF_SUCCESS;\n");
sb.Append(prefix + g_tab).Append("return HDF_SUCCESS;\n");
sb.Append(prefix).Append("}\n");
}
@@ -157,7 +157,7 @@ void CServiceImplCodeEmitter::EmitServiceImplConstruct(StringBuilder& sb)
sb.Append("{\n");
for (size_t i = 0; i < interface_->GetMethodNumber(); i++) {
AutoPtr<ASTMethod> method = interface_->GetMethod(i);
sb.Append(TAB).AppendFormat("%s->%s = %s%s;\n",
sb.Append(g_tab).AppendFormat("%s->%s = %s%s;\n",
objName.string(), method->GetName().string(), infName_.string(), method->GetName().string());
}
sb.Append("}\n");
@@ -168,15 +168,15 @@ void CServiceImplCodeEmitter::EmitServiceImplInstance(StringBuilder& sb)
String objName("instance");
sb.AppendFormat("struct %s *Hdi%sInstance()\n", interfaceName_.string(), infName_.string());
sb.Append("{\n");
sb.Append(TAB).AppendFormat("struct %s *%s = (struct %s*)OsalMemAlloc(sizeof(struct %s));\n",
sb.Append(g_tab).AppendFormat("struct %s *%s = (struct %s*)OsalMemAlloc(sizeof(struct %s));\n",
interfaceName_.string(), objName.string(), interfaceName_.string(), interfaceName_.string());
sb.Append(TAB).AppendFormat("if (%s == NULL) {\n", objName.string());
sb.Append(TAB).Append(TAB).AppendFormat("HDF_LOGE(\"%%{public}s: OsalMemAlloc struct %s %s failed!\", __func__);\n",
sb.Append(g_tab).AppendFormat("if (%s == NULL) {\n", objName.string());
sb.Append(g_tab).Append(g_tab).AppendFormat("HDF_LOGE(\"%%{public}s: OsalMemAlloc struct %s %s failed!\", __func__);\n",
interfaceName_.string(), objName.string());
sb.Append(TAB).Append(TAB).Append("return NULL;\n");
sb.Append(TAB).Append("}\n");
sb.Append(TAB).AppendFormat("%sServiceConstruct(%s);\n", infName_.string(), objName.string());
sb.Append(TAB).AppendFormat("return %s;\n", objName.string());
sb.Append(g_tab).Append(g_tab).Append("return NULL;\n");
sb.Append(g_tab).Append("}\n");
sb.Append(g_tab).AppendFormat("%sServiceConstruct(%s);\n", infName_.string(), objName.string());
sb.Append(g_tab).AppendFormat("return %s;\n", objName.string());
sb.Append("}\n");
}
@@ -184,10 +184,10 @@ void CServiceImplCodeEmitter::EmitServiceImplRelease(StringBuilder& sb)
{
sb.AppendFormat("void Hdi%sRelease(struct %s *instance)\n", infName_.string(), interfaceName_.string());
sb.Append("{\n");
sb.Append(TAB).Append("if (instance == NULL) {\n");
sb.Append(TAB).Append(TAB).Append("return;\n");
sb.Append(TAB).Append("}\n");
sb.Append(TAB).Append("OsalMemFree(instance);\n");
sb.Append(g_tab).Append("if (instance == NULL) {\n");
sb.Append(g_tab).Append(g_tab).Append("return;\n");
sb.Append(g_tab).Append("}\n");
sb.Append(g_tab).Append("OsalMemFree(instance);\n");
sb.Append("}\n");
}
} // namespace HDI
@@ -85,7 +85,7 @@ void CServiceInterfaceCodeEmitter::EmitInterfaceDataDecls(StringBuilder& sb)
void CServiceInterfaceCodeEmitter::EmitInterfaceDefinition(StringBuilder& sb)
{
sb.AppendFormat("struct %s {\n", interfaceName_.string());
EmitInterfaceMethods(sb, TAB);
EmitInterfaceMethods(sb, g_tab);
sb.Append("};\n\n");
EmitInterfaceInstanceMethodDecl(sb);
sb.Append("\n");
@@ -124,7 +124,7 @@ void CServiceInterfaceCodeEmitter::EmitInterfaceMethod(const AutoPtr<ASTMethod>&
}
paramStr.Append(");");
sb.Append(SpecificationParam(paramStr, prefix + TAB));
sb.Append(SpecificationParam(paramStr, prefix + g_tab));
sb.Append("\n");
}
}
@@ -143,7 +143,7 @@ void CServiceInterfaceCodeEmitter::EmitInterfaceReleaseMethodDecl(StringBuilder&
void CServiceInterfaceCodeEmitter::EmitInterfaceRequestMethodDecl(StringBuilder& sb)
{
sb.AppendFormat("int32_t %sServiceOnRemoteRequest(void *service, int cmdId,\n", infName_.string());
sb.Append(TAB).Append("struct HdfSBuf *data, struct HdfSBuf *reply);\n");
sb.Append(g_tab).Append("struct HdfSBuf *data, struct HdfSBuf *reply);\n");
}
} // namespace HDI
} // namespace OHOS
@@ -156,29 +156,29 @@ void CServiceStubCodeEmitter::EmitServiceStubMethodImpl(const AutoPtr<ASTMethod>
"static int32_t SerStub%s(struct %s *serviceImpl, struct HdfSBuf *data, struct HdfSBuf *reply)\n",
method->GetName().string(), interfaceName_.string());
sb.Append(prefix).Append("{\n");
sb.Append(prefix + g_tab).Append("int32_t ec = HDF_FAILURE;\n");
sb.Append(prefix + TAB).Append("int32_t ec = HDF_FAILURE;\n");
String gotoName = "errors";
if (method->GetParameterNumber() > 0) {
for (size_t i = 0; i < method->GetParameterNumber(); i++) {
AutoPtr<ASTParameter> param = method->GetParameter(i);
EmitStubLocalVariable(param, sb, prefix + TAB);
EmitStubLocalVariable(param, sb, prefix + g_tab);
}
sb.Append("\n");
for (int i = 0; i < method->GetParameterNumber(); i++) {
AutoPtr<ASTParameter> param = method->GetParameter(i);
if (param->GetAttribute() == ParamAttr::PARAM_IN) {
EmitReadStubMethodParameter(param, "data", sb, prefix + TAB);
EmitReadStubMethodParameter(param, "data", sb, prefix + g_tab);
sb.Append("\n");
}
}
}
if (method->GetParameterNumber() == 0) {
sb.Append(prefix + TAB).AppendFormat("ec = serviceImpl->%s(serviceImpl);\n", method->GetName().string());
sb.Append(prefix + g_tab).AppendFormat("ec = serviceImpl->%s(serviceImpl);\n", method->GetName().string());
} else {
sb.Append(prefix + TAB).AppendFormat("ec = serviceImpl->%s(serviceImpl, ", method->GetName().string());
sb.Append(prefix + g_tab).AppendFormat("ec = serviceImpl->%s(serviceImpl, ", method->GetName().string());
for (size_t i = 0; i < method->GetParameterNumber(); i++) {
AutoPtr<ASTParameter> param = method->GetParameter(i);
EmitCallParameter(sb, param->GetType(), param->GetAttribute(), param->GetName());
@@ -189,28 +189,28 @@ void CServiceStubCodeEmitter::EmitServiceStubMethodImpl(const AutoPtr<ASTMethod>
sb.AppendFormat(");\n", method->GetName().string());
}
sb.Append(prefix + TAB).Append("if (ec != HDF_SUCCESS) {\n");
sb.Append(prefix + TAB + TAB).AppendFormat(
sb.Append(prefix + g_tab).Append("if (ec != HDF_SUCCESS) {\n");
sb.Append(prefix + g_tab + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: call %s function failed!\", __func__);\n", method->GetName().string());
sb.Append(prefix + TAB + TAB).Append("goto errors;\n");
sb.Append(prefix + TAB).Append("}\n");
sb.Append(prefix + g_tab + g_tab).AppendFormat("goto %s;\n", gotoName.string());
sb.Append(prefix + g_tab).Append("}\n");
sb.Append("\n");
for (int i = 0; i < method->GetParameterNumber(); i++) {
AutoPtr<ASTParameter> param = method->GetParameter(i);
if (param->GetAttribute() == ParamAttr::PARAM_OUT) {
EmitWriteStubMethodParameter(param, "reply", sb, prefix + TAB);
param->EmitCWriteVar("reply", gotoName, sb, prefix + g_tab);
sb.Append("\n");
}
}
sb.Append(prefix).Append("errors:\n");
sb.Append(prefix).AppendFormat("%s:\n", gotoName.string());
for (int i = 0; i < method->GetParameterNumber(); i++) {
AutoPtr<ASTParameter> param = method->GetParameter(i);
EmitError(param, sb, prefix + TAB);
EmitError(param, sb, prefix + g_tab);
}
sb.Append(prefix + TAB).Append("return ec;\n");
sb.Append(prefix + g_tab).Append("return ec;\n");
sb.Append(prefix).Append("}\n");
}
@@ -239,8 +239,8 @@ void CServiceStubCodeEmitter::EmitReadStubMethodParameter(const AutoPtr<ASTParam
sb.Append(prefix).AppendFormat("%s = (%s*)OsalMemAlloc(sizeof(%s));\n", param->GetName().string(),
type->EmitCType(TypeMode::NO_MODE).string(), type->EmitCType(TypeMode::NO_MODE).string());
sb.Append(prefix).AppendFormat("if (%s == NULL) {\n", param->GetName().string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_MALLOC_FAIL;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_MALLOC_FAIL;\n");
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
type->EmitCStubReadVar(parcelName, param->GetName(), sb, prefix);
} else if (type->GetTypeKind() == TypeKind::TYPE_UNION) {
@@ -249,8 +249,8 @@ void CServiceStubCodeEmitter::EmitReadStubMethodParameter(const AutoPtr<ASTParam
sb.Append(prefix).AppendFormat("%s = (%s*)OsalMemAlloc(sizeof(%s));\n", param->GetName().string(),
type->EmitCType(TypeMode::NO_MODE).string(), type->EmitCType(TypeMode::NO_MODE).string());
sb.Append(prefix).AppendFormat("if (%s == NULL) {\n", param->GetName().string());
sb.Append(prefix + TAB).Append("ec = HDF_ERR_MALLOC_FAIL;\n");
sb.Append(prefix + TAB).Append("goto errors;\n");
sb.Append(prefix + g_tab).Append("ec = HDF_ERR_MALLOC_FAIL;\n");
sb.Append(prefix + g_tab).Append("goto errors;\n");
sb.Append(prefix).Append("}\n");
sb.Append(prefix).AppendFormat("(void)memcpy_s(%s, sizeof(%s), %s, sizeof(%s));\n", param->GetName().string(),
type->EmitCType(TypeMode::NO_MODE).string(), cpName.string(), type->EmitCType(TypeMode::NO_MODE).string());
@@ -264,13 +264,6 @@ void CServiceStubCodeEmitter::EmitReadStubMethodParameter(const AutoPtr<ASTParam
}
}
void CServiceStubCodeEmitter::EmitWriteStubMethodParameter(const AutoPtr<ASTParameter>& param,
const String& parcelName, StringBuilder& sb, const String& prefix)
{
AutoPtr<ASTType> type = param->GetType();
type->EmitCStubWriteVar(parcelName, param->GetName(), sb, prefix);
}
void CServiceStubCodeEmitter::EmitCallParameter(StringBuilder& sb, const AutoPtr<ASTType>& type, ParamAttr attribute,
const String& name)
{
@@ -287,7 +280,6 @@ void CServiceStubCodeEmitter::EmitCallParameter(StringBuilder& sb, const AutoPtr
}
}
void CServiceStubCodeEmitter::EmitError(const AutoPtr<ASTParameter>& param, StringBuilder& sb, const String& prefix)
{
AutoPtr<ASTType> type = param->GetType();
@@ -295,7 +287,7 @@ void CServiceStubCodeEmitter::EmitError(const AutoPtr<ASTParameter>& param, Stri
case TypeKind::TYPE_STRING:
case TypeKind::TYPE_UNION: {
sb.Append(prefix).AppendFormat("if (%s != NULL) {\n", param->GetName().string());
sb.Append(prefix + TAB).AppendFormat("OsalMemFree(%s);\n", param->GetName().string());
sb.Append(prefix + g_tab).AppendFormat("OsalMemFree(%s);\n", param->GetName().string());
sb.Append(prefix).Append("}\n\n");
break;
}
@@ -309,19 +301,19 @@ void CServiceStubCodeEmitter::EmitError(const AutoPtr<ASTParameter>& param, Stri
if (elementType->GetTypeKind() == TypeKind::TYPE_STRING
|| elementType->GetTypeKind() == TypeKind::TYPE_STRUCT) {
sb.Append(prefix + TAB).AppendFormat("for (uint32_t i = 0; i < %s; i++) {\n", lenName.string());
sb.Append(prefix + g_tab).AppendFormat("for (uint32_t i = 0; i < %s; i++) {\n", lenName.string());
String elementName = String::Format("%s[i]", param->GetName().string());
if (elementType->GetTypeKind() == TypeKind::TYPE_STRING) {
sb.Append(prefix + TAB + TAB).AppendFormat("if (%s != NULL) {\n", elementName.string());
sb.Append(prefix + TAB + TAB + TAB).AppendFormat("OsalMemFree(%s);\n", elementName.string());
sb.Append(prefix + TAB + TAB).Append("}\n");
sb.Append(prefix + g_tab + g_tab).AppendFormat("if (%s != NULL) {\n", elementName.string());
sb.Append(prefix + g_tab + g_tab + g_tab).AppendFormat("OsalMemFree(%s);\n", elementName.string());
sb.Append(prefix + g_tab + g_tab).Append("}\n");
} else if (elementType->GetTypeKind() == TypeKind::TYPE_STRUCT) {
sb.Append(prefix + TAB + TAB + TAB).AppendFormat("%sFree(&%s, false);\n",
sb.Append(prefix + g_tab + g_tab + g_tab).AppendFormat("%sFree(&%s, false);\n",
elementType->GetName().string(), elementName.string());
}
sb.Append(prefix + TAB).Append("}\n");
sb.Append(prefix + g_tab).Append("}\n");
}
sb.Append(prefix + TAB).AppendFormat("OsalMemFree(%s);\n", param->GetName().string());
sb.Append(prefix + g_tab).AppendFormat("OsalMemFree(%s);\n", param->GetName().string());
sb.Append(prefix).Append("}\n");
sb.Append("\n");
break;
@@ -336,26 +328,26 @@ void CServiceStubCodeEmitter::EmitError(const AutoPtr<ASTParameter>& param, Stri
if (elementType->GetTypeKind() == TypeKind::TYPE_STRING
|| elementType->GetTypeKind() == TypeKind::TYPE_STRUCT) {
sb.Append(prefix + TAB).AppendFormat("for (uint32_t i = 0; i < %s; i++) {\n", lenName.string());
sb.Append(prefix + g_tab).AppendFormat("for (uint32_t i = 0; i < %s; i++) {\n", lenName.string());
String elementName = String::Format("%s[i]", param->GetName().string());
if (elementType->GetTypeKind() == TypeKind::TYPE_STRING) {
sb.Append(prefix + TAB + TAB).AppendFormat("if (%s != NULL) {\n", elementName.string());
sb.Append(prefix + TAB + TAB + TAB).AppendFormat("OsalMemFree(%s);\n", elementName.string());
sb.Append(prefix + TAB + TAB).Append("}\n");
sb.Append(prefix + g_tab + g_tab).AppendFormat("if (%s != NULL) {\n", elementName.string());
sb.Append(prefix + g_tab + g_tab + g_tab).AppendFormat("OsalMemFree(%s);\n", elementName.string());
sb.Append(prefix + g_tab + g_tab).Append("}\n");
} else if (elementType->GetTypeKind() == TypeKind::TYPE_STRUCT) {
sb.Append(prefix + TAB + TAB + TAB).AppendFormat("%sFree(&%s, false);\n",
sb.Append(prefix + g_tab + g_tab + g_tab).AppendFormat("%sFree(&%s, false);\n",
elementType->GetName().string(), elementName.string());
}
sb.Append(prefix + TAB).Append("}\n");
sb.Append(prefix + g_tab).Append("}\n");
}
sb.Append(prefix + TAB).AppendFormat("OsalMemFree(%s);\n", param->GetName().string());
sb.Append(prefix + g_tab).AppendFormat("OsalMemFree(%s);\n", param->GetName().string());
sb.Append(prefix).Append("}\n");
sb.Append("\n");
break;
}
case TypeKind::TYPE_STRUCT: {
sb.Append(prefix).AppendFormat("if (%s != NULL) {\n", param->GetName().string());
sb.Append(prefix + TAB).AppendFormat("%sFree(%s, true);\n",
sb.Append(prefix + g_tab).AppendFormat("%sFree(%s, true);\n",
type->GetName().string(), param->GetName().string());
sb.Append(prefix).Append("}\n\n");
break;
@@ -377,33 +369,33 @@ void CServiceStubCodeEmitter::EmitServiceStubOnRequestMethodImpl(StringBuilder&
sb.Append(prefix).AppendFormat("int32_t %sServiceOnRemoteRequest(struct HdfRemoteService *service, int %s,\n",
infName_.string(), codeName.string());
}
sb.Append(prefix + TAB).Append("struct HdfSBuf *data, struct HdfSBuf *reply)\n");
sb.Append(prefix + g_tab).Append("struct HdfSBuf *data, struct HdfSBuf *reply)\n");
sb.Append(prefix).Append("{\n");
sb.Append(prefix + TAB).AppendFormat("struct %s *serviceImpl = (struct %s*)service;\n",
sb.Append(prefix + g_tab).AppendFormat("struct %s *serviceImpl = (struct %s*)service;\n",
interfaceName_.string(), interfaceName_.string());
sb.Append(prefix + TAB).AppendFormat("switch (%s) {\n", codeName.string());
sb.Append(prefix + g_tab).AppendFormat("switch (%s) {\n", codeName.string());
for (size_t i = 0; i < interface_->GetMethodNumber(); i++) {
AutoPtr<ASTMethod> method = interface_->GetMethod(i);
sb.Append(prefix + TAB + TAB).AppendFormat("case CMD_%s:\n", ConstantName(method->GetName()).string());
sb.Append(prefix + TAB + TAB + TAB).AppendFormat("return SerStub%s(serviceImpl, data, reply);\n",
sb.Append(prefix + g_tab + g_tab).AppendFormat("case CMD_%s:\n", ConstantName(method->GetName()).string());
sb.Append(prefix + g_tab + g_tab + g_tab).AppendFormat("return SerStub%s(serviceImpl, data, reply);\n",
method->GetName().string());
}
sb.Append(prefix + TAB + TAB).Append("default: {\n");
sb.Append(prefix + TAB + TAB + TAB).AppendFormat(
sb.Append(prefix + g_tab + g_tab).Append("default: {\n");
sb.Append(prefix + g_tab + g_tab + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: not support cmd %%{public}d\", __func__, %s);\n", codeName.string());
sb.Append(prefix + TAB + TAB + TAB).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB + TAB).Append("}\n");
sb.Append(prefix + TAB).Append("}\n");
sb.Append(prefix + g_tab + g_tab + g_tab).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab + g_tab).Append("}\n");
sb.Append(prefix + g_tab).Append("}\n");
sb.Append("}\n");
}
void CServiceStubCodeEmitter::EmitCbStubDefinitions(StringBuilder& sb)
{
sb.AppendFormat("struct %sStub {\n", infName_.string());
sb.Append(TAB).AppendFormat("struct %s service;\n", interfaceName_.string());
sb.Append(TAB).Append("struct HdfRemoteDispatcher dispatcher;\n");
sb.Append(g_tab).AppendFormat("struct %s service;\n", interfaceName_.string());
sb.Append(g_tab).Append("struct HdfRemoteDispatcher dispatcher;\n");
sb.Append("};\n");
}
@@ -413,25 +405,25 @@ void CServiceStubCodeEmitter::EmitCbStubObtainImpl(StringBuilder& sb)
String objName = "stub";
sb.AppendFormat("struct %s* %sStubObtain()\n", interfaceName_.string(), infName_.string());
sb.Append("{\n");
sb.Append(TAB).AppendFormat("struct %s* %s = (struct %s*)OsalMemAlloc(sizeof(struct %s));\n",
sb.Append(g_tab).AppendFormat("struct %s* %s = (struct %s*)OsalMemAlloc(sizeof(struct %s));\n",
stubTypeName.string(), objName.string(), stubTypeName.string(), stubTypeName.string());
sb.Append(TAB).AppendFormat("if (stub == NULL) {\n", objName.string());
sb.Append(TAB).Append(TAB).AppendFormat(
sb.Append(g_tab).AppendFormat("if (stub == NULL) {\n", objName.string());
sb.Append(g_tab).Append(g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: OsalMemAlloc %s obj failed!\", __func__);\n", stubTypeName.string());
sb.Append(TAB).Append(TAB).AppendFormat("return NULL;\n");
sb.Append(TAB).Append("}\n\n");
sb.Append(TAB).AppendFormat("%s->dispatcher.Dispatch = %sServiceOnRemoteRequest;\n",
sb.Append(g_tab).Append(g_tab).AppendFormat("return NULL;\n");
sb.Append(g_tab).Append("}\n\n");
sb.Append(g_tab).AppendFormat("%s->dispatcher.Dispatch = %sServiceOnRemoteRequest;\n",
objName.string(), infName_.string());
sb.Append(TAB).AppendFormat(
sb.Append(g_tab).AppendFormat(
"%s->service.remote = HdfRemoteServiceObtain((struct HdfObject*)%s, &(%s->dispatcher));\n",
objName.string(), objName.string(), objName.string());
sb.Append(TAB).AppendFormat("if (%s->service.remote == NULL) {\n", objName.string());
sb.Append(TAB).Append(TAB).AppendFormat(
sb.Append(g_tab).AppendFormat("if (%s->service.remote == NULL) {\n", objName.string());
sb.Append(g_tab).Append(g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: %s->service.remote is null\", __func__);\n", objName.string());
sb.Append(TAB).Append(TAB).Append("return NULL;\n");
sb.Append(TAB).Append("}\n\n");
sb.Append(TAB).AppendFormat("%sServiceConstruct(&%s->service);\n", infName_.string(), objName.string());
sb.Append(TAB).AppendFormat("return &%s->service;\n", objName.string());
sb.Append(g_tab).Append(g_tab).Append("return NULL;\n");
sb.Append(g_tab).Append("}\n\n");
sb.Append(g_tab).AppendFormat("%sServiceConstruct(&%s->service);\n", infName_.string(), objName.string());
sb.Append(g_tab).AppendFormat("return &%s->service;\n", objName.string());
sb.Append("}\n");
}
@@ -439,10 +431,10 @@ void CServiceStubCodeEmitter::EmitCbStubReleaseImpl(StringBuilder& sb)
{
sb.AppendFormat("void %sStubRelease(struct %s *stub)\n", infName_.string(), interfaceName_.string());
sb.Append("{\n");
sb.Append(TAB).Append("if (stub == NULL) {\n");
sb.Append(TAB).Append(TAB).Append("return;\n");
sb.Append(TAB).Append("}\n");
sb.Append(TAB).Append("OsalMemFree(stub);\n");
sb.Append(g_tab).Append("if (stub == NULL) {\n");
sb.Append(g_tab).Append(g_tab).Append("return;\n");
sb.Append(g_tab).Append("}\n");
sb.Append(g_tab).Append("OsalMemFree(stub);\n");
sb.Append("}");
}
} // namespace HDI
@@ -41,15 +41,6 @@ private:
void EmitReadStubMethodParameter(const AutoPtr<ASTParameter>& param, const String& parcelName, StringBuilder& sb,
const String& prefix);
void EmitReadStubVariable(const String& parcelName, const String& name, const AutoPtr<ASTType>& type,
StringBuilder& sb, const String& prefix);
void EmitWriteStubMethodParameter(const AutoPtr<ASTParameter>& param, const String& parcelName, StringBuilder& sb,
const String& prefix);
void EmitWriteStubVariable(const String& parcelName, const String& name, const AutoPtr<ASTType>& type,
StringBuilder& sb, const String& prefix);
void EmitCallParameter(StringBuilder& sb, const AutoPtr<ASTType>& type, ParamAttr attribute, const String& name);
void EmitError(const AutoPtr<ASTParameter>& param, StringBuilder& sb, const String& prefix);
-3
View File
@@ -10,9 +10,6 @@
#define OHOS_HDI_CODEGENERATOR_H
#include "ast/ast.h"
#include "util/autoptr.h"
#include "util/light_refcount_base.h"
#include "util/string.h"
namespace OHOS {
namespace HDI {
@@ -150,21 +150,21 @@ void CppClientInterfaceCodeEmitter::EmitInterfaceDecl(StringBuilder& sb)
{
sb.AppendFormat("class %s : public IRemoteBroker {\n", interface_->GetName().string());
sb.Append("public:\n");
EmitInterfaceBody(sb, TAB);
EmitInterfaceBody(sb, g_tab);
sb.Append("};\n\n");
}
void CppClientInterfaceCodeEmitter::EmitInterfaceBody(StringBuilder& sb, const String& prefix)
{
sb.Append(TAB).AppendFormat("DECLARE_INTERFACE_DESCRIPTOR(u\"%s\");\n", interfaceFullName_.string());
sb.Append(g_tab).AppendFormat("DECLARE_INTERFACE_DESCRIPTOR(u\"%s\");\n", interfaceFullName_.string());
sb.Append("\n");
EmitInterfaceDestruction(sb, TAB);
EmitInterfaceDestruction(sb, g_tab);
sb.Append("\n");
if (!isCallbackInterface()) {
EmitInterfaceGetMethodDecl(sb, TAB);
EmitInterfaceGetMethodDecl(sb, g_tab);
sb.Append("\n");
}
EmitInterfaceMethodsDecl(sb, TAB);
EmitInterfaceMethodsDecl(sb, g_tab);
}
void CppClientInterfaceCodeEmitter::EmitInterfaceDestruction(StringBuilder& sb, const String& prefix)
@@ -205,7 +205,7 @@ void CppClientInterfaceCodeEmitter::EmitInterfaceMethodDecl(const AutoPtr<ASTMet
}
paramStr.Append(") = 0;");
sb.Append(SpecificationParam(paramStr, prefix + TAB));
sb.Append(SpecificationParam(paramStr, prefix + g_tab));
sb.Append("\n");
}
}
@@ -75,20 +75,20 @@ void CppClientProxyCodeEmitter::EmitProxyDecl(StringBuilder& sb, const String& p
sb.AppendFormat("class %s : public IRemoteProxy<%s> {\n",
proxyName_.string(), interfaceName_.string());
sb.Append("public:\n");
EmitProxyConstructor(sb, TAB);
EmitProxyConstructor(sb, g_tab);
sb.Append("\n");
EmitProxyMethodDecls(sb, TAB);
EmitProxyMethodDecls(sb, g_tab);
sb.Append("\n");
sb.Append("private:\n");
EmitProxyConstants(sb, TAB);
EmitProxyConstants(sb, g_tab);
sb.Append("};\n");
}
void CppClientProxyCodeEmitter::EmitProxyConstructor(StringBuilder& sb, const String& prefix)
{
sb.Append(prefix).AppendFormat("explicit %s(\n", proxyName_.string());
sb.Append(prefix + TAB).Append("const sptr<IRemoteObject>& remote)\n");
sb.Append(prefix + TAB).AppendFormat(": IRemoteProxy<%s>(remote)\n", interfaceName_.string());
sb.Append(prefix + g_tab).Append("const sptr<IRemoteObject>& remote)\n");
sb.Append(prefix + g_tab).AppendFormat(": IRemoteProxy<%s>(remote)\n", interfaceName_.string());
sb.Append(prefix).Append("{}\n");
sb.Append("\n");
sb.Append(prefix).AppendFormat("virtual ~%s() {}\n", proxyName_.string());
@@ -124,7 +124,7 @@ void CppClientProxyCodeEmitter::EmitProxyMethodDecl(const AutoPtr<ASTMethod>& me
paramStr.Append(") override;");
sb.Append(SpecificationParam(paramStr, prefix + TAB));
sb.Append(SpecificationParam(paramStr, prefix + g_tab));
sb.Append("\n");
}
}
@@ -204,23 +204,23 @@ void CppClientProxyCodeEmitter::EmitGetMethodImpl(StringBuilder& sb, const Strin
sb.Append(prefix).AppendFormat("sptr<%s> %s::Get()\n",
interface_->GetName().string(), interface_->GetName().string());
sb.Append(prefix).Append("{\n");
sb.Append(prefix + TAB).Append("do {\n");
sb.Append(prefix + TAB + TAB).Append("using namespace OHOS::HDI::ServiceManager::V1_0;\n");
sb.Append(prefix + TAB + TAB).Append("auto servMgr = IServiceManager::Get();\n");
sb.Append(prefix + TAB + TAB).Append("if (servMgr == nullptr) {\n");
sb.Append(prefix + TAB + TAB + TAB).Append("HDF_LOGE(\"%{public}s:get IServiceManager failed!\", __func__);\n");
sb.Append(prefix + TAB + TAB + TAB).Append("break;\n");
sb.Append(prefix + TAB + TAB).Append("}\n\n");
sb.Append(prefix + TAB + TAB).AppendFormat("sptr<IRemoteObject> remote = servMgr->GetService(\"%sService\");\n",
sb.Append(prefix + g_tab).Append("do {\n");
sb.Append(prefix + g_tab + g_tab).Append("using namespace OHOS::HDI::ServiceManager::V1_0;\n");
sb.Append(prefix + g_tab + g_tab).Append("auto servMgr = IServiceManager::Get();\n");
sb.Append(prefix + g_tab + g_tab).Append("if (servMgr == nullptr) {\n");
sb.Append(prefix + g_tab + g_tab + g_tab).Append("HDF_LOGE(\"%{public}s:get IServiceManager failed!\", __func__);\n");
sb.Append(prefix + g_tab + g_tab + g_tab).Append("break;\n");
sb.Append(prefix + g_tab + g_tab).Append("}\n\n");
sb.Append(prefix + g_tab + g_tab).AppendFormat("sptr<IRemoteObject> remote = servMgr->GetService(\"%sService\");\n",
infName_.string());
sb.Append(prefix + TAB + TAB).Append("if (remote != nullptr) {\n");
sb.Append(prefix + TAB + TAB + TAB).AppendFormat("return iface_cast<%s>(remote);\n",
sb.Append(prefix + g_tab + g_tab).Append("if (remote != nullptr) {\n");
sb.Append(prefix + g_tab + g_tab + g_tab).AppendFormat("return iface_cast<%s>(remote);\n",
interface_->GetName().string());
sb.Append(prefix + TAB + TAB).Append("}\n");
sb.Append(prefix + TAB).Append("} while(false);\n");
sb.Append(prefix + TAB).AppendFormat(
sb.Append(prefix + g_tab + g_tab).Append("}\n");
sb.Append(prefix + g_tab).Append("} while(false);\n");
sb.Append(prefix + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s: get %sService failed!\", __func__);\n", infName_.string());
sb.Append(prefix + TAB).Append("return nullptr;\n");
sb.Append(prefix + g_tab).Append("return nullptr;\n");
sb.Append(prefix).Append("}\n");
}
@@ -254,7 +254,7 @@ void CppClientProxyCodeEmitter::EmitProxyMethodImpl(const AutoPtr<ASTMethod>& me
paramStr.Append(")");
sb.Append(SpecificationParam(paramStr, prefix + TAB));
sb.Append(SpecificationParam(paramStr, prefix + g_tab));
sb.Append("\n");
}
EmitProxyMethodBody(method, sb, prefix);
@@ -264,41 +264,41 @@ void CppClientProxyCodeEmitter::EmitProxyMethodBody(const AutoPtr<ASTMethod>& me
const String& prefix)
{
sb.Append(prefix).Append("{\n");
sb.Append(prefix + TAB).Append("MessageParcel data;\n");
sb.Append(prefix + TAB).Append("MessageParcel reply;\n");
sb.Append(prefix + TAB).Append("MessageOption option(MessageOption::TF_SYNC);\n");
sb.Append(prefix + g_tab).Append("MessageParcel data;\n");
sb.Append(prefix + g_tab).Append("MessageParcel reply;\n");
sb.Append(prefix + g_tab).Append("MessageOption option(MessageOption::TF_SYNC);\n");
sb.Append("\n");
if (method->GetParameterNumber() > 0) {
for (size_t i = 0; i < method->GetParameterNumber(); i++) {
AutoPtr<ASTParameter> param = method->GetParameter(i);
if (param->GetAttribute() == ParamAttr::PARAM_IN) {
EmitWriteMethodParameter(param, "data", sb, prefix + TAB);
EmitWriteMethodParameter(param, "data", sb, prefix + g_tab);
}
}
sb.Append("\n");
}
sb.Append(prefix + TAB).AppendFormat("int32_t ec = Remote()->SendRequest(CMD_%s, data, reply, option);\n",
sb.Append(prefix + g_tab).AppendFormat("int32_t ec = Remote()->SendRequest(CMD_%s, data, reply, option);\n",
ConstantName(method->GetName()).string());
sb.Append(prefix + TAB).Append("if (ec != HDF_SUCCESS) {\n");
sb.Append(prefix + TAB + TAB).AppendFormat(
sb.Append(prefix + g_tab).Append("if (ec != HDF_SUCCESS) {\n");
sb.Append(prefix + g_tab + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s failed, error code is %%d\", ec);\n", method->GetName().string());
sb.Append(prefix + TAB + TAB).Append("return ec;\n");
sb.Append(prefix + TAB).Append("}\n");
sb.Append(prefix + g_tab + g_tab).Append("return ec;\n");
sb.Append(prefix + g_tab).Append("}\n");
if (!method->IsOneWay()) {
sb.Append("\n");
for (size_t i = 0; i < method->GetParameterNumber(); i++) {
AutoPtr<ASTParameter> param = method->GetParameter(i);
if (param->GetAttribute() == ParamAttr::PARAM_OUT) {
EmitReadMethodParameter(param, "reply", false, sb, prefix + TAB);
EmitReadMethodParameter(param, "reply", false, sb, prefix + g_tab);
sb.Append("\n");
}
}
}
sb.Append(prefix + TAB).Append("return HDF_SUCCESS;\n");
sb.Append(prefix + g_tab).Append("return HDF_SUCCESS;\n");
sb.Append(prefix).Append("}\n");
}
} // namespace HDI
+1 -3
View File
@@ -14,8 +14,6 @@
namespace OHOS {
namespace HDI {
const char* CppCodeEmitter::TAB = " ";
CppCodeEmitter::CppCodeEmitter(const AutoPtr<AST>& ast, const String& targetDirectory)
: LightRefCountBase(), ast_(ast), directory_(targetDirectory)
{
@@ -69,7 +67,7 @@ void CppCodeEmitter::EmitInterfaceMethodCommands(StringBuilder& sb, const String
sb.Append(prefix).Append("enum {\n");
for (size_t i = 0; i < interface_->GetMethodNumber(); i++) {
AutoPtr<ASTMethod> method = interface_->GetMethod(i);
sb.Append(TAB).AppendFormat("CMD_%s,\n", ConstantName(method->GetName()).string());
sb.Append(g_tab).AppendFormat("CMD_%s,\n", ConstantName(method->GetName()).string());
}
sb.Append(prefix).Append("};\n");
}
-2
View File
@@ -83,8 +83,6 @@ protected:
String SpecificationParam(StringBuilder& sb, const String& prefix);
static const char* TAB;
AutoPtr<AST> ast_;
AutoPtr<ASTInterfaceType> interface_;
@@ -236,13 +236,13 @@ void CppCustomTypesCodeEmitter::EmitCustomTypeMarshallingImpl(StringBuilder& sb,
String memberName = type->GetMemberName(i);
String name = String::Format("%s.%s", objName.string(), memberName.string());
memberType->EmitCppMarshalling("data", name, sb, TAB);
memberType->EmitCppMarshalling("data", name, sb, g_tab);
if (i + 1 < type->GetMemberNumber()) {
sb.Append("\n");
}
}
sb.Append(TAB).Append("return true;\n");
sb.Append(g_tab).Append("return true;\n");
sb.Append("}\n");
}
@@ -269,15 +269,15 @@ void CppCustomTypesCodeEmitter::EmitCustomTypeUnmarshallingImpl(StringBuilder& s
if (memberType->GetTypeKind() == TypeKind::TYPE_UNION) {
String cpName = String::Format("%sCp", memberName.string());
memberType->EmitCppUnMarshalling("data", cpName, sb, TAB, false);
sb.Append(TAB).AppendFormat("(void)memcpy_s(&%s, sizeof(%s), %s, sizeof(%s));\n", name.string(),
memberType->EmitCppUnMarshalling("data", cpName, sb, g_tab, false);
sb.Append(g_tab).AppendFormat("(void)memcpy_s(&%s, sizeof(%s), %s, sizeof(%s));\n", name.string(),
memberType->EmitCppType().string(), cpName.string(), memberType->EmitCppType().string());
} else {
memberType->EmitCppUnMarshalling("data", name, sb, TAB, false);
memberType->EmitCppUnMarshalling("data", name, sb, g_tab, false);
}
}
sb.Append(TAB).AppendFormat("return true;\n", objName.string());
sb.Append(g_tab).AppendFormat("return true;\n", objName.string());
sb.Append("}\n");
}
@@ -87,8 +87,8 @@ void CppServiceDriverCodeEmitter::EmitDriverUsings(StringBuilder& sb)
void CppServiceDriverCodeEmitter::EmitDriverServiceDecl(StringBuilder& sb)
{
sb.AppendFormat("struct Hdf%s%s {\n", infName_.string(), "Service");
sb.Append(TAB).Append("struct IDeviceIoService ioservice;\n");
sb.Append(TAB).Append("void *instance;\n");
sb.Append(g_tab).Append("struct IDeviceIoService ioservice;\n");
sb.Append(g_tab).Append("void *instance;\n");
sb.Append("};\n");
}
@@ -96,13 +96,13 @@ void CppServiceDriverCodeEmitter::EmitDriverDispatch(StringBuilder& sb)
{
sb.AppendFormat("static int32_t %sServiceDispatch(struct HdfDeviceIoClient *client, int cmdId,\n",
infName_.string());
sb.Append(TAB).Append("struct HdfSBuf *data, struct HdfSBuf *reply)\n");
sb.Append(g_tab).Append("struct HdfSBuf *data, struct HdfSBuf *reply)\n");
sb.Append("{\n");
sb.Append(TAB).AppendFormat("struct Hdf%sService *hdf%sService = CONTAINER_OF(\n",
sb.Append(g_tab).AppendFormat("struct Hdf%sService *hdf%sService = CONTAINER_OF(\n",
infName_.string(), infName_.string());
sb.Append(TAB).Append(TAB).AppendFormat("client->device->service, struct Hdf%sService, ioservice);\n",
sb.Append(g_tab).Append(g_tab).AppendFormat("client->device->service, struct Hdf%sService, ioservice);\n",
infName_.string());
sb.Append(TAB).AppendFormat("return %sServiceOnRemoteRequest(hdf%sService->instance, cmdId, data, reply);\n",
sb.Append(g_tab).AppendFormat("return %sServiceOnRemoteRequest(hdf%sService->instance, cmdId, data, reply);\n",
infName_.string(), infName_.string());
sb.Append("}\n");
}
@@ -111,8 +111,8 @@ void CppServiceDriverCodeEmitter::EmitDriverInit(StringBuilder& sb)
{
sb.AppendFormat("int Hdf%sDriverInit(struct HdfDeviceObject *deviceObject)\n", infName_.string());
sb.Append("{\n");
sb.Append(TAB).AppendFormat("HDF_LOGI(\"Hdf%sDriverInit enter, new hdi impl.\");\n", infName_.string());
sb.Append(TAB).Append("return HDF_SUCCESS;\n");
sb.Append(g_tab).AppendFormat("HDF_LOGI(\"Hdf%sDriverInit enter, new hdi impl.\");\n", infName_.string());
sb.Append(g_tab).Append("return HDF_SUCCESS;\n");
sb.Append("}\n");
}
@@ -120,25 +120,25 @@ void CppServiceDriverCodeEmitter::EmitDriverBind(StringBuilder& sb)
{
sb.AppendFormat("int Hdf%sDriverBind(struct HdfDeviceObject *deviceObject)\n", infName_.string());
sb.Append("{\n");
sb.Append(TAB).AppendFormat("HDF_LOGI(\"Hdf%sDriverBind enter.\");\n", infName_.string());
sb.Append(g_tab).AppendFormat("HDF_LOGI(\"Hdf%sDriverBind enter.\");\n", infName_.string());
sb.Append("\n");
sb.Append(TAB).AppendFormat("struct Hdf%sService *hdf%sService = (struct Hdf%sService *)OsalMemAlloc(\n",
sb.Append(g_tab).AppendFormat("struct Hdf%sService *hdf%sService = (struct Hdf%sService *)OsalMemAlloc(\n",
infName_.string(), infName_.string(), infName_.string());
sb.Append(TAB).Append(TAB).AppendFormat("sizeof(struct Hdf%sService));\n", infName_.string());
sb.Append(TAB).AppendFormat("if (hdf%sService == nullptr) {\n", infName_.string());
sb.Append(TAB).Append(TAB).AppendFormat("HDF_LOGE(\"Hdf%sDriverBind OsalMemAlloc Hdf%sService failed!\");\n",
sb.Append(g_tab).Append(g_tab).AppendFormat("sizeof(struct Hdf%sService));\n", infName_.string());
sb.Append(g_tab).AppendFormat("if (hdf%sService == nullptr) {\n", infName_.string());
sb.Append(g_tab).Append(g_tab).AppendFormat("HDF_LOGE(\"Hdf%sDriverBind OsalMemAlloc Hdf%sService failed!\");\n",
infName_.string(), infName_.string());
sb.Append(TAB).Append(TAB).Append("return HDF_FAILURE;\n");
sb.Append(TAB).Append("}\n");
sb.Append(g_tab).Append(g_tab).Append("return HDF_FAILURE;\n");
sb.Append(g_tab).Append("}\n");
sb.Append("\n");
sb.Append(TAB).AppendFormat("hdf%sService->ioservice.Dispatch = %sServiceDispatch;\n",
sb.Append(g_tab).AppendFormat("hdf%sService->ioservice.Dispatch = %sServiceDispatch;\n",
infName_.string(), infName_.string());
sb.Append(TAB).AppendFormat("hdf%sService->ioservice.Open = NULL;\n", infName_.string());
sb.Append(TAB).AppendFormat("hdf%sService->ioservice.Release = NULL;\n", infName_.string());
sb.Append(TAB).AppendFormat("hdf%sService->instance = %sStubInstance();\n", infName_.string(), infName_.string());
sb.Append(g_tab).AppendFormat("hdf%sService->ioservice.Open = NULL;\n", infName_.string());
sb.Append(g_tab).AppendFormat("hdf%sService->ioservice.Release = NULL;\n", infName_.string());
sb.Append(g_tab).AppendFormat("hdf%sService->instance = %sStubInstance();\n", infName_.string(), infName_.string());
sb.Append("\n");
sb.Append(TAB).AppendFormat("deviceObject->service = &hdf%sService->ioservice;\n", infName_.string());
sb.Append(TAB).Append("return HDF_SUCCESS;\n");
sb.Append(g_tab).AppendFormat("deviceObject->service = &hdf%sService->ioservice;\n", infName_.string());
sb.Append(g_tab).Append("return HDF_SUCCESS;\n");
sb.Append("}\n");
}
@@ -146,18 +146,18 @@ void CppServiceDriverCodeEmitter::EmitDriverRelease(StringBuilder& sb)
{
sb.AppendFormat("void Hdf%sDriverRelease(struct HdfDeviceObject *deviceObject)", infName_.string());
sb.Append("{\n");
sb.Append(TAB).AppendFormat("HDF_LOGI(\"Hdf%sDriverRelease enter.\");\n", interfaceName_.string());
sb.Append(g_tab).AppendFormat("HDF_LOGI(\"Hdf%sDriverRelease enter.\");\n", interfaceName_.string());
sb.Append("}\n");
}
void CppServiceDriverCodeEmitter::EmitDriverEntryDefinition(StringBuilder& sb)
{
sb.AppendFormat("struct HdfDriverEntry g_%sDriverEntry = {\n", infName_.ToLowerCase().string());
sb.Append(TAB).Append(".moduleVersion = 1,\n");
sb.Append(TAB).AppendFormat(".moduleName = \"%s\",\n", infName_.ToLowerCase().string());
sb.Append(TAB).AppendFormat(".Bind = Hdf%sDriverBind,\n", infName_.string());
sb.Append(TAB).AppendFormat(".Init = Hdf%sDriverInit,\n", infName_.string());
sb.Append(TAB).AppendFormat(".Release = Hdf%sDriverRelease,\n", infName_.string());
sb.Append(g_tab).Append(".moduleVersion = 1,\n");
sb.Append(g_tab).AppendFormat(".moduleName = \"%s\",\n", infName_.ToLowerCase().string());
sb.Append(g_tab).AppendFormat(".Bind = Hdf%sDriverBind,\n", infName_.string());
sb.Append(g_tab).AppendFormat(".Init = Hdf%sDriverInit,\n", infName_.string());
sb.Append(g_tab).AppendFormat(".Release = Hdf%sDriverRelease,\n", infName_.string());
sb.Append("};\n");
sb.Append("\n");
sb.Append("#ifndef __cplusplus\n");
@@ -79,7 +79,7 @@ void CppServiceImplCodeEmitter::EmitServiceImplDecl(StringBuilder& sb)
sb.AppendFormat("class %sService : public %s {\n", infName_.string(), stubName_.string());
}
sb.Append("public:\n");
EmitServiceImplBody(sb, TAB);
EmitServiceImplBody(sb, g_tab);
sb.Append("};\n");
sb.Append("\n");
@@ -88,9 +88,9 @@ void CppServiceImplCodeEmitter::EmitServiceImplDecl(StringBuilder& sb)
void CppServiceImplCodeEmitter::EmitServiceImplBody(StringBuilder& sb, const String& prefix)
{
EmitServiceImplDestruction(sb, TAB);
EmitServiceImplDestruction(sb, g_tab);
sb.Append("\n");
EmitServiceImplMethodDecls(sb, TAB);
EmitServiceImplMethodDecls(sb, g_tab);
}
void CppServiceImplCodeEmitter::EmitServiceImplDestruction(StringBuilder& sb, const String& prefix)
@@ -127,7 +127,7 @@ void CppServiceImplCodeEmitter::EmitServiceImplMethodDecl(const AutoPtr<ASTMetho
paramStr.Append(") override;");
sb.Append(SpecificationParam(paramStr, prefix + TAB));
sb.Append(SpecificationParam(paramStr, prefix + g_tab));
sb.Append("\n");
}
}
@@ -194,12 +194,12 @@ void CppServiceImplCodeEmitter::EmitServiceImplMethodImpl(const AutoPtr<ASTMetho
paramStr.AppendFormat(")");
sb.Append(SpecificationParam(paramStr, prefix + TAB));
sb.Append(SpecificationParam(paramStr, prefix + g_tab));
sb.Append("\n");
}
sb.Append(prefix).Append("{\n");
sb.Append(prefix + TAB).Append("return HDF_SUCCESS;\n");
sb.Append(prefix + g_tab).Append("return HDF_SUCCESS;\n");
sb.Append(prefix).Append("}\n");
}
} // namespace HDI
@@ -153,15 +153,15 @@ void CppServiceInterfaceCodeEmitter::EmitInterfaceDecl(StringBuilder& sb)
sb.AppendFormat("class %s {\n", interface_->GetName().string());
sb.Append("public:\n");
EmitInterfaceBody(sb, TAB);
EmitInterfaceBody(sb, g_tab);
sb.Append("};\n");
}
void CppServiceInterfaceCodeEmitter::EmitInterfaceBody(StringBuilder& sb, const String& prefix)
{
EmitInterfaceDestruction(sb, TAB);
EmitInterfaceDestruction(sb, g_tab);
sb.Append("\n");
EmitInterfaceMethods(sb, TAB);
EmitInterfaceMethods(sb, g_tab);
}
void CppServiceInterfaceCodeEmitter::EmitInterfaceDestruction(StringBuilder& sb, const String& prefix)
@@ -199,7 +199,7 @@ void CppServiceInterfaceCodeEmitter::EmitInterfaceMethod(const AutoPtr<ASTMethod
paramStr.Append(") = 0;");
sb.Append(SpecificationParam(paramStr, prefix + TAB));
sb.Append(SpecificationParam(paramStr, prefix + g_tab));
sb.Append("\n");
}
}
@@ -85,7 +85,7 @@ void CppServiceStubCodeEmitter::EmitStubDecl(StringBuilder& sb)
sb.Append("\n");
sb.AppendFormat("class %s {\n", stubName_.string());
sb.Append("public:\n");
EmitStubBody(sb, TAB);
EmitStubBody(sb, g_tab);
sb.Append("};\n");
sb.Append("\n");
@@ -102,7 +102,7 @@ void CppServiceStubCodeEmitter::EmitCbStubDecl(StringBuilder& sb)
EmitStubUsingNamespace(sb);
sb.Append("\n");
sb.AppendFormat("class %s : public IRemoteStub<%s> {\n", stubName_.string(), interfaceName_.string());
EmitCbStubBody(sb, TAB);
EmitCbStubBody(sb, g_tab);
sb.Append("};\n");
sb.Append("\n");
EmitEndNamespace(sb);
@@ -143,7 +143,7 @@ void CppServiceStubCodeEmitter::EmitStubDestruction(StringBuilder& sb, const Str
void CppServiceStubCodeEmitter::EmitCbStubOnRequestDecl(StringBuilder& sb, const String& prefix)
{
sb.Append(prefix).Append("int32_t OnRemoteRequest(uint32_t code, MessageParcel &data, MessageParcel &reply,\n");
sb.Append(prefix + TAB).Append("MessageOption &option) override;\n");
sb.Append(prefix + g_tab).Append("MessageOption &option) override;\n");
}
void CppServiceStubCodeEmitter::EmitStubMethodDecls(StringBuilder& sb, const String& prefix)
@@ -174,7 +174,7 @@ void CppServiceStubCodeEmitter::EmitStubOnRequestMethodDecl(StringBuilder& sb, c
{
sb.Append(prefix).AppendFormat("int32_t %sOnRemoteRequest(int cmdId, MessageParcel& data, MessageParcel& reply,\n",
stubName_.string());
sb.Append(prefix).Append(TAB).Append("MessageOption& option);\n");
sb.Append(prefix).Append(g_tab).Append("MessageOption& option);\n");
}
void CppServiceStubCodeEmitter::EmitStubMembers(StringBuilder& sb, const String& prefix)
@@ -282,25 +282,25 @@ void CppServiceStubCodeEmitter::EmitStubMethodImpl(const AutoPtr<ASTMethod>& met
for (size_t i = 0; i < method->GetParameterNumber(); i++) {
AutoPtr<ASTParameter> param = method->GetParameter(i);
if (param->GetAttribute() == ParamAttr::PARAM_IN) {
EmitReadMethodParameter(param, "data", true, sb, prefix + TAB);
EmitReadMethodParameter(param, "data", true, sb, prefix + g_tab);
sb.Append("\n");
} else {
EmitLocalVariable(param, sb, prefix + TAB);
EmitLocalVariable(param, sb, prefix + g_tab);
sb.Append("\n");
}
}
if (method->GetParameterNumber() == 0) {
if (!isCallbackInterface()) {
sb.Append(prefix + TAB).AppendFormat("int32_t ec = service.%s();\n", method->GetName().string());
sb.Append(prefix + g_tab).AppendFormat("int32_t ec = service.%s();\n", method->GetName().string());
} else {
sb.Append(prefix + TAB).AppendFormat("int32_t ec = %s();\n", method->GetName().string());
sb.Append(prefix + g_tab).AppendFormat("int32_t ec = %s();\n", method->GetName().string());
}
} else {
if (!isCallbackInterface()) {
sb.Append(prefix + TAB).AppendFormat("int32_t ec = service.%s(", method->GetName().string());
sb.Append(prefix + g_tab).AppendFormat("int32_t ec = service.%s(", method->GetName().string());
} else {
sb.Append(prefix + TAB).AppendFormat("int32_t ec = %s(", method->GetName().string());
sb.Append(prefix + g_tab).AppendFormat("int32_t ec = %s(", method->GetName().string());
}
for (size_t i = 0; i < method->GetParameterNumber(); i++) {
@@ -313,23 +313,23 @@ void CppServiceStubCodeEmitter::EmitStubMethodImpl(const AutoPtr<ASTMethod>& met
sb.Append(");\n");
}
sb.Append(prefix + TAB).Append("if (ec != HDF_SUCCESS) {\n");
sb.Append(prefix + TAB + TAB).AppendFormat(
sb.Append(prefix + g_tab).Append("if (ec != HDF_SUCCESS) {\n");
sb.Append(prefix + g_tab + g_tab).AppendFormat(
"HDF_LOGE(\"%%{public}s failed, error code is %%d\", ec);\n", method->GetName().string());
sb.Append(prefix + TAB + TAB).Append("return ec;\n");
sb.Append(prefix + TAB).Append("}\n\n");
sb.Append(prefix + g_tab + g_tab).Append("return ec;\n");
sb.Append(prefix + g_tab).Append("}\n\n");
if (!method->IsOneWay()) {
for (size_t i = 0; i < method->GetParameterNumber(); i++) {
AutoPtr<ASTParameter> param = method->GetParameter(i);
if (param->GetAttribute() == ParamAttr::PARAM_OUT) {
EmitWriteMethodParameter(param, "reply", sb, prefix + TAB);
EmitWriteMethodParameter(param, "reply", sb, prefix + g_tab);
sb.Append("\n");
}
}
}
sb.Append(prefix + TAB).Append("return HDF_SUCCESS;\n");
sb.Append(prefix + g_tab).Append("return HDF_SUCCESS;\n");
sb.Append("}\n");
}
@@ -337,47 +337,47 @@ void CppServiceStubCodeEmitter::EmitStubOnRequestMethodImpl(StringBuilder& sb, c
{
sb.Append(prefix).AppendFormat("int32_t %s::%sOnRemoteRequest(int cmdId,\n",
stubName_.string(), stubName_.string());
sb.Append(prefix + TAB).Append("MessageParcel& data, MessageParcel& reply, MessageOption& option)\n");
sb.Append(prefix + g_tab).Append("MessageParcel& data, MessageParcel& reply, MessageOption& option)\n");
sb.Append(prefix).Append("{\n");
sb.Append(prefix + TAB).Append("switch (cmdId) {\n");
sb.Append(prefix + g_tab).Append("switch (cmdId) {\n");
for (size_t i = 0; i < interface_->GetMethodNumber(); i++) {
AutoPtr<ASTMethod> method = interface_->GetMethod(i);
sb.Append(prefix + TAB + TAB).AppendFormat("case CMD_%s:\n", ConstantName(method->GetName()).string());
sb.Append(prefix + TAB + TAB + TAB).AppendFormat("return %sStub%s(data, reply, option);\n",
sb.Append(prefix + g_tab + g_tab).AppendFormat("case CMD_%s:\n", ConstantName(method->GetName()).string());
sb.Append(prefix + g_tab + g_tab + g_tab).AppendFormat("return %sStub%s(data, reply, option);\n",
infName_.string(), method->GetName().string());
}
sb.Append(prefix + TAB + TAB).Append("default: {\n");
sb.Append(prefix + TAB + TAB + TAB).Append(
sb.Append(prefix + g_tab + g_tab).Append("default: {\n");
sb.Append(prefix + g_tab + g_tab + g_tab).Append(
"HDF_LOGE(\"%{public}s: not support cmd %{public}d\", __func__, cmdId);\n");
sb.Append(prefix + TAB + TAB + TAB).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB + TAB).Append("}\n");
sb.Append(prefix + TAB).Append("}\n");
sb.Append(prefix + g_tab + g_tab + g_tab).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab + g_tab).Append("}\n");
sb.Append(prefix + g_tab).Append("}\n");
sb.Append("}\n");
}
void CppServiceStubCodeEmitter::EmitCbStubOnRequestMethodImpl(StringBuilder& sb, const String& prefix)
{
sb.Append(prefix).AppendFormat("int32_t %s::OnRemoteRequest(uint32_t code,\n", stubName_.string());
sb.Append(prefix + TAB).Append("MessageParcel& data, MessageParcel& reply, MessageOption& option)\n");
sb.Append(prefix + g_tab).Append("MessageParcel& data, MessageParcel& reply, MessageOption& option)\n");
sb.Append(prefix).Append("{\n");
sb.Append(prefix + TAB).Append("switch (code) {\n");
sb.Append(prefix + g_tab).Append("switch (code) {\n");
for (size_t i = 0; i < interface_->GetMethodNumber(); i++) {
AutoPtr<ASTMethod> method = interface_->GetMethod(i);
sb.Append(prefix + TAB + TAB).AppendFormat("case CMD_%s:\n", ConstantName(method->GetName()).string());
sb.Append(prefix + TAB + TAB + TAB).AppendFormat("return %sStub%s(data, reply, option);\n",
sb.Append(prefix + g_tab + g_tab).AppendFormat("case CMD_%s:\n", ConstantName(method->GetName()).string());
sb.Append(prefix + g_tab + g_tab + g_tab).AppendFormat("return %sStub%s(data, reply, option);\n",
infName_.string(), method->GetName().string());
}
sb.Append(prefix + TAB + TAB).Append("default: {\n");
sb.Append(prefix + TAB + TAB + TAB).Append(
sb.Append(prefix + g_tab + g_tab).Append("default: {\n");
sb.Append(prefix + g_tab + g_tab + g_tab).Append(
"HDF_LOGE(\"%{public}s: not support cmd %{public}d\", __func__, code);\n");
sb.Append(prefix + TAB + TAB + TAB).Append("return IPCObjectStub::OnRemoteRequest(code, data, reply, option);\n");
sb.Append(prefix + TAB + TAB).Append("}\n");
sb.Append(prefix + TAB).Append("}\n");
sb.Append(prefix + g_tab + g_tab + g_tab).Append("return IPCObjectStub::OnRemoteRequest(code, data, reply, option);\n");
sb.Append(prefix + g_tab + g_tab).Append("}\n");
sb.Append(prefix + g_tab).Append("}\n");
sb.Append("}\n");
}
@@ -394,9 +394,9 @@ void CppServiceStubCodeEmitter::EmitStubInstanceMethodImpl(StringBuilder& sb, co
{
sb.Append(prefix).AppendFormat("void *%sInstance()\n", stubName_.string());
sb.Append(prefix).Append("{\n");
sb.Append(prefix + TAB).AppendFormat("using namespace %s;\n",
sb.Append(prefix + g_tab).AppendFormat("using namespace %s;\n",
EmitStubServiceUsings(interface_->GetNamespace()->ToString()).string());
sb.Append(prefix + TAB).AppendFormat("return reinterpret_cast<void *>(new %s());\n", stubName_.string());
sb.Append(prefix + g_tab).AppendFormat("return reinterpret_cast<void *>(new %s());\n", stubName_.string());
sb.Append(prefix).Append("}\n");
}
@@ -404,9 +404,9 @@ void CppServiceStubCodeEmitter::EmitStubReleaseMethodImpl(StringBuilder& sb, con
{
sb.Append(prefix).AppendFormat("void %sRelease(void *obj)\n", stubName_.string());
sb.Append(prefix).Append("{\n");
sb.Append(prefix + TAB).AppendFormat("using namespace %s;\n",
sb.Append(prefix + g_tab).AppendFormat("using namespace %s;\n",
EmitStubServiceUsings(interface_->GetNamespace()->ToString()).string());
sb.Append(prefix + TAB).AppendFormat("delete reinterpret_cast<%s *>(obj);\n", stubName_.string());
sb.Append(prefix + g_tab).AppendFormat("delete reinterpret_cast<%s *>(obj);\n", stubName_.string());
sb.Append(prefix).Append("}\n");
}
@@ -417,22 +417,22 @@ void CppServiceStubCodeEmitter::EmitServiceOnRemoteRequest(StringBuilder& sb, co
"int32_t %sServiceOnRemoteRequest(void *stub, int cmdId, struct HdfSBuf *data, struct HdfSBuf *reply)\n",
infName_.string());
sb.Append(prefix).Append("{\n");
sb.Append(prefix + TAB).AppendFormat("using namespace %s;\n",
sb.Append(prefix + g_tab).AppendFormat("using namespace %s;\n",
EmitStubServiceUsings(interface_->GetNamespace()->ToString()).string());
sb.Append(prefix + TAB).AppendFormat("%s *%s = reinterpret_cast<%s *>(stub);\n",
sb.Append(prefix + g_tab).AppendFormat("%s *%s = reinterpret_cast<%s *>(stub);\n",
stubName_.string(), stubObjName.string(), stubName_.string());
sb.Append(prefix + TAB).Append("OHOS::MessageParcel *dataParcel = nullptr;\n");
sb.Append(prefix + TAB).Append("OHOS::MessageParcel *replyParcel = nullptr;\n");
sb.Append(prefix + g_tab).Append("OHOS::MessageParcel *dataParcel = nullptr;\n");
sb.Append(prefix + g_tab).Append("OHOS::MessageParcel *replyParcel = nullptr;\n");
sb.Append("\n");
sb.Append(prefix + TAB).Append("(void)SbufToParcel(reply, &replyParcel);\n");
sb.Append(prefix + TAB).Append("if (SbufToParcel(data, &dataParcel) != HDF_SUCCESS) {\n");
sb.Append(prefix + TAB + TAB).Append(
sb.Append(prefix + g_tab).Append("(void)SbufToParcel(reply, &replyParcel);\n");
sb.Append(prefix + g_tab).Append("if (SbufToParcel(data, &dataParcel) != HDF_SUCCESS) {\n");
sb.Append(prefix + g_tab + g_tab).Append(
"HDF_LOGE(\"%{public}s:invalid data sbuf object to dispatch\", __func__);\n");
sb.Append(prefix + TAB + TAB).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + TAB).Append("}\n\n");
sb.Append(prefix + TAB).Append("OHOS::MessageOption option;\n");
sb.Append(prefix + TAB).AppendFormat("return %s->%sOnRemoteRequest(cmdId, *dataParcel, *replyParcel, option);\n",
sb.Append(prefix + g_tab + g_tab).Append("return HDF_ERR_INVALID_PARAM;\n");
sb.Append(prefix + g_tab).Append("}\n\n");
sb.Append(prefix + g_tab).Append("OHOS::MessageOption option;\n");
sb.Append(prefix + g_tab).AppendFormat("return %s->%sOnRemoteRequest(cmdId, *dataParcel, *replyParcel, option);\n",
stubObjName.string(), stubName_.string());
sb.Append(prefix).Append("}\n");
}
@@ -96,7 +96,7 @@ void JavaClientInterfaceCodeEmitter::EmitInterfaceSelfDefinedTypeImports(StringB
void JavaClientInterfaceCodeEmitter::EmitInterfaceDefinition(StringBuilder& sb)
{
sb.AppendFormat("public interface %s extends IRemoteBroker {\n", interface_->GetName().string());
EmitInterfaceMethods(sb, TAB);
EmitInterfaceMethods(sb, g_tab);
sb.Append("}");
}
@@ -128,7 +128,7 @@ void JavaClientInterfaceCodeEmitter::EmitInterfaceMethod(const AutoPtr<ASTMethod
}
paramStr.Append(") throws RemoteException;");
sb.Append(SpecificationParam(paramStr, prefix + TAB));
sb.Append(SpecificationParam(paramStr, prefix + g_tab));
sb.Append("\n");
}
}
@@ -98,17 +98,17 @@ void JavaClientProxyCodeEmitter::EmitProxyDBinderImports(StringBuilder& sb)
void JavaClientProxyCodeEmitter::EmitProxyImpl(StringBuilder& sb)
{
sb.AppendFormat("public class %s implements %s {\n", proxyName_.string(), interfaceName_.string());
EmitProxyConstants(sb, TAB);
EmitProxyConstants(sb, g_tab);
sb.Append("\n");
sb.Append(TAB).AppendFormat(
sb.Append(g_tab).AppendFormat(
"private static final HiLogLabel TAG = new HiLogLabel(HiLog.LOG_CORE, 0xD001510, \"%s\");\n",
interfaceFullName_.string());
sb.Append(TAB).Append("private final IRemoteObject remote;\n");
sb.Append(TAB).Append("private static final int ERR_OK = 0;\n");
sb.Append(g_tab).Append("private final IRemoteObject remote;\n");
sb.Append(g_tab).Append("private static final int ERR_OK = 0;\n");
sb.Append("\n");
EmitProxyConstructor(sb, TAB);
EmitProxyConstructor(sb, g_tab);
sb.Append("\n");
EmitProxyMethodImpls(sb, TAB);
EmitProxyMethodImpls(sb, g_tab);
sb.Append("};");
}
@@ -122,12 +122,12 @@ void JavaClientProxyCodeEmitter::EmitProxyConstants(StringBuilder& sb, const Str
void JavaClientProxyCodeEmitter::EmitProxyConstructor(StringBuilder& sb, const String& prefix)
{
sb.Append(prefix).AppendFormat("public %s(IRemoteObject remote) {\n", proxyName_.string());
sb.Append(prefix + TAB).Append("this.remote = remote;\n");
sb.Append(prefix + g_tab).Append("this.remote = remote;\n");
sb.Append(prefix).Append("}\n");
sb.Append("\n");
sb.Append(prefix).AppendFormat("@Override\n");
sb.Append(prefix).Append("public IRemoteObject asObject() {\n");
sb.Append(prefix + TAB).Append("return remote;\n");
sb.Append(prefix + g_tab).Append("return remote;\n");
sb.Append(prefix).Append("}\n");
}
@@ -161,7 +161,7 @@ void JavaClientProxyCodeEmitter::EmitProxyMethodImpl(const AutoPtr<ASTMethod>& m
}
paramStr.Append(") throws RemoteException");
sb.Append(SpecificationParam(paramStr, prefix + TAB));
sb.Append(SpecificationParam(paramStr, prefix + g_tab));
sb.Append("\n");
}
EmitProxyMethodBody(method, sb, prefix);
@@ -177,9 +177,9 @@ void JavaClientProxyCodeEmitter::EmitProxyMethodBody(const AutoPtr<ASTMethod>& m
const String& prefix)
{
sb.Append(prefix).Append("{\n");
sb.Append(prefix + TAB).Append("MessageParcel data = MessageParcel.obtain();\n");
sb.Append(prefix + TAB).Append("MessageParcel reply = MessageParcel.obtain();\n");
sb.Append(prefix + TAB).AppendFormat("MessageOption option = new MessageOption(MessageOption.TF_SYNC);\n");
sb.Append(prefix + g_tab).Append("MessageParcel data = MessageParcel.obtain();\n");
sb.Append(prefix + g_tab).Append("MessageParcel reply = MessageParcel.obtain();\n");
sb.Append(prefix + g_tab).AppendFormat("MessageOption option = new MessageOption(MessageOption.TF_SYNC);\n");
sb.Append("\n");
sb.Append(prefix).AppendFormat(" data.writeInterfaceToken(DESCRIPTOR);\n");
@@ -187,12 +187,12 @@ void JavaClientProxyCodeEmitter::EmitProxyMethodBody(const AutoPtr<ASTMethod>& m
for (size_t i = 0; i < method->GetParameterNumber(); i++) {
AutoPtr<ASTParameter> param = method->GetParameter(i);
if (param->GetAttribute() == ParamAttr::PARAM_IN) {
EmitWriteMethodParameter(param, "data", sb, prefix + TAB);
EmitWriteMethodParameter(param, "data", sb, prefix + g_tab);
needBlankLine = true;
} else {
AutoPtr<ASTType> type = param->GetType();
if (type->GetTypeKind() == TypeKind::TYPE_ARRAY) {
EmitWriteOutArrayVariable("data", param->GetName(), type, sb, prefix + TAB);
EmitWriteOutArrayVariable("data", param->GetName(), type, sb, prefix + g_tab);
}
}
}
@@ -200,24 +200,24 @@ void JavaClientProxyCodeEmitter::EmitProxyMethodBody(const AutoPtr<ASTMethod>& m
sb.Append("\n");
}
sb.Append(prefix + TAB).Append("try {\n");
sb.Append(prefix + TAB + TAB).AppendFormat("if (remote.sendRequest(COMMAND_%s, data, reply, option)) {\n",
sb.Append(prefix + g_tab).Append("try {\n");
sb.Append(prefix + g_tab + g_tab).AppendFormat("if (remote.sendRequest(COMMAND_%s, data, reply, option)) {\n",
ConstantName(method->GetName()).string());
sb.Append(prefix + TAB + TAB + TAB).Append("return 1;\n");
sb.Append(prefix + TAB + TAB).Append("}\n");
sb.Append(prefix + TAB).Append(" reply.readException();\n");
sb.Append(prefix + g_tab + g_tab + g_tab).Append("return 1;\n");
sb.Append(prefix + g_tab + g_tab).Append("}\n");
sb.Append(prefix + g_tab).Append(" reply.readException();\n");
for (size_t i = 0; i < method->GetParameterNumber(); i++) {
AutoPtr<ASTParameter> param = method->GetParameter(i);
if (param->GetAttribute() == ParamAttr::PARAM_OUT) {
EmitReadMethodParameter(param, "reply", sb, prefix + TAB + TAB);
EmitReadMethodParameter(param, "reply", sb, prefix + g_tab + g_tab);
}
}
sb.Append(prefix + TAB).Append("} finally {\n");
sb.Append(prefix + TAB + TAB).Append("data.reclaim();\n");
sb.Append(prefix + TAB + TAB).Append("reply.reclaim();\n");
sb.Append(prefix + TAB).Append("}\n");
sb.Append(prefix + TAB).Append("return 0;\n");
sb.Append(prefix + g_tab).Append("} finally {\n");
sb.Append(prefix + g_tab + g_tab).Append("data.reclaim();\n");
sb.Append(prefix + g_tab + g_tab).Append("reply.reclaim();\n");
sb.Append(prefix + g_tab).Append("}\n");
sb.Append(prefix + g_tab).Append("return 0;\n");
sb.Append(prefix).Append("}\n");
}
@@ -282,7 +282,7 @@ void JavaClientProxyCodeEmitter::EmitWriteVariable(const String& parcelName, con
sb.Append(prefix).AppendFormat("%s.writeInt(%s.size());\n", parcelName.string(), name.string());
sb.Append(prefix).AppendFormat("for (%s element : %s) {\n",
elementType->EmitJavaType(TypeMode::NO_MODE).string(), name.string());
EmitWriteVariable(parcelName, "element", elementType, sb, prefix + TAB);
EmitWriteVariable(parcelName, "element", elementType, sb, prefix + g_tab);
sb.Append(prefix).Append("}\n");
break;
}
@@ -295,8 +295,8 @@ void JavaClientProxyCodeEmitter::EmitWriteVariable(const String& parcelName, con
sb.Append(prefix).AppendFormat("for (Map.Entry<%s, %s> entry : %s.entrySet()) {\n",
keyType->EmitJavaType(TypeMode::NO_MODE, true).string(),
valueType->EmitJavaType(TypeMode::NO_MODE, true).string(), name.string());
EmitWriteVariable(parcelName, "entry.getKey()", keyType, sb, prefix + TAB);
EmitWriteVariable(parcelName, "entry.getValue()", valueType, sb, prefix + TAB);
EmitWriteVariable(parcelName, "entry.getKey()", keyType, sb, prefix + g_tab);
EmitWriteVariable(parcelName, "entry.getValue()", valueType, sb, prefix + g_tab);
sb.Append(prefix).Append("}\n");
break;
}
@@ -307,7 +307,7 @@ void JavaClientProxyCodeEmitter::EmitWriteVariable(const String& parcelName, con
sb.Append(prefix).AppendFormat("if (%s == null) {\n", name.string());
sb.Append(prefix).AppendFormat(" %s.writeInt(-1);\n", parcelName.string());
sb.Append(prefix).Append("} else { \n");
EmitWriteArrayVariable(parcelName, name, elementType, sb, prefix + TAB);
EmitWriteArrayVariable(parcelName, name, elementType, sb, prefix + g_tab);
sb.Append(prefix).Append("}\n");
break;
}
@@ -427,8 +427,8 @@ void JavaClientProxyCodeEmitter::EmitReadVariable(const String& parcelName, cons
sb.Append(prefix).AppendFormat("for (int i = 0; i < %sSize; ++i) {\n", name.string());
AutoPtr<ASTListType> listType = dynamic_cast<ASTListType*>(type.Get());
AutoPtr<ASTType> elementType = listType->GetElementType();
EmitReadVariable(parcelName, "value", elementType, ParamAttr::PARAM_IN, sb, prefix + TAB);
sb.Append(prefix + TAB).AppendFormat("%s.add(value);\n", name.string());
EmitReadVariable(parcelName, "value", elementType, ParamAttr::PARAM_IN, sb, prefix + g_tab);
sb.Append(prefix + g_tab).AppendFormat("%s.add(value);\n", name.string());
sb.Append(prefix).Append("}\n");
break;
}
@@ -443,9 +443,9 @@ void JavaClientProxyCodeEmitter::EmitReadVariable(const String& parcelName, cons
AutoPtr<ASTType> keyType = mapType->GetKeyType();
AutoPtr<ASTType> valueType = mapType->GetValueType();
EmitReadVariable(parcelName, "key", keyType, ParamAttr::PARAM_IN, sb, prefix + TAB);
EmitReadVariable(parcelName, "value", valueType, ParamAttr::PARAM_IN, sb, prefix + TAB);
sb.Append(prefix + TAB).AppendFormat("%s.put(key, value);\n", name.string());
EmitReadVariable(parcelName, "key", keyType, ParamAttr::PARAM_IN, sb, prefix + g_tab);
EmitReadVariable(parcelName, "value", valueType, ParamAttr::PARAM_IN, sb, prefix + g_tab);
sb.Append(prefix + g_tab).AppendFormat("%s.put(key, value);\n", name.string());
sb.Append(prefix).Append("}\n");
break;
}
@@ -507,8 +507,8 @@ void JavaClientProxyCodeEmitter::EmitReadArrayVariable(const String& parcelName,
elementType->EmitJavaType(TypeMode::NO_MODE).string(), name.string(),
elementType->EmitJavaType(TypeMode::NO_MODE).string());
sb.Append(prefix).AppendFormat("for (int i = 0; i < size; ++i) {\n");
EmitReadVariable(parcelName, "value", elementType, ParamAttr::PARAM_IN, sb, prefix + TAB);
sb.Append(prefix + TAB).AppendFormat("%s[i] = value;\n", name.string());
EmitReadVariable(parcelName, "value", elementType, ParamAttr::PARAM_IN, sb, prefix + g_tab);
sb.Append(prefix + g_tab).AppendFormat("%s[i] = value;\n", name.string());
sb.Append(prefix).Append("}\n");
break;
default:
@@ -609,8 +609,8 @@ void JavaClientProxyCodeEmitter::EmitReadOutVariable(const String& parcelName, c
AutoPtr<ASTListType> listType = dynamic_cast<ASTListType*>(type.Get());
AutoPtr<ASTType> elementType = listType->GetElementType();
EmitReadVariable(parcelName, "value", elementType, ParamAttr::PARAM_OUT, sb, prefix + TAB);
sb.Append(prefix + TAB).AppendFormat("%s.add(value);\n", name.string());
EmitReadVariable(parcelName, "value", elementType, ParamAttr::PARAM_OUT, sb, prefix + g_tab);
sb.Append(prefix + g_tab).AppendFormat("%s.add(value);\n", name.string());
sb.Append(prefix).Append("}\n");
break;
}
@@ -622,9 +622,9 @@ void JavaClientProxyCodeEmitter::EmitReadOutVariable(const String& parcelName, c
AutoPtr<ASTType> keyType = mapType->GetKeyType();
AutoPtr<ASTType> valueType = mapType->GetValueType();
EmitReadVariable(parcelName, "key", keyType, ParamAttr::PARAM_OUT, sb, prefix + TAB);
EmitReadVariable(parcelName, "value", valueType, ParamAttr::PARAM_OUT, sb, prefix + TAB);
sb.Append(prefix + TAB).AppendFormat("%s.put(key, value);\n", name.string());
EmitReadVariable(parcelName, "key", keyType, ParamAttr::PARAM_OUT, sb, prefix + g_tab);
EmitReadVariable(parcelName, "value", valueType, ParamAttr::PARAM_OUT, sb, prefix + g_tab);
sb.Append(prefix + g_tab).AppendFormat("%s.put(key, value);\n", name.string());
sb.Append(prefix).Append("}\n");
break;
}
@@ -13,8 +13,6 @@
namespace OHOS {
namespace HDI {
const char* JavaCodeEmitter::TAB = " ";
JavaCodeEmitter::JavaCodeEmitter(const AutoPtr<AST>& ast, const String& targetDirectory)
:LightRefCountBase(), ast_(ast), directory_(targetDirectory)
{
@@ -52,8 +52,6 @@ protected:
String SpecificationParam(StringBuilder& paramSb, const String& prefix);
static const char* TAB;
AutoPtr<AST> ast_;
AutoPtr<ASTInterfaceType> interface_;
+1
View File
@@ -7,6 +7,7 @@
*/
#include "parser/file_detail.h"
#include "util/string_builder.h"
namespace OHOS {
namespace HDI {
+1 -2
View File
@@ -10,8 +10,7 @@
#define OHOS_HDI_FILE_DETAIL_H
#include <unordered_set>
#include "util/string_builder.h"
#include "util/logger.h"
#include "util/string.h"
namespace OHOS {
namespace HDI {
+2
View File
@@ -8,6 +8,8 @@
#include "parser/module_parser.h"
#include <queue>
#include "parser/parser.h"
#include "util/logger.h"
namespace OHOS {
namespace HDI {
+3 -2
View File
@@ -10,9 +10,10 @@
#define OHOS_HDI_MODULE_PARSER_H
#include <set>
#include <memory>
#include "ast/ast_module.h"
#include "parser/file_detail.h"
#include "parser/parser.h"
#include "util/logger.h"
#include "util/options.h"
namespace OHOS {
namespace HDI {
@@ -8,14 +8,14 @@
#include <iostream>
#include <thread>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <gtest/gtest.h>
#include <hdf_log.h>
#include <osal_mem.h>
#include <securec.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include "hdf_log.h"
#include "osal_mem.h"
#include "securec.h"
#include "c_test/array_test/v1_0/client/iarray_test.h"
using namespace OHOS;
@@ -23,7 +23,7 @@ using namespace testing::ext;
static struct IArrayTest *g_testClient = nullptr;
class ArrayTest : public testing::Test {
class CArrayTest : public testing::Test {
public:
static void SetUpTestCase();
static void TearDownTestCase();
@@ -31,15 +31,15 @@ public:
void TearDown(){}
};
void ArrayTest::SetUpTestCase()
void CArrayTest::SetUpTestCase()
{
g_testClient = HdiArrayTestGet();
if (g_testClient == nullptr) {
printf("ArrayTest: get g_testClient failed.\n");
printf("CArrayTest: get g_testClient failed.\n");
}
}
void ArrayTest::TearDownTestCase()
void CArrayTest::TearDownTestCase()
{
if (g_testClient != nullptr) {
HdiArrayTestRelease(g_testClient);
@@ -47,12 +47,12 @@ void ArrayTest::TearDownTestCase()
}
}
HWTEST_F(ArrayTest, ArratTest_001, TestSize.Level0)
HWTEST_F(CArrayTest, CArrayTest_001, TestSize.Level1)
{
ASSERT_NE(nullptr, g_testClient);
}
HWTEST_F(ArrayTest, ArratTest_002, TestSize.Level0)
HWTEST_F(CArrayTest, CArrayTest_002, TestSize.Level1)
{
uint32_t inParamLen = 4;
bool *inParam = (bool*)OsalMemAlloc(sizeof(bool) * inParamLen);
@@ -89,7 +89,7 @@ HWTEST_F(ArrayTest, ArratTest_002, TestSize.Level0)
}
}
HWTEST_F(ArrayTest, ArratTest_003, TestSize.Level0)
HWTEST_F(CArrayTest, CArrayTest_003, TestSize.Level1)
{
uint32_t inParamLen = 4;
int8_t *inParam = (int8_t*)OsalMemAlloc(sizeof(int8_t) * inParamLen);
@@ -127,7 +127,7 @@ HWTEST_F(ArrayTest, ArratTest_003, TestSize.Level0)
}
}
HWTEST_F(ArrayTest, ArratTest_004, TestSize.Level0)
HWTEST_F(CArrayTest, CArrayTest_004, TestSize.Level1)
{
uint32_t inParamLen = 4;
int16_t *inParam = (int16_t*)OsalMemAlloc(sizeof(int16_t) * inParamLen);
@@ -164,7 +164,7 @@ HWTEST_F(ArrayTest, ArratTest_004, TestSize.Level0)
}
}
HWTEST_F(ArrayTest, ArratTest_005, TestSize.Level0)
HWTEST_F(CArrayTest, CArrayTest_005, TestSize.Level1)
{
uint32_t inParamLen = 4;
int32_t *inParam = (int32_t*)OsalMemAlloc(sizeof(int32_t) * inParamLen);
@@ -201,7 +201,7 @@ HWTEST_F(ArrayTest, ArratTest_005, TestSize.Level0)
}
}
HWTEST_F(ArrayTest, ArratTest_006, TestSize.Level0)
HWTEST_F(CArrayTest, CArrayTest_006, TestSize.Level1)
{
uint32_t inParamLen = 4;
int64_t *inParam = (int64_t*)OsalMemAlloc(sizeof(int64_t) * inParamLen);
@@ -238,7 +238,7 @@ HWTEST_F(ArrayTest, ArratTest_006, TestSize.Level0)
}
}
HWTEST_F(ArrayTest, ArratTest_007, TestSize.Level0)
HWTEST_F(CArrayTest, CArrayTest_007, TestSize.Level1)
{
uint32_t inParamLen = 4;
uint8_t *inParam = (uint8_t*)OsalMemAlloc(sizeof(uint8_t) * inParamLen);
@@ -275,7 +275,7 @@ HWTEST_F(ArrayTest, ArratTest_007, TestSize.Level0)
}
}
HWTEST_F(ArrayTest, ArratTest_008, TestSize.Level0)
HWTEST_F(CArrayTest, CArrayTest_008, TestSize.Level1)
{
uint32_t inParamLen = 4;
uint16_t *inParam = (uint16_t*)OsalMemAlloc(sizeof(uint16_t) * inParamLen);
@@ -312,7 +312,7 @@ HWTEST_F(ArrayTest, ArratTest_008, TestSize.Level0)
}
}
HWTEST_F(ArrayTest, ArratTest_009, TestSize.Level0)
HWTEST_F(CArrayTest, CArrayTest_009, TestSize.Level1)
{
uint32_t inParamLen = 4;
uint32_t *inParam = (uint32_t*)OsalMemAlloc(sizeof(uint32_t) * inParamLen);
@@ -349,7 +349,7 @@ HWTEST_F(ArrayTest, ArratTest_009, TestSize.Level0)
}
}
HWTEST_F(ArrayTest, ArratTest_010, TestSize.Level0)
HWTEST_F(CArrayTest, CArrayTest_010, TestSize.Level1)
{
uint32_t inParamLen = 4;
uint64_t *inParam = (uint64_t*)OsalMemAlloc(sizeof(uint64_t) * inParamLen);
@@ -386,7 +386,7 @@ HWTEST_F(ArrayTest, ArratTest_010, TestSize.Level0)
}
}
HWTEST_F(ArrayTest, ArratTest_011, TestSize.Level0)
HWTEST_F(CArrayTest, CArrayTest_011, TestSize.Level1)
{
uint32_t inParamLen = 4;
float *inParam = (float*)OsalMemAlloc(sizeof(float) * inParamLen);
@@ -424,7 +424,7 @@ HWTEST_F(ArrayTest, ArratTest_011, TestSize.Level0)
}
}
HWTEST_F(ArrayTest, ArratTest_012, TestSize.Level0)
HWTEST_F(CArrayTest, CArrayTest_012, TestSize.Level1)
{
uint32_t inParamLen = 4;
double *inParam = (double*)OsalMemAlloc(sizeof(double) * inParamLen);
@@ -462,7 +462,7 @@ HWTEST_F(ArrayTest, ArratTest_012, TestSize.Level0)
}
}
HWTEST_F(ArrayTest, ArratTest_013, TestSize.Level0)
HWTEST_F(CArrayTest, CArrayTest_013, TestSize.Level1)
{
uint32_t inParamLen = 2;
char **inParam = (char**)OsalMemAlloc(sizeof(char*) * inParamLen);
@@ -505,7 +505,7 @@ HWTEST_F(ArrayTest, ArratTest_013, TestSize.Level0)
}
}
HWTEST_F(ArrayTest, ArratTest_014, TestSize.Level0)
HWTEST_F(CArrayTest, CArrayTest_014, TestSize.Level1)
{
uint32_t inParamLen = 2;
@@ -545,7 +545,7 @@ HWTEST_F(ArrayTest, ArratTest_014, TestSize.Level0)
}
}
HWTEST_F(ArrayTest, ArratTest_015, TestSize.Level0)
HWTEST_F(CArrayTest, CArrayTest_015, TestSize.Level1)
{
uint32_t inParamLen = 4;
enum ESample *inParam = (enum ESample*)OsalMemAlloc(sizeof(enum ESample) * inParamLen);
@@ -582,7 +582,7 @@ HWTEST_F(ArrayTest, ArratTest_015, TestSize.Level0)
}
}
HWTEST_F(ArrayTest, ArratTest_016, TestSize.Level0)
HWTEST_F(CArrayTest, CArrayTest_016, TestSize.Level1)
{
uint32_t inParamLen = 2;
struct SSample *inParam = (struct SSample *)OsalMemAlloc(sizeof(struct SSample) * inParamLen);
@@ -632,7 +632,7 @@ HWTEST_F(ArrayTest, ArratTest_016, TestSize.Level0)
}
}
HWTEST_F(ArrayTest, ArratTest_017, TestSize.Level0)
HWTEST_F(CArrayTest, CArrayTest_017, TestSize.Level1)
{
uint32_t inParamLen = 2;
union USample *inParam = (union USample *)OsalMemAlloc(sizeof(union USample) * inParamLen);
@@ -10,11 +10,11 @@
#include <thread>
#include <unistd.h>
#include <gtest/gtest.h>
#include <hdf_log.h>
#include <osal_mem.h>
#include <securec.h>
#include "c_test/cb_test/v1_0/client/icb_test.h"
#include "hdf_log.h"
#include "osal_mem.h"
#include "securec.h"
#include "c_test/cb_test/v1_0/callback_stub.h"
#include "c_test/cb_test/v1_0/client/icb_test.h"
using namespace OHOS;
using namespace testing::ext;
@@ -22,7 +22,7 @@ using namespace testing::ext;
static struct ICbTest *g_testClient = nullptr;
static struct ICallback *g_callback = nullptr;
class CbTest : public testing::Test {
class CCbTest : public testing::Test {
public:
static void SetUpTestCase();
static void TearDownTestCase();
@@ -30,20 +30,20 @@ public:
void TearDown(){}
};
void CbTest::SetUpTestCase()
void CCbTest::SetUpTestCase()
{
g_testClient = HdiCbTestGet();
if (g_testClient == nullptr) {
printf("CbTest: get g_testClient failed.\n");
printf("CCbTest: get g_testClient failed.\n");
}
g_callback = CallbackStubObtain();
if (g_callback == nullptr) {
printf("CbTest: get g_callback failed.\n");
printf("CCbTest: get g_callback failed.\n");
}
}
void CbTest::TearDownTestCase()
void CCbTest::TearDownTestCase()
{
if (g_testClient != nullptr) {
HdiCbTestRelease(g_testClient);
@@ -56,13 +56,13 @@ void CbTest::TearDownTestCase()
}
}
HWTEST_F(CbTest, CbTest_001, TestSize.Level0)
HWTEST_F(CCbTest, CCbTest_001, TestSize.Level1)
{
ASSERT_NE(nullptr, g_testClient);
ASSERT_NE(nullptr, g_callback);
}
HWTEST_F(CbTest, CbTest_002, TestSize.Level0)
HWTEST_F(CCbTest, CCbTest_002, TestSize.Level1)
{
int32_t ec = g_testClient->CallbackTest(g_testClient, g_callback);
ASSERT_EQ(ec, HDF_SUCCESS);
@@ -8,14 +8,14 @@
#include <iostream>
#include <thread>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <gtest/gtest.h>
#include <hdf_log.h>
#include <osal_mem.h>
#include <securec.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include "hdf_log.h"
#include "osal_mem.h"
#include "securec.h"
#include "test/c_test/data_test/v1_0/client/idata_test.h"
using namespace OHOS;
@@ -24,7 +24,7 @@ using namespace testing::ext;
static struct IDataTest *g_testClient = nullptr;
static struct ICallback *g_callback = nullptr;
class DataTest : public testing::Test {
class CDataTest : public testing::Test {
public:
static void SetUpTestCase();
static void TearDownTestCase();
@@ -32,15 +32,15 @@ public:
void TearDown(){}
};
void DataTest::SetUpTestCase()
void CDataTest::SetUpTestCase()
{
g_testClient = HdiDataTestGet();
if (g_testClient == nullptr) {
printf("DataTest: get g_testClient failed.\n");
printf("CDataTest: get g_testClient failed.\n");
}
}
void DataTest::TearDownTestCase()
void CDataTest::TearDownTestCase()
{
if (g_testClient != nullptr) {
HdiDataTestRelease(g_testClient);
@@ -48,12 +48,12 @@ void DataTest::TearDownTestCase()
}
}
HWTEST_F(DataTest, DataTest_001, TestSize.Level0)
HWTEST_F(CDataTest, CDataTest_001, TestSize.Level1)
{
ASSERT_NE(nullptr, g_testClient);
}
HWTEST_F(DataTest, DataTest_002, TestSize.Level0)
HWTEST_F(CDataTest, CDataTest_002, TestSize.Level1)
{
bool inParam = true;
bool outParam = false;
@@ -65,8 +65,7 @@ HWTEST_F(DataTest, DataTest_002, TestSize.Level0)
EXPECT_TRUE(outParam);
}
HWTEST_F(DataTest, DataTest_003, TestSize.Level0)
HWTEST_F(CDataTest, CDataTest_003, TestSize.Level1)
{
int8_t inParam = 10;
int8_t outParam = 0;
@@ -77,7 +76,7 @@ HWTEST_F(DataTest, DataTest_003, TestSize.Level0)
EXPECT_EQ(inParam, outParam);
}
HWTEST_F(DataTest, DataTest_004, TestSize.Level0)
HWTEST_F(CDataTest, CDataTest_004, TestSize.Level1)
{
int16_t inParam = 10;
int16_t outParam = 0;
@@ -88,7 +87,7 @@ HWTEST_F(DataTest, DataTest_004, TestSize.Level0)
EXPECT_EQ(inParam, outParam);
}
HWTEST_F(DataTest, DataTest_005, TestSize.Level0)
HWTEST_F(CDataTest, CDataTest_005, TestSize.Level1)
{
int32_t inParam = 10;
int32_t outParam = 0;
@@ -99,7 +98,7 @@ HWTEST_F(DataTest, DataTest_005, TestSize.Level0)
EXPECT_EQ(inParam, outParam);
}
HWTEST_F(DataTest, DataTest_006, TestSize.Level0)
HWTEST_F(CDataTest, CDataTest_006, TestSize.Level1)
{
int64_t inParam = 10;
int64_t outParam = 0;
@@ -110,7 +109,7 @@ HWTEST_F(DataTest, DataTest_006, TestSize.Level0)
EXPECT_EQ(inParam, outParam);
}
HWTEST_F(DataTest, DataTest_007, TestSize.Level0)
HWTEST_F(CDataTest, CDataTest_007, TestSize.Level1)
{
uint8_t inParam = 10;
uint8_t outParam = 0;
@@ -121,7 +120,7 @@ HWTEST_F(DataTest, DataTest_007, TestSize.Level0)
EXPECT_EQ(inParam, outParam);
}
HWTEST_F(DataTest, DataTest_008, TestSize.Level0)
HWTEST_F(CDataTest, CDataTest_008, TestSize.Level1)
{
uint16_t inParam = 10;
uint16_t outParam = 0;
@@ -132,7 +131,7 @@ HWTEST_F(DataTest, DataTest_008, TestSize.Level0)
EXPECT_EQ(inParam, outParam);
}
HWTEST_F(DataTest, DataTest_009, TestSize.Level0)
HWTEST_F(CDataTest, CDataTest_009, TestSize.Level1)
{
uint32_t inParam = 10;
uint32_t outParam = 0;
@@ -143,7 +142,7 @@ HWTEST_F(DataTest, DataTest_009, TestSize.Level0)
EXPECT_EQ(inParam, outParam);
}
HWTEST_F(DataTest, DataTest_010, TestSize.Level0)
HWTEST_F(CDataTest, CDataTest_010, TestSize.Level1)
{
uint64_t inParam = 10;
uint64_t outParam = 0;
@@ -154,7 +153,7 @@ HWTEST_F(DataTest, DataTest_010, TestSize.Level0)
EXPECT_EQ(inParam, outParam);
}
HWTEST_F(DataTest, DataTest_011, TestSize.Level0)
HWTEST_F(CDataTest, CDataTest_011, TestSize.Level1)
{
float inParam = 10.5;
float outParam = 0;
@@ -165,7 +164,7 @@ HWTEST_F(DataTest, DataTest_011, TestSize.Level0)
EXPECT_FLOAT_EQ(inParam, outParam);
}
HWTEST_F(DataTest, DataTest_012, TestSize.Level0)
HWTEST_F(CDataTest, CDataTest_012, TestSize.Level1)
{
double inParam = 10.5;
double outParam = 0;
@@ -176,7 +175,7 @@ HWTEST_F(DataTest, DataTest_012, TestSize.Level0)
EXPECT_DOUBLE_EQ(inParam, outParam);
}
HWTEST_F(DataTest, DataTest_013, TestSize.Level0)
HWTEST_F(CDataTest, CDataTest_013, TestSize.Level1)
{
const char* inParam = "hello";
char* outParam = nullptr;
@@ -187,7 +186,7 @@ HWTEST_F(DataTest, DataTest_013, TestSize.Level0)
EXPECT_STREQ(inParam, outParam);
}
HWTEST_F(DataTest, DataTest_014, TestSize.Level0)
HWTEST_F(CDataTest, CDataTest_014, TestSize.Level1)
{
int fd = open("/c_data_test_014.txt", O_CREAT | O_RDWR | O_TRUNC, 0644);
printf("file open, fd = %d\n", fd);
@@ -219,7 +218,7 @@ finished:
close(fd);
}
HWTEST_F(DataTest, DataTest_015, TestSize.Level0)
HWTEST_F(CDataTest, CDataTest_015, TestSize.Level1)
{
enum ESample inParam = MEM_ONE;
enum ESample outParam = MEM_TWO;
@@ -230,7 +229,7 @@ HWTEST_F(DataTest, DataTest_015, TestSize.Level0)
EXPECT_EQ(inParam, outParam);
}
HWTEST_F(DataTest, DataTest_016, TestSize.Level0)
HWTEST_F(CDataTest, CDataTest_016, TestSize.Level1)
{
struct SSample inParam;
inParam.m1 = true;
@@ -260,7 +259,7 @@ HWTEST_F(DataTest, DataTest_016, TestSize.Level0)
}
}
HWTEST_F(DataTest, DataTest_017, TestSize.Level0)
HWTEST_F(CDataTest, CDataTest_017, TestSize.Level1)
{
union USample inParam;
inParam.m2 = 10;
@@ -8,14 +8,14 @@
#include <iostream>
#include <thread>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <gtest/gtest.h>
#include <hdf_log.h>
#include <osal_mem.h>
#include <securec.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include "hdf_log.h"
#include "osal_mem.h"
#include "securec.h"
#include "c_test/list_test/v1_0/client/ilist_test.h"
using namespace OHOS;
@@ -23,7 +23,7 @@ using namespace testing::ext;
static struct IListTest *g_testClient = nullptr;
class ListTest : public testing::Test {
class CListTest : public testing::Test {
public:
static void SetUpTestCase();
static void TearDownTestCase();
@@ -31,15 +31,15 @@ public:
void TearDown(){}
};
void ListTest::SetUpTestCase()
void CListTest::SetUpTestCase()
{
g_testClient = HdiListTestGet();
if (g_testClient == nullptr) {
printf("ListTest: get g_testClient failed.\n");
printf("CListTest: get g_testClient failed.\n");
}
}
void ListTest::TearDownTestCase()
void CListTest::TearDownTestCase()
{
if (g_testClient != nullptr) {
HdiListTestRelease(g_testClient);
@@ -47,12 +47,12 @@ void ListTest::TearDownTestCase()
}
}
HWTEST_F(ListTest, ArratTest_001, TestSize.Level0)
HWTEST_F(CListTest, CListTest_001, TestSize.Level1)
{
ASSERT_NE(nullptr, g_testClient);
}
HWTEST_F(ListTest, ArratTest_002, TestSize.Level0)
HWTEST_F(CListTest, CListTest_002, TestSize.Level1)
{
uint32_t inParamLen = 4;
bool *inParam = (bool*)OsalMemAlloc(sizeof(bool) * inParamLen);
@@ -89,7 +89,7 @@ HWTEST_F(ListTest, ArratTest_002, TestSize.Level0)
}
}
HWTEST_F(ListTest, ArratTest_003, TestSize.Level0)
HWTEST_F(CListTest, CListTest_003, TestSize.Level1)
{
uint32_t inParamLen = 4;
int8_t *inParam = (int8_t*)OsalMemAlloc(sizeof(int8_t) * inParamLen);
@@ -127,7 +127,7 @@ HWTEST_F(ListTest, ArratTest_003, TestSize.Level0)
}
}
HWTEST_F(ListTest, ArratTest_004, TestSize.Level0)
HWTEST_F(CListTest, CListTest_004, TestSize.Level1)
{
uint32_t inParamLen = 4;
int16_t *inParam = (int16_t*)OsalMemAlloc(sizeof(int16_t) * inParamLen);
@@ -164,7 +164,7 @@ HWTEST_F(ListTest, ArratTest_004, TestSize.Level0)
}
}
HWTEST_F(ListTest, ArratTest_005, TestSize.Level0)
HWTEST_F(CListTest, CListTest_005, TestSize.Level1)
{
uint32_t inParamLen = 4;
int32_t *inParam = (int32_t*)OsalMemAlloc(sizeof(int32_t) * inParamLen);
@@ -201,7 +201,7 @@ HWTEST_F(ListTest, ArratTest_005, TestSize.Level0)
}
}
HWTEST_F(ListTest, ArratTest_006, TestSize.Level0)
HWTEST_F(CListTest, CListTest_006, TestSize.Level1)
{
uint32_t inParamLen = 4;
int64_t *inParam = (int64_t*)OsalMemAlloc(sizeof(int64_t) * inParamLen);
@@ -238,7 +238,7 @@ HWTEST_F(ListTest, ArratTest_006, TestSize.Level0)
}
}
HWTEST_F(ListTest, ArratTest_007, TestSize.Level0)
HWTEST_F(CListTest, CListTest_007, TestSize.Level1)
{
uint32_t inParamLen = 4;
uint8_t *inParam = (uint8_t*)OsalMemAlloc(sizeof(uint8_t) * inParamLen);
@@ -275,7 +275,7 @@ HWTEST_F(ListTest, ArratTest_007, TestSize.Level0)
}
}
HWTEST_F(ListTest, ArratTest_008, TestSize.Level0)
HWTEST_F(CListTest, CListTest_008, TestSize.Level1)
{
uint32_t inParamLen = 4;
uint16_t *inParam = (uint16_t*)OsalMemAlloc(sizeof(uint16_t) * inParamLen);
@@ -312,7 +312,7 @@ HWTEST_F(ListTest, ArratTest_008, TestSize.Level0)
}
}
HWTEST_F(ListTest, ArratTest_009, TestSize.Level0)
HWTEST_F(CListTest, CListTest_009, TestSize.Level1)
{
uint32_t inParamLen = 4;
uint32_t *inParam = (uint32_t*)OsalMemAlloc(sizeof(uint32_t) * inParamLen);
@@ -349,7 +349,7 @@ HWTEST_F(ListTest, ArratTest_009, TestSize.Level0)
}
}
HWTEST_F(ListTest, ArratTest_010, TestSize.Level0)
HWTEST_F(CListTest, CListTest_010, TestSize.Level1)
{
uint32_t inParamLen = 4;
uint64_t *inParam = (uint64_t*)OsalMemAlloc(sizeof(uint64_t) * inParamLen);
@@ -386,7 +386,7 @@ HWTEST_F(ListTest, ArratTest_010, TestSize.Level0)
}
}
HWTEST_F(ListTest, ArratTest_011, TestSize.Level0)
HWTEST_F(CListTest, CListTest_011, TestSize.Level1)
{
uint32_t inParamLen = 4;
float *inParam = (float*)OsalMemAlloc(sizeof(float) * inParamLen);
@@ -424,7 +424,7 @@ HWTEST_F(ListTest, ArratTest_011, TestSize.Level0)
}
}
HWTEST_F(ListTest, ArratTest_012, TestSize.Level0)
HWTEST_F(CListTest, CListTest_012, TestSize.Level1)
{
uint32_t inParamLen = 4;
double *inParam = (double*)OsalMemAlloc(sizeof(double) * inParamLen);
@@ -462,7 +462,7 @@ HWTEST_F(ListTest, ArratTest_012, TestSize.Level0)
}
}
HWTEST_F(ListTest, ArratTest_013, TestSize.Level0)
HWTEST_F(CListTest, CListTest_013, TestSize.Level1)
{
uint32_t inParamLen = 2;
char **inParam = (char**)OsalMemAlloc(sizeof(char*) * inParamLen);
@@ -505,7 +505,7 @@ HWTEST_F(ListTest, ArratTest_013, TestSize.Level0)
}
}
HWTEST_F(ListTest, ArratTest_014, TestSize.Level0)
HWTEST_F(CListTest, CListTest_014, TestSize.Level1)
{
uint32_t inParamLen = 2;
@@ -545,7 +545,7 @@ HWTEST_F(ListTest, ArratTest_014, TestSize.Level0)
}
}
HWTEST_F(ListTest, ArratTest_015, TestSize.Level0)
HWTEST_F(CListTest, CListTest_015, TestSize.Level1)
{
uint32_t inParamLen = 4;
enum ESample *inParam = (enum ESample*)OsalMemAlloc(sizeof(enum ESample) * inParamLen);
@@ -582,7 +582,7 @@ HWTEST_F(ListTest, ArratTest_015, TestSize.Level0)
}
}
HWTEST_F(ListTest, ArratTest_016, TestSize.Level0)
HWTEST_F(CListTest, CListTest_016, TestSize.Level1)
{
uint32_t inParamLen = 2;
struct SSample *inParam = (struct SSample *)OsalMemAlloc(sizeof(struct SSample) * inParamLen);
@@ -632,7 +632,7 @@ HWTEST_F(ListTest, ArratTest_016, TestSize.Level0)
}
}
HWTEST_F(ListTest, ArratTest_017, TestSize.Level0)
HWTEST_F(CListTest, CListTest_017, TestSize.Level1)
{
uint32_t inParamLen = 2;
union USample *inParam = (union USample *)OsalMemAlloc(sizeof(union USample) * inParamLen);
@@ -8,14 +8,14 @@
#include <iostream>
#include <thread>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <gtest/gtest.h>
#include <hdf_log.h>
#include <osal_mem.h>
#include <securec.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include "hdf_log.h"
#include "osal_mem.h"
#include "securec.h"
#include "c_test/struct_test/v1_0/client/istruct_test.h"
using namespace OHOS;
@@ -23,7 +23,7 @@ using namespace testing::ext;
static struct IStructTest* g_testClient = nullptr;
class StructTest : public testing::Test {
class CStructTest : public testing::Test {
public:
static void SetUpTestCase();
static void TearDownTestCase(){}
@@ -31,11 +31,11 @@ public:
void TearDown(){}
};
void StructTest::SetUpTestCase()
void CStructTest::SetUpTestCase()
{
g_testClient = HdiStructTestGet();
if (g_testClient == nullptr) {
printf("StructTest: get g_testClient failed.\n");
printf("CStructTest: get g_testClient failed.\n");
}
}
@@ -47,45 +47,12 @@ void TearDownTestCase()
}
}
HWTEST_F(StructTest, StructTest_001, TestSize.Level0)
HWTEST_F(CStructTest, CStructTest_001, TestSize.Level1)
{
ASSERT_NE(nullptr, g_testClient);
}
static std::string ESampleToStr(ESample obj)
{
switch (obj) {
case MEM_ONE:
return "MEM_ONE";
case MEM_TWO:
return "MEM_TWO";
case MEM_THREE:
return "MEM_THREE";
default:
return "unknown";
}
}
static void PrintSSample(const struct SSample* obj)
{
std::cout << "{";
std::cout << (obj->m1 ? 1 : 0) << ",";
std::cout << obj->m2 << ",";
std::cout << obj->m3 << ",";
std::cout << obj->m4;
std::cout << "}";
}
static void PrintUSample(const union USample* obj)
{
std::cout << "{";
std::cout << (obj->m1 ? 1 : 0) << ",";
std::cout << obj->m2;
std::cout << "}";
}
HWTEST_F(StructTest, StructTest_002, TestSize.Level0)
HWTEST_F(CStructTest, CStructTest_002, TestSize.Level1)
{
struct SSample* srcObj = (struct SSample*)OsalMemCalloc(sizeof(struct SSample));
ASSERT_NE(srcObj, nullptr);
@@ -95,9 +62,6 @@ HWTEST_F(StructTest, StructTest_002, TestSize.Level0)
srcObj->m3 = 10.125;
srcObj->m4 = strdup("hello world");
PrintSSample(srcObj);
std::cout << "\n";
struct SSample* destObj = nullptr;
int32_t ec = g_testClient->SSampleTest(g_testClient, srcObj, &destObj);
ASSERT_EQ(ec, HDF_SUCCESS);
@@ -107,31 +71,11 @@ HWTEST_F(StructTest, StructTest_002, TestSize.Level0)
EXPECT_DOUBLE_EQ(srcObj->m3, destObj->m3);
EXPECT_STREQ(srcObj->m4, destObj->m4);
PrintSSample(destObj);
std::cout << "\n";
SSampleFree(srcObj, true);
SSampleFree(destObj, true);
}
static void PrintSSample2(const struct SSample2* obj)
{
std::cout << "{";
std::cout << (obj->m1 ? 1 : 0) << ",";
std::cout << obj->m2 << ",";
std::cout << obj->m3 << ",";
std::cout << obj->m4 << ",";
std::cout << obj->m5 << ",";
std::cout << obj->m6 << ",";
std::cout << obj->m7 << ",";
std::cout << obj->m8 << ",";
std::cout << obj->m9 << ",";
std::cout << obj->m10 << ",";
std::cout << obj->m11;
std::cout << "}";
}
HWTEST_F(StructTest, StructTest_003, TestSize.Level0)
HWTEST_F(CStructTest, CStructTest_003, TestSize.Level1)
{
struct SSample2* srcObj = (struct SSample2*)OsalMemCalloc(sizeof(struct SSample2));
ASSERT_NE(srcObj, nullptr);
@@ -148,9 +92,6 @@ HWTEST_F(StructTest, StructTest_003, TestSize.Level0)
srcObj->m10 = 10.5;
srcObj->m11 = 20.125;
PrintSSample2(srcObj);
std::cout << "\n";
struct SSample2* destObj = nullptr;
int32_t ec = g_testClient->SSample2Test(g_testClient, srcObj, &destObj);
ASSERT_EQ(ec, HDF_SUCCESS);
@@ -167,25 +108,11 @@ HWTEST_F(StructTest, StructTest_003, TestSize.Level0)
EXPECT_FLOAT_EQ(srcObj->m10, destObj->m10);
EXPECT_DOUBLE_EQ(srcObj->m11, destObj->m11);
PrintSSample2(destObj);
std::cout << "\n";
SSample2Free(srcObj, true);
SSample2Free(destObj, true);
}
static void PrintSSample3(const struct SSample3* obj)
{
std::cout << "{";
std::cout << obj->m1 << ", ";
std::cout << ESampleToStr(obj->m2) << ", ";
PrintSSample2(&obj->m3);
std::cout << ", ";
std::cout << obj->m4;
std::cout << "}";
}
HWTEST_F(StructTest, StructTest_004, TestSize.Level0)
HWTEST_F(CStructTest, CStructTest_004, TestSize.Level1)
{
struct SSample3* srcObj = (struct SSample3*)OsalMemCalloc(sizeof(struct SSample3));
ASSERT_NE(srcObj, nullptr);
@@ -207,9 +134,6 @@ HWTEST_F(StructTest, StructTest_004, TestSize.Level0)
srcObj->m4 = open("/fdtest1.txt", O_CREAT | O_RDWR | O_TRUNC, 0644);
PrintSSample3(srcObj);
std::cout << "\n";
struct SSample3* destObj = nullptr;
int32_t ec = g_testClient->SSample3Test(g_testClient, srcObj, &destObj);
ASSERT_EQ(ec, HDF_SUCCESS);
@@ -229,106 +153,11 @@ HWTEST_F(StructTest, StructTest_004, TestSize.Level0)
EXPECT_FLOAT_EQ(srcObj->m3.m10, destObj->m3.m10);
EXPECT_DOUBLE_EQ(srcObj->m3.m11, destObj->m3.m11);
PrintSSample3(destObj);
std::cout << "\n";
SSample3Free(srcObj, true);
SSample3Free(destObj, true);
}
static void PrintSSample4(const struct SSample4* obj)
{
std::cout << "{";
std::cout << "{";
for (uint32_t i = 0; i < obj->m1Len; i++) {
std::cout << (obj->m1[i] ? 1 : 0) << ",";
}
std::cout << "},";
std::cout << "{";
for (uint32_t i = 0; i < obj->m2Len; i++) {
std::cout << obj->m2[i] << ",";
}
std::cout << "},";
std::cout << "{";
for (uint32_t i = 0; i < obj->m3Len; i++) {
std::cout << obj->m3[i] << ",";
}
std::cout << "},";
std::cout << "{";
for (uint32_t i = 0; i < obj->m4Len; i++) {
std::cout << obj->m4[i] << ",";
}
std::cout << "},";
std::cout << "{";
for (uint32_t i = 0; i < obj->m5Len; i++) {
std::cout << obj->m5[i] << ",";
}
std::cout << "},";
std::cout << "{";
for (uint32_t i = 0; i < obj->m6Len; i++) {
std::cout << obj->m6[i] << ",";
}
std::cout << "},";
std::cout << "{";
for (uint32_t i = 0; i < obj->m7Len; i++) {
std::cout << obj->m7[i] << ",";
}
std::cout << "},";
std::cout << "{";
for (uint32_t i = 0; i < obj->m8Len; i++) {
std::cout << obj->m8[i] << ",";
}
std::cout << "},";
std::cout << "{";
for (uint32_t i = 0; i < obj->m9Len; i++) {
std::cout << obj->m9[i] << ",";
}
std::cout << "},";
std::cout << "{";
for (uint32_t i = 0; i < obj->m10Len; i++) {
std::cout << obj->m10[i] << ",";
}
std::cout << "},";
std::cout << "{";
for (uint32_t i = 0; i < obj->m11Len; i++) {
std::cout << obj->m11[i] << ",";
}
std::cout << "},";
std::cout << "{";
for (uint32_t i = 0; i < obj->m12Len; i++) {
std::cout << obj->m12[i] << ",";
}
std::cout << "},";
std::cout << "{";
for (uint32_t i = 0; i < obj->m13Len; i++) {
std::cout << ESampleToStr(obj->m13[i]) << ",";
}
std::cout << "},";
std::cout << "{";
for (uint32_t i = 0; i < obj->m14Len; i++) {
PrintSSample(&(obj->m14[i]));
std::cout << ",";
}
std::cout << "}";
std::cout << "}\n";
}
HWTEST_F(StructTest, StructTest_005, TestSize.Level0)
HWTEST_F(CStructTest, CStructTest_005, TestSize.Level1)
{
struct SSample4* srcObj = (struct SSample4*)OsalMemCalloc(sizeof(struct SSample4));
ASSERT_NE(srcObj, nullptr);
@@ -421,9 +250,6 @@ HWTEST_F(StructTest, StructTest_005, TestSize.Level0)
srcObj->m14[i].m4 = strdup("hello");
}
PrintSSample4(srcObj);
std::cout << "\n";
struct SSample4* destObj = nullptr;
int32_t ec = g_testClient->SSample4Test(g_testClient, srcObj, &destObj);
ASSERT_EQ(ec, HDF_SUCCESS);
@@ -488,106 +314,11 @@ HWTEST_F(StructTest, StructTest_005, TestSize.Level0)
EXPECT_STREQ((srcObj->m14[i]).m4, (destObj->m14[i]).m4);
}
PrintSSample4(destObj);
std::cout << "\n";
SSample4Free(srcObj, true);
SSample4Free(destObj, true);
}
static void PrintSSample5(const struct SSample5* obj)
{
std::cout << "{";
std::cout << "{";
for (uint32_t i = 0; i < obj->m1Len; i++) {
std::cout << (obj->m1[i] ? 1 : 0) << ",";
}
std::cout << "},";
std::cout << "{";
for (uint32_t i = 0; i < obj->m2Len; i++) {
std::cout << obj->m2[i] << ",";
}
std::cout << "},";
std::cout << "{";
for (uint32_t i = 0; i < obj->m3Len; i++) {
std::cout << obj->m3[i] << ",";
}
std::cout << "},";
std::cout << "{";
for (uint32_t i = 0; i < obj->m4Len; i++) {
std::cout << obj->m4[i] << ",";
}
std::cout << "},";
std::cout << "{";
for (uint32_t i = 0; i < obj->m5Len; i++) {
std::cout << obj->m5[i] << ",";
}
std::cout << "},";
std::cout << "{";
for (uint32_t i = 0; i < obj->m6Len; i++) {
std::cout << obj->m6[i] << ",";
}
std::cout << "},";
std::cout << "{";
for (uint32_t i = 0; i < obj->m7Len; i++) {
std::cout << obj->m7[i] << ",";
}
std::cout << "},";
std::cout << "{";
for (uint32_t i = 0; i < obj->m8Len; i++) {
std::cout << obj->m8[i] << ",";
}
std::cout << "},";
std::cout << "{";
for (uint32_t i = 0; i < obj->m9Len; i++) {
std::cout << obj->m9[i] << ",";
}
std::cout << "},";
std::cout << "{";
for (uint32_t i = 0; i < obj->m10Len; i++) {
std::cout << obj->m10[i] << ",";
}
std::cout << "},";
std::cout << "{";
for (uint32_t i = 0; i < obj->m11Len; i++) {
std::cout << obj->m11[i] << ",";
}
std::cout << "},";
std::cout << "{";
for (uint32_t i = 0; i < obj->m12Len; i++) {
std::cout << obj->m12[i] << ",";
}
std::cout << "},";
std::cout << "{";
for (uint32_t i = 0; i < obj->m13Len; i++) {
std::cout << ESampleToStr(obj->m13[i]) << ",";
}
std::cout << "},";
std::cout << "{";
for (uint32_t i = 0; i < obj->m14Len; i++) {
PrintSSample(&(obj->m14[i]));
std::cout << ",";
}
std::cout << "},";
std::cout << "}\n";
}
HWTEST_F(StructTest, StructTest_006, TestSize.Level0)
HWTEST_F(CStructTest, CStructTest_006, TestSize.Level1)
{
struct SSample5* srcObj = (struct SSample5*)OsalMemCalloc(sizeof(struct SSample5));
ASSERT_NE(srcObj, nullptr);
@@ -680,9 +411,6 @@ HWTEST_F(StructTest, StructTest_006, TestSize.Level0)
srcObj->m14[i].m4 = strdup("hello");
}
PrintSSample5(srcObj);
std::cout << "\n";
struct SSample5* destObj = nullptr;
int32_t ec = g_testClient->SSample5Test(g_testClient, srcObj, &destObj);
ASSERT_EQ(ec, HDF_SUCCESS);
@@ -746,36 +474,11 @@ HWTEST_F(StructTest, StructTest_006, TestSize.Level0)
EXPECT_STREQ((srcObj->m14[i]).m4, (destObj->m14[i]).m4);
}
PrintSSample5(destObj);
std::cout << "\n";
SSample5Free(srcObj, true);
SSample5Free(destObj, true);
}
static void PrintSSample6(const struct SSample6* obj)
{
std::cout << "{";
PrintUSample(&obj->m1);
std::cout << ",\n";
std::cout << "{";
for (uint32_t i = 0; i < obj->m2Len; i++) {
PrintUSample(&obj->m2[i]);
}
std::cout << "},";
std::cout << "{";
for (uint32_t i = 0; i < obj->m3Len; i++) {
PrintUSample(&obj->m3[i]);
}
std::cout << "}";
std::cout << "}";
}
HWTEST_F(StructTest, StructTest_007, TestSize.Level0)
HWTEST_F(CStructTest, CStructTest_007, TestSize.Level1)
{
struct SSample6* srcObj = (struct SSample6*)OsalMemCalloc(sizeof(struct SSample6));
ASSERT_NE(srcObj, nullptr);
@@ -797,9 +500,6 @@ HWTEST_F(StructTest, StructTest_007, TestSize.Level0)
(srcObj->m3[i]).m2 = 2;
}
PrintSSample6(srcObj);
std::cout << "\n";
struct SSample6* destObj = nullptr;
int32_t ec = g_testClient->SSample6Test(g_testClient, srcObj, &destObj);
ASSERT_EQ(ec, HDF_SUCCESS);
@@ -817,9 +517,6 @@ HWTEST_F(StructTest, StructTest_007, TestSize.Level0)
EXPECT_EQ((srcObj->m3[i]).m2, (destObj->m3[i]).m2);
}
PrintSSample6(destObj);
std::cout << "\n";
SSample6Free(srcObj, true);
SSample6Free(destObj, true);
}
@@ -8,14 +8,14 @@
#include <iostream>
#include <thread>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <gtest/gtest.h>
#include <hdf_log.h>
#include <osal_mem.h>
#include <securec.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include "hdf_log.h"
#include "osal_mem.h"
#include "securec.h"
#include "test/cpp_test/array_test/v1_0/client/array_test_proxy.h"
using namespace OHOS;
@@ -25,7 +25,7 @@ using namespace test::cpp_test::types::v1_0;
static sptr<IArrayTest> g_testClient = nullptr;
class ArrayTest : public testing::Test {
class CppArrayTest : public testing::Test {
public:
static void SetUpTestCase();
static void TearDownTestCase(){}
@@ -33,20 +33,20 @@ public:
void TearDown(){}
};
void ArrayTest::SetUpTestCase()
void CppArrayTest::SetUpTestCase()
{
g_testClient = IArrayTest::Get();
if (g_testClient == nullptr) {
printf("ArrayTest: get g_testClient failed.\n");
printf("CppArrayTest: get g_testClient failed.\n");
}
}
HWTEST_F(ArrayTest, ArrayTest_001, TestSize.Level0)
HWTEST_F(CppArrayTest, CppArrayTest_001, TestSize.Level1)
{
ASSERT_NE(nullptr, g_testClient);
}
HWTEST_F(ArrayTest, ArrayTest_002, TestSize.Level0)
HWTEST_F(CppArrayTest, CppArrayTest_002, TestSize.Level1)
{
uint32_t len = 4;
std::vector<bool> inParam;
@@ -70,7 +70,7 @@ HWTEST_F(ArrayTest, ArrayTest_002, TestSize.Level0)
}
}
HWTEST_F(ArrayTest, ArrayTest_003, TestSize.Level0)
HWTEST_F(CppArrayTest, CppArrayTest_003, TestSize.Level1)
{
uint32_t len = 4;
std::vector<int8_t> inParam;
@@ -90,7 +90,7 @@ HWTEST_F(ArrayTest, ArrayTest_003, TestSize.Level0)
}
}
HWTEST_F(ArrayTest, ArrayTest_004, TestSize.Level0)
HWTEST_F(CppArrayTest, CppArrayTest_004, TestSize.Level1)
{
uint32_t len = 4;
std::vector<int16_t> inParam;
@@ -110,7 +110,7 @@ HWTEST_F(ArrayTest, ArrayTest_004, TestSize.Level0)
}
}
HWTEST_F(ArrayTest, ArrayTest_005, TestSize.Level0)
HWTEST_F(CppArrayTest, CppArrayTest_005, TestSize.Level1)
{
uint32_t len = 4;
std::vector<int32_t> inParam;
@@ -130,7 +130,7 @@ HWTEST_F(ArrayTest, ArrayTest_005, TestSize.Level0)
}
}
HWTEST_F(ArrayTest, ArrayTest_006, TestSize.Level0)
HWTEST_F(CppArrayTest, CppArrayTest_006, TestSize.Level1)
{
uint32_t len = 4;
std::vector<int64_t> inParam;
@@ -150,7 +150,7 @@ HWTEST_F(ArrayTest, ArrayTest_006, TestSize.Level0)
}
}
HWTEST_F(ArrayTest, ArrayTest_007, TestSize.Level0)
HWTEST_F(CppArrayTest, CppArrayTest_007, TestSize.Level1)
{
uint32_t len = 4;
std::vector<uint8_t> inParam;
@@ -170,7 +170,7 @@ HWTEST_F(ArrayTest, ArrayTest_007, TestSize.Level0)
}
}
HWTEST_F(ArrayTest, ArrayTest_008, TestSize.Level0)
HWTEST_F(CppArrayTest, CppArrayTest_008, TestSize.Level1)
{
uint32_t len = 4;
std::vector<uint16_t> inParam;
@@ -190,7 +190,7 @@ HWTEST_F(ArrayTest, ArrayTest_008, TestSize.Level0)
}
}
HWTEST_F(ArrayTest, ArrayTest_009, TestSize.Level0)
HWTEST_F(CppArrayTest, CppArrayTest_009, TestSize.Level1)
{
uint32_t len = 4;
std::vector<uint32_t> inParam;
@@ -210,7 +210,7 @@ HWTEST_F(ArrayTest, ArrayTest_009, TestSize.Level0)
}
}
HWTEST_F(ArrayTest, ArrayTest_010, TestSize.Level0)
HWTEST_F(CppArrayTest, CppArrayTest_010, TestSize.Level1)
{
uint32_t len = 4;
std::vector<uint64_t> inParam;
@@ -230,7 +230,7 @@ HWTEST_F(ArrayTest, ArrayTest_010, TestSize.Level0)
}
}
HWTEST_F(ArrayTest, ArrayTest_011, TestSize.Level0)
HWTEST_F(CppArrayTest, CppArrayTest_011, TestSize.Level1)
{
uint32_t len = 4;
std::vector<float> inParam;
@@ -250,7 +250,7 @@ HWTEST_F(ArrayTest, ArrayTest_011, TestSize.Level0)
}
}
HWTEST_F(ArrayTest, ArrayTest_012, TestSize.Level0)
HWTEST_F(CppArrayTest, CppArrayTest_012, TestSize.Level1)
{
uint32_t len = 4;
std::vector<double> inParam;
@@ -270,7 +270,7 @@ HWTEST_F(ArrayTest, ArrayTest_012, TestSize.Level0)
}
}
HWTEST_F(ArrayTest, ArrayTest_013, TestSize.Level0)
HWTEST_F(CppArrayTest, CppArrayTest_013, TestSize.Level1)
{
uint32_t len = 2;
std::vector<std::string> inParam;
@@ -290,10 +290,10 @@ HWTEST_F(ArrayTest, ArrayTest_013, TestSize.Level0)
}
}
HWTEST_F(ArrayTest, ArrayTest_014, TestSize.Level0)
HWTEST_F(CppArrayTest, CppArrayTest_014, TestSize.Level1)
{
int fd1 = open("/ArrayTest_014_0.txt", O_CREAT | O_RDWR | O_TRUNC, 0644);
int fd2 = open("/ArrayTest_014_1.txt", O_CREAT | O_RDWR | O_TRUNC, 0644);
int fd1 = open("/CppArrayTest_014_0.txt", O_CREAT | O_RDWR | O_TRUNC, 0644);
int fd2 = open("/CppArrayTest_014_1.txt", O_CREAT | O_RDWR | O_TRUNC, 0644);
ASSERT_NE(fd1, -1);
ASSERT_NE(fd2, -1);
@@ -314,7 +314,7 @@ HWTEST_F(ArrayTest, ArrayTest_014, TestSize.Level0)
close(fd2);
}
HWTEST_F(ArrayTest, ArrayTest_015, TestSize.Level0)
HWTEST_F(CppArrayTest, CppArrayTest_015, TestSize.Level1)
{
uint32_t len = 2;
std::vector<ESample> inParam;
@@ -334,7 +334,7 @@ HWTEST_F(ArrayTest, ArrayTest_015, TestSize.Level0)
}
}
HWTEST_F(ArrayTest, ArrayTest_016, TestSize.Level0)
HWTEST_F(CppArrayTest, CppArrayTest_016, TestSize.Level1)
{
uint32_t len = 4;
std::vector<SSample> inParam;
@@ -362,7 +362,7 @@ HWTEST_F(ArrayTest, ArrayTest_016, TestSize.Level0)
}
}
HWTEST_F(ArrayTest, ArrayTest_017, TestSize.Level0)
HWTEST_F(CppArrayTest, CppArrayTest_017, TestSize.Level1)
{
uint32_t len = 2;
std::vector<USample> inParam;
@@ -385,7 +385,7 @@ HWTEST_F(ArrayTest, ArrayTest_017, TestSize.Level0)
}
}
HWTEST_F(ArrayTest, ArrayTest_018, TestSize.Level0)
HWTEST_F(CppArrayTest, CppArrayTest_018, TestSize.Level1)
{
std::vector<sptr<SequenceData>> inParam = {
sptr<SequenceData>(new SequenceData(1, 1.2, "hello")),
@@ -9,9 +9,9 @@
#include <thread>
#include <unistd.h>
#include <gtest/gtest.h>
#include <hdf_log.h>
#include <osal_mem.h>
#include <securec.h>
#include "hdf_log.h"
#include "osal_mem.h"
#include "securec.h"
#include "test/cpp_test/cb_test/v1_0/client/cb_test_proxy.h"
using namespace OHOS;
@@ -24,7 +24,7 @@ static sptr<ICbTest> g_testClient = nullptr;
static sptr<ICallback> g_callbackObj = nullptr;
class CbTest : public testing::Test {
class CppCbTest : public testing::Test {
public:
static void SetUpTestCase();
static void TearDownTestCase(){}
@@ -32,24 +32,24 @@ public:
void TearDown(){}
};
void CbTest::SetUpTestCase()
void CppCbTest::SetUpTestCase()
{
g_testClient = ICbTest::Get();
if (g_testClient == nullptr) {
printf("CbTest: get g_testClient failed.\n");
printf("CppCbTest: get g_testClient failed.\n");
}
g_callbackObj = new CallbackService();
if (g_callbackObj == nullptr) {
printf("CbTest: get g_callbackObj failed.\n");
printf("CppCbTest: get g_callbackObj failed.\n");
}
}
HWTEST_F(CbTest, CbTest_001, TestSize.Level0)
HWTEST_F(CppCbTest, CppCbTest_001, TestSize.Level1)
{
ASSERT_NE(nullptr, g_testClient);
}
HWTEST_F(CbTest, CbTest_002, TestSize.Level0)
HWTEST_F(CppCbTest, CppCbTest_002, TestSize.Level1)
{
int32_t ec = g_testClient->CallbackTest(g_callbackObj);
ASSERT_EQ(ec, HDF_SUCCESS);
@@ -8,14 +8,14 @@
#include <iostream>
#include <thread>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <gtest/gtest.h>
#include <hdf_log.h>
#include <osal_mem.h>
#include <securec.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include "hdf_log.h"
#include "osal_mem.h"
#include "securec.h"
#include "cpp_test/data_test/v1_0/client/data_test_proxy.h"
using namespace OHOS;
@@ -25,7 +25,7 @@ using namespace test::cpp_test::types::v1_0;
static sptr<IDataTest> g_testClient = nullptr;
class DataTest : public testing::Test {
class CppDataTest : public testing::Test {
public:
static void SetUpTestCase();
static void TearDownTestCase(){}
@@ -33,20 +33,20 @@ public:
void TearDown(){}
};
void DataTest::SetUpTestCase()
void CppDataTest::SetUpTestCase()
{
g_testClient = IDataTest::Get();
if (g_testClient == nullptr) {
printf("DataTest: get g_testClient failed.\n");
printf("CppDataTest: get g_testClient failed.\n");
}
}
HWTEST_F(DataTest, DataTest_001, TestSize.Level0)
HWTEST_F(CppDataTest, CppDataTest_001, TestSize.Level1)
{
ASSERT_NE(nullptr, g_testClient);
}
HWTEST_F(DataTest, DataTest_002, TestSize.Level0)
HWTEST_F(CppDataTest, CppDataTest_002, TestSize.Level1)
{
bool inParam = true;
bool outParam = false;
@@ -57,7 +57,7 @@ HWTEST_F(DataTest, DataTest_002, TestSize.Level0)
EXPECT_TRUE(outParam);
}
HWTEST_F(DataTest, DataTest_003, TestSize.Level0)
HWTEST_F(CppDataTest, CppDataTest_003, TestSize.Level1)
{
int8_t inParam = 10;
int8_t outParam = 0;
@@ -68,7 +68,7 @@ HWTEST_F(DataTest, DataTest_003, TestSize.Level0)
EXPECT_EQ(inParam, outParam);
}
HWTEST_F(DataTest, DataTest_004, TestSize.Level0)
HWTEST_F(CppDataTest, CppDataTest_004, TestSize.Level1)
{
int16_t inParam = 10;
int16_t outParam = 0;
@@ -79,7 +79,7 @@ HWTEST_F(DataTest, DataTest_004, TestSize.Level0)
EXPECT_EQ(inParam, outParam);
}
HWTEST_F(DataTest, DataTest_005, TestSize.Level0)
HWTEST_F(CppDataTest, CppDataTest_005, TestSize.Level1)
{
int32_t inParam = 10;
int32_t outParam = 0;
@@ -90,7 +90,7 @@ HWTEST_F(DataTest, DataTest_005, TestSize.Level0)
EXPECT_EQ(inParam, outParam);
}
HWTEST_F(DataTest, DataTest_006, TestSize.Level0)
HWTEST_F(CppDataTest, CppDataTest_006, TestSize.Level1)
{
int64_t inParam = 10;
int64_t outParam = 0;
@@ -101,7 +101,7 @@ HWTEST_F(DataTest, DataTest_006, TestSize.Level0)
EXPECT_EQ(inParam, outParam);
}
HWTEST_F(DataTest, DataTest_007, TestSize.Level0)
HWTEST_F(CppDataTest, CppDataTest_007, TestSize.Level1)
{
uint8_t inParam = 10;
uint8_t outParam = 0;
@@ -112,7 +112,7 @@ HWTEST_F(DataTest, DataTest_007, TestSize.Level0)
EXPECT_EQ(inParam, outParam);
}
HWTEST_F(DataTest, DataTest_008, TestSize.Level0)
HWTEST_F(CppDataTest, CppDataTest_008, TestSize.Level1)
{
uint16_t inParam = 10;
uint16_t outParam = 0;
@@ -123,7 +123,7 @@ HWTEST_F(DataTest, DataTest_008, TestSize.Level0)
EXPECT_EQ(inParam, outParam);
}
HWTEST_F(DataTest, DataTest_009, TestSize.Level0)
HWTEST_F(CppDataTest, CppDataTest_009, TestSize.Level1)
{
uint32_t inParam = 10;
uint32_t outParam = 0;
@@ -134,7 +134,7 @@ HWTEST_F(DataTest, DataTest_009, TestSize.Level0)
EXPECT_EQ(inParam, outParam);
}
HWTEST_F(DataTest, DataTest_010, TestSize.Level0)
HWTEST_F(CppDataTest, CppDataTest_010, TestSize.Level1)
{
uint64_t inParam = 10;
uint64_t outParam = 0;
@@ -145,7 +145,7 @@ HWTEST_F(DataTest, DataTest_010, TestSize.Level0)
EXPECT_EQ(inParam, outParam);
}
HWTEST_F(DataTest, DataTest_011, TestSize.Level0)
HWTEST_F(CppDataTest, CppDataTest_011, TestSize.Level1)
{
float inParam = 10.5;
float outParam = 0;
@@ -156,7 +156,7 @@ HWTEST_F(DataTest, DataTest_011, TestSize.Level0)
EXPECT_FLOAT_EQ(inParam, outParam);
}
HWTEST_F(DataTest, DataTest_012, TestSize.Level0)
HWTEST_F(CppDataTest, CppDataTest_012, TestSize.Level1)
{
double inParam = 10.5;
double outParam = 0;
@@ -167,7 +167,7 @@ HWTEST_F(DataTest, DataTest_012, TestSize.Level0)
EXPECT_DOUBLE_EQ(inParam, outParam);
}
HWTEST_F(DataTest, DataTest_013, TestSize.Level0)
HWTEST_F(CppDataTest, CppDataTest_013, TestSize.Level1)
{
std::string inParam("hello");
std::string outParam;
@@ -178,7 +178,7 @@ HWTEST_F(DataTest, DataTest_013, TestSize.Level0)
EXPECT_EQ(inParam, outParam);
}
HWTEST_F(DataTest, DataTest_014, TestSize.Level0)
HWTEST_F(CppDataTest, CppDataTest_014, TestSize.Level1)
{
int fd = open("/cpp_data_test_014.txt", O_CREAT | O_RDWR | O_TRUNC, 0644);
printf("file open, fd = %d\n", fd);
@@ -210,7 +210,7 @@ finished:
close(fd);
}
HWTEST_F(DataTest, DataTest_015, TestSize.Level0)
HWTEST_F(CppDataTest, CppDataTest_015, TestSize.Level1)
{
ESample inParam = ESample::MEM_ONE;
ESample outParam = ESample::MEM_TWO;
@@ -221,7 +221,7 @@ HWTEST_F(DataTest, DataTest_015, TestSize.Level0)
EXPECT_EQ(inParam, outParam);
}
HWTEST_F(DataTest, DataTest_016, TestSize.Level0)
HWTEST_F(CppDataTest, CppDataTest_016, TestSize.Level1)
{
SSample inParam;
inParam.m1 = true;
@@ -240,7 +240,7 @@ HWTEST_F(DataTest, DataTest_016, TestSize.Level0)
EXPECT_EQ(inParam.m4, outParam.m4);
}
HWTEST_F(DataTest, DataTest_017, TestSize.Level0)
HWTEST_F(CppDataTest, CppDataTest_017, TestSize.Level1)
{
USample inParam;
inParam.m2 = 10;
@@ -254,7 +254,7 @@ HWTEST_F(DataTest, DataTest_017, TestSize.Level0)
EXPECT_DOUBLE_EQ(inParam.m2, outParam.m2);
}
HWTEST_F(DataTest, DataTest_018, TestSize.Level0)
HWTEST_F(CppDataTest, CppDataTest_018, TestSize.Level1)
{
sptr<SequenceData> inParam(new SequenceData(1, 1.2, "hello"));
@@ -8,14 +8,14 @@
#include <iostream>
#include <thread>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <gtest/gtest.h>
#include <hdf_log.h>
#include <osal_mem.h>
#include <securec.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include "hdf_log.h"
#include "osal_mem.h"
#include "securec.h"
#include "test/cpp_test/list_test/v1_0/client/list_test_proxy.h"
using namespace OHOS;
@@ -25,7 +25,7 @@ using namespace test::cpp_test::types::v1_0;
static sptr<IListTest> g_testClient = nullptr;
class ListTest : public testing::Test {
class CppListTest : public testing::Test {
public:
static void SetUpTestCase();
static void TearDownTestCase(){}
@@ -33,20 +33,20 @@ public:
void TearDown(){}
};
void ListTest::SetUpTestCase()
void CppListTest::SetUpTestCase()
{
g_testClient = IListTest::Get();
if (g_testClient == nullptr) {
printf("ListTest: get g_testClient failed.\n");
printf("CppListTest: get g_testClient failed.\n");
}
}
HWTEST_F(ListTest, ListTest_001, TestSize.Level0)
HWTEST_F(CppListTest, CppListTest_001, TestSize.Level1)
{
ASSERT_NE(nullptr, g_testClient);
}
HWTEST_F(ListTest, ListTest_002, TestSize.Level0)
HWTEST_F(CppListTest, CppListTest_002, TestSize.Level1)
{
uint32_t len = 4;
std::vector<bool> inParam;
@@ -70,7 +70,7 @@ HWTEST_F(ListTest, ListTest_002, TestSize.Level0)
}
}
HWTEST_F(ListTest, ListTest_003, TestSize.Level0)
HWTEST_F(CppListTest, CppListTest_003, TestSize.Level1)
{
uint32_t len = 4;
std::vector<int8_t> inParam;
@@ -90,7 +90,7 @@ HWTEST_F(ListTest, ListTest_003, TestSize.Level0)
}
}
HWTEST_F(ListTest, ListTest_004, TestSize.Level0)
HWTEST_F(CppListTest, CppListTest_004, TestSize.Level1)
{
uint32_t len = 4;
std::vector<int16_t> inParam;
@@ -110,7 +110,7 @@ HWTEST_F(ListTest, ListTest_004, TestSize.Level0)
}
}
HWTEST_F(ListTest, ListTest_005, TestSize.Level0)
HWTEST_F(CppListTest, CppListTest_005, TestSize.Level1)
{
uint32_t len = 4;
std::vector<int32_t> inParam;
@@ -130,7 +130,7 @@ HWTEST_F(ListTest, ListTest_005, TestSize.Level0)
}
}
HWTEST_F(ListTest, ListTest_006, TestSize.Level0)
HWTEST_F(CppListTest, CppListTest_006, TestSize.Level1)
{
uint32_t len = 4;
std::vector<int64_t> inParam;
@@ -150,7 +150,7 @@ HWTEST_F(ListTest, ListTest_006, TestSize.Level0)
}
}
HWTEST_F(ListTest, ListTest_007, TestSize.Level0)
HWTEST_F(CppListTest, CppListTest_007, TestSize.Level1)
{
uint32_t len = 4;
std::vector<uint8_t> inParam;
@@ -170,7 +170,7 @@ HWTEST_F(ListTest, ListTest_007, TestSize.Level0)
}
}
HWTEST_F(ListTest, ListTest_008, TestSize.Level0)
HWTEST_F(CppListTest, CppListTest_008, TestSize.Level1)
{
uint32_t len = 4;
std::vector<uint16_t> inParam;
@@ -190,7 +190,7 @@ HWTEST_F(ListTest, ListTest_008, TestSize.Level0)
}
}
HWTEST_F(ListTest, ListTest_009, TestSize.Level0)
HWTEST_F(CppListTest, CppListTest_009, TestSize.Level1)
{
uint32_t len = 4;
std::vector<uint32_t> inParam;
@@ -210,7 +210,7 @@ HWTEST_F(ListTest, ListTest_009, TestSize.Level0)
}
}
HWTEST_F(ListTest, ListTest_010, TestSize.Level0)
HWTEST_F(CppListTest, CppListTest_010, TestSize.Level1)
{
uint32_t len = 4;
std::vector<uint64_t> inParam;
@@ -230,7 +230,7 @@ HWTEST_F(ListTest, ListTest_010, TestSize.Level0)
}
}
HWTEST_F(ListTest, ListTest_011, TestSize.Level0)
HWTEST_F(CppListTest, CppListTest_011, TestSize.Level1)
{
uint32_t len = 4;
std::vector<float> inParam;
@@ -250,7 +250,7 @@ HWTEST_F(ListTest, ListTest_011, TestSize.Level0)
}
}
HWTEST_F(ListTest, ListTest_012, TestSize.Level0)
HWTEST_F(CppListTest, CppListTest_012, TestSize.Level1)
{
uint32_t len = 4;
std::vector<double> inParam;
@@ -270,7 +270,7 @@ HWTEST_F(ListTest, ListTest_012, TestSize.Level0)
}
}
HWTEST_F(ListTest, ListTest_013, TestSize.Level0)
HWTEST_F(CppListTest, CppListTest_013, TestSize.Level1)
{
uint32_t len = 2;
std::vector<std::string> inParam;
@@ -290,10 +290,10 @@ HWTEST_F(ListTest, ListTest_013, TestSize.Level0)
}
}
HWTEST_F(ListTest, ListTest_014, TestSize.Level0)
HWTEST_F(CppListTest, CppListTest_014, TestSize.Level1)
{
int fd1 = open("/ListTest_014_0.txt", O_CREAT | O_RDWR | O_TRUNC, 0644);
int fd2 = open("/ListTest_014_1.txt", O_CREAT | O_RDWR | O_TRUNC, 0644);
int fd1 = open("/CppListTest_014_0.txt", O_CREAT | O_RDWR | O_TRUNC, 0644);
int fd2 = open("/CppListTest_014_1.txt", O_CREAT | O_RDWR | O_TRUNC, 0644);
ASSERT_NE(fd1, -1);
ASSERT_NE(fd2, -1);
@@ -314,7 +314,7 @@ HWTEST_F(ListTest, ListTest_014, TestSize.Level0)
close(fd2);
}
HWTEST_F(ListTest, ListTest_015, TestSize.Level0)
HWTEST_F(CppListTest, CppListTest_015, TestSize.Level1)
{
uint32_t len = 2;
std::vector<ESample> inParam;
@@ -334,7 +334,7 @@ HWTEST_F(ListTest, ListTest_015, TestSize.Level0)
}
}
HWTEST_F(ListTest, ListTest_016, TestSize.Level0)
HWTEST_F(CppListTest, CppListTest_016, TestSize.Level1)
{
uint32_t len = 4;
std::vector<SSample> inParam;
@@ -362,7 +362,7 @@ HWTEST_F(ListTest, ListTest_016, TestSize.Level0)
}
}
HWTEST_F(ListTest, ListTest_017, TestSize.Level0)
HWTEST_F(CppListTest, CppListTest_017, TestSize.Level1)
{
uint32_t len = 2;
std::vector<USample> inParam;
@@ -385,7 +385,7 @@ HWTEST_F(ListTest, ListTest_017, TestSize.Level0)
}
}
HWTEST_F(ListTest, ListTest_018, TestSize.Level0)
HWTEST_F(CppListTest, CppListTest_018, TestSize.Level1)
{
std::vector<sptr<SequenceData>> inParam = {
sptr<SequenceData>(new SequenceData(1, 1.2, "hello")),
@@ -6,18 +6,18 @@
* See the LICENSE file in the root of this repository for complete details.
*/
#include <iostream>
#include <map>
#include <string>
#include <thread>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <gtest/gtest.h>
#include <hdf_log.h>
#include <osal_mem.h>
#include <string>
#include <map>
#include <iostream>
#include <securec.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include "hdf_log.h"
#include "osal_mem.h"
#include "securec.h"
#include "cpp_test/map_test/v1_0/client/map_test_proxy.h"
using namespace OHOS;
@@ -27,7 +27,7 @@ using namespace test::cpp_test::types::v1_0;
static sptr<IMapTest> g_testClient = nullptr;
class MapTest : public testing::Test {
class CppMapTest : public testing::Test {
public:
static void SetUpTestCase();
static void TearDownTestCase();
@@ -35,15 +35,15 @@ public:
void TearDown(){}
};
void MapTest::SetUpTestCase()
void CppMapTest::SetUpTestCase()
{
g_testClient = IMapTest::Get();
if (g_testClient == nullptr) {
std::cout << "MapTest: get g_testClient failed." << std::endl;
std::cout << "CppMapTest: get g_testClient failed." << std::endl;
}
}
void MapTest::TearDownTestCase()
void CppMapTest::TearDownTestCase()
{
if (g_testClient != nullptr) {
delete g_testClient;
@@ -51,12 +51,12 @@ void MapTest::TearDownTestCase()
}
}
HWTEST_F(MapTest, MapTest_001, TestSize.Level0)
HWTEST_F(CppMapTest, CppMapTest_001, TestSize.Level1)
{
ASSERT_NE(nullptr, g_testClient);
}
HWTEST_F(MapTest, MapTest_002, TestSize.Level0)
HWTEST_F(CppMapTest, CppMapTest_002, TestSize.Level1)
{
std::map<int32_t, int8_t> inParam;
inParam[1] = 'A';
@@ -72,13 +72,12 @@ HWTEST_F(MapTest, MapTest_002, TestSize.Level0)
if (outIter != outParam.end()) {
ASSERT_EQ(inIter->second, outIter->second);
} else {
std::cout << "MapTest_002 TestCase is failed!" << std::endl;
std::cout << "CppMapTest_002 TestCase is failed!" << std::endl;
}
}
}
HWTEST_F(MapTest, MapTest_003, TestSize.Level0)
HWTEST_F(CppMapTest, CppMapTest_003, TestSize.Level1)
{
std::map<int32_t, int16_t> inParam;
inParam[1] = 1;
@@ -94,12 +93,12 @@ HWTEST_F(MapTest, MapTest_003, TestSize.Level0)
if (outIter != outParam.end()) {
ASSERT_EQ(inIter->second, outIter->second);
} else {
std::cout << "MapTest_003 TestCase is failed!" << std::endl;
std::cout << "CppMapTest_003 TestCase is failed!" << std::endl;
}
}
}
HWTEST_F(MapTest, MapTest_004, TestSize.Level0)
HWTEST_F(CppMapTest, CppMapTest_004, TestSize.Level1)
{
std::map<int32_t, int32_t> inParam;
inParam[1] = 1;
@@ -115,12 +114,12 @@ HWTEST_F(MapTest, MapTest_004, TestSize.Level0)
if (outIter != outParam.end()) {
ASSERT_EQ(inIter->second, outIter->second);
} else {
std::cout << "MapTest_004 TestCase is failed!" << std::endl;
std::cout << "CppMapTest_004 TestCase is failed!" << std::endl;
}
}
}
HWTEST_F(MapTest, MapTest_005, TestSize.Level0)
HWTEST_F(CppMapTest, CppMapTest_005, TestSize.Level1)
{
std::map<int32_t, int64_t> inParam;
inParam[1] = 100;
@@ -136,12 +135,12 @@ HWTEST_F(MapTest, MapTest_005, TestSize.Level0)
if (outIter != outParam.end()) {
ASSERT_EQ(inIter->second, outIter->second);
} else {
std::cout << "MapTest_005 TestCase is failed!" << std::endl;
std::cout << "CppMapTest_005 TestCase is failed!" << std::endl;
}
}
}
HWTEST_F(MapTest, MapTest_006, TestSize.Level0)
HWTEST_F(CppMapTest, CppMapTest_006, TestSize.Level1)
{
std::map<int32_t, float> inParam;
inParam[1] = 10.5;
@@ -157,12 +156,12 @@ HWTEST_F(MapTest, MapTest_006, TestSize.Level0)
if (outIter != outParam.end()) {
ASSERT_EQ(inIter->second, outIter->second);
} else {
std::cout << "MapTest_006 TestCase is failed!" << std::endl;
std::cout << "CppMapTest_006 TestCase is failed!" << std::endl;
}
}
}
HWTEST_F(MapTest, MapTest_007, TestSize.Level0)
HWTEST_F(CppMapTest, CppMapTest_007, TestSize.Level1)
{
std::map<int32_t, double> inParam;
inParam[1] = 10.55;
@@ -178,12 +177,12 @@ HWTEST_F(MapTest, MapTest_007, TestSize.Level0)
if (outIter != outParam.end()) {
ASSERT_DOUBLE_EQ(inIter->second, outIter->second);
} else {
std::cout << "MapTest_007 TestCase is failed!" << std::endl;
std::cout << "CppMapTest_007 TestCase is failed!" << std::endl;
}
}
}
HWTEST_F(MapTest, MapTest_008, TestSize.Level0)
HWTEST_F(CppMapTest, CppMapTest_008, TestSize.Level1)
{
std::map<int32_t, std::string> inParam;
inParam[1] = "hello";
@@ -199,12 +198,12 @@ HWTEST_F(MapTest, MapTest_008, TestSize.Level0)
if (outIter != outParam.end()) {
ASSERT_STREQ(inIter->second.c_str(), outIter->second.c_str());
} else {
std::cout << "MapTest_008 TestCase is failed!" << std::endl;
std::cout << "CppMapTest_008 TestCase is failed!" << std::endl;
}
}
}
HWTEST_F(MapTest, MapTest_009, TestSize.Level0)
HWTEST_F(CppMapTest, CppMapTest_009, TestSize.Level1)
{
std::map<int32_t, int> inParam;
inParam[1] = open("/cpp_test_map_009.txt", O_CREAT | O_RDWR | O_TRUNC, 0644);
@@ -221,7 +220,7 @@ HWTEST_F(MapTest, MapTest_009, TestSize.Level0)
std::cout << "inParam[" << inIter->first << "]:" << inIter->second << std::endl;
std::cout << "outParam[" << outIter->first << "]:" << outIter->second << std::endl;
} else {
std::cout << "MapTest_009 TestCase is failed!" << std::endl;
std::cout << "CppMapTest_009 TestCase is failed!" << std::endl;
}
}
@@ -229,7 +228,7 @@ HWTEST_F(MapTest, MapTest_009, TestSize.Level0)
close(outParam[0]);
}
HWTEST_F(MapTest, MapTest_010, TestSize.Level0)
HWTEST_F(CppMapTest, CppMapTest_010, TestSize.Level1)
{
std::map<int32_t, sptr<SequenceData>> inParam = {
{0, sptr<SequenceData>(new SequenceData(1, 1.2, "hello"))},
@@ -248,12 +247,12 @@ HWTEST_F(MapTest, MapTest_010, TestSize.Level0)
EXPECT_DOUBLE_EQ(inIter->second->m2_, outIter->second->m2_);
EXPECT_EQ(inIter->second->m3_, outIter->second->m3_);
} else {
std::cout << "MapTest_010 TestCase is failed!" << std::endl;
std::cout << "CppMapTest_010 TestCase is failed!" << std::endl;
}
}
}
HWTEST_F(MapTest, MapTest_011, TestSize.Level0)
HWTEST_F(CppMapTest, CppMapTest_011, TestSize.Level1)
{
std::map<int32_t, ESample> inParam;
inParam[1] = ESample::MEM_ONE;
@@ -269,12 +268,12 @@ HWTEST_F(MapTest, MapTest_011, TestSize.Level0)
if (outIter != outParam.end()) {
ASSERT_EQ(inIter->second, outIter->second);
} else {
std::cout << "MapTest_011 TestCase is failed!" << std::endl;
std::cout << "CppMapTest_011 TestCase is failed!" << std::endl;
}
}
}
HWTEST_F(MapTest, MapTest_012, TestSize.Level0)
HWTEST_F(CppMapTest, CppMapTest_012, TestSize.Level1)
{
std::map<int32_t, SSample> inParam;
for (int32_t i = 0; i < 2; i++) {
@@ -299,12 +298,12 @@ HWTEST_F(MapTest, MapTest_012, TestSize.Level0)
ASSERT_DOUBLE_EQ((inIter->second).m3, (outIter->second).m3);
ASSERT_EQ((inIter->second).m4, (outIter->second).m4);
} else {
std::cout << "MapTest_012 TestCase is failed!" << std::endl;
std::cout << "CppMapTest_012 TestCase is failed!" << std::endl;
}
}
}
HWTEST_F(MapTest, MapTest_013, TestSize.Level0)
HWTEST_F(CppMapTest, CppMapTest_013, TestSize.Level1)
{
std::map<int32_t, USample> inParam;
for (int32_t i = 0; i < 2; i++) {
@@ -325,7 +324,7 @@ HWTEST_F(MapTest, MapTest_013, TestSize.Level0)
ASSERT_EQ(((inIter->second).m1 ? 1 : 0), ((outIter->second).m1 ? 1 : 0));
ASSERT_EQ((inIter->second).m2, (outIter->second).m2);
} else {
std::cout << "MapTest_013 TestCase is failed!" << std::endl;
std::cout << "CppMapTest_013 TestCase is failed!" << std::endl;
}
}
}
@@ -8,14 +8,14 @@
#include <iostream>
#include <thread>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <gtest/gtest.h>
#include <hdf_log.h>
#include <osal_mem.h>
#include <securec.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include "hdf_log.h"
#include "osal_mem.h"
#include "securec.h"
#include "test/cpp_test/struct_test/v1_0/client/struct_test_proxy.h"
using namespace OHOS;
@@ -25,7 +25,7 @@ using namespace test::cpp_test::types::v1_0;
static sptr<IStructTest> g_testClient = nullptr;
class StructTest : public testing::Test {
class CppStructTest : public testing::Test {
public:
static void SetUpTestCase();
static void TearDownTestCase(){}
@@ -33,44 +33,20 @@ public:
void TearDown(){}
};
void StructTest::SetUpTestCase()
void CppStructTest::SetUpTestCase()
{
g_testClient = IStructTest::Get();
if (g_testClient == nullptr) {
printf("StructTest: get g_testClient failed.\n");
printf("CppStructTest: get g_testClient failed.\n");
}
}
HWTEST_F(StructTest, StructTest_001, TestSize.Level0)
HWTEST_F(CppStructTest, CppStructTest_001, TestSize.Level1)
{
ASSERT_NE(nullptr, g_testClient);
}
static std::string ESampleToStr(ESample obj)
{
switch (obj) {
case ESample::MEM_ONE:
return "MEM_ONE";
case ESample::MEM_TWO:
return "MEM_TWO";
case ESample::MEM_THREE:
return "MEM_THREE";
default:
return "unknown";
}
}
static void PrintSSample(const SSample& obj)
{
std::cout << "{";
std::cout << "m1:" << (obj.m1 ? 1 : 0) << ", ";
std::cout << "m2:" << obj.m2 << ", ";
std::cout << "m3:" << obj.m3 << ", ";
std::cout << "m4:" << obj.m4;
std::cout << "}";
}
HWTEST_F(StructTest, StructTest_002, TestSize.Level0)
HWTEST_F(CppStructTest, CppStructTest_002, TestSize.Level1)
{
SSample srcObj = {true, 1, 1000.125, "hello world"};
@@ -83,33 +59,9 @@ HWTEST_F(StructTest, StructTest_002, TestSize.Level0)
EXPECT_EQ(srcObj.m2, destObj.m2);
EXPECT_DOUBLE_EQ(srcObj.m3, destObj.m3);
EXPECT_EQ(srcObj.m4, destObj.m4);
PrintSSample(srcObj);
std::cout << "\n";
PrintSSample(destObj);
std::cout << "\n";
std::cout << "----------------------------" << std::endl;
}
static void PrintSSample2(const SSample2& obj)
{
std::cout << "{";
std::cout << "m1:" << obj.m1 << ", ";
std::cout << "m2:" << (obj.m2 ? 1 : 0) << ", ";
std::cout << "m3:" << obj.m3 << ", ";
std::cout << "m4:" << obj.m4 << ", ";
std::cout << "m5:" << obj.m5 << ", ";
std::cout << "m6:" << obj.m6 << ", ";
std::cout << "m7:" << obj.m7 << ", ";
std::cout << "m8:" << obj.m8 << ", ";
std::cout << "m9:" << obj.m9 << ", ";
std::cout << "m10:" << obj.m10 << ", ";
std::cout << "m11:" << obj.m11;
std::cout << "}";
}
HWTEST_F(StructTest, StructTest_003, TestSize.Level0)
HWTEST_F(CppStructTest, CppStructTest_003, TestSize.Level1)
{
SSample2 srcObj = {true, 1, 2, 3, 4, 65, 20, 30, 40, 100.25, 1000.125};
@@ -129,28 +81,9 @@ HWTEST_F(StructTest, StructTest_003, TestSize.Level0)
EXPECT_EQ(srcObj.m9, destObj.m9);
EXPECT_FLOAT_EQ(srcObj.m10, destObj.m10);
EXPECT_DOUBLE_EQ(srcObj.m11, destObj.m11);
PrintSSample2(srcObj);
std::cout << "\n";
PrintSSample2(destObj);
std::cout << "\n";
std::cout << "----------------------------" << std::endl;
}
static void PrintSSample3(const SSample3& obj)
{
std::cout << "{";
std::cout << "m1:" << obj.m1 << ", ";
std::cout << "m2:" << ESampleToStr(obj.m2) << ", ";
std::cout << "m3:";
PrintSSample2(obj.m3);
std::cout << ", ";
std::cout << "m4:" << obj.m4;
}
HWTEST_F(StructTest, StructTest_004, TestSize.Level0)
HWTEST_F(CppStructTest, CppStructTest_004, TestSize.Level1)
{
int fd = open("/fdtest3.txt", O_CREAT | O_RDWR | O_TRUNC, 0644);
SSample3 srcObj = {
@@ -166,7 +99,6 @@ HWTEST_F(StructTest, StructTest_004, TestSize.Level0)
EXPECT_EQ(srcObj.m1, destObj.m1);
EXPECT_EQ(srcObj.m2, destObj.m2);
EXPECT_EQ((srcObj.m3.m1 ? 1 : 0), (destObj.m3.m1 ? 1 : 0));
EXPECT_EQ(srcObj.m3.m2, destObj.m3.m2);
EXPECT_EQ(srcObj.m3.m3, destObj.m3.m3);
@@ -178,114 +110,11 @@ HWTEST_F(StructTest, StructTest_004, TestSize.Level0)
EXPECT_EQ(srcObj.m3.m9, destObj.m3.m9);
EXPECT_FLOAT_EQ(srcObj.m3.m10, destObj.m3.m10);
EXPECT_DOUBLE_EQ(srcObj.m3.m11, destObj.m3.m11);
PrintSSample3(srcObj);
std::cout << "\n";
PrintSSample3(destObj);
std::cout << "\n";
std::cout << "----------------------------" << std::endl;
close(srcObj.m4);
close(destObj.m4);
}
static void PrintSSample4(const SSample4& obj)
{
std::cout << "{\n";
std::cout << "m1:{";
for (size_t i = 0; i < obj.m1.size(); i++) {
std::cout << (obj.m1[i] ? 1 : 0) << ", ";
}
std::cout << "},\n";
std::cout << "m2:{";
for (size_t i = 0; i < obj.m2.size(); i++) {
std::cout << obj.m2[i] << ", ";
}
std::cout << "},\n";
std::cout << "m3:{";
for (size_t i = 0; i < obj.m3.size(); i++) {
std::cout << obj.m3[i] << ", ";
}
std::cout << "},\n";
std::cout << "m4:{";
for (size_t i = 0; i < obj.m4.size(); i++) {
std::cout << obj.m4[i] << ", ";
}
std::cout << "},\n";
std::cout << "m5:{";
for (size_t i = 0; i < obj.m5.size(); i++) {
std::cout << obj.m5[i] << ", ";
}
std::cout << "},\n";
std::cout << "m6:{";
for (size_t i = 0; i < obj.m6.size(); i++) {
std::cout << obj.m6[i] << ", ";
}
std::cout << "},\n";
std::cout << "m7:{";
for (size_t i = 0; i < obj.m7.size(); i++) {
std::cout << obj.m7[i] << ", ";
}
std::cout << "},\n";
std::cout << "m8:{";
for (size_t i = 0; i < obj.m8.size(); i++) {
std::cout << obj.m8[i] << ", ";
}
std::cout << "},\n";
std::cout << "m9:{";
for (size_t i = 0; i < obj.m9.size(); i++) {
std::cout << obj.m9[i] << ", ";
}
std::cout << "},\n";
std::cout << "m10:{";
for (size_t i = 0; i < obj.m10.size(); i++) {
std::cout << obj.m10[i] << ", ";
}
std::cout << "},\n";
std::cout << "m11:{";
for (size_t i = 0; i < obj.m11.size(); i++) {
std::cout << obj.m11[i] << ", ";
}
std::cout << "},\n";
std::cout << "m12:{";
for (size_t i = 0; i < obj.m12.size(); i++) {
std::cout << obj.m12[i] << ", ";
}
std::cout << "},\n";
std::cout << "m13:{";
for (size_t i = 0; i < obj.m13.size(); i++) {
std::cout << ESampleToStr(obj.m13[i]) << ", ";
}
std::cout << "},\n";
std::cout << "m14:{";
for (size_t i = 0; i < obj.m13.size(); i++) {
PrintSSample(obj.m14[i]);
std::cout << ", ";
}
std::cout << "},\n";
std::cout << "m15:{";
for (size_t i = 0; i < obj.m15.size(); i++) {
std::cout << obj.m15[i] << ", ";
}
std::cout << "}";
std::cout << "}\n";
}
HWTEST_F(StructTest, StructTest_005, TestSize.Level0)
HWTEST_F(CppStructTest, CppStructTest_005, TestSize.Level1)
{
SSample4 srcObj = {
{true, false},
@@ -381,112 +210,9 @@ HWTEST_F(StructTest, StructTest_005, TestSize.Level0)
std::cout << "var1 or var2 is nullptr" << std::endl;
}
}
PrintSSample4(srcObj);
PrintSSample4(destObj);
std::cout << "\n";
std::cout << "--------------------------------------\n";
}
static void PrintSSample5(const SSample5& obj)
{
std::cout << "{\n";
std::cout << "m1:{";
for (size_t i = 0; i < obj.m1.size(); i++) {
std::cout << obj.m1[i] << ", ";
}
std::cout << "},\n";
std::cout << "m2:{";
for (size_t i = 0; i < obj.m2.size(); i++) {
std::cout << obj.m2[i] << ", ";
}
std::cout << "},\n";
std::cout << "m3:{";
for (size_t i = 0; i < obj.m3.size(); i++) {
std::cout << obj.m3[i] << ", ";
}
std::cout << "},\n";
std::cout << "m4:{";
for (size_t i = 0; i < obj.m4.size(); i++) {
std::cout << obj.m4[i] << ", ";
}
std::cout << "},\n";
std::cout << "m5:{";
for (size_t i = 0; i < obj.m5.size(); i++) {
std::cout << obj.m5[i] << ", ";
}
std::cout << "},\n";
std::cout << "m6:{";
for (size_t i = 0; i < obj.m6.size(); i++) {
std::cout << obj.m6[i] << ", ";
}
std::cout << "},\n";
std::cout << "m7:{";
for (size_t i = 0; i < obj.m7.size(); i++) {
std::cout << obj.m7[i] << ", ";
}
std::cout << "},\n";
std::cout << "m8:{";
for (size_t i = 0; i < obj.m8.size(); i++) {
std::cout << obj.m8[i] << ", ";
}
std::cout << "},\n";
std::cout << "m9:{";
for (size_t i = 0; i < obj.m9.size(); i++) {
std::cout << obj.m9[i] << ", ";
}
std::cout << "},\n";
std::cout << "m10:{";
for (size_t i = 0; i < obj.m10.size(); i++) {
std::cout << obj.m10[i] << ", ";
}
std::cout << "},\n";
std::cout << "m11:{";
for (size_t i = 0; i < obj.m11.size(); i++) {
std::cout << obj.m11[i] << ", ";
}
std::cout << "},\n";
std::cout << "m12:{";
for (size_t i = 0; i < obj.m12.size(); i++) {
std::cout << obj.m12[i] << ", ";
}
std::cout << "},\n";
std::cout << "m13:{";
for (size_t i = 0; i < obj.m13.size(); i++) {
std::cout << ESampleToStr(obj.m13[i]) << ", ";
}
std::cout << "},\n";
std::cout << "m14:{";
for (size_t i = 0; i < obj.m14.size(); i++) {
PrintSSample(obj.m14[i]);
std::cout << ", \n";
}
std::cout << ",\n";
std::cout << "m13:{";
for (size_t i = 0; i < obj.m15.size(); i++) {
std::cout << obj.m15[i] << ", ";
}
std::cout << "},\n";
std::cout << "}";
}
HWTEST_F(StructTest, StructTest_006, TestSize.Level0)
HWTEST_F(CppStructTest, CppStructTest_006, TestSize.Level1)
{
SSample5 srcObj = {
{true, false},
@@ -582,9 +308,4 @@ HWTEST_F(StructTest, StructTest_006, TestSize.Level0)
std::cout << "var1 or var2 is nullptr" << std::endl;
}
}
PrintSSample5(srcObj);
PrintSSample5(destObj);
std::cout << "\n";
std::cout << "--------------------------------------\n";
}
+2 -2
View File
@@ -114,7 +114,7 @@ int File::Read()
return (count != 0) ? count : -1;
}
bool File::ReadData(void* data, size_t size)
bool File::ReadData(void* data, size_t size) const
{
if (data == nullptr || size == 0) {
return true;
@@ -128,7 +128,7 @@ bool File::ReadData(void* data, size_t size)
return count == 1;
}
bool File::WriteData(const void* data, size_t size)
bool File::WriteData(const void* data, size_t size) const
{
if (data == nullptr || size == 0) {
return true;
+2 -3
View File
@@ -9,7 +9,6 @@
#ifndef OHOS_HDI_FILE_H
#define OHOS_HDI_FILE_H
#include <cstddef>
#include <cstdio>
#include "util/string.h"
@@ -47,9 +46,9 @@ public:
return columnNo_;
}
bool ReadData(void* data, size_t size);
bool ReadData(void* data, size_t size) const;
bool WriteData(const void* data, size_t size);
bool WriteData(const void* data, size_t size) const;
void Flush();
+3 -3
View File
@@ -16,7 +16,7 @@
namespace OHOS {
namespace HDI {
const char* Options::OPT_SUPPORT_ARGS = "c:d:";
const char* Options::optSupportArgs = "c:d:";
static struct option g_longOpts[] = {
{"help", no_argument, nullptr, 'h'},
{"version", no_argument, nullptr, 'v'},
@@ -34,14 +34,14 @@ Options& Options::GetInstance()
return option;
}
Options& Options::Parse(int argc, char** argv)
Options& Options::Parse(int argc, char* const argv[])
{
program_ = argv[0];
opterr = 1;
int op = 0;
int optIndex = 0;
while ((op = getopt_long(argc, argv, OPT_SUPPORT_ARGS, g_longOpts, &optIndex)) != OPT_END) {
while ((op = getopt_long(argc, argv, optSupportArgs, g_longOpts, &optIndex)) != OPT_END) {
switch (op) {
case 'c':
doCompile_ = true;
+2 -2
View File
@@ -21,7 +21,7 @@ public:
Options(const Options& other) = delete;
Options operator=(const Options& other) = delete;
Options& Parse(int argc, char** argv);
Options& Parse(int argc, char* const argv[]);
~Options() = default;
@@ -98,7 +98,7 @@ private:
void CheckOptions();
static const char* OPT_SUPPORT_ARGS;
static const char* optSupportArgs;
static constexpr int OPT_END = -1;
static constexpr int VERSION_MAJOR = 0;