本文整理汇总了C#中MembershipEntry.AddSuspector方法的典型用法代码示例。如果您正苦于以下问题:C# MembershipEntry.AddSuspector方法的具体用法?C# MembershipEntry.AddSuspector怎么用?C# MembershipEntry.AddSuspector使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MembershipEntry
的用法示例。
在下文中一共展示了MembershipEntry.AddSuspector方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateMembershipEntry
private static Tuple<MembershipEntry, string, int, string> CreateMembershipEntry(IDataRecord record)
{
//TODO: This is a bit of hack way to check in the current version if there's membership data or not, but if there's a start time, there's member.
DateTime? startTime = record.GetValueOrDefault<DateTime?>("StartTime");
MembershipEntry entry = null;
if(startTime.HasValue)
{
int port = record.GetValue<int>("Port");
int generation = record.GetValue<int>("Generation");
string address = record.GetValue<string>("Address");
entry = new MembershipEntry
{
SiloAddress = SiloAddress.New(new IPEndPoint(IPAddress.Parse(address), port), generation),
HostName = record.GetValueOrDefault<string>("HostName"),
Status = record.GetValue<SiloStatus>("Status"),
ProxyPort = record.GetValueOrDefault<int>("ProxyPort"),
RoleName = record.GetValue<string>("RoleName"),
InstanceName = record.GetValue<string>("InstanceName"),
UpdateZone = record.GetValue<int>("UpdateZone"),
StartTime = startTime.GetValueOrDefault(),
FaultZone = record.GetValueOrDefault<int>("FaultZone"),
IAmAliveTime = record.GetValueOrDefault<DateTime>("IAmAliveTime")
};
//TODO: Refactor the database with regard to these.
string suspectingSilo = record.GetValueOrDefault<string>("SuspectingSilos");
string suspectingTime = record.GetValueOrDefault<string>("SuspectingTimes");
List<SiloAddress> suspectingSilos = new List<SiloAddress>();
List<DateTime> suspectingTimes = new List<DateTime>();
if(!string.IsNullOrWhiteSpace(suspectingSilo))
{
string[] silos = suspectingSilo.Split('|');
foreach(string silo in silos)
{
suspectingSilos.Add(SiloAddress.FromParsableString(silo));
}
}
if(!string.IsNullOrWhiteSpace(suspectingTime))
{
string[] times = suspectingTime.Split('|');
foreach(string time in times)
{
suspectingTimes.Add(TraceLogger.ParseDate(time));
}
}
if(suspectingSilos.Count != suspectingTimes.Count)
{
throw new OrleansException(string.Format("SuspectingSilos.Length of {0} as read from SQL table is not equal to SuspectingTimes.Length of {1}", suspectingSilos.Count, suspectingTimes.Count));
}
for(int i = 0; i < suspectingSilos.Count; ++i)
{
entry.AddSuspector(suspectingSilos[i], suspectingTimes[i]);
}
}
string etag = Convert.ToBase64String(record.GetValue<byte[]>("ETag"));
int tableVersion = (int)record.GetValueOrDefault<long>("Version");
string versionETag = Convert.ToBase64String(record.GetValueOrDefault<byte[]>("VersionETag"));
return Tuple.Create(entry, etag, tableVersion, versionETag);
}
示例2: Parse
private static MembershipEntry Parse(SiloInstanceTableEntry tableEntry)
{
var parse = new MembershipEntry
{
HostName = tableEntry.HostName,
Status = (SiloStatus) Enum.Parse(typeof (SiloStatus), tableEntry.Status)
};
if (!string.IsNullOrEmpty(tableEntry.ProxyPort))
parse.ProxyPort = int.Parse(tableEntry.ProxyPort);
parse.IsPrimary = false; // there are no primaries with in Azure table.
int port = 0;
if (!string.IsNullOrEmpty(tableEntry.Port))
int.TryParse(tableEntry.Port, out port);
int gen = 0;
if (!string.IsNullOrEmpty(tableEntry.Generation))
int.TryParse(tableEntry.Generation, out gen);
parse.SiloAddress = SiloAddress.New(new IPEndPoint(IPAddress.Parse(tableEntry.Address), port), gen);
parse.RoleName = tableEntry.RoleName;
parse.InstanceName = tableEntry.InstanceName;
if (!string.IsNullOrEmpty(tableEntry.UpdateZone))
parse.UpdateZone = int.Parse(tableEntry.UpdateZone);
if (!string.IsNullOrEmpty(tableEntry.FaultZone))
parse.FaultZone = int.Parse(tableEntry.FaultZone);
parse.StartTime = !string.IsNullOrEmpty(tableEntry.StartTime) ?
TraceLogger.ParseDate(tableEntry.StartTime) : default(DateTime);
parse.IAmAliveTime = !string.IsNullOrEmpty(tableEntry.IAmAliveTime) ?
TraceLogger.ParseDate(tableEntry.IAmAliveTime) : default(DateTime);
var suspectingSilos = new List<SiloAddress>();
var suspectingTimes = new List<DateTime>();
if (!string.IsNullOrEmpty(tableEntry.SuspectingSilos))
{
string[] silos = tableEntry.SuspectingSilos.Split('|');
foreach (string silo in silos)
{
suspectingSilos.Add(SiloAddress.FromParsableString(silo));
}
}
if (!string.IsNullOrEmpty(tableEntry.SuspectingTimes))
{
string[] times = tableEntry.SuspectingTimes.Split('|');
foreach (string time in times)
suspectingTimes.Add(TraceLogger.ParseDate(time));
}
if (suspectingSilos.Count != suspectingTimes.Count)
throw new OrleansException(String.Format("SuspectingSilos.Length of {0} as read from Azure table is not eqaul to SuspectingTimes.Length of {1}", suspectingSilos.Count, suspectingTimes.Count));
for (int i = 0; i < suspectingSilos.Count; i++)
parse.AddSuspector(suspectingSilos[i], suspectingTimes[i]);
return parse;
}
示例3: ConvertFromRow
private static MembershipEntry ConvertFromRow(SqlDataReader results, out string eTag, out int tableVersion, out string versionETag)
{
var entry = new MembershipEntry();
int port = results.GetInt32(PortIdx);
int gen = results.GetInt32(GenerationIdx);
entry.SiloAddress = SiloAddress.New(new IPEndPoint(IPAddress.Parse(results.GetString(AddressIdx)), port), gen);
entry.HostName = results.GetString(HostNameIdx);
entry.Status = (SiloStatus)results.GetInt32(StatusIdx);
if (!results.GetSqlInt32(ProxyPortIdx).IsNull)
entry.ProxyPort = results.GetInt32(ProxyPortIdx);
if (!results.GetSqlBoolean(PrimaryIdx).IsNull)
entry.IsPrimary = results.GetBoolean(PrimaryIdx);
entry.RoleName = results.GetString(RoleNameIdx);
entry.InstanceName = results.GetString(InstanceNameIdx);
if (!results.GetSqlInt32(UpdateZoneIdx).IsNull)
entry.UpdateZone = results.GetInt32(UpdateZoneIdx);
if (!results.GetSqlInt32(FaultZoneIdx).IsNull)
entry.FaultZone = results.GetInt32(FaultZoneIdx);
if (!results.GetSqlDateTime(StartTimeIdx).IsNull)
entry.StartTime = results.GetDateTime(StartTimeIdx);
if (!results.GetSqlDateTime(IAmAliveTimeIdx).IsNull)
entry.IAmAliveTime = results.GetDateTime(IAmAliveTimeIdx);
eTag = results.GetString(ETagIdx);
tableVersion = (int)results.GetInt64(VersionIdx);
versionETag = results.GetString(VersionETagIdx);
var suspectingSilosString = results.GetSqlString(SuspectingSilosIdx);
var suspectingTimesString = results.GetSqlString(SuspectingTimesIdx);
List<SiloAddress> suspectingSilos = new List<SiloAddress>();
List<DateTime> suspectingTimes = new List<DateTime>();
if (!suspectingSilosString.IsNull && !string.IsNullOrEmpty(suspectingSilosString.Value))
{
string[] silos = suspectingSilosString.Value.Split('|');
foreach (string silo in silos)
{
suspectingSilos.Add(SiloAddress.FromParsableString(silo));
}
}
if (!suspectingTimesString.IsNull && !string.IsNullOrEmpty(suspectingTimesString.Value))
{
string[] times = suspectingTimesString.Value.Split('|');
foreach (string time in times)
{
suspectingTimes.Add(TraceLogger.ParseDate(time));
}
}
if (suspectingSilos.Count != suspectingTimes.Count)
throw new OrleansException(String.Format("SuspectingSilos.Length of {0} as read from SQL table is not eqaul to SuspectingTimes.Length of {1}", suspectingSilos.Count, suspectingTimes.Count));
for (int i = 0; i < suspectingSilos.Count; i++)
{
entry.AddSuspector(suspectingSilos[i], suspectingTimes[i]);
}
return entry;
}
示例4: Parse
private static MembershipEntry Parse(SiloInstanceTableEntry tableEntry)
{
var parse = new MembershipEntry
{
HostName = tableEntry.HostName,
Status = (SiloStatus) Enum.Parse(typeof (SiloStatus), tableEntry.Status)
};
if (!string.IsNullOrEmpty(tableEntry.ProxyPort))
parse.ProxyPort = int.Parse(tableEntry.ProxyPort);
int port = 0;
if (!string.IsNullOrEmpty(tableEntry.Port))
int.TryParse(tableEntry.Port, out port);
int gen = 0;
if (!string.IsNullOrEmpty(tableEntry.Generation))
int.TryParse(tableEntry.Generation, out gen);
parse.SiloAddress = SiloAddress.New(new IPEndPoint(IPAddress.Parse(tableEntry.Address), port), gen);
parse.RoleName = tableEntry.RoleName;
if (!string.IsNullOrEmpty(tableEntry.SiloName))
{
parse.SiloName = tableEntry.SiloName;
}else if (!string.IsNullOrEmpty(tableEntry.InstanceName))
{
// this is for backward compatability: in a mixed cluster of old and new version,
// some entries will have the old InstanceName column.
parse.SiloName = tableEntry.InstanceName;
}
if (!string.IsNullOrEmpty(tableEntry.UpdateZone))
parse.UpdateZone = int.Parse(tableEntry.UpdateZone);
if (!string.IsNullOrEmpty(tableEntry.FaultZone))
parse.FaultZone = int.Parse(tableEntry.FaultZone);
parse.StartTime = !string.IsNullOrEmpty(tableEntry.StartTime) ?
LogFormatter.ParseDate(tableEntry.StartTime) : default(DateTime);
parse.IAmAliveTime = !string.IsNullOrEmpty(tableEntry.IAmAliveTime) ?
LogFormatter.ParseDate(tableEntry.IAmAliveTime) : default(DateTime);
var suspectingSilos = new List<SiloAddress>();
var suspectingTimes = new List<DateTime>();
if (!string.IsNullOrEmpty(tableEntry.SuspectingSilos))
{
string[] silos = tableEntry.SuspectingSilos.Split('|');
foreach (string silo in silos)
{
suspectingSilos.Add(SiloAddress.FromParsableString(silo));
}
}
if (!string.IsNullOrEmpty(tableEntry.SuspectingTimes))
{
string[] times = tableEntry.SuspectingTimes.Split('|');
foreach (string time in times)
suspectingTimes.Add(LogFormatter.ParseDate(time));
}
if (suspectingSilos.Count != suspectingTimes.Count)
throw new OrleansException(String.Format("SuspectingSilos.Length of {0} as read from Azure table is not eqaul to SuspectingTimes.Length of {1}", suspectingSilos.Count, suspectingTimes.Count));
for (int i = 0; i < suspectingSilos.Count; i++)
parse.AddSuspector(suspectingSilos[i], suspectingTimes[i]);
return parse;
}
示例5: Parse
private MembershipEntry Parse(SiloInstanceRecord tableEntry)
{
var parse = new MembershipEntry
{
HostName = tableEntry.HostName,
Status = (SiloStatus)tableEntry.Status
};
parse.ProxyPort = tableEntry.ProxyPort;
parse.SiloAddress = SiloAddress.New(new IPEndPoint(IPAddress.Parse(tableEntry.Address), tableEntry.Port), tableEntry.Generation);
if (!string.IsNullOrEmpty(tableEntry.SiloName))
{
parse.SiloName = tableEntry.SiloName;
}
parse.StartTime = !string.IsNullOrEmpty(tableEntry.StartTime) ?
LogFormatter.ParseDate(tableEntry.StartTime) : default(DateTime);
parse.IAmAliveTime = !string.IsNullOrEmpty(tableEntry.IAmAliveTime) ?
LogFormatter.ParseDate(tableEntry.IAmAliveTime) : default(DateTime);
var suspectingSilos = new List<SiloAddress>();
var suspectingTimes = new List<DateTime>();
if (!string.IsNullOrEmpty(tableEntry.SuspectingSilos))
{
string[] silos = tableEntry.SuspectingSilos.Split('|');
foreach (string silo in silos)
{
suspectingSilos.Add(SiloAddress.FromParsableString(silo));
}
}
if (!string.IsNullOrEmpty(tableEntry.SuspectingTimes))
{
string[] times = tableEntry.SuspectingTimes.Split('|');
foreach (string time in times)
suspectingTimes.Add(LogFormatter.ParseDate(time));
}
if (suspectingSilos.Count != suspectingTimes.Count)
throw new OrleansException(String.Format("SuspectingSilos.Length of {0} as read from Azure table is not eqaul to SuspectingTimes.Length of {1}", suspectingSilos.Count, suspectingTimes.Count));
for (int i = 0; i < suspectingSilos.Count; i++)
parse.AddSuspector(suspectingSilos[i], suspectingTimes[i]);
return parse;
}