StyleCop clean SyncReport
This commit is contained in:
@@ -29,6 +29,21 @@ namespace OpenRA.Network
|
||||
readonly Report[] syncReports = new Report[NumSyncReports];
|
||||
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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
foreach (var r in syncReports)
|
||||
@@ -182,11 +182,10 @@ namespace OpenRA.Network
|
||||
"Invalid Property: " + prop.DeclaringType.FullName + "." + prop.Name);
|
||||
|
||||
var sync = Expression.Convert(syncParam, type);
|
||||
MemberToStringFunctions = fields.Select(
|
||||
fi => MemberToString(Expression.Field(sync, fi), fi.FieldType, fi.Name))
|
||||
.Concat(properties.Select(
|
||||
pi => MemberToString(Expression.Property(sync, pi), pi.PropertyType, pi.Name))
|
||||
).ToArray();
|
||||
MemberToStringFunctions = fields
|
||||
.Select(fi => MemberToString(Expression.Field(sync, fi), fi.FieldType, fi.Name))
|
||||
.Concat(properties.Select(pi => MemberToString(Expression.Property(sync, pi), pi.PropertyType, 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);
|
||||
Expression getString;
|
||||
if (memberType.IsValueType)
|
||||
// (ISync sync) => ((TSync)sync).Foo.ToString()
|
||||
getString = Expression.Call(getMember, toString);
|
||||
else
|
||||
{
|
||||
@@ -210,6 +208,7 @@ namespace OpenRA.Network
|
||||
var nullMember = Expression.Constant(null, memberType);
|
||||
getString = Expression.Condition(Expression.Equal(member, nullMember), nullString, getString);
|
||||
}
|
||||
|
||||
return Expression.Lambda<Func<ISync, string>>(getString, name, new[] { syncParam }).Compile();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user