common/restart_waiter.h (26 lines of code) (raw):
#pragma once
#include "dbconnector.h"
namespace swss
{
// Helper class to wait for warm/fast reboot done
class RestartWaiter
{
public:
static bool waitAdvancedBootDone(unsigned int maxWaitSec = 180,
unsigned int dbTimeout = 0,
bool isTcpConn = false);
static bool waitWarmBootDone(unsigned int maxWaitSec = 180,
unsigned int dbTimeout = 0,
bool isTcpConn = false);
static bool waitFastBootDone(unsigned int maxWaitSec = 180,
unsigned int dbTimeout = 0,
bool isTcpConn = false);
static bool isAdvancedBootInProgressHelper(swss::DBConnector &stateDb,
bool checkFastBoot = false);
static bool isAdvancedBootInProgress(swss::DBConnector &stateDb);
static bool isFastBootInProgress(swss::DBConnector &stateDb);
static bool isWarmBootInProgress(swss::DBConnector &stateDb);
private:
static bool doWait(swss::DBConnector &stateDb,
unsigned int maxWaitSec);
};
}