Quintiq file version 2.0
|
#parent: #root
|
MethodOverride ExecuteOutbound
|
{
|
TextBody:
|
[*
|
connector := guard( this.DistributedServiceProviderBase().Connector(), null( DSP_ConnectorBase ) );
|
if ( not isnull( connector ) )
|
{
|
traverse ( this, RegisteredSlaveNode, slave, slave.NeedSent() )
|
{
|
assert( this.SentQueue().IsEmpty(), "Messsage left in sent queue" );
|
|
current_mesage := guard ( slave.LastSentOperationMessage().NextMessage()
|
, this.OutboundMasterQueue().FirstMessage()
|
);
|
|
while ( not isnull( current_mesage ) )
|
{
|
message_copy := current_mesage.DeepCopy().astype( DSP_OperationMessage );
|
this.SentQueue().AddMessage( &message_copy );
|
current_mesage := current_mesage.NextMessage();
|
}
|
|
connector.SentMessages( slave.NodeId(), this.SentQueue() );
|
|
this.SentQueue().Flush();
|
|
slave.LastSentOperationMessage( relset, this.OutboundMasterQueue().LastMessage() );
|
}
|
}
|
else
|
{
|
info( "Distributed Service Provider has no connector" );
|
}
|
*]
|
}
|