JD2022-TU1/main/extern/dtest/dtcore/inc/dtresolvable.h

42 lines
No EOL
1.8 KiB
C++

#pragma once
#include "dtcore/inc/dtstream.h"
namespace dt
{
enum ResolvableTypes
{
ResolvableType_None = 0x00,
ResolvableType_Environment = 0x01,
ResolvableType_Custom = 0x02,
ResolvableType_Argument = 0x04,
ResolvableType_Os = 0x08
};
class Resolvable : public Serializable
{
public:
DT_CORE_DLL_ENTRY Resolvable();
DT_CORE_DLL_ENTRY virtual String GetDecoratedName() const = 0;
DT_CORE_DLL_ENTRY virtual const Strings& GetPlatformFilters() const { return m_EmptyStrings; }
DT_CORE_DLL_ENTRY virtual const Strings& GetConfigFilters() const { return m_EmptyStrings; }
DT_CORE_DLL_ENTRY virtual const Strings& GetDeploymentFilters() const { return m_EmptyStrings; }
DT_CORE_DLL_ENTRY virtual const Strings& GetProfileFilters() const { return m_EmptyStrings; }
DT_CORE_DLL_ENTRY virtual const Vector<AgentIndex>& GetAgentFilters() const { return m_EmptyS32Vector; }
DT_CORE_DLL_ENTRY virtual const Strings& GetConditionFilters() const { return m_EmptyStrings; }
DT_CORE_DLL_ENTRY virtual const Strings& GetTestNameFilters() const { return m_EmptyStrings; }
DT_CORE_DLL_ENTRY virtual const String& GetOriginFile() const = 0;
DT_CORE_DLL_ENTRY virtual int GetOriginLine() const = 0;
DT_CORE_DLL_ENTRY bool AnyTypesResolved() const { return m_ResolvableTypesResolved != ResolvableType_None; }
DT_CORE_DLL_ENTRY bool AreTypesResolved(int mask) const { return (m_ResolvableTypesResolved & mask) == mask; }
DT_CORE_DLL_ENTRY void ResolveTypes(int mask) { m_ResolvableTypesResolved |= mask; }
private:
DT_STATIC_DECLARE_IF_NO_ITERATOR_DEBUG(Vector<AgentIndex> m_EmptyS32Vector);
DT_STATIC_DECLARE_IF_NO_ITERATOR_DEBUG(Strings m_EmptyStrings);
int m_ResolvableTypesResolved;
};
}