[Debtags-commits] [svn] r1741 - in tagcoll/2.0: . tagcoll
tagcoll/stream
Enrico Zini
enrico at costa.debian.org
Tue May 9 01:02:14 UTC 2006
Author: enrico
Date: Tue May 9 01:02:13 2006
New Revision: 1741
Added:
tagcoll/2.0/tagcoll/stream/patcher.cc
tagcoll/2.0/tagcoll/stream/patcher.h
tagcoll/2.0/tagcoll/stream/patcher.tcc
Modified:
tagcoll/2.0/ (props changed)
tagcoll/2.0/tagcoll/Makefile.am
tagcoll/2.0/tagcoll/Patches.cc
tagcoll/2.0/tagcoll/Patches.h
Log:
r2628 at viaza: enrico | 2006-05-08 18:49:39 -0500
Split patcher into stream::Patcher
Modified: tagcoll/2.0/tagcoll/Makefile.am
==============================================================================
--- tagcoll/2.0/tagcoll/Makefile.am (original)
+++ tagcoll/2.0/tagcoll/Makefile.am Tue May 9 01:02:13 2006
@@ -16,6 +16,8 @@
stream/filters.h \
stream/expression.h \
stream/substitutions.h \
+ stream/patcher.h \
+ stream/patcher.tcc \
\
coll/base.h \
coll/simple.h \
@@ -64,6 +66,7 @@
stream/filters.cc \
stream/expression.cc \
stream/substitutions.cc \
+ stream/patcher.cc \
\
coll/simple.cc \
coll/fast.cc \
Modified: tagcoll/2.0/tagcoll/Patches.cc
==============================================================================
--- tagcoll/2.0/tagcoll/Patches.cc (original)
+++ tagcoll/2.0/tagcoll/Patches.cc Tue May 9 01:02:13 2006
@@ -44,6 +44,7 @@
template<> template<>
void to::test<1>()
{
+#if 0
string input_coll(
"a: b, c\n"
"b:\n"
@@ -57,6 +58,7 @@
"d: c::D, c::d, e::F\n"
);
coll::Simple<string, string> result;
+#endif
PatchList<string, string> patches;
std::set<string> added;
@@ -74,12 +76,14 @@
removed.clear(); removed.insert("f::g");
patches.addPatch(Patch<string, string>("d", added, removed));
+#if 0
parseCollection(input_coll, patcher(patches, inserter(result)));
coll::Simple<string, string> reference;
parseCollection(output_coll, inserter(reference));
ensure_coll_equals(reference, result);
+#endif
}
}
Modified: tagcoll/2.0/tagcoll/Patches.h
==============================================================================
--- tagcoll/2.0/tagcoll/Patches.h (original)
+++ tagcoll/2.0/tagcoll/Patches.h Tue May 9 01:02:13 2006
@@ -158,41 +158,7 @@
PatchList<ITEM, TAG> getReverse() const;
};
-template<typename ITEM, typename TAG, typename OUT>
-class Patcher : public wibble::mixin::OutputIterator< Patcher<ITEM, TAG, OUT> >
-{
- OUT out;
- const PatchList<ITEM, TAG>& patches;
-public:
- Patcher(const PatchList<ITEM, TAG>& patches, const OUT& out)
- : out(out), patches(patches) {}
-
- template<typename Items, typename Tags>
- Patcher<ITEM, TAG, OUT>& operator=(const std::pair<Items, Tags>& data)
- {
- for (typename Items::const_iterator i = data.first.begin();
- i != data.first.end(); ++i)
- {
- // Find the patch record for this item
- typename PatchList<ITEM, TAG>::const_iterator p = patches.find(*i);
- if (p == patches.end())
- // If there are no patches, return the tagset unchanged
- *out = data;
- else
- *out = make_pair(wibble::singleton(*i), p->second.apply(data.second));
- ++out;
- }
- return *this;
- }
-};
-
-template<typename ITEM, typename TAG, typename OUT>
-Patcher<ITEM, TAG, OUT> patcher(const PatchList<ITEM, TAG>& patches, const OUT& out)
-{
- return Patcher<ITEM, TAG, OUT>(patches, out);
}
-};
-
// vim:set ts=4 sw=4:
#endif
More information about the Debtags-commits
mailing list