PACS System 0.1.0
PACS DICOM system library
Loading...
Searching...
No Matches
pacs-services-cache.cppm
Go to the documentation of this file.
1// BSD 3-Clause License
2// Copyright (c) 2025, 🍀☀🌕🌥 🌊
3// See the LICENSE file in the project root for full license information.
4
20module;
21
22// Standard library imports
23#include <chrono>
24#include <cstddef>
25#include <functional>
26#include <memory>
27#include <mutex>
28#include <optional>
29#include <string>
30#include <vector>
31
32// PACS cache headers
37
38#ifdef PACS_WITH_DATABASE_SYSTEM
41#endif
42
43export module kcenon.pacs:services_cache;
44
45// ============================================================================
46// Re-export pacs::services::cache namespace
47// ============================================================================
48
49export namespace pacs::services::cache {
50
51// ==========================================================================
52// LRU Cache
53// ==========================================================================
54
55// Generic LRU cache template
56using pacs::services::cache::simple_lru_cache;
57using pacs::services::cache::cache_entry;
58using pacs::services::cache::cache_stats;
59
60// ==========================================================================
61// Query Cache
62// ==========================================================================
63
64// Query cache with monitoring integration
65using pacs::services::cache::query_cache;
66using pacs::services::cache::query_cache_config;
67using pacs::services::cache::cached_query_result;
68
69// ==========================================================================
70// Parallel Query Executor
71// ==========================================================================
72
73// Multi-threaded query execution
74using pacs::services::cache::parallel_query_executor;
75using pacs::services::cache::query_task;
76using pacs::services::cache::query_result_aggregator;
77
78// ==========================================================================
79// Streaming Query Handler
80// ==========================================================================
81
82// Streaming query handler
83using pacs::services::cache::streaming_query_handler;
84
85} // namespace pacs::services::cache
86
87#ifdef PACS_WITH_DATABASE_SYSTEM
88export namespace pacs::services {
89
90// ==========================================================================
91// Database Cursor (requires database_system)
92// ==========================================================================
93
94// Cursor for iterating over large result sets
95using pacs::services::database_cursor;
96using pacs::services::query_record;
97
98// ==========================================================================
99// Query Result Streaming (requires database_system)
100// ==========================================================================
101
102// Streaming query results
103using pacs::services::query_result_stream;
104using pacs::services::stream_config;
105
106} // namespace pacs::services
107#endif
Database cursor for streaming query results.
Parallel query executor for concurrent query processing.
DICOM query result cache with monitoring integration.
Streaming query results with pagination support.
Thread-safe LRU (Least Recently Used) cache for query results.
Streaming query handler for memory-efficient C-FIND processing.