aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver/hub/storageserverinstance.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/zenserver/hub/storageserverinstance.h')
-rw-r--r--src/zenserver/hub/storageserverinstance.h22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/zenserver/hub/storageserverinstance.h b/src/zenserver/hub/storageserverinstance.h
index 9963f640e..a0ca496dc 100644
--- a/src/zenserver/hub/storageserverinstance.h
+++ b/src/zenserver/hub/storageserverinstance.h
@@ -68,6 +68,11 @@ public:
ZEN_ASSERT(m_Instance);
return m_Instance->m_State.load();
}
+ uint16_t GetBasePort() const
+ {
+ ZEN_ASSERT(m_Instance);
+ return m_Instance->GetBasePort();
+ }
bool IsRunning() const;
const ResourceMetrics& GetResourceMetrics() const
@@ -114,6 +119,11 @@ public:
ZEN_ASSERT(m_Instance);
return m_Instance->m_State.load();
}
+ uint16_t GetBasePort() const
+ {
+ ZEN_ASSERT(m_Instance);
+ return m_Instance->GetBasePort();
+ }
bool IsRunning() const;
const ResourceMetrics& GetResourceMetrics() const
@@ -122,8 +132,12 @@ public:
return m_Instance->m_ResourceMetrics;
}
- void Provision();
- void Deprovision();
+ // For Provision, Deprovision, Hibernate, Wake:
+ // true = operation performed (state changed)
+ // false = precondition not met (wrong state), nothing attempted
+ // throws = operation attempted but failed; m_State corrected before throw
+ [[nodiscard]] bool Provision();
+ [[nodiscard]] bool Deprovision();
[[nodiscard]] bool Hibernate();
[[nodiscard]] bool Wake();
[[nodiscard]] bool RecoverFromCrash(); // true = recovered; false = spawn failed (Crashed), caller must Deprovision() + cleanup
@@ -136,8 +150,8 @@ public:
[[nodiscard]] ExclusiveLockedPtr LockExclusive(bool Wait) { return ExclusiveLockedPtr(m_Lock, this, Wait); }
private:
- void ProvisionLocked();
- void DeprovisionLocked();
+ [[nodiscard]] bool ProvisionLocked();
+ [[nodiscard]] bool DeprovisionLocked();
[[nodiscard]] bool HibernateLocked();
[[nodiscard]] bool WakeLocked();