[svn] commit: r640 - in /experiments/each-query/src/lib/auth/cpp: data_source.h data_source_static.cc query.h
BIND 10 source code commits
bind10-changes at lists.isc.org
Fri Jan 29 18:45:15 UTC 2010
Author: each
Date: Fri Jan 29 18:45:15 2010
New Revision: 640
Log:
checkpoint
Modified:
experiments/each-query/src/lib/auth/cpp/data_source.h
experiments/each-query/src/lib/auth/cpp/data_source_static.cc
experiments/each-query/src/lib/auth/cpp/query.h
Modified: experiments/each-query/src/lib/auth/cpp/data_source.h
==============================================================================
--- experiments/each-query/src/lib/auth/cpp/data_source.h (original)
+++ experiments/each-query/src/lib/auth/cpp/data_source.h Fri Jan 29 18:45:15 2010
@@ -34,7 +34,7 @@
};
class AbstractDataSrc;
-typedef boost::shared_ptr<AbstractDataSrc> DataSrcPtr;
+typedef AbstractDataSrc* DataSrcPtr;
class AbstractDataSrc {
public:
@@ -58,7 +58,7 @@
RRsetList& target) = 0;
virtual DataSrcPtr findClosestEnclosure(const Name& qname,
- Name& container) = 0;
+ Name& container) = 0;
// Optional 'low-level' methods. These will have stub implementations
// in the general DataSrc class but MAY be overwritten by subclasses
@@ -90,7 +90,7 @@
RRsetList& target) = 0;
virtual DataSrcPtr findClosestEnclosure(const Name& qname,
- Name& container) = 0;
+ Name& container) = 0;
RRClass& getClass() { return rrclass; }
void setClass(RRClass& c) { rrclass = c; }
@@ -104,12 +104,12 @@
class MetaDataSrc : public DataSrc {
public:
- MetaDataSrc() : DataSrc(RRClass::IN()) {}
+ MetaDataSrc() : DataSrc(RRClass::ANY()) {}
MetaDataSrc(const RRClass& c) : DataSrc(c) {}
virtual ~MetaDataSrc() {}
void addDataSrc(DataSrcPtr ds) {
- if (ds->getClass() != getClass()) {
+ if (getClass() != RRClass::ANY() && ds->getClass() != getClass()) {
dns_throw(Unexpected, "class mismatch");
}
@@ -117,10 +117,14 @@
};
DataSrcPtr findClosestEnclosure(const Name& qname, Name& container) {
- DataSrcPtr best = DataSrcPtr();
+ DataSrcPtr best = NULL;
BOOST_FOREACH (DataSrcPtr ds, data_sources) {
DataSrcPtr source;
DSResult result;
+
+ if (getClass() != RRClass::ANY() && ds->getClass() != getClass()) {
+ continue;
+ }
source = ds->findClosestEnclosure(qname, container);
if (result == SUCCESS) {
Modified: experiments/each-query/src/lib/auth/cpp/data_source_static.cc
==============================================================================
--- experiments/each-query/src/lib/auth/cpp/data_source_static.cc (original)
+++ experiments/each-query/src/lib/auth/cpp/data_source_static.cc Fri Jan 29 18:45:15 2010
@@ -26,7 +26,7 @@
version = RRsetPtr(new RRset(version_name, RRClass::CH(),
RRType::TXT(), RRTTL(3600)));
- version->addRdata(rdata::generic::TXT("BIND10 0.0.0 (beta)"));
+ version->addRdata(rdata::generic::TXT("BIND10 0.0.0 (pre-alpha)"));
}
DataSrc
Modified: experiments/each-query/src/lib/auth/cpp/query.h
==============================================================================
--- experiments/each-query/src/lib/auth/cpp/query.h (original)
+++ experiments/each-query/src/lib/auth/cpp/query.h Fri Jan 29 18:45:15 2010
@@ -62,37 +62,11 @@
typedef std::queue<QueryTask*> QueryTaskQueue;
-class AbstractQuery;
-typedef boost::shared_ptr<AbstractQuery> QueryPtr;
-
-class AbstractQuery {
-public:
- virtual ~AbstractQuery();
- // wantAdditional() == true indicates that additional-section data
- // should be looked up while processing this query. false indicates
- // that we're only interested in answer-section data
- virtual bool wantAdditional() = 0;
- virtual void setWantAdditional(bool d) = 0;
-
- // wantDnssec() == true indicates that DNSSEC data should be retrieved
- // from the data source when this query is being processed
- virtual bool wantDnssec() = 0;
- virtual void setWantDnssec(bool d) = 0;
-
- virtual const Name& qname() = 0;
- virtual const RRClass& qclass() = 0;
- virtual const RRType& qtype() = 0;
-
- virtual Message& message() = 0;
- virtual QueryTaskQueue& tasks() = 0;
-
- virtual QueryStatus result() = 0;
- virtual void setStatus(QueryStatus s) = 0;
-};
-
+class Query;
+typedef boost::shared_ptr<Query> QueryPtr;
// Data Source query
-class Query : public AbstractQuery {
+class Query {
public:
Query(Message& m, bool dnssec) {
message_ = &m;
More information about the bind10-changes
mailing list