gist.cpp
Go to the documentation of this file.
/* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */
/*
* Main authors:
* Guido Tack <tack@gecode.org>
*
* Copyright:
* Guido Tack, 2006
*
* This file is part of Gecode, the generic constraint
* development environment:
* http://www.gecode.org
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
*/
#include <cstdlib>
#include <QtGui>
#include <gecode/gist.hh>
#include <gecode/gist/textoutput.hh>
#include <gecode/gist/mainwindow.hh>
#include <gecode/gist/stopbrancher.hh>
namespace Gecode { namespace Gist {
std::string
Inspector::name(void) { return "Inspector"; }
void
Inspector::finalize(void) {}
Inspector::~Inspector(void) {}
std::string
Comparator::name(void) { return "Comparator"; }
void
Comparator::finalize(void) {}
Comparator::~Comparator(void) {}
TextOutput::TextOutput(const std::string& name)
: t(NULL), n(name) {}
void
TextOutput::finalize(void) {
delete t;
t = NULL;
}
TextOutput::~TextOutput(void) {
delete t;
}
std::string
TextOutput::name(void) { return n; }
void
TextOutput::init(void) {
if (t == NULL) {
t = new TextOutputI(n);
}
t->setVisible(true);
}
std::ostream&
TextOutput::getStream(void) {
return t->getStream();
}
void
TextOutput::flush(void) {
t->flush();
}
void
TextOutput::addHtml(const char* s) {
t->insertHtml(s);
}
const Options Options::def;
int
explore(Space* root, bool bab, const Options& opt) {
#ifdef _MSC_VER
// Set the plugin search path on Windows when in default installation
if (char* gd = getenv("GECODEDIR")) {
unsigned int gdl = static_cast<unsigned int>(strlen(gd) + 32U);
char* gdb = heap.alloc<char>(gdl);
strcpy(gdb, gd);
strcat(gdb, "/bin/");
QCoreApplication::addLibraryPath(gdb);
heap.free(gdb,gdl);
}
#endif
char argv0='\0'; char* argv1=&argv0;
int argc=0;
QApplication app(argc, &argv1);
GistMainWindow mw(root, bab, opt);
return app.exec();
}
void
stopBranch(Space& home) {
StopBrancher::post(home);
}
}}
// STATISTICS: gist-any
Gecode::Gist::Comparator::name
virtual std::string name(void)
Name of the comparator.
Definition gist.cpp:53
Gecode::Gist::Comparator::finalize
virtual void finalize(void)
Clean up when Gist exits.
Definition gist.cpp:56
Gecode::Gist::Comparator::~Comparator
virtual ~Comparator(void)
Destructor.
Definition gist.cpp:58
Gecode::Gist::GistMainWindow
Main window for stand-alone Gist.
Definition mainwindow.hh:54
Gecode::Gist::Inspector::finalize
virtual void finalize(void)
Clean up when Gist exits.
Definition gist.cpp:48
Gecode::Gist::Inspector::~Inspector
virtual ~Inspector(void)
Destructor.
Definition gist.cpp:50
Gecode::Gist::Inspector::name
virtual std::string name(void)
Name of the inspector.
Definition gist.cpp:45
Gecode::Gist::Options
Options for Gist
Definition gist.hh:234
Gecode::Gist::Options::def
static const Options def
Default options.
Definition gist.hh:269
Gecode::Gist::StopBrancher::post
static void post(Home home)
Post brancher.
Definition stopbrancher.cpp:78
Gecode::Gist::TextOutputI
Window with associated ostream, used for inspecting Gist nodes.
Definition textoutput.hh:42
Gecode::Gist::TextOutput::finalize
void finalize(void)
Clean up when Gist exits.
Definition gist.cpp:64
Gecode::Gist::TextOutput::flush
void flush(void)
Flush stream.
Definition gist.cpp:90
Gecode::Gist::TextOutput::~TextOutput
virtual ~TextOutput(void)
Destructor.
Definition gist.cpp:69
Gecode::Gist::TextOutput::TextOutput
TextOutput(const std::string &name)
Constructor.
Definition gist.cpp:60
Gecode::Gist::TextOutput::getStream
std::ostream & getStream(void)
Get the stream that is used to output text.
Definition gist.cpp:85
Gecode::Gist::TextOutput::name
virtual std::string name(void)
Name of the inspector.
Definition gist.cpp:74
Gecode::Gist::TextOutput::init
void init(void)
Initialize the implementation object.
Definition gist.cpp:77
Gecode::Gist::TextOutput::addHtml
void addHtml(const char *s)
Add html text s to the output.
Definition gist.cpp:95
Gecode::Space
Computation spaces.
Definition core.hpp:1742
gist.hh
Gecode::heap
Heap heap
The single global heap.
Definition heap.cpp:44
Gecode::Gist::bab
int bab(Space *root, const Gist::Options &opt=Gist::Options::def)
Create a new stand-alone Gist for branch-and-bound search of root.
Definition gist.hpp:208
mainwindow.hh
Gecode::Gist
The Gecode Interactive Search Tool.
Gecode::Gist::explore
int explore(Space *root, bool bab, const Options &opt)
Create a new stand-alone Gist for root using bab.
Definition gist.cpp:102
Gecode::Gist::stopBranch
void stopBranch(Space &home)
A branching that stops exploration.
Definition gist.cpp:127
Gecode
Gecode toplevel namespace
stopbrancher.hh
textoutput.hh