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

    function r = deleteOrder(b,reqstruct,varargin)
%DELETEORDER Delete Bloomberg EMSX order.
%   R = DELETEORDER(B,REQ) deletes a Bloomberg EMSX order and returns
%   a status message using the default event handler.  REQ can be a request 
%   structure or EMSX_SEQUENCE number.
%  
%   DELETEORDER(B,REQ,'useDefaultEventHandler',false) deletes a 
%   Bloomberg EMSX order.  To process events, the user must invoke a
%   custom event handler.
% 
%   DELETEORDER(B,REQ,'timeOut',200) deletes a Bloomberg EMSX order 
%   and a status message 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)
%   r = deleteOrder(b,reqStruct)
%
%   returns 
%
%   r = 
%   
%       STATUS: '0'
%      MESSAGE: 'Order deleted'
%
%   deleteOrder(b,int32(335877),'useDefaultEventHandler',false)
%   b.processEvent
%
%   returns
%
%   DeleteOrder = {
%
%       STATUS = 0
%
%       MESSAGE = Order deleted
%
%   }
%
%   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;
%   deleteOrder(b,reqStruct,p)
%
%    See also orders, createOrderAndRoute, createOrder, modifyOrder, routes.

%   Copyright 2012 The MathWorks, Inc.

import com.bloomberglp.blpapi.*;

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

%Delete order   
request = b.Service.createRequest('DeleteOrder');
if isstruct(reqstruct)
  numOrders = length(reqstruct.EMSX_SEQUENCE);
  structFlag = true;
else
  numOrders = length(reqstruct);
  structFlag = false;
end
for i = 1:numOrders
  if structFlag
    sequenceId = reqstruct.EMSX_SEQUENCE(i);
  else
    sequenceId = reqstruct(i);
  end
  request.getElement('EMSX_SEQUENCE').appendValue(int32(sequenceId));
end

b.Session.sendRequest(request, []);

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

elseif nargout == 1
  
  r = [];
 
end