Commit d8e323c7 authored by yangxiaodong's avatar yangxiaodong

refactor.

parent 3e373129
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Threading.Tasks;
using System.Collections.Concurrent;
using Cap.Consistency.Extensions;
using Cap.Consistency.Abstractions;
namespace Cap.Consistency
{
public class QMessageFinder
{
public ConcurrentDictionary<string, ConsumerExecutorDescriptor> GetQMessageMethodInfo(params Type[] serviceType) {
var qMessageTypes = new ConcurrentDictionary<string, ConsumerExecutorDescriptor>();
foreach (var type in serviceType) {
foreach (var method in type.GetTypeInfo().DeclaredMethods) {
var messageMethodInfo = new ConsumerExecutorDescriptor();
if (method.IsPropertyBinding()) {
continue;
}
var qMessageAttr = method.GetCustomAttribute<QMessageAttribute>();
if (qMessageAttr == null) {
continue;
}
messageMethodInfo.ImplType = method.DeclaringType;
messageMethodInfo.MethodInfo = method;
qMessageTypes.AddOrUpdate(qMessageAttr.MessageName, messageMethodInfo, (x, y) => y);
}
}
return qMessageTypes;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Threading.Tasks;
namespace Cap.Consistency
{
public class TopicInfo
{
public TopicInfo(string topicName) : this(topicName, 0) {}
public TopicInfo(string topicName, int partition) : this(topicName, partition, 0) {}
public TopicInfo(string topicName, int partition, long offset) {
Name = topicName;
Offset = offset;
Partition = partition;
}
public string Name { get; }
public int Partition { get; }
public long Offset { get; }
public bool IsPartition { get { return Partition == 0; } }
public bool IsOffset { get { return Offset == 0; } }
public override string ToString() {
return Name;
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment