2020/05/04: un poco de código de código y refactorización y eliminación de advertencias marcadas por ciertos compiladores. En los últimos meses, me mudé a un nuevo impulso debido a las actualizaciones para aumentar el código ASIO.
2019/08/29 - Se agregaron funciones de utilidad de cadena adicional.
2019/04/11: soporte agregado para Google Protocol Buffers en utilidades de serialización. Por lo tanto, admite automáticamente logrado en todas las clases de ASIO, como TCP, UDP y clases de multidifusión.
Esta biblioteca (CoreLibrary) es una colección de clases útiles de utilidad C ++ 1x para ayudar con múltiples subprocesos, registro, redes, excepciones personalizadas, utilidades de archivos, archivos INI, serialización, clasificación, utilidades de cadena, etc. En otras palabras, una colección general de código que es muy útil en muchos proyectos de codificación de C ++ diferentes.
Si encuentra útil alguno de este código y lo usa en su software o toma partes de él para basar su propio trabajo, entonces dé crédito y respeta la licencia.
Tiene licencia bajo los términos de LGPL 3.0 y la documentación relevante para esto se puede encontrar en la parte superior de cada archivo de origen y en el archivo de texto de la licencia.
El código es el trabajo de mí (Duncan Crutchley) ([email protected]).
Copyright (c) 2014 en adelante Duncan Crutchley.
Esta biblioteca se ha desarrollado en QT Creator para Windows y Linux. En Windows se recomienda utilizar la cadena de herramientas MSVC2017 desde el creador QT para construir y probar el código, pero se ha utilizado con MSVC2013 y MSVC2015 con éxito. Se han probado otros compiladores en Windows como Clang 3.4+ y GCC (MINGW) 4.8.x+ y el código debería funcionar con estos. En Linux, el código se ha probado con GCC 4.8.x+ y Clang 3.4+. Siempre trato de usar la versión estable más nueva de cualquier compilador con el que cree este código. Entonces, como tal, no garantizaré que mantenga soporte para compiladores más antiguos a medida que avance mi código con mejoras y nuevas funciones.
En Windows (Win10 64bit) estoy usando actualmente el kit MSVC 2017 64bit en QT Creator 4.9.2/ Qt Framework 5.13.0. En Linux (Manjaro) estoy usando los kits GCC 8.2.1 y Clang 8.0.0 en QT Creator 4.9.2 y Qt Framework 5.13.0.
Los proyectos suministrados para la biblioteca y las pruebas unitarias son para QT Creator y funcionarán en Linux y Windows. Para lograr esto, los proyectos dependen de los MKSPEC personalizados que se copiarán de la carpeta QT_CUSTOM_MKSPECS en la carpeta de características MKSPEC apropiada de QT. El ejemplo de MKSPEC se proporcionan para la compatibilidad con MSVC2017 64bit y Linux. Estos deben personalizarse para el sistema propio del usuario.
Puede usar este código dentro de otros entornos de desarrollo y construcción, pero depende del usuario crear los proyectos o makefiles requeridos para esos entornos. Esto debería ser bastante fácil refiriéndose al archivo QT Project (.pro) y los archivos MKSPEC mencionados anteriormente.
Esta biblioteca requiere algunas bibliotecas de código abierto de terceros para que compile y funcione. Estos son los siguientes:
Al igual que con los compiladores, siempre mantengo mis copias de las bibliotecas de terceros anteriores actualizadas con sus últimas versiones estables, por lo que no garantizaré el soporte total para las versiones más antiguas de estas bibliotecas a medida que continúo trabajando en este proyecto.
Este es en gran medida un proyecto de pasatiempo basado en el conocimiento que he adquirido en mis muchos años de experiencia trabajando en el desarrollo de software y la academia desde 1999. Comencé el desarrollo de este código a principios de 2014. Esto representa una colección de, con suerte, sencillas de usar y clases útiles para las necesidades de desarrollo de software que se producen comúnmente.
Todo el código ha sido probado con buena cobertura y he usado este código en mis propios proyectos sin problemas. También he usado gran parte de este código y código similar escrito por mí en proyectos comerciales, a menudo con requisitos (suaves) en tiempo real, y no he tenido ningún problema, así que no dude en usar esto en proyectos comerciales siempre que se adhiera a la licencia.
Solución de errores y mejora el código cuando sea necesario, pero no garantizo con qué frecuencia esto sucede. No proporciono garantía ni soporte para ningún problema que se encuentre mientras lo uso. Aunque si realmente está atrapado, envíeme un correo electrónico a la dirección proporcionada y si tengo tiempo intentaré ayudar o solucionar el problema si está dentro de mi poder hacerlo
El código se comenta utilizando comentarios de estilo Doxygen, así que verifique la documentación en la carpeta/DOCS/HTML/y abra index.html en su navegador de elección.
Para ejemplos de uso, recomiendo mirar el código de prueba unitario en la carpeta /unittests /googletests.
Las pruebas unitarias de red requieren conectividad de red y espera una configuración de 2 adaptadores, uno en 10.34.6.1/255.255.0.0 y otro en 10.35.6.1/255.255.0.0. Estos pueden ser adaptadores de bucle "virtuales" o adaptadores de red físicos, pero para probar el grupo de multidifusión y las transmisiones de UDP, el usuario debe configurar sus firewalls y configuraciones de seguridad adecuadamente.
Consulte el wiki para obtener información y ejemplos más detallados.