lazhen
2025-01-09 8afe90b633046db39042aada36b88193062f8cff
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Quintiq file version 2.0
#parent: #root
Method ReceiveConfigurationRequestLeave (NamedValueTree nvt_i, NamedValue body_i, LibDEF_IntegrationEvent event_i)
{
  Description: 'Receive Configuration message for requesting to leave domain.'
  TextBody:
  [*
    // Jacky CHAN Apr-22-2016 (created)
    LibDEF_Util::EventLog( event_i, "Receiving leave request" );
    
    // retrieve requestor's guid
    systemGUID := LibDEF_DataAccessor::GetHeaderPropertyAsString( nvt_i, LibDEF_DataAccessor::HEADER_SYSTEMGUID_FROM() );
    
    // find System with matching host and port
    leavingSystem := LibDEF_System::FindSystemByGUID( this, systemGUID );
    
    if( not isnull( leavingSystem ) )
    {
      // reply with success
      this.SendConfigurationSuccessLeave( leavingSystem, event_i );
    
      leavingSystem.Delete();
    }
    
    // inform other systems
    peers := this.GetOtherPeers( false );
    if( peers.Size() > 0 )
    {
      this.SendConfigurationSuccessCopyRoutingTable( peers );
    }
  *]
}