Removes Report from Code/Editor
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>monroegm-disable-blank-issue-2
parent
9107af5af7
commit
06331dae37
@ -1,183 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) Contributors to the Open 3D Engine Project.
|
|
||||||
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: Apache-2.0 OR MIT
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
// Description : Generic report class, which contains arbitrary report entries.
|
|
||||||
|
|
||||||
#ifndef CRYINCLUDE_EDITOR_REPORT_H
|
|
||||||
#define CRYINCLUDE_EDITOR_REPORT_H
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
|
|
||||||
class IReportField
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual ~IReportField() {}
|
|
||||||
|
|
||||||
virtual const char* GetDescription() const = 0;
|
|
||||||
virtual const char* GetText() const = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename T, typename G>
|
|
||||||
class CReportField
|
|
||||||
: public IReportField
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
typedef T Object;
|
|
||||||
typedef G TextGetter;
|
|
||||||
|
|
||||||
CReportField(Object& object, const char* description, TextGetter& getter);
|
|
||||||
virtual const char* GetDescription() const;
|
|
||||||
virtual const char* GetText() const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
TextGetter m_getter;
|
|
||||||
string m_text;
|
|
||||||
string m_description;
|
|
||||||
};
|
|
||||||
|
|
||||||
class IReportRecord
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual ~IReportRecord() {}
|
|
||||||
virtual int GetFieldCount() const = 0;
|
|
||||||
virtual const char* GetFieldDescription(int fieldIndex) const = 0;
|
|
||||||
virtual const char* GetFieldText(int fieldIndex) const = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
class CReportRecord
|
|
||||||
: public IReportRecord
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
typedef T Object;
|
|
||||||
|
|
||||||
CReportRecord(Object& object);
|
|
||||||
virtual ~CReportRecord();
|
|
||||||
virtual int GetFieldCount() const;
|
|
||||||
virtual const char* GetFieldDescription(int fieldIndex) const;
|
|
||||||
virtual const char* GetFieldText(int fieldIndex) const;
|
|
||||||
template <typename G>
|
|
||||||
CReportField<Object, G>* AddField(const char* description, G& getter);
|
|
||||||
|
|
||||||
private:
|
|
||||||
Object m_object;
|
|
||||||
typedef std::vector<IReportField*> FieldContainer;
|
|
||||||
FieldContainer m_fields;
|
|
||||||
};
|
|
||||||
|
|
||||||
class CReport
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
~CReport();
|
|
||||||
template <typename T>
|
|
||||||
CReportRecord<T>* AddRecord(T& object);
|
|
||||||
int GetRecordCount() const;
|
|
||||||
IReportRecord* GetRecord(int recordIndex);
|
|
||||||
void Clear();
|
|
||||||
|
|
||||||
private:
|
|
||||||
typedef std::vector<IReportRecord*> RecordContainer;
|
|
||||||
RecordContainer m_records;
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename T, typename G>
|
|
||||||
inline CReportField<T, G>::CReportField(Object& object, const char* description, TextGetter& getter)
|
|
||||||
: m_getter(getter)
|
|
||||||
, m_description(description)
|
|
||||||
{
|
|
||||||
m_text = m_getter(object);
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename T, typename G>
|
|
||||||
inline const char* CReportField<T, G>::GetDescription() const
|
|
||||||
{
|
|
||||||
return m_description.c_str();
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename T, typename G>
|
|
||||||
inline const char* CReportField<T, G>::GetText() const
|
|
||||||
{
|
|
||||||
return m_text.c_str();
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
inline CReportRecord<T>::CReportRecord(Object& object)
|
|
||||||
: m_object(object)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
inline CReportRecord<T>::~CReportRecord()
|
|
||||||
{
|
|
||||||
for (FieldContainer::iterator it = m_fields.begin(); it != m_fields.end(); ++it)
|
|
||||||
{
|
|
||||||
delete (*it);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
inline int CReportRecord<T>::GetFieldCount() const
|
|
||||||
{
|
|
||||||
return m_fields.size();
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
inline const char* CReportRecord<T>::GetFieldDescription(int fieldIndex) const
|
|
||||||
{
|
|
||||||
return m_fields[fieldIndex]->GetDescription();
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
inline const char* CReportRecord<T>::GetFieldText(int fieldIndex) const
|
|
||||||
{
|
|
||||||
return m_fields[fieldIndex]->GetText();
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
template <typename G>
|
|
||||||
inline CReportField<T, G>* CReportRecord<T>::AddField(const char* description, G& getter)
|
|
||||||
{
|
|
||||||
CReportField<Object, G>* field = new CReportField<Object, G>(m_object, description, getter);
|
|
||||||
m_fields.push_back(field);
|
|
||||||
return field;
|
|
||||||
}
|
|
||||||
|
|
||||||
inline CReport::~CReport()
|
|
||||||
{
|
|
||||||
Clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
inline CReportRecord<T>* CReport::AddRecord(T& object)
|
|
||||||
{
|
|
||||||
CReportRecord<T>* record = new CReportRecord<T>(object);
|
|
||||||
m_records.push_back(record);
|
|
||||||
return record;
|
|
||||||
}
|
|
||||||
|
|
||||||
inline int CReport::GetRecordCount() const
|
|
||||||
{
|
|
||||||
return m_records.size();
|
|
||||||
}
|
|
||||||
|
|
||||||
inline IReportRecord* CReport::GetRecord(int recordIndex)
|
|
||||||
{
|
|
||||||
return m_records[recordIndex];
|
|
||||||
}
|
|
||||||
|
|
||||||
inline void CReport::Clear()
|
|
||||||
{
|
|
||||||
for (RecordContainer::iterator it = m_records.begin(); it != m_records.end(); ++it)
|
|
||||||
{
|
|
||||||
delete (*it);
|
|
||||||
}
|
|
||||||
m_records.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // CRYINCLUDE_EDITOR_REPORT_H
|
|
||||||
Loading…
Reference in New Issue