ダンプモード
FAST コネクターはダンプモードで利用できます。この場合、データは実際のネットワーク接続からではなく、アプリ UDP Dumper によって蓄積されたファイルから取得されます。
ダンプモードを有効にするには、接続前にダンプメソッド IFastDialect.Dump(System.Collections.Generic.IDictionary<Ecng.Net.MulticastSourceAddress,System.Collections.Generic.IEnumerable<System.IO.Stream>> dumpFiles ) を通じてファイルを渡します。
// ... コネクターの初期化
var fastAdapter = (FastMessageAdapter)connector.Adapters.InnerAdapters.First();
IEnumerable<string> dumpFiles = Directory.GetFiles(dumpDir, "*.bin");
var dict = dumpFiles.Select(f =>
{
var name = Path.GetFileNameWithoutExtension(f);
var parts = name.Split('_').Skip(1).ToArray();
var groupAddr = parts[0];
var port = parts[1];
var sourceAddr = parts[2];
if (sourceAddr.IsEmpty())
sourceAddr = null;
return Tuple.Create(new MulticastSourceAddress
{
GroupAddress = groupAddr.To<IPAddress>(),
Port = port.To<int>(),
SourceAddress = sourceAddr.To<IPAddress>(),
}, f);
}).GroupBy(t => t.Item1).ToDictionary(g => g.Key, g => (IEnumerable<Stream>)g.Select(p => File.OpenRead(p.Item2)).ToArray());
fastAdapter.DialectSettings.Dump(dict);
// ...
connector.Connect();
その後は、コネクターがネットワークからデータを受信している場合と同じように、通常どおり処理が進みます。