blob: 735570e71fffae43ae9f975d104c4fb875d7472a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#pragma once
#include "runtime_settings.h"
#include <yql/essentials/providers/common/config/yql_dispatch.h>
namespace NYql {
// Introspection for the runtime settings.
// Must be logically stateless since it may be constructed multiple times from any line of code.
class TRuntimeSettingsConfiguration: public NYql::NCommon::TSettingDispatcher, public TRuntimeSettings {
public:
using TPtr = TSharedPtr<TRuntimeSettingsConfiguration, TAtomicCounter>;
using TConstPtr = TSharedPtr<const TRuntimeSettingsConfiguration, TAtomicCounter>;
TRuntimeSettingsConfiguration();
explicit TRuntimeSettingsConfiguration(const TQContext& QContext);
explicit TRuntimeSettingsConfiguration(const TRuntimeSettings& settings, const TQContext& QContext = {});
};
TRuntimeSettingsConfiguration::TConstPtr MakeRuntimeSettingsConfiguration(auto&&... args) {
return MakeShared<const TRuntimeSettingsConfiguration, TAtomicCounter>(std::forward<decltype(args)>(args)...);
}
TRuntimeSettingsConfiguration::TPtr MakeRuntimeSettingsConfigurationMutable(auto&&... args) {
return MakeShared<TRuntimeSettingsConfiguration, TAtomicCounter>(std::forward<decltype(args)>(args)...);
}
} // namespace NYql
|