Estado de integración continua
Rama | CCG 7.5.0 y 9.4.0 | Estudio visual 2019 | |
---|---|---|---|
Sonido metálico 9.0 | Estudio visual 2022 | ||
Xcódigo 15.2 | MinGW-w64 | ||
Xcódigo 15.4 | |||
maestro | |||
desarrollo |
Descargar
El proyecto C++ Micro Services es una colección de componentes para crear aplicaciones modulares y dinámicas orientadas a servicios. Está basado en OSGi, pero está diseñado para admitir soluciones nativas multiplataforma.
El uso adecuado de los patrones y conceptos de C++ Micro Services conduce a sistemas con una o más de las siguientes propiedades:
Ninguno, excepto un compilador de C++ bastante reciente. Todas las dependencias de bibliotecas de terceros están incluidas y se utilizan principalmente para detalles de implementación.
La biblioteca utiliza el lenguaje C++ 17 y las características de la biblioteca y se compila en muchas plataformas diferentes.
Versiones mínimas absolutas recomendadas del compilador requeridas:
No se prueban todas las versiones mínimas absolutas del compilador (como se indica). Probamos y recomendamos los siguientes compiladores:
Versión mínima recomendada de CMake requerida:
Para todas las compilaciones de CI a través de GitHub Actions, la versión de CMake (y la versión de otro software proporcionado) que utilizamos está determinada por el software proporcionado en los ejecutores alojados en GitHub.
Para obtener información sobre las versiones específicas de software que utilizan los corredores, consulte los siguientes recursos:
A continuación se muestra una lista de combinaciones de compilador/sistema operativo probadas:
El proyecto C++ Micro Services se desarrolló inicialmente en el Centro Alemán de Investigación del Cáncer. Su código fuente está alojado como un proyecto GitHub. Consulte el archivo COPYRIGHT en el directorio de nivel superior para obtener información detallada sobre derechos de autor.
Este proyecto tiene la licencia Apache v2.0.
CppMicroServices.org da la bienvenida a desarrolladores con diferentes orígenes y una amplia gama de experiencia. Una comunidad diversa e inclusiva creará más ideas geniales, brindará perspectivas más únicas y producirá código más sobresaliente. Nuestro objetivo es hacer que la comunidad de CppMicroServices sea acogedora para todos.
Para brindar claridad sobre lo que se espera de nuestros miembros, CppMicroServices ha adoptado el código de conducta definido por contributor-covenant.org. Este documento se utiliza en muchas comunidades de código abierto y creemos que articula bien nuestros valores.
Consulte el :any:`Código de conducta <código de conducta>` para obtener más detalles.
Comience clonando el repositorio del proyecto. Es importante tener en cuenta que, dado que el proyecto utiliza submódulos de git, debes clonar el repositorio con el indicador --recursive. Esto también clonará los submódulos y los colocará en sus respectivos directorios. Para obtener más información sobre cómo funcionan los submódulos de Git y cómo clonarlos en un repositorio ya existente en su disco, consulte la documentación de Git.
Básicamente, la biblioteca C++ Micro Services le proporciona un potente registro de servicios dinámico además de un ciclo de vida administrado. El marco gestiona, entre otras cosas, unidades lógicas de modularidad llamadas paquetes que están contenidas en bibliotecas compartidas o estáticas. Cada paquete dentro de una biblioteca tiene un objeto :any:`cppmicroservices::BundleContext` asociado, a través del cual se accede al registro de servicios.
Para consultar el registro para un objeto de servicio que implemente una o más interfaces específicas, el código se vería así:
# include " cppmicroservices/BundleContext.h "
# include " SomeInterface.h "
using namespace cppmicroservices ;
void UseService (BundleContext context)
{
auto serviceRef = context. GetServiceReference <SomeInterface>();
if (serviceRef)
{
auto service = context. GetService (serviceRef);
if (service) { /* do something */ }
}
}
El registro de un objeto de servicio en una determinada interfaz tiene este aspecto:
# include " cppmicroservices/BundleContext.h "
# include " SomeInterface.h "
using namespace cppmicroservices ;
void RegisterSomeService (BundleContext context, const std::shared_ptr<SomeInterface>& service)
{
context. RegisterService <SomeInterface>(service);
}
El modelo de servicio OSGi permite además anotar servicios con propiedades y utilizar estas propiedades durante las búsquedas de servicios. También permite realizar un seguimiento del ciclo de vida de los objetos de servicio. Consulte la documentación para obtener más ejemplos y tutoriales y la referencia de API. También hay una publicación de blog sobre OSGi Lite para C++.
El repositorio de Git contiene dos ramas eternas, master y development. La rama maestra contiene código de calidad de producción y su HEAD apunta a la última versión publicada. La rama de desarrollo es la rama predeterminada y contiene el estado actual de desarrollo. Las solicitudes de extracción se dirigen de forma predeterminada a la rama de desarrollo. Consulte el archivo :ref:`CONTRIBUTING <contributing>` para obtener detalles sobre el proceso de contribución.
El repositorio CppMicroServices define sus ganchos git en el directorio .githooks. Este directorio se configura como el directorio para los ganchos de git ejecutando git config core.hooksPath <ruta> en nuestro archivo CMakeLists.txt.
Si el enlace de confirmación previa del formato clang falla porque el formato clang no está instalado, instálelo y colóquelo en la ruta. De manera similar, si git-clang-format no está instalado, haga lo mismo. git-clang-format viene con la distribución LLVM de clang-format.
Si esto no es factible para usted, puede especificar --no-verify al realizar los cambios. Se desaconseja encarecidamente esto y debe proporcionar una justificación de por qué no puede formatear su confirmación.
Nos reservamos el derecho de rechazar cualquier solicitud de extracción que no esté formateada correctamente y no tenga una justificación válida especificada.