www.gusucode.com > trading工具箱matlab源码程序 > trading/trading/@emsx/getRouteInfo.m

    function r = getRouteInfo(b,reqstruct,varargin)
%GETROUTEINFO Bloomberg EMSX route information.
%   R = GETROUTEINFO(B,REQSTRUCT) gets Bloomberg EMSX route information using 
%   the default event handler.
%  
%   GETROUTEINFO(B,REQSTRUCT,'useDefaultEventHandler',false) gets Bloomberg 
%   EMSX route information.  To process events, the user must invoke a
%   custom event handler.
% 
%   GETROUTEINFO(B,REQSTRUCT,'timeOut',200) gets Bloomberg EMSX route 
%   information using the default event handler specifying a timeOut value 
%   in milliseconds for the event handler.  The default timeOut value is 
%   500 milliseconds.
%
%   For example, 
%
%   reqStruct.EMSX_SEQUENCE = int32(335877);
%   reqStruct.EMSX_ROUTE_ID = int32(1);
%
%   Note that EMSX_SEQUENCE must denote an existing order sequence number
%   and EMSX_ROUTE_ID must denote an existing route id.
%
%   r = getRouteInfo(b,reqStruct)
%
%   or
%   
%   getRouteInfo(b,reqStruct,'useDefaultEventHandler',false)
%   b.processEvent
%
%   returns the information associated with route id specified.
%
%   Note that the name/value pairs can be input as a single input structure
%   containing some or all of the property fields, for example,
%
%   p.timeOut = 1000;
%   getRouteInfo(b,reqStruct,p)
%
%   See also orders, createOrder, createOrderAndRoute, modifyOrder, deleteOrder, routes.

%   Copyright 2012 The MathWorks, Inc.

%get request fields
infoFields = fieldnames(reqstruct);

%parse name/value pair settings
p.timeOut = 500;
p.useDefaultEventHandler = true;
if nargin > 2
  p = b.parsenv(varargin);
end

%build request
request = b.Service.createRequest('RouteInfo');
for i = 1:length(infoFields)
  request.set(infoFields{i},reqstruct.(infoFields{i}));
end
   
%send request
b.Session.sendRequest(request, []);

%process events with default handler 
if p.useDefaultEventHandler
  
  r = b.routeInfoEvents(p.timeOut);

elseif nargout == 1
  
  r = [];

end