54 lines
1013 B
C++
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 */ |