수업 세션
동기화 세션을 캡슐화하는 객체입니다. 세션은 클라이언트(및 디스크의 로컬 Realm 파일)와 MongoDB Atlas 간의 통신을 나타냅니다. 세션은 항상 SDK에 의해 생성되고 다양한 API를 통해 판매됩니다. Realm과 연결된 세션의 수명은 managed 자동으로 됩니다.
네임스페이스: Realms.동기화
어셈블리: Realm.exe
구문
public class Session : INotifyPropertyChanged
속성
| 이 페이지 편집 소스 보기ConnectionState
세션의 현재 연결 상태를 가져옵니다.
선언
public ConnectionState ConnectionState { get; }
속성 값
유형 | 설명 |
---|---|
ConnectionState | 세션의 연결 상태를 나타내는 열거형 값입니다. |
경로
이 세션이 나타내는 Realm 을 백업하는 Realm 파일의 디스크 내 경로를 가져옵니다.
선언
public string Path { get; }
속성 값
유형 | 설명 |
---|---|
문자열 | 파일 경로입니다. |
상태
세션의 현재 상태를 가져옵니다.
선언
public SessionState State { get; }
속성 값
유형 | 설명 |
---|---|
SessionState | 세션 상태를 나타내는 열거형 값입니다. |
사용자
MongoDB Atlas에 연결하는 데 사용되는 SyncConfigurationBase 에서 정의한 사용자 를 가져옵니다.
선언
public User User { get; }
속성 값
유형 | 설명 |
---|---|
사용자 | Realm 의 SyncConfigurationBase 를 만드는 데 사용된 사용자 입니다. |
방법
| 이 페이지 편집 소스 보기GetProgressObservable(ProgressDirection, ProgressMode)
업로드 또는 다운로드 진행 상황을 추적하는 데 사용할 수 있는 IObservable<T> 을 가져옵니다.
선언
public IObservable<SyncProgress> GetProgressObservable(ProgressDirection direction, ProgressMode mode)
매개변수
유형 | 이름 | 설명 |
---|---|---|
ProgressDirection | 방향 | 구독 콜백에서 추적할 전송 방향(업로드 또는 다운로드)입니다. |
ProgressMode | 모드 | 이 진행률 알림 차단의 원하는 동작입니다. |
반환
유형 | 설명 |
---|---|
IObservable<SyncProgress> | 진행 상황 업데이트를 구독하고 받을 수 있는 옵저버블입니다. |
비고
알림 수신을 시작하려면 반환된 객체에 대해 Subscribe(IObserver<T>) 를 호출해야 합니다. 진행률 알림을 원하는 기간 동안 구독(IObserver<T>) 에서 반환된 토큰을 보관해야 합니다. 알림 수신을 중지하려면 토큰에 대해 Dispose() 를 호출합니다. 옵저버블 자체에 대한 참고를 유지할 필요는 없습니다. 진행률 콜백은 사용 가능한 최신 상태 정보를 제공하기 위해 구독 즉시 한 번 호출됩니다.
예시
class ProgressNotifyingViewModel
{
private IDisposable notificationToken;
public void ShowProgress()
{
var observable = session.GetProgressObservable(ProgressDirection.Upload, ProgressMode.ReportIndefinitely);
notificationToken = observable.Subscribe(progress =>
{
// Update relevant properties by accessing progress.ProgressEstimate
});
}
public void HideProgress()
{
notificationToken?.Dispose();
notificationToken = null;
}
}
이 예제에서는 Reactive Extensions 클래스 라이브러리에 있는 ObservableExtensions.Subscribe 를 사용하고 있습니다. 종속성을 유지하지 않으려면 IObserver<T> 를 구현하는 클래스를 만들어 대신 구독에 사용할 수 있습니다.
| 이 페이지 편집 소스 보기Start()
세션을 재개하고 서버와의 동기화를 활성화하려고 시도합니다.
선언
public void Start()
비고
모든 세션은 기본적으로 활성화되며, 이 메서드를 호출하는 것은 그 전에 중지() 가 호출된 경우에만 의미가 있습니다.
중지()
Realm을 완전히 닫았다가 다시 열 때까지 서버와의 동기화를 중지합니다.
동기화는 Start() 를 다시 호출하여 다시 활성화할 수 있습니다.
선언
public void Stop()
비고
세션이 이미 중지된 경우 이 메서드를 호출해도 아무 작업도 수행되지 않습니다.
WaitForDownloadAsync(CancelationToken?)
세션 이 보류 중인 모든 다운로드를 완료할 때까지 기다립니다.
선언
public Task WaitForDownloadAsync(CancellationToken? cancellationToken = null)
매개변수
유형 | 이름 | 설명 |
---|---|---|
취소 토큰? | 취소 토큰 | 대기 작업을 취소하는 데 사용할 수 있는 선택적 취소 토큰입니다. |
반환
유형 | 설명 |
---|---|
작업 |
예외
유형 | 조건 |
---|---|
InvalidOperationException | 장애가 발생한 세션이 대기 중일 때 발생합니다. |
WaitForUploadAsync(CancelationToken?)
세션 이 보류 중인 모든 업로드를 완료할 때까지 기다립니다.
선언
public Task WaitForUploadAsync(CancellationToken? cancellationToken = null)
매개변수
유형 | 이름 | 설명 |
---|---|---|
취소 토큰? | 취소 토큰 | 대기 작업을 취소하는 데 사용할 수 있는 선택적 취소 토큰입니다. |
반환
유형 | 설명 |
---|---|
작업 | 이 세션 에 대해 보류 중인 모든 업로드가 완료되면 완료될 대기 가능한 작업 입니다. |
예외
유형 | 조건 |
---|---|
InvalidOperationException | 장애가 발생한 세션이 대기 중일 때 발생합니다. |
이벤트
| 이 페이지 편집 소스 보기PropertyChanged
속성 값이 변경될 때 발생합니다.
선언
public event PropertyChangedEventHandler? PropertyChanged
eventType
유형 | 설명 |
---|---|
PropertyChangedEventHandler |