Michael Ploujnikov
fd4504c9de
merge ECHO with TRACE
2010-01-08 16:38:35 -05:00
36cd34e9b1
Placement: correct handling of ID generation on copy construction
2010-01-08 04:00:14 +01:00
92ad5d1994
change to lib::BoolCheckable for the self-valididty check
2010-01-08 03:59:30 +01:00
836f533a2f
add equality comparison and identity handling
2010-01-08 03:59:01 +01:00
8c7894943c
add equality comparison to the HashIndexed (mixin base)
2010-01-08 03:56:21 +01:00
Michael Ploujnikov
56cf53adb3
fix compilation
2010-01-07 18:36:51 -05:00
Michael Ploujnikov
4708326b77
Merge branch 'minor-fixes' into second-tp-attempt
...
Conflicts:
src/backend/threadpool.c
src/backend/threads.c
2010-01-07 18:27:09 -05:00
Michael Ploujnikov
30a46a6255
Merge remote branch 'public/minor-fixes' into minor-fixes
...
Conflicts:
src/backend/threadpool.c
src/backend/threadpool.h
src/backend/threads.c
2010-01-07 18:24:25 -05:00
Michael Ploujnikov
d78a826d39
Merge branch 'minor-fixes' into second-tp-attempt
2010-01-07 07:18:59 -05:00
Michael Ploujnikov
d989babc8a
Merge remote branch 'ct/for_plouj2' into second-tp-attempt
...
Conflicts:
src/backend/thread-wrapper.hpp
src/backend/threadpool.c
src/backend/threadpool.h
src/backend/threads.c
2010-01-07 07:18:23 -05:00
a56e107fe0
PlacementIndex self-verification implemented and passes compiler
2010-01-07 08:29:27 +01:00
2fd7a2f6f9
patch temporary re-entrance problems on session creation (maybe #495 )
2010-01-07 08:28:54 +01:00
5cc3af3009
document the changed/new behaviour by unit test
2010-01-07 04:40:10 +01:00
3525b77126
somewhat tricky modification of for-each, allowing inline calls
2010-01-07 03:10:02 +01:00
Michael Ploujnikov
0b961b9784
Merge remote branch 'ct/for_plouj' into second-tp-attempt
2010-01-06 17:30:16 -05:00
Michael Ploujnikov
d8234db7b3
Merge remote branch 'ct/for_plouj2' into second-tp-attempt
2010-01-06 07:48:36 -05:00
Michael Ploujnikov
c707f94929
update c++ wrapper to match the C API
2010-01-06 07:42:42 -05:00
226ed37e30
now able to compile PlacementIndex self-check code!
2010-01-06 07:49:25 +01:00
665bd19f8a
use this to get the distinct keys of a multimap
2010-01-06 06:53:29 +01:00
ff2113e61f
implement an duplicate-value filtering iterator
2010-01-06 06:19:30 +01:00
0081b36793
Itertools: add caching to FilterIter
...
filter predicate is now evaluated at most once
2010-01-06 06:16:30 +01:00
2ad85dbb07
bugfix and test coverage
2010-01-06 04:14:16 +01:00
2a5b080dd7
implement IterSource adapter for STL map and hashmap
2010-01-06 03:38:02 +01:00
030a7d3813
basic IterSource implementation passes unit test ( #490 )
2010-01-05 05:21:13 +01:00
16962ae714
IterSource implementation draft
2010-01-05 04:10:23 +01:00
ea5668c5e3
WIP define expected usage of IterSouce
2010-01-05 02:53:20 +01:00
73613c1e7d
WIP: draft better arrangement of the PlacementIndex validation code
...
but still need yet another iterator related lib module
2010-01-05 01:31:22 +01:00
Michael Ploujnikov
223e79cc4a
replace mutex with condition variable in threadpool
...
use TRACE instead of ECHO
(based on cehteh's suggested code)
2010-01-04 17:03:47 -05:00
330eb2c243
extended for-each looping helpers. Closes #479
2010-01-04 14:48:00 +01:00
cd3a77649e
use the (new) iterable classification to mask for_each overloads
2010-01-04 11:19:01 +01:00
7d913dc558
start moving some metaprogramming helpers to lib::meta
2010-01-04 10:08:14 +01:00
64cedb6345
implemented compile-time detection of STL or Lumiera iterator
...
closes #482
2010-01-03 05:43:33 +01:00
e838d46336
Fix: operator++ needs to return the actual target type
...
see Ticket #486
2010-01-03 05:42:35 +01:00
e27d03c501
simple duck detecor components pass unit test
2010-01-02 09:07:10 +01:00
8777aa585a
duck detector (lib helpers): initial implementation draft
2010-01-02 08:09:40 +01:00
f517cfb19a
Yess we can! Invented a statical duck-detector!
2010-01-02 06:26:56 +01:00
Michael Ploujnikov
7a507a0cee
don't put threads in a detached state
2009-12-31 15:09:22 -05:00
Michael Ploujnikov
03fe6dd658
properly initialize and de-initialize the thread condition variable
2009-12-31 07:37:28 -05:00
Michael Ploujnikov
c4e1fdaf9a
document lumiera_thread_destroy() and lumiera_thread_delete()
2009-12-31 07:32:55 -05:00
Michael Ploujnikov
ad404bd41a
remove unused old code
2009-12-31 07:30:46 -05:00
Michael Ploujnikov
d63a6066a0
insert a space between the function name and the ( in each function call
2009-12-31 07:27:45 -05:00
Michael Ploujnikov
9c60d88c56
remove thread limiting logic from the threadpool
2009-12-31 07:24:07 -05:00
Michael Ploujnikov
69277b6770
remove unused function pool_thread_loop()
2009-12-31 07:18:29 -05:00
e94927d5a3
standard case (using STL container) solved, incl. binding arguments and member functions
2009-12-31 03:25:25 +01:00
e7fcfaca8d
problem was: compiler couldn't figure out the return type
...
thus let's give a hint...
2009-12-31 02:51:58 +01:00
9730ff4183
trying to track down a strange compiler warning
2009-12-31 01:21:45 +01:00
2b46574da3
move the for_each helpers into a separate header
...
(because util.hpp is used pervasively, and I don't want
<tr1/functional> in such a widely used header...
2009-12-29 04:39:27 +01:00
0dca7cbb4d
not-yet-implemented....
2009-12-29 04:30:11 +01:00
6e956f24ab
WIP: drafted PlacementIndex validity self-check
2009-12-28 03:32:42 +01:00
c49d8321f6
fill in documentation and missing test cases
2009-12-27 06:36:52 +01:00
7b7e9096a3
Hook up scope contents iterator in PlacementIndex ( closes #343 )
2009-12-27 06:25:34 +01:00
26c506c0d6
rewrite TransformIter, allowing to return references ( closes #475 )
2009-12-27 04:03:00 +01:00
Christian Thaeter
88195087d6
recondition to condition,
...
remove the mutex from the pool
rename park to release :P
2009-12-24 01:54:49 +01:00
Christian Thaeter
6b4415d8fa
nobugify
...
declare and init the nobug flags and use them for logging diagnostics
2009-12-24 01:50:59 +01:00
Christian Thaeter
026fab07dc
cosmetics, deadcode removal
2009-12-24 01:46:43 +01:00
Christian Thaeter
bddb23d111
remove threadpool_unlink()
...
thread removes itself from the list, this is trival in place
2009-12-24 01:45:44 +01:00
Michael Ploujnikov
6f5578ba10
fix a copy+paste mistake in LUMIERA_RECCONDITION_SECTION_CHAIN and add a test-case for it
2009-12-23 18:14:29 -05:00
Michael Ploujnikov
f2406c23a1
bork bork bork
...
by pulling this you agree to...
2009-12-23 13:10:31 -05:00
534ae16605
implemented this FunctionResult template, needed for Ticket #175
2009-12-23 04:46:09 +01:00
97faf3dcb8
ItemWrapper unit test pass. Closes #476
2009-12-21 07:52:58 +01:00
e5ab9d73eb
add specialisation to deal with wrapping a reference...
2009-12-21 06:19:56 +01:00
6a7f325ecf
static assert to protect against misguided equality comparison
2009-12-21 05:45:02 +01:00
3db676fa32
base implementation fo the ItemWrapper
2009-12-21 05:44:29 +01:00
83eb6976cd
draft an universal val/ref wrapper, needed by TransformIter.
...
Seemingly I've hit a nasty problem here, because PlacementIndex
should return an Placement&, but this is being fetched
after-the fact from within the iterator.
2009-12-20 04:33:24 +01:00
4773305853
Fix itertools: allow TransformIter to return an reference
2009-12-19 03:55:02 +01:00
4afa1ada5b
WIP implement scope content enumeration
...
unresolved problem with TransformIter yielding a reference
2009-12-18 05:05:16 +01:00
Michael Ploujnikov
24e87c815d
remove old functions pthread_runner and lumiera_thread_run
2009-12-17 22:08:57 -05:00
Michael Ploujnikov
3999101f30
Merge branch 'for_plouj' of git://git.lumiera.org/lumiera/ct into second-tp-attempt
2009-12-17 21:31:23 -05:00
Christian Thaeter
d7db383134
Sectionlock needs a 'user' handle with new nobug
2009-12-18 03:14:47 +01:00
Michael Ploujnikov
547ff2b772
Merge branch 'for_plouj' of git://git.lumiera.org/lumiera/ct into second-tp-attempt
2009-12-16 22:36:38 -05:00
Christian Thaeter
5c7abbded9
Fix: race conditions with the nobug resource tracker
...
* requires new nobug version
* 40components.test "Type-based contexts" TypedCounter_test hangs
for unknown reason, temporary disabled
2009-12-17 03:49:02 +01:00
9f09a8aa49
push creation of the root MObject to users of PlacementIndex
2009-12-17 03:16:08 +01:00
d7aab2990f
placeholder implementation of Label MObject
2009-12-17 03:14:59 +01:00
e3de0aac7c
WIP handling of the model root element within the index
2009-12-16 04:54:36 +01:00
73fcc78cb3
PlacementIndex checks for bottom (invalid) ID
2009-12-13 05:49:08 +01:00
b74a505c44
change implementation of "bottom" PlacementRef to 0-LUID
2009-12-13 05:48:05 +01:00
e89b4503fd
detect if the session is up and opened, lock PlacementRef else
2009-12-13 04:27:57 +01:00
6c187224eb
get it through the compiler again...
2009-12-12 05:03:50 +01:00
5fd2a85400
cleanup of BuilderTool includes
2009-12-12 03:51:26 +01:00
628ad8a31d
WIP add a new kind of MObject: the model root
2009-12-12 03:50:41 +01:00
fd782eb139
WIP: change management of test/mock PlacementIndex
...
now lifecycle of this mock index is managed automatically
from within the session services. This allows to get
rid of the smart-ptr creating factory. As a consequence,
PlacementIndex now resides directly within SessionImpl.
2009-12-11 02:49:12 +01:00
Michael Ploujnikov
41bb8b7e78
make a TODO note about the finished condition variable
2009-12-03 09:29:56 -05:00
Michael Ploujnikov
098d801d00
give each thread pool a separate pthread_attr_t structure to configure
2009-12-02 22:21:49 -05:00
Michael Ploujnikov
afe135f43e
add a lock around thread pool list access in lumiera_threadpool_release_thread()
2009-12-02 13:48:08 -05:00
Michael Ploujnikov
eedfafb0d0
convert lumiera_thread_state to using the enum string trick and use it in a test
2009-11-29 18:06:14 -05:00
Michael Ploujnikov
fc16de332f
convert lumiera_thread_class to using the enum string trick and use it in a test
2009-11-29 17:55:20 -05:00
488039c4c6
cleanup and write tests covering the newly implemented stuff
2009-11-28 23:37:58 +01:00
feb4480f85
Scope handling within the PlacementIndex
2009-11-28 22:18:09 +01:00
8a47f1a1ac
considerations regarding type handling in the PlacementIndex
2009-11-27 20:30:06 +01:00
66175181dc
basically implemented simple element access.
...
But the scope registration and the type problem remains unsolved
2009-11-27 02:43:09 +01:00
cde45c021e
add basic storage and implementation of the PlacementIndex tables
2009-11-27 02:03:20 +01:00
0b289863e9
documentation correction. command entry is created on completed definition now.
2009-11-27 02:02:42 +01:00
Michael Ploujnikov
c31bc2791b
remove unnecessary REQUIREs based on my new understanding of nobug
2009-11-26 11:52:19 -05:00
Michael Ploujnikov
01223ef6ba
kind vs class naming rationale
2009-11-26 11:45:34 -05:00
Michael Ploujnikov
afd2035983
rename threadpool.kind[i].pool to threadpool.kind[i].list
...
rename threadpool.kind to threadpool.pool
2009-11-26 11:27:50 -05:00
Michael Ploujnikov
99eb790027
rename LUMIERA_THREAD_* to LUMIERA_THREADCLASS_* in enum lumiera_thread_class
2009-11-26 11:21:31 -05:00
Michael Ploujnikov
af80622ef5
begin implementing a 'soft' thread count limit per pool
...
add LUMIERA_DIE in cases where this soft limit is reached
add LUMIERA_DIE when pthread_create fails to create threads - serious
add a test which tries to break the soft limit
2009-11-26 10:24:18 -05:00
Michael Ploujnikov
98c608d4c0
check that we're creating valid lumiera_thread_structures
...
die on pthread_create errors that we shouldn't be handling
2009-11-26 10:24:18 -05:00
Michael Ploujnikov
085216fd61
remove "allocated thread*" messages from lumiera_thread_new() and update tests
2009-11-26 10:24:17 -05:00
Michael Ploujnikov
07962b5314
add comments about locking in lumiera_threadpool_release_thread()
...
output the size of the created thread struct
don't print "destroying thread" (lets tests become shorter with repeated matching)
add a test which spans many threads in all pools
2009-11-26 10:24:17 -05:00
Michael Ploujnikov
8e3d4e7b7a
fixed lumiera_threadpool_destroy() by using LLIST_FOREACH
...
added some checks to lumiera_threadpool_release_thread(), maybe too much
modified thread_loop() to return a known value - 0
added checks to lumiera_thread_new()
added a check to lumiera_thread_destroy()
made lumiera_thread_destroy() unlink the thread from a pool list
updated test case to match new debug messages
2009-11-26 10:24:17 -05:00
Michael Ploujnikov
d6d81f2e44
added lumiera_threadpool_destroy()
...
added locking and checks to lumiera_threadpool_acquire_thread()
added a nobug flag to threads.c
added lumiera_thread_destroy()
added lumiera_thread_delete()
2009-11-26 10:24:17 -05:00
Michael Ploujnikov
414b8b99c3
updated test passes
...
fixed problem with copying lists
2009-11-26 10:24:17 -05:00
Michael Ploujnikov
75696986e4
test passes
2009-11-26 10:24:17 -05:00
Michael Ploujnikov
10f79290a1
add lumiera_threadpool_release_thread
...
make the test compile
change from type to kind
2009-11-26 10:24:17 -05:00
Michael Ploujnikov
9dd838b129
acquire() test started, so far, everything just compiles
2009-11-26 10:24:17 -05:00
Michael Ploujnikov
775f6cbb5d
actually create or use a thread struct, still not associated with a pthread
2009-11-26 10:24:17 -05:00
Michael Ploujnikov
00eb4eda46
partial code skeleton
2009-11-26 10:24:17 -05:00
0186343909
finished implementation of QueryFocus (frontend handle)
2009-11-22 11:13:49 +01:00
4082ff919e
implemented connection between QueryFocus und current ScopePath
2009-11-22 10:32:08 +01:00
12dc0e2c2d
add unit test, write documentation. Closes #420
2009-11-22 07:26:51 +01:00
d90812e64b
implement a stack of ScopePath frames
2009-11-22 04:36:14 +01:00
665eed5f1b
new logging flag for the session
2009-11-22 04:35:37 +01:00
46eae1c03a
add a refcount field (for intrusive refcounting) to ScopePath
2009-11-22 03:48:52 +01:00
36e342fc11
Implement ScopePath functionality. Closes #322
2009-11-22 01:16:33 +01:00
27390b5732
add query for path/location to ScopeLocator
2009-11-22 01:15:31 +01:00
451253ae8a
utility to append elements from an Lumiera Forward Iterator until exhaustion
2009-11-22 01:14:27 +01:00
c328945cb4
commented the ScopePath API
2009-11-21 21:33:01 +01:00
ed86c97881
Defined/Stubbed all required ScopePath operations
2009-11-21 20:55:14 +01:00
b7987cf3ce
define iteration on ScopePath as reverse iteration on the contained Scopes
2009-11-21 04:48:29 +01:00
b2849c6099
defined and implemented equality of scopes
2009-11-21 02:49:24 +01:00
ce98bd9bca
Finished basic concept how to establish a current query focus (Ticket #403 )
2009-11-20 22:00:15 +01:00
cdb84a9b16
refining the draft for ScopeLocator
2009-11-20 19:58:22 +01:00
11463da463
better use an enum for the ScopeQuery kinds
2009-11-18 04:53:49 +01:00
c01f774344
expose the new query-for-contents facility as session service
2009-11-18 04:23:46 +01:00
9514970b6c
refactor most of the session-contents-query impl into a dedicated *.cpp
2009-11-18 04:11:27 +01:00
002a0a97e6
add remaining bits to get query-for-session-contents impl to compile
2009-11-17 03:01:18 +01:00
7d6fa03c51
allow for Goal subclasses to provide copy operations, while prohibiting direct copy
2009-11-15 16:28:42 +01:00
09c0cacee2
add comparison to c-string for Literal
2009-11-15 16:27:56 +01:00
34dc8fa4de
mark for later high-level model extension (Ticket #414 )
2009-11-15 01:09:21 +01:00
7dcb59333d
WIP draft of the complete query-for-session-contents implementation
2009-11-15 01:08:29 +01:00
a10a237b90
rename "MO" --> "MX" to avoid confusion with MObject
2009-11-14 23:07:01 +01:00
017c668d7a
WIP outline of the index query resolution
2009-11-13 16:32:22 +01:00
981ea94708
finished the PlacementIndex API.
2009-11-13 04:52:48 +01:00
d0c905b5c9
add an transforming iterator to the itertools
2009-11-13 03:26:20 +01:00
a86517bd4f
extend the protocol of the itertools core, abstracting the increment
2009-11-13 01:02:31 +01:00
a1448ed6f6
WIP first attempt to remove the query-interface from PlacementIndex
2009-11-12 20:15:52 +01:00
d658415144
WIP about providing scope contents discovery, backed by the index
2009-11-12 02:15:02 +01:00
bfd97bd98e
now SessManagerImpl can go down entirely on implementation level
2009-11-11 06:01:25 +01:00
5535a7a00e
phase out the existing access functions, now superseeded by SessionServices
2009-11-11 05:44:58 +01:00
1a76ce7a5f
implement two of the SessionServices (internal APIs)
...
providing implementation-level access to the PlacementIndex
and especially installing a mock index for unit tests
2009-11-11 05:30:24 +01:00
7da8844581
first steps towards using the new SessionServices access mechanism
...
add the necessary hooks and change the SessionImpl accordingly.
Still using the old access method for any real code
2009-11-09 07:35:08 +01:00
79d5e49a74
defined basic session lifecycle and service access. Closes Ticket #400
2009-11-09 05:21:59 +01:00
043d4f42fa
working example implementation of the access mechanism to session internal APIs
2009-11-09 02:08:37 +01:00
2765981db9
build a complete simplified mock Session/SessionManager
2009-11-08 20:13:11 +01:00
f1ce05ea9d
clean up some overly clever definitions
2009-11-08 19:47:51 +01:00
aaf19f4d89
First draft regarding the access of session implementation services (Ticket #400 )
2009-11-07 19:49:29 +01:00
6dbbc54247
document better how SingletonRef works
2009-11-07 17:37:37 +01:00
78f9b2b1c5
WIP refactor ContentsQuery to share implementation with a PathQuery facility
2009-11-07 02:49:55 +01:00
bdb8bc2c98
move PlacementIndex into namespace session
2009-11-06 19:27:53 +01:00
bb8c018214
integrate QueryFocus with the new ContentsQuery facility
2009-11-06 18:42:15 +01:00
e0e9b7c2c0
WIP about how to link the QueryFocus system to the session/PlacementIndex
2009-11-04 04:56:25 +01:00
Michael Ploujnikov
ce4e3608d0
make sure luidgen picks up the nobug cflags
2009-11-02 13:51:18 -05:00
8c7727704c
Finish ContentQuery definition; relying on PlacementIndex
2009-11-02 07:37:15 +01:00
1c72cbb599
Iterator tools: (1) a filtering iterator
2009-11-02 06:06:43 +01:00
356fe8fd13
change the ContensQuery stub to fit into the QueryResolver in its current form
...
Actually, the implementation within PlacementIndex is missing.
Moreover, I think now that PlacementIndex shouldn't implement
QueryResolver directly.
2009-11-01 03:47:35 +01:00
2620c38ed9
documentation, close some tickets...
2009-11-01 02:02:21 +01:00
9ff7b1eaeb
Implement registration of a resolution function. QueryResolver_test pass
2009-10-30 20:33:44 +01:00
f70f8c4e4a
implemented the mechanism for dispatch-to-concrete resolution
2009-10-30 18:37:08 +01:00
f35b422316
SubID: add (preliminary) hash impl; unit test pass
2009-10-30 06:50:26 +01:00
df562a186f
oops... fix a bug in Literal's hash function
2009-10-30 05:15:26 +01:00
006392f6ea
yet another random test helper
2009-10-30 03:53:51 +01:00
ceb4d4b5ea
reworked MultiFact passes unit test. Closes Ticket #376
2009-10-30 00:32:26 +01:00
1dccd37c70
re-order MultiFact implementation to get it to compile
2009-10-29 22:00:17 +01:00
d2721378d5
get QueryResolver to compile
2009-10-29 21:59:02 +01:00
54aa7b4afe
WIP fixes and stubbing to get at compiling the MultiFact
2009-10-29 04:32:00 +01:00
3145064a21
change IterAdapter iteration control API to use free functions
2009-10-29 04:31:16 +01:00
0cef067c11
WIP adapt unit test and the argument-accepting MultiFact specialisation
2009-10-28 04:45:17 +01:00
2530e8c1a1
WIP try to create an extension point to MultiFact, allowing to accept argument(s)
...
sketch of an idea how to add an extension possibility
without messing up the basic MultiFact template
2009-10-27 05:13:38 +01:00
ec4b2eef00
WIP: test-driven brainstorming: how to build the query dispatcher table?
2009-10-26 01:39:25 +01:00
5968d35cdf
WIP maybe resolved now the knot in my design...?
2009-10-25 21:39:02 +01:00
5d9671cb2c
WIP place a ref-count into the result iterator
2009-10-25 16:18:53 +01:00
c3441ac26a
WIP Query<TY> implementation draft...
2009-10-24 00:23:22 +02:00
452e1bb727
WIP draft an unit test detailing QueryFocus operation
2009-10-20 05:34:58 +02:00
f01da49955
WIP planning the operations needed on QueryFocus
2009-10-20 04:31:50 +02:00
f0c9beb5c6
WIP design the ScopePath API by unit test
2009-10-18 19:08:21 +02:00
474c293197
first shot at Ticket #355 : use a default-constructed "invalid" PlacementRef
...
Making PlacementRef default constructible this way
would resolve the immediate problems; as any access
goes through an index lookup and thus will throw.
The bool check on this special ref yields false,
so this solution seems to fill the bill.
2009-10-18 01:30:43 +02:00
2e62a3b01b
WIP continue design how to discover session contents
2009-10-17 21:31:03 +02:00
2ca89010d1
introduce pointer-to-PlacementIndex typedef
2009-10-17 21:29:16 +02:00
b03577ea3f
document the stipulations lib::IterAdapter puts on his parameter types
2009-10-17 15:40:37 +02:00
3b1301be14
WIP stubbed some of the operations to implement on class Scope
2009-10-17 02:16:19 +02:00
cfc17e75ba
refined and clarified planning of Scope and QueryFocus
2009-10-16 21:20:30 +02:00
9451a6888f
start definition of new session::Scope interface
2009-10-16 03:13:57 +02:00
edbd54b062
Initial planning regaring the QueryFocus
2009-10-14 05:48:24 +02:00
193fd2d66b
Start the new Session structure with Timeline and Sequences
2009-10-14 05:39:49 +02: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
7812792f75
unit test showing current malfunction of UNDO state due to cloning
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
fea85acd0e
equality comparisons on function erasure objects covered
...
...well, as good as possible, as boost refuses to implement this feature
2009-10-11 05:57:43 +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
7bac890790
Test suite runner: pass exit code = 5 when having caught an exception
2009-10-11 05:57:42 +02:00
3835399c5f
Testsuite: catch exceptions at the level of invoking individual tests
2009-10-11 05:57:42 +02:00
cb7c884293
handling patterns usable for now. Close #275
2009-10-11 05:57:42 +02:00
c3d767b444
try out a recursive approach for the extensible ID
...
more of a general feasability study... to be continued later
2009-10-11 05:57:42 +02:00
455ee34344
start brainstorming on #279 (extensible ID)
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
b7204e05ed
removed all the magic and made it simply instance based
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
5910f21383
first draft impl regarding automatic installation of a singleton facotry into MultiFact
2009-10-11 05:57:41 +02:00
8ee76b1bfd
configurable factory? test-driven brainstorming
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
777e80dd64
use BoolCheckable instead of explicit operator bool()
2009-10-11 05:57:40 +02:00
9376bff71e
race fixed, test pass
2009-10-11 05:57:40 +02:00
f6397ef11c
implemented TypedCounter and TypedContext.
...
Test basically pass, but shows an interesting
deadlock from time to time
2009-10-11 05:57:39 +02:00
373f9a5724
fix Ticket #272 (synchronisation from const methods)
2009-10-11 05:57:39 +02:00
517fb8b200
multithreaded torture test for the (planned) TypedCounter
2009-10-11 05:57:39 +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
109cc4701c
unit test to verify building a hashtable with Symbol keys
2009-10-11 05:57:38 +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
4517766517
integrating branches
...
Merge commit '7f09f57cbde4932269c390da70c42a622cd1275f'
2009-10-11 05:50:27 +02:00
f313a0fb14
include GUI work
...
Merge commit 'lumi/gui'
2009-10-11 05:46:46 +02:00
3b1e2f00a8
rewrite simulated "subsystem". Hopefully closes Ticket #253
...
- clarify the meaning of run(true), run(fail), run(throw)
- do a real handshake between start() and the subsystem thread
- avoid accessing the SubsystenRunner after signalling termination
2009-09-29 02:38:07 +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