Gorgon Game Engine
Reflection.h File Reference
Include dependency graph for Reflection.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Constant
 This class represents a static constant. More...
 
struct  EnumType::ElementInitializer
 
class  EnumType
 Represents an enumeration type. More...
 
class  EventType
 Events allow an easy mechanism to program logic into actions instead of checking actions continuously. More...
 
class  Function
 Represents a function. More...
 
class  Type::Inheritance
 
class  InstanceMember
 This class represents an instance data member. More...
 
class  Library
 This class represents a library. More...
 
class  Member
 Represents a member of a type. More...
 
class  Namespace
 Namespace contains other static members as members. More...
 
class  Function::Overload
 Represents a function overload. More...
 
class  Parameter
 This class represents a function parameter description. More...
 
class  StaticDataMember
 
class  StaticMember
 This is the base class for all static members. More...
 
class  Type
 This class stores information about types. More...
 

Namespaces

 Gorgon
 Root namespace for Gorgon Game Engine.
 
 Gorgon::Scripting
 This namespace contains Gorgon Script parser and reflection facilities.
 
 Gorgon::Scripting::Types
 Allows easy and fast access to integral types.
 

Typedefs

using InstanceMemberList = Containers::Hashmap< std::string, const InstanceMember, GetNameOf< InstanceMember >, std::map, String::CaseInsensitiveLess >
 
typedef std::vector< Any > OptionList
 
using ParameterList = std::vector< Parameter >
 
using StaticMemberList = Containers::Hashmap< std::string, const StaticMember, GetNameOf< StaticMember >, std::map, String::CaseInsensitiveLess >
 

Enumerations

enum  Tag {
  OptionalTag, ReferenceTag, InputTag, MethodTag,
  RepeatTag, StretchTag, KeywordTag, PrivateTag,
  PublicTag, StaticTag, OperatorTag, ConstTag,
  ReturnsConstTag, VariableTag, ImplicitTag, AllowNullTag,
  ReadonlyTag
}
 Tags define behavior of reflection objects. More...
 

Functions

const Scripting::Type & Constant ()
 
 DefineEnumStringsCM (StaticMember, MemberType, {StaticMember::RegularType, "RegularType"}, {StaticMember::EventType, "EventType"}, {StaticMember::EnumType, "EnumType"}, {StaticMember::Namespace, "Namespace"}, {StaticMember::DataMember, "DataMember"}, {StaticMember::Function, "Function"}, {StaticMember::Constant, "Constant"},)
 
const Scripting::Type & EnumType ()
 
const Scripting::Type & EventType ()
 
const Scripting::Type & Function ()
 
template<class T_ >
std::string GetHelpOf (const T_ &val)
 
template<class T_ >
std::string GetNameOf (const T_ &val)
 
const Scripting::Type & InstanceMember ()
 
const Scripting::Type & Library ()
 
const Scripting::Type & Namespace ()
 
std::ostream & operator<< (std::ostream &out, const Type &type)
 Allows printing of types. More...
 
const Scripting::Type & StaticDataMember ()
 
const Scripting::Type & Type ()
 
Type * TypeType ()