이 저장소에는 포함됩니다
강력한 C ++ 응용 프로그램의 프레임 워크를 RSC ( Robust Services Core )라고합니다. RSC는 프로젝트를 올바른 경로에 올려 놓고 요구 사항을 다음
RSC에 사용 된 설계 패턴은 개발자가보다 생산적으로 만듭니다. 이들은 AT & T의 셀룰러 네트워크의 모든 호출을 처리하는 핵심 네트워크 서버 인 (COFER Software Architect)를 포함하여 플래그십 텔레콤 제품에서 입증되었습니다. 패턴을 요약 한 패턴 언어는 강력한 통신 소프트웨어 의 두 번째 장에 나타납니다. 문서 RSC 소프트웨어 개요는 이 리포지토리에서 현재 사용 가능한 것이 무엇인지 설명하고 이들 자습서는 일부에 대한 자세한 정보를 제공합니다.
RSC의 개발은 C ++ 정적 분석 도구의 개발에 의해 다소 부수적입니다. 이 도구는 Scott Meyers의 효과적인 C ++ 에있는 것과 같은 다양한 C ++ 설계 지침의 위반을 감지합니다. 또한 #include 지시문을 분석하여 추가 또는 삭제해야 할 지시 사항을 결정합니다. 그런 다음 편집자를 사용하면 도구가 생성하는 많은 경고를 쉽고 대화식으로 수정할 수 있습니다. RSC로 응용 프로그램을 개발하지 않더라도 이러한 도구가 유용 할 수 있습니다. 여기에 개요가 제공됩니다.
프레임 워크가있는 응용 프로그램을 포함하여 테스트하고 사용을 설명하는 역할을합니다. 따라서이 저장소에는 냄비 (일반 전화 서비스) 응용 프로그램이 포함됩니다. 냄비는 몇 가지 이유로 선택되었습니다. 우선, 저자는 통신 업계에서 일하면서 유사한 응용 프로그램에 대한 광범위한 경험을 가지고있었습니다. 그러나 더 중요한 것은 냄비가 사소한 응용이지만 모든 사람들은 그것이 무엇을하는지에 대한 합리적인 이해를 가지고 있다는 것입니다. 따라서 큰 사양을 읽지 않고 Pots 코드가 무엇을하고 있는지 알아낼 수 있어야합니다. POTS 응용 프로그램의 개요가 여기에 제공됩니다.
2002 년 영국의 한 그룹은 소프트웨어 봇이 보드 게임 외교를 재생할 수있는 프로토콜을 설계하기 시작했습니다. 그들의 웹 사이트에는 다양한 유용한 링크와 다운로드가 있으며 그중에는 외교 서버의 실행 파일입니다. 봇은이 서버에 로그인하여 게임 상태를 보내고 프로토콜을 사용하여 서로 통신 할 수 있으며 제출 한 움직임을 판결합니다. 그들의 웹 사이트는 또한 봇 개발을위한 소프트웨어를 제공합니다. 나는이 소프트웨어를 리팩토링하고 Windows에서 분리하고 C ++ 11에 더 많이 가져 오기로 결정했습니다. 이를 통해 RSC는 IP (TCP,이 경우 TCP)를 사용하는 독립형 클라이언트를 더 잘 지원하는 데 도움이되었습니다. 결과 소프트웨어는 DIP 디렉토리에서 제공되며 여기에 자세히 설명되어 있습니다.
이 페이지는 RSC의 개요를 제공합니다. 다른 페이지에는 많은 주제에 대해 훨씬 더 깊이있는 문서가 나와 있습니다.
릴리스 중 하나를 다운로드하십시오. 최신 릴리스 이후 커밋 된 코드는 진행 중이며 불안정하거나 불완전 할 수 있으므로 기본 페이지의 Code 태 드롭 다운 메뉴에서 다운로드하는 것이 권장되지 않습니다.
경고
적절한 작동을 위해서는 SRC 디렉토리 아래의 디렉토리에서 RSC를 시작해야합니다. 설치 안내서를 참조하십시오.
RSC
RSC를 구축하지 않으려면 디버그 및 릴리스 실행 파일이 각 릴리스와 함께 제공됩니다.
RSC의 소스 코드와 그 사이의 종속성을 포함하는 디렉토리는 main 구현에 앞서 주석에 나열되어 있습니다. 이러한 각 디렉토리는 별도의 정적 라이브러리로 구축되며 main 자체 디렉토리에 있습니다.
RSC는 Visual Studio 2022를 사용하여 개발되었으며 여기에 설명 된대로 CMAKE를 사용하여 구축되었습니다. RSC의 Windows 빌드 옵션은 여기에 설명되어 있습니다. Visual Studio의 .vcxproj 파일은 더 이상 빌드 중에 사용되지 않으므로 저장소에서 제거되었습니다.
초기화 중에 RSC는 초기화 된대로 각 모듈을 표시합니다. ( 모듈 은 정적 라이브러리와 동일합니다.) 모든 모듈이 초기화 된 후 CLI 프롬프트 nb> NB 디렉토리의 CLI 명령을 사용할 수 있음을 나타냅니다. 시작 중에 콘솔에 기록 된 내용은 여기에 표시되며 모든 CLI 명령 목록이 여기에 제공됩니다.
첫 번째 CLI 명령으로 >read saveinit 경우 main 호출 전에도 시작되는 초기화의 기능 추적이 생성됩니다. 이 흔적은 이와 같이 많이 보일 것입니다. 이러한 트레이스에 나타나는 각 기능은 Debug::ft 호출하여 다음을 기록합니다.
모든 출력은 디렉토리에 나타납니다 ./ <dir>/excluded/output은 <lir> 가 SRC 디렉토리 바로 위의 디렉토리입니다. 초기화 추적과 같이 요청한 특정 출력 외에도 모든 CLI 세션은 생성됩니다.
숫자 문자열 yymmdd-hhmmss 는 시스템이 초기화 된 시간 ( 콘솔 파일 및 초기 로그 파일의 경우) 또는 가장 최근의 재시작 시간 (후속 로그 파일의 경우)을 기록하기 위해 이러한 파일의 이름에 추가됩니다.
RSC를 프레임 워크로 사용하는 가장 쉬운 방법은 RSC의 SRC 디렉토리 아래에 정적 라이브러리를 만드는 것입니다. 이 목적을 위해 앱 디렉토리가 제공됩니다. 응용 프로그램에 필요한 RSC의 하위 집합을 사용하면 간단히 사용하십시오. 여기에는 항상 네임 스페이스 NodeBase ( NB 디렉토리)가 포함됩니다. NetworkBase ( NW 디렉토리) 및 SessionBase ( SB 디렉토리)도 포함될 수도 있습니다. 응용 프로그램에 새 네임 스페이스를 사용하는 것이 좋습니다.
코드를 다른 곳에두면 RSC는 설치 안내서에 설명 된대로 시작할 때 중요한 디렉토리를 찾을 수 없습니다. 그런 다음 입력 디렉토리가 포함 된 디렉토리를 찾을 수 있도록 함수 Element::RscPath 수정해야합니다. 또한 해당 디렉토리에 RSC의 도움 디렉토리를 추가해야합니다.
응용 프로그램을 초기화하려면 Module 에서 파생하십시오. 예를 들어, NodeBase 를 초기화하는 NbModule 참조하십시오. CreateModules 변경하여 모듈과 빌드에 필요한 다른 모듈을 인스턴스화하도록 변경하십시오.
응용 프로그램과 상호 작용하려면 CliIncrement 에서 파생하십시오. 예를 들어, NodeBase 의 증가 인 NbIncrement 참조하십시오. 모듈의 Startup 기능에서 CLI 증가를 인스턴스화하십시오. RSC를 시작할 때 CLI를 통해 >incr 으로 명령에 액세스하여 increment의 제작자가 CliIncrement 의 생성자로 전달 된 incr 입니다.
입력 디렉토리의 대부분의 파일은 테스트 스크립트입니다. POTS 애플리케이션을 설명하는 문서는 또한 RSC 소프트웨어의 상당 부분을 사용하는 테스트에 대해 설명합니다. 다른 테스트는 본질적으로 더 전술적입니다.
일련의 스크립트는 Thread 클래스의 안전망 기능을 테스트합니다. 전용 페이지는 이러한 테스트와 각 테스트의 현재 상태를 설명합니다.
CLI에 >nt 에 들어가면 "nt" 증분 (CLI 명령 세트)에 액세스합니다. BuddyHeap , SlabHeap , LeakyBucketCounter , Q1Way , Q2Way 및 Registry 인터페이스의 테스트 기능에 대한 명령을 제공합니다.
RSC는 GNU General Public License, 버전 3의 조건에 따라 자유롭게 사용할 수 있으며, 기본적으로 RSC 변경뿐만 아니라 자신의 소프트웨어를 게시해야한다고 말합니다. 독점적으로 보관하려는 상용 소프트웨어를 개발하는 경우 GPLV3 라이센스를 사용하면 Free Software Foundation에서 승인 한 다른 라이센스의 조건에 따라 RSC가 라이센스를 부여 할 수 있습니다. 이러한 라이센스 중 일부는 소프트웨어를 독점적으로 유지할 수 있습니다. 그러나 보상이 필요하며 RSC 자체에 대한 변경 사항 (버그 수정 및 개선)은 여전히 게시되어야합니다.
RSC에 기여하는 방법은 여기에 설명되어 있습니다.
Github을 사용하면 프로젝트를 후원 할 수 있습니다. "스폰서"버튼은이 페이지 상단에 있습니다.