ConfigProperty: removed the SHARED_AND_UNSHARED hack

After removing the "type" property there is no longer any property
which is both shared and unshared. Removing the dead code.
This commit is contained in:
Patrick Ohly 2011-02-03 13:00:22 +01:00
parent 388f72b369
commit 664a1e54a5
4 changed files with 7 additions and 45 deletions

View File

@ -1565,8 +1565,7 @@ static void findPeerProps(FilterConfigNode::ConfigFilter &filter,
BOOST_FOREACH(StringPair entry, filter) {
const ConfigProperty *prop = registry.find(entry.first);
if (prop &&
prop->getSharing() == ConfigProperty::NO_SHARING &&
!(prop->getFlags() & ConfigProperty::SHARED_AND_UNSHARED)) {
prop->getSharing() == ConfigProperty::NO_SHARING) {
peerProps.insert(entry.first);
}
}
@ -1655,8 +1654,7 @@ void Cmdline::dumpProperties(const ConfigNode &configuredProps,
BOOST_FOREACH(const ConfigProperty *prop, allProps) {
if (prop->isHidden() ||
((flags & HIDE_PER_PEER) &&
prop->getSharing() == ConfigProperty::NO_SHARING &&
!(prop->getFlags() & ConfigProperty::SHARED_AND_UNSHARED))) {
prop->getSharing() == ConfigProperty::NO_SHARING)) {
continue;
}
if (!m_quiet) {

View File

@ -42,15 +42,6 @@ MultiplexConfigNode::getNode(const string &property,
FilterConfigNode *node =
m_nodes[prop->isHidden()][prop->getSharing()].get();
// special case: fall back to shared node if no unshared
// node or only dummy one, and property is primarily
// stored unshared, but also in the shared node
if ((!node || !m_havePeerNodes) &&
prop->getSharing() == ConfigProperty::NO_SHARING &&
(prop->getFlags() & ConfigProperty::SHARED_AND_UNSHARED)) {
node = m_nodes[prop->isHidden()][ConfigProperty::SOURCE_SET_SHARING].get();
}
return node;
}
}
@ -113,12 +104,6 @@ void MultiplexConfigNode::setProperty(const string &property,
FilterConfigNode *node = getNode(property, &prop);
if (node) {
node->setProperty(property, value, comment, defValue);
bool hidden = prop->isHidden();
if (node == m_nodes[hidden][ConfigProperty::NO_SHARING].get() &&
(node = m_nodes[hidden][ConfigProperty::SOURCE_SET_SHARING].get()) != NULL &&
(prop->getFlags() & ConfigProperty::SHARED_AND_UNSHARED)) {
node->setProperty(property, value, comment, defValue);
}
} else {
SE_THROW(property + ": not supported by configuration multiplexer");
}

View File

@ -2256,8 +2256,7 @@ static void copyProperties(const ConfigNode &fromProps,
BOOST_FOREACH(const ConfigProperty *prop, allProps) {
if (prop->isHidden() == hidden &&
(unshared ||
prop->getSharing() != ConfigProperty::NO_SHARING ||
(prop->getFlags() & ConfigProperty::SHARED_AND_UNSHARED))) {
prop->getSharing() != ConfigProperty::NO_SHARING)) {
bool isDefault;
string value = prop->getProperty(fromProps, &isDefault);
string name = prop->getName(toProps);
@ -2608,19 +2607,12 @@ SyncSourceNodes::getNode(const ConfigProperty &prop) const
}
break;
case ConfigProperty::NO_SHARING:
if ((prop.getFlags() & ConfigProperty::SHARED_AND_UNSHARED) &&
!m_havePeerNode &&
!prop.isHidden()) {
// special case for "sync": use shared node because
// peer node does not exist
return m_sharedNode;
if (prop.isHidden()) {
return boost::shared_ptr<FilterConfigNode>(new FilterConfigNode(m_hiddenPeerNode));
} else {
if (prop.isHidden()) {
return boost::shared_ptr<FilterConfigNode>(new FilterConfigNode(m_hiddenPeerNode));
} else {
return m_peerNode;
}
return m_peerNode;
}
break;
}
return boost::shared_ptr<FilterConfigNode>();
}

View File

@ -345,19 +345,6 @@ class ConfigProperty {
Sharing getSharing() const { return m_sharing; }
void setSharing(Sharing sharing) { m_sharing = sharing; }
/**
* special hacks for certain properties
*/
enum Flags {
SHARED_AND_UNSHARED = 1<<0 /**< value is stored with
SOURCE_SET_SHARING and
NO_SHARING, the later taking
precedency when reading
("type"!) */
};
void setFlags(int flags) { m_flags = flags; }
int getFlags(void) const { return m_flags; }
/** set value unconditionally, even if it is not valid */
void setProperty(ConfigNode &node, const string &value) const { node.setProperty(getName(node), value, getComment()); }
void setProperty(FilterConfigNode &node, const string &value, bool temporarily = false) const {