mirror of
https://github.com/Ryujinx/GtkSharp.git
synced 2024-09-09 00:13:20 +02:00
2002-02-19 Mike Kestner <mkestner@speakeasy.net>
* generator/Statistics.cs : New. Gathers stats about generation. * generator/*.cs : Hook in the stat counters. svn path=/trunk/gtk-sharp/; revision=2491
This commit is contained in:
parent
179097cbf6
commit
ede9016e25
@ -1,3 +1,8 @@
|
|||||||
|
2002-02-19 Mike Kestner <mkestner@speakeasy.net>
|
||||||
|
|
||||||
|
* generator/Statistics.cs : New. Gathers stats about generation.
|
||||||
|
* generator/*.cs : Hook in the stat counters.
|
||||||
|
|
||||||
2002-02-18 Mike Kestner <mkestner@speakeasy.net>
|
2002-02-18 Mike Kestner <mkestner@speakeasy.net>
|
||||||
|
|
||||||
* generator/StructBase.cs (GenCtor): StudCapsify static method names.
|
* generator/StructBase.cs (GenCtor): StudCapsify static method names.
|
||||||
|
@ -63,16 +63,20 @@ namespace GtkSharp.Generation {
|
|||||||
|
|
||||||
switch (node.Name) {
|
switch (node.Name) {
|
||||||
case "field":
|
case "field":
|
||||||
|
Statistics.IgnoreCount++;
|
||||||
// GenField(member, table, sw);
|
// GenField(member, table, sw);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "callback":
|
case "callback":
|
||||||
|
Statistics.IgnoreCount++;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "constructor":
|
case "constructor":
|
||||||
|
Statistics.IgnoreCount++;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "method":
|
case "method":
|
||||||
|
Statistics.IgnoreCount++;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -87,6 +91,7 @@ namespace GtkSharp.Generation {
|
|||||||
|
|
||||||
sw.Flush();
|
sw.Flush();
|
||||||
sw.Close();
|
sw.Close();
|
||||||
|
Statistics.BoxedCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -86,13 +86,14 @@ namespace GtkSharp.Generation {
|
|||||||
if (node.Name != "member") {
|
if (node.Name != "member") {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
//FIXME: Generate the methods.
|
//FIXME: Generate the method.
|
||||||
XmlElement member = (XmlElement) node;
|
XmlElement member = (XmlElement) node;
|
||||||
}
|
}
|
||||||
|
|
||||||
sw.WriteLine ("}");
|
sw.WriteLine ("}");
|
||||||
sw.Flush();
|
sw.Flush();
|
||||||
sw.Close();
|
sw.Close();
|
||||||
|
Statistics.CBCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -29,6 +29,7 @@ namespace GtkSharp.Generation {
|
|||||||
gen.Generate (table);
|
gen.Generate (table);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Statistics.Report();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -105,6 +105,7 @@ namespace GtkSharp.Generation {
|
|||||||
|
|
||||||
sw.Flush();
|
sw.Flush();
|
||||||
sw.Close();
|
sw.Close();
|
||||||
|
Statistics.EnumCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -95,6 +95,7 @@ namespace GtkSharp.Generation {
|
|||||||
|
|
||||||
sw.Flush();
|
sw.Flush();
|
||||||
sw.Close();
|
sw.Close();
|
||||||
|
Statistics.IFaceCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -80,12 +80,14 @@ namespace GtkSharp.Generation {
|
|||||||
|
|
||||||
switch (node.Name) {
|
switch (node.Name) {
|
||||||
case "field":
|
case "field":
|
||||||
|
Statistics.IgnoreCount++;
|
||||||
//if (!GenField(member, table, sw)) {
|
//if (!GenField(member, table, sw)) {
|
||||||
// Console.WriteLine("in object " + CName);
|
// Console.WriteLine("in object " + CName);
|
||||||
//}
|
//}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "callback":
|
case "callback":
|
||||||
|
Statistics.IgnoreCount++;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "constructor":
|
case "constructor":
|
||||||
@ -150,6 +152,7 @@ namespace GtkSharp.Generation {
|
|||||||
|
|
||||||
sw.Flush();
|
sw.Flush();
|
||||||
sw.Close();
|
sw.Close();
|
||||||
|
Statistics.ObjectCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool GenProperty (XmlElement prop, SymbolTable table, StreamWriter sw, out String name)
|
public bool GenProperty (XmlElement prop, SymbolTable table, StreamWriter sw, out String name)
|
||||||
@ -174,6 +177,7 @@ namespace GtkSharp.Generation {
|
|||||||
} else if (table.IsInterface(c_type)) {
|
} else if (table.IsInterface(c_type)) {
|
||||||
// FIXME: Handle interface props properly.
|
// FIXME: Handle interface props properly.
|
||||||
Console.Write("Interface property detected ");
|
Console.Write("Interface property detected ");
|
||||||
|
Statistics.ThrottledCount++;
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
m_type = table.GetMarshalType(c_type);
|
m_type = table.GetMarshalType(c_type);
|
||||||
@ -181,6 +185,7 @@ namespace GtkSharp.Generation {
|
|||||||
|
|
||||||
if ((cs_type == "") || (m_type == "")) {
|
if ((cs_type == "") || (m_type == "")) {
|
||||||
Console.Write("Property has unknown Type {0} ", c_type);
|
Console.Write("Property has unknown Type {0} ", c_type);
|
||||||
|
Statistics.ThrottledCount++;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -210,6 +215,7 @@ namespace GtkSharp.Generation {
|
|||||||
sw.WriteLine("\t\t}");
|
sw.WriteLine("\t\t}");
|
||||||
sw.WriteLine();
|
sw.WriteLine();
|
||||||
|
|
||||||
|
Statistics.PropCount++;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -220,6 +226,7 @@ namespace GtkSharp.Generation {
|
|||||||
|
|
||||||
String marsh = SignalHandler.GetName(sig, table);
|
String marsh = SignalHandler.GetName(sig, table);
|
||||||
if (marsh == "") {
|
if (marsh == "") {
|
||||||
|
Statistics.ThrottledCount++;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -245,6 +252,7 @@ namespace GtkSharp.Generation {
|
|||||||
sw.WriteLine("\t\t}");
|
sw.WriteLine("\t\t}");
|
||||||
sw.WriteLine();
|
sw.WriteLine();
|
||||||
|
|
||||||
|
Statistics.SignalCount++;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
153
generator/Statistics.cs
Normal file
153
generator/Statistics.cs
Normal file
@ -0,0 +1,153 @@
|
|||||||
|
// Statistics.cs : Generation statistics class implementation
|
||||||
|
//
|
||||||
|
// Author: Mike Kestner <mkestner@speakeasy.net>
|
||||||
|
//
|
||||||
|
// <c> 2002 Mike Kestner
|
||||||
|
|
||||||
|
namespace GtkSharp.Generation {
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
|
||||||
|
public class Statistics {
|
||||||
|
|
||||||
|
static int cbs = 0;
|
||||||
|
static int enums = 0;
|
||||||
|
static int objects = 0;
|
||||||
|
static int structs = 0;
|
||||||
|
static int boxed = 0;
|
||||||
|
static int interfaces = 0;
|
||||||
|
static int methods = 0;
|
||||||
|
static int ctors = 0;
|
||||||
|
static int props = 0;
|
||||||
|
static int sigs = 0;
|
||||||
|
static int throttled = 0;
|
||||||
|
static int ignored = 0;
|
||||||
|
|
||||||
|
public static int CBCount {
|
||||||
|
get {
|
||||||
|
return cbs;
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
cbs = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int EnumCount {
|
||||||
|
get {
|
||||||
|
return enums;
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
enums = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int ObjectCount {
|
||||||
|
get {
|
||||||
|
return objects;
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
objects = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int StructCount {
|
||||||
|
get {
|
||||||
|
return structs;
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
structs = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int BoxedCount {
|
||||||
|
get {
|
||||||
|
return boxed;
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
boxed = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int CtorCount {
|
||||||
|
get {
|
||||||
|
return ctors;
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
ctors = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int MethodCount {
|
||||||
|
get {
|
||||||
|
return methods;
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
methods = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int PropCount {
|
||||||
|
get {
|
||||||
|
return props;
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
props = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int SignalCount {
|
||||||
|
get {
|
||||||
|
return sigs;
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
sigs = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int IFaceCount {
|
||||||
|
get {
|
||||||
|
return interfaces;
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
interfaces = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int ThrottledCount {
|
||||||
|
get {
|
||||||
|
return throttled;
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
throttled = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int IgnoreCount {
|
||||||
|
get {
|
||||||
|
return ignored;
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
ignored = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Report()
|
||||||
|
{
|
||||||
|
Console.WriteLine("Generation Summary:");
|
||||||
|
Console.WriteLine("\tEnums: " + enums);
|
||||||
|
Console.WriteLine("\tStructs: " + structs);
|
||||||
|
Console.WriteLine("\tBoxed: " + boxed);
|
||||||
|
Console.WriteLine("\tInterfaces: " + interfaces);
|
||||||
|
Console.WriteLine("\tCallbacks: " + cbs);
|
||||||
|
Console.WriteLine("\tObjects: " + objects);
|
||||||
|
Console.WriteLine("\tProperties: " + props);
|
||||||
|
Console.WriteLine("\tSignals: " + sigs);
|
||||||
|
Console.WriteLine("\tMethods: " + methods);
|
||||||
|
Console.WriteLine("\tConstructors: " + ctors);
|
||||||
|
Console.WriteLine("\tThrottled: " + throttled);
|
||||||
|
Console.WriteLine("\tIgnored: " + ignored);
|
||||||
|
Console.WriteLine("Total Nodes: " + (enums+structs+boxed+interfaces+cbs+objects+props+sigs+methods+ctors+throttled+ignored));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -62,6 +62,7 @@ namespace GtkSharp.Generation {
|
|||||||
call = "(" + call + ")";
|
call = "(" + call + ")";
|
||||||
} else {
|
} else {
|
||||||
Console.Write("ctor ");
|
Console.Write("ctor ");
|
||||||
|
Statistics.ThrottledCount++;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -99,6 +100,7 @@ namespace GtkSharp.Generation {
|
|||||||
sw.WriteLine("\t\t}");
|
sw.WriteLine("\t\t}");
|
||||||
sw.WriteLine();
|
sw.WriteLine();
|
||||||
|
|
||||||
|
Statistics.CtorCount++;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -117,6 +119,7 @@ namespace GtkSharp.Generation {
|
|||||||
|
|
||||||
if (cs_type == "") {
|
if (cs_type == "") {
|
||||||
Console.WriteLine ("Field has unknown Type {0}", c_type);
|
Console.WriteLine ("Field has unknown Type {0}", c_type);
|
||||||
|
Statistics.ThrottledCount++;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -146,12 +149,14 @@ namespace GtkSharp.Generation {
|
|||||||
call = "(Handle, " + call + ")";
|
call = "(Handle, " + call + ")";
|
||||||
} else {
|
} else {
|
||||||
Console.Write("method ");
|
Console.Write("method ");
|
||||||
|
Statistics.ThrottledCount++;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
XmlElement ret_elem = method["return-type"];
|
XmlElement ret_elem = method["return-type"];
|
||||||
if (ret_elem == null) {
|
if (ret_elem == null) {
|
||||||
Console.Write("Missing return type in method ");
|
Console.Write("Missing return type in method ");
|
||||||
|
Statistics.ThrottledCount++;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -161,6 +166,7 @@ namespace GtkSharp.Generation {
|
|||||||
String s_ret = table.GetCSType(rettype);
|
String s_ret = table.GetCSType(rettype);
|
||||||
if (m_ret == "" || s_ret == "") {
|
if (m_ret == "" || s_ret == "") {
|
||||||
Console.Write("rettype: " + rettype + " method ");
|
Console.Write("rettype: " + rettype + " method ");
|
||||||
|
Statistics.ThrottledCount++;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -184,6 +190,7 @@ namespace GtkSharp.Generation {
|
|||||||
sw.WriteLine("\t\t}");
|
sw.WriteLine("\t\t}");
|
||||||
sw.WriteLine();
|
sw.WriteLine();
|
||||||
|
|
||||||
|
Statistics.MethodCount++;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -63,16 +63,20 @@ namespace GtkSharp.Generation {
|
|||||||
|
|
||||||
switch (node.Name) {
|
switch (node.Name) {
|
||||||
case "field":
|
case "field":
|
||||||
|
Statistics.IgnoreCount++;
|
||||||
// GenField(member, table, sw);
|
// GenField(member, table, sw);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "callback":
|
case "callback":
|
||||||
|
Statistics.IgnoreCount++;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "constructor":
|
case "constructor":
|
||||||
|
Statistics.IgnoreCount++;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "method":
|
case "method":
|
||||||
|
Statistics.IgnoreCount++;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -87,6 +91,7 @@ namespace GtkSharp.Generation {
|
|||||||
|
|
||||||
sw.Flush();
|
sw.Flush();
|
||||||
sw.Close();
|
sw.Close();
|
||||||
|
Statistics.StructCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user