Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
W
WCCL
Manage
Activity
Members
Labels
Plan
Issues
4
Issue boards
Milestones
Wiki
Redmine
Code
Merge requests
0
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Analysers
WCCL
Commits
ce1a2445
Commit
ce1a2445
authored
13 years ago
by
Paweł Kędzia
Browse files
Options
Downloads
Patches
Plain Diff
Added wrapper for Wccl::Variables
parent
19e5bc73
Branches
Branches containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
swig/libcclvariables.i
+165
-0
165 additions, 0 deletions
swig/libcclvariables.i
with
165 additions
and
0 deletions
swig/libcclvariables.i
0 → 100644
+
165
−
0
View file @
ce1a2445
#
ifndef
SWIG_LIBWCCL_VARIABLES_I
#
define
SWIG_LIBWCCL_VARIABLES_I
%
module
libcclvariables
%
{
#include <libwccl/variables.h>
%}
%
include
"
libcclvalue.i
"
%
include
"
libcclmatch.i
"
%
include
"
libcclbool.i
"
%
include
"
libcclposition.i
"
%
include
"
libcclstrset.i
"
%
include
"
libccltset.i
"
%
include
"
std_string.i
"
%
include
"
boost_shared_ptr.i
"
namespace
Wccl
{
/* ----------------------------------------------------------------------- */
/* Helper detail class */
namespace detail {
template<class T> class Vmap {
public:
typedef std::map< std::string, boost::shared_ptr<T> > map_t;
};
// %template(VmapBool) Vmap<Bool>;
} // detail ns
/* ----------------------------------------------------------------------- */
/* Base Accessor */
class BaseAccessor {
public:
const std::string get_name();
protected:
BaseAccessor(const std::string& varname);
};
/* ----------------------------------------------------------------------- */
/* Variable Accessor */
template<typename T>
class VariableAccessor : public BaseAccessor {
public:
};
/* ----------------------------------------------------------------------- */
/* Variables */
class Variables :
detail::Vmap<Value>,
detail::Vmap<Bool>,
detail::Vmap<Position>,
detail::Vmap<StrSet>,
detail::Vmap<TSet>,
detail::Vmap<Match>
{
public:
Variables();
template<typename T> int size() const;
%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(const std::string& s);
%template(del_bool) del<Bool>;
%template(del_tset) del<TSet>;
%template(del_strset) del<StrSet>;
%template(del_position) del<Position>;
%template(del_match) del<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>;
};
}
%
template
(
VariablesSharedPtr
)
boost
::
shared_ptr
<
Wccl
::
Variables
>
;
using
namespace
boost
;
using
namespace
std
;
using
namespace
Wccl
;
using
namespace
detail
;
#
endif
/* SWIG_LIBWCCL_VARIABLES_I */
This diff is collapsed.
Click to expand it.
Preview
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment