Dobby
3.0
Dobby “Docker based Thingy” is a tool for managing and running OCI containers using crun
|
#include <LoggingPlugin.h>
Public Member Functions | |
LoggingPlugin (std::shared_ptr< rt_dobby_schema > &containerConfig, const std::shared_ptr< DobbyRdkPluginUtils > &utils, const std::string &rootfsPath) | |
Constructor - called when plugin is loaded by PluginLauncher. More... | |
std::string | name () const override |
Should return the name of the plugin. More... | |
unsigned | hookHints () const override |
Set the bit flags for which hooks we're going to use. More... | |
bool | postInstallation () override |
Set the correct options in the config file. | |
std::vector< std::string > | getDependencies () const override |
Should return the names of the plugins this plugin depends on. More... | |
void | RegisterPollSources (int fd, std::shared_ptr< AICommon::IPollLoop > pollLoop) override |
Adds the necessary poll source(s) to the provided pollLoop instance based on the logging sink specified in the container config. More... | |
void | DumpToLog (const int bufferFd) override |
Dump the contents of a file descriptor to the log sink. More... | |
Public Member Functions inherited from DobbyLoggerBase | |
virtual bool | preCreation () |
virtual bool | createRuntime () |
virtual bool | createContainer () |
virtual bool | postStart () |
virtual bool | postHalt () |
virtual bool | postStop () |
Private Types | |
enum class | LoggingSink { DevNull , File , Journald } |
Private Member Functions | |
std::shared_ptr< ILoggingSink > | CreateSink (LoggingSink sinkType) |
Constructs an instance of the requested sink. More... | |
LoggingSink | GetContainerSink () |
Converts the "sink: xxx" in the config to a valid log sink. Case insensitive. | |
Private Attributes | |
const std::string | mName |
std::shared_ptr< rt_dobby_schema > | mContainerConfig |
const std::shared_ptr< DobbyRdkPluginUtils > | mUtils |
std::shared_ptr< ILoggingSink > | mSink |
std::shared_ptr< AICommon::IPollLoop > | mPollLoop |
Additional Inherited Members | |
Public Types inherited from IDobbyRdkPlugin | |
enum | HintFlags : unsigned { PostInstallationFlag = (1 << 0) , PreCreationFlag = (1 << 1) , CreateRuntimeFlag = (1 << 2) , CreateContainerFlag = (1 << 3) , PostStartFlag = (1 << 5) , PostHaltFlag = (1 << 6) , PostStopFlag = (1 << 7) , Unknown = 0 } |
Bit flags that should be returned by hookHints. More... | |
Dobby Logging plugin.
LoggingPlugin::LoggingPlugin | ( | std::shared_ptr< rt_dobby_schema > & | containerConfig, |
const std::shared_ptr< DobbyRdkPluginUtils > & | utils, | ||
const std::string & | rootfsPath | ||
) |
Constructor - called when plugin is loaded by PluginLauncher.
Do not change the parameters for this constructor - must match C methods created by REGISTER_RDK_PLUGIN macro
Note plugin name is not case sensitive
|
private |
Constructs an instance of the requested sink.
[in] | sinkType | The type of sink to be constructed |
|
overridevirtual |
Dump the contents of a file descriptor to the log sink.
Will block until the contents of the fd has been written to the log
[in] | bufferFd | The file descriptor to read from |
Implements IDobbyRdkLoggingPlugin.
|
overridevirtual |
Should return the names of the plugins this plugin depends on.
This can be used to determine the order in which the plugins should be processed when running hooks.
Reimplemented from DobbyLoggerBase.
|
overridevirtual |
Set the bit flags for which hooks we're going to use.
This plugin uses all the hooks so set all the flags
Implements IDobbyRdkPlugin.
|
inlineoverridevirtual |
Should return the name of the plugin.
Implements IDobbyRdkPlugin.
|
overridevirtual |
Adds the necessary poll source(s) to the provided pollLoop instance based on the logging sink specified in the container config.
[in] | fd | The file descriptor we need to read from (i.e. the container tty) |
[in] | pollLoop | The poll loop the sources should be added to |
Implements IDobbyRdkLoggingPlugin.