//-*- Mode: C++ -*-
// Auto-generated from C++ header file(s) by h2xspp.perl; command-line: h2xspp.perl -prefix 'DDC::XS::' QueryFilter.h.in '-vt=^[mb]_' -o QueryFilter '-dn=free' '-dt=Node|Compiler|Options|FilterWithBounds' '-dm=::json|::arg|[vV]alueString|SortBounds|ResolveAttr|Compile'
//
// + edited
%module{DDC::XS};
//======================================================================
// CQFilter
%name{DDC::XS::CQFilter} class CQFilter : public %name{DDC::XS::Object} ddcObject
{
%accessors{ %get_style{camelcase}; %set_style{camelcase}; };
public:
};
//======================================================================
// CQFSort
%name{DDC::XS::CQFSort} class CQFSort : public %name{DDC::XS::CQFilter} CQFilter
{
%accessors{ %get_style{camelcase}; %set_style{camelcase}; };
public:
%name{arg0} string m_arg0 %get %set;
%name{arg1} string m_arg1 %get %set;
%name{arg2} string m_arg2 %get %set;
//-- filter type pseudo-accessor hacks
HitSortEnum getType() %code %{ RETVAL = THIS->m_Filter.m_FilterType; %};
void setType(HitSortEnum ftype) %code %{ THIS->m_Filter.m_FilterType = ftype; %};
public:
%name{new} CQFSort(HitSortEnum ftype=NoSort, string arg0="", string arg1="", string arg2="");
%name{new_i} CQFSort(HitSortEnum ftype, string arg0, int arg1i, int arg2i);
};
//======================================================================
// CQFRankSort
%name{DDC::XS::CQFRankSort} class CQFRankSort : public %name{DDC::XS::CQFSort} CQFSort
{
%accessors{ %get_style{camelcase}; %set_style{camelcase}; };
public:
%name{new} CQFRankSort(HitSortEnum ftype=GreaterByRank);
};
//======================================================================
// CQFDateSort
%name{DDC::XS::CQFDateSort} class CQFDateSort : public %name{DDC::XS::CQFSort} CQFSort
{
%accessors{ %get_style{camelcase}; %set_style{camelcase}; };
public:
%name{new} CQFDateSort(HitSortEnum ftype=LessByDate, string lb="", string ub="");
%name{Str2Date} int Str2Date(string datestr, int onEmpty=0);
};
//======================================================================
// CQFSizeSort
%name{DDC::XS::CQFSizeSort} class CQFSizeSort : public %name{DDC::XS::CQFSort} CQFSort
{
%accessors{ %get_style{camelcase}; %set_style{camelcase}; };
public:
%name{new} CQFSizeSort(HitSortEnum ftype=LessBySize, string lb="", string ub="");
%name{new_i} CQFSizeSort(HitSortEnum ftype=LessBySize, int lb=INT_MIN, int ub=INT_MAX);
};
//======================================================================
// CQFRandomSort
%name{DDC::XS::CQFRandomSort} class CQFRandomSort : public %name{DDC::XS::CQFSort} CQFSort
{
%accessors{ %get_style{camelcase}; %set_style{camelcase}; };
public:
%name{new} CQFRandomSort(string seed0="");
%name{new_i} CQFRandomSort(int seed0);
};
//======================================================================
// CQFBiblSort
%name{DDC::XS::CQFBiblSort} class CQFBiblSort : public %name{DDC::XS::CQFSort} CQFSort
{
%accessors{ %get_style{camelcase}; %set_style{camelcase}; };
public:
%name{new} CQFBiblSort(HitSortEnum ftype=LessByFreeBiblField, string field="", string lb="", string ub="");
};
//======================================================================
// CQFContextSort
%name{DDC::XS::CQFContextSort} class CQFContextSort : public %name{DDC::XS::CQFSort} CQFSort
{
%accessors{ %get_style{camelcase}; %set_style{camelcase}; };
public:
//-- manual hacks
int getMatchId() %code %{ RETVAL = THIS->m_Filter.m_ContextMatchId; %};
void setMatchId(int matchid) %code %{ THIS->m_Filter.m_ContextMatchId = matchid; %};
int getOffset() %code %{ RETVAL = THIS->m_Filter.m_ContextOffset; %};
void setOffset(int offset) %code %{ THIS->m_Filter.m_ContextOffset = offset; %};
public:
%name{new} CQFContextSort(HitSortEnum ftype=LessByMiddleContext, string field="", int matchid=0, int offset=0, string lb="", string ub="");
};
//======================================================================
// CQFHasField
%name{DDC::XS::CQFHasField} class CQFHasField : public %name{DDC::XS::CQFSort} CQFSort
{
%accessors{ %get_style{camelcase}; %set_style{camelcase}; };
public:
%name{Negated} bool m_Negated %get %set;
public:
%name{new} CQFHasField(string field="", string val="", bool isNegated=false);
%name{Negate} void Negate();
};
//======================================================================
// CQFHasFieldValue
%name{DDC::XS::CQFHasFieldValue} class CQFHasFieldValue : public %name{DDC::XS::CQFHasField} CQFHasField
{
%accessors{ %get_style{camelcase}; %set_style{camelcase}; };
public:
%name{new} CQFHasFieldValue(string field="", string val="", bool isNegated=false);
};
//======================================================================
// CQFHasFieldRegex
%name{DDC::XS::CQFHasFieldRegex} class CQFHasFieldRegex : public %name{DDC::XS::CQFHasField} CQFHasField
{
%accessors{ %get_style{camelcase}; %set_style{camelcase}; };
public:
%name{Regex} string m_Regex %get %set;
public:
%name{new} CQFHasFieldRegex(string field="", string val="", bool isNegated=false);
};
//======================================================================
// CQFHasFieldPrefix
%name{DDC::XS::CQFHasFieldPrefix} class CQFHasFieldPrefix : public %name{DDC::XS::CQFHasFieldRegex} CQFHasFieldRegex
{
%accessors{ %get_style{camelcase}; %set_style{camelcase}; };
public:
%name{new} CQFHasFieldPrefix(string field="", string val="", bool isNegated=false);
};
//======================================================================
// CQFHasFieldSuffix
%name{DDC::XS::CQFHasFieldSuffix} class CQFHasFieldSuffix : public %name{DDC::XS::CQFHasFieldRegex} CQFHasFieldRegex
{
%accessors{ %get_style{camelcase}; %set_style{camelcase}; };
public:
%name{new} CQFHasFieldSuffix(string field="", string val="", bool isNegated=false);
};
//======================================================================
// CQFHasFieldInfix
%name{DDC::XS::CQFHasFieldInfix} class CQFHasFieldInfix : public %name{DDC::XS::CQFHasFieldRegex} CQFHasFieldRegex
{
%accessors{ %get_style{camelcase}; %set_style{camelcase}; };
public:
%name{new} CQFHasFieldInfix(string field="", string val="", bool isNegated=false);
};
//======================================================================
// CQFHasFieldSet
%name{DDC::XS::CQFHasFieldSet} class CQFHasFieldSet : public %name{DDC::XS::CQFHasField} CQFHasField
{
%accessors{ %get_style{camelcase}; %set_style{camelcase}; };
public:
%name{Values} set_string m_Values %get %set;
public:
%name{new} CQFHasFieldSet(string field="", set_string vals=set_string(), bool isNegated=false);
};
//======================================================================
// CQFPrune
%name{DDC::XS::CQFPrune} class CQFPrune : public %name{DDC::XS::CQFSort} CQFSort
{
%accessors{ %get_style{camelcase}; %set_style{camelcase}; };
public:
%name{limit} size_t m_limit %get %set;
//%name{keys} CQCountKeyExprList& m_keys %get; //%set; //-- weird: works in QCount.xsp, not here (but this is equivalent in XS.c)
%name{keys} CQCountKeyExprList* m_keys %get; //%set;
void setKeys(CQCountKeyExprList* val) %code %{ ddcxs_obj_set(m_keys,val); %};
public:
%name{new} CQFPrune(HitSortEnum ftype=LessByPruneKey, size_t limit_=0, CQCountKeyExprList* keys_=NULL);
};