11 #ifndef GROUP_SEARCH_H
12 #define GROUP_SEARCH_H
35 #ifndef _GLIBCXX_VECTOR
44 #ifndef _GLIBCXX_STRING
48 #define gs_assert(cond) arb_assert(cond)
137 return int(part*100.0/all+0.5);
140 void track(
int wName,
int wReason,
int nesting,
int size,
int marked,
int clusID,
double aid,
bool keeled);
153 ARB_ERROR set_overlap_folded(
bool folded);
154 int get_name_length()
const;
156 GBDATA *get_overlap_group()
const {
180 gb_overlap_group(
NULp),
201 !hit_reason.empty() &&
219 return gb_group == other.gb_group;
260 void invalidate_widths()
const { widths.
setNull(); }
265 size_t size()
const {
return found.size(); }
270 found.push_back(group);
337 GroupSearchCallback redisplay_cb;
349 #if defined(UNIT_TESTS)
368 sortedByOrder =
false;
377 trees_to_search = trees_to_search_;
411 #if defined(UNIT_TESTS)
413 const SortCriteria& inspect_order()
const {
return order; }
425 #error group_search.h included twice
426 #endif // GROUP_SEARCH_H
const char * get_tree_name() const
const std::string & get_hit_reason() const
const char * get_group_display(const FoundGroup &g, bool show_tree_name) const
void forgetSortCriteria()
std::set< std::string > SpeciesNames
int get_marked_pc() const
GBDATA * get_parent_group(GBDATA *gb_group) const
return string(buffer, length)
bool overlap_is_folded() const
GB_ERROR delete_group(size_t idx)
void addSortCriterion(GroupSortCriterion gsc)
GB_ERROR delete_from_DB()
void setDupCriteria(bool listDups, DupNameCriterionType ntype, GB_CASE sens, DupTreeCriterionType ttype, int min_cluster_size)
int get_tree_order() const
GB_ERROR delete_found_groups()
bool contains_changed(GroupSearchCommon *common) const
ARB_ERROR set_marks_in_found_groups(GroupMarkMode mode, CollectMode cmode)
int calc_nesting_level(GBDATA *gb_group) const
const char * GBS_global_string(const char *templat,...)
void setSearchRange(const TreeNameSet &trees_to_search_)
void refresh_results_after_DBchanges()
void setNull()
set SmartPtr to NULp
GBDATA * get_gb_main() const
std::set< std::string > WordSet
ARB_ERROR fold_found_groups(GroupFoldingMode mode)
FoundGroup(GBDATA *gb_group_)
ARB_ERROR rename_by_ACI(const char *acisrt, const QueriedGroups &results, int hit_idx)
const FoundGroup & operator[](size_t idx) const
std::set< GBDATA * > GBDATAset
bool erase_deleted(GroupSearchCommon *common)
bool isSet() const
test if SmartPtr is not NULp
void remove_hit(size_t idx)
char * GS_calc_resulting_groupname(GBDATA *gb_main, const QueriedGroups &queried, int hit_idx, const char *input_name, const char *acisrt, ARB_ERROR &error)
bool knows_details() const
void addQueryExpression(CriterionOperator op, CriterionType type, CriterionMatch mtype, const char *expression)
static void error(const char *msg)
std::set< std::string > TreeNameSet
GroupSearch(GBDATA *gb_main_, const GroupSearchCallback &redisplay_results_cb)
ARB_ERROR rename_group(size_t idx, const char *acisrt)
void track_max_widths(ColumnWidths &widths) const
FoundGroupCIter end() const
ARB_ERROR set_marks_in_group(size_t idx, GroupMarkMode mode)
void forgetQExpressions()
void remove_hit(size_t idx)
void track(int wName, int wReason, int nesting, int size, int marked, int clusID, double aid, bool keeled)
bool operator==(const FoundGroup &other) const
static int max2width(const int &i)
void sort_by(const SortCriteria &by)
void add_informed_group(const FoundGroup &group)
FoundGroupContainer::const_iterator FoundGroupCIter
int get_cluster_id() const
void set_cluster_id(int id)
GBDATA * get_tree_data() const
FoundGroupContainer::iterator FoundGroupIter
DECLARE_CBTYPE_FVV_AND_BUILDERS(GroupSearchCallback, void, class GroupSearch *)
FoundGroupCIter begin() const
std::list< GroupSortCriterion > SortCriteria
const char * get_name() const
GBDATA * get_pointer() const
const ColumnWidths & get_column_widths() const
ARB_ERROR fold_group(size_t idx, GroupFoldingMode mode)
FoundGroup & operator[](size_t idx)
void add_candidate(const GroupSearch &group_search, Candidate &cand, const std::string &hit_reason)
RefPtr< GBDATA > gb_overlap_group
const QueriedGroups & get_results()
ARB_ERROR rename_found_groups(const char *acisrt)
ARB_ERROR change_folding(GroupFoldingMode mode)
void perform_search(GroupSearchMode mode)
static int percent(int part, int all)
std::vector< FoundGroup > FoundGroupContainer