* \brief %Options for %Gist * * Note that the \a d and \a stop fields of the Search::Options class * are not used by Gist. * */
| 232 | * |
| 233 | */ |
| 234 | class Options : public Search::Options { |
| 235 | public: |
| 236 | /// Helper class storing inspectors |
| 237 | class I_ { |
| 238 | private: |
| 239 | Support::DynamicArray<Inspector*,Heap> _click; |
| 240 | unsigned int n_click; |
| 241 | Support::DynamicArray<Inspector*,Heap> _solution; |
| 242 | unsigned int n_solution; |
| 243 | Support::DynamicArray<Inspector*,Heap> _move; |
| 244 | unsigned int n_move; |
| 245 | Support::DynamicArray<Comparator*,Heap> _compare; |
| 246 | unsigned int n_compare; |
| 247 | public: |
| 248 | /// Constructor |
| 249 | I_(void); |
| 250 | /// Add inspector that reacts on node double clicks |
| 251 | void click(Inspector* i); |
| 252 | /// Add inspector that reacts on each new solution that is found |
| 253 | void solution(Inspector* i); |
| 254 | /// Add inspector that reacts on each move of the cursor |
| 255 | void move(Inspector* i); |
| 256 | /// Add comparator |
| 257 | void compare(Comparator* c); |
| 258 | |
| 259 | /// Return click inspector number \a i, or nullptr if it does not exist |
| 260 | Inspector* click(unsigned int i) const; |
| 261 | /// Return solution inspector number \a i, or nullptr if it does not exist |
| 262 | Inspector* solution(unsigned int i) const; |
| 263 | /// Return move inspector number \a i, or nullptr if it does not exist |
| 264 | Inspector* move(unsigned int i) const; |
| 265 | /// Return comparator number \a i, or nullptr if it does not exist |
| 266 | Comparator* compare(unsigned int i) const; |
| 267 | } inspect; |
| 268 | /// Default options |
| 269 | GECODE_GIST_EXPORT static const Options def; |
| 270 | /// Initialize with default values |
| 271 | Options(void); |
| 272 | }; |
| 273 | |
| 274 | |
| 275 | /// Create a new stand-alone Gist for \a root using \a bab |