Squashed 'external/toxcore/c-toxcore/' changes from e29e185c03..f1df709b87
f1df709b87 feat: add ngc events 1b6c907235 refactor: Make event dispatch ordered by receive time. b7f9367f6f test: Upgrade cppcheck, fix some warnings. 766e62bc89 chore: Use `pkg_search_module` directly in cmake. 00ff078f91 cleanup: Use target_link_libraries directly in cmake. c58928cc89 chore: Add `IMPORTED_TARGET` to pkg-config packages. 895a6af122 cleanup: Remove NaCl support. 41dfb1c1c0 fix: unpack enum function names in event impl generator 447666d1a1 chore: Disable targets for cross-compilation. 572924e924 chore: Build a docker image with coverage info in it. 415cb78f5e cleanup: Some portability/warning fixes for Windows builds. 425216d9ec fix: Correct a use-after-free and fix some memory leaks. 4b1cfa3e08 refactor: Change all enum-like `#define` sequences into enums. d3c2704fa9 chore: Fix make_single_file to support core-only. 0ce46b644e refactor: Change the `TCP_PACKET_*` defines into an enum. 22cd38ad50 adopt event impl generation tool to #2392 f31ea1088a add the event impl generation tool 4e603bb613 refactor: Use `enum-from-int` rule from tokstyle. 19d8f180d6 chore: Update github actions `uses`. 6a895be0c7 test: Make esp32 build actually try to instantiate tox. 65d09c9bfb cleanup: Remove test net support. REVERT: e29e185c03 feat: add ngc events git-subtree-dir: external/toxcore/c-toxcore git-subtree-split: f1df709b8792da4c0e946d826b11df77d565064d
This commit is contained in:
@ -80,27 +80,27 @@ std::string bin_unpack_name_from_type(const std::string& type) {
|
||||
} else if (type == "bool") {
|
||||
return "bin_unpack_bool";
|
||||
} else if (type == "Tox_User_Status") {
|
||||
return "tox_unpack_user_status";
|
||||
return "tox_user_status_unpack";
|
||||
} else if (type == "Tox_Conference_Type") {
|
||||
return "tox_unpack_conference_type";
|
||||
return "tox_conference_type_unpack";
|
||||
} else if (type == "Tox_Message_Type") {
|
||||
return "tox_unpack_message_type";
|
||||
return "tox_message_type_unpack";
|
||||
} else if (type == "Tox_File_Control") {
|
||||
return "tox_unpack_file_control";
|
||||
return "tox_file_control_unpack";
|
||||
} else if (type == "Tox_Connection") {
|
||||
return "tox_unpack_connection";
|
||||
return "tox_connection_unpack";
|
||||
} else if (type == "Tox_Group_Privacy_State") {
|
||||
return "tox_unpack_group_privacy_state";
|
||||
return "tox_group_privacy_state_unpack";
|
||||
} else if (type == "Tox_Group_Voice_State") {
|
||||
return "tox_unpack_group_voice_state";
|
||||
return "tox_group_voice_state_unpack";
|
||||
} else if (type == "Tox_Group_Topic_Lock") {
|
||||
return "tox_unpack_group_topic_lock";
|
||||
return "tox_group_topic_lock_unpack";
|
||||
} else if (type == "Tox_Group_Join_Fail") {
|
||||
return "tox_unpack_group_join_fail";
|
||||
return "tox_group_join_fail_unpack";
|
||||
} else if (type == "Tox_Group_Mod_Event") {
|
||||
return "tox_unpack_group_mod_event";
|
||||
return "tox_group_mod_event_unpack";
|
||||
} else if (type == "Tox_Group_Exit_Type") {
|
||||
return "tox_unpack_group_exit_type";
|
||||
return "tox_group_exit_type_unpack";
|
||||
} else {
|
||||
std::cerr << "unknown type " << type << "\n";
|
||||
exit(1);
|
||||
@ -109,7 +109,7 @@ std::string bin_unpack_name_from_type(const std::string& type) {
|
||||
}
|
||||
}
|
||||
|
||||
void generate_event_impl(const std::string& event_name, std::vector<EventType> event_types) {
|
||||
void generate_event_impl(const std::string& event_name, const std::vector<EventType>& event_types) {
|
||||
const std::string event_name_l = str_tolower(event_name);
|
||||
std::string file_name = output_folder + "/" + event_name_l + ".c";
|
||||
|
||||
@ -164,35 +164,6 @@ void generate_event_impl(const std::string& event_name, std::vector<EventType> e
|
||||
}
|
||||
f << "};\n\n";
|
||||
|
||||
// gen contruct
|
||||
f << "non_null()\n";
|
||||
f << "static void tox_event_" << event_name_l << "_construct(Tox_Event_" << event_name << " *" << event_name_l << ")\n{\n";
|
||||
// TODO: initialize all members properly
|
||||
// TODO: check if _NONE is universal
|
||||
// str_toupper(
|
||||
f << " *" << event_name_l << " = (Tox_Event_" << event_name << ") {\n 0\n };\n}\n";
|
||||
|
||||
// gen destruct
|
||||
f << "non_null()\n";
|
||||
f << "static void tox_event_" << event_name_l << "_destruct(Tox_Event_" << event_name << " *" << event_name_l << ")\n{\n";
|
||||
size_t data_count = 0;
|
||||
for (const auto& t : event_types) {
|
||||
std::visit(
|
||||
overloaded{
|
||||
[&](const EventTypeTrivial&) {},
|
||||
[&](const EventTypeByteRange& t) {
|
||||
f << " free(" << event_name_l << "->" << t.name_data << ");\n";
|
||||
data_count++;
|
||||
}
|
||||
},
|
||||
t
|
||||
);
|
||||
}
|
||||
if (data_count == 0) {
|
||||
f << " return;\n";
|
||||
}
|
||||
f << "}\n\n";
|
||||
|
||||
// gen setters and getters
|
||||
for (const auto& t : event_types) {
|
||||
// setter
|
||||
@ -258,7 +229,7 @@ void generate_event_impl(const std::string& event_name, std::vector<EventType> e
|
||||
},
|
||||
[&](const EventTypeByteRange& t) {
|
||||
//f << "non_null()\n"; // TODO: is this missing in the original?
|
||||
f << "size_t tox_event_" << event_name_l << "_get_" << t.name_length;
|
||||
f << "uint32_t tox_event_" << event_name_l << "_get_" << t.name_length;
|
||||
f << "(const Tox_Event_" << event_name << " *" << event_name_l << ")\n";
|
||||
f << "{\n assert(" << event_name_l << " != nullptr);\n";
|
||||
f << " return " << event_name_l << "->" << t.name_length << ";\n}\n";
|
||||
@ -272,15 +243,45 @@ void generate_event_impl(const std::string& event_name, std::vector<EventType> e
|
||||
);
|
||||
}
|
||||
|
||||
// pack
|
||||
|
||||
// gen contruct
|
||||
f << "non_null()\n";
|
||||
f << "static bool tox_event_" << event_name_l << "_pack(\n";
|
||||
f << "static void tox_event_" << event_name_l << "_construct(Tox_Event_" << event_name << " *" << event_name_l << ")\n{\n";
|
||||
// TODO: initialize all members properly
|
||||
// TODO: check if _NONE is universal
|
||||
// str_toupper(
|
||||
f << " *" << event_name_l << " = (Tox_Event_" << event_name << ") {\n 0\n };\n}\n";
|
||||
|
||||
// gen destruct
|
||||
f << "non_null()\n";
|
||||
f << "static void tox_event_" << event_name_l << "_destruct(Tox_Event_" << event_name << " *" << event_name_l << ", const Memory *mem)\n{\n";
|
||||
size_t data_count = 0;
|
||||
for (const auto& t : event_types) {
|
||||
std::visit(
|
||||
overloaded{
|
||||
[&](const EventTypeTrivial&) {},
|
||||
[&](const EventTypeByteRange& t) {
|
||||
f << " free(" << event_name_l << "->" << t.name_data << ");\n";
|
||||
//f << " mem->funcs->free(mem->obj, " << event_name_l << "->" << t.name_data << ");\n";
|
||||
data_count++;
|
||||
}
|
||||
},
|
||||
t
|
||||
);
|
||||
}
|
||||
if (data_count == 0) {
|
||||
f << " return;\n";
|
||||
}
|
||||
f << "}\n\n";
|
||||
|
||||
// pack
|
||||
f << "bool tox_event_" << event_name_l << "_pack(\n";
|
||||
f << " const Tox_Event_" << event_name << " *event, Bin_Pack *bp)\n{\n";
|
||||
f << " assert(event != nullptr);\n";
|
||||
f << " return bin_pack_array(bp, 2)\n";
|
||||
f << " && bin_pack_u32(bp, TOX_EVENT_" << str_toupper(event_name) << ")\n";
|
||||
f << " && bin_pack_u32(bp, TOX_EVENT_" << str_toupper(event_name) << ")";
|
||||
if (event_types.size() > 1) {
|
||||
f << " && bin_pack_array(bp, " << event_types.size() << ")";
|
||||
f << "\n && bin_pack_array(bp, " << event_types.size() << ")";
|
||||
}
|
||||
|
||||
for (const auto& t : event_types) {
|
||||
@ -302,7 +303,7 @@ void generate_event_impl(const std::string& event_name, std::vector<EventType> e
|
||||
|
||||
// unpack
|
||||
f << "non_null()\n";
|
||||
f << "static bool tox_event_" << event_name_l << "_unpack(\n";
|
||||
f << "static bool tox_event_" << event_name_l << "_unpack_into(\n";
|
||||
f << " Tox_Event_" << event_name << " *event, Bin_Unpack *bu)\n{\n";
|
||||
f << " assert(event != nullptr);\n";
|
||||
if (event_types.size() > 1) {
|
||||
@ -335,71 +336,82 @@ void generate_event_impl(const std::string& event_name, std::vector<EventType> e
|
||||
f << R"(
|
||||
/*****************************************************
|
||||
*
|
||||
* :: add/clear/get
|
||||
* :: new/free/add/get/size/unpack
|
||||
*
|
||||
*****************************************************/
|
||||
|
||||
|
||||
)";
|
||||
|
||||
f << "const Tox_Event_" << event_name << " *tox_event_get_" << event_name_l << "(const Tox_Event *event)\n{\n";
|
||||
f << " return event->type == TOX_EVENT_" << str_toupper(event_name) << " ? event->data." << event_name_l << " : nullptr;\n}\n\n";
|
||||
|
||||
// new
|
||||
f << "Tox_Event_" << event_name << " *tox_event_" << event_name_l << "_new(const Memory *mem)\n{\n";
|
||||
f << " Tox_Event_" << event_name << " *const " << event_name_l << " =\n";
|
||||
f << " (Tox_Event_" << event_name << " *)mem_alloc(mem, sizeof(Tox_Event_" << event_name << "));\n\n";
|
||||
f << " if (" << event_name_l << " == nullptr) {\n return nullptr;\n }\n\n";
|
||||
f << " tox_event_" << event_name_l << "_construct(" << event_name_l << ");\n";
|
||||
f << " return " << event_name_l << ";\n}\n\n";
|
||||
|
||||
// free
|
||||
f << "void tox_event_" << event_name_l << "_free(Tox_Event_" << event_name << " *" << event_name_l << ", const Memory *mem)\n{\n";
|
||||
f << " if (" << event_name_l << " != nullptr) {\n";
|
||||
f << " tox_event_" << event_name_l << "_destruct(" << event_name_l << ", mem);\n }\n";
|
||||
f << " mem_delete(mem, " << event_name_l << ");\n}\n\n";
|
||||
|
||||
// add
|
||||
f << "non_null()\n";
|
||||
f << "static Tox_Event_" << event_name << " *tox_events_add_" << event_name_l << "(Tox_Events *events)\n{\n";
|
||||
f << " if (events->" << event_name_l << "_size == UINT32_MAX) {\n";
|
||||
f << "static Tox_Event_" << event_name << " *tox_events_add_" << event_name_l << "(Tox_Events *events, const Memory *mem)\n{\n";
|
||||
f << " Tox_Event_" << event_name << " *const " << event_name_l << " = tox_event_" << event_name_l << "_new(mem);\n\n";
|
||||
f << " if (" << event_name_l << " == nullptr) {\n";
|
||||
f << " return nullptr;\n }\n\n";
|
||||
f << " if (events->" << event_name_l << "_size == events->" << event_name_l << "_capacity) {\n";
|
||||
f << " const uint32_t new_" << event_name_l << "_capacity = events->" << event_name_l << "_capacity * 2 + 1;\n";
|
||||
|
||||
f << " Tox_Event_" << event_name << " *new_" << event_name_l << " = (Tox_Event_" << event_name << " *)\n";
|
||||
f << " realloc(\n";
|
||||
|
||||
f << " events->" << event_name_l << ",\n";
|
||||
f << " new_" << event_name_l << "_capacity * sizeof(Tox_Event_" << event_name << "));\n\n";
|
||||
f << " if (new_" << event_name_l << " == nullptr) {\n return nullptr;\n }\n\n";
|
||||
f << " events->" << event_name_l << " = new_" << event_name_l << ";\n";
|
||||
f << " events->" << event_name_l << "_capacity = new_" << event_name_l << "_capacity;\n";
|
||||
f << " }\n\n";
|
||||
f << " Tox_Event_" << event_name << " *const " << event_name_l << " =\n";
|
||||
f << " &events->" << event_name_l << "[events->" << event_name_l << "_size];\n";
|
||||
f << " tox_event_" << event_name_l << "_construct(" << event_name_l << ");\n";
|
||||
f << " ++events->" << event_name_l << "_size;\n";
|
||||
f << " Tox_Event event;\n";
|
||||
f << " event.type = TOX_EVENT_" << str_toupper(event_name) << ";\n";
|
||||
f << " event.data." << event_name_l << " = " << event_name_l << ";\n\n";
|
||||
f << " tox_events_add(events, &event);\n";
|
||||
f << " return " << event_name_l << ";\n}\n\n";
|
||||
|
||||
// clear
|
||||
f << "void tox_events_clear_" << event_name_l << "(Tox_Events *events)\n{\n";
|
||||
f << " if (events == nullptr) {\n return;\n }\n\n";
|
||||
f << " for (uint32_t i = 0; i < events->" << event_name_l << "_size; ++i) {\n";
|
||||
f << " tox_event_" << event_name_l << "_destruct(&events->" << event_name_l << "[i]);\n }\n\n";
|
||||
f << " free(events->" << event_name_l << ");\n";
|
||||
f << " events->" << event_name_l << " = nullptr;\n";
|
||||
f << " events->" << event_name_l << "_size = 0;\n";
|
||||
f << " events->" << event_name_l << "_capacity = 0;\n";
|
||||
f << "}\n\n";
|
||||
|
||||
// get size
|
||||
f << "uint32_t tox_events_get_" << event_name_l << "_size(const Tox_Events *events)\n{\n";
|
||||
f << " if (events == nullptr) {\n return 0;\n }\n\n";
|
||||
f << " return events->" << event_name_l << "_size;\n}\n\n";
|
||||
|
||||
// get
|
||||
f << "const Tox_Event_" << event_name << " *tox_events_get_" << event_name_l << "(const Tox_Events *events, uint32_t index)\n{\n";
|
||||
f << " assert(index < events->" << event_name_l << "_size);\n";
|
||||
f << " assert(events->" << event_name_l << " != nullptr);\n";
|
||||
f << " return &events->" << event_name_l << "[index];\n}\n\n";
|
||||
|
||||
// aux pack
|
||||
f << "bool tox_events_pack_" << event_name_l << "(const Tox_Events *events, Bin_Pack *bp)\n{\n";
|
||||
f << " const uint32_t size = tox_events_get_" << event_name_l << "_size(events);\n\n";
|
||||
f << " uint32_t " << event_name_l << "_index = 0;\n";
|
||||
f << " const uint32_t size = tox_events_get_size(events);\n\n";
|
||||
f << " for (uint32_t i = 0; i < size; ++i) {\n";
|
||||
f << " if (!tox_event_" << event_name_l << "_pack(tox_events_get_" << event_name_l << "(events, i), bp)) {\n";
|
||||
f << " return false;\n }\n }\n";
|
||||
f << " return true;\n}\n\n";
|
||||
f << " if (" << event_name_l << "_index > index) {\n";
|
||||
f << " return nullptr;\n }\n\n";
|
||||
f << " if (events->events[i].type == TOX_EVENT_" << str_toupper(event_name) << ") {\n";
|
||||
f << " const Tox_Event_" << event_name << " *" << event_name_l << " = events->events[i].data." << event_name_l << ";\n";
|
||||
f << " if (" << event_name_l << "_index == index) {\n";
|
||||
f << " return " << event_name_l << ";\n }\n";
|
||||
f << " ++" << event_name_l << "_index;\n }\n }\n\n return nullptr;\n}\n\n";
|
||||
|
||||
// get size
|
||||
f << "uint32_t tox_events_get_" << event_name_l << "_size(const Tox_Events *events)\n{\n";
|
||||
f << " uint32_t " << event_name_l << "_size = 0;\n";
|
||||
f << " const uint32_t size = tox_events_get_size(events);\n\n";
|
||||
f << " for (uint32_t i = 0; i < size; ++i) {\n";
|
||||
f << " if (events->events[i].type == TOX_EVENT_" << str_toupper(event_name) << ") {\n";
|
||||
f << " ++" << event_name_l << "_size;\n }\n }\n\n";
|
||||
f << " return " << event_name_l << "_size;\n}\n\n";
|
||||
|
||||
// unpack
|
||||
f << "bool tox_event_" << event_name_l << "_unpack(\n";
|
||||
f << " Tox_Event_" << event_name << " **event, Bin_Unpack *bu, const Memory *mem)\n{\n";
|
||||
f << " assert(event != nullptr);\n";
|
||||
f << " *event = tox_event_" << event_name_l << "_new(mem);\n\n";
|
||||
f << " if (*event == nullptr) {\n return false;\n }\n\n";
|
||||
f << " return tox_event_" << event_name_l << "_unpack_into(*event, bu);\n}\n\n";
|
||||
|
||||
// alloc
|
||||
f << "non_null()\n";
|
||||
f << "static Tox_Event_" << event_name << " *tox_event_" << event_name_l << "_alloc(void *user_data)\n{\n";
|
||||
f << " Tox_Events_State *state = tox_events_alloc(user_data);\n";
|
||||
f << " assert(state != nullptr);\n\n";
|
||||
f << " if (state->events == nullptr) {\n return nullptr;\n }\n\n";
|
||||
f << " Tox_Event_" << event_name << " *" << event_name_l << " = tox_events_add_" << event_name_l << "(state->events, state->mem);\n\n";
|
||||
f << " if (" << event_name_l << " == nullptr) {\n";
|
||||
f << " state->error = TOX_ERR_EVENTS_ITERATE_MALLOC;\n return nullptr;\n }\n\n";
|
||||
f << " return " << event_name_l << ";\n}\n\n";
|
||||
|
||||
// aux unpack
|
||||
f << "bool tox_events_unpack_" << event_name_l << "(Tox_Events *events, Bin_Unpack *bu)\n{\n";
|
||||
f << " Tox_Event_" << event_name << " *event = tox_events_add_" << event_name_l << "(events);\n\n";
|
||||
f << " if (event == nullptr) {\n return false;\n }\n\n";
|
||||
f << " return tox_event_" << event_name_l << "_unpack(event, bu);\n}\n\n";
|
||||
|
||||
f << R"(
|
||||
/*****************************************************
|
||||
@ -427,12 +439,8 @@ void generate_event_impl(const std::string& event_name, std::vector<EventType> e
|
||||
}
|
||||
|
||||
f << ",\n void *user_data)\n{\n";
|
||||
f << " Tox_Events_State *state = tox_events_alloc(user_data);\n";
|
||||
f << " assert(state != nullptr);\n\n";
|
||||
f << " if (state->events == nullptr) {\n return;\n }\n\n";
|
||||
f << " Tox_Event_" << event_name << " *" << event_name_l << " = tox_events_add_" << event_name_l << "(state->events);\n\n";
|
||||
f << " if (" << event_name_l << " == nullptr) {\n";
|
||||
f << " state->error = TOX_ERR_EVENTS_ITERATE_MALLOC;\n return;\n }\n\n";
|
||||
f << " Tox_Event_" << event_name << " *" << event_name_l << " = tox_event_" << event_name_l << "_alloc(user_data);\n\n";
|
||||
f << " if (" << event_name_l << " == nullptr) {\n return;\n }\n\n";
|
||||
|
||||
for (const auto& t : event_types) {
|
||||
std::visit(
|
||||
@ -465,7 +473,7 @@ int main(int argc, char** argv) {
|
||||
{
|
||||
EventTypeTrivial{"uint32_t", "friend_number"},
|
||||
EventTypeTrivial{"Tox_Conference_Type", "type"},
|
||||
EventTypeByteRange{"cookie", "cookie_length", "length"}, // the later two are idealy the same
|
||||
EventTypeByteRange{"cookie", "cookie_length", "length"}, // the latter two are ideally the same
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -474,7 +482,7 @@ int main(int argc, char** argv) {
|
||||
EventTypeTrivial{"uint32_t", "conference_number"},
|
||||
EventTypeTrivial{"uint32_t", "peer_number"},
|
||||
EventTypeTrivial{"Tox_Message_Type", "type"},
|
||||
EventTypeByteRange{"message", "message_length", "length"}, // the later two are idealy the same
|
||||
EventTypeByteRange{"message", "message_length", "length"}, // the latter two are ideally the same
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -488,7 +496,7 @@ int main(int argc, char** argv) {
|
||||
{
|
||||
EventTypeTrivial{"uint32_t", "conference_number"},
|
||||
EventTypeTrivial{"uint32_t", "peer_number"},
|
||||
EventTypeByteRange{"name", "name_length", "length"}, // the later two are idealy the same
|
||||
EventTypeByteRange{"name", "name_length", "length"}, // the latter two are ideally the same
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -496,7 +504,7 @@ int main(int argc, char** argv) {
|
||||
{
|
||||
EventTypeTrivial{"uint32_t", "conference_number"},
|
||||
EventTypeTrivial{"uint32_t", "peer_number"},
|
||||
EventTypeByteRange{"title", "title_length", "length"}, // the later two are idealy the same
|
||||
EventTypeByteRange{"title", "title_length", "length"}, // the latter two are ideally the same
|
||||
}
|
||||
},
|
||||
|
||||
@ -516,7 +524,7 @@ int main(int argc, char** argv) {
|
||||
EventTypeTrivial{"uint32_t", "file_number"},
|
||||
EventTypeTrivial{"uint32_t", "kind"},
|
||||
EventTypeTrivial{"uint64_t", "file_size"},
|
||||
EventTypeByteRange{"filename", "filename_length", "length"}, // the later two are idealy the same
|
||||
EventTypeByteRange{"filename", "filename_length", "filename_length"},
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -525,7 +533,7 @@ int main(int argc, char** argv) {
|
||||
EventTypeTrivial{"uint32_t", "friend_number"},
|
||||
EventTypeTrivial{"uint32_t", "file_number"},
|
||||
EventTypeTrivial{"uint64_t", "position"},
|
||||
EventTypeByteRange{"data", "data_length", "length"}, // the later two are idealy the same
|
||||
EventTypeByteRange{"data", "data_length", "length"}, // the latter two are ideally the same
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -548,14 +556,14 @@ int main(int argc, char** argv) {
|
||||
"Friend_Lossless_Packet",
|
||||
{
|
||||
EventTypeTrivial{"uint32_t", "friend_number"},
|
||||
EventTypeByteRange{"data", "data_length", "length"}, // the later two are idealy the same
|
||||
EventTypeByteRange{"data", "data_length", "length"}, // the latter two are ideally the same
|
||||
}
|
||||
},
|
||||
{
|
||||
"Friend_Lossy_Packet",
|
||||
{
|
||||
EventTypeTrivial{"uint32_t", "friend_number"},
|
||||
EventTypeByteRange{"data", "data_length", "length"}, // the later two are idealy the same
|
||||
EventTypeByteRange{"data", "data_length", "length"}, // the latter two are ideally the same
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -563,14 +571,14 @@ int main(int argc, char** argv) {
|
||||
{
|
||||
EventTypeTrivial{"uint32_t", "friend_number"},
|
||||
EventTypeTrivial{"Tox_Message_Type", "type"},
|
||||
EventTypeByteRange{"message", "message_length", "length"}, // the later two are idealy the same
|
||||
EventTypeByteRange{"message", "message_length", "length"}, // the latter two are ideally the same
|
||||
}
|
||||
},
|
||||
{
|
||||
"Friend_Name",
|
||||
{
|
||||
EventTypeTrivial{"uint32_t", "friend_number"},
|
||||
EventTypeByteRange{"name", "name_length", "length"}, // the later two are idealy the same
|
||||
EventTypeByteRange{"name", "name_length", "length"}, // the latter two are ideally the same
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -585,7 +593,7 @@ int main(int argc, char** argv) {
|
||||
"Friend_Request",
|
||||
{
|
||||
//EventTypeTrivial{"uint32_t", "friend_number"}, // public_key ByteArray
|
||||
EventTypeByteRange{"message", "message_length", "length"}, // the later two are idealy the same
|
||||
EventTypeByteRange{"message", "message_length", "length"}, // the latter two are ideally the same
|
||||
}
|
||||
},
|
||||
#endif
|
||||
@ -600,7 +608,7 @@ int main(int argc, char** argv) {
|
||||
"Friend_Status_Message",
|
||||
{
|
||||
EventTypeTrivial{"uint32_t", "friend_number"},
|
||||
EventTypeByteRange{"message", "message_length", "length"}, // the later two are idealy the same
|
||||
EventTypeByteRange{"message", "message_length", "length"}, // the latter two are ideally the same
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -623,7 +631,7 @@ int main(int argc, char** argv) {
|
||||
{
|
||||
EventTypeTrivial{"uint32_t", "group_number"},
|
||||
EventTypeTrivial{"uint32_t", "peer_id"},
|
||||
EventTypeByteRange{"name", "name_length", "length"}, // the later two are idealy the same
|
||||
EventTypeByteRange{"name", "name_length", "length"}, // the latter two are ideally the same
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -639,7 +647,7 @@ int main(int argc, char** argv) {
|
||||
{
|
||||
EventTypeTrivial{"uint32_t", "group_number"},
|
||||
EventTypeTrivial{"uint32_t", "peer_id"},
|
||||
EventTypeByteRange{"topic", "topic_length", "length"}, // the later two are idealy the same
|
||||
EventTypeByteRange{"topic", "topic_length", "length"}, // the latter two are ideally the same
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -674,7 +682,7 @@ int main(int argc, char** argv) {
|
||||
"Group_Password",
|
||||
{
|
||||
EventTypeTrivial{"uint32_t", "group_number"},
|
||||
EventTypeByteRange{"password", "password_length", "length"}, // the later two are idealy the same
|
||||
EventTypeByteRange{"password", "password_length", "length"}, // the latter two are ideally the same
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -683,7 +691,7 @@ int main(int argc, char** argv) {
|
||||
EventTypeTrivial{"uint32_t", "group_number"},
|
||||
EventTypeTrivial{"uint32_t", "peer_id"},
|
||||
EventTypeTrivial{"Tox_Message_Type", "type"},
|
||||
EventTypeByteRange{"message", "message_length", "length"}, // the later two are idealy the same
|
||||
EventTypeByteRange{"message", "message_length", "length"}, // the latter two are ideally the same
|
||||
EventTypeTrivial{"uint32_t", "message_id"},
|
||||
}
|
||||
},
|
||||
@ -693,7 +701,7 @@ int main(int argc, char** argv) {
|
||||
EventTypeTrivial{"uint32_t", "group_number"},
|
||||
EventTypeTrivial{"uint32_t", "peer_id"},
|
||||
EventTypeTrivial{"Tox_Message_Type", "type"},
|
||||
EventTypeByteRange{"message", "message_length", "length"}, // the later two are idealy the same
|
||||
EventTypeByteRange{"message", "message_length", "length"}, // the latter two are ideally the same
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -701,7 +709,7 @@ int main(int argc, char** argv) {
|
||||
{
|
||||
EventTypeTrivial{"uint32_t", "group_number"},
|
||||
EventTypeTrivial{"uint32_t", "peer_id"},
|
||||
EventTypeByteRange{"data", "data_length", "length"}, // the later two are idealy the same
|
||||
EventTypeByteRange{"data", "data_length", "length"}, // the latter two are ideally the same
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -709,14 +717,14 @@ int main(int argc, char** argv) {
|
||||
{
|
||||
EventTypeTrivial{"uint32_t", "group_number"},
|
||||
EventTypeTrivial{"uint32_t", "peer_id"},
|
||||
EventTypeByteRange{"data", "data_length", "length"}, // the later two are idealy the same
|
||||
EventTypeByteRange{"data", "data_length", "length"}, // the latter two are ideally the same
|
||||
}
|
||||
},
|
||||
{
|
||||
"Group_Invite",
|
||||
{
|
||||
EventTypeTrivial{"uint32_t", "friend_number"},
|
||||
EventTypeByteRange{"invite_data", "invite_data_length", "length"}, // the later two are idealy the same
|
||||
EventTypeByteRange{"invite_data", "invite_data_length", "length"}, // the latter two are ideally the same
|
||||
EventTypeByteRange{"group_name", "group_name_length", "group_name_length"}, // they are :)
|
||||
}
|
||||
},
|
||||
|
Reference in New Issue
Block a user