BitTorrent ಕ್ಲೈಂಟ್ ಟ್ರಾನ್ಸ್ಮಿಷನ್ C ನಿಂದ C++ ಗೆ ಬದಲಾಗುತ್ತದೆ

ಟ್ರಾನ್ಸ್ಮಿಷನ್ ಬಿಟ್ಟೊರೆಂಟ್ ಕ್ಲೈಂಟ್ನ ಆಧಾರವಾಗಿರುವ ಲಿಬ್ಟ್ರಾನ್ಸ್ಮಿಷನ್ ಲೈಬ್ರರಿಯನ್ನು C++ ಗೆ ಅನುವಾದಿಸಲಾಗಿದೆ. ಪ್ರಸರಣವು ಸಿ ಭಾಷೆಯಲ್ಲಿ ಬರೆಯಲಾದ ಬಳಕೆದಾರ ಸಂಪರ್ಕಸಾಧನಗಳ (GTK ಇಂಟರ್ಫೇಸ್, ಡೀಮನ್, CLI) ಅನುಷ್ಠಾನದೊಂದಿಗೆ ಇನ್ನೂ ಬೈಂಡಿಂಗ್‌ಗಳನ್ನು ಹೊಂದಿದೆ, ಆದರೆ ಅಸೆಂಬ್ಲಿಗೆ ಈಗ C++ ಕಂಪೈಲರ್ ಅಗತ್ಯವಿದೆ. ಹಿಂದೆ, ಕೇವಲ Qt-ಆಧಾರಿತ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು C++ ನಲ್ಲಿ ಬರೆಯಲಾಗಿತ್ತು (ಮ್ಯಾಕ್ಓಎಸ್ನ ಕ್ಲೈಂಟ್ ಆಬ್ಜೆಕ್ಟಿವ್-C ನಲ್ಲಿದೆ, ವೆಬ್ ಇಂಟರ್ಫೇಸ್ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ನಲ್ಲಿತ್ತು ಮತ್ತು ಉಳಿದಂತೆ C ನಲ್ಲಿದೆ).

ಕ್ಯೂಟಿ ಆಧಾರಿತ ಟ್ರಾನ್ಸ್‌ಮಿಷನ್ ಇಂಟರ್ಫೇಸ್‌ನ ಪ್ರಾಜೆಕ್ಟ್ ಲೀಡರ್ ಮತ್ತು ಲೇಖಕ ಚಾರ್ಲ್ಸ್ ಕೆರ್ ಅವರು ಪೋರ್ಟಿಂಗ್ ಅನ್ನು ನಡೆಸಿದರು. ಸಂಪೂರ್ಣ ಯೋಜನೆಯನ್ನು C++ ಗೆ ಬದಲಾಯಿಸಲು ಮುಖ್ಯ ಕಾರಣವೆಂದರೆ ಲಿಬ್‌ಟ್ರಾನ್ಸ್‌ಮಿಷನ್‌ನಲ್ಲಿ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡುವಾಗ ನೀವು ನಿರಂತರವಾಗಿ ಚಕ್ರವನ್ನು ಮರುಶೋಧಿಸಬೇಕು ಎಂಬ ಭಾವನೆ, ಪ್ರಮಾಣಿತ C++ ಲೈಬ್ರರಿಯಲ್ಲಿ ಇದೇ ರೀತಿಯ ಸಮಸ್ಯೆಗಳಿಗೆ ಸಿದ್ಧ ಪರಿಹಾರಗಳು ಇದ್ದರೂ (ಉದಾಹರಣೆಗೆ, ಇದು ಅಗತ್ಯವಾಗಿತ್ತು. ನಿಮ್ಮ ಸ್ವಂತ ಕಾರ್ಯಗಳನ್ನು ರಚಿಸಲು tr_quickfindFirstK() ಮತ್ತು tr_ptrArray() std ಉಪಸ್ಥಿತಿಯಲ್ಲಿ: :partial_sort() ಮತ್ತು std::vector()), ಹಾಗೆಯೇ ಹೆಚ್ಚು ಸುಧಾರಿತ ಪ್ರಕಾರದ ತಪಾಸಣೆ ಸೌಲಭ್ಯಗಳೊಂದಿಗೆ C++ ಅನ್ನು ಒದಗಿಸುವುದು.

ಅಭಿವರ್ಧಕರು C++ ನಲ್ಲಿ ಸಂಪೂರ್ಣ ಲಿಬ್ಟ್ರಾನ್ಸ್ಮಿಷನ್ ಅನ್ನು ತಕ್ಷಣವೇ ಪುನಃ ಬರೆಯುವ ಗುರಿಯನ್ನು ಹೊಂದಿಸುವುದಿಲ್ಲ ಎಂದು ಗಮನಿಸಲಾಗಿದೆ, ಆದರೆ C++ ಕಂಪೈಲರ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಯೋಜನೆಯನ್ನು ಕಂಪೈಲ್ ಮಾಡುವ ಪರಿವರ್ತನೆಯೊಂದಿಗೆ ಕ್ರಮೇಣ C++ ಗೆ ಪರಿವರ್ತನೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಉದ್ದೇಶಿಸಿದೆ. ಅದರ ಪ್ರಸ್ತುತ ರೂಪದಲ್ಲಿ, C ಕಂಪೈಲರ್ ಅನ್ನು ಇನ್ನು ಮುಂದೆ ಅಸೆಂಬ್ಲಿಗಾಗಿ ಬಳಸಲಾಗುವುದಿಲ್ಲ, ಏಕೆಂದರೆ ಕೆಲವು C++-ನಿರ್ದಿಷ್ಟ ರಚನೆಗಳನ್ನು ಕೋಡ್‌ಗೆ ಸೇರಿಸಲಾಗಿದೆ, ಉದಾಹರಣೆಗೆ "ಸ್ವಯಂ" ಕೀವರ್ಡ್ ಮತ್ತು "static_cast" ಆಪರೇಟರ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ರೀತಿಯ ಪರಿವರ್ತನೆಗಳು. ಹಳೆಯ C ಕಾರ್ಯಗಳಿಗೆ ಬೆಂಬಲವು ಹೊಂದಾಣಿಕೆಗಾಗಿ ಉಳಿಯಲು ಯೋಜಿಸಲಾಗಿದೆ, ಆದರೆ ಅಭಿವರ್ಧಕರು ಈಗ qsort() ಬದಲಿಗೆ std::sort() ಮತ್ತು tr_ptrArray ಬದಲಿಗೆ std:: vector ಅನ್ನು ಬಳಸಲು ಪ್ರೋತ್ಸಾಹಿಸಲಾಗಿದೆ. tr_strdup() ಬದಲಿಗೆ constexpr ಮತ್ತು tr_ptrArray ಬದಲಿಗೆ std::vector.

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ