6#include <ocpp/v2/message_handler.hpp>
9struct FunctionalBlockContext;
10struct AuthorizationCacheEntry;
11struct AuthorizeResponse;
12struct ClearCacheRequest;
13struct SendLocalListRequest;
14struct GetLocalListVersionRequest;
16class DatabaseHandlerInterface;
23 virtual void start_auth_cache_cleanup_thread() = 0;
25 const std::optional<std::vector<OCSPRequestData>>& ocsp_request_data) = 0;
26 virtual void trigger_authorization_cache_cleanup() = 0;
30 virtual bool is_auth_cache_ctrlr_enabled() = 0;
31 virtual void authorization_cache_insert_entry(
const std::string& id_token_hash,
33 virtual std::optional<AuthorizationCacheEntry> authorization_cache_get_entry(
const std::string& id_token_hash) = 0;
34 virtual void authorization_cache_delete_entry(
const std::string& id_token_hash) = 0;
42 const std::optional<std::vector<OCSPRequestData>>& ocsp_request_data) = 0;
50 bool auth_cache_cleanup_required;
51 std::condition_variable auth_cache_cleanup_cv;
52 std::mutex auth_cache_cleanup_mutex;
53 std::thread auth_cache_cleanup_thread;
54 std::atomic_bool auth_cache_cleanup_handler_running;
59 void start_auth_cache_cleanup_thread()
override;
62 const std::optional<std::vector<OCSPRequestData>>& ocsp_request_data)
override;
63 void trigger_authorization_cache_cleanup()
override;
65 bool is_auth_cache_ctrlr_enabled()
override;
66 void authorization_cache_insert_entry(
const std::string& id_token_hash,
const IdTokenInfo& id_token_info)
override;
67 std::optional<AuthorizationCacheEntry> authorization_cache_get_entry(
const std::string& id_token_hash)
override;
68 void authorization_cache_delete_entry(
const std::string& id_token_hash)
override;
76 const std::optional<std::vector<OCSPRequestData>>& ocsp_request_data)
override;
79 void stop_auth_cache_cleanup_thread();
83 void cache_cleanup_handler();
Definition: authorization.hpp:18
virtual void update_authorization_cache_size()=0
Calculate and update the authorization cache size in the device model.
virtual AuthorizeResponse validate_token(const IdToken id_token, const std::optional< CiString< 5500 > > &certificate, const std::optional< std::vector< OCSPRequestData > > &ocsp_request_data)=0
Validates provided id_token certificate and ocsp_request_data using CSMS, AuthCache or AuthList.
Definition: authorization.hpp:45
void handle_message(const ocpp::EnhancedMessage< MessageType > &message) override
Handles the given message from the CSMS. This includes dispatching a CALLRESULT as a response to the ...
Definition: authorization.cpp:43
AuthorizeResponse validate_token(const IdToken id_token, const std::optional< CiString< 5500 > > &certificate, const std::optional< std::vector< OCSPRequestData > > &ocsp_request_data) override
Validates provided id_token certificate and ocsp_request_data using CSMS, AuthCache or AuthList.
Definition: authorization.cpp:149
void update_authorization_cache_size() override
Calculate and update the authorization cache size in the device model.
Definition: authorization.cpp:113
Interface for handling OCPP2.0.1 CALL messages from the CSMS. Classes implementing a functional block...
Definition: message_handler.hpp:13
Contains a OCPP Call message.
Definition: call_types.hpp:60
Contains a OCPP message in json form with additional information.
Definition: message_queue.hpp:54
Contains a OCPP AuthorizeResponse message.
Definition: Authorize.hpp:41
Context / requirements for the functional blocks.
Definition: functional_block_context.hpp:23
Definition: ocpp_types.hpp:86
Definition: ocpp_types.hpp:36
Contains a OCPP SendLocalList message.
Definition: SendLocalList.hpp:19