greenplumn CTaskContext 代码
文件路径:/src/backend/gporca/libgpos/include/gpos/task/CTaskContext.h
/---------------------------------------------------------------------------
/ Greenplum Database
/ Copyright (C) 2008 Greenplum, Inc.
/
/ @filename:
/ CTaskContext.h
/
/ @doc:
/ Context object for task; holds configurable state of worker, e.g.
/ GUCs, trace options, output streams etc.; by default inherited from
/ parent task
/---------------------------------------------------------------------------
#ifndef GPOS_CTaskContext_H
#define GPOS_CTaskContext_H
#include "gpos/base.h"
#include "gpos/common/CBitSet.h"
namespace gpos
{
class CTaskContext
{
/ trace flag iterator needs access to trace vector
friend class CTraceFlagIter;
private:
/ trace vector
CBitSet *m_bitset;
/ output log abstraction
ILogger *m_log_out;
/ error log abstraction
ILogger *m_log_err;
/ locale of messages
ELocale m_locale;
public:
/ basic ctor; used only for the main worker
CTaskContext(CMemoryPool *mp);
/ copy ctor
/ used to inherit parent task's context
CTaskContext(CMemoryPool *mp, const CTaskContext &task_ctxt);
/ dtor
~CTaskContext();
/ accessors
inline ILogger *
GetOutputLogger() const
{
return m_log_out;
}
inline ILogger *
GetErrorLogger() const
{
return m_log_err;
}
void
SetLogOut(ILogger *log_out)
{
GPOS_ASSERT(nullptr != log_out);
m_log_out = log_out;
}
void
SetLogErr(ILogger *log_err)
{
GPOS_ASSERT(nullptr != log_err);
m_log_err = log_err;
}
/ set trace flag
BOOL SetTrace(ULONG trace, BOOL val);
/ test if tracing on
inline BOOL
IsTraceSet(ULONG trace)
{
return m_bitset->Get(trace);
}
/ locale
ELocale
Locale() const
{
return m_locale;
}
void
SetLocale(ELocale locale)
{
m_locale = locale;
}
CBitSet *
copy_trace_flags(CMemoryPool *mp) const
{
return GPOS_NEW(mp) CBitSet(mp, *m_bitset);
}
}; / class CTaskContext
} / namespace gpos
#endif / !GPOS_CTaskContext_H
/ EOF
相关信息
相关文章
greenplumn CAutoSuspendAbort 源码
greenplumn CTaskLocalStorage 源码
greenplumn CTaskLocalStorageObject 源码