1
0
mirror of https://github.com/danog/libtgvoip.git synced 2024-11-29 20:29:01 +01:00
Go to file
2020-03-29 18:05:35 +02:00
audio Mark more methods as override, fixes for android 2020-03-29 16:55:33 +02:00
client/android Various android bugfixes 2020-03-29 18:05:35 +02:00
controller Various android bugfixes 2020-03-29 18:05:35 +02:00
libtgvoip_osx.xcodeproj Fix 2020-01-22 13:15:22 +01:00
libtgvoip.xcodeproj Fix 2020-01-22 13:15:22 +01:00
os Various android bugfixes 2020-03-29 18:05:35 +02:00
tests Updated WebRTC APM 2018-11-23 04:02:53 +03:00
tools Misc fixes 2020-03-29 17:20:17 +02:00
video Fix bugs, now working 2020-03-26 20:37:25 +01:00
webrtc_dsp Merge multiple fixes 2020-03-10 19:36:27 +01:00
.clang-format Finish refactoring packet structure 2020-03-21 15:08:03 +01:00
.gitignore Cleanup classes a bit, preparing for my strategy 2020-01-23 16:45:53 +01:00
aclocal.m4 Finally compiling 2020-03-25 15:49:13 +01:00
Android.mk Various android bugfixes 2020-03-29 18:05:35 +02:00
compile 2.2 2018-07-17 19:48:21 +03:00
config.guess 2.2 2018-07-17 19:48:21 +03:00
config.h.in 2.2 2018-07-17 19:48:21 +03:00
config.h.in~ Misc improvements and refactorings 2020-01-22 12:43:51 +01:00
config.sub 2.2 2018-07-17 19:48:21 +03:00
configure Finally compiling 2020-03-25 15:49:13 +01:00
configure.ac Updated projects 2019-03-12 16:15:22 +03:00
depcomp 2.2 2018-07-17 19:48:21 +03:00
Info.plist updated to 0.3.1 2017-03-30 17:06:59 +03:00
install-sh 2.2 2018-07-17 19:48:21 +03:00
libtgvoip.gyp Mark more methods as override, fixes for android 2020-03-29 16:55:33 +02:00
libtgvoip.UWP.vcxproj Fix 2020-01-22 13:15:22 +01:00
libtgvoip.UWP.vcxproj.filters Fix 2020-01-22 13:15:22 +01:00
libtgvoip.WP81.vcxproj Refactoring 2020-01-22 12:51:17 +01:00
libtgvoip.WP81.vcxproj.filters Refactoring 2020-01-22 12:51:17 +01:00
ltmain.sh Fix ARM Linux builds 2019-02-10 14:04:22 +03:00
Makefile.am Mark more methods as override, fixes for android 2020-03-29 16:55:33 +02:00
Makefile.in Mark more methods as override, fixes for android 2020-03-29 16:55:33 +02:00
missing 2.2 2018-07-17 19:48:21 +03:00
README.md Move around code 2020-01-25 20:45:43 +01:00
scheme.tlb Finish writing new parser 2020-03-18 19:54:56 +01:00
schemeNew.tlb Fix legaacy support 2020-03-28 17:05:24 +01:00
TgVoip.cpp Various android bugfixes 2020-03-29 18:05:35 +02:00
TgVoip.h Merge multiple fixes 2020-03-10 19:36:27 +01:00
UNLICENSE Initial public release 2017-02-02 19:24:40 +03:00
VoIPController.cpp Finally compiling 2020-03-25 15:49:13 +01:00
VoIPController.h Mark more methods as override, fixes for android 2020-03-29 16:55:33 +02:00
VoIPGroupController.cpp Finish refactoring packet structure 2020-03-21 15:08:03 +01:00
VoIPGroupController.h Full RAII 2020-01-24 20:26:34 +01:00
VoIPServerConfig.cpp Cleanup 2020-01-23 18:06:11 +01:00
VoIPServerConfig.h Cleanup 2020-01-23 18:06:11 +01:00

Daniil Gentili's submission to the VoIP contest 2

My submission consists of a major refactor (to C++) of the existing libtgvoip library.

The existing code was somewhat readable, even if extremely bulky, all in one single controller class, and had way too many C-isms, assertions, unmanaged pointers and then unoptimized C++ code progressively added into the library at later stages.

I've removed many C-isms within the main controller, switching entirely to smart pointers for the management of internal objects, reducing to 0 the number of deletes in the destructor; with multiple refactoring passes I've optimized many places of the network loop with modern C++ data structures and general logical optimizations. I've also applied several optimizations to the code of the controller and helper utilities especially in the MessageThread, buffers and main network threads, switching to the C++ STL for many otherwise highly unefficient and unsafe operations (like throwing assertions if the deletion order of objects using buffers from bufferpool isn't exactly right, easily fixed with smart pointers and a lambda).