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

    function r = getOrderInfo(b,reqstruct,varargin)
%GETORDERINFO Bloomberg EMSX order information.
%   R = GETORDERINFO(B,REQSTRUCT) gets Bloomberg EMSX order information using 
%   the default event handler.
%  
%   GETORDERINFO(B,REQSTRUCT,'useDefaultEventHandler',false) gets Bloomberg 
%   EMSX order information.  To process events, the user must invoke a
%   custom event handler.
% 
%   GETORDERINFO(B,REQSTRUCT,'timeOut',200) gets Bloomberg EMSX order 
%   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);
%
%   Note that EMSX_SEQUENCE must denote an existing order sequence number.
%
%   r = getOrderInfo(b,reqStruct)
%
%   or
%   
%   getOrderInfo(b,reqStruct,'useDefaultEventHandler',false)
%   b.processEvent
%
%   returns the information associated with order 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;
%   getOrderInfo(b,reqStruct,p)
%
%   See also orders, createOrder, createOrderAndRoute, modifyOrder, deleteOrder, routes.

%   Copyright 2012 The MathWorks, Inc.

%get request fields
if isstruct(reqstruct)
  infoFields = fieldnames(reqstruct);
end

%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('OrderInfo');
if ~isstruct(reqstruct)
  request.set('EMSX_SEQUENCE',int32(reqstruct))
else
  for i = 1:length(infoFields)
    request.set(infoFields{i},reqstruct.(infoFields{i}));
  end
end
   
%send request
b.Session.sendRequest(request, []);

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

elseif nargout == 1
  
  r = [];

end