diff --git a/src/Bridge/Class.cs b/src/Bridge/Class.cs index 9b0d04ef..b9430957 100644 --- a/src/Bridge/Class.cs +++ b/src/Bridge/Class.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; namespace Cxxi @@ -14,6 +13,10 @@ namespace Cxxi // Represents a base class of a C++ class. public class BaseClassSpecifier { + public Class Class { get; set; } + public AccessSpecifier Access { get; set; } + public bool IsVirtual { get; set; } + BaseClassSpecifier(Class @class, AccessSpecifier access, bool isVirtual = false) { @@ -21,10 +24,6 @@ namespace Cxxi Access = access; IsVirtual = isVirtual; } - - public Class Class { get; set; } - public AccessSpecifier Access { get; set; } - public bool IsVirtual { get; set; } } // Represents a C++ virtual function table. @@ -51,18 +50,6 @@ namespace Cxxi // Represents a C++ record declaration. public class Class : Declaration { - - public Class() - { - Bases = new List(); - Fields = new List(); - Properties = new List(); - Methods = new List(); - NestedClasses = new List(); - NestedEnums = new List(); - IsAbstract = false; - } - public List Bases; public List NestedClasses; public List NestedEnums; @@ -70,11 +57,6 @@ namespace Cxxi public List Properties; public List Methods; - public bool HasBase - { - get { return Bases.Count > 0; } - } - // True if the record is a POD (Plain Old Data) type. public bool IsPOD; @@ -82,9 +64,33 @@ namespace Cxxi public List Layouts { get; set; } // True if class only provides pure virtual methods. - public bool IsAbstract { get; set; } + public bool IsAbstract; + + // True if the type is to be treated as a union. + public bool IsUnion; + + // True if the type is to be treated as opaque. + public bool IsOpaque; public string TemplateName { get; set; } public string TemplateClassName { get; set; } + + public Class() + { + Bases = new List(); + Fields = new List(); + Properties = new List(); + Methods = new List(); + NestedClasses = new List(); + NestedEnums = new List(); + IsAbstract = false; + IsUnion = false; + IsOpaque = false; + } + + public bool HasBase + { + get { return Bases.Count > 0; } + } } } \ No newline at end of file