2020/05/04 - Um pouco de arrumação de código e refatoração e remoção de avisos sinalizados por certos compiladores. Nos últimos meses, mudei para um impulso mais recente devido a atualizações para aumentar o código da ASIO.
2019/08/29 - Adicionado funções de utilitário de string extra.
2019/04/11 - Adicionado suporte para buffers de protocolo do Google nos utilitários de serialização. Portanto, o suporte é alcançado automaticamente em todas as classes da ASIO, como TCP, UDP e classes multicast.
Esta biblioteca (Corelibrary) é uma coleção de classes de utilitário C ++ 1x úteis para ajudar com multi-threading, registro, rede, exceções personalizadas, utilitários de arquivos, arquivos ini, serialização, classificação, utilitários de string e assim por diante. Em outras palavras, uma coleção geral de código que é muito útil em muitos projetos de codificação C ++.
Se você achar útil algum desse código e use -o em seu software ou pegue partes dele para basear seu próprio trabalho, dê crédito e respeite a licença.
Ele está licenciado nos termos do LGPL 3.0 e a documentação relevante para isso pode ser encontrada na parte superior de cada arquivo de origem e no arquivo de texto da licença.
O código é o trabalho de mim (Duncan Crutchley) ([email protected]).
Copyright (c) 2014 em diante Duncan Crutchley.
Esta biblioteca foi desenvolvida no QT Creator para Windows e Linux. No Windows, é recomendável usar a cadeia de ferramentas MSVC2017 do Creator do QT para criar e testar o código, mas foi usado com o MSVC2013 e o MSVC2015 com sucesso. Outros compiladores foram testados em Windows como Clang 3.4+ e GCC (Mingw) 4.8.x+ e o código deve funcionar com eles. No Linux, o código foi testado com o GCC 4.8.x+ e o clang 3.4+. Eu sempre tento usar a versão estável mais recente de qualquer compilador com o qual construo esse código. Portanto, como tal, não vou garantir que manterei o suporte para compiladores mais antigos à medida que movo meu código com melhorias e novos recursos.
No Windows (Win10 64bit) Atualmente, estou usando o kit MSVC 2017 de 64 bits no QT Creator 4.9.2/ QT Framework 5.13.0. No Linux (Manjaro), atualmente estou usando os kits GCC 8.2.1 e Clang 8.0.0 no QT Creator 4.9.2 e QT Framework 5.13.0.
Os projetos fornecidos para os testes de biblioteca e unidade são para o QT Creator e funcionarão no Linux e no Windows. Para conseguir isso, os projetos dependem do MKSPECS personalizado para serem copiados da pasta QT_CUSTOM_MKSPECS na pasta de recursos MKSPEC apropriada do QT. Exemplo MKSPECs são fornecidos para compatibilidade com MSVC2017 64bit e Linux. Estes devem ser personalizados para o próprio sistema do usuário.
Você pode usar esse código em outros ambientes de desenvolvimento e construção, mas cabe ao usuário criar os projetos ou filtros necessários para esses ambientes. Isso deve ser bastante fácil, referindo -se ao arquivo do Projeto QT (.PRO) e aos arquivos MKSPEC mencionados anteriormente.
Esta biblioteca requer algumas bibliotecas de código aberto de terceiros para compilar e funcionar. Estes são os seguintes:
Como nos compiladores, sempre mantenho minhas cópias das bibliotecas de terceiros acima atualizadas com suas mais recentes versões estáveis, para que não garantisse o suporte total para versoins mais antigos dessas bibliotecas enquanto continuo trabalhando neste projeto.
Este é em grande parte um projeto de hobby com base no conhecimento que adquiri em meus muitos anos de experiência em trabalhar em desenvolvimento de software e academia desde 1999. Comecei o desenvolvimento desse código no início de 2014. Isso representa uma coleção de, esperançosamente, direta para usar e classes úteis para que ocorra geralmente as necessidades de desenvolvimento de software.
Todo o código foi testado com uma boa cobertura e usei esse código em meus próprios projetos sem problemas. Eu também usei muito desse código e código semelhante escrito por mim em projetos comerciais, geralmente com requisitos em tempo real (suave), e não tive problemas, portanto, fique à vontade para usá-lo em projetos comerciais, desde que você siga a licença.
Corrigi bugs e melhoro o código quando necessário, mas não tenho garantias sobre a frequência com que isso acontece. Não forneço garantia ou suporte para quaisquer problemas encontrados durante o uso. Embora se você estiver realmente preso, envie -me um e -mail no endereço fornecido e se eu tiver tempo, tentarei ajudar ou corrigir o problema se estiver ao meu alcance para fazê -lo
O código é comentado usando comentários do estilo doxygen, então verifique a documentação na pasta/docs/html/e aberto index.html no seu navegador de escolha.
Para exemplos de uso, recomendo analisar o código de teste da unidade na pasta /unittests /googleTests.
Os testes de unidade de rede requerem conectividade de rede e espera 2 adaptadores, um em 10.34.6.1/255.255.0.0 e outro em 10.35.6.1/255.255.0.0. Estes podem ser adaptadores de loop "virtual" ou adaptadores de rede física, mas para testar o grupo multicast e o UDP transmite o usuário deve configurar seus firewalls e configurações de segurança adequadamente.
Consulte o wiki para obter informações e exemplos mais detalhados.