rxcpp 예제

코드 및 Doxygen 문서를 통해 기꺼이 하는 경우 RxCpp GitHub 사이트에 많은 예제가 있습니다. 예를 들어 마우스 다운을 감지하는 응용 프로그램을 사용해 보겠습니다. 현재 이벤트 프로그래밍 모델에서 응용 프로그램은 메시지를 표시하여 발생한 이벤트에 반응할 수 있습니다. Rx에서 이러한 마우스 다운 이벤트는 클릭에 대한 정보 스트림으로 처리됩니다. 마우스를 클릭할 때마다 이 클릭에 대한 정보(예: 커서 위치)가 스트림에 표시되어 처리될 준비가 됩니다. 이 패러다임에서 이벤트(또는 이벤트 스트림)는 목록 또는 기타 컬렉션과 매우 유사합니다. 즉, 컬렉션을 사용하여 이벤트를 처리하는 기술을 사용할 수 있습니다. 예를 들어 특정 영역 외부에 나타나는 클릭을 필터링하고 사용자가 영역 내에서 클릭할 때만 메시지를 표시할 수 있습니다. 또는 특정 기간을 기다렸다가 이 기간 동안 ”유효한” 클릭 수를 사용자에게 알릴 수 있습니다. 마찬가지로 스톡 틱 스트림을 캡처하고 특정 시간 기간 동안 특정 범위에 대해 변경된 틱에만 응답할 수 있습니다. 이 모든 작업은 Rx에서 제공하는 LINQ 쿼리 스타일 연산자를 사용하여 쉽게 수행할 수 있습니다. OnNext는 관찰 가능한 데이터 원본에 데이터를 사용할 수 있는 경우 0번 이상 호출할 수 있습니다.

예를 들어 마우스 이동 이벤트에 사용되는 관찰 가능한 데이터 원본은 마우스가 이동할 때마다 Point 개체를 보낼 수 있습니다. 다른 두 가지 방법은 완료 또는 오류를 나타내는 데 사용됩니다. 사용할 스케줄러 의 형식을 명시적으로 명시하지 않고 Rx 코드에서 스케줄러를 이미 사용했을 수 있습니다. 동시성을 처리하는 모든 관찰 가능한 연산자는 여러 오버로드를 갖기 때문입니다. 스케줄러를 인수로 사용하는 오버로드를 사용하지 않는 경우 Rx는 최소 동시성 원칙을 사용하여 기본 스케줄러를 선택합니다. 즉, 연산자의 요구를 충족하는 최소한의 동시성을 도입하는 스케줄러가 선택됩니다. 예를 들어 유한하고 적은 수의 메시지로 관찰 가능한 것을 반환하는 운영자의 경우 Rx는 ImmediateScheduler를 호출합니다. 잠재적으로 크거나 무한한 수의 메시지를 반환하는 연산자의 경우 CurrentThread가 호출됩니다.

rxcpp를 사용하여 비기본 데이터 형식을 처리할 때 동적 할당 및 스마트 포인터를 사용합니다. OnError 이벤트는 exception_ptr 형식을 반환합니다. 위의 예제에서는 오류를 처리기 함수에 전달하는 방법을 보여 주며 있습니다. Foo에서 인스턴스화할 수 있는 Bar 클래스를 추가하고 정수 값을 계속 수행해 보겠습니다. 예제 코드는 다음과 같이 보일 수 있습니다: 아마도 rxcpp이 이 위치에서 개선될 수 있으므로 특정 요소가 방사될 때 해당 내부 목록에서 요소를 제거하고 Foo의 소멸자는 다음과 같이 바로 호출됩니다. 콘크리트 객체가 지나가는 rxcpp가있는 C ++의 반응성 프로그래밍은 항상 복사, 건설 및 파괴가 진행되는 것을 명확하게 예측할 수 없는 다소 거대하고 항상 예측할 수 없는 양에 대비하고 있는지 확인해야 합니다. 클래스는 이를 위해 설계되었습니다.