greenplumn CMemoryVisitorPrint 源码

  • 2022-08-18
  • 浏览 (323)

greenplumn CMemoryVisitorPrint 代码

文件路径:/src/backend/gporca/libgpos/include/gpos/memory/CMemoryVisitorPrint.h

//---------------------------------------------------------------------------
//	Greenplum Database
//	Copyright (C) 2008-2010 Greenplum Inc.
//	Copyright (C) 2011 EMC Corp.
//
//	@filename:
//		CMemoryVisitorPrint.h
//
//	@doc:
//		Memory object visitor that prints debug information for all allocated
//		objects inside a memory pool.
//
//	@owner:
//
//	@test:
//
//---------------------------------------------------------------------------
#ifndef GPOS_CMemoryVisitorPrint_H
#define GPOS_CMemoryVisitorPrint_H

#include "gpos/assert.h"
#include "gpos/memory/IMemoryVisitor.h"
#include "gpos/types.h"
#include "gpos/utils.h"

namespace gpos
{
// specialization of memory object visitor that prints out
// the debugging information to a stream
class CMemoryVisitorPrint : public IMemoryVisitor
{
private:
	// call counter for the visit function
	ULLONG m_visits;

	// stream used for writing debug information
	IOstream &m_os;

public:
	CMemoryVisitorPrint(CMemoryVisitorPrint &) = delete;

	// ctor
	CMemoryVisitorPrint(IOstream &os);

	// dtor
	~CMemoryVisitorPrint() override;

	// output information about a memory allocation
	void Visit(void *user_addr, SIZE_T user_size, void *total_addr,
			   SIZE_T total_size, const CHAR *alloc_filename,
			   const ULONG alloc_line, ULLONG alloc_seq_number,
			   CStackDescriptor *stack_desc) override;

	// visit counter accessor
	ULLONG
	GetNumVisits() const
	{
		return m_visits;
	}
};
}  // namespace gpos

#endif	// GPOS_CMemoryVisitorPrint_H

// EOF

相关信息

greenplumn 源码目录

相关文章

greenplumn CAutoMemoryPool 源码

greenplumn CCache 源码

greenplumn CCacheAccessor 源码

greenplumn CCacheEntry 源码

greenplumn CCacheFactory 源码

greenplumn CMemoryPool 源码

greenplumn CMemoryPoolManager 源码

greenplumn CMemoryPoolStatistics 源码

greenplumn CMemoryPoolTracker 源码

greenplumn IMemoryVisitor 源码

0  赞