StyleCop clean SyncReport
This commit is contained in:
@@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user