////////////////////////////////////////////////////////////////////////////////////////////////////
// NoesisGUI - http://www.noesisengine.com
// Copyright (c) 2013 Noesis Technologies S.L. All Rights Reserved.
////////////////////////////////////////////////////////////////////////////////////////////////////


#include <NsCore/TypeOf.h>
#include <NsCore/StringUtils.h>
#include <NsCore/Symbol.h>


namespace Noesis
{

////////////////////////////////////////////////////////////////////////////////////////////////////
template<class T> inline const char* IdOf()
{
    return TypeOf<T>()->GetName();
}

////////////////////////////////////////////////////////////////////////////////////////////////////
inline Symbol IdOf(const char* str0, const char* str1)
{
    char str[512];
    StrCopy(str, 512, str0);
    StrAppend(str, 512, str1);

    return Symbol(str);
}

////////////////////////////////////////////////////////////////////////////////////////////////////
inline Symbol IdOf(const char* str0, const char* str1, const char* str2)
{
    char str[512];
    StrCopy(str, 512, str0);
    StrAppend(str, 512, str1);
    StrAppend(str, 512, str2);

    return Symbol(str);
}

}
