LCOV - code coverage report
Current view: top level - lib/src/database - database_api.dart (source / functions) Hit Total Coverage
Test: merged.info Lines: 1 2 50.0 %
Date: 2024-11-12 07:37:08 Functions: 0 0 -

          Line data    Source code
       1             : /*
       2             :  *   Famedly Matrix SDK
       3             :  *   Copyright (C) 2021 Famedly GmbH
       4             :  *
       5             :  *   This program is free software: you can redistribute it and/or modify
       6             :  *   it under the terms of the GNU Affero General Public License as
       7             :  *   published by the Free Software Foundation, either version 3 of the
       8             :  *   License, or (at your option) any later version.
       9             :  *
      10             :  *   This program is distributed in the hope that it will be useful,
      11             :  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
      12             :  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
      13             :  *   GNU Affero General Public License for more details.
      14             :  *
      15             :  *   You should have received a copy of the GNU Affero General Public License
      16             :  *   along with this program.  If not, see <https://www.gnu.org/licenses/>.
      17             :  */
      18             : 
      19             : import 'dart:typed_data';
      20             : 
      21             : import 'package:matrix/encryption/utils/olm_session.dart';
      22             : import 'package:matrix/encryption/utils/outbound_group_session.dart';
      23             : import 'package:matrix/encryption/utils/ssss_cache.dart';
      24             : import 'package:matrix/encryption/utils/stored_inbound_group_session.dart';
      25             : import 'package:matrix/matrix.dart';
      26             : import 'package:matrix/src/utils/queued_to_device_event.dart';
      27             : 
      28             : abstract class DatabaseApi {
      29           0 :   int get maxFileSize => 1 * 1024 * 1024;
      30             : 
      31           1 :   bool get supportsFileStoring => false;
      32             : 
      33             :   Future<Map<String, dynamic>?> getClient(String name);
      34             : 
      35             :   Future updateClient(
      36             :     String homeserverUrl,
      37             :     String token,
      38             :     DateTime? tokenExpiresAt,
      39             :     String? refreshToken,
      40             :     String userId,
      41             :     String? deviceId,
      42             :     String? deviceName,
      43             :     String? prevBatch,
      44             :     String? olmAccount,
      45             :   );
      46             : 
      47             :   Future insertClient(
      48             :     String name,
      49             :     String homeserverUrl,
      50             :     String token,
      51             :     DateTime? tokenExpiresAt,
      52             :     String? refreshToken,
      53             :     String userId,
      54             :     String? deviceId,
      55             :     String? deviceName,
      56             :     String? prevBatch,
      57             :     String? olmAccount,
      58             :   );
      59             : 
      60             :   Future<List<Room>> getRoomList(Client client);
      61             : 
      62             :   Future<Room?> getSingleRoom(
      63             :     Client client,
      64             :     String roomId, {
      65             :     bool loadImportantStates = true,
      66             :   });
      67             : 
      68             :   Future<Map<String, BasicEvent>> getAccountData();
      69             : 
      70             :   /// Stores a RoomUpdate object in the database. Must be called inside of
      71             :   /// [transaction].
      72             :   Future<void> storeRoomUpdate(
      73             :     String roomId,
      74             :     SyncRoomUpdate roomUpdate,
      75             :     Event? lastEvent,
      76             :     Client client,
      77             :   );
      78             : 
      79             :   Future<void> deleteTimelineForRoom(String roomId);
      80             : 
      81             :   /// Stores an EventUpdate object in the database. Must be called inside of
      82             :   /// [transaction].
      83             :   Future<void> storeEventUpdate(EventUpdate eventUpdate, Client client);
      84             : 
      85             :   Future<Event?> getEventById(String eventId, Room room);
      86             : 
      87             :   Future<void> forgetRoom(String roomId);
      88             : 
      89             :   Future<CachedProfileInformation?> getUserProfile(String userId);
      90             : 
      91             :   Future<void> storeUserProfile(
      92             :     String userId,
      93             :     CachedProfileInformation profile,
      94             :   );
      95             : 
      96             :   Future<void> markUserProfileAsOutdated(String userId);
      97             : 
      98             :   Future<void> clearCache();
      99             : 
     100             :   Future<void> clear();
     101             : 
     102             :   Future<User?> getUser(String userId, Room room);
     103             : 
     104             :   Future<List<User>> getUsers(Room room);
     105             : 
     106             :   Future<List<Event>> getEventList(
     107             :     Room room, {
     108             :     int start = 0,
     109             :     bool onlySending = false,
     110             :     int? limit,
     111             :   });
     112             : 
     113             :   Future<List<String>> getEventIdList(
     114             :     Room room, {
     115             :     int start = 0,
     116             :     bool includeSending = false,
     117             :     int? limit,
     118             :   });
     119             : 
     120             :   Future<Uint8List?> getFile(Uri mxcUri);
     121             : 
     122             :   Future storeFile(Uri mxcUri, Uint8List bytes, int time);
     123             : 
     124             :   Future<bool> deleteFile(Uri mxcUri);
     125             : 
     126             :   Future storeSyncFilterId(
     127             :     String syncFilterId,
     128             :   );
     129             : 
     130             :   Future storeAccountData(String type, String content);
     131             : 
     132             :   Future<Map<String, DeviceKeysList>> getUserDeviceKeys(Client client);
     133             : 
     134             :   Future<SSSSCache?> getSSSSCache(String type);
     135             : 
     136             :   Future<OutboundGroupSession?> getOutboundGroupSession(
     137             :     String roomId,
     138             :     String userId,
     139             :   );
     140             : 
     141             :   Future<List<StoredInboundGroupSession>> getAllInboundGroupSessions();
     142             : 
     143             :   Future<StoredInboundGroupSession?> getInboundGroupSession(
     144             :     String roomId,
     145             :     String sessionId,
     146             :   );
     147             : 
     148             :   Future updateInboundGroupSessionIndexes(
     149             :     String indexes,
     150             :     String roomId,
     151             :     String sessionId,
     152             :   );
     153             : 
     154             :   Future storeInboundGroupSession(
     155             :     String roomId,
     156             :     String sessionId,
     157             :     String pickle,
     158             :     String content,
     159             :     String indexes,
     160             :     String allowedAtIndex,
     161             :     String senderKey,
     162             :     String senderClaimedKey,
     163             :   );
     164             : 
     165             :   Future markInboundGroupSessionAsUploaded(
     166             :     String roomId,
     167             :     String sessionId,
     168             :   );
     169             : 
     170             :   Future updateInboundGroupSessionAllowedAtIndex(
     171             :     String allowedAtIndex,
     172             :     String roomId,
     173             :     String sessionId,
     174             :   );
     175             : 
     176             :   Future removeOutboundGroupSession(String roomId);
     177             : 
     178             :   Future storeOutboundGroupSession(
     179             :     String roomId,
     180             :     String pickle,
     181             :     String deviceIds,
     182             :     int creationTime,
     183             :   );
     184             : 
     185             :   Future updateClientKeys(
     186             :     String olmAccount,
     187             :   );
     188             : 
     189             :   Future storeOlmSession(
     190             :     String identityKey,
     191             :     String sessionId,
     192             :     String pickle,
     193             :     int lastReceived,
     194             :   );
     195             : 
     196             :   Future setLastActiveUserDeviceKey(
     197             :     int lastActive,
     198             :     String userId,
     199             :     String deviceId,
     200             :   );
     201             : 
     202             :   Future setLastSentMessageUserDeviceKey(
     203             :     String lastSentMessage,
     204             :     String userId,
     205             :     String deviceId,
     206             :   );
     207             : 
     208             :   Future clearSSSSCache();
     209             : 
     210             :   Future storeSSSSCache(
     211             :     String type,
     212             :     String keyId,
     213             :     String ciphertext,
     214             :     String content,
     215             :   );
     216             : 
     217             :   Future markInboundGroupSessionsAsNeedingUpload();
     218             : 
     219             :   Future storePrevBatch(
     220             :     String prevBatch,
     221             :   );
     222             : 
     223             :   Future deleteOldFiles(int savedAt);
     224             : 
     225             :   Future storeUserDeviceKeysInfo(
     226             :     String userId,
     227             :     bool outdated,
     228             :   );
     229             : 
     230             :   Future storeUserDeviceKey(
     231             :     String userId,
     232             :     String deviceId,
     233             :     String content,
     234             :     bool verified,
     235             :     bool blocked,
     236             :     int lastActive,
     237             :   );
     238             : 
     239             :   Future removeUserDeviceKey(
     240             :     String userId,
     241             :     String deviceId,
     242             :   );
     243             : 
     244             :   Future removeUserCrossSigningKey(
     245             :     String userId,
     246             :     String publicKey,
     247             :   );
     248             : 
     249             :   Future storeUserCrossSigningKey(
     250             :     String userId,
     251             :     String publicKey,
     252             :     String content,
     253             :     bool verified,
     254             :     bool blocked,
     255             :   );
     256             : 
     257             :   Future deleteFromToDeviceQueue(int id);
     258             : 
     259             :   Future removeEvent(String eventId, String roomId);
     260             : 
     261             :   Future setRoomPrevBatch(
     262             :     String? prevBatch,
     263             :     String roomId,
     264             :     Client client,
     265             :   );
     266             : 
     267             :   Future setVerifiedUserCrossSigningKey(
     268             :     bool verified,
     269             :     String userId,
     270             :     String publicKey,
     271             :   );
     272             : 
     273             :   Future setBlockedUserCrossSigningKey(
     274             :     bool blocked,
     275             :     String userId,
     276             :     String publicKey,
     277             :   );
     278             : 
     279             :   Future setVerifiedUserDeviceKey(
     280             :     bool verified,
     281             :     String userId,
     282             :     String deviceId,
     283             :   );
     284             : 
     285             :   Future setBlockedUserDeviceKey(
     286             :     bool blocked,
     287             :     String userId,
     288             :     String deviceId,
     289             :   );
     290             : 
     291             :   Future<List<Event>> getUnimportantRoomEventStatesForRoom(
     292             :     List<String> events,
     293             :     Room room,
     294             :   );
     295             : 
     296             :   Future<List<OlmSession>> getOlmSessions(
     297             :     String identityKey,
     298             :     String userId,
     299             :   );
     300             : 
     301             :   Future<Map<String, Map>> getAllOlmSessions();
     302             : 
     303             :   Future<List<OlmSession>> getOlmSessionsForDevices(
     304             :     List<String> identityKeys,
     305             :     String userId,
     306             :   );
     307             : 
     308             :   Future<List<QueuedToDeviceEvent>> getToDeviceEventQueue();
     309             : 
     310             :   /// Please do `jsonEncode(content)` in your code to stay compatible with
     311             :   /// auto generated methods here.
     312             :   Future insertIntoToDeviceQueue(
     313             :     String type,
     314             :     String txnId,
     315             :     String content,
     316             :   );
     317             : 
     318             :   Future<List<String>> getLastSentMessageUserDeviceKey(
     319             :     String userId,
     320             :     String deviceId,
     321             :   );
     322             : 
     323             :   Future<List<StoredInboundGroupSession>> getInboundGroupSessionsToUpload();
     324             : 
     325             :   Future<void> addSeenDeviceId(
     326             :     String userId,
     327             :     String deviceId,
     328             :     String publicKeys,
     329             :   );
     330             : 
     331             :   Future<void> addSeenPublicKey(String publicKey, String deviceId);
     332             : 
     333             :   Future<String?> deviceIdSeen(userId, deviceId);
     334             : 
     335             :   Future<String?> publicKeySeen(String publicKey);
     336             : 
     337             :   Future<dynamic> close();
     338             : 
     339             :   Future<void> transaction(Future<void> Function() action);
     340             : 
     341             :   Future<String> exportDump();
     342             : 
     343             :   Future<bool> importDump(String export);
     344             : 
     345             :   Future<void> storePresence(String userId, CachedPresence presence);
     346             : 
     347             :   Future<CachedPresence?> getPresence(String userId);
     348             : 
     349             :   Future<void> storeWellKnown(DiscoveryInformation? discoveryInformation);
     350             : 
     351             :   Future<DiscoveryInformation?> getWellKnown();
     352             : 
     353             :   /// Deletes the whole database. The database needs to be created again after
     354             :   /// this.
     355             :   Future<void> delete();
     356             : }

Generated by: LCOV version 1.14