Add typedefs for other integer and string types in generated C++ code.
GitOrigin-RevId: d6494c0aaaf10719c9bbb24ba4d259d7cde25060
This commit is contained in:
parent
24a4104ac2
commit
8898bfa655
@ -10,15 +10,15 @@ class DoxygenTlDocumentationGenerator extends TlDocumentationGenerator
|
|||||||
case 'Bool':
|
case 'Bool':
|
||||||
return 'bool ';
|
return 'bool ';
|
||||||
case 'int32':
|
case 'int32':
|
||||||
return 'std::int32_t ';
|
return 'int32 ';
|
||||||
case 'int53':
|
case 'int53':
|
||||||
return 'int53 ';
|
return 'int53 ';
|
||||||
case 'int64':
|
case 'int64':
|
||||||
return 'std::int64_t ';
|
return 'int64 ';
|
||||||
case 'double':
|
case 'double':
|
||||||
return 'double ';
|
return 'double ';
|
||||||
case 'string':
|
case 'string':
|
||||||
return 'std::string const &';
|
return 'string const &';
|
||||||
case 'bytes':
|
case 'bytes':
|
||||||
return 'bytes const &';
|
return 'bytes const &';
|
||||||
|
|
||||||
@ -69,15 +69,15 @@ class DoxygenTlDocumentationGenerator extends TlDocumentationGenerator
|
|||||||
case 'Bool':
|
case 'Bool':
|
||||||
return 'bool';
|
return 'bool';
|
||||||
case 'int32':
|
case 'int32':
|
||||||
return 'std::int32_t';
|
return 'int32';
|
||||||
case 'int53':
|
case 'int53':
|
||||||
return 'int53';
|
return 'int53';
|
||||||
case 'int64':
|
case 'int64':
|
||||||
return 'std::int64_t';
|
return 'int64';
|
||||||
case 'double':
|
case 'double':
|
||||||
return 'double';
|
return 'double';
|
||||||
case 'string':
|
case 'string':
|
||||||
return 'std::string';
|
return 'string';
|
||||||
case 'bytes':
|
case 'bytes':
|
||||||
return 'bytes';
|
return 'bytes';
|
||||||
case 'bool':
|
case 'bool':
|
||||||
@ -167,6 +167,13 @@ class DoxygenTlDocumentationGenerator extends TlDocumentationGenerator
|
|||||||
* Contains declarations of all functions and types which represent a public TDLib interface.
|
* Contains declarations of all functions and types which represent a public TDLib interface.
|
||||||
*/
|
*/
|
||||||
EOT
|
EOT
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->addDocumentation('using int32 = std::int32_t;', <<<EOT
|
||||||
|
/**
|
||||||
|
* This type is used to store 32-bit signed integers, which can be represented as Number in JSON.
|
||||||
|
*/
|
||||||
|
EOT
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->addDocumentation('using int53 = std::int64_t;', <<<EOT
|
$this->addDocumentation('using int53 = std::int64_t;', <<<EOT
|
||||||
@ -174,11 +181,25 @@ EOT
|
|||||||
* This type is used to store 53-bit signed integers, which can be represented as Number in JSON.
|
* This type is used to store 53-bit signed integers, which can be represented as Number in JSON.
|
||||||
*/
|
*/
|
||||||
EOT
|
EOT
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->addDocumentation('using int64 = std::int64_t;', <<<EOT
|
||||||
|
/**
|
||||||
|
* This type is used to store 64-bit signed integers, which can't be represented as Number in JSON and are represented as String instead.
|
||||||
|
*/
|
||||||
|
EOT
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->addDocumentation('using string = std::string;', <<<EOT
|
||||||
|
/**
|
||||||
|
* This type is used to store UTF-8 strings.
|
||||||
|
*/
|
||||||
|
EOT
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->addDocumentation('using bytes = std::string;', <<<EOT
|
$this->addDocumentation('using bytes = std::string;', <<<EOT
|
||||||
/**
|
/**
|
||||||
* This type is used to store arbitrary sequence of bytes.
|
* This type is used to store arbitrary sequences of bytes. In JSON interface the bytes are base64-encoded.
|
||||||
*/
|
*/
|
||||||
EOT
|
EOT
|
||||||
);
|
);
|
||||||
|
@ -147,7 +147,7 @@ std::string TD_TL_writer_cpp::gen_fetch_class_name(const tl::tl_tree_type *tree_
|
|||||||
return "TlFetch" + name;
|
return "TlFetch" + name;
|
||||||
}
|
}
|
||||||
if (name == "String") {
|
if (name == "String") {
|
||||||
return "TlFetchString<" + string_type + ">";
|
return "TlFetchString<string>";
|
||||||
}
|
}
|
||||||
if (name == "Bytes") {
|
if (name == "Bytes") {
|
||||||
return "TlFetchBytes<bytes>";
|
return "TlFetchBytes<bytes>";
|
||||||
|
@ -56,7 +56,13 @@ std::string TD_TL_writer_h::gen_output_begin() const {
|
|||||||
ext_forward_declaration + "namespace " + tl_name +
|
ext_forward_declaration + "namespace " + tl_name +
|
||||||
" {\n\n"
|
" {\n\n"
|
||||||
|
|
||||||
"using int53 = std::int64_t;\n\n"
|
"using int32 = std::int32_t;\n"
|
||||||
|
"using int53 = std::int64_t;\n"
|
||||||
|
"using int64 = std::int64_t;\n\n"
|
||||||
|
|
||||||
|
"using string = " +
|
||||||
|
string_type +
|
||||||
|
";\n\n"
|
||||||
|
|
||||||
"using bytes = " +
|
"using bytes = " +
|
||||||
bytes_type +
|
bytes_type +
|
||||||
|
@ -83,10 +83,10 @@ std::string TD_TL_writer_jni_cpp::gen_vector_fetch(std::string field_name, const
|
|||||||
|
|
||||||
std::string fetch_object = "jni::fetch_object(env, p, " + field_name + "fieldID)";
|
std::string fetch_object = "jni::fetch_object(env, p, " + field_name + "fieldID)";
|
||||||
std::string array_type;
|
std::string array_type;
|
||||||
if (vector_type == "std::int32_t") {
|
if (vector_type == "int32") {
|
||||||
array_type = "jintArray";
|
array_type = "jintArray";
|
||||||
}
|
}
|
||||||
if (vector_type == "int53" || vector_type == "std::int64_t") {
|
if (vector_type == "int53" || vector_type == "int64") {
|
||||||
array_type = "jlongArray";
|
array_type = "jlongArray";
|
||||||
}
|
}
|
||||||
if (vector_type == "double") {
|
if (vector_type == "double") {
|
||||||
@ -98,7 +98,7 @@ std::string TD_TL_writer_jni_cpp::gen_vector_fetch(std::string field_name, const
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::string template_type;
|
std::string template_type;
|
||||||
if (vector_type == string_type) {
|
if (vector_type == "string") {
|
||||||
template_type = "std::string";
|
template_type = "std::string";
|
||||||
} else if (vector_type.compare(0, 11, "std::vector") == 0) {
|
} else if (vector_type.compare(0, 11, "std::vector") == 0) {
|
||||||
const tl::tl_tree_type *child = static_cast<const tl::tl_tree_type *>(t->children[0]);
|
const tl::tl_tree_type *child = static_cast<const tl::tl_tree_type *>(t->children[0]);
|
||||||
@ -248,8 +248,8 @@ std::string TD_TL_writer_jni_cpp::gen_vector_store(const std::string &field_name
|
|||||||
if (vector_type == "bool") {
|
if (vector_type == "bool") {
|
||||||
assert(false); // TODO
|
assert(false); // TODO
|
||||||
}
|
}
|
||||||
if (vector_type == "std::int32_t" || vector_type == "int53" || vector_type == "std::int64_t" ||
|
if (vector_type == "int32" || vector_type == "int53" || vector_type == "int64" || vector_type == "double" ||
|
||||||
vector_type == "double" || vector_type == string_type || vector_type.compare(0, 11, "std::vector") == 0 ||
|
vector_type == "string" || vector_type.compare(0, 11, "std::vector") == 0 ||
|
||||||
vector_type.compare(0, 10, "object_ptr") == 0) {
|
vector_type.compare(0, 10, "object_ptr") == 0) {
|
||||||
return "{ "
|
return "{ "
|
||||||
"auto arr_tmp_ = jni::store_vector(env, " +
|
"auto arr_tmp_ = jni::store_vector(env, " +
|
||||||
|
@ -79,7 +79,13 @@ std::string TD_TL_writer_jni_h::gen_output_begin() const {
|
|||||||
tl_name +
|
tl_name +
|
||||||
" {\n\n"
|
" {\n\n"
|
||||||
|
|
||||||
"using int53 = std::int64_t;\n\n"
|
"using int32 = std::int32_t;\n"
|
||||||
|
"using int53 = std::int64_t;\n"
|
||||||
|
"using int64 = std::int64_t;\n\n"
|
||||||
|
|
||||||
|
"using string = " +
|
||||||
|
string_type +
|
||||||
|
";\n\n"
|
||||||
|
|
||||||
"using bytes = " +
|
"using bytes = " +
|
||||||
bytes_type +
|
bytes_type +
|
||||||
|
@ -121,7 +121,7 @@ std::string TD_TL_writer::gen_class_name(std::string name) const {
|
|||||||
assert(false);
|
assert(false);
|
||||||
}
|
}
|
||||||
if (name == "#") {
|
if (name == "#") {
|
||||||
return "std::int32_t";
|
return "int32";
|
||||||
}
|
}
|
||||||
for (std::size_t i = 0; i < name.size(); i++) {
|
for (std::size_t i = 0; i < name.size(); i++) {
|
||||||
if (!is_alnum(name[i])) {
|
if (!is_alnum(name[i])) {
|
||||||
@ -161,7 +161,7 @@ std::string TD_TL_writer::gen_type_name(const tl::tl_tree_type *tree_type) const
|
|||||||
const std::string &name = t->name;
|
const std::string &name = t->name;
|
||||||
|
|
||||||
if (name == "#") {
|
if (name == "#") {
|
||||||
return "std::int32_t";
|
return "int32";
|
||||||
}
|
}
|
||||||
if (name == "True") {
|
if (name == "True") {
|
||||||
return "bool";
|
return "bool";
|
||||||
@ -170,19 +170,19 @@ std::string TD_TL_writer::gen_type_name(const tl::tl_tree_type *tree_type) const
|
|||||||
return "bool";
|
return "bool";
|
||||||
}
|
}
|
||||||
if (name == "Int" || name == "Int32") {
|
if (name == "Int" || name == "Int32") {
|
||||||
return "std::int32_t";
|
return "int32";
|
||||||
}
|
}
|
||||||
if (name == "Int53") {
|
if (name == "Int53") {
|
||||||
return "int53";
|
return "int53";
|
||||||
}
|
}
|
||||||
if (name == "Long" || name == "Int64") {
|
if (name == "Long" || name == "Int64") {
|
||||||
return "std::int64_t";
|
return "int64";
|
||||||
}
|
}
|
||||||
if (name == "Double") {
|
if (name == "Double") {
|
||||||
return "double";
|
return "double";
|
||||||
}
|
}
|
||||||
if (name == "String") {
|
if (name == "String") {
|
||||||
return string_type;
|
return "string";
|
||||||
}
|
}
|
||||||
if (name == "Int128") {
|
if (name == "Int128") {
|
||||||
return "UInt128";
|
return "UInt128";
|
||||||
@ -242,10 +242,10 @@ std::string TD_TL_writer::gen_constructor_parameter(int field_num, const std::st
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::string res = (field_num == 0 ? "" : ", ");
|
std::string res = (field_num == 0 ? "" : ", ");
|
||||||
if (field_type == "bool " || field_type == "std::int32_t " || field_type == "int53 " ||
|
if (field_type == "bool " || field_type == "int32 " || field_type == "int53 " || field_type == "int64 " ||
|
||||||
field_type == "std::int64_t " || field_type == "double ") {
|
field_type == "double ") {
|
||||||
res += field_type;
|
res += field_type;
|
||||||
} else if (field_type == "UInt128 " || field_type == "UInt256 " || field_type == string_type + " " ||
|
} else if (field_type == "UInt128 " || field_type == "UInt256 " || field_type == "string " ||
|
||||||
(string_type == bytes_type && field_type == "bytes ")) {
|
(string_type == bytes_type && field_type == "bytes ")) {
|
||||||
res += field_type + "const &";
|
res += field_type + "const &";
|
||||||
} else if (field_type.compare(0, 11, "std::vector") == 0 || field_type == "bytes ") {
|
} else if (field_type.compare(0, 11, "std::vector") == 0 || field_type == "bytes ") {
|
||||||
|
Reference in New Issue
Block a user