2020/05/04 - Un peu de code de code et de refactorisation et de suppression des avertissements signalés par certains compilateurs. Au cours des derniers mois, j'ai passé à un nouveau boost en raison des mises à jour pour augmenter le code ASIO.
2019/08/29 - Ajout de fonctions d'utilité de chaîne supplémentaires.
2019/04/11 - Ajout de la prise en charge des tampons de protocole Google dans les utilitaires de sérialisation. Par conséquent, le support est automatiquement réalisé dans toutes les classes ASIO, telles que les classes TCP, UDP et multidiffusion.
Cette bibliothèque (CoreLibrary) est une collection de classes d'utilité C ++ 1x utiles pour aider à multi-threading, à journalisation, à réseautage, aux exceptions personnalisées, aux utilitaires de fichiers, aux fichiers INI, à la sérialisation, au tri, aux utilitaires de chaîne, etc. En d'autres termes, une collection générale de code qui est très utile dans de nombreux projets de codage C ++ différents.
Si vous trouvez l'un de ce code utile et que vous l'utilisez dans votre logiciel ou en prenez des pièces pour baser votre propre travail, veuillez donner du crédit et respecter la licence.
Il est sous licence en vertu des termes de LGPL 3.0 et la documentation pertinente pour cela peut être trouvée en haut de chaque fichier source et dans le fichier texte de licence.
Le code est l'œuvre de moi (Duncan Crutchley) ([email protected]).
Copyright (C) 2014 Duncan Crutchley.
Cette bibliothèque a été développée dans QT Creator pour Windows et Linux. Dans Windows, il est recommandé d'utiliser la chaîne d'outils MSVC2017 à partir de QT Creator pour construire et tester le code, mais il a été utilisé avec MSVC2013 et MSVC2015 avec succès. D'autres compilateurs ont été testés sous Windows tels que Clang 3.4+ et GCC (Mingw) 4.8.x + et le code devrait fonctionner avec ceux-ci. Dans Linux, le code a été testé avec GCC 4.8.x + et Clang 3.4+. J'essaie toujours d'utiliser la dernière version stable de tout compilateur avec lequel je construis ce code. Ainsi, en tant que tel, je ne garantis pas que je maintiendrai le support pour les compilateurs plus anciens alors que je déplace mon code avec des améliorations et de nouvelles fonctionnalités.
Sur Windows (Win10 64bit), j'utilise actuellement le kit MSVC 2017 64bit dans QT Creator 4.9.2 / Qt Framework 5.13.0. Sur Linux (Manjaro), j'utilise actuellement des kits GCC 8.2.1 et Clang 8.0.0 dans QT Creator 4.9.2 et Qt Framework 5.13.0.
Les projets fournis pour la bibliothèque et les tests unitaires sont destinés à QT Creator et fonctionneront en Linux et Windows. Pour y parvenir, les projets s'appuient sur les MksPEC personnalisés pour être copiés à partir du dossier QT_Custom_MkSpecs dans le dossier de fonctionnalité MKSpec approprié de QT. Exemple de MKSPECS sont fournis pour la compatibilité avec MSVC2017 64bit et Linux. Ceux-ci doivent être personnalisés pour le propre système de l'utilisateur.
Vous pouvez utiliser ce code dans d'autres environnements de développement et de création, mais il appartient à l'utilisateur de créer les projets ou les makefiles requis pour ces environnements. Cela devrait être assez facile en faisant référence au fichier du projet QT (.pro) et aux fichiers MKSpec mentionnés précédemment.
Cette bibliothèque nécessite certaines bibliothèques open source tierces pour qu'il le compile et fonctionne. Ce sont les suivants:
Comme pour les compilateurs, je garde toujours mes copies des bibliothèques tierces ci-dessus à jour avec leurs dernières versions stables, donc je ne garantis pas le support complet pour les versives plus âgées de ces bibliothèques alors que je continue de travailler sur ce projet.
Il s'agit en grande partie d'un projet de passe-temps basé sur les connaissances que j'ai acquises au cours de mes nombreuses années d'expérience dans le développement de logiciels et le monde universitaire depuis 1999. J'ai commencé le développement de ce code au début de 2014. Cela représente une collection, espérons-le, directement à utiliser et des classes utiles pour les besoins de développement logiciel courants.
Tout le code a été testé unitaire avec une bonne couverture et j'ai utilisé ce code dans mes propres projets sans problème. J'ai également utilisé une grande partie de ce code et un code similaire écrit par moi dans des projets commerciaux, souvent avec des exigences (doux) en temps réel, et je n'ai eu aucun problème, alors n'hésitez pas à l'utiliser dans des projets commerciaux tant que vous adhérez à la licence.
Je corrige les bogues et améliore le code lorsque cela est nécessaire, mais je ne garantis pas à quelle fréquence cela se produit. Je ne fournit aucune garantie ou support pour tout problème rencontré lors de l'utilisation. Bien que si vous êtes vraiment coincé, envoyez-moi un courriel à l'adresse fournie et si j'ai le temps, j'essaierai d'aider ou de résoudre le problème si c'est en mon pouvoir de le faire
Le code est commenté à l'aide des commentaires de style Doxygen, alors vérifiez la documentation dans le dossier / DOCS / HTML / et ouvrez index.html dans votre navigateur de choix.
Pour des exemples d'utilisation, je recommande de consulter le code de test unitaire dans le dossier / unittests / googlests.
Les tests d'unité de réseautage nécessitent une connectivité réseau et s'attendent à une configuration des adaptateurs, une sur 10.34.6.1/255.255.0.0 et une autre sur 10.35.6.1/255.255.0.0. Ceux-ci peuvent être des adaptateurs de boucle de boucle "virtuels" ou des adaptateurs de réseau physique, mais pour tester le groupe de multidiffusion et les diffusions UDP, l'utilisateur doit configurer leur pare-feu et leurs paramètres de sécurité de manière appropriée.
Voir le wiki pour des informations et des exemples plus détaillés.