1 package org
.asamk
.signal
.manager
.storage
.messageCache
;
3 import org
.asamk
.signal
.manager
.util
.MessageCacheUtils
;
4 import org
.slf4j
.Logger
;
5 import org
.slf4j
.LoggerFactory
;
6 import org
.whispersystems
.signalservice
.api
.messages
.SignalServiceEnvelope
;
9 import java
.io
.IOException
;
10 import java
.nio
.file
.Files
;
12 public final class CachedMessage
{
14 private final static Logger logger
= LoggerFactory
.getLogger(CachedMessage
.class);
16 private final File file
;
18 private SignalServiceEnvelope envelope
;
20 CachedMessage(final File file
) {
24 CachedMessage(final File file
, SignalServiceEnvelope envelope
) {
26 this.envelope
= envelope
;
33 public SignalServiceEnvelope
loadEnvelope() {
34 if (envelope
== null) {
36 envelope
= MessageCacheUtils
.loadEnvelope(file
);
37 } catch (Exception e
) {
38 logger
.error("Failed to load cached message envelope “{}”: {}", file
, e
.getMessage(), e
);
44 public void delete() {
46 Files
.delete(file
.toPath());
47 } catch (IOException e
) {
48 logger
.warn("Failed to delete cached message file “{}”, ignoring: {}", file
, e
.getMessage());
50 // Delete parent directory, if empty
52 Files
.delete(file
.toPath().getParent());
53 } catch (IOException ignored
) {