From 8999283ee7344fd7ec33c8a6cb5a7999e0592074 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sun, 3 Dec 2023 14:08:07 -0800 Subject: Update broadcast interface --- .../java/org/traccar/session/cache/CacheManager.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src/main/java/org/traccar/session/cache') diff --git a/src/main/java/org/traccar/session/cache/CacheManager.java b/src/main/java/org/traccar/session/cache/CacheManager.java index 4b6422de2..c40916218 100644 --- a/src/main/java/org/traccar/session/cache/CacheManager.java +++ b/src/main/java/org/traccar/session/cache/CacheManager.java @@ -19,6 +19,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.traccar.broadcast.BroadcastInterface; import org.traccar.broadcast.BroadcastService; +import org.traccar.broadcast.ObjectOperation; import org.traccar.config.Config; import org.traccar.model.Attribute; import org.traccar.model.BaseModel; @@ -201,12 +202,15 @@ public class CacheManager implements BroadcastInterface { } @Override - public void invalidateObject(boolean local, Class clazz, long id) { + public void invalidateObject( + boolean local, + Class clazz, long id, + ObjectOperation operation) { try { var object = storage.getObject(clazz, new Request( new Columns.All(), new Condition.Equals("id", id))); if (object != null) { - updateOrInvalidate(local, object); + updateOrInvalidate(local, object, operation); } else { invalidate(clazz, id); } @@ -215,9 +219,10 @@ public class CacheManager implements BroadcastInterface { } } - public void updateOrInvalidate(boolean local, T object) throws StorageException { + public void updateOrInvalidate( + boolean local, T object, ObjectOperation operation) throws StorageException { if (local) { - broadcastService.invalidateObject(true, object.getClass(), object.getId()); + broadcastService.invalidateObject(true, object.getClass(), object.getId(), operation); } if (object instanceof Server) { @@ -262,9 +267,10 @@ public class CacheManager implements BroadcastInterface { public void invalidatePermission( boolean local, Class clazz1, long id1, - Class clazz2, long id2) { + Class clazz2, long id2, + boolean link) { if (local) { - broadcastService.invalidatePermission(true, clazz1, id1, clazz2, id2); + broadcastService.invalidatePermission(true, clazz1, id1, clazz2, id2, link); } try { -- cgit v1.2.3