Flyweight improvements to various classes
The copy constructor is no longer a requirement for Flyweight objects.
Also, minor improvement to < and == operators.
Change-Id: I7bdbea6eb6ab253d3a895da93a625dadc0893533
Signed-off-by: Zane Shelley <zshelle@us.ibm.com>
diff --git a/src/isolator/hei_isolation_node.hpp b/src/isolator/hei_isolation_node.hpp
index 782ac7f..4cf44dd 100644
--- a/src/isolator/hei_isolation_node.hpp
+++ b/src/isolator/hei_isolation_node.hpp
@@ -48,24 +48,10 @@
~IsolationNode() = default;
private:
- // This is needed to allow the flyweights to use the copy constructor, but
- // not allow it to be used in general.
- friend class Flyweight<IsolationNode>;
+ /** @brief Copy constructor. */
+ IsolationNode(const IsolationNode&) = delete;
- /**
- * @brief Copy constructor.
- *
- * Needed by Flyweight class, but should not be allowed in general.
- */
- IsolationNode(const IsolationNode&) = default;
-
- /**
- * @brief Explicitly disables assignment operator.
- *
- * This is redundant since the compilier will implicitly delete this because
- * of the constant instance variables, but helps communicate it is not
- * allowed.
- */
+ /** @brief Assignment operator. */
IsolationNode& operator=(const IsolationNode&) = delete;
private: // Instance variables
diff --git a/src/isolator/hei_isolator.cpp b/src/isolator/hei_isolator.cpp
index db5668e..e4266b0 100644
--- a/src/isolator/hei_isolator.cpp
+++ b/src/isolator/hei_isolator.cpp
@@ -37,15 +37,15 @@
// Remove all of the IsolationNode objects stored in the flyweights. This
// must be done before removing the HardwareRegister objects
- Flyweight<IsolationNode>::getSingleton().clear();
+ Flyweight<const IsolationNode>::getSingleton().clear();
// Must flush the hardware register cache before deleting any
// HardwareRegister objects.
HardwareRegister::flushAll();
// Remove all of the HardwareRegister objects stored in the flyweights.
- Flyweight<ScomRegister>::getSingleton().clear();
- Flyweight<IdScomRegister>::getSingleton().clear();
+ Flyweight<const ScomRegister>::getSingleton().clear();
+ Flyweight<const IdScomRegister>::getSingleton().clear();
}
void Isolator::isolate(const std::vector<Chip>& i_chipList,