Free Electron
SelectorI.h
Go to the documentation of this file.
1 /* Copyright (C) 2003-2021 Free Electron Organization
2  Any use of this software requires a license. If a valid license
3  was not distributed with this file, visit freeelectron.org. */
4 
5 /** @file */
6 
7 #ifndef __shape_SelectorI_h__
8 #define __shape_SelectorI_h__
9 
10 namespace fe
11 {
12 namespace ext
13 {
14 
15 /**************************************************************************//**
16  @brief Determine the Records that match a critera, such as shapes
17 
18  @ingroup shape
19 
20  As a HandlerI, marks the subset of the input that meets the criteria.
21  The action of "marking" is determined by the specific implementation.
22 
23  The handle function will access the Record argument with an
24  Operator AccessorSet, specifically looking for @em input,
25  @em output, and @em choice.
26 
27  If @em output field is valid, it is populated with the matched records
28  as a subset of the input field.
29 
30  If @em choice field is valid, some distinguished "best matching" Record
31  will be determined and set.
32 
33  A FilterI, if provided, only permits records that pass that
34  given arbitrary test.
35 *//***************************************************************************/
36 class FE_DL_EXPORT SelectorI:
37  virtual public HandlerI,
38  public CastableAs<SelectorI>
39 {
40  public:
41  /// @brief Configure selection based on a single criteria
42 virtual void configure(const Record& rCriteria,
43  const sp<FilterI>& rspFilter) {}
44 
45  /** @brief Configure selection based on a group of criteria
46 
47  Each Record in the criteria RecordGroup is applied
48  in the order of iteration.
49 
50  If cumulative, a test against multiple elements
51  accumulate into a union instead of an intersection. */
52 virtual void configure(const sp<RecordGroup>& rspCriteria,
53  const sp<FilterI>& rspFilter,
54  BWORD cumulative) {}
55 };
56 
57 } /* namespace ext */
58 } /* namespace fe */
59 
60 #endif /* __shape_SelectorI_h__ */
Determine the Records that match a critera, such as shapes.
Definition: SelectorI.h:36
kernel
Definition: namespace.dox:3
virtual void configure(const sp< RecordGroup > &rspCriteria, const sp< FilterI > &rspFilter, BWORD cumulative)
Configure selection based on a group of criteria.
Definition: SelectorI.h:52
Interface to handle signals from an SignalerI.
Definition: HandlerI.h:22
virtual void configure(const Record &rCriteria, const sp< FilterI > &rspFilter)
Configure selection based on a single criteria.
Definition: SelectorI.h:42
Reference to an instance of a Layout.
Definition: RecordSB.h:35
Intrusive Smart Pointer.
Definition: src/core/ptr.h:53
Per-class participation non-RTTI fallback dynamic casting mechanism.
Definition: Castable.h:192