This is a header file defining a complete implementation of the Siena tags-based data model. In particular, this file shows how to implement the siena::TagSet, siena::TagSetList interfaces. The implementation of the classes declared in this file are implemented in the simple_tags_types.cc source file.
#ifndef SIMPLE_TAGS_TYPES_H_INCLUDED
#define SIMPLE_TAGS_TYPES_H_INCLUDED
#include <set>
#include <string>
#include <vector>
public:
public:
virtual bool next();
virtual std::string to_string() const;
virtual std::string & to_string(std::string & x) const;
iterator(const std::set<std::string> * s,
std::set<std::string>::const_iterator i);
virtual ~iterator();
private:
const std::set<std::string> * ts;
std::set<std::string>::const_iterator itr;
};
void add_tag(const std::string & s);
private:
std::set<std::string> ts;
};
public:
public:
virtual bool next();
iterator(const std::vector<const simple_tagset *> * v,
std::vector<const simple_tagset *>::const_iterator i);
virtual ~iterator();
private:
const std::vector<const simple_tagset *> * tsv;
std::vector<const simple_tagset *>::const_iterator itr;
};
void add_tagset(const simple_tagset * s);
~simple_tagset_list();
private:
std::vector<const simple_tagset *> l;
};
#endif