feat(dobj): added error tracking to DObject
DObject now includes an error code so that errors can be tracked with return values from functions
This commit is contained in:
@@ -48,6 +48,19 @@ bool DObject::isDebuggingEnabled() const noexcept {
|
||||
return debugEnabled_;
|
||||
}
|
||||
|
||||
/**
|
||||
* @breif Sets an error code and returns the old one
|
||||
*/
|
||||
int DObject::setErrorCode(int code) noexcept {
|
||||
int oldCode = errorCode_;
|
||||
errorCode_ = code;
|
||||
return oldCode;
|
||||
}
|
||||
|
||||
int DObject::getErrorCode() const noexcept {
|
||||
return errorCode_;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Registers a plugin with the DObject.
|
||||
*/
|
||||
@@ -203,4 +216,4 @@ std::ostream& operator<<(std::ostream& os, const DObject& obj) {
|
||||
os << "\n Data Type: " << obj.dataTypeMap.at(obj.data_.index());
|
||||
os << "\n Plugins Registered: " << obj.plugins_.size() << "\n";
|
||||
return os;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -96,6 +96,7 @@ public:
|
||||
{18, "vector<vector<vector<double>>"}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @brief Placeholder type for plugins.
|
||||
*
|
||||
@@ -165,6 +166,21 @@ public:
|
||||
*/
|
||||
bool isDebuggingEnabled() const noexcept;
|
||||
|
||||
/**
|
||||
* @breif Set error code tracked by the DOBject
|
||||
*
|
||||
* @return The previous error code
|
||||
*/
|
||||
int setErrorCode(int code) noexcept;
|
||||
|
||||
/**
|
||||
* @brief Get the error code tracked by the DObject
|
||||
*
|
||||
* @return The error code
|
||||
*/
|
||||
int getErrorCode() const noexcept;
|
||||
|
||||
|
||||
/**
|
||||
* @brief Registers a plugin with the DObject.
|
||||
*
|
||||
@@ -214,6 +230,7 @@ public:
|
||||
private:
|
||||
DataType data_; ///< The main data stored in the DObject.
|
||||
bool debugEnabled_ = false; ///< Indicates whether debugging is enabled.
|
||||
int errorCode_ = 0; ///< Error code tracked by the DObject.
|
||||
std::map<std::string, Plugin> plugins_; ///< Registry for dynamically registered plugins.
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user