Index: src/libchcore/IColumnsDefinition.h =================================================================== diff -u -N -r4fe995b304ea342b50293f92d3c1992b43b820f7 -ra4635addad389b9e117679437a3e1b64a739ea96 --- src/libchcore/IColumnsDefinition.h (.../IColumnsDefinition.h) (revision 4fe995b304ea342b50293f92d3c1992b43b820f7) +++ src/libchcore/IColumnsDefinition.h (.../IColumnsDefinition.h) (revision a4635addad389b9e117679437a3e1b64a739ea96) @@ -1,82 +1,82 @@ -// ============================================================================ -// Copyright (C) 2001-2014 by Jozef Starosczyk -// ixen@copyhandler.com -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU Library General Public License -// (version 2) as published by the Free Software Foundation; -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU Library General Public -// License along with this program; if not, write to the -// Free Software Foundation, Inc., -// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// ============================================================================ -#ifndef __ICOLUMNSDEFINITION_H__ -#define __ICOLUMNSDEFINITION_H__ - -#include "libchcore.h" -#include "TString.h" -#include "TPath.h" - -namespace chcore -{ - class LIBCHCORE_API IColumnsDefinition - { - public: - enum ETypes - { - eType_bool, - eType_short, - eType_ushort, - eType_int, - eType_uint, - eType_long, - eType_ulong, - eType_longlong, - eType_ulonglong, - eType_double, - eType_string, - eType_path, - - eType_Last - }; - - public: - virtual ~IColumnsDefinition(); - - virtual size_t AddColumn(const TString& strColumnName, ETypes eColType) = 0; - virtual void Clear() = 0; - - virtual size_t GetColumnIndex(const wchar_t* strColumnName) = 0; - virtual const TString& GetColumnName(size_t stIndex) const = 0; - virtual size_t GetCount() const = 0; - virtual bool IsEmpty() const = 0; - }; - - template struct ColumnType {}; - template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_bool; }; - template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_short; }; - template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_ushort; }; - template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_int; }; - template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_uint; }; - template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_long; }; - template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_ulong; }; - template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_longlong; }; - template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_ulonglong; }; - template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_double; }; - template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_string; }; - template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_path; }; - - template - IColumnsDefinition::ETypes GetColumnType(const T&) - { - return ColumnType::value; - } -} - -#endif +// ============================================================================ +// Copyright (C) 2001-2014 by Jozef Starosczyk +// ixen@copyhandler.com +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU Library General Public License +// (version 2) as published by the Free Software Foundation; +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU Library General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., +// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +// ============================================================================ +#ifndef __ICOLUMNSDEFINITION_H__ +#define __ICOLUMNSDEFINITION_H__ + +#include "libchcore.h" +#include "TString.h" +#include "TPath.h" + +namespace chcore +{ + class LIBCHCORE_API IColumnsDefinition + { + public: + enum ETypes + { + eType_bool, + eType_short, + eType_ushort, + eType_int, + eType_uint, + eType_long, + eType_ulong, + eType_longlong, + eType_ulonglong, + eType_double, + eType_string, + eType_path, + + eType_Last + }; + + public: + virtual ~IColumnsDefinition(); + + virtual size_t AddColumn(const TString& strColumnName, ETypes eColType) = 0; + virtual void Clear() = 0; + + virtual size_t GetColumnIndex(const wchar_t* strColumnName) = 0; + virtual const TString& GetColumnName(size_t stIndex) const = 0; + virtual size_t GetCount() const = 0; + virtual bool IsEmpty() const = 0; + }; + + template struct ColumnType {}; + template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_bool; }; + template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_short; }; + template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_ushort; }; + template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_int; }; + template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_uint; }; + template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_long; }; + template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_ulong; }; + template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_longlong; }; + template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_ulonglong; }; + template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_double; }; + template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_string; }; + template<> struct ColumnType { static const IColumnsDefinition::ETypes value = IColumnsDefinition::eType_path; }; + + template + IColumnsDefinition::ETypes GetColumnType(const T&) + { + return ColumnType::value; + } +} + +#endif