CMDProviderRelcache.h 1.6 KB
Newer Older
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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
//---------------------------------------------------------------------------
//	Greenplum Database
//	Copyright (C) 2011 EMC Corp.
//
//	@filename:
//		CMDProviderRelcache.h
//
//	@doc:
//		Relcache-based provider of metadata objects.
//
//	@test:
//
//
//---------------------------------------------------------------------------



#ifndef GPMD_CMDProviderRelcache_H
#define GPMD_CMDProviderRelcache_H

#include "gpos/base.h"
#include "gpos/string/CWStringBase.h"

#include "md/IMDId.h"
#include "md/IMDCacheObject.h"
#include "md/CSystemId.h"

#include "md/IMDProvider.h"

// fwd decl
namespace gpopt
{
	class CMDAccessor;
}

namespace gpmd
{
	using namespace gpos;

	//---------------------------------------------------------------------------
	//	@class:
	//		CMDProviderRelcache
	//
	//	@doc:
	//		Relcache-based provider of metadata objects.
	//
	//---------------------------------------------------------------------------
	class CMDProviderRelcache : public IMDProvider
	{
		private:
			// memory pool
			IMemoryPool *m_pmp;

			// private copy ctor
			CMDProviderRelcache(const CMDProviderRelcache&);

		public:
			// ctor/dtor
			explicit
			CMDProviderRelcache(IMemoryPool *pmp);

			~CMDProviderRelcache()
			{
			}

			// returns the DXL string of the requested metadata object
			virtual
			CWStringBase *PstrObject(IMemoryPool *pmp, CMDAccessor *pmda, IMDId *pmdid) const;

			// return the mdid for the requested type
			virtual
			IMDId *Pmdid
				(
				IMemoryPool *pmp,
				CSystemId sysid,
				IMDType::ETypeInfo eti
				)
				const
			{
				return PmdidTypeGPDB(pmp, sysid, eti);
			}

	};
}



#endif // !GPMD_CMDProviderRelcache_H

// EOF