|
a/src/query/docseq.h |
|
b/src/query/docseq.h |
|
... |
|
... |
153 |
/** Optional functionality. */
|
153 |
/** Optional functionality. */
|
154 |
virtual bool canFilter() {return false;}
|
154 |
virtual bool canFilter() {return false;}
|
155 |
virtual bool canSort() {return false;}
|
155 |
virtual bool canSort() {return false;}
|
156 |
virtual bool setFiltSpec(const DocSeqFiltSpec &) {return false;}
|
156 |
virtual bool setFiltSpec(const DocSeqFiltSpec &) {return false;}
|
157 |
virtual bool setSortSpec(const DocSeqSortSpec &) {return false;}
|
157 |
virtual bool setSortSpec(const DocSeqSortSpec &) {return false;}
|
158 |
virtual STD_SHARED_PTR<DocSequence> getSourceSeq() {return STD_SHARED_PTR<DocSequence>();}
|
158 |
virtual std::shared_ptr<DocSequence> getSourceSeq() {return std::shared_ptr<DocSequence>();}
|
159 |
|
159 |
|
160 |
static void set_translations(const std::string& sort, const std::string& filt)
|
160 |
static void set_translations(const std::string& sort, const std::string& filt)
|
161 |
{
|
161 |
{
|
162 |
o_sort_trans = sort;
|
162 |
o_sort_trans = sort;
|
163 |
o_filt_trans = filt;
|
163 |
o_filt_trans = filt;
|
|
... |
|
... |
179 |
/** A modifier has a child sequence which does the real work and does
|
179 |
/** A modifier has a child sequence which does the real work and does
|
180 |
* something with the results. Some operations are just delegated
|
180 |
* something with the results. Some operations are just delegated
|
181 |
*/
|
181 |
*/
|
182 |
class DocSeqModifier : public DocSequence {
|
182 |
class DocSeqModifier : public DocSequence {
|
183 |
public:
|
183 |
public:
|
184 |
DocSeqModifier(STD_SHARED_PTR<DocSequence> iseq)
|
184 |
DocSeqModifier(std::shared_ptr<DocSequence> iseq)
|
185 |
: DocSequence(""), m_seq(iseq)
|
185 |
: DocSequence(""), m_seq(iseq)
|
186 |
{}
|
186 |
{}
|
187 |
virtual ~DocSeqModifier() {}
|
187 |
virtual ~DocSeqModifier() {}
|
188 |
|
188 |
|
189 |
virtual bool getAbstract(Rcl::Doc& doc, std::vector<std::string>& abs)
|
189 |
virtual bool getAbstract(Rcl::Doc& doc, std::vector<std::string>& abs)
|
|
... |
|
... |
239 |
}
|
239 |
}
|
240 |
virtual std::string title()
|
240 |
virtual std::string title()
|
241 |
{
|
241 |
{
|
242 |
return m_seq->title();
|
242 |
return m_seq->title();
|
243 |
}
|
243 |
}
|
244 |
virtual STD_SHARED_PTR<DocSequence> getSourceSeq()
|
244 |
virtual std::shared_ptr<DocSequence> getSourceSeq()
|
245 |
{
|
245 |
{
|
246 |
return m_seq;
|
246 |
return m_seq;
|
247 |
}
|
247 |
}
|
248 |
|
248 |
|
249 |
protected:
|
249 |
protected:
|
|
... |
|
... |
252 |
if (!m_seq)
|
252 |
if (!m_seq)
|
253 |
return 0;
|
253 |
return 0;
|
254 |
return m_seq->getDb();
|
254 |
return m_seq->getDb();
|
255 |
}
|
255 |
}
|
256 |
|
256 |
|
257 |
STD_SHARED_PTR<DocSequence> m_seq;
|
257 |
std::shared_ptr<DocSequence> m_seq;
|
258 |
};
|
258 |
};
|
259 |
|
259 |
|
260 |
class RclConfig;
|
260 |
class RclConfig;
|
261 |
|
261 |
|
262 |
// A DocSource can juggle docseqs of different kinds to implement
|
262 |
// A DocSource can juggle docseqs of different kinds to implement
|
263 |
// sorting and filtering in ways depending on the base seqs capabilities
|
263 |
// sorting and filtering in ways depending on the base seqs capabilities
|
264 |
class DocSource : public DocSeqModifier {
|
264 |
class DocSource : public DocSeqModifier {
|
265 |
public:
|
265 |
public:
|
266 |
DocSource(RclConfig *config, STD_SHARED_PTR<DocSequence> iseq)
|
266 |
DocSource(RclConfig *config, std::shared_ptr<DocSequence> iseq)
|
267 |
: DocSeqModifier(iseq), m_config(config)
|
267 |
: DocSeqModifier(iseq), m_config(config)
|
268 |
{}
|
268 |
{}
|
269 |
virtual bool canFilter() {return true;}
|
269 |
virtual bool canFilter() {return true;}
|
270 |
virtual bool canSort() {return true;}
|
270 |
virtual bool canSort() {return true;}
|
271 |
virtual bool setFiltSpec(const DocSeqFiltSpec &);
|
271 |
virtual bool setFiltSpec(const DocSeqFiltSpec &);
|