the initial draft of this concept is in place now, and the first round of unit tests pass. I've got some understanding of the purpose of the interactions and involved elements and I'm confident this design is evolving in a sane way. Note: extensive documentation is in the TiddlyWiki, here I've just pasted and reworded some paragraphs from there and integrated them into the Doxygen docs
119 lines
3.1 KiB
C++
119 lines
3.1 KiB
C++
/*
|
|
BUS-CONTROLLER.hpp - the UI-Bus service
|
|
|
|
Copyright (C) Lumiera.org
|
|
2015, Hermann Vosseler <Ichthyostega@web.de>
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License as
|
|
published by the Free Software Foundation; either version 2 of
|
|
the License, or (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
|
|
*/
|
|
|
|
|
|
/** @file bus-controller.hpp
|
|
** The service actually operating the [UI-Bus][ui-bus.hpp].
|
|
** This service includes state management for the bus operations
|
|
** as a whole, it includes the setup of a [routing table][ctrl::Nexus]
|
|
** and it includes the management of connection to the [core service][core-service.hpp]
|
|
** Service for bus-controller.
|
|
** This header defines the basics of...
|
|
**
|
|
** @note as of 12/2015 this is merely placeholder code. The primary goal is to
|
|
** write and cover model::Tangible and ctrl::BusTerm, so to define the operation
|
|
** of the backbone components. Then the next step will be to replace the existing
|
|
** (and obsolete) gui::controller::Controller by the gui::UiBus, which in turn
|
|
** will have to instantiate a [BusController] instance.
|
|
** @todo WIP ///////////////////////TICKET #959
|
|
**
|
|
** @see ////TODO_test usage example
|
|
** @see [implementation][bus-controller.cpp]
|
|
** @see [front-end and lifecycle][UiBus]
|
|
**
|
|
*/
|
|
|
|
|
|
#ifndef GUI_CTRL_BUS_CONTROLLER_H
|
|
#define GUI_CTRL_BUS_CONTROLLER_H
|
|
|
|
|
|
#include "lib/error.hpp"
|
|
//#include "lib/hash-value.h"
|
|
//#include "lib/symbol.hpp"
|
|
#include "lib/util.hpp"
|
|
|
|
#include <boost/noncopyable.hpp>
|
|
#include <string>
|
|
|
|
namespace gui {
|
|
namespace ctrl{
|
|
|
|
|
|
using util::isnil;
|
|
using std::string;
|
|
|
|
|
|
/**
|
|
* Manage operation of the UI-Bus
|
|
*
|
|
* @todo WIP 1/2015
|
|
*/
|
|
class BusController
|
|
: boost::noncopyable
|
|
{
|
|
string nothing_;
|
|
|
|
public:
|
|
explicit
|
|
BusController (string const& b)
|
|
: nothing_(b)
|
|
{ }
|
|
|
|
|
|
|
|
/* == Adapter interface for == */
|
|
|
|
void
|
|
setSolution (string const& solution ="")
|
|
{
|
|
UNIMPLEMENTED ("tbw");
|
|
#if false /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #888
|
|
if (isDeaf())
|
|
this->transmogrify (solution);
|
|
#endif /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #888
|
|
}
|
|
|
|
|
|
protected:
|
|
void maybe () const;
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** @internal in case
|
|
*/
|
|
inline void
|
|
BusController::maybe () const
|
|
{
|
|
UNIMPLEMENTED ("tbw");
|
|
}
|
|
|
|
|
|
|
|
|
|
}} // namespace gui::ctrl
|
|
#endif /*GUI_CTRL_BUS_CONTROLLER_H*/
|