本文整理匯總了C#中QuickFix.SessionSettings.Set方法的典型用法代碼示例。如果您正苦於以下問題:C# SessionSettings.Set方法的具體用法?C# SessionSettings.Set怎麽用?C# SessionSettings.Set使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類QuickFix.SessionSettings
的用法示例。
在下文中一共展示了SessionSettings.Set方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: Validate
public void Validate()
{
SessionSettings settings = new SessionSettings();
SessionID sessionID = new SessionID("FIX.4.2", "SenderCompID", "TargetCompID");
// ConnectionType not set
QuickFix.Dictionary dictionary = new QuickFix.Dictionary();
Assert.Throws<ConfigError>(delegate { settings.Set(sessionID, dictionary); });
// ConnectionType set to invalid value
dictionary.SetString(SessionSettings.CONNECTION_TYPE, "badvalue");
Assert.Throws<ConfigError>(delegate { settings.Set(sessionID, dictionary); });
// ConnectionType set to valid value
dictionary.SetString(SessionSettings.CONNECTION_TYPE, "initiator");
Assert.DoesNotThrow(delegate { settings.Set(sessionID, dictionary); });
// Invalid BeginString
sessionID = new SessionID("FIX4.2", "SenderCompID", "TargetCompID");
Assert.Throws<ConfigError>(delegate { settings.Set(sessionID, dictionary); });
}
示例2: StartEngine
void StartEngine(bool initiator)
{
TestApplication application = new TestApplication(LogonCallback, LogoffCallback);
IMessageStoreFactory storeFactory = new MemoryStoreFactory();
ILogFactory logFactory = new ScreenLogFactory(false, false, false);
SessionSettings settings = new SessionSettings();
if (initiator)
{
Dictionary defaults = new Dictionary();
defaults.SetString(SessionSettings.RECONNECT_INTERVAL, "1");
settings.Set(defaults);
settings.Set(CreateSessionID(StaticInitiatorCompID), CreateSessionConfig(StaticInitiatorCompID, true));
_initiator = new SocketInitiator(application, storeFactory, settings, logFactory);
_initiator.Start();
}
else
{
settings.Set(CreateSessionID(StaticAcceptorCompID), CreateSessionConfig(StaticAcceptorCompID, false));
_acceptor = new ThreadedSocketAcceptor(application, storeFactory, settings, logFactory);
_acceptor.Start();
}
}
示例3: ThreadSafeSetAndGet
public void ThreadSafeSetAndGet()
{
//Set up store
if (System.IO.Directory.Exists("store")) {
System.IO.Directory.Delete("store", true);
}
SessionID sessionId = new SessionID("FIX.4.2", "SENDERCOMP", "TARGETCOMP");
Dictionary config = new Dictionary();
config.SetString(SessionSettings.CONNECTION_TYPE, "initiator");
config.SetString(SessionSettings.FILE_STORE_PATH, "store");
SessionSettings settings = new SessionSettings();
settings.Set(sessionId, config);
FileStoreFactory factory = new FileStoreFactory(settings);
FileStore store = (FileStore)factory.Create(sessionId);
NullLog log = new NullLog();
//Set up sessionstate
SessionState state = new SessionState(log, 1) {MessageStore = store};
Hashtable errorsTable = Hashtable.Synchronized(new Hashtable());//used in more than 1 thread at a time
Hashtable setTable = new Hashtable(1000);//only used in 1 thread at a time
Hashtable getTable = new Hashtable(1000);//only used in 1 thread at a time
//Synchronously populate 1000 messages
for (int i = 1; i < 1000; i++) {
string msg = "msg" + i;
state.Set(i, msg);
setTable[i] = msg;
}
//Simulate background sending of messages that populate into the store
AutoResetEvent setEvent = new AutoResetEvent(false);
ThreadPool.QueueUserWorkItem(delegate(object stateObject) {
AutoResetEvent internalSetEvent = (AutoResetEvent)((object[])stateObject)[0];
SessionState internalState = (SessionState)((object[])stateObject)[1];
for (int i = 1001; i < 2000; i++) {
try {
internalState.Set(i, "msg" + i);
}
catch (System.IO.IOException ex) {
errorsTable[ex.Message] = ex;
}
}
internalSetEvent.Set();
}
, new object[] { setEvent, state });
//Simulate background reading of messages from the store - like is done in a resend request answer
AutoResetEvent getEvent = new AutoResetEvent(false);
ThreadPool.QueueUserWorkItem(delegate(object stateObject){
AutoResetEvent internalGetEvent = (AutoResetEvent)((object[])stateObject)[0];
SessionState internalState = (SessionState)((object[])stateObject)[1];
for (int i = 1; i < 1000; i++) {
try {
List<string> lst = new List<string>(1);
internalState.Get(i, i, lst);
if (lst.Count == 0) {
getTable[i] = "nothing read";
}
else {
getTable[i] = lst[0];
}
}
catch (System.IO.IOException ex) {
errorsTable[ex.Message] = ex;
}
}
internalGetEvent.Set();
}
, new object[]{getEvent, state});
//wait till done and assert results
Assert.True(setEvent.WaitOne(10000), "Get or Set hung/timed out during concurrent usage");
Assert.True(getEvent.WaitOne(10000), "Get or Set hung/timed out during concurrent usage");
Assert.AreEqual(setTable, getTable, "Garbled data read in concurrent set and get (like between resendrequest and send)");
Assert.AreEqual(errorsTable.Count, 0, "IOException occured in concurrent set and get (like between resendrequest and send)");
//Tear down filestore
state.Dispose();
store.Dispose();
}
示例4: StartEngine
void StartEngine(bool initiator)
{
TestApplication application = new TestApplication(LogonCallback, LogoffCallback);
IMessageStoreFactory storeFactory = new MemoryStoreFactory();
SessionSettings settings = new SessionSettings();
Dictionary defaults = new Dictionary();
defaults.SetString(QuickFix.SessionSettings.FILE_LOG_PATH, LogPath);
// Put IP endpoint settings into default section to verify that that defaults get merged into
// session-specific settings not only for static sessions, but also for dynamic ones
defaults.SetString(SessionSettings.SOCKET_CONNECT_HOST, Host);
defaults.SetString(SessionSettings.SOCKET_CONNECT_PORT, ConnectPort.ToString());
defaults.SetString(SessionSettings.SOCKET_ACCEPT_HOST, Host);
defaults.SetString(SessionSettings.SOCKET_ACCEPT_PORT, AcceptPort.ToString());
settings.Set(defaults);
ILogFactory logFactory = new FileLogFactory(settings);
if (initiator)
{
defaults.SetString(SessionSettings.RECONNECT_INTERVAL, "1");
settings.Set(CreateSessionID(StaticInitiatorCompID), CreateSessionConfig(StaticInitiatorCompID, true));
_initiator = new SocketInitiator(application, storeFactory, settings, logFactory);
_initiator.Start();
}
else
{
settings.Set(CreateSessionID(StaticAcceptorCompID), CreateSessionConfig(StaticAcceptorCompID, false));
_acceptor = new ThreadedSocketAcceptor(application, storeFactory, settings, logFactory);
_acceptor.Start();
}
}