From 08aab0c333f1245cf8bdfc8604dcc9b0a4889a86 Mon Sep 17 00:00:00 2001 From: Adam Radziszewski <adam.radziszewski@pwr.wroc.pl> Date: Fri, 20 May 2011 16:36:43 +0200 Subject: [PATCH] wrap SWIG Token* to shared_ptr --- swig/libcorpustokenreader.i | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/swig/libcorpustokenreader.i b/swig/libcorpustokenreader.i index c5d64d1..901b259 100644 --- a/swig/libcorpustokenreader.i +++ b/swig/libcorpustokenreader.i @@ -18,13 +18,15 @@ %nodefaultctor Corpus2::TokenReader; %template(TokenReaderPtr) boost::shared_ptr<Corpus2::TokenReader>; +%template(TokenPtr) boost::shared_ptr<Corpus2::Token>; // %template(StdStringVector) std::vector<std::string>; // %template(ChunkPtr) boost::shared_ptr<Corpus2::Chunk>; - +typedef boost::shared_ptr<Corpus2::Token> TokenPtr; namespace Corpus2 { class TokenReader { public: typedef boost::shared_ptr<TokenReader> TokenReaderPtr; + //typedef boost::shared_ptr<Token> TokenPtr; /* --------------------------------------------------------------------- */ explicit TokenReader(const Tagset& tagset); @@ -58,7 +60,7 @@ namespace Corpus2 { std::istream& stream); /* --------------------------------------------------------------------- */ - virtual Token* get_next_token() = 0; + /* virtual Token* get_next_token() = 0; */ virtual Sentence::Ptr get_next_sentence() = 0; virtual boost::shared_ptr<Chunk> get_next_chunk() = 0; virtual bool has_more() = 0; @@ -76,6 +78,13 @@ namespace Corpus2 { static std::vector<std::string> available_reader_types_help(); }; + %extend TokenReader { + /* modfify the native get_next_token to wrap the tokens into shared_ptr */ + boost::shared_ptr<Corpus2::Token> get_next_token() { + return boost::shared_ptr<Corpus2::Token>(self->get_next_token()); + } + } + std::vector<boost::shared_ptr<Chunk> > read_chunks_from_utf8_string( const std::string& data, const Tagset& tagset, const std::string& format); -- GitLab