2020/05/04 - Sedikit kode yang merapikan dan refactoring dan penghapusan peringatan ditandai oleh kompiler tertentu. Selama beberapa bulan terakhir saya pindah ke dorongan yang lebih baru karena pembaruan untuk meningkatkan kode ASIO.
2019/08/29 - Menambahkan fungsi utilitas string tambahan.
2019/04/11 - Dukungan tambahan untuk buffer protokol Google dalam utilitas serialisasi. Oleh karena itu dukungan secara otomatis dicapai di semua kelas ASIO, seperti kelas TCP, UDP dan multicast.
Perpustakaan ini (corelibrary) adalah kumpulan kelas utilitas C ++ 1X yang berguna untuk membantu dengan multi-threading, logging, jaringan, pengecualian khusus, utilitas file, file INI, serialisasi, penyortiran, utilitas string, dan sebagainya. Dengan kata lain kumpulan kode umum yang sangat berguna dalam banyak proyek pengkodean C ++ yang berbeda.
Jika Anda menemukan salah satu dari kode ini berguna dan menggunakannya dalam perangkat lunak Anda atau mengambil bagiannya untuk mendasarkan pekerjaan Anda sendiri maka silakan berikan kredit dan hormati lisensi.
Ini dilisensikan berdasarkan ketentuan LGPL 3.0 dan dokumentasi yang relevan untuk ini dapat ditemukan di bagian atas setiap file sumber dan dalam file teks lisensi.
Kode adalah karya saya (Duncan Crutchley) ([email protected]).
Hak Cipta (C) 2014 dan seterusnya Duncan Crutchley.
Perpustakaan ini telah dikembangkan di QT Creator untuk Windows dan Linux. Di Windows disarankan untuk menggunakan rantai alat MSVC2017 dari dalam QT Creator untuk membangun dan menguji kode tetapi telah digunakan dengan MSVC2013 dan MSVC2015 berhasil. Kompiler lain telah diuji di jendela seperti dentang 3.4+ dan GCC (MINGW) 4.8.x+ dan kode harus bekerja dengan ini. Di Linux kode telah diuji dengan GCC 4.8.x+ dan Clang 3.4+. Saya selalu mencoba menggunakan versi stabil terbaru dari setiap kompiler yang saya bangun kode ini. Jadi, karena itu, saya tidak akan menjamin saya akan mempertahankan dukungan untuk kompiler yang lebih lama saat saya memindahkan kode saya dengan perbaikan dan fitur baru.
Di Windows (Win10 64bit) saat ini saya menggunakan MSVC 2017 64bit Kit di QT Creator 4.9.2/ QT Framework 5.13.0. Di Linux (Manjaro) saat ini saya menggunakan GCC 8.2.1 dan Clang 8.0.0 kit di QT Creator 4.9.2 dan QT Framework 5.13.0.
Proyek -proyek yang disediakan untuk tes perpustakaan dan unit adalah untuk pencipta QT dan akan bekerja di Linux dan Windows. Untuk mencapai ini, proyek bergantung pada MKSPEC khusus yang akan disalin dari folder QT_CUSTOM_MKSPECS ke folder fitur MKSPEC QT yang sesuai. Contoh MKSPEC disediakan untuk kompatibilitas dengan MSVC2017 64bit dan Linux. Ini harus disesuaikan untuk sistem pengguna sendiri.
Anda dapat menggunakan kode ini dalam lingkungan pengembangan dan pembangunan lain tetapi terserah pengguna untuk membuat proyek atau makeFile yang diperlukan untuk lingkungan tersebut. Ini harus cukup mudah dengan merujuk pada file QT Project (.pro) dan file MKSPEC yang disebutkan sebelumnya.
Perpustakaan ini membutuhkan beberapa pustaka sumber terbuka pihak ketiga untuk dikompilasi dan berfungsi. Ini adalah sebagai berikut:
Seperti halnya kompiler, saya selalu menyimpan salinan perpustakaan pihak ketiga di atas yang up-to-date dengan versi stabil terbaru mereka sehingga saya tidak akan menjamin dukungan penuh untuk versoin yang lebih lama dari perpustakaan ini saat saya terus mengerjakan proyek ini.
Ini sebagian besar merupakan proyek hobi berdasarkan pengetahuan yang saya peroleh dalam pengalaman bertahun -tahun saya bekerja dalam pengembangan perangkat lunak dan akademisi sejak 1999. Saya memulai pengembangan kode ini pada awal 2014. Ini merupakan kumpulan, semoga, mudah digunakan dan kelas yang berguna untuk kebutuhan pengembangan perangkat lunak yang umum terjadi.
Semua kode telah diuji unit dengan cakupan yang baik dan saya telah menggunakan kode ini di proyek saya sendiri tanpa masalah. Saya juga telah menggunakan banyak kode ini dan kode serupa yang ditulis oleh saya dalam proyek komersial, seringkali dengan persyaratan waktu nyata (lunak), dan belum memiliki masalah, jadi jangan ragu untuk menggunakan ini dalam proyek komersial selama Anda mematuhi lisensi.
Saya memperbaiki bug dan meningkatkan kode bila perlu tetapi tidak membuat jaminan seberapa sering ini terjadi. Saya tidak memberikan jaminan atau dukungan untuk masalah apa pun yang ditemui saat menggunakannya. Meskipun jika Anda benar -benar terjebak, email saya di alamat yang disediakan dan jika saya punya waktu, saya akan mencoba membantu atau memperbaiki masalah jika ada dalam kekuatan saya untuk melakukannya
Kode ini dikomentari menggunakan komentar gaya doxygen jadi periksa dokumentasi di/docs/html/folder dan buka index.html di browser pilihan Anda.
Untuk contoh penggunaan, saya sarankan melihat kode uji unit di folder /unittests /googletests.
Tes unit jaringan memerlukan konektivitas jaringan dan mengharapkan 2 pengaturan adapter, satu pada 10.34.6.1/255.255.0.0 dan satu lagi di 10.35.6.1/255.255.0.0. Ini dapat berupa adaptor loop-back "virtual" atau adaptor jaringan fisik tetapi untuk menguji grup multicast dan siaran UDP yang harus dikonfigurasi pengguna dan pengaturan keamanan mereka dengan tepat.
Lihat wiki untuk informasi dan contoh lebih rinci.