Repositori ini berisi
Kerangka kerja untuk aplikasi C ++ yang kuat disebut sebagai Inti Layanan Kuat (RSC). RSC akan menempatkan proyek Anda di jalan yang benar dan memulai jika Anda mengembangkan atau merekayasa ulang sistem yang persyaratannya dapat dikarakteristikkan sebagai
Pola desain yang digunakan dalam RSC membuat pengembang lebih produktif. Mereka telah terbukti dalam produk telekomunikasi andalan, termasuk (dari pengalaman penulis sebagai arsitek perangkat lunak utamanya) server jaringan inti yang menangani semua panggilan di jaringan seluler AT&T. Bahasa pola yang merangkum pola muncul di bab kedua perangkat lunak komunikasi yang kuat . Tinjauan perangkat lunak Dokumen RSC menjelaskan mana yang saat ini tersedia di repositori ini dan menunjuk ke file kode utama yang mengimplementasikannya, dan tutorial ini memberikan informasi lebih lanjut tentang beberapa di antaranya.
Pengembangan RSC agak teralihkan oleh pengembangan alat analisis statis C ++. Alat -alat ini mendeteksi pelanggaran berbagai pedoman desain C ++, seperti yang ditemukan dalam C ++ efektif Scott Meyers. Mereka juga menganalisis arahan #include untuk menentukan mana yang akan ditambahkan atau dihapus. Editor mereka kemudian memungkinkan Anda untuk dengan mudah dan interaktif memperbaiki banyak peringatan yang dihasilkan alat tersebut. Bahkan jika Anda tidak mengembangkan aplikasi dengan RSC, Anda mungkin menemukan alat ini berguna. Tinjauan mereka disediakan di sini.
Termasuk aplikasi dengan kerangka kerja berfungsi untuk mengujinya dan menggambarkan penggunaannya. Oleh karena itu, repositori ini mencakup aplikasi POTS (layanan telepon biasa biasa). Pot dipilih karena beberapa alasan. Untuk satu hal, penulis memiliki pengalaman luas dengan aplikasi yang sama saat bekerja di industri telekomunikasi. Tetapi yang lebih penting, POTS adalah aplikasi non-sepele, namun setiap orang memiliki pemahaman yang masuk akal tentang apa yang dilakukannya. Karena itu Anda harus dapat mengetahui apa yang dilakukan kode POTS tanpa membaca spesifikasi besar. Gambaran umum aplikasi POTS disediakan di sini.
Pada tahun 2002, sebuah kelompok di Inggris mulai merancang protokol yang memungkinkan bot perangkat lunak untuk memainkan diplomasi permainan papan. Situs web mereka memiliki berbagai tautan dan unduhan yang berguna, di antaranya adalah yang dapat dieksekusi untuk server diplomasi. Bot masuk ke server ini, yang mengirimkan keadaan permainan, memungkinkan mereka untuk berkomunikasi satu sama lain menggunakan protokol, dan mengadili gerakan yang mereka kirimkan. Situs web mereka juga menyediakan perangkat lunak untuk mengembangkan bot. Saya memutuskan untuk refactor perangkat lunak ini, memisahkannya dari Windows, dan membawanya lebih sesuai dengan C ++ 11. Ini membantu RSC berevolusi untuk mendukung klien mandiri yang lebih baik yang menggunakan IP (TCP, dalam hal ini). Perangkat lunak yang dihasilkan tersedia di direktori DIP dan dijelaskan secara lebih rinci di sini.
Halaman ini memberikan gambaran umum RSC. Halaman lain mencantumkan dokumen yang jauh lebih mendalam pada banyak topik.
Unduh salah satu rilis. Kode yang dilakukan karena rilis terbaru sedang dalam proses dan mungkin tidak stabil atau tidak lengkap, jadi mengunduh dari menu dropdown Code▾ di halaman utama tidak disarankan.
Peringatan
Untuk operasi yang tepat, RSC harus diluncurkan dari direktori di bawah direktori SRC -nya. Lihat Panduan Instalasi.
RSC
Jika Anda tidak ingin membangun RSC, debug dan rilis yang dapat disediakan untuk setiap rilis.
Direktori yang berisi kode sumber RSC, dan dependensi di antara mereka, tercantum dalam komentar yang mendahului implementasi main . Masing -masing direktori ini dibangun sebagai perpustakaan statis yang terpisah, dengan main yang berada di direktori sendiri.
RSC dikembangkan menggunakan Visual Studio 2022 dan dibangun menggunakan CMake, seperti yang dijelaskan di sini. Opsi build windows untuk RSC dijelaskan di sini. File .VCXProj Visual Studio tidak lagi digunakan selama build, sehingga mereka dihapus dari repositori.
Selama inisialisasi, RSC menampilkan setiap modul saat diinisialisasi. ( Modul setara dengan pustaka statis.) Setelah semua modul diinisialisasi, CLI Prompt nb> tampaknya menunjukkan bahwa perintah CLI dalam direktori NB tersedia. Apa yang ditulis ke konsol selama startup ditampilkan di sini, dan daftar semua perintah CLI disediakan di sini.
Jika Anda masuk >read saveinit sebagai perintah CLI pertama, jejak fungsi inisialisasi, yang dimulai bahkan sebelum doa main , dihasilkan. Jejak ini akan terlihat seperti ini. Setiap fungsi yang muncul dalam jejak seperti itu memohon Debug::ft , yang mencatat yang berikut:
Semua output muncul di direktori ../<dir>/ excluded/Output, di mana <Ir> adalah direktori tepat di atas direktori SRC . Selain output spesifik yang Anda minta, seperti jejak inisialisasi, setiap sesi CLI menghasilkan
Numeric String YYMMDD-HHMMSS ditambahkan ke nama file-file ini untuk merekam waktu ketika sistem diinisialisasi (untuk file konsol dan file log awal) atau waktu restart terbaru (untuk file log berikutnya).
Cara termudah untuk menggunakan RSC sebagai kerangka kerja adalah dengan membuat pustaka statis di bawah direktori SRC RSC. Direktori aplikasi disediakan untuk tujuan ini. Cukup gunakan subset RSC apa pun yang dibutuhkan aplikasi Anda. Ini akan selalu mencakup NodeBase namespace (direktori NB ). Ini mungkin juga termasuk NetworkBase (Direktori NW ) dan SessionBase (Direktori SB ). Direkomendasikan menggunakan namespace baru untuk aplikasi Anda.
Jika Anda menempatkan kode Anda di tempat lain, RSC tidak akan dapat menemukan direktori penting saat Anda meluncurkannya, seperti yang dijelaskan dalam panduan instalasi. Anda kemudian perlu memodifikasi Element::RscPath sehingga dapat menemukan direktori yang berisi direktori input . Anda juga harus menambahkan direktori bantuan RSC ke direktori itu.
Untuk menginisialisasi aplikasi Anda, dapatkan dari Module . Sebagai contoh, lihat NbModule , yang menginisialisasi NodeBase . Ubah CreateModules sehingga juga membuat modul Anda, serta modul lain yang Anda butuhkan dalam build Anda.
Untuk berinteraksi dengan aplikasi Anda, berasal dari CliIncrement . Sebagai contoh, lihat NbIncrement , kenaikan untuk NodeBase . Instantiate kenaikan CLI Anda dalam fungsi Startup modul Anda. Saat Anda meluncurkan RSC, Anda kemudian dapat mengakses perintah dalam kenaikan Anda melalui CLI dengan memasukkan >incr , di mana incr adalah singkatan yang dilewati oleh konstruktor increment Anda ke konstruktor CliIncrement .
Sebagian besar file dalam direktori input adalah skrip uji. Dokumen yang menjelaskan aplikasi POTS juga membahas tesnya, yang menggunakan sebagian besar perangkat lunak RSC. Beberapa tes lain lebih taktis:
Satu set skrip menguji kemampuan jaring pengaman dari kelas Thread . Halaman khusus menjelaskan tes ini dan status saat ini dari masing -masing.
Memasuki >nt dalam CLI mengakses kenaikan "NT" (satu set perintah CLI). Ini menyediakan perintah untuk fungsi pengujian di BuddyHeap , SlabHeap , LeakyBucketCounter , Q1Way , Q2Way , dan antarmuka Registry .
RSC tersedia secara bebas berdasarkan ketentuan Lisensi Publik Umum GNU, versi 3, yang pada dasarnya mengatakan bahwa Anda juga harus mempublikasikan perangkat lunak Anda sendiri, serta perubahan Anda pada RSC. Jika Anda mengembangkan perangkat lunak komersial yang ingin Anda pertahankan, lisensi GPLV3 juga memungkinkan RSC dilisensikan berdasarkan ketentuan lisensi lain yang disetujui oleh Yayasan Perangkat Lunak Gratis. Beberapa lisensi memungkinkan perangkat lunak Anda tetap menjadi milik. Namun, kompensasi akan diperlukan, dan setiap perubahan yang Anda lakukan pada RSC itu sendiri (perbaikan bug dan peningkatan) masih harus dipublikasikan.
Cara berkontribusi pada RSC dijelaskan di sini.
GitHub sekarang memungkinkan Anda mensponsori proyek. Tombol "Sponsor" terletak di bagian atas halaman ini.