diff --git a/swig/parsedexpression.i b/swig/parsedexpression.i index b8e216af926a5279e1502084dfd994d1e6630fff..3645694cb4342368373899096b015e892397e936 100644 --- a/swig/parsedexpression.i +++ b/swig/parsedexpression.i @@ -37,27 +37,12 @@ namespace Wccl { return NULL; } } - %template(get_bool) get<Bool>; - %template(get_tset) get<TSet>; - %template(get_strset) get<StrSet>; - %template(get_position) get<Position>; - %template(get_match) get<Match>; template<class T> bool has(const std::string& var_name); - %template(has_bool) has<Bool>; - %template(has_tset) has<TSet>; - %template(has_strset) has<StrSet>; - %template(has_position) has<Position>; - %template(has_match) has<Match>; /* Those functions are overridden later to handle shared_ptr values, * anyway they are needed for those overrides to work. */ template<class T> void set(const std::string& var_name, const T& value); - %template(set_bool) set<Bool>; - %template(set_tset) set<TSet>; - %template(set_strset) set<StrSet>; - %template(set_position) set<Position>; - %template(set_match) set<Match>; /* --------------------------------------------------------------------- */ void clean(); @@ -75,7 +60,25 @@ namespace Wccl { virtual ParsedExpression* clone_internal() const = 0; }; -%extend ParsedExpression { + %extend ParsedExpression { + %template(get_bool) get<Bool>; + %template(get_tset) get<TSet>; + %template(get_strset) get<StrSet>; + %template(get_position) get<Position>; + %template(get_match) get<Match>; + + %template(has_bool) has<Bool>; + %template(has_tset) has<TSet>; + %template(has_strset) has<StrSet>; + %template(has_position) has<Position>; + %template(has_match) has<Match>; + + %template(set_bool) set<Bool>; + %template(set_tset) set<TSet>; + %template(set_strset) set<StrSet>; + %template(set_position) set<Position>; + %template(set_match) set<Match>; + void set_bool(const std::string& name, const boost::shared_ptr<const Wccl::Bool>& b) { self->set<Wccl::Bool>(name, *b); } @@ -91,8 +94,9 @@ namespace Wccl { void set_match(const std::string& name, const boost::shared_ptr<const Wccl::Match>& b) { self->set<Wccl::Match>(name, *b); } -} -} + } +} // namespace Wccl + using namespace std; using namespace Wccl; diff --git a/swig/variables.i b/swig/variables.i index 6ad0e6ee0698e86abea863540d5aad21463db120..ab8dc58906e7b7b08eefe9f19f314ba4babda184 100644 --- a/swig/variables.i +++ b/swig/variables.i @@ -64,98 +64,112 @@ namespace Wccl { Variables(); template<typename T> int size() const; + + void reset_values(); + + template<typename T> const typename detail::Vmap<T>::map_t get_all() const; + + Variables* clone() const; + + template<typename T> boost::shared_ptr<T> get(const std::string& s) const; + + template<typename T> boost::shared_ptr<T> get_or_throw(const std::string& s) const; + + template<typename T> const typename T::value_type& get_value(const std::string& s) const; + + template<typename T> VariableAccessor<T> create_accessor(const std::string& s); + + template<typename T> boost::shared_ptr<T> get_fast(const VariableAccessor<T>& a) const; + + template<typename T> boost::shared_ptr<T> get_put(const std::string& s); + + template<typename T> void put(const std::string& s, const boost::shared_ptr<T>& v); + + void put_any(const std::string& s, const boost::shared_ptr<Value>& v); + + template<typename T> bool del_variable(const std::string& s); + + bool del_any(const std::string& s); + + template<typename T> void put(const std::string& s, T* v); + + template<typename T> void set(const std::string& s, const T& v); + }; + + %extend Variables { %template(size_bool) size<Bool>; %template(size_tset) size<TSet>; %template(size_strset) size<StrSet>; %template(size_position) size<Position>; %template(size_match) size<Match>; - void reset_values(); - - template<typename T> const typename detail::Vmap<T>::map_t get_all() const; %template(get_all_bool) get_all<Bool>; %template(get_all_tset) get_all<TSet>; %template(get_all_strset) get_all<StrSet>; %template(get_all_position) get_all<Position>; %template(get_all_match) get_all<Match>; - - Variables* clone() const; - template<typename T> boost::shared_ptr<T> get(const std::string& s) const; %template(get_bool) get<Bool>; %template(get_tset) get<TSet>; %template(get_strset) get<StrSet>; %template(get_position) get<Position>; %template(get_match) get<Match>; - template<typename T> boost::shared_ptr<T> get_or_throw(const std::string& s) const; %template(get_or_throw_bool) get_or_throw<Bool>; %template(get_or_throw_tset) get_or_throw<TSet>; %template(get_or_throw_strset) get_or_throw<StrSet>; %template(get_or_throw_position) get_or_throw<Position>; %template(get_or_throw_match) get_or_throw<Match>; - template<typename T> const typename T::value_type& get_value(const std::string& s) const; %template(get_value_bool) get_value<Bool>; %template(get_value_tset) get_value<TSet>; %template(get_value_strset) get_value<StrSet>; %template(get_value_position) get_value<Position>; // %template(get_value_match) get_value<Match>; - template<typename T> VariableAccessor<T> create_accessor(const std::string& s); %template(create_accessor_bool) create_accessor<Bool>; %template(create_accessor_tset) create_accessor<TSet>; %template(create_accessor_strset) create_accessor<StrSet>; %template(create_accessor_position) create_accessor<Position>; %template(create_accessor_match) create_accessor<Match>; - template<typename T> boost::shared_ptr<T> get_fast(const VariableAccessor<T>& a) const; %template(get_fast_bool) get_fast<Bool>; %template(get_fast_tset) get_fast<TSet>; %template(get_fast_strset) get_fast<StrSet>; %template(get_fast_position) get_fast<Position>; %template(get_fast_match) get_fast<Match>; - template<typename T> boost::shared_ptr<T> get_put(const std::string& s); %template(get_put_bool) get_put<Bool>; %template(get_put_tset) get_put<TSet>; %template(get_put_strset) get_put<StrSet>; %template(get_put_position) get_put<Position>; %template(get_put_match) get_put<Match>; - template<typename T> void put(const std::string& s, const boost::shared_ptr<T>& v); %template(put_bool_2) put<Bool>; %template(put_tset_2) put<TSet>; %template(put_strset_2) put<StrSet>; %template(put_position_2) put<Position>; %template(put_match_2) put<Match>; - void put_any(const std::string& s, const boost::shared_ptr<Value>& v); - - template<typename T> bool del_variable(const std::string& s); %template(del_bool) del_variable<Bool>; %template(del_tset) del_variable<TSet>; %template(del_strset) del_variable<StrSet>; %template(del_position) del_variable<Position>; %template(del_match) del_variable<Match>; - bool del_any(const std::string& s); - - template<typename T> void put(const std::string& s, T* v); %template(put_bool) put<Bool>; %template(put_tset) put<TSet>; %template(put_strset) put<StrSet>; %template(put_position) put<Position>; %template(put_match) put<Match>; - template<typename T> void set(const std::string& s, const T& v); %template(set_bool) set<Bool>; %template(set_tset) set<TSet>; %template(set_strset) set<StrSet>; %template(set_position) set<Position>; %template(set_match) set<Match>; - }; -} + } +} // namespace Wccl; using namespace boost; using namespace std; diff --git a/swig/wcclfile.i b/swig/wcclfile.i index 9e242375a30b2dcad96f2a975c9d262b9b7c6927..f8ad8e164fb8c0cb0389958e4d9a0e95aadea5bb 100644 --- a/swig/wcclfile.i +++ b/swig/wcclfile.i @@ -61,22 +61,12 @@ namespace Wccl { bool has_untyped_section(const std::string& name) const; template<class T> bool has_section(const std::string& name) const; - %template(has_section_bool) has_section<Bool>; - %template(has_section_tset) has_section<TSet>; - %template(has_section_strset) has_section<StrSet>; - %template(has_section_position) has_section<Position>; - %template(has_section_match) has_section<Match>; /* --------------------------------------------------------------------- */ std::vector<std::string> untyped_section_names() const; template<class T> std::vector<std::string> section_names() const; - %template(section_names_bool) section_names<Bool>; - %template(section_names_tset) section_names<TSet>; - %template(section_names_strset) section_names<StrSet>; - %template(section_names_position) section_names<Position>; - %template(section_names_match) section_names<Match>; /* --------------------------------------------------------------------- */ @@ -95,11 +85,6 @@ namespace Wccl { // template<class T> const OpSequence<T>& get_section(const std::string& name) const; template<class T> OpSequence<T>& get_section(const std::string& name); - %template(get_section_bool) get_section<Bool>; - %template(get_section_tset) get_section<TSet>; - %template(get_section_strset) get_section<StrSet>; - %template(get_section_position) get_section<Position>; - %template(get_section_match) get_section<Match>; %exception { try { @@ -134,11 +119,6 @@ namespace Wccl { } } template<class T> shared_ptr<OpSequence<T> > get_section_ptr(const std::string& name); - %template(get_section_ptr_bool) get_section_ptr<Bool>; - %template(get_section_ptr_tset) get_section_ptr<TSet>; - %template(get_section_ptr_strset) get_section_ptr<StrSet>; - %template(get_section_ptr_position) get_section_ptr<Position>; - %template(get_section_ptr_match) get_section_ptr<Match>; /* --------------------------------------------------------------------- */ @@ -198,11 +178,6 @@ namespace Wccl { } } template<class T> shared_ptr<Operator<T> > get_op_ptr(const std::string& name, size_t idx = 0); - %template(get_op_ptr_bool) get_op_ptr<Bool>; - %template(get_op_ptr_tset) get_op_ptr<TSet>; - %template(get_op_ptr_strset) get_op_ptr<StrSet>; - %template(get_op_ptr_position) get_op_ptr<Position>; - %template(get_op_ptr_match) get_op_ptr<Match>; /* --------------------------------------------------------------------- */ @@ -229,11 +204,6 @@ namespace Wccl { } } template<class T> typename OpSequence<T>::name_op_v_t gen_name_op_pairs(); - %template(gen_name_op_pairs_bool) gen_name_op_pairs<Bool>; - %template(gen_name_op_pairs_tset) gen_name_op_pairs<TSet>; - %template(gen_name_op_pairs_strset) gen_name_op_pairs<StrSet>; - %template(gen_name_op_pairs_position) gen_name_op_pairs<Position>; - %template(gen_name_op_pairs_match) gen_name_op_pairs<Match>; /* --------------------------------------------------------------------- */ @@ -334,11 +304,6 @@ namespace Wccl { */ template<class T> void add_section(const OpSequence<T>& section); - %template(add_section_bool) add_section<Bool>; - %template(add_section_tset) add_section<TSet>; - %template(add_section_strset) add_section<StrSet>; - %template(add_section_position) add_section<Position>; - %template(add_section_match) add_section<Match>; void import_lexicon(const shared_ptr<Lexicon>& lexicon); @@ -350,7 +315,52 @@ namespace Wccl { void set_match_rules(const shared_ptr<MatchRuleSequence>& match_rules); */ }; -} + + %extend WcclFile { + %template(has_section_bool) has_section<Bool>; + %template(has_section_tset) has_section<TSet>; + %template(has_section_strset) has_section<StrSet>; + %template(has_section_position) has_section<Position>; + %template(has_section_match) has_section<Match>; + + %template(section_names_bool) section_names<Bool>; + %template(section_names_tset) section_names<TSet>; + %template(section_names_strset) section_names<StrSet>; + %template(section_names_position) section_names<Position>; + %template(section_names_match) section_names<Match>; + + %template(get_section_bool) get_section<Bool>; + %template(get_section_tset) get_section<TSet>; + %template(get_section_strset) get_section<StrSet>; + %template(get_section_position) get_section<Position>; + %template(get_section_match) get_section<Match>; + + %template(get_section_ptr_bool) get_section_ptr<Bool>; + %template(get_section_ptr_tset) get_section_ptr<TSet>; + %template(get_section_ptr_strset) get_section_ptr<StrSet>; + %template(get_section_ptr_position) get_section_ptr<Position>; + %template(get_section_ptr_match) get_section_ptr<Match>; + + %template(get_op_ptr_bool) get_op_ptr<Bool>; + %template(get_op_ptr_tset) get_op_ptr<TSet>; + %template(get_op_ptr_strset) get_op_ptr<StrSet>; + %template(get_op_ptr_position) get_op_ptr<Position>; + %template(get_op_ptr_match) get_op_ptr<Match>; + + %template(gen_name_op_pairs_bool) gen_name_op_pairs<Bool>; + %template(gen_name_op_pairs_tset) gen_name_op_pairs<TSet>; + %template(gen_name_op_pairs_strset) gen_name_op_pairs<StrSet>; + %template(gen_name_op_pairs_position) gen_name_op_pairs<Position>; + %template(gen_name_op_pairs_match) gen_name_op_pairs<Match>; + + %template(add_section_bool) add_section<Bool>; + %template(add_section_tset) add_section<TSet>; + %template(add_section_strset) add_section<StrSet>; + %template(add_section_position) add_section<Position>; + %template(add_section_match) add_section<Match>; + + } +} // namespace Wccl using namespace boost; using namespace Wccl;