From 7259e265b9237286996b09da03038ea5a133e1e0 Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期六, 05 九月 2026 17:45:07 +0800
Subject: [PATCH] 收敛模拟器为设备事实与实时观测
---
battery-device-simulator/src/main/java/com/battery/device/simulator/InMemoryBtsSimulatorStateStore.java | 150 ++-----------------------------------------------
1 files changed, 8 insertions(+), 142 deletions(-)
diff --git a/battery-device-simulator/src/main/java/com/battery/device/simulator/InMemoryBtsSimulatorStateStore.java b/battery-device-simulator/src/main/java/com/battery/device/simulator/InMemoryBtsSimulatorStateStore.java
index 5807015..722b799 100644
--- a/battery-device-simulator/src/main/java/com/battery/device/simulator/InMemoryBtsSimulatorStateStore.java
+++ b/battery-device-simulator/src/main/java/com/battery/device/simulator/InMemoryBtsSimulatorStateStore.java
@@ -1,167 +1,33 @@
package com.battery.device.simulator;
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
import java.util.List;
-import java.util.Map;
-import com.battery.device.simulator.BtsSimulatorStateStore.CollectorHistoryAppend;
-import com.battery.device.simulator.BtsSimulatorStateStore.CollectorHistoryBatch;
-import com.battery.device.simulator.BtsSimulatorStateStore.CollectorMeasurementRecord;
-import com.battery.device.simulator.BtsSimulatorStateStore.BtsHistoryRecord;
-import com.battery.device.simulator.BtsSimulatorStateStore.BtsHistoryBatch;
-import com.battery.device.simulator.BtsSimulatorStateStore.RecentRequest;
-import com.battery.device.simulator.BtsSimulatorStateStore.SimulatorState;
-import com.battery.device.simulator.BtsSimulatorStateStore.BtsPlaybackState;
/** 测试和独立协议合同使用的内存状态存储。 */
public final class InMemoryBtsSimulatorStateStore implements BtsSimulatorStateStore
{
private SimulatorState state;
private List<RecentRequest> recentRequests = List.of();
- private final Map<String, ArrayList<CollectorMeasurementRecord>> collectorHistory = new LinkedHashMap<>();
- private final Map<String, ArrayList<BtsHistoryRecord>> btsHistory = new LinkedHashMap<>();
- private final Map<String, BtsPlaybackState> btsPlayback = new LinkedHashMap<>();
public InMemoryBtsSimulatorStateStore() { }
-
- public InMemoryBtsSimulatorStateStore(SimulatorState state)
- {
- this.state = state;
- }
+ public InMemoryBtsSimulatorStateStore(SimulatorState state) { this.state = state; }
@Override
- public synchronized SimulatorState loadOrInitialize(SimulatorState defaultState)
+ public synchronized SimulatorState loadOrInitialize(SimulatorState defaults)
{
- if (state == null) state = defaultState;
+ if (state == null) state = defaults;
return state;
}
@Override
- public synchronized void save(SimulatorState state)
- {
- this.state = state;
- }
-
+ public synchronized void save(SimulatorState state) { this.state = state; }
@Override
- public synchronized void save(SimulatorState state, List<CollectorHistoryAppend> historyAppends)
- {
- for (CollectorHistoryAppend append : historyAppends)
- {
- ArrayList<CollectorMeasurementRecord> history = collectorHistory.computeIfAbsent(
- append.collectorCode(), key -> new ArrayList<>());
- history.addAll(append.records());
- int overflow = history.size() - (int) MAX_HISTORY_RECORDS;
- if (overflow > 0) history.subList(0, overflow).clear();
- }
- this.state = state;
- }
-
+ public synchronized List<RecentRequest> loadRecentRequests() { return recentRequests; }
@Override
- public synchronized CollectorHistoryBatch loadCollectorHistoryPage(String collectorCode, long offset,
- int limit, boolean reverse)
- {
- if (offset < 0) throw new IllegalArgumentException("offset must not be negative");
- if (limit < 1 || limit > MAX_HISTORY_BATCH_SIZE)
- throw new IllegalArgumentException("limit must be between 1 and " + MAX_HISTORY_BATCH_SIZE);
- List<CollectorMeasurementRecord> history = collectorHistory.getOrDefault(collectorCode,
- new ArrayList<>());
- long total = history.size();
- int from = (int) Math.min(offset, total);
- int count = Math.min(limit, history.size() - from);
- List<CollectorMeasurementRecord> records = new ArrayList<>(count);
- if (reverse)
- {
- for (int index = history.size() - 1 - from; index >= history.size() - from - count; index--)
- records.add(history.get(index));
- }
- else
- {
- records.addAll(history.subList(from, from + count));
- }
- long nextOffset = from + records.size();
- return new CollectorHistoryBatch(offset, nextOffset, nextOffset < total, total, records);
- }
-
+ public synchronized void saveRecentRequests(List<RecentRequest> requests) { recentRequests = List.copyOf(requests); }
@Override
- public synchronized void saveAndDeleteCollectorHistory(SimulatorState state, String collectorCode)
+ public synchronized void reset(SimulatorState defaults)
{
- collectorHistory.remove(collectorCode);
- this.state = state;
- }
-
- @Override
- public synchronized BtsHistoryBatch loadBtsHistoryPage(String historyKey, long offset, int limit)
- {
- List<BtsHistoryRecord> history = btsHistory.getOrDefault(historyKey, new ArrayList<>());
- int from = (int) Math.min(offset, history.size());
- int count = Math.min(limit, history.size() - from);
- List<BtsHistoryRecord> records = new ArrayList<>(history.subList(from, from + count));
- long next = from + records.size();
- return new BtsHistoryBatch(offset, next, next < history.size(), history.size(), records);
- }
-
- @Override
- public synchronized void appendBtsHistory(String historyKey, BtsHistoryRecord record)
- {
- ArrayList<BtsHistoryRecord> history = btsHistory.computeIfAbsent(historyKey, key -> new ArrayList<>());
- history.add(record);
- if (history.size() > MAX_HISTORY_RECORDS) history.remove(0);
- }
-
- @Override
- public synchronized BtsPlaybackState loadBtsPlaybackState(String historyKey)
- {
- return btsPlayback.get(historyKey);
- }
-
- @Override
- public synchronized void saveBtsPlaybackState(String historyKey, BtsPlaybackState playback)
- {
- btsPlayback.put(historyKey, playback);
- }
-
- @Override
- public synchronized void deleteBtsPlaybackState(String historyKey)
- {
- btsPlayback.remove(historyKey);
- }
-
- @Override
- public synchronized void deleteBtsHistory(String historyKey)
- {
- btsHistory.remove(historyKey);
- }
-
- @Override
- public synchronized void saveBtsPlaybackAndAppendHistory(String historyKey, BtsPlaybackState playback,
- List<BtsHistoryRecord> records)
- {
- ArrayList<BtsHistoryRecord> history = btsHistory.computeIfAbsent(historyKey, key -> new ArrayList<>());
- history.addAll(records);
- int overflow = history.size() - (int) MAX_HISTORY_RECORDS;
- if (overflow > 0) history.subList(0, overflow).clear();
- btsPlayback.put(historyKey, playback);
- }
-
- @Override
- public synchronized List<RecentRequest> loadRecentRequests()
- {
- return recentRequests;
- }
-
- @Override
- public synchronized void saveRecentRequests(List<RecentRequest> requests)
- {
- recentRequests = List.copyOf(requests);
- }
-
- @Override
- public synchronized void reset(SimulatorState defaultState)
- {
- state = defaultState;
+ state = defaults;
recentRequests = List.of();
- collectorHistory.clear();
- btsHistory.clear();
- btsPlayback.clear();
}
}
--
Gitblit v1.7.1