AtClientImpl class

Implementation of AtClient interface and AtSignChangeListener interface

Implements to AtSignChangeListener to get notified on switch atSign event. On switch atSign event, pause's the compaction job on currentAtSign and start/resume the compaction job on the new atSign

Implemented types

Properties

atChops ↔ AtChops?
Set an instance of AtChops for data encryption and signing operations
getter/setter pairoverride
atClientCommitLogCompaction → AtClientCommitLogCompaction?
no setter
encryptionService → EncryptionService?
no setteroverride
enrollmentId String?
getter/setter pairoverride
hashCode int
The hash code for this object.
no setterinherited
notificationService NotificationService
getter/setter pairoverride
preference AtClientPreference?
no setter
putRequestTransformer ↔ PutRequestTransformer
getter/setter pair
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
syncService SyncService
getter/setter pairoverride
telemetry AtTelemetryService?
getter/setter pairoverride

Methods

delete(AtKey atKey, {bool isDedicated = false, DeleteRequestOptions? deleteRequestOptions}) Future<bool>
Delete the key from user's local secondary and syncs the delete to cloud secondary if client's sync preference is immediate. By default namespace that is used to create the AtClient instance will be appended to the key. phone@alice translates to phone.persona@alice where 'persona' is the namespace. If you want to ignoring the namespace set AtKey.metadata.namespaceAware to false.
override
downloadFile(String transferId, String sharedByAtSign, {String? downloadPath}) Future<List<File>>
Downloads the list of files for a given transferId shared by sharedByAtSign Optionally you can pass downloadPath to download the files.
override
ensureLowerCase(AtKey atKey) → dynamic
fetchEnrollmentRequests(EnrollListRequestParam enrollmentListRequestParams) Future<List<EnrollmentRequest>>
Fetches all enrollment requests from the corresponding atServer; Formats the requests into a List<EnrollmentResponse>
override
get(AtKey atKey, {bool isDedicated = false, GetRequestOptions? getRequestOptions}) Future<AtValue>
Get the value of AtKey.key from user's cloud secondary if AtKey.sharedBy is set. Otherwise looks up the key from local secondary. If the key was stored with public access, set AtKey.metadata.isPublic to true. If the key was shared with another atSign set AtKey.sharedWith
override
getAtKeys({String? regex, String? sharedBy, String? sharedWith, bool showHiddenKeys = false}) Future<List<AtKey>>
Get all the keys stored in user's secondary in AtKey format. If regex is specified only matching keys are returned. If sharedBy is specified, then gets the keys from sharedBy user shared with current atClient user. If sharedWith is specified, then gets the keys shared to sharedWith user from the current atClient user.
override
getCurrentAtSign() String?
Note - this method name is misleading as 'current' implies the atSign could change - but an AtClient should only ever have one atSign.
override
getKeys({String? regex, String? sharedBy, String? sharedWith, bool showHiddenKeys = false}) Future<List<String>>
Get all the keys stored in user's secondary in string format. If regex is specified only matching keys are returned. If sharedBy is specified, then gets the keys from sharedBy user shared with current atClient user. If sharedWith is specified, then gets the keys shared to sharedWith user from the current atClient user.
override
getLocalSecondary() LocalSecondary?
override
getMeta(AtKey atKey, {bool isDedicated = false}) Future<Metadata?>
Gets the metadata of AtKey.key
override
getOperation(dynamic value, Metadata? data) String?
getPreferences() AtClientPreference?
override
getPrivateKey(String atSign) Future<String?>
getRemoteSecondary() RemoteSecondary?
Returns a RemoteSecondary to communicate with user's cloud secondary server.
override
getSecondary() → Secondary
getSyncManager() → SyncManager?
Returns a singleton instance of SyncManager that is responsible for syncing data between local secondary server and remote secondary server. Deprecated Use AtClient.syncService
override
listenToAtSignChange(SwitchAtSignEvent switchAtSignEvent) → void
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
notify(AtKey atKey, String value, OperationEnum operation, {MessageTypeEnum? messageType, PriorityEnum? priority, StrategyEnum? strategy, int? latestN, String? notifier = AtConstants.system, bool isDedicated = false}) Future<bool>
Notifies the AtKey with the sharedWith user of the atsign. Optionally, operation, value and metadata can be set along with key to notify.
override
notifyAll(AtKey atKey, String value, OperationEnum operation, {bool isDedicated = false}) Future<String>
Notifies the AtKey with the list of sharedWith user's of the atsign. Optionally, operation, value and metadata can be set along with the key to notify.
override
notifyChange(NotificationParams notificationParams) Future<String?>
Deprecated Use NotificationService.notify
override
notifyList({String? fromDate, String? toDate, String? regex, bool isDedicated = false}) Future<String>
Returns the list of received notifications of an atsign, Optionally, notifications can be filtered on from date, to date and regular expression
override
notifyStatus(String notificationId) Future<String>
Returns the status of the notification
override
persistPrivateKey(String privateKey) Future<bool>
persistPublicKey(String publicKey) Future<bool>
put(AtKey atKey, dynamic value, {bool isDedicated = false, PutRequestOptions? putRequestOptions}) Future<bool>
Updates value of AtKey.key is if it is already present. Otherwise creates a new key. Set AtKey.sharedWith if the key has to be shared with another atSign. Set AtKey.metadata.isBinary if you are updating binary value e.g image,file. By default namespace that is used to create the AtClient instance will be appended to the key. phone@alice will be saved as phone.persona@alice where 'persona' is the namespace. If you want to save by ignoring the namespace set AtKey.metadata.namespaceAware to false. Additional metadata can be set using AtKey.metadata
override
putBinary(AtKey atKey, List<int> value, {PutRequestOptions? putRequestOptions}) Future<AtResponse>
put's the binary data(e.g. images, files etc) into the keystore
override
putMeta(AtKey atKey) Future<bool>
Updates the metadata of AtKey.key if it is already present. Otherwise creates a new key without a value. By default namespace that is used to create the AtClient instance will be appended to the key. phone@alice will be saved as phone.persona@alice where 'persona' is the namespace. If you want to save by ignoring the namespace set AtKey.metadata.namespaceAware to false.
override
putText(AtKey atKey, String value, {PutRequestOptions? putRequestOptions}) Future<AtResponse>
put's the text data into the keystore
override
reuploadFiles(List<File> files, FileTransferObject fileTransferObject) Future<List<FileStatus>>
re uploads file in fileTransferObject.fileUrl returns list of FileStatus which contains upload status of each file.
override
sendStreamAck(String streamId, String fileName, int fileLength, String senderAtSign, Function streamCompletionCallBack, Function streamReceiveCallBack) Future<void>
Sends stream acknowledgement
override
setPreferences(AtClientPreference preference) → void
Sets the preferences such as sync strategy, storage path etc., for the client.
override
shareFiles(List<String> sharedWithAtSigns, String key, String fileUrl, String encryptionKey, List<FileStatus> fileStatus, {DateTime? date}) Future<Map<String, FileTransferObject>>
re sends file notifications to sharedWithAtSigns returns Map<String, FileTransferObject> which contains transfer status for each atsign.
override
startMonitor(String privateKey, Function? notificationCallback, {String? regex}) Future<void>
Deprecated Use AtClient.notificationService
override
stream(String sharedWith, String filePath, {String? namespace}) Future<AtStreamResponse>
Streams the file in filePath to sharedWith atSign.
override
toString() String
A string representation of this object.
inherited
uploadFile(List<File> files, List<String> sharedWithAtSigns) Future<Map<String, FileTransferObject>>
Uploads list of files to filebin and shares the file download url with sharedWithAtSigns returns map containing key of each sharedWithAtSign and value of FileTransferObject
override

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Properties

atClientInstanceMap Map
final
upperCaseRegex RegExp
final

Static Methods

create(String currentAtSign, String? namespace, AtClientPreference preferences, {AtClientManager? atClientManager, RemoteSecondary? remoteSecondary, EncryptionService? encryptionService, SecondaryKeyStore? localSecondaryKeyStore, AtChops? atChops, AtClientCommitLogCompaction? atClientCommitLogCompaction, AtClientConfig? atClientConfig}) Future<AtClient>