91e74b0456
clean-up( #301 ): separate inclusions by purpose
...
and remove some superfluous ones
2016-02-06 19:41:21 +01:00
37fb19ae0a
refactoring: separate headers
2016-02-06 18:50:51 +01:00
2fbb7ba7c9
simplification( #301 ): use ctor chaining to remove clutter
2016-02-06 16:42:42 +01:00
be2179ea81
command-closure-design( #301 ): better naming of implementation classes
...
Seems this was part of the confusion when looking at
the inheritance graph: Names where almost reversed
to the meaning. the ArgumentHolder was *not* the
argument holder, but the top level closure. And
the class "Closure" was not "the" Closure, but
just the argument holder. ;-)
2016-02-06 16:29:06 +01:00
deb7a6758c
add diagnostic output to the command implementation record
...
...allows better diagnostic in tests, when handling a command
through the new mock handling pattern within Test-Nexus
2016-02-05 23:55:07 +01:00
3fef76e1d7
command-binding( #990 ): add new GenNode based argument binding
...
based on the new generic tuple builder, we're now able to
add a new binding function into the command implementation
machinery, alongside the existing one. As it stands, the
latter will be used rather by unit tests, while the new
access path is what will be actually taken within
the application, when receiving argument binding
messages dispatched via the UI-Bus.
2016-01-29 00:59:34 +01:00
16597fcd99
extend command API to also accept a lib::diff::Rec<GenNode> for arguments
...
WIP: have to decide how the arguments can be unpacked
and how to generate proper runtime type mismatch errors.
2016-01-22 20:29:45 +01:00
1dc9642ec4
draft implementation of diagnostic command handler
2016-01-22 19:44:17 +01:00
005e665c13
clean-up design of the command handling patterns ( #210 )
...
this was a classical example of a muddled and messed-up design,
driven just by the fact that I wanted to "spare" some functions,
with the net effect of writing more functions, plus a proxy class
plus create a lot of confusion for the reader.
This was easy to resolve though, once I resorted to the
general adivice to make public interface methods final,
make the extension ponts protected and never
to chain two extension points
2016-01-22 15:25:08 +01:00
f6d04d4d02
refactoring( #988 ): switch correspoinging tests to std::tuple
...
...with this changeset, our own tuple type should be
basically disconnected and not used anymore
2016-01-19 23:53:20 +01:00
0e10ef09ec
refactoring( #988 ): switch command framework to std::tuple
...
this was rather easy, since the stadard tuple is a drop-in replacement,
and we do nothing special here, beyond inheriting from a tuple type
2016-01-19 03:56:54 +01:00
334f542897
clean-up( #985 ): remove code superseded by this rework
...
now finally able to remove most of the cruft from format-util.hpp
and get rid of the infamous util::str
2016-01-09 02:05:23 +01:00
2c20d407fc
mass clean-up: adapt usage of std::cout pretty much everywhere
...
- remove unnecessary includes
- expunge all remaining usages of boost::format
- able to leave out the expliti string(elm) in output
- drop various operator<<, since we're now picking up
custom string conversions automatically
- delete diagnostics headers, which are now largely superfluous
- use newer helper functions occasionally
I didn't blindly change any usage of <iostream> though;
sometimes, just using the output streams right away
seems adequate.
2016-01-07 20:12:46 +01:00
d09a5846d4
basically a working solution for toString in ostream
...
...and learned a lot about the new type_traits on the way.
As it seems, it is not possible to get a clean error message
when passing an "object" with no custom string conversion;
instead, some overload for an rvalue-ostream kicks in.
probably I'll go for shoing a type string in these cases
2016-01-04 22:21:09 +01:00
b96fd1299d
preparation( #985 ): purge any remaining direct uses of boost::format
...
now we use boost::format through our own front-end util::_Fmt
solely, which both helps to reduce compilation time and code size,
and gives us a direct string conversion, which automatically
uses any custom operator string() available on arguments.
While desirable as such, I did this conversion now, since
it allows us to get rid of boost::str, which in turn helps
to drill down any remaning uses of our own util::str
2016-01-04 01:38:04 +01:00
2704ad4512
decide upon the actual mechanics of command binding and invocation
2015-11-28 08:15:32 +01:00
08e7e3df15
prefer more readable bool operator spelling
...
especially the '!' for negation is sometimes too terse
and easily overlooked.
2015-09-25 03:12:04 +02:00
1c8cddba84
clean-up visibility of lib::P
...
this was introduced into namespace mobject and spread from there.
Since the habit is to use more specific typedefs like PClip,
it is preferrable to spell out the full namespace
2015-08-16 01:35:29 +02:00
7fcee74960
formatting helper to join a collection into a string
...
Ouch!
Why does C++ lack the most basic everyday stuff?
It needn't be performant. It needn't support some fancy
higher order container. Just join the f***ing strings.
use Bosst?? -- OMG!! pulls in half the metra programming library
and tries to work on any concievable range like object. Just
somehow our Lumiera Forward Iterators aren't "range-like" enough
for boost's taste.
Thus let's code up that fucking for-loop ourselves, once and forever.
2015-08-16 01:35:28 +02:00
d064623bab
Reworked MultiFact( #388 ): switch in the new implementation
2014-09-14 23:58:05 +02:00
7be1b7d35d
Switch from TR1 preveiw to the new standard headers
...
- functional
- memory
- unordered collections
2014-04-03 22:42:48 +02:00
a344604f1b
Clang( #928 ): adjustments regarding scope and visibility
...
Clang doesn't allow to declare a private nested class as friend.
This is unfortunate, but likely correct to the letter of the standard.
As a workaround, now we're creating the instances within a static
function of DependencyFactory -- in the end this improves readability
A second issue fixed with this changeset is the scope of the
marker function. Clang is right, this isn't ADL, thus an inline
friend definition is simply not visible outside the class.
2013-10-20 21:51:28 +02:00
0ea37402d2
Ticket #934 : switch entire code-base to use the new Singleton factory
...
lib::Depend<TY> works as drop-in replacement for lib::Singleton<TY>
This changeset removes the convoluted special cases like
SingletonSub and MockInjector.
2013-10-20 03:19:36 +02:00
567ab3819b
WIP: draft an improved version of the Singleton factory
...
...this would both improve our general design and circumvent
the problems with Clang and static variables
2013-10-14 01:18:56 +02:00
5dfe5e099f
refactor namespaces for query and defaults manager
2012-12-01 08:44:07 +01:00
baefd74ae7
prepare refactoring of the Query interface
2012-11-25 02:04:19 +01:00
50885a065b
move asside lib/format.hpp
...
...to make room for a new more specialised header
2011-12-27 07:44:49 +01:00
24a8d6a926
generalised diagnostic context passes unit test
2011-12-24 05:57:28 +01:00
451b0abec5
spelling and typos
2011-12-24 05:48:31 +01:00
d9f84a9bfd
clean up lib/meta namespaces
2011-12-03 03:15:59 +01:00
b9d1899486
cleanup: rectify Proc-Layer namespaces (II)
2011-12-02 17:50:44 +01:00
eb79a00cf4
cleanup: rectify Proc-Layer namespaces (I)
2011-12-02 16:10:03 +01:00
89a9202c6c
cleanup: remove precompiled headers
...
we don't need them and they even tend to
increase build times due to unnecessary
compound-includes at some core headers
2011-12-01 23:32:34 +01:00
5350ef6dbe
split off and test-cover simple typelist utils
...
these simple utils (length of typelist, maximum size
containment test) are mostly not used in conjunction
with the more elaborate typelist manipulatino utils.
Moreover, we lacked a dedicated unit test
2011-09-25 19:26:11 +02:00
057f32e15b
rename the typelist-manipulation header
2011-09-25 19:26:09 +02:00
db2b02f0c5
define a front-end for explicit allocations
...
...currently just defined by forwarding
to std::allocator
2011-09-25 19:26:09 +02:00
1b0cb56dcc
implement PlayOut subsystem and draft OutputDirector
2011-09-25 19:25:55 +02:00
3f1b7651e9
GPL header whitespace
2010-12-17 23:28:49 +01:00
c4282560ce
fix two regressions
2010-12-12 01:53:23 +01:00
7043db90ee
introduce an explicit StreamType::ID
2010-12-10 17:39:39 +01:00
5c28b5d46e
re-read, verify and finish off the Scope, ScopeLocator and QueryFocus implementation
2010-10-16 02:21:19 +02:00
330eb2c243
extended for-each looping helpers. Closes #479
2010-01-04 14:48:00 +01:00
7b7e9096a3
Hook up scope contents iterator in PlacementIndex ( closes #343 )
2009-12-27 06:25:34 +01:00
0b289863e9
documentation correction. command entry is created on completed definition now.
2009-11-27 02:02:42 +01:00
cd51e5fef0
Proc Command handling frontend finished and usable for now
...
Additional convenience shortcuts and a bit of polishing.
Closes Ticket #300
2009-10-11 05:57:46 +02:00
c6d5f8a0b4
Proc Command framework: *first integraton round finished*
2009-10-11 05:57:46 +02:00
ae01f85452
replace existing implementation with CommandImplCloneBuilder
2009-10-11 05:57:45 +02:00
fdd940feba
clone builder implemented; problem resolved according to test
2009-10-11 05:57:45 +02:00
e32044e453
refactor CmdClosure to accept a cloneBuilder visitor
2009-10-11 05:57:45 +02:00
bb7ff5e317
WIP draft of clone builder implementation
2009-10-11 05:57:45 +02:00
a4ad41a4e9
Idea how to solve the problem with cloning the UNDO functor
2009-10-11 05:57:45 +02:00
0bcbf7fee0
fix further problems uncovered by test; allow for anonymous cloning
2009-10-11 05:57:45 +02:00
17c7160f02
refactor CommandDef, get rid of the possibility of re-defining. YAGNI!
2009-10-11 05:57:45 +02:00
37cd451367
fix sloppy definition of less-than comparison, which caused malfunction of registry
2009-10-11 05:57:45 +02:00
2ad896027b
why doesn't the reverse lookup return a Symbol?
...
damn! I have the vague rememberance that I had a reason for
not returning a Symbol. Anyway, here it goes...
2009-10-11 05:57:44 +02:00
d2acf48587
change semantics of state predicates, as it seems less surprising this way
2009-10-11 05:57:44 +02:00
95db5f9840
clarify state predicates in conjunction with command lifecycle
2009-10-11 05:57:44 +02:00
c8e049cdea
Command system basic unit test pass
2009-10-11 05:57:44 +02:00
5861597d7f
smash a glorious ref-to-local object bug
2009-10-11 05:57:44 +02:00
4f1c034b58
CommandRegistry: function test pass
2009-10-11 05:57:44 +02:00
07de2a767b
implement equality comparison on CommandImpl level
2009-10-11 05:57:44 +02:00
231278bafe
implemented comparison on function erasure, pending test
2009-10-11 05:57:43 +02:00
5068016805
WIP draft how the equality comparison on a function erasure could work
2009-10-11 05:57:43 +02:00
96d5ce74c4
Ticket #292 : outline unit test explicitly covering equality comparisions
2009-10-11 05:57:43 +02:00
4c3fc9e64d
WIP getting CommandRegistry_test to run
...
(equality on CommandImpl is still missing)
2009-10-11 05:57:43 +02:00
39f50b548c
Ticket #266 : simplify and combine the bind(...) mixin templates into a single header
2009-10-11 05:57:43 +02:00
2aac4e8ea0
remove spurious AcceptArgumentBinding mixin from ArgumentHolder
...
it's an implementation class, after all, and doesn't need a convenience API
2009-10-11 05:57:43 +02:00
abd23ae399
TypedAllocationManager (frontend) now in lib:: -- unit test pass
2009-10-11 05:57:43 +02:00
cb7c884293
handling patterns usable for now. Close #275
2009-10-11 05:57:42 +02:00
8136b0a4b8
HandlingPattern: basic unit test pass
2009-10-11 05:57:42 +02:00
248b87f344
Basic implementation of HandlingPattern settled for now
...
the ''real implementation'' (integrated with the ProcDispatcher)
is still missing, but it's enough to get the tests going
2009-10-11 05:57:42 +02:00
effbb49afb
Dummy HandingPattern implementation for unit tests
2009-10-11 05:57:42 +02:00
bb45ad67d8
WIP change how the undo operation is invoked
2009-10-11 05:57:41 +02:00
7e4a984ed4
Finish MultiFact for now; use it to set up a table of HandlingPatterns
2009-10-11 05:57:41 +02:00
bc6f8eebda
basically working draft; convoluted and with a lot of static magic
2009-10-11 05:57:41 +02:00
8c21f21acc
namespace cleanup: bring Singleton and Factory into lib::
2009-10-11 05:57:41 +02:00
e9b95e47cf
Command handling pattern? test-driven brainstorming
2009-10-11 05:57:40 +02:00
da8be6861c
WIP some musing about opening the session interface
2009-10-11 05:57:40 +02:00
83cd7fd830
Extract the type-based counting into a separate facility
2009-10-11 05:57:39 +02:00
c921d927a2
provide API for counting the allocations (unimplemented)
2009-10-11 05:57:39 +02:00
022a961284
finish implementation of CommandRegistry
2009-10-11 05:57:39 +02:00
6a77bebb6a
fix type for search in map
2009-10-11 05:57:39 +02:00
7fccecacce
WIP using the reverse index to find out the Command-ID
...
this includes using a Command* as key within a std::map
2009-10-11 05:57:39 +02:00
4c9af94e1d
improve and clean up the Command interface
2009-10-11 05:57:39 +02:00
8dc434a141
CommandRegistry implementation (...)
2009-10-11 05:57:39 +02:00
18c357eb4a
start using Symbol datatype instead of a disguised char*
2009-10-11 05:57:38 +02:00
f278d4521c
WIP: to make the ID type usable as hashtable key
2009-10-11 05:51:31 +02:00
c9f3a345dc
WIP towards CommandRegistry implementation
2009-10-11 05:51:31 +02:00
09b9f64842
diagnostics about captured state (on the CmdClosure API)
2009-09-21 03:33:56 +02:00
246c535569
Rewrite CmdClosure to actually invoke rather then to create a tr1::bind term
...
basically this should close Ticket #205 (some details missing)
2009-09-21 03:15:06 +02:00
925fa685b1
WIP change HandlingPattern to work on CommandImpl rather
2009-09-21 03:11:46 +02:00
fd7337f801
WIP drastically simplify command-mutation.
...
As we're using now a command frontend interface and
and CommandImpl frame in the Registry, most of the
functionaliry on Mutation's interface is superfluous.
Additionally, this separates Mutation and Closure.
2009-09-20 18:37:20 +02:00
d15903f1db
resolve design mismatch, as spotted by Ticket #260
...
Hopefully this closes #260
2009-09-07 03:25:00 +02:00
f21366833d
Merge latest work on the builder interface + NoBug adaptations
...
Merge commit 'bb8eb4055020c609245fe35a369c70e2acb1daf6' into session
2009-09-07 01:25:28 +02:00
6fc7aedd95
Merge NoBug-release related additions
...
Merge branch 'master' into builder
2009-09-05 19:16:13 +02:00
937df66774
apply Temp.Fix for Ticket #260
2009-09-05 19:14:36 +02:00
9269db45cc
WIP rename class Processor to RenderGraph (engine)
2009-08-29 13:19:43 +02:00
1b4aa98cdf
use the new stream type definitions to get ahead with the builder work
2009-08-29 12:19:26 +02:00
236e267af1
basic coverage for TypedAllocationManager
2009-08-29 03:10:34 +02:00
45c04b4463
re-visit the command impl allocation; add a quick-n-dirty implementation based on heap allocation
2009-08-29 02:16:28 +02:00
a845a4d234
unit test covering the cmd registry
2009-08-11 08:35:37 +02:00
0d4d3f25dc
implement mising diagnostics
2009-08-11 06:32:29 +02:00
8925c9a73b
see ticket 205
2009-08-10 01:33:26 +02:00
b9763b6c16
command frontend sort-of written now, pending integration test
2009-08-10 01:32:33 +02:00
5988b1d697
clean up command interface
2009-08-10 01:30:59 +02:00
9f40e4af9c
implemented definition and access of handling patterns
2009-08-09 21:55:47 +02:00
eada1aa745
now able to solve the store-as (clone) problem
2009-08-09 04:12:46 +02:00
da3cf5a6a6
rework the cmd registry to build on this
2009-08-09 03:48:19 +02:00
e178bd0811
completely factor out allocation/deallocation and placement new into a base class
2009-08-09 03:47:32 +02:00
82aee60b14
WIP attempt to solve the clone problem (draft)
2009-08-07 17:13:21 +02:00
09a594d2c5
WIP: considerations for a store-as (clone) operation
2009-08-06 18:00:19 +02:00
a677e2edde
second shot for implementing the binding: better the other way round
2009-08-04 02:25:50 +02:00
b6246cbb10
rename the operation "closeArguments", which is more to the point
2009-08-04 02:24:47 +02:00
efd6e99c99
first shot at solving the problem how to bind later on
2009-08-04 01:30:50 +02:00
155254dd9b
build new cmd impl object within registry
2009-08-03 18:17:41 +02:00
853aff1228
fixed and stubbed until it passes compiler again
2009-08-02 20:57:04 +02:00
327cbc822a
WIP extended binding and invocation to support the convenience shortcuts
2009-08-02 20:55:43 +02:00
4236d0649a
WIP: implement the basic operation of execution pattern
2009-08-02 18:00:03 +02:00
f2126c0764
WIP partially get new proc-layer command impl through the compiler
2009-08-01 23:57:12 +02:00
8971d667cf
WIP more implementation...
2009-08-01 17:14:27 +02:00
c2d9a02303
WIP some more nailing down of implementation details
2009-08-01 02:18:01 +02:00
c9e143995e
WIP phase out the superfluous static access functions
2009-07-30 20:50:57 +02:00
655177921f
WIP this might solve the race condition
2009-07-30 03:57:19 +02:00
eaa4adddde
WIP more implementation drafting...
2009-07-29 16:55:15 +02:00
19dd606f54
WIP some implementation drafting...
2009-07-27 02:38:53 +02:00
3ebb8d0285
WIP and more stubbing...
2009-07-26 02:00:47 +02:00
c85eb20cee
allow bind functions with return value
2009-07-26 02:00:00 +02:00
1db718c2b3
WIP more stubbing...
2009-07-25 19:21:50 +02:00
76b6f5d374
ooops, forgot some copy-n-pastes
2009-07-25 17:51:59 +02:00
211a2dabdd
WIP stubbing undefined operations...
2009-07-24 17:50:14 +02:00
c5f781596e
reorganise the intermediary command def context classes
2009-07-23 03:47:27 +02:00
d80f0cfb8d
WIP start some drafting
2009-07-21 04:49:00 +02:00
c85d1d3cd8
ArgumentHolder finished, low-level integration test pass
2009-07-20 07:03:18 +02:00
63bad834c1
comparisons and state detection now working as expected
2009-07-20 05:09:46 +02:00
33757bbac3
why the hell doesn't boost provide functor comparison operators..
...
(yes I know why: it can't be implemented 100% correctly)
2009-07-20 04:21:24 +02:00
e879e0c81b
implemented argument and memento comparisons (doesn't pass test yet)
2009-07-19 19:13:25 +02:00
f73c938850
ArgumentHolder reworked to use InPlaceBuffer; now passes basic tests
2009-07-19 08:32:49 +02:00
5f0c9e209e
remove any use of boost::function in favour of <tr1/functional>
...
this resolves some long standing problems with ambiguous placeholders
closes Ticket #161
2009-07-19 05:47:36 +02:00
584878e0f8
yet another variation of managing an object in-place
2009-07-18 22:07:46 +02:00
6510155e76
back on route: trying to get the ArgumentHolder to fly...
2009-07-18 19:36:32 +02:00
fa3d596a59
helper for accepting arguments passes unit test
2009-07-12 23:21:37 +02:00
66f7b1be17
WIP impl.draft for the helper...
2009-07-12 20:08:35 +02:00
b392d6bf84
WIP design a helper for accepting the arguments to bind
2009-07-12 19:30:55 +02:00
accaba4904
WIP impl draft for ArgumentHolder
2009-07-12 18:55:33 +02:00
9aa5ba560c
finish and tidy up control::Mutation, unit test pass
2009-07-10 19:04:01 +02:00
e892a0087a
remove this bool check...
...
seems to be overengineering! The same information can be easily accessed throught the ArgumentHolder
2009-07-10 19:00:40 +02:00
6bd1e8e179
tidy up and finish the MementoTie + unit test
2009-07-09 20:47:21 +02:00
9e95ec8b60
MementoTie unit test pass
2009-07-09 18:35:22 +02:00
c7b6165c6c
WIP resolved the simple mismatches, but still...
2009-07-08 05:36:02 +02:00
2348a5af2b
WIP draft capturing mechanism implementation, using the new tools and helpers...
2009-07-06 05:26:31 +02:00