此存储库包含
可靠的C ++应用程序的框架称为鲁棒服务核心(RSC)。 RSC将使您的项目走上正确的道路,如果您要开发或重新设计一个系统,该系统的要求将其表征为
RSC中使用的设计模式使开发人员更有生产力。它们已在旗舰电信产品中得到证明,包括(根据作者作为其主要软件架构师的经验)核心网络服务器,该服务器处理AT&T的蜂窝网络中的所有调用。汇总模式的模式语言出现在Robust Communications软件的第二章中。文档RSC软件概述描述了其中哪些在此存储库中可用,并指向实现它们的主要代码文件,该教程提供了有关其中一些的更多信息。
C ++静态分析工具的开发使RSC的开发有些局限。这些工具检测到违反各种C ++设计指南的行为,例如在Scott Meyers有效的C ++中发现的指南。他们还分析了#include指令,以确定要添加或删除哪些指令。然后,他们的编辑器允许您轻松,互动地修复工具生成的许多警告。即使您不使用RSC开发应用程序,也可能会发现这些工具有用。这里提供了它们的概述。
包括具有框架的应用程序可用于测试并说明其使用。因此,该存储库包括一个POTS(普通的普通电话服务)应用程序。选择锅是出于多种原因。一方面,在电信行业工作时,作者在类似应用方面拥有丰富的经验。但更重要的是,Pots是一种非平凡的应用,但是每个人都对自己的作用有合理的理解。因此,您应该能够在不阅读大规范的情况下弄清楚Pots代码在做什么。这里提供了POTS应用程序的概述。
2002年,英国的一个小组开始设计一种允许软件机器人进行棋盘游戏外交的协议。他们的网站具有各种有用的链接和下载,其中包括外交服务器的可执行文件。机器人登录该服务器,该服务器将它们发送给游戏的状态,使他们可以使用协议相互通信,并裁定他们提交的动作。他们的网站还提供用于开发机器人的软件。我决定重构此软件,将其从Windows中解散,然后将其与C ++ 11保持一致。这有助于RSC发展以更好地支持使用IP(在这种情况下)使用IP(TCP)的独立客户。所得软件可在DIP目录中获得,并在此处进行一些详细描述。
此页面提供了RSC的概述。另一个页面列出了在许多主题上更深入的文档。
下载其中一个版本。由于最新版本正在进行中,并且可能是不稳定或不完整的代码,因此不建议从主页上的代码下拉菜单下载。
警告
为了进行适当的操作,必须从其SRC目录下方的目录启动RSC。请参阅“安装指南”。
RSC
如果您不想构建RSC,则每个版本都提供调试和发布可执行文件。
包含RSC源代码的目录以及它们之间的依赖项在main实现之前的注释中列出。这些目录中的每一个都是一个单独的静态库, main位于自己的目录中。
RSC是使用Visual Studio 2022开发的,并使用CMAKE构建,如下所述。此处描述了RSC的Windows构建选项。 Visual Studio的.VCXPROJ文件不再在构建过程中使用,因此将其从存储库中删除。
在初始化过程中,RSC在初始化时会显示每个模块。 (一个模块等效于静态库。)在所有模块初始化后,CLI提示nb>似乎表明NB目录中的CLI命令可用。此处显示在启动期间写给控制台的内容,此处提供了所有CLI命令的列表。
如果输入>read saveinit作为第一个CLI命令,则初始化的函数跟踪,该函数跟踪甚至在main调用之前就开始。这个痕迹看起来很像。在此类跟踪中出现的每个函数调用Debug::ft ,记录以下记录:
所有输出都显示在目录中。./<dir> /excluded/output,其中<dir>是SRC目录上方的目录。除了您要求的任何特定输出(例如初始化跟踪)外,每个CLI会话还会产生
数字字符串YYMMDD-HHMMSS附加到这些文件的名称上,以记录系统初始化(用于控制台文件和初始日志文件)或最新重新启动时间(对于后续日志文件)的时间。
使用RSC作为框架的最简单方法是在RSC的SRC目录下方创建一个静态库。为此目的提供了应用程序目录。只需使用应用程序所需的任何RSC的子集即可。这将始终包括名称空间NodeBase ( NB目录)。它还可能包括NetworkBase ( NW目录)和SessionBase ( SB目录)。建议为您的应用程序使用新的名称空间。
如果您将代码放在其他地方,RSC在启动它时将无法找到重要的目录,如“安装指南”中所述。然后,您需要修改函数Element::RscPath ,以便它可以找到包含输入目录的目录。您还应该将RSC的帮助目录添加到该目录。
要初始化您的应用程序,请从Module派生。有关示例,请参见NbModule ,该NBModule初始化了NodeBase 。更改CreateModules ,以便它也可以实例化您的模块,以及您在构建中需要的其他模块。
要与您的应用程序进行交互,请从CliIncrement中得出。有关示例,请参见NbIncrement ,这是NodeBase的增量。在模块的Startup功能中实例化CLI增量。当您启动RSC时,您可以通过输入>incr来通过CLI访问命令,其中incr是增量的构造函数传递给CliIncrement构造器的缩写。
输入目录中的大多数文件是测试脚本。描述POTS应用程序的文档还讨论了其测试,该测试练习了RSC软件的相当一部分。其他一些测试本质上更具战术性:
一组脚本测试Thread类的安全网能力。专用页面描述了这些测试和每个测试的当前状态。
在CLI中输入>nt访问“ NT”增量(一组CLI命令)。它提供了用于在BuddyHeap , SlabHeap , LeakyBucketCounter , Q1Way , Q2Way和Registry Interfaces中测试功能的命令。
RSC是根据GNU通用公共许可证(版本3)免费获得的,该版本基本上说您还必须发布自己的软件以及对RSC的更改。如果您要开发要保留专有的商业软件,则GPLV3许可证还允许RSC根据免费软件基金会批准的另一个许可证的条款许可。其中一些许可证允许您的软件保持专有。但是,将需要赔偿,并且您对RSC本身的任何更改(错误修复和增强功能)仍然必须发布。
这里描述了如何为RSC做出贡献。
Github现在让您赞助项目。 “赞助商”按钮位于此页面的顶部。