54 lines
1013 B
C++

//----------------------------------------------------------------------------
//
// Copyright (C) Intel Corporation, 2007 - 2008.
//
// File: ConfigElement.h
//
// Contents: Defines elements that contain data members of different types
//
// Notes:
//----------------------------------------------------------------------------
#ifndef CONFIG_ELEMENT_H
#define CONFIG_ELEMENT_H
//------------------
// Classes
//------------------
/*
* Base element (purpose - a base for any Element<T>)
*/
class BaseElement
{
public:
// ctor
BaseElement() {}
// dtor
virtual ~BaseElement() {}
};
/*
* Wraps a class T type.
*/
template <class T>
class Element : public BaseElement
{
public:
// ctor
Element(const T &element) : element_(element) {}
// gets a pointer to the element that is wrapped.
T * getElement() { return &element_; }
Element() : element_() {};
private:
//--------------
// Data Members
//--------------
T element_;
};
#endif /* CONFIG_ELEMENT_H */