Krotos Modules 3
Loading...
Searching...
No Matches
krotos::VersionChecker Class Reference

#include <VersionChecker.h>

Inheritance diagram for krotos::VersionChecker:

Classes

class  Version
 

Public Types

enum  eReturn { IS_UP_TO_DATE = 0 , UPDATE_AVAILABLE , CONNECTION_ERROR , MAX_RETURN }
 

Public Member Functions

 VersionChecker (String pluginVersion, URL versionUrl, URL popupTextUrl, String versionFilePath)
 
 ~VersionChecker ()
 
void testHelper ()
 
void runCheck ()
 
void storeRetrievedVersionId ()
 
eReturn doRemoteVersionCheck ()
 
String getUpdateText ()
 
String getLatestVersionAsString ()
 
bool updateLatestVersion ()
 
bool isNewerVersion (Version testVersion)
 
bool isVersionInDontCheckFile (Version version)
 
bool dontCheckFileExists ()
 
bool resetDoNotCheckStatus ()
 Resets the user's "do not check" or "not now" status if they opted to skip the next version. Deletes the DoNotCheckForUpdates.txt.
 
void setLatestVersion (String v)
 

Public Attributes

std::function< void(bool)> onFinished
 

Private Member Functions

void run () override
 
void exitSignalSent () override
 

Private Attributes

String m_versionFilePath {""}
 
std::atomic< bool > m_updateAvailable {false}
 
URL m_versionUrl
 
URL m_updateTextUrl
 
URL m_downloadLink
 
Version m_pluginVersion
 
Version m_latestVersion
 
String m_updateText
 
String m_dontCheckForUpdatesPath
 

Detailed Description

VersionChecker class, used for both automatically checking for avaiable updates and popup/dropdown menu options.

Member Enumeration Documentation

◆ eReturn

Operation return type

Enumerator
IS_UP_TO_DATE 
UPDATE_AVAILABLE 
CONNECTION_ERROR 
MAX_RETURN 

Constructor & Destructor Documentation

◆ VersionChecker()

krotos::krotos::VersionChecker::VersionChecker ( String pluginVersion,
URL versionUrl,
URL popupTextUrl,
String versionFilePath )

◆ ~VersionChecker()

krotos::VersionChecker::~VersionChecker ( )

Member Function Documentation

◆ dontCheckFileExists()

bool krotos::VersionChecker::dontCheckFileExists ( )

DoNotCheckForUpdates.txt exists

◆ doRemoteVersionCheck()

VersionChecker::eReturn krotos::VersionChecker::doRemoteVersionCheck ( )

Check the versionUrl for the latest version

◆ exitSignalSent()

void krotos::VersionChecker::exitSignalSent ( )
overrideprivate

Should exit override

◆ getLatestVersionAsString()

String krotos::VersionChecker::getLatestVersionAsString ( )
inline

Return the latest version as a string "vMaj.Min.Rev" or empty version string was invalid

◆ getUpdateText()

String krotos::VersionChecker::getUpdateText ( )
inline

Return the latest update text

◆ isNewerVersion()

bool krotos::VersionChecker::isNewerVersion ( Version testVersion)

Is test version newer than current plugin version

◆ isVersionInDontCheckFile()

bool krotos::VersionChecker::isVersionInDontCheckFile ( Version version)

Check the DoNotCheckForUpdates.txt to see if version check is required

◆ resetDoNotCheckStatus()

bool krotos::VersionChecker::resetDoNotCheckStatus ( )

Resets the user's "do not check" or "not now" status if they opted to skip the next version. Deletes the DoNotCheckForUpdates.txt.

Returns
true if the "do not check" status has been successfully reset (or it was not set to begin with).

◆ run()

void krotos::VersionChecker::run ( )
overrideprivate

VersionChecker thread override

◆ runCheck()

void krotos::VersionChecker::runCheck ( )

Automatic pop-up on plugin start, if version out-of-date

◆ setLatestVersion()

void krotos::VersionChecker::setLatestVersion ( String v)
inline

◆ storeRetrievedVersionId()

void krotos::VersionChecker::storeRetrievedVersionId ( )

Store the retrieved version of the code

◆ testHelper()

void krotos::VersionChecker::testHelper ( )

For unit testing and QA, replaces version and version text with custom values

◆ updateLatestVersion()

bool krotos::VersionChecker::updateLatestVersion ( )

Connect to the server and update m_versionFromAWS. Returns true is successful, otherwise false

Member Data Documentation

◆ m_dontCheckForUpdatesPath

String krotos::VersionChecker::m_dontCheckForUpdatesPath
private

◆ m_downloadLink

URL krotos::VersionChecker::m_downloadLink
private

◆ m_latestVersion

Version krotos::VersionChecker::m_latestVersion
private

◆ m_pluginVersion

Version krotos::VersionChecker::m_pluginVersion
private

◆ m_updateAvailable

std::atomic<bool> krotos::VersionChecker::m_updateAvailable {false}
private

◆ m_updateText

String krotos::VersionChecker::m_updateText
private

◆ m_updateTextUrl

URL krotos::VersionChecker::m_updateTextUrl
private

◆ m_versionFilePath

String krotos::VersionChecker::m_versionFilePath {""}
private

◆ m_versionUrl

URL krotos::VersionChecker::m_versionUrl
private

◆ onFinished

std::function<void(bool)> krotos::VersionChecker::onFinished

Callback after version check finish


The documentation for this class was generated from the following files: