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