@@ -44,7 +44,7 @@ Each facility focuses on **exactly one concern**:
4444// ✅ GOOD: Each decorator has single responsibility
4545class TimeoutDecorator { /* ONLY timeout protection */ };
4646class ParallelDecorator { /* ONLY parallel execution * / };
47- class AsyncDecorator { / * ONLY async capabilities * / };
47+
4848class OutputDecorator { /* ONLY output handling * / };
4949class SignalDecorator { /* ONLY signal processing * / };
5050```
@@ -57,7 +57,6 @@ Facilities combine **without dependencies**:
5757auto integrator = make_builder(base)
5858 .with_timeout() // Independent
5959 .with_parallel() // Independent
60- .with_async() // Independent
6160 .with_signals() // Independent
6261 .with_output() // Independent
6362 .build();
@@ -79,7 +78,6 @@ public:
7978#### 2. Independent Facilities
8079- `TimeoutDecorator`: Timeout protection only
8180- `ParallelDecorator`: Batch processing and Monte Carlo only
82- - `AsyncDecorator`: Async execution only
8381- `OutputDecorator`: Online/offline/hybrid output only
8482- `SignalDecorator`: Signal processing only
8583
@@ -89,7 +87,6 @@ class IntegratorBuilder {
8987public:
9088 IntegratorBuilder& with_timeout(TimeoutConfig = {});
9189 IntegratorBuilder& with_parallel(ParallelConfig = {});
92- IntegratorBuilder& with_async(AsyncConfig = {});
9390 IntegratorBuilder& with_output(OutputConfig = {});
9491 IntegratorBuilder& with_signals(SignalConfig = {});
9592 std::unique_ptr<AbstractIntegrator<S, T>> build();
@@ -107,19 +104,19 @@ public:
107104``` cpp
108105// Any combination works
109106auto research = make_builder(base).with_timeout().with_parallel().build();
110- auto realtime = make_builder(base).with_async ().with_signals().build();
107+ auto realtime = make_builder(base).with_timeout ().with_signals().build();
111108auto server = make_builder(base).with_timeout().with_output().build();
112109auto ultimate = make_builder(base).with_timeout().with_parallel()
113- .with_async(). with_signals()
110+ .with_signals()
114111 .with_output().build();
115112```
116113
117114### 3. Order Independence
118115``` cpp
119116// These are identical:
120- .with_timeout().with_async ().with_output()
121- .with_output().with_timeout().with_async ()
122- .with_async ().with_output().with_timeout()
117+ .with_timeout().with_parallel ().with_output()
118+ .with_output().with_timeout().with_parallel ()
119+ .with_parallel ().with_output().with_timeout()
123120```
124121
125122### 4. Unlimited Extensibility
@@ -149,7 +146,6 @@ auto research_integrator = make_builder(base_integrator)
149146``` cpp
150147auto control_integrator = make_builder(base_integrator)
151148 .with_timeout(TimeoutConfig{.timeout_duration = std::chrono::milliseconds{10}})
152- .with_async()
153149 .with_signals()
154150 .build();
155151```
@@ -172,7 +168,7 @@ auto interactive_integrator = make_builder(base_integrator)
172168 return !user_cancelled();
173169 }
174170 })
175- .with_async(). with_signals().with_output()
171+ .with_signals().with_output()
176172 .build();
177173```
178174
@@ -264,7 +260,6 @@ auto integrator = make_builder(base).with_timeout().build();
264260auto integrator = make_builder(base)
265261 .with_timeout(TimeoutConfig{...})
266262 .with_parallel(ParallelConfig{...})
267- .with_async(AsyncConfig{...})
268263 .with_signals(SignalConfig{...})
269264 .with_output(OutputConfig{...}, custom_handler)
270265 .build();
0 commit comments