пятница, 25 апреля 2014 г.

Update 140425. Dde OnPocked.

Dde2 имеет выбор Mode.
Задается в xml
<?xml version="1.0" encoding="utf-8" ?>
<DdeServer>
  <Dde2 enabled="true" ns="GS.Trade.Dde" as="GS.Trade.Dde">
    <Mode>1</Mode>
    <IsEnabled>true</IsEnabled>
    <Name>Dde Server</Name>
    <Code>QUIKInfoF</Code>
    <XPath>DdeTopicList</XPath>
  </Dde2>
  <DdeTopicList>
    <TopicItem ns="GS.Trade.Dde" as="GS.Trade.Dde">
      <TopicItemKey>[Forts]1</TopicItemKey>
    </TopicItem>
    <TopicItem ns="GS.Trade.Dde" as="GS.Trade.Dde">
      <TopicItemKey>[Micex]1</TopicItemKey>
    </TopicItem>
  </DdeTopicList>
</DdeServer>
if Mode == 1 - обработку строк осуществляет OnPocked1()
if Mode == 2 - обработку строк осуществляет OnPocked2()
OnPocked1:
Выгребает одну строкy и отправляет Подписчикам string.
То есть выборка и отправка построчно в цикле.
Подписчики обрабатывают строки в DdeProcess1()
OnPocked2:
Выгребает все строки и
собирает их в StringBuilder.Appendline()
Отправляет Подписчикам StringBuilder.ToString - strings разделенные \r\n
Подписчики обрабатывает входную строку в DdeProcess2()
string sr = new StringReader(strList);
while( sr.ReadLine() != null)
{...}

Комментариев нет:

Отправить комментарий