f7588c36c4
basic time value entites defined roughly complete
2011-01-13 03:36:07 +01:00
643859f6b8
add a mutable time value with full arithmetics
2010-12-28 02:27:42 +01:00
0c45fc47f3
defining the first elementary operations for time values
2010-12-28 02:27:41 +01:00
9d91869098
move Variant to lib namespace, a bit of cleanup and clarifying the code
2010-12-28 02:27:41 +01:00
09d400d5bc
put asside the existing "lumitime" to build a new hierarchy from scratch
...
existing code will still use lumitime.hpp for now
while we're about to reorganise time handling altogether
2010-12-28 02:27:41 +01:00
784b094fa7
fix compilation problems with draft code
2010-12-26 23:00:34 +01:00
f18226e8ac
WIP start drafting simple time values, offsets and intervals
...
questions: what is mutable / immutable?
what is the distinction between TimeValue and Time ?
what conversions make sense?
what mutations / operators to support?
2010-12-22 04:49:57 +01:00
000486e126
WIP create empty unit tests for time quantisation/handling
2010-12-22 04:09:27 +01:00
cce72e611e
WIP: new namespace and compliation units for time quantisation
...
namespace lib::time
lumitime.cpp will define the basic time wrapper
quantiser.cpp the grid alitnment and formatting wrapper
header for
- timevalues / ranges
- quantised time valuse
- timecode valuse
"lumitime.hpp" will contain the interface facilities
2010-12-21 02:05:13 +01:00
7fc462209e
some naming cleanup and namespace indentation fixes
2010-12-18 00:58:19 +01:00
3f1b7651e9
GPL header whitespace
2010-12-17 23:28:49 +01:00
4410830f72
Merge Fixture datastructure and Testsuite work
2010-12-17 22:51:27 +01:00
7043db90ee
introduce an explicit StreamType::ID
2010-12-10 17:39:39 +01:00
Stefan Kangas
41e6750163
Move time conversion logic from lumitime.cpp to time.c
2010-12-06 16:18:54 +01:00
145ad6c3a5
more (trivial) cleanup and renaming
2010-12-05 02:46:37 +01:00
5ba7468f41
OutputMapping implementation complete, pending unit test
2010-11-28 01:43:55 +01:00
c3d29d1eb3
OutputMapping: interface refactorings to yield a cleaner structure
2010-11-27 03:59:07 +01:00
645ddd284c
WIP Solution draft for defining an output mapping type
2010-11-25 04:52:49 +01:00
9473fd3d67
OutputDesignation implementation draft
2010-11-19 05:01:43 +01:00
250bfeaee5
use the new OptionalRef to protect session shutdown
...
The original version was sensible to static initialisation order,
which shold be resolved now, because of OptionalLink's dtor
explicitly disabling any further access.
2010-11-06 22:56:17 +01:00
bd361523d1
better use functor-style access instead of implicit conversion
2010-11-06 22:49:32 +01:00
f597e7c8b4
optional object link implemented and working
2010-11-06 22:32:08 +01:00
07f7837a7b
draft behaviour of a optional/switchable object link
2010-11-06 21:23:35 +01:00
4cef8474ed
fake-configrules: remove magic "make" token ( closes #707 )
...
use backdoor function on the StructFactory instead
Mark such backdoor-functions with Ticket #710
2010-11-02 04:09:06 +01:00
08d90be1b6
get the sesison element-tracker integration test to pass
2010-10-29 05:24:19 +02:00
d1dd3e2677
saveguard against deregistering from an alredy destroyed session
2010-10-20 04:42:22 +02:00
3e9c337ac0
review and verify lib::ElementTracker
2010-10-18 05:33:46 +02:00
b15a1c2d3c
changed wording of the error message
2010-10-16 02:21:20 +02:00
99f29f9795
now able to build a IterSource based opaque const Scope iterator
...
for this to work, scope-path.hpp injects an explicit specialisation,
causing the RangeIter defined in ScopePath to yield const Scope
2010-10-16 02:21:18 +02:00
02d6d6a65c
extract iter::TypeBinding into separate header to allow explicit specialisation
2010-10-16 02:21:18 +02:00
fdfb946d63
preparation to allow explicit type bindings for iter-adapter
2010-10-16 02:21:18 +02:00
e5de12fc7a
(draft) maybe solved the problem defining a scope iterator
...
actually that would require to extract the IterTraits
from iter-adapter.hpp to allow for such dedicate specialisations
2010-10-16 02:21:18 +02:00
2c58e595c0
augment IterSource adapters by definition through classical iterator range
2010-10-16 02:21:18 +02:00
d5cdd39f52
WIP trying to code up the public query function for scope paths
...
problem is how to get an iterator compatible with ScopeQuery...
2010-10-16 02:21:17 +02:00
Christian Thaeter
51e5b8a90c
FIX: missing stdint.h include in tmpbuf.c for SIZE_MAX
2010-07-21 06:13:07 +02:00
Christian Thaeter
c34e6d547e
FIX: tmpbuf.h for lib/time
2010-07-21 05:05:33 +02:00
Christian Thaeter
0158c1b88d
WIP: factor tmpbuf out of safeclib
...
* tmpbuf got its own implementation files
* Some optimizations on the tmpbuf implementation, handling tiny,
small and huge allocations better.
* tiny allocation smaller than sizeof(void*) are not aligned
* Reduced the ring sizes to 16 (configureable in tmpbuf.h)
This is only the tmpbuf refactoring, fixes following on the next
commits.
2010-07-21 05:05:26 +02:00
Christian Thaeter
bc989dab7a
put 'VCALL' into its own lib header
...
There will be some use for it at other places too (config system)
2010-07-21 04:50:04 +02:00
788e5646af
Testsuite: throw if Test-ID is unknown (Ticket #649 )
2010-07-17 01:07:23 +02:00
Christian Thaeter
99d5d3765f
FIX: Add remaining tests to the Makefiles, sort Makefiles
2010-07-16 21:44:44 +02:00
e16ca49894
Merge in new (experimental) 'advice' concept
2010-07-14 04:33:42 +02:00
fc3e43bb19
re-reading my design and plannings from March, identiyfying next steps to take
2010-06-13 03:34:12 +02:00
68aefe5074
implement a simple singleton holder for NIL/default objects
2010-06-12 19:45:01 +02:00
2debae62e0
add locking to protect the advice index table mutations
...
clearly, this locking is quite global, and this couldb be
improved by using a more elaborate index structure
2010-06-12 19:32:25 +02:00
e020601ebd
refactor AdviceSystem access
2010-06-12 19:06:56 +02:00
7b8f02ef20
change index/solution interface into protected
...
not to be used by client code, only by the index
2010-06-12 17:51:55 +02:00
a93d8a42e4
use killer-stash to resolve the AdviceSystem memory leak
2010-06-12 03:33:40 +02:00
cb838ba5b6
extend killer-stash to allow registration of custom deleter functions
2010-06-12 03:12:02 +02:00
59145e0f14
Refactor storing of advice to prepare for actually managing the storage
2010-06-11 04:12:11 +02:00
4fb884669b
ooops... didn't invoke the dtor when releasing an Advice holer
2010-06-08 04:26:28 +02:00
eb19f59ba0
deleter memorising component passes unit test ( #629 )
2010-06-07 03:32:41 +02:00
9aca348870
code up implementation of this killer-stash
2010-06-07 02:14:10 +02:00
6b90767468
draft a component to manage deleter functions
2010-06-06 04:26:23 +02:00
dee4c33c55
change the index-interface from free to member functions
...
part of Ticket #628
2010-06-06 02:11:40 +02:00
2360f9b4c0
Advice colaboration: implemented and passes basic unit test
2010-06-05 05:09:42 +02:00
7d93dae8ea
fix some simple problems (but doesn't pass tests yet)
...
looks like a logic error: new advice::Request got solution
2010-06-04 20:10:46 +02:00
203b955a33
add preliminary buffer memory management by heap allocation
...
TODO: use the lumiera pool allocator, prevent leak of any
advice data not explicitly retracted!
2010-06-04 19:33:42 +02:00
5a615ee4f8
consider advice::Index exception safety
2010-06-04 18:39:39 +02:00
7895ce5f49
solve the problem with re-binding and advice::Request
2010-06-04 17:25:33 +02:00
666d57f6ef
code up the obvious part of the AdviceSystem implementation
2010-06-04 04:35:40 +02:00
d0e7f9b77d
use the NullValue holder to solve the problem with default advice solutions
...
Implementation is simple, but the implications might be tricky
2010-06-03 04:40:38 +02:00
72c01e12c9
implement a simple singleton holder for NIL/default objects
2010-06-03 04:40:38 +02:00
91c2763fa4
WIP considering how to manage default / fallback advice
2010-06-03 04:40:38 +02:00
a9595d0a7f
refactor link to the advice system into separate baseclass
2010-06-03 04:40:38 +02:00
74e12dd17a
factor advice holding buffer into separate Class
2010-06-03 04:40:37 +02:00
d5ebe14d73
add (protected) calls to the AdviceSystem
2010-06-03 04:40:37 +02:00
69af735070
reconsider advice implementation. Investigate some tricky implementation decisions
2010-06-03 04:40:37 +02:00
7dcdff3287
advice-basics: stubbed and fixed to pass compiler
2010-06-03 04:40:37 +02:00
83b5c8c2c2
WIP code up external advice API
2010-06-03 04:40:37 +02:00
c9437b3bff
binding index unit test pass
2010-06-03 04:40:37 +02:00
0c123e4af3
Bugfix
2010-06-03 04:40:36 +02:00
ca93b11010
provide self-verification. Advice index impl. now complete
...
but not yet tested...
2010-06-03 04:40:36 +02:00
d00d42b58c
code up the core solution finding logic
2010-06-03 04:40:36 +02:00
e0cfa6798f
implement the diagnostic operations
2010-06-03 04:40:36 +02:00
f1be9886fa
fix problem with comparisions / containment check
2010-06-03 04:40:36 +02:00
d4433fb3f3
WIP code high-level index functionality
2010-06-03 04:40:36 +02:00
bf02d6d03f
adapter interface for the test-entry
2010-06-03 04:40:36 +02:00
3c35e2a95f
WIP code up index functionality...
2010-06-03 04:40:36 +02:00
530940254e
stubbed advice binding index implementation
2010-06-03 04:40:36 +02:00
c8ac2b0447
planning the advice binding index implementation
2010-06-03 04:40:35 +02:00
0514c24487
Advice binding pattern finished, passing unit test
...
now detecting a lot of syntax errors
2010-06-03 04:40:35 +02:00
1e28c7f1ab
get the advice binding unit test to pass thus far
2010-06-03 04:40:35 +02:00
85f8035f92
Implement parsing of Advice binding pattern spec
2010-06-03 04:40:35 +02:00
f2269b7e78
Implement Advice binding pattern
2010-06-03 04:40:35 +02:00
f27024172f
Implementation skeleton for advice binding match
2010-06-03 04:40:34 +02:00
e3c963378f
outline some implementation details regarding the Bindings to match
2010-06-03 04:40:34 +02:00
3e2b78b670
fill in the basic definitions to make the draft test compile
2010-06-03 04:40:34 +02:00
abe8d876dd
Start planning the Advice implementation: skeleton of unit tests
2010-06-03 04:40:34 +02:00
0f6c2e84d2
test-driven brainstorming: TypedID usage
2010-06-03 04:37:22 +02:00
a78845507a
cleanup
2010-06-03 04:37:20 +02:00
e61eb01942
experimental fix for #307
2010-06-03 04:37:20 +02:00
82d8d26308
extend the map iterator adapter to work on STL ranges
2010-06-03 04:37:20 +02:00
939270063e
helper: take snapshot of a given Lumiera or STL iterator
2010-06-03 04:37:20 +02:00
81f87ba852
similar low-level iterator adapter for multimap value groups
2010-06-03 04:37:20 +02:00
c5e4725dcb
implement another wrapper to filter duplicates
2010-06-03 04:37:19 +02:00
a87889cbad
implement convenience helper to pick key/value from a map iterator
2010-06-03 04:37:19 +02:00
73a2aea50c
draft a low-level adapter to get all keys/vals of a stl::map
...
intention is just to use a thin wrapper, without
abstracting the implementation type (as IterSource does)
2010-06-03 04:37:19 +02:00
57a9b1a270
Iterator adapter to ennumerate all values to a multimap key ( closes #492 )
2010-06-03 04:37:19 +02:00
c9bf26d8c4
EntryID finished and passes unit test
2010-06-03 04:37:19 +02:00
2131488afb
test-driven brainstorming: simplified asset-like ID
2010-06-03 04:37:17 +02:00
c93dfc4f29
partially refactor into library
2010-06-03 04:37:16 +02:00
479bbbb6c7
clarify how deregistration works
2010-06-03 04:37:16 +02:00
dd3d22f950
implement registry for element-tracking. passes unit test
2010-06-03 04:37:16 +02:00
9ec865c3ab
Stubbing and definitions to get element-tracking to compile
2010-06-03 04:37:16 +02:00
55df5205a4
draft a mixin for adding element-tracking functionality
2010-06-03 04:37:15 +02:00
bfc18dfb94
consider using RefArray for the Session API
2010-06-03 04:37:14 +02:00
Odin Hørthe Omdal
792a595041
Fix for old GAVL versions (missing uint64_t)
2010-05-15 02:20:07 +02:00
Christian Thaeter
9d99300841
FIX : #619 , New Nobug required! version 201005.1
...
add the 'extra' argument to mpool dumps.
Solves Linking problems on some distros.
2010-05-12 00:46:39 +02:00
5b9aa5deb2
landing the new threadpool implementation
2010-02-15 00:48:52 +01:00
1c63a02e23
augment and round up the C++ thread wrapper
2010-02-14 23:39:15 +01:00
90d311dc1d
Error integration: error::Flag as subclass of State. Wrapped throw
2010-02-13 20:56:41 +01:00
dc991ca563
valgrind suppression: add some more cases to be filtered
2010-02-13 06:00:38 +01:00
b41bd20de4
push accessing the DiagnosticContext down one layer
...
accessing the DiagnosticContext now inline when
providing the paramters for calling the C-functions.
No change in functionality, but saves us a lot of
syntactic noise.
2010-02-13 05:33:08 +01:00
3466793976
repackage as a more general facility (DiagnosticContext)
...
implementation unaltered (just managing the NoBug handle)
2010-02-13 04:54:59 +01:00
4dfd7266b9
draft solution to factor out management of the resource handle
...
based on the idea of a diagnostic context stack
2010-02-13 04:03:27 +01:00
763f86fe0e
back out changes I do not want in lib/sync.hpp
...
especially, I do not want to pass a resource handle
through all locking function APIs; the memory
management of the resource tracker should better
be kept separate and not mixed with the monitor.
Also, I am rather reluctand regarding any extended
functionality for the monitor, like timed locks
or trylocks or read/write monitors. I think, the
monitor pattern is only beneficial when it is kept
fairly simple, advanced thread programming should
be pushed out into lib functions in the backend.
2010-02-12 05:22:17 +01:00
Christian Thaeter
80e2db4800
hook the resourcecollector into safeclib on backend startup
2010-02-08 17:47:26 +01:00
Christian Thaeter
d103346482
hook mpool into the resourcecollector and using safeclib allocations
2010-02-08 14:28:54 +01:00
Christian Thaeter
9feb01e4fe
add hooks for malloc/free to mpool, add (no-op) purge function
...
We will need this to hook the resourcecollector in
2010-02-07 20:53:51 +01:00
Christian Thaeter
b60d8aa907
FIX: error.c memory leak when destroying threads
...
the error context is dynamically allocated and must be freed, forgotten
this as errors originated from static strings initially.
2010-02-07 20:25:09 +01:00
Christian Thaeter
d350a250fa
Move the resourcecollector to the backend, closes #521
2010-02-05 08:58:19 +01:00
Christian Thaeter
01839d4e48
update for nobug-201002.1
2010-02-03 10:38:12 +01:00
Christian Thaeter
014c83ff5a
PTHREAD_ONCE_INIT can be a macro, fast init trick doesn't work then
2010-01-30 08:40:38 +01:00
Christian Thaeter
87465ff69b
little test-helper cosmetics
2010-01-30 07:20:09 +01:00
9a6f9b2ba5
PlacementIndex: possibly retaining type information on insert
2010-01-23 15:50:46 +01:00
Christian Thaeter
9fc68c9d32
Merge remote branch 'public/nobug201001.2' into backend_devel
...
* public/nobug201001.2:
integrating nobug context passing
updates for nobug 201001.2
Conflicts:
configure.ac
src/lib/condition.h
src/lib/reccondition.h
tests/backend/test-threads.c
2010-01-23 06:56:39 +01:00
Christian Thaeter
c15f2247d7
integrating nobug context passing
...
Somewhat more intrusive than the previous patch,
adds contexts everywhere except for sync.hpp where only default ctors
are used.
2010-01-23 01:40:27 +01:00
Christian Thaeter
8254b3fbda
updates for nobug 201001.2
...
dumping got a new api, surprisingly everything else works...
2010-01-22 23:21:48 +01:00
Christian Thaeter
e2c5aceec4
FIX: off by one error in time normalization
...
"The value of the nanoseconds field must be in the range 0 to 999999999."
2010-01-18 18:45:02 +01:00
Christian Thaeter
87918c657c
check wait condition before loop body
2010-01-18 14:23:23 +01:00
Christian Thaeter
b8336879f7
autoconf/automake cleanup
...
* refactor configure.ac to have distinct sections to configure each
subsystem.
* Dedicated LUMIERA_<subsys>_CFLAGS|_LIBS vars
* Fix Makefile.am's to use them, remove unnecessary dependencies
Stray dependencies to be refacored:
* tests/Makefile.am has dependencies on proc and backend
- should be moved to tests/library/Makefile.am etc anyways
* tests/lib/Makefile.am has dependency on GUI left
* src/tool/Makefile.am links GUI stuff generally, thats ok
* one threading test is broken, we don't care, merging new threadpool in
next.
2010-01-17 15:48:30 +01:00
Christian Thaeter
aea546554b
reworked sync.hpp using libraries locking functions
2010-01-14 21:15:13 +01:00
Christian Thaeter
dbb3b2e2e7
FIX: uhm .. forgotten to fix some stuff
2010-01-14 13:22:19 +01:00
Christian Thaeter
3e8d8590e9
C lumiera_error to C++ exception bridge
...
* error::Runtime exception class which transports the C error code
* lumiera::throwOnError() which throws when there is a pending
lumiera error, otherwise it does nothing
2010-01-13 20:30:10 +01:00
Christian Thaeter
c29ea07138
lumiera_error_expect() lets one easily handle expected errors
...
This is a convenience function which clears the error state when some
expected error occurred and lets one branch on this.
2010-01-13 17:41:26 +01:00
Christian Thaeter
f0483b1d8b
FIX: few glitches using nobug flags
2010-01-13 14:22:08 +01:00
Christian Thaeter
a287b13481
remove the LUMIERA_RESTRICT macro
...
all functions using restrict are inline and can be properly optimized by
the compiler, no restrcit necessary
2010-01-13 13:00:13 +01:00
Christian Thaeter
f78ec3b0ef
undo -Werror which slipped into the CXXFLAGS for the lib
2010-01-13 09:23:19 +01:00
Christian Thaeter
9c9161ef65
reccondition refactoring
2010-01-13 00:19:20 +01:00
Christian Thaeter
f1cf5aee60
condition var refactoring
2010-01-13 00:19:00 +01:00
Christian Thaeter
6816766182
rwlock refactoring
2010-01-13 00:18:48 +01:00
Christian Thaeter
059f086b4f
recmutex refactoring
2010-01-13 00:18:32 +01:00
Christian Thaeter
e7e9394f9b
refactor locking macros to functions, simpler macros
2010-01-13 00:16:43 +01:00
Christian Thaeter
b232a4f9f0
errors for locking
...
* add a 'unknown' error to the error system as fallback
* lockerror.c|h define all errors which can happen due locking
* lumiera_lockerror_set() translates posix errors to lumiera errors
* remove stale errors from sectionlock.h
2010-01-13 00:10:33 +01:00
Christian Thaeter
7b014012e8
WIP: refactor locks once again, new nobug, little simpler
2010-01-10 10:36:24 +01:00
Christian Thaeter
7fea4f79be
Sectionlock needs a 'user' handle with new nobug
2010-01-10 10:36:24 +01:00
Christian Thaeter
799fe34980
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
2010-01-10 10:36:24 +01:00
8c7894943c
add equality comparison to the HashIndexed (mixin base)
2010-01-08 03:56:21 +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
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
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
e94927d5a3
standard case (using STL container) solved, incl. binding arguments and member functions
2009-12-31 03:25:25 +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
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
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
b74a505c44
change implementation of "bottom" PlacementRef to 0-LUID
2009-12-13 05:48:05 +01:00
451253ae8a
utility to append elements from an Lumiera Forward Iterator until exhaustion
2009-11-22 01:14:27 +01:00
b7987cf3ce
define iteration on ScopePath as reverse iteration on the contained Scopes
2009-11-21 04:48:29 +01:00
09c0cacee2
add comparison to c-string for Literal
2009-11-15 16:27:56 +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
043d4f42fa
working example implementation of the access mechanism to session internal APIs
2009-11-09 02:08:37 +01:00
6dbbc54247
document better how SingletonRef works
2009-11-07 17:37:37 +01: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
2620c38ed9
documentation, close some tickets...
2009-11-01 02:02:21 +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
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
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
2e62a3b01b
WIP continue design how to discover session contents
2009-10-17 21:31:03 +02:00
b03577ea3f
document the stipulations lib::IterAdapter puts on his parameter types
2009-10-17 15:40:37 +02:00
7812792f75
unit test showing current malfunction of UNDO state due to cloning
2009-10-11 05:57:45 +02:00
c8e049cdea
Command system basic unit 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
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
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
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
777e80dd64
use BoolCheckable instead of explicit operator bool()
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
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
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
4517766517
integrating branches
...
Merge commit '7f09f57cbde4932269c390da70c42a622cd1275f'
2009-10-11 05:50:27 +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
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
1969adaf02
Integration of Builder/NodeFactory implementation draft. Stubbed to pass compiler
2009-09-05 18:15:58 +02:00
Christian Thaeter
f73cc47da6
Fix all things which broke compilation with NoBug 200909.1
2009-09-04 08:53:03 +02:00
Christian Thaeter
d50d9a30f2
FIX: compiler warnings in mpool.c
...
Some gcc versions warn about type aliasing errors here, by using char*
this is fixed (and actually the right type here).
2009-09-04 08:02:16 +02:00
83067aa318
WIP: ...to do so, some considerations regarding the entrance point..
2009-08-31 12:16:47 +02:00
209765def5
WIP: correct indentation, add some comments...
2009-08-30 14:11:14 +02:00
4214284d35
accessing the frameID from within the pull() call
2009-08-29 12:26:47 +02:00
06000769e2
re-read the code concerning the pull()-call, fix obvious mismatches, comment, plan...
2009-08-29 12:23:41 +02:00
ba05a6b135
test coverage for the more exotic RefArray impls
2009-08-29 12:23:41 +02:00
8c6b6c5192
WIP further RefArray implementations
2009-08-29 12:23:40 +02:00
1c388287c9
simple vector wrapping implementation of the RefArray interface
2009-08-29 12:23:40 +02:00
1b4aa98cdf
use the new stream type definitions to get ahead with the builder work
2009-08-29 12:19:26 +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
1533e5bd0d
fix a problem with formatting arbitrary types; reneable the broken tests
2009-08-28 20:33:20 +02:00
08d4be3149
Fixes for building on 32bit system
2009-08-21 02:42:11 +02:00
4acb42d272
autotools fixes...
2009-08-19 15:36:03 +02:00
9f40e4af9c
implemented definition and access of handling patterns
2009-08-09 21:55:47 +02:00
ba2d4dc761
a handle may also be activated by sharing ownership with a manager
2009-08-09 03:38:44 +02:00
59f42c28ef
get type-id string
2009-08-03 18:15:08 +02:00
853aff1228
fixed and stubbed until it passes compiler again
2009-08-02 20:57:04 +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
eaa4adddde
WIP more implementation drafting...
2009-07-29 16:55:15 +02:00
1db718c2b3
WIP more stubbing...
2009-07-25 19:21:50 +02:00
299c316ad4
Fix: containment check should take const args
2009-07-25 19:20:21 +02:00
76b6f5d374
ooops, forgot some copy-n-pastes
2009-07-25 17:51:59 +02:00
c85d1d3cd8
ArgumentHolder finished, low-level integration test pass
2009-07-20 07:03:18 +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
7f44de24d7
collecting some formatting & diagnostics utils here...
2009-07-19 08:03:54 +02:00
5784bd2819
Fix: use boost::operator! for binding expr. to avoid infinite recursion
2009-07-19 06:24:36 +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
3ecd8047df
assertion to guard buffer size limit
2009-07-19 00:41:37 +02:00
584878e0f8
yet another variation of managing an object in-place
2009-07-18 22:07:46 +02:00
3f8d82a13f
Victory! bashed the iter-adapters and the ScopedPtrVect into submission, finally.
2009-07-17 20:22:48 +02:00
165cfc7fcd
WIP allow some conversions, attempt to define the const_iterator properly
2009-07-17 04:13:14 +02:00
4f5fca6858
now able to implement ScopedPtrVect iteration properly
2009-07-16 19:36:01 +02:00
a0187847da
reworked IterAdapter, added RangeIter for STL ranges. Should do for now
2009-07-15 07:26:49 +02:00
b2f72ef0fc
IterAdapter now passes test, but is still rather uggly...
2009-07-14 06:29:04 +02:00
e2cd4aba8a
fix name, add test for postfix increment
2009-07-13 01:25:24 +02:00
1a69026acb
spelling fix
2009-07-13 01:16:40 +02:00
60cf9e8c9e
trying to implement a simple iterator adapter working
...
(oops, didn't expect this to be so difficult...)
2009-07-13 01:16:30 +02:00
30db042b16
add component access to the time wrapper (quick'n dirty)
2009-07-12 22:51:04 +02:00
6ef1aca3a4
test driven brainstorming
2009-07-11 20:06:35 +02:00
892f382f0f
Ticket #182
2009-07-11 19:23:20 +02:00
9aa5ba560c
finish and tidy up control::Mutation, unit test pass
2009-07-10 19:04:01 +02:00
6bd1e8e179
tidy up and finish the MementoTie + unit test
2009-07-09 20:47:21 +02:00
2eb8b763d6
got the helper working (prepending a binder to an argument position)
2009-07-09 04:41:44 +02:00
c7b6165c6c
WIP resolved the simple mismatches, but still...
2009-07-08 05:36:02 +02:00
c8c577c4cc
WIP factored out another helper, not yet tested...
2009-07-06 05:25:33 +02:00
2462dee5ca
issue resolved, tests pass, finally (whew)
2009-07-06 02:25:19 +02:00
c3b8d39507
refactoring into two distinct concepts. maybe solution?
2009-07-05 22:05:11 +02:00
e2bb2c440c
use OpaqueHolder to solve the problem with the function type erasure...
...
...tried to use 2 policies, but doesn't work correct (and is uggly)
2009-07-05 03:38:33 +02:00
4d1f45fc43
activate the new test, some comments
2009-07-05 02:26:59 +02:00
6e3bfb08e6
OpaqueHolder implemented and passes unit test
2009-07-04 19:30:54 +02:00
077d3d176e
WIP implementation draft
2009-07-04 04:35:17 +02:00
3cc49d0f68
need to factor out a special holder class to solve the problem with the empty check
2009-07-04 03:32:15 +02:00
c48f9086b7
extract util: isSameObject (bare ptr comparison)
2009-07-04 02:43:49 +02:00
98510cc943
rename and clean up some headers
2009-07-04 00:24:55 +02:00
b65658c10d
try to fix a failing test (not really fixed yet)
2009-07-04 00:22:16 +02:00
d13d461a9c
revamp namespace func. Finish excursion on function handling
2009-07-03 14:31:52 +02:00
b7be61c4e6
composition now working
2009-07-03 13:49:12 +02:00
31e9d59d80
WIP draft solution for next task
2009-07-01 04:47:52 +02:00
8d8f184ede
check more cases, incl. function pointers
2009-07-01 03:23:26 +02:00
67e5779d24
now also able to close the last function argument
2009-07-01 02:29:11 +02:00
81d0e133c8
new additions in this area now reasonable covered ( closes #142 )
2009-07-01 00:43:19 +02:00
ca807205f9
cleanup/refactor simple type seq handling, fix broken Split template
2009-06-30 04:54:50 +02:00
320f984270
got partial application working, at least in the "front" case
2009-06-29 06:34:20 +02:00
6029c2c4e2
better name it Splice, and extend the capabilities a bit
2009-06-29 03:05:50 +02:00
03c9edce49
factored out yet another little helper, incl unit test
2009-06-29 02:03:30 +02:00
14f3641f9b
helper: initialise a tuple from an existing sub-tuple
2009-06-28 20:41:33 +02:00
8ea07bda7a
use the new bool conversion mixin to implement check for valid functor
2009-06-26 19:04:22 +02:00
b45cd49c8b
separate header + unit test for this bool check mixin
2009-06-26 18:50:30 +02:00
5291f6e41a
move the member pointer to the current stack frame...
...
hopefully the optimiser will remove it completely ;-)
2009-06-26 17:13:36 +02:00
a30461780b
this way it works, but would cost additional storage....
2009-06-26 16:38:37 +02:00
daeff6f5fd
WIP: how to define the bool conversion / validity check for the function holders?
2009-06-26 05:27:54 +02:00
61f8c1814d
tuple test pass
2009-06-22 06:05:32 +02:00
db9ef808a5
refactoring to solve consistency problems uncovered by the tests
2009-06-21 19:52:33 +02:00
c3768b93a1
function closure utils finished and pass test
2009-06-21 08:38:24 +02:00
231834d2e9
basic tuple creation and outline of the remainder of the test
2009-06-21 02:03:22 +02:00
ad7c326c9c
got basic diagnostics for type tuples working
2009-06-20 23:18:02 +02:00
294c254f29
Fix instantiation of Tuple datastructs
2009-06-20 23:17:22 +02:00
95f0b26e38
start a type tuple unit test...
2009-06-20 18:06:07 +02:00
1620b8dcef
WIP fixes to Apply<N>, but yet doesn't work...
2009-06-20 09:32:22 +02:00
a28c05877f
test pass (resolves Ticket #174 )
2009-06-20 06:11:09 +02:00
079030818d
draft a test to sharpen the idea of the function holder (erasure)
2009-06-20 04:43:52 +02:00
a565bfef73
some header-renaming
2009-06-20 01:28:47 +02:00
006c29c625
Idea how to store an unspecified functor to be used later as Command implementation
2009-06-20 00:00:29 +02:00
f358f548d1
draft version of CmdClosure and Mutation interface now passing compiler
2009-06-19 19:11:33 +02:00
4307191369
merging latest bugfixes
...
Merge branch 'master' into session
2009-06-19 14:36:22 +02:00
Christian Thaeter
52ac7bdc5e
FIX: bogus pointer dereference causing gcc to barf
...
gcc (GCC) 4.2.4 (Ubuntu 4.2.4-1ubuntu3) reported:
./src/lib/mpool.c: In function ‘bitmap_bit_get_nth’:
./src/lib/mpool.c:119: warning: dereferencing type-punned
pointer will break strict-aliasing rules
2009-06-19 04:22:29 +02:00
fba135c746
Merge backend and testsuite improvements
2009-06-19 01:19:20 +02:00
d1b425aba9
finish and tidy the extracted headers
2009-06-17 06:55:18 +02:00
9d04f48c51
WIP: further split the headers
2009-06-16 12:07:49 +02:00
ab4b4c71e6
WIP: start extacting new headers
2009-06-16 11:39:36 +02:00
441cb6b9e2
WIP try to solve the problem of closing a function with arbitrary args
2009-06-15 03:47:05 +02:00
7741b50b91
WIP rewrote the Sub-Tuple extractor into a simplistic Tuple type
2009-06-14 19:40:35 +02:00
b937bd08ae
WIP: parameter closure brainstorming
2009-06-14 05:38:35 +02:00
246529bae9
concpet draft of parameter type extraction and checking works (i.e. compiles)
2009-06-10 05:00:01 +02:00
102e96891b
fixing, stubbing, and some chainsaw surgery to get half-finished code through the compiler
2009-06-09 09:05:19 +02:00
f1827ea753
WIP: test support macro for exception check
2009-06-07 03:22:08 +02:00
Christian Thaeter
64c1238445
FIX: mpool: macro for constants depending on host wordsize
...
This might fix http://issues.lumiera.org/ticket/136 I have no 32bit
system to validate this.
2009-06-06 16:05:34 +02:00
90dffdc9d2
some cleanup and renaming
2009-06-06 06:55:13 +02:00
b6d22bb2e0
fix: condition for signalling thread termination is optional
2009-06-05 05:04:45 +02:00
e0ff915987
adapt thread-wrapper.hpp to backend thread API change
2009-06-05 05:00:53 +02:00
Christian Thaeter
58f1fbe3a8
mpool: completion
...
fix tests, add some benchmarks
finished documentation, cosmetics, cleanup
2009-06-04 18:11:45 +02:00
Christian Thaeter
92271ba1c1
mpool: add an alloc_near() function which takes a explicit hint for locality
2009-06-04 18:11:44 +02:00
Christian Thaeter
0dc0d18703
mpool: ldiv() division bites the dust in favor of some bitops
...
before:
1,747,160,336 PROGRAM TOTALS
after:
1,371,806,087 PROGRAM TOTALS
2009-06-04 18:11:44 +02:00
Christian Thaeter
9ed817df97
mpool: precalculate cluster size to avoid excess recalculations
...
Callgrind before:
1,963,501,246 PROGRAM TOTALS
After:
1,747,160,336 PROGRAM TOTALS
2009-06-04 18:11:44 +02:00
Christian Thaeter
29a1a6a7a0
mpool: some pending cosmetics an trace points
2009-06-04 18:11:27 +02:00
Christian Thaeter
2a9d59ccd0
WIP: pooled allocator, initial version
...
* creating and allocating, freeing elements
* live objects will be destructed when a mpool gets destroyed and a
destructor was set up
2009-06-04 18:10:25 +02:00
Christian Thaeter
062dbfe82f
Merge commit '99b5f8'
...
* commit '99b5f8':
adapt the Sync template
Add reccondition to threads, make its functionality complete
fix some includes for new mutex/recmutex headers
weed out reccondition bugs/typos
New condition and reccondition implementation
split mutex.h again into mutex.h and recmutex.h
typo fix in mutex.h
rename casing of RecMutex to Recmutex to be consistent
store lumiera_rwlock in sectionlock
store a lumiera_mutex in a sectionlock, looks cleaner
add check to chained locking validating that the parent lock is held
rwlock makeover, locksections etc...
error code changed to LOCK_DESTROY
fix: forgotten backcasts in mutex.h
new mutex and recmutex implementation (breaks sync.hpp for now)
2009-06-03 20:20:41 +02:00
Christian Thaeter
8f2333a786
Merge commit '59de53b25a78cd330c0c6e0f637e8cf7618da4'
...
* commit '59de53b25a78cd330c0c6e0f637e8cf7618da4':
llist: add an generic void* to the compare, sort and search functions
let llist_init return the initialized node
2009-06-03 18:47:56 +02:00
99b5f8d44d
adapt the Sync template
2009-06-03 18:22:11 +02:00
Christian Thaeter
7758d76c7b
weed out reccondition bugs/typos
2009-06-03 18:22:10 +02:00
Christian Thaeter
d91620a60f
New condition and reccondition implementation
...
Should be working but not thoroughly tested still, docs not complete
2009-06-03 18:22:10 +02:00
Christian Thaeter
4f29f302b2
split mutex.h again into mutex.h and recmutex.h
2009-06-03 18:22:10 +02:00
Christian Thaeter
ec62ca073b
typo fix in mutex.h
2009-06-03 18:22:09 +02:00
Christian Thaeter
30a117c1d8
rename casing of RecMutex to Recmutex to be consistent
2009-06-03 18:22:09 +02:00
Christian Thaeter
93abe657c8
store lumiera_rwlock in sectionlock
2009-06-03 18:22:09 +02:00
Christian Thaeter
5b82f3355b
store a lumiera_mutex in a sectionlock, looks cleaner
2009-06-03 18:22:09 +02:00
Christian Thaeter
cafcffd4b1
add check to chained locking validating that the parent lock is held
2009-06-03 18:22:08 +02:00
Christian Thaeter
5c2ac96f35
rwlock makeover, locksections etc...
...
The CHAINED variant is not tested, what could go wrong anyways :)
2009-06-03 18:22:08 +02:00
Christian Thaeter
ca0250c018
error code changed to LOCK_DESTROY
2009-06-03 18:22:08 +02:00
Christian Thaeter
cf664ca970
fix: forgotten backcasts in mutex.h
2009-06-03 18:22:07 +02:00
Christian Thaeter
a115759128
new mutex and recmutex implementation (breaks sync.hpp for now)
...
prepares that chained sections if different kinds can be mixed
makes recmutexes typesafe
improves nobug tracking
2009-06-03 18:22:07 +02:00
Christian Thaeter
59de53b25a
llist: add an generic void* to the compare, sort and search functions
...
This allows the user to pass some extra data along, which improves the
usefulness in certain cases.
2009-06-03 18:22:01 +02:00
Christian Thaeter
85b1297b4a
let llist_init return the initialized node
...
This makes it possible to use the init without a temporary variable:
llist_insert_next (llist_init (foo), llist_init (bar));
2009-06-03 18:19:56 +02:00
Anton Yakovlev
87e528bd58
Cyclic L1-list. Implements almost the same set of operations as for L2-list
...
(except those, which reverse enumeration of elements).
2009-06-03 18:12:35 +04:00
e8c25fca0a
supply test definition
2009-05-31 02:41:00 +02:00
e0ad992f30
spinn-off: collecting some frequently used bits to support unit testing
2009-05-30 23:49:02 +02:00
014b6c0b49
intend to use the time wrapper
2009-05-29 19:03:34 +02:00
940d63a9fa
time wrapper minimal test coverage
2009-05-29 18:36:37 +02:00
dedb70aac9
@Joel: a simple convenience wrapper for gavl_time_t
2009-05-29 18:36:37 +02:00
efa7b4717c
rework placement to contain a LUID, and to deal with inheritance according to the concept draft
2009-05-29 07:10:54 +02:00
85a9c99e52
hash ID: add trivial implementation + impl based on LUID
2009-05-24 05:14:11 +02:00
3b8a851722
add equality
2009-05-24 01:46:00 +02:00
2bb64a23fa
augment test, rework access to the hashID, template on hash impl
2009-05-23 05:13:51 +02:00
e5d2042190
WIP rename and reorganise hash ID, now focussing on the Mixin
2009-05-23 03:43:39 +02:00
bac5da777b
WIP document the concept of the hash ID, get rid of the uggly cast
2009-05-22 03:41:58 +02:00
020636b90a
WIP extract the hash ID draft into separate header & test
2009-05-22 02:40:20 +02:00
8f8831c8b3
planning index structure..
2009-05-09 17:32:29 +02:00
9b3ca200e7
considering new facilities for referring to placements
2009-05-09 03:08:38 +02:00
0e4df5611a
time wrapper minimal test coverage
2009-04-24 21:48:38 +02:00
3ae3e36f3f
@Joel: a simple convenience wrapper for gavl_time_t
2009-04-24 21:48:38 +02:00
Christian Thaeter
b8d3e841d0
forgot new llist.h
2009-02-15 19:29:10 +01:00
b0e6468293
some testing and debugging
2009-02-08 04:10:37 +01:00
e435822de6
Ouch.. boost::ptr_vector depends on boost-serialisation. Write a simple replacement...
2009-02-08 01:31:01 +01:00
8e5097cbe0
cleanup, fixes, comments...
2009-02-06 22:51:39 +01:00
ee950d6255
some cleanup and re-ordering
2009-01-31 23:42:56 +01:00
19e85a95d4
fix: better make the shared_ptr a member of the Handle class
...
this change circumvents compiler uncertainities with the operator bool()
and actually seems to be better design too...
2009-01-31 23:28:09 +01:00
8419534f49
A generic opaque Handle type built on top of shared_ptr, for managing lifecycle
2009-01-28 02:44:59 +01:00
aa7fe2591c
use a dedicated header to pull up early NoBug init
2009-01-26 01:09:49 +01:00
50625039d0
merge NoBug changes from master to bring this devel branch up-to-date
...
Next things to do will be reworking the draft/dummy to support multiple playback processes and a display callback
2009-01-25 02:10:03 +01:00
5eea58986f
merge: ... bring in latest GUI additions from joel
2009-01-25 00:54:12 +01:00
10597beeba
mass rename: relocate basic Logging conf. from liblumieracommon to liblumiera
2009-01-25 00:24:42 +01:00
Christian Thaeter
b9fc2d6522
WIP: deploy new logging flags in lib
2009-01-24 22:30:25 +01:00
Christian Thaeter
16ebdd65b1
some more logging flags, little cleanup, fix to Makefile.am
2009-01-24 22:30:25 +01:00
Christian Thaeter
ef6344057c
first attempt to organize the nobug flags for review
...
I grepped out all flags which are actually defined/used in lumiera and
refactored them into one big tree here. There are some annotations and
issues which shall be finally resolved. Please check if the intended
hierarchy looks OK this way and add more flags when you think some are
missing. I chosen to make a quite verbose hierarchy, this doesnt cost much
in nobug and adds some flexibility. The Documentation at the head needs to
be reviewed. Many flags which are collected here need to be brought back
into the subsystems which use them, this is only to get a big picture for
now.
2009-01-24 22:30:25 +01:00
Joel Holdsworth
51f05ebb3e
Merge branch 'guistart' of git://git.lumiera.org/lumiera/ichthyo into gui
2009-01-24 21:28:45 +00:00
Joel Holdsworth
0355c83f0e
Added handling for when the user drags beyond the end of the tree
2009-01-24 17:50:18 +00:00
Joel Holdsworth
262ee3655b
Added is_descendant_of method to tree
2009-01-24 17:19:10 +00:00
Joel Holdsworth
41f394a57b
Excised ObservableList::to_list
2009-01-24 12:18:12 +00:00
49a865fa57
merge latest GUI additions (and fixes from master) for colaboration on the Player mockup
...
this branch still corresponds to joel/gui
2009-01-22 23:26:08 +01:00
3dae60f559
add missing stubs to make it pass the compiler
2009-01-22 17:29:17 +01:00
Joel Holdsworth
cb13f5f74c
Merge branch 'master' of git.lumiera.org:/git/LUMIERA into gui
2009-01-21 18:21:08 +00:00
974e83676a
Further ClassLock refactoring; added linkonce assertion check
2009-01-21 13:04:28 +01:00
801f070a7d
Fix for broken logic of the ClassLock (showed up on Ubuntu Hardy)
...
this was nice copy-n-paster error, of course the implementation
namespace was never intended to be anonymous.
2009-01-21 12:19:02 +01:00
Joel Holdsworth
d42bc4ea90
Fixed a bug in tree
2009-01-20 23:17:40 +00:00
c6bc14375c
write a draft how I'd like to deal with joining threads.
2009-01-18 22:14:56 +01:00
054c652571
improve error handling when starting the GUI thread
2009-01-17 14:31:40 +01:00
Christian Thaeter
bb8ad9fbd5
move threads back into the backend
2009-01-16 02:18:58 +01:00
Christian Thaeter
a78ec21fea
ERROR_SET_* macros for different logging levels
2009-01-15 01:05:07 +01:00
aa8896a79f
merge resolution of some build/dependency problems
2009-01-14 12:31:20 +01:00
e8469d5552
chaninsaw surgery to resolve the most urgent dependency problems with lib
2009-01-14 12:15:13 +01:00
Christian Thaeter
d37bb17566
Add a context string to the error system
...
lumiera_error_set() now takes an optional extra string which can be used
to pass context relevant data along. This string gets copied into the
error state so one can easily create it by the tmpbuf_snprintf() facility.
Also a lot of places which define errors get fixed according to this.
2009-01-13 21:23:37 +01:00
5b68a39cc4
move threads from backend to liblumiera
...
otherwise lib and common would depend on backend
2009-01-10 21:50:03 +01:00
e64e9a19b6
Merge GUI loading and startup, incl opening of facade interface
2009-01-10 19:12:48 +01:00
b6fb135398
change error notification at subsystem shutdown to use just a string*
...
(this allows to memoize the error message and call the termination
handler outside the catch block)
2009-01-10 16:15:17 +01:00
3da9586824
Rewrite the GuiNotification service to operate in sync with bringing up the GUI
2009-01-10 15:29:11 +01:00
Joel Holdsworth
22c9e8b082
Merge branch 'master' of git.lumiera.org:/git/LUMIERA into gui
2009-01-05 17:59:23 +00:00
8d4bc62fbe
WIP start drafting a better InterfaceProxy handling
2009-01-04 15:21:04 +01:00
edb01ec8c6
Integration: Thread/sync, GUI-Plugin invoked in separate thread
2009-01-03 16:05:04 +01:00
Joel Holdsworth
8debd21363
Squished some warnings in lib/tree.hpp
2009-01-02 13:10:56 +00:00
2aab2491aa
deal with a race regarding argument passing
2009-01-02 08:02:27 +01:00
Joel Holdsworth
0f3b290b6d
Tweaked tree.hpp to improve documentation to work better in lumiera
...
doxygen
2009-01-01 12:34:39 +00:00
2f34637088
wire in the new threads implementation from backend...
2008-12-31 06:56:31 +01:00
8c892846e1
renaming etc...
2008-12-31 05:05:34 +01:00
Joel Holdsworth
e670f42a39
Opps - tree.hpp committed now
2008-12-30 23:07:16 +00:00
Joel Holdsworth
54ddf81afa
Moved tree into the lumiera namespace
2008-12-30 23:06:22 +00:00
Joel Holdsworth
2bea14748c
Added Kasper Peeters STL-like templated tree class to lib
2008-12-30 22:58:21 +00:00
4b3d567ca0
Switch Singleton template to use the threadsafe version (Fix)
2008-12-30 08:19:32 +01:00
75bdc877dc
reconsider synchronisation and switch some parts to instance based locks.
2008-12-30 08:19:32 +01:00
00a5e7028d
care for copy operations
2008-12-30 08:19:32 +01:00
33ae97b50d
switch in the new recursive mutex/condition impl from backend
2008-12-30 08:17:05 +01:00
075b3c8d6a
fix some warnings...
2008-12-30 07:28:34 +01:00
Joel Holdsworth
1802512371
Reinstated -Werror and fixed the ftruncate warning
2008-12-29 20:41:47 +00:00
Joel Holdsworth
90d14d12f7
Merged in LUMIERA master and gui branches
2008-12-29 19:13:58 +00:00
Christian Thaeter
66fb3afe83
Fix: new nobug renamed some macros
2008-12-29 02:52:46 +01:00
Christian Thaeter
532f609ea1
experimental thread implementation
...
* This spawns a thread, almost as proposed
* The condition variable for finishing is not yet implemented
* Most Parameters are ignored
2008-12-29 01:50:38 +01:00
9f9ef10c11
add a temporary impl for recursive conditions just for test
...
(can be removed when the implemented in the backend)
2008-12-28 02:05:04 +01:00
Christian Thaeter
23f89b027a
fixes for new NoBug (mandatory upgrade)
...
I managed to break some interface compatibility with NoBug finally. The
new NOBUG_ALPHA_COMMA macros shall stay there now.
2008-12-27 18:42:10 +01:00
Christian Thaeter
1a792ac328
add reccondition variable, condition vars which use a recursive mutex
...
not tested yet
2008-12-27 16:25:07 +01:00
Christian Thaeter
07cec0a44d
make the uses of pthread_once faster by checking the once var first
2008-12-27 16:25:07 +01:00
16adff318d
Comments
2008-12-27 07:44:28 +01:00
250e3ba4df
add a convenience shortcut for waiting on a bool member function
2008-12-27 06:58:13 +01:00
af8d70c2bc
include fix
2008-12-27 01:30:48 +01:00
4e4d6f9fb2
fix Automake
2008-12-27 01:11:17 +01:00
93c4a282cc
Merge object monitor locking
2008-12-27 01:04:20 +01:00
e921b1658c
error.hpp belongs to src/lib
2008-12-27 00:53:35 +01:00
cbbc298fe9
kill some warnings
2008-12-26 23:17:51 +01:00
bd2ead37d5
Refactoring V: get lifecycle of a class-based monitor correct.
2008-12-26 05:44:49 +01:00
2173698e75
splitt off the (somewhat problematic) class locking case into a separate header
2008-12-26 04:25:01 +01:00
eaedab90ea
Refactoring IV: move the (still problematic) ClassLock out of the Sync compound
...
(no semantic change, but better notation)
2008-12-26 03:47:12 +01:00
54e88e6914
Refactoring III: Recursive/Nonrecursive and Waitable as policy classes
...
pass test again
2008-12-26 01:50:32 +01:00
1ff7f0c656
Refactoring II: encapsulate the variants probvieded by the backend as base classes
2008-12-24 23:23:23 +01:00
Christian Thaeter
072ea60352
Fix: use implicit nobug flag for releasing
...
needs new NoBug as well, I should check my code before pushing it to master
2008-12-24 03:59:08 +01:00
be2daf64ff
whitespace
...
(trying to compare LUMIERA_MUTEX_SECTION and LUMIERA_RECMUTEX_SECTION)
2008-12-24 03:42:36 +01:00
Christian Thaeter
7e13ca33d5
Condition Variable makeover
...
* Improved the Documentation
* add an CONDITION_UNLOCK macro to exoplicitly unlock the condition mutex
* Add ENSUREs to check that the mutex is locked
* Fix the CONDITION_WAIT, takes the missing condition expression now
* Fix, document and improve SIGNAL and BROADCAST macros
* remove the signal and broadcast functions
2008-12-24 03:40:55 +01:00
2650216d9b
Refactoring I: better put the timeout explicitly separate
2008-12-24 03:31:35 +01:00
Christian Thaeter
c0bc3cffb7
add a LUMIERA_RESOURCE_CPU to the resource-collector
2008-12-24 00:38:19 +01:00
Christian Thaeter
c9d83d97c3
Moved the resourcecollector from backend to lib
2008-12-24 00:26:32 +01:00
36704a856e
basic wait/notify impl added, waiting-test pass
2008-12-23 04:27:11 +01:00
59a7270f5d
draft test for wait/notify, fails without the implementation
2008-12-23 01:32:01 +01:00
43521e3945
building block for the Condition part of the Monitor pattern
2008-12-23 00:03:04 +01:00
2b8cd00ab5
yet another renaming. call it "Sync"...
2008-12-22 17:00:15 +01:00
67e95884d5
preliminary implementation using pthread primitives. Locking test pass.
2008-12-22 07:23:48 +01:00
9240da002f
WIP
2008-12-22 05:02:52 +01:00
751e1be596
better invocation, get rid of the template parameter
2008-12-22 05:02:52 +01:00
c4df935113
add draft impl for Monitor storage; dummy impl running
...
todo: actually do any locking, improve handling of the forThis parameter
2008-12-22 05:02:52 +01:00
2512f04f3f
WIP yet another namespace change. Now refer it from the test
2008-12-22 05:02:51 +01:00
112cd475b7
WIP draft the basic pattern
2008-12-22 05:02:51 +01:00
d1e385f3f4
rename class Thread into Concurrency
...
it's not a thread abstraction, but a locking helper
2008-12-22 05:02:51 +01:00
Christian Thaeter
4fb8f5b69d
Makefile.am makeover, add CFLAGS and CXXFLAGS everywhere
2008-12-22 02:24:19 +01:00
Christian Thaeter
3363cfe8ba
mixed fixes of small issues (compiler warnings)
2008-12-22 02:23:11 +01:00
Christian Thaeter
1058454871
remove cuckoo from the build system
...
cuckoo hashing was replaced by the psplay lookups, it needs some
improvements to make it easier useable and better hash function for
strings. This will be done someday later.
2008-12-21 18:59:34 +01:00
c8465a1a38
Merge latest GUI model additions
2008-12-21 07:10:46 +01:00
Christian Thaeter
4699efcb5d
Some Makefile.am cosmetics
2008-12-18 20:23:46 +01:00
fb72d20812
Autotools fixes
2008-12-18 10:33:37 +01:00
6d66476383
move config, interfaces and pluginsystem to liblumieracommon
2008-12-18 08:54:33 +01:00
357c7f0d9f
further Makefile.am tweaks to make the tests compile again
2008-12-18 07:44:06 +01:00
e8d76cd022
rename error.cpp to exception.cpp and fix remaining problems
2008-12-18 04:51:58 +01:00
Christian Thaeter
3654473b75
WIP: Merge common into lib
...
* breaks lumigui linking
* test non functional yet
* tools cant not be linked because of cross dependency problems
2008-12-17 17:53:32 +01:00
Christian Thaeter
c2a6d6a387
turn 'lib' into a shared library
2008-12-17 00:34:12 +01:00
Christian Thaeter
84339a0f87
moved the config system and interfaces/plugins back to lib
...
in preparation for the shared lib transistion doing next
2008-12-16 23:56:28 +01:00
Christian Thaeter
9a1a1890e2
post rebase fixes
...
tests are still broken and will be fixed for the shared lib transistion
2008-12-16 19:54:48 +01:00
085c60e039
util to invoke two functors chained,
...
here to be used for decorating a given signal (callback)
2008-12-15 13:36:42 +01:00
41f9f54907
pass compiler and starts OK without doing anything
2008-12-15 13:36:40 +01:00
3693a5fa3d
draft outline for main()
2008-12-15 13:33:05 +01:00
98b3fcbad8
missing implementation
2008-12-15 13:33:05 +01:00
b14d711146
refactor Appconfig, split off lifecycle interface
2008-12-15 13:33:05 +01:00
3f6f1218fc
some typos
2008-12-15 13:33:04 +01:00
c567c57a58
reorganise NoBug global definitions and startup
2008-12-15 13:33:04 +01:00
2b5affa8b3
Appconfig doesn't provide Config functionality any longer.
...
This role of the Appconfig class is superseeded by the Config subsystem...
2008-12-15 13:33:04 +01:00
628be502e5
reordered some files to use the new include and lumiera directories
2008-12-15 13:33:04 +01:00
Christian Thaeter
085f3ec5a7
a upper limit of 16 iterations was not enough in ppmpl,
...
lets see how long 64 suffices
2008-12-15 13:33:03 +01:00
Christian Thaeter
80359fb155
documentation and nobug improvement for mrucache
2008-12-15 01:17:23 +01:00
80e1e382f4
merge new plugin/interface system, testsuite changes, documentation
2008-11-07 01:26:31 +01:00
f19cdc1ad6
automake fixes
2008-11-06 04:25:33 +01:00
Christian Thaeter
257b310699
add an error_peek function, fix prototypes
...
lumiera_error_peek() lets one investigate the error state without resetting
it.
2008-11-03 08:03:48 +01:00
57ccc289b0
comment, add to testsuite
2008-10-30 04:34:05 +01:00
b475fd0979
AllocationCluster passes test
2008-10-30 04:03:14 +01:00
a00edd2a84
cluster datastructure works, finally.
...
WIP still a bug somewhere in the pseudo-memory manager (de-allocation fails)
2008-10-28 06:07:23 +01:00
Christian Thaeter
28a5c5257a
Merge commit 'joel/gui' into master
...
* commit 'joel/gui':
Correct a liblumi to liblumiera
Added track tree support and added widgets to headers
Corrected a selection rendering bug in TimelineBody
Added linkage to the proc layer
Made GtkLumiera and WindowManager boost::noncopyable
Added the backend as a lib, and included the interface header
Showed some love to viewer panel
Changed the "delete" variable name to "del" to satisfy the C++ compiler
Renamed HeaderContainer to TimelineHeaderContainer
Conflicts:
src/gui/Makefile.am
2008-10-27 06:00:32 +01:00
Christian Thaeter
194e4b9fec
Complete the luidgen tool
...
calling 'luidgen' with a list of filenames replaces the word LUIDGEN in
each of this files with a octal escaped string consisting a unique
identifier
add luid formatter help macros to luid.h
let compilation of files which contain the word 'LUIDGEN' fail with a
hopefully self-explaining error message
2008-10-27 05:08:53 +01:00
Christian Thaeter
e61c25a34a
define an 'LUIDGEN' macro as uuid containing only zeros
...
This *must* be replaced by a real luid with a upcoming luidgen tool ASAP,
luids starting with zeros are invalid. For the time until this luidgen tool
is not ready we just leave it this way. Later it will be changed to give a
compile error.
2008-10-27 05:08:53 +01:00
6a1c33e5a1
create a lib header based on this solution
2008-10-26 22:35:01 +01:00
89fca1921d
WIP added simple usage test ... and made it compile,
...
but still a fundamental problem to resolve with the use of std::vector in this scenario
2008-10-24 06:06:24 +02:00
6bd0c84355
WIP added preliminary pseudo-implementation for the raw memory manager.
...
Actually this beast does just per object heap allocations, .... any takers?
2008-10-23 23:08:27 +02:00
b479404288
fix logic for allocating a new memory manager
2008-10-23 19:47:08 +02:00
75cf4a97b3
ScopedHolder test passed
2008-10-23 18:33:56 +02:00
2b2654cb38
WIP test covering the ScopedHolder helpers
2008-10-23 07:15:48 +02:00
Joel Holdsworth
87ba2ab3db
Merge branch 'master' of git://git.lumiera.org/LUMIERA into gui
...
Conflicts:
icons/Makefile.am
src/gui/Makefile.am
2008-10-23 00:15:46 +01:00
716700a432
draft solution finished, compiles but test fails of course...
...
solved the problem to push the actual memory manager completely into the cpp file
2008-10-22 04:55:28 +02:00
1e3a03b4c5
WIP dealing with object collections taking ownership
2008-10-21 09:04:59 +02:00
Christian Thaeter
23508f3f74
Nice, follow scons, name it liblumiera.a too
2008-10-21 06:19:52 +02:00
eaa89067bb
WIP test covering the AllocationCluster draft
2008-10-20 06:27:14 +02:00
74164e890e
finished the outline
2008-10-20 03:13:02 +02:00
Joel Holdsworth
3a41758682
Changed the "delete" variable name to "del" to satisfy the C++ compiler
2008-10-18 12:25:18 +01:00
1b6df94aab
documentation (drawing)
2008-10-18 04:15:07 +02:00
747d793121
draft framework for handling the memory allocation of render nodes
2008-10-18 04:15:06 +02:00
d64d822690
merge from backend (plugin loader)
...
Merge commit 'lumi/master' into proc
2008-10-16 00:35:57 +02:00
Christian Thaeter
be9d2b189f
fix lib/Makefile.am, a stale interfaces.h was left here
2008-10-15 18:01:52 +02:00
Christian Thaeter
29f5a0f2ab
moved the remaining interface stuff from lib to backend
2008-10-15 16:05:17 +02:00
Christian Thaeter
ee7719eada
tests and a first definition of a interface descriptor
2008-10-15 16:05:17 +02:00
Christian Thaeter
f05f6772f1
Interface system refactoring
...
* lumiera_interface are now static structures, never wrritten
* introduced a lumiera_interfacenode which manages the dynamic data
of interfaces. The interfaceregistry now holds this nodes.
2008-10-15 16:05:17 +02:00
Christian Thaeter
405a578c42
WIP: interface open/close handling cross dependencies
2008-10-15 16:05:17 +02:00
Christian Thaeter
4414af3751
add a 'weak' flag for interface_acquire/release()
...
When interfaces cross depend on each other nested acquiring from
their acquire handlers would introduce cyclic references which cant
be cleaned easily. By flagging such nested acquisitions as weak the
respective handler functions can account for this.
Example: maintain 2 ref counters one for strong and one for weak
acquisitions. At release time all acquired nested handles get closed when
the strong counter drops to zero, which causes that cross reference
releases will eventually drop the weak count to zero too. Then all
resources can be freed and the interface is properly shut down.
2008-10-15 16:04:32 +02:00
Christian Thaeter
c9ac956417
cosmetics
2008-10-15 16:04:32 +02:00
Christian Thaeter
bb9c53d32d
change parameter order for _DNAME in interface.h, add a _REF macro
2008-10-15 16:04:32 +02:00
Christian Thaeter
66a1142079
apply the new defined nameing rules to interface.h
2008-10-15 16:01:09 +02:00
Christian Thaeter
b252807c55
functions for interface acquire/release
2008-10-15 16:01:09 +02:00
Christian Thaeter
caa5bd10a0
interface update
...
* remove the data member from the interface structure
* add a psplay node used in a upcoming interface registry
* add a INLINE function mapper
2008-10-15 16:01:08 +02:00
Christian Thaeter
feb9ba7db9
provide some example code for the 'interface' system
...
* test-interfaces.c is just a mockup to show how interfaces are created
* fix some bugs introduced with a futile refactoring try at the last commit
2008-10-15 16:01:08 +02:00
Christian Thaeter
c84d10c9d5
Add a CALL macro to interface.h
2008-10-15 16:01:08 +02:00
Christian Thaeter
f114b04509
Documentation for the interface system and small refactorings on the fly
2008-10-15 16:01:08 +02:00
Christian Thaeter
de44b83fcd
New interface header
...
Provides structures used for managing interfaces, macros for declaring
and defining interfaces. Convinience macros to bundle buildin and plugin
interfaces.
2008-10-15 16:01:08 +02:00
Christian Thaeter
dd9e5051ba
use nobug's new RESOURCE_HANDLE_COMMA_INITIALIZER and some cosmetics along
2008-10-15 15:51:48 +02:00
Christian Thaeter
38f2a9c6c9
add a lumiera_realloc() function to the safeclib
2008-10-15 15:51:48 +02:00
Christian Thaeter
ed246ab222
Adding recursive mutexes, fix chained mutex to take only one parameter
...
Recursive mutex can be locked multiple times by a single thread they
are initialitzed by lumiera_recmutex_init() and used by LUMIERA_RECMUTEX_*
macros.
Chained mutex use the mutexacquirer from the outer scope now. Maybe its
later needed to pass acquirers explicit, we will see.
2008-10-15 15:49:35 +02:00
Christian Thaeter
9cdfd02e9b
makefile update for library
2008-10-15 15:49:35 +02:00
Christian Thaeter
2a723bc5ba
add 'STRINGIFY' to ppmpl.h
2008-10-15 15:49:35 +02:00
Christian Thaeter
a7f75b3f6f
preprocessor concat implementation which evaluates its arguments
2008-10-15 15:49:35 +02:00
Christian Thaeter
bfdcbfcb7f
add a static initializer to psplay.h
2008-10-15 15:49:35 +02:00
Nicholas Sinnott-Armstrong
7d86367909
Added preliminary support for chained mutex calls.
2008-10-15 15:49:35 +02:00
Christian Thaeter
16d2fcf2e9
macro for initializing a uchar[16] from a string literal in C++
2008-10-15 15:49:34 +02:00
Christian Thaeter
4d65f0394d
Add FOREACH variants for nesting to ppmpl
...
Three levels of nesting are enough for anyone!
2008-10-15 15:49:34 +02:00
Christian Thaeter
973348fdb8
preprocessor metaprogramming ftw
...
Added a header for generalized preprocessor idioms.
This will grow over time, as needed things will be added.
2008-10-15 15:49:34 +02:00
Christian Thaeter
14a9e95492
moved plugin code from lib to backend
...
Plugin management will become stateful. This qualifies it to become a
backend subsystem.
2008-10-15 15:49:34 +02:00
873910f0b8
WIP considerations about querying
2008-09-28 04:05:10 +02:00
feb64fac01
outline: use of the raw type info for fetching a ImplFacade
2008-09-26 04:57:20 +02:00
f80d0a49bd
provide for the GAVL impl facade to be registered as basic media type.
...
WIP actual implementation missing...
2008-09-24 06:36:35 +02:00
578178a937
brainstorming (continued). MediaImplLib
...
considering how to snap in the actual implementation
2008-09-22 06:42:10 +02:00
Michael Ploujnikov
f5387d8bf3
Merge branch 'master' of git://git.lumiera.org/LUMIERA
...
Conflicts:
tests/Makefile.am
2008-09-06 20:15:05 -04:00
Christian Thaeter
79fee29519
small note annd cosmetics for safeclib
2008-09-06 12:24:36 +02:00
Christian Thaeter
dc34ea994c
add psplay_delete_node and psplay_delete_key functions
...
Both delete a entry from a splay tree by calling the registered delete
handler.
2008-09-06 12:24:06 +02:00
Christian Thaeter
86deb4e72d
Probabilistic Splay Tree implementation
...
Generalized an older implementation I already had, the splay formulas need
some improvements. Documentation comes next.
2008-09-06 12:23:58 +02:00
Christian Thaeter
bc055ab803
Probabilistic Splay Tree implementation
...
Generalized an older implementation I already had, the splay formulas need
some improvements. Documentation comes next.
2008-09-06 12:22:43 +02:00
Christian Thaeter
9471e47cdf
WIP: Cuckoo hash update, leave it at a insane state
...
* add a destructor function for elements
* rename cuckoo_free to cuckoo_delete to be consistent with the rest
* add a custom copy function to the cuckoo hash
* Cuckoo hash update, use a vtable to pass functions to the constructor
* make the source of a move non-const, just in case something needs
to be cleaned up there.
* let cuckoo_insert return the hash table entry directly
2008-09-06 12:08:23 +02:00
Christian Thaeter
cfcb9ce34c
Add lumiera_tmpbuf_strcat3 for concating up to three strings to safeclib
2008-09-06 12:08:22 +02:00
Christian Thaeter
e2b7561c76
FIX: put a note to list_relocate, add test
...
There was a fatal thinko, llist_relocate NUST NOT be called on a empty
list, the pointers will just point to invaildated memory. This cant be
handled by the llist code. The programmer is responsible to take proper
actions.
2008-09-06 12:07:38 +02:00
Christian Thaeter
0debd27d89
Merge branch 'master' of git://git.lumiera.org/LUMIERA into library
...
* 'master' of git://git.lumiera.org/LUMIERA: (80 commits)
fix some warnings
fix name of 'doc' target, remove the OPENGL flag for now
improved the architecture overview (drawing)
Fixed hyperactive scroll wheel zoom
Fixed a bug with body redrawing and added some documentation
Added some documentation to body and ruler
Added support for audacity style playback period, and added some
Added time indication
improved the scons build to report all missing dependencies instead of stopping at the first one
add my favorite lumiera logo to the TiddlyWiki page
scons: use Doxygen builder
makefile typo fix
disable precompiled headers for now.
replace the homebrew GCH-builder by a lib solution
yet more make fixes
make build work again with SCons 0.96
preliminary fix for the SCons build for Debian/testing
automatically set DEBUG when using the (current) NoBug default ALPHA
Fix build with gcc 4.3
integrated SVG Icon rendering into the SCons build
...
2008-09-06 11:53:16 +02:00
d94f1b9305
merge doc fixes
...
Merge commit '163ba179ed93c49c6d331c16afe9e54e97ad1876'
2008-09-04 15:28:39 +02:00
Michael Ploujnikov
8bdab41ea0
factor out -I$(top_srcdir)/src/ to a top-level AM_CPPFLAGS
...
also remove a related unnecesary comment in src/gui/Makefile.am
2008-08-30 12:05:21 -04:00
c5778f1540
Merge from proc (draft imp of pull() call)
2008-08-17 18:35:49 +02:00
749f7a41c6
Landing draft implementation of pull() call
2008-08-17 04:22:46 +02:00
Christian Thaeter
0bd886249b
throw away the 'references' implementation, we probably don't need it
...
(could be reincarnated someday later when we find out that we need it)
2008-08-10 12:19:50 +02:00
Christian Thaeter
dde54ec7b0
Adapt the condition implementation to the macro SECTION based approach
2008-08-10 12:19:50 +02:00
Christian Thaeter
d8f59fb722
Simplyfiy resource management
...
Move the resource announce/forget into the rwlock init/destroy
Move resource announcement/forget into the mutex init/destroy
2008-08-10 12:19:09 +02:00
Christian Thaeter
c11915a4c4
new locking section macros for RWLocks, old acquirer bites the dust
2008-08-10 12:19:09 +02:00
Christian Thaeter
d0b6919eea
locking.h bites the dust
2008-08-10 12:19:09 +02:00
Christian Thaeter
b2b205f6db
remove unnecessary volatile (forgotten for a test)
2008-08-10 12:19:09 +02:00
Christian Thaeter
07f06d0d88
big mutex update, dropped old acquirer
...
Acquiring mutexes is now wraped in a easy to use MUTEX_SECTION macro.
This scheme will be extended for chained lock propagation soon.
Notes:
* NoBug resourcemanagement is now part of the lower layer,
RESOURCE_ENTER/RESOUCE_LEAVE are maintained automatically
* one must still call RESOURCE_ANNOUNCE/RESOURCE_FORGET, because we want
to maintain high level information about resources.
* MUTEX_SECTIONS must not be left with any kind of jump
2008-08-10 12:19:09 +02:00
Christian Thaeter
47b5a2667c
add LOCKED_SECTION macros to rwlock, fix bug in rwlockacquirer
2008-08-10 12:19:08 +02:00
Christian Thaeter
12feb6e7b8
add 'lumiera_free' as replacement for 'free'
...
lumiera_free() is for now just a static inline wraper around free()
Later this makes it easier to hook in some resource managing functions
or a Garbage Collector in.
Replaced all current uses of free()
2008-08-10 12:19:08 +02:00
Christian Thaeter
f5df65b0a1
add a translation function to tmpbuf
...
tmpbuf_tr takes an input string and 2 sets of characters plus a
default character. It produces a output string with all
characters from the first set translated to the correspondending
character in the 2nd set, similar to the shell 'tr' util.
2008-08-10 12:19:08 +02:00
Christian Thaeter
93e126f5ab
add a 'lumiera_err' typedef
2008-08-10 12:19:08 +02:00
Christian Thaeter
9826fd180d
renamed the uuid to luid
...
uuid's are somewhat standardized, we use our uid's slightly differently,
so change the name not to be confused with standards.
* Small fix for luid generation
* build a 'luidgen' tool which will be used by the interface gen later
* add emacs vars
* include the luidgen tool in automake
2008-08-10 12:18:20 +02:00
Mano Stienen
163ba179ed
moved documentation from error.c to .h
2008-07-20 16:11:08 +02:00
Mano Stienen
14b9847a69
moved documentation from plugin.c to .h
...
and
cleaned documentation from safelib.c that already existed in .h
2008-07-19 14:47:03 +02:00
Mano Stienen
1cabeff7bf
Merge branch 'HEAD' of git://git.lumiera.org/LUMIERA into doxygen_fixes
2008-07-14 22:42:59 +02:00
Mano Stienen
6838dbe12a
documentation from condition.c and reference.c moved to .h
2008-07-11 08:15:08 +02:00
Mano Stienen
1d8bc98429
moved documentation from mutex.c to .h
2008-07-11 06:32:56 +02:00
Mano Stienen
7f1987666f
moved documentation from rwlock.c to .h
2008-07-11 05:02:47 +02:00
a46bfd2bf6
integrate the GTK-Gui (draft) in the SCons build
2008-07-11 03:51:37 +02:00
7c56c71d00
Documentation Update, including info about ongoing builder work
2008-07-07 23:56:34 +02:00
98a542f920
WIP drafting how to build all possible operation configs
2008-07-05 18:50:54 +02:00
Joel Holdsworth
3cc0f72389
Trivial timeline now works - more work coming
2008-06-18 23:57:47 +01:00
Christian Thaeter
00b9dff106
Doxygen config update
...
* set EXPORT_ALL=NO to leave out undcoumented entities.
* Fix a lot @file directives
2008-05-19 16:27:29 +02:00
Christian Thaeter
94e075d2c2
fix: mrucache_drop() must call the element destructor
2008-05-19 16:23:16 +02:00
Christian Thaeter
03ed87051d
fix missing declaration of lumiera_calloc() in safeclib.h
2008-05-19 16:23:16 +02:00
Christian Thaeter
63c07d1274
doxydocing mrucache
2008-05-19 16:23:15 +02:00
Christian Thaeter
dc0cbf0ad8
Fix: off by one allocation error in tmpbuf_snprintf()
2008-05-19 16:23:15 +02:00
Christian Thaeter
ff6ce603a4
tmpbuf_sprintf renamed to tmpbuf_snprintf
2008-05-19 16:23:15 +02:00
Christian Thaeter
0996c386bb
Mrucache update
...
* Fix: unlinking at destroy
* rename add/remove to checkin/checkout
* add a drop function which moves a node to the end for fast reuse
2008-05-19 16:23:15 +02:00
Christian Thaeter
b909c2247d
add a cuckoo_nelements function
...
Query the number of elements stored in a hash, useful for debugging.
2008-05-19 16:23:15 +02:00
Christian Thaeter
293b872b5d
extend the MUTEX_SECTION macro with NoBug resource tracking
...
LUMIERA_MUTEX_SECTION takes now a nobug flag as first argument and
a nobug resource-handle as second argument.
This change works forward for the NoBug resource tracker and
deadlock detector.
2008-05-19 16:23:15 +02:00
Christian Thaeter
b4183ed444
safeclib improvements
...
* add lumiera_calloc()
* improve cleanup functions for tmpbuf
2008-05-19 16:23:15 +02:00
Christian Thaeter
5ae909e2a0
add C++ parts to lib build
2008-05-19 01:51:34 +02:00
Christian Thaeter
249c6d5eda
Remove _GNU_SOURCE from certain files
...
GNU_SOURCE is globally activated in configure.ac
2008-05-17 23:33:21 +02:00
Christian Thaeter
2cbfeda4df
correct return types in condition.h
2008-05-17 23:25:50 +02:00
Christian Thaeter
a9cf2c719d
Fix: uuid includes
2008-05-13 21:42:51 +02:00
Christian Thaeter
380c1d2c47
dropped the pre-gavl framerate sources out of lib
2008-05-13 21:31:30 +02:00
Christian Thaeter
b41115d1b2
Add cuckoo hashing to the library
...
This implementation of cuckoo hashing gives guaranteed O(1)
lookup complexity and amortized O(1) insert and remove complexity.
Hash tables by default grow and shrink automatically.
It is posible to preallocate entries and turn automatic shrinking off,
taking out the memory management factors for insert and remove operations.
2008-05-13 20:57:20 +02:00
Christian Thaeter
3a8b3feb96
add string creating functions to tmpbuf
...
* lumiera_tmpbuf_strndup() duplicates a string
* lumiera_tmpbuf_sprintf() creates a formatted string
2008-05-13 20:57:20 +02:00
Christian Thaeter
d32c74361b
Fix: typo in mrucache_age()
2008-05-13 20:57:19 +02:00
Christian Thaeter
69ba3b389c
LUMIERA_MUTEX_SECTION(mutex) macro for sections of mutex protected code
2008-05-13 20:57:19 +02:00
Christian Thaeter
eab6b64f6d
let mrucache age return how much elements it couldn't purge
2008-05-13 20:57:19 +02:00
Christian Thaeter
328127980a
a small most-recent-used cache implementation
2008-05-13 20:57:19 +02:00
Christian Thaeter
7686a2ec56
Renamed the temporary 'buffer' functions to 'tmpbuf'
2008-05-13 20:57:18 +02:00
Christian Thaeter
0b8b5bf507
uuid functions
2008-05-13 20:54:05 +02:00
Christian Thaeter
27ca8a7362
let LUMIERA_DIE take an error identifier as parameter
2008-05-13 20:54:05 +02:00
Christian Thaeter
8b162cada4
llist update
2008-05-13 20:54:04 +02:00
Christian Thaeter
19ee8afa08
safeclib wraps some common c library functions and adds some tools
...
* lumiera_malloc which succeeds or dies
* some safe string functions
* Thread local round robin buffers for temporary data
2008-05-13 20:54:04 +02:00
3e8996005e
start using the new lifecycle hooks. remove global nobugcfg.h
...
Now using proc/lumiera.hpp and proc/nobugcfg.hpp (i.e. only for the proc-Layer). Using ON_BASIC_INIT to
pull up NoBug automatically and for installing the unknown-exception handler. Add calls for
ON_GLOBAL_INIT and ON_GLOBAL_SHUTDOWN hooks to main() and to the testrunner
2008-04-14 05:15:16 +02:00
a03e3c5e73
Merge from backend: wikis, admin-scrits, test.sh
...
(dont merge any srcfiles)
2008-04-12 02:07:16 +02:00
Christian Thaeter
15bab21da8
Merged the timestuff removal, done by simeon
...
(cherry picked from commit bc5a301d01ac323bafcc434e33f6043678749f14)
2008-04-12 01:12:18 +02:00
e737b9ef1b
Lumiera renaming -- source code
2008-03-10 06:09:44 +01:00
fbacb4cdb1
Lumiera renaming -- build system
2008-03-10 05:07:21 +01:00
0baf15ca94
Cinelerra-3 renamed to Lumiera -- copyright and documentation
2008-03-10 04:25:03 +01:00
7aca8cdf86
fix test-references
2007-11-27 00:52:26 +01:00
Christian Thaeter
4af35786d7
Merge branch 'velmont' of git://git.pipapo.org/cinelerra3/mob
2007-10-20 18:21:14 +02:00
Odin Omdal Hørthe
c2f5665e56
More doxygen documenting in src/lib/. Some name fixes, some new docs.
2007-10-20 18:10:35 +02:00
Odin Omdal Hørthe
9952aa33a4
Updated function docs to use the actual variables and cut textwidth at 105
2007-10-20 17:50:42 +02:00
Odin Omdal Hørthe
8afd4e1b8d
Documented cinelerra_plugin_lookup in plugin.c
2007-10-20 17:38:03 +02:00
Odin Omdal Hørthe
74a7bf4493
Made a @file-skeleton for doxygen for the files in src/lib/
2007-10-20 17:27:27 +02:00
Odin Omdal Hørthe
d9c9b4e15e
Moved function doc from rwlock.h to rwlock.c
2007-10-20 17:08:12 +02:00
Odin Omdal Hørthe
e628110d45
Moved function doc from plugin.h to plugin.c
2007-10-20 17:03:59 +02:00
Christian Thaeter
b67af669ee
removed check for list=!NULL which barfs on gcc 4.2
2007-10-20 17:00:53 +02:00
Odin Omdal Hørthe
9bf36e1eb4
Moved function doc from mutex.h to mutex.c
2007-10-20 16:57:39 +02:00
Odin Omdal Hørthe
6eea8a60e0
Moved function doc from error.h to error.c
2007-10-20 16:52:59 +02:00
Odin Omdal Hørthe
4b406b2a99
Moved function doc from condition.h to condition.c
2007-10-20 16:31:24 +02:00
Christian Thaeter
d5fe116941
add 'references' to lib
2007-09-19 08:44:58 +02:00
Christian Thaeter
ba716dbda4
better smart references, still raw meat
2007-09-19 07:01:12 +02:00
Christian Thaeter
96b9f65e6f
some unmmerged changes?
2007-09-19 06:58:54 +02:00
Christian Thaeter
38ce0afec4
smartref.h WIP
2007-09-13 20:24:18 +02:00
Christian Thaeter
2aaad10bbd
fixed typos and added some basic tests for the llist.h
2007-09-05 07:07:52 +02:00
Christian Thaeter
3ce5d3cedd
revived, beefed up and documented a old linked list implementation, UNTESTED
2007-09-05 02:44:23 +02:00
Christian Thaeter
f1aba12af8
renamed *lock to *acquirer
2007-09-03 06:40:44 +02:00
Christian Thaeter
d508f7cb7a
rwlock first implementation
2007-09-03 06:35:13 +02:00
Christian Thaeter
04f9424ad8
forgotten to commit the Makefile.am with the last commit
2007-09-02 23:25:38 +02:00
Christian Thaeter
0a31c7d2db
mutex implementation
2007-09-02 17:52:30 +02:00
Christian Thaeter
d50ab9fe21
cosmetic fixes
2007-09-02 17:51:55 +02:00
Christian Thaeter
7445c1798d
generic locking.h for shared declarations
2007-09-02 16:19:50 +02:00
Christian Thaeter
0d1097315c
renamed locking.* to condition.*
2007-09-02 13:56:33 +02:00
Christian Thaeter
754b9cc24e
C wraper for condition variables
2007-09-02 00:52:40 +02:00
Christian Thaeter
194d7810f4
add a cinelerra error which can be used to forward standard C errors from errno
2007-08-31 01:21:44 +02:00
Christian Thaeter
5832cfeae2
Merge branch 'master' of git://git.pipapo.org/cinelerra3/ichthyo
2007-08-30 01:42:06 +02:00
Christian Thaeter
98d3716fcb
Merge branch 'library'
2007-08-30 00:33:38 +02:00
Christian Thaeter
e438ad6e8f
add documentation and error handling to framerate functions
2007-08-29 17:41:10 +02:00
Christian Thaeter
e41059497f
refined and corrected framerate caclulation
2007-08-28 19:28:41 +02:00
d54b600382
implemented C++ error handling system
2007-08-26 19:14:39 +02:00
Christian Thaeter
c2898d26f2
put framerate caclulation in a single file
2007-08-25 03:46:07 +02:00
Christian Thaeter
2976b2ab29
time handling ok so far
2007-08-24 06:02:29 +02:00
Christian Thaeter
bf32b80521
added error handling, removed timebase from framerate
2007-08-23 11:15:01 +02:00
Christian Thaeter
1b85206c85
time.h for initial! review
2007-08-23 06:57:08 +02:00
Christian Thaeter
e2ffd09f4b
doxycomment errorhandling, small macro improvement
2007-08-23 05:30:29 +02:00