1
0
mirror of https://github.com/danog/libtgvoip.git synced 2024-11-26 20:24:38 +01:00
Go to file
2020-01-27 19:53:32 +01:00
audio Finish moving around 2020-01-25 18:36:49 +01:00
client/android Misc improvements and refactorings 2020-01-22 12:43:51 +01:00
controller Save 2020-01-27 19:53:32 +01: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 Smart pointers everywhere 2020-01-24 21:27:48 +01:00
tests Updated WebRTC APM 2018-11-23 04:02:53 +03:00
tools Refactoring 2020-01-27 16:02:59 +01:00
video Save 2020-01-27 19:53:32 +01:00
webrtc_dsp Fix 2020-01-22 12:55:03 +01:00
.gitignore Cleanup classes a bit, preparing for my strategy 2020-01-23 16:45:53 +01:00
aclocal.m4 Misc improvements and refactorings 2020-01-22 12:43:51 +01:00
Android.mk Refactoring 2020-01-22 12:51:17 +01: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 Misc improvements and refactorings 2020-01-22 12:43:51 +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 Finish moving around 2020-01-25 18:36:49 +01: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 Save 2020-01-27 19:53:32 +01:00
Makefile.in Save 2020-01-27 19:53:32 +01: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
TgVoip.cpp Save 2020-01-27 19:53:32 +01:00
TgVoip.h Misc improvements and refactorings 2020-01-22 12:43:51 +01:00
UNLICENSE Initial public release 2017-02-02 19:24:40 +03:00
VoIPController.cpp Refactoring 2020-01-27 16:02:59 +01:00
VoIPController.h Save 2020-01-27 19:53:32 +01:00
VoIPGroupController.cpp Save 2020-01-27 19:53:32 +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).