public virtual void ReadyForSend()
 {
     if (_gracefullyEnqueueForDelete)
     {
         EnqueueForDelete();
         return;
     }
     NearProtocol?.ReadyForSend();
 }
 public virtual bool TimePeriodElapsed() => NearProtocol == null || NearProtocol.TimePeriodElapsed();