This is a supplement to my Bourne End-isms.
The following code lines were found in a C++ module
of a piece of software as it was being tested:
// This function is called when the current Event On-Air has completed but
// the Next Event is Not ready to Start.
// The purpose of this function is to determine whether to keep the
// Current Event On-Air
// Until the Next Event is Taken to Air, or to Route the Fall Back to Air.
// Consider: If this destination is a break-away destination then when the
// current event completes the Fall Back Follow source should be routed
// to Air so that this break-away destination will return to follow the
// Clean Feed Output.
// However, if there is a genuine 'gap' in the schedule, such the clean
// feed preset event is not valid to take to air, but the On-Air event has
// completed, then the Fall Back Source should be routed to the
// Clean Feed output.
// The answer to the question of whether to keep the current event
// On-Air or Route the Fall Back depends upon the reason for not taking
// the Preset Event to Air.
// Basically - if the preset event would be taken to air on a 'time-only'
// basis but has not been
// taken to air (pre-requisite for calling this function), then the
// Current Event should be kept on-air, as it is reasonable to assume
// that the reason the preset event was not taken to air
// is because it is waiting for the manual take.
// If the preset event could not be taken to air on a 'time-only' basis
// then a 'gap' in the schedule exists, hence route the fall back.
// If you've read this far then you must be:-
// a) Confused
// b) Determined to understand what's going on.
// To save you a lot of time complaining about this software
// (and it's author), I'll come clean.
// This is a bodge.
// Do I have a defense? ... well, it's gone midnight and the Swiss
// will be on site in the morning for an acceptance test.
// So I've put this bodge in, you know 'just for now' and I'll
// come back and fix it later when I've got more time ... or will I?
BOOLEAN DestinationSchedule::KeepCurrentEventOnAir (AssignSchedule pPresetEvent)