StyleCop clean SyncReport

This commit is contained in:
Matthias Mailänder
2014-11-01 07:52:41 +01:00
parent 7decbdeae0
commit 8e667304aa

View File

@@ -29,6 +29,21 @@ namespace OpenRA.Network
readonly Report[] syncReports = new Report[NumSyncReports]; readonly Report[] syncReports = new Report[NumSyncReports];
int curIndex = 0; int curIndex = 0;
static NamesValuesPair DumpSyncTrait(ISync sync)
{
var type = sync.GetType();
TypeInfo typeInfo;
lock (typeInfoCache)
typeInfo = typeInfoCache[type];
var values = new string[typeInfo.Names.Length];
var index = 0;
foreach (var func in typeInfo.MemberToStringFunctions)
values[index++] = func(sync);
return Pair.New(typeInfo.Names, values);
}
public SyncReport(OrderManager orderManager) public SyncReport(OrderManager orderManager)
{ {
this.orderManager = orderManager; this.orderManager = orderManager;
@@ -80,21 +95,6 @@ namespace OpenRA.Network
} }
} }
static NamesValuesPair DumpSyncTrait(ISync sync)
{
var type = sync.GetType();
TypeInfo typeInfo;
lock (typeInfoCache)
typeInfo = typeInfoCache[type];
var values = new string[typeInfo.Names.Length];
var index = 0;
foreach (var func in typeInfo.MemberToStringFunctions)
values[index++] = func(sync);
return Pair.New(typeInfo.Names, values);
}
internal void DumpSyncReport(int frame) internal void DumpSyncReport(int frame)
{ {
foreach (var r in syncReports) foreach (var r in syncReports)
@@ -182,11 +182,10 @@ namespace OpenRA.Network
"Invalid Property: " + prop.DeclaringType.FullName + "." + prop.Name); "Invalid Property: " + prop.DeclaringType.FullName + "." + prop.Name);
var sync = Expression.Convert(syncParam, type); var sync = Expression.Convert(syncParam, type);
MemberToStringFunctions = fields.Select( MemberToStringFunctions = fields
fi => MemberToString(Expression.Field(sync, fi), fi.FieldType, fi.Name)) .Select(fi => MemberToString(Expression.Field(sync, fi), fi.FieldType, fi.Name))
.Concat(properties.Select( .Concat(properties.Select(pi => MemberToString(Expression.Property(sync, pi), pi.PropertyType, pi.Name)))
pi => MemberToString(Expression.Property(sync, pi), pi.PropertyType, pi.Name)) .ToArray();
).ToArray();
Names = fields.Select(fi => fi.Name).Concat(properties.Select(pi => pi.Name)).ToArray(); Names = fields.Select(fi => fi.Name).Concat(properties.Select(pi => pi.Name)).ToArray();
} }
@@ -198,7 +197,6 @@ namespace OpenRA.Network
var toString = memberType.GetMethod("ToString", Type.EmptyTypes); var toString = memberType.GetMethod("ToString", Type.EmptyTypes);
Expression getString; Expression getString;
if (memberType.IsValueType) if (memberType.IsValueType)
// (ISync sync) => ((TSync)sync).Foo.ToString()
getString = Expression.Call(getMember, toString); getString = Expression.Call(getMember, toString);
else else
{ {
@@ -210,6 +208,7 @@ namespace OpenRA.Network
var nullMember = Expression.Constant(null, memberType); var nullMember = Expression.Constant(null, memberType);
getString = Expression.Condition(Expression.Equal(member, nullMember), nullString, getString); getString = Expression.Condition(Expression.Equal(member, nullMember), nullString, getString);
} }
return Expression.Lambda<Func<ISync, string>>(getString, name, new[] { syncParam }).Compile(); return Expression.Lambda<Func<ISync, string>>(getString, name, new[] { syncParam }).Compile();
} }
} }