PACS System 0.1.0
PACS DICOM system library
Loading...
Searching...
No Matches
pacs-di.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
22module;
23
24// Standard library imports
25#include <chrono>
26#include <cstddef>
27#include <cstdint>
28#include <filesystem>
29#include <functional>
30#include <map>
31#include <memory>
32#include <mutex>
33#include <optional>
34#include <string>
35#include <string_view>
36#include <vector>
37
38// PACS DI headers
43
44export module kcenon.pacs:di;
45
46// ============================================================================
47// Re-export pacs::di namespace
48// ============================================================================
49
50export namespace pacs::di {
51
52// Logger interface and implementations
53using pacs::di::ILogger;
54using pacs::di::NullLogger;
55using pacs::di::LoggerService;
56using pacs::di::null_logger;
57
58// Service interfaces
59using pacs::di::IDicomStorage;
60using pacs::di::IDicomCodec;
61using pacs::di::IDicomNetwork;
62using pacs::di::DicomNetworkService;
63
64// Registration configuration
65using pacs::di::registration_config;
66
67// Registration functions
68using pacs::di::register_services;
69using pacs::di::register_storage;
70using pacs::di::register_storage_instance;
71using pacs::di::register_network;
72using pacs::di::register_network_instance;
73using pacs::di::register_logger;
74using pacs::di::register_logger_instance;
75using pacs::di::create_container;
76
77} // namespace pacs::di
78
79// ============================================================================
80// Re-export pacs::di::test namespace
81// ============================================================================
82
83export namespace pacs::di::test {
84
85// Mock implementations
86using pacs::di::test::MockStorage;
87using pacs::di::test::MockNetwork;
88
89// Test container builder
90using pacs::di::test::TestContainerBuilder;
91
92// Convenience functions
93using pacs::di::test::create_test_container;
94using pacs::di::test::register_mock_storage;
95using pacs::di::test::register_mock_network;
96
97} // namespace pacs::di::test
Logger interface for dependency injection.
Service interface aliases for dependency injection.
ServiceContainer registration module for PACS services.
Test support utilities for PACS dependency injection.