mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 14:02:21 -04:00

- Dropped the protobuf extensions in favor of explicitly listing out methods in both services if we want to implement both, as it's clearer. - Move Service/Method wrappers into a separate crate that the various clients can import, to easily get at the list of backend services and their correct indices and comments.
63 lines
1.6 KiB
Protocol Buffer
63 lines
1.6 KiB
Protocol Buffer
// Copyright: Ankitects Pty Ltd and contributors
|
|
// License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
|
|
|
syntax = "proto3";
|
|
|
|
option java_multiple_files = true;
|
|
|
|
package anki.sync;
|
|
|
|
import "anki/generic.proto";
|
|
|
|
/// Syncing methods are only available with a Backend handle.
|
|
service SyncService {}
|
|
|
|
service BackendSyncService {
|
|
rpc SyncMedia(SyncAuth) returns (generic.Empty);
|
|
rpc AbortMediaSync(generic.Empty) returns (generic.Empty);
|
|
rpc SyncLogin(SyncLoginRequest) returns (SyncAuth);
|
|
rpc SyncStatus(SyncAuth) returns (SyncStatusResponse);
|
|
rpc SyncCollection(SyncAuth) returns (SyncCollectionResponse);
|
|
rpc FullUpload(SyncAuth) returns (generic.Empty);
|
|
rpc FullDownload(SyncAuth) returns (generic.Empty);
|
|
rpc AbortSync(generic.Empty) returns (generic.Empty);
|
|
}
|
|
|
|
message SyncAuth {
|
|
string hkey = 1;
|
|
optional string endpoint = 2;
|
|
optional uint32 io_timeout_secs = 3;
|
|
}
|
|
|
|
message SyncLoginRequest {
|
|
string username = 1;
|
|
string password = 2;
|
|
optional string endpoint = 3;
|
|
}
|
|
|
|
message SyncStatusResponse {
|
|
enum Required {
|
|
NO_CHANGES = 0;
|
|
NORMAL_SYNC = 1;
|
|
FULL_SYNC = 2;
|
|
}
|
|
Required required = 1;
|
|
optional string new_endpoint = 4;
|
|
}
|
|
|
|
message SyncCollectionResponse {
|
|
enum ChangesRequired {
|
|
NO_CHANGES = 0;
|
|
NORMAL_SYNC = 1;
|
|
FULL_SYNC = 2;
|
|
// local collection has no cards; upload not an option
|
|
FULL_DOWNLOAD = 3;
|
|
// remote collection has no cards; download not an option
|
|
FULL_UPLOAD = 4;
|
|
}
|
|
|
|
uint32 host_number = 1;
|
|
string server_message = 2;
|
|
ChangesRequired required = 3;
|
|
optional string new_endpoint = 4;
|
|
}
|