Sessão de classe
Um objeto encapsulando uma sessão de sincronização. As sessões representam a comunicação entre o cliente (e um Arquivo de Realm local no disco) e o MongoDB Atlas. As sessões são sempre criadas pelo SDK e distribuídas por meio de várias API. A duração das sessões associadas aos Realms é managed automaticamente.
Implementos
namespace: Realms.sincronizar
Conjunto: Realm.exe
Sintaxe
public class Session : INotifyPropertyChanged
Propriedades
| Editar esta página Ver fonteEstado da conexão
Obtém o estado da conexão atual da sessão.
Declaração
public ConnectionState ConnectionState { get; }
Valor da propriedade
Tipo | Descrição |
---|---|
Estado da conexão | Um valor de enum que indica o estado de conexão da sessão. |
Caminho
Obtém o caminho no disco do Arquivo de Realm fazendo backup do Realm que esta sessão representa.
Declaração
public string Path { get; }
Valor da propriedade
Tipo | Descrição |
---|---|
string | O caminho do arquivo. |
Estado
Obtém o estado atual da sessão.
Declaração
public SessionState State { get; }
Valor da propriedade
Tipo | Descrição |
---|---|
Estado da sessão | Um valor de enumeração indicando o estado da sessão. |
Usuário
Obtém o usuário definido pelo SyncConfigurationBase que é usado para se conectar ao MongoDB Atlas.
Declaração
public User User { get; }
Valor da propriedade
Tipo | Descrição |
---|---|
Usuário | O usuário que foi usado para criar a SyncConfigurationBase do Realm. |
Métodos
| Editar esta página Ver fonteGetProgressObservable(ProgressDirection, ProgressMode)
Recebe um IObservable<T> que pode ser usado para acompanhar o progresso de upload ou download.
Declaração
public IObservable<SyncProgress> GetProgressObservable(ProgressDirection direction, ProgressMode mode)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
ProgressDirection | Direção | A direção de transferência (upload ou download) para acompanhar na chamada de resposta da assinatura. |
ProgressMode | Modo | O comportamento desejado desse bloco de notificação de progresso. |
Devoluções
Tipo | Descrição |
---|---|
IObservable<SyncProgress> | Um observável que você pode assinar e receber atualizações de progresso. |
Observações
Para começar a receber notificações, você deve chamar Subscribe(IObserver<T>) no objeto retornado. O token retornado de Subscribe(IObserver<T>) deve ser retido enquanto as notificações de progresso forem desejadas. Para parar de receber notificações, ligue para Dispose() no token. Você não precisa manter uma referência ao próprio observável. A chamada de resposta de progresso sempre será chamada uma vez, imediatamente após a assinatura, para fornecer as informações de status mais recentes disponíveis.
Exemplos
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;
}
}
Neste exemplo, estamos usando ObservableExtensions.Subscribe encontrado na biblioteca de classes Reactive Extensions . Se preferir não ter uma dependência dele, você pode criar uma classe que implementa o IObserver<T> e usá-lo para se inscrever.
| Editar esta página Ver fonteStart()
Tenta retomar a sessão e habilitar a sincronização com o servidor.
Declaração
public void Start()
Observações
Todas as sessões estarão ativas por padrão e chamar esse método só faz sentido se Parar() foi chamado antes disso.
Parar()
Interrompe qualquer sincronização com o servidor até que o Realm seja reaberto depois de fechá-lo completamente.
A sincronização pode ser reativada chamando Start() novamente.
Declaração
public void Stop()
Observações
Se a sessão já estiver interrompida, chamar esse método não fará nada.
waitForDownloadAsync(CancelationToken?)
Aguarde a sessão terminar todos os downloads pendentes.
Declaração
public Task WaitForDownloadAsync(CancellationToken? cancellationToken = null)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
Token de cancelamento? | Token de cancelamento | Um token de cancelamento opcional que pode ser usado para cancelar a operação de espera. |
Devoluções
Tipo | Descrição |
---|---|
Tarefa | Uma tarefa aguardada que será concluída quando todos os downloads pendentes para esta sessão forem concluídos. |
Exceções
Tipo | Condição |
---|---|
Exceção de operação inválida | Lançada quando uma sessão com falha é esperada. |
waitForUploadAsync(CancelationToken?)
Aguarde a sessão terminar todos os carregamentos pendentes.
Declaração
public Task WaitForUploadAsync(CancellationToken? cancellationToken = null)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
Token de cancelamento? | Token de cancelamento | Um token de cancelamento opcional que pode ser usado para cancelar a operação de espera. |
Devoluções
Tipo | Descrição |
---|---|
Tarefa | Uma tarefa aguardada que será concluída quando todos os carregamentos pendentes para esta sessão forem concluídos. |
Exceções
Tipo | Condição |
---|---|
Exceção de operação inválida | Lançada quando uma sessão com falha é esperada. |
Eventos
| Editar esta página Ver fontePropertyChanged
Ocorre quando o valor de uma propriedade muda.
Declaração
public event PropertyChangedEventHandler? PropertyChanged
eventType
Tipo | Descrição |
---|---|
PropertyChangedEventHandler |