#ifndef SWIG_LIBCORPUS2_DOCUMENT_I #define SWIG_LIBCORPUS2_DOCUMENT_I %module libcorpusdocument %{ #include <libcorpus2_whole/document.h> %} %include "std_defs.i" %include "chunk.i" %include "relation.i" %template(DocumentPtr) boost::shared_ptr<Corpus2::whole::Document>; %template(ConstDocumentPtr) boost::shared_ptr<const Corpus2::whole::Document>; %template(DocumentPtrVector) std::vector<boost::shared_ptr<Corpus2::whole::Document> >; namespace Corpus2 { namespace whole { class Document { public: Document(const std::string& path = ""); ~Document(); void add_paragraph(const boost::shared_ptr<Chunk> para); void add_relation(const boost::shared_ptr<Relation> relation); const std::vector< boost::shared_ptr<Chunk> >& paragraphs() const; const std::vector< boost::shared_ptr<Relation> >& relations() const; const std::string& path() const; }; } // whole ns } // Corpus2 ns using namespace std; using namespace Corpus2; using namespace Corpus2::whole; #endif /* SWIG_LIBCORPUS2_DOCUMENT_I */