MQTTSuite
Loading...
Searching...
No Matches
mqtt::mqttstore::websocket::SubProtocolFactory Class Reference

#include <SubProtocolFactory.h>

Inheritance diagram for mqtt::mqttstore::websocket::SubProtocolFactory:
Collaboration diagram for mqtt::mqttstore::websocket::SubProtocolFactory:

Public Member Functions

 SubProtocolFactory ()

Private Member Functions

iot::mqtt::client::SubProtocol * create (web::websocket::SubProtocolContext *subProtocolContext) override

Detailed Description

Definition at line 55 of file SubProtocolFactory.h.

Constructor & Destructor Documentation

◆ SubProtocolFactory()

mqtt::mqttstore::websocket::SubProtocolFactory::SubProtocolFactory ( )
explicit

Definition at line 54 of file SubProtocolFactory.cpp.

55 : web::websocket::SubProtocolFactory<web::websocket::client::SubProtocol>::SubProtocolFactory(NAME) {
56 }
#define NAME

Referenced by mqttClientSubProtocolFactory().

Here is the caller graph for this function:

Member Function Documentation

◆ create()

iot::mqtt::client::SubProtocol * mqtt::mqttstore::websocket::SubProtocolFactory::create ( web::websocket::SubProtocolContext * subProtocolContext)
overrideprivate

Definition at line 58 of file SubProtocolFactory.cpp.

58 {
59 const net::config::ConfigInstance* configInstance = subProtocolContext->getSocketConnection()->getConfigInstance();
60
61 const lib::ConfigSession* configSession = configInstance->getSubCommand<lib::ConfigSession>();
62 const lib::ConfigSubscribe* configSubscribe = configInstance->getSubCommand<lib::ConfigSubscribe>();
63 const lib::ConfigDatabase* configDatabase = configInstance->getSubCommand<lib::ConfigDatabase>();
64 const lib::ConfigStorage* configStorage = configDatabase->getSubCommand<lib::ConfigStorage>();
65 const StorageOptions storageOptions = getStorageOptions(configStorage);
66 lib::StoragePlan storagePlan;
67 try {
68 storagePlan = lib::StoragePlan::fromFile(storageOptions.projectionFile);
69 } catch (const std::exception& exception) {
70 VLOG(0) << subProtocolContext->getSocketConnection()->getConnectionName() << " MQTTStore startup failed: " << exception.what();
71 throw;
72 }
73
74 return new iot::mqtt::client::SubProtocol(
75 subProtocolContext,
76 getName(),
77 new mqtt::mqttstore::lib::Mqtt(subProtocolContext->getSocketConnection()->getConnectionName(),
78 configSession->getClientId(),
79 configSession->getQoS(),
80 configSession->getKeepAlive(),
81 !configSession->getRetainSession(),
82 configSession->getWillTopic(),
83 configSession->getWillMessage(),
84 configSession->getWillQoS(),
85 configSession->getWillRetain(),
86 configSession->getUsername(),
87 configSession->getPassword(),
88 configSubscribe->getTopic(),
89 {.database = configDatabase->getDatabase(),
90 .username = configDatabase->getUsername(),
91 .password = configDatabase->getPassword(),
92 .host = configDatabase->getHost(),
93 .port = configDatabase->getPort(),
94 .socket = configDatabase->getSocket(),
95 .flags = configDatabase->getFlags()},
96 storageOptions.rawTable,
97 storageOptions.autoCreateRawTable,
98 std::move(storagePlan),
99 configSession->getSessionStore()));
100 }
static StoragePlan fromFile(const std::string &fileName)
StorageOptions getStorageOptions(const mqtt::mqttstore::lib::ConfigStorage *configStorage)

References mqtt::mqttstore::lib::StoragePlan::fromFile(), anonymous_namespace{SubProtocolFactory.cpp}::getStorageOptions(), and anonymous_namespace{SubProtocolFactory.cpp}::StorageOptions::projectionFile.

Here is the call graph for this function:

The documentation for this class was generated from the following files: