Stroika Library 3.0d16
 
Loading...
Searching...
No Matches
Interceptor.cpp
1/*
2 * Copyright(c) Sophist Solutions, Inc. 1990-2025. All rights reserved
3 */
4#include "Stroika/Frameworks/StroikaPreComp.h"
5
7
8#include "Interceptor.h"
9
10using namespace Stroika::Foundation;
12
13using namespace Stroika::Frameworks;
14using namespace Stroika::Frameworks::WebServer;
15
16/*
17 ********************************************************************************
18 ***************************** Interceptor::MyRep_ ******************************
19 ********************************************************************************
20 */
21class Interceptor::MyRep_ : public Interceptor::_IRep {
22 function<void (Message&)> fHandleMessage_;
23 function<void (Message&, const exception_ptr& e)> fHandleFault_;
24
25public:
26 MyRep_ (const function<void (Message&)>& handleMessage, const function<void (Message&, const exception_ptr&)>& handleFault)
27 : fHandleMessage_{handleMessage}
28 , fHandleFault_{handleFault}
29 {
30 }
31 virtual void HandleFault (Message& m, const exception_ptr& e) const noexcept override
32 {
33 fHandleFault_ (m, e);
34 }
35 virtual void HandleMessage (Message& m) const override
36 {
37 fHandleMessage_ (m);
38 }
39};
40
41/*
42 ********************************************************************************
43 ***************************** WebServer::Interceptor ***************************
44 ********************************************************************************
45 */
46Interceptor::Interceptor (const function<void (Message&)>& handleMessage, const function<void (Message&, const exception_ptr&)>& handleFault)
47 : Interceptor{make_shared<MyRep_> (handleMessage, handleFault)}
48{
49}
50
51/*
52 ********************************************************************************
53 *********************** WebServer::Interceptor::_IRep **************************
54 ********************************************************************************
55 */
56void Interceptor::_IRep::HandleFault ([[maybe_unused]] Message& m, [[maybe_unused]] const exception_ptr& e) const noexcept
57{
58}
59
60void Interceptor::_IRep::CompleteNormally ([[maybe_unused]] Message& m) const
61{
62}
63
65{
66 return "{}"_f(reinterpret_cast<const void*> (this)); // ptr representation
67}
String is like std::u32string, except it is much easier to use, often much more space efficient,...
Definition String.h:201
virtual void CompleteNormally(Message &m) const
virtual void HandleMessage(Message &m) const =0
virtual Characters::String ToString() const
virtual void HandleFault(Message &m, const exception_ptr &e) const noexcept