2e1df16bdc
settle on a concrete implementation approach based on inheritance chain
...
After some reconsideration, I decide to stick to the approach with the closures,
but to use a metaprotramming technique to build an inheritance chain.
While I can not decide on the real world impact of storing all those closures,
in theory this approach should enable the compiler to remove all of the
storage overhead. Since, when storing the result into an auto variable
right within scope (as demonstrated in the test), the compiler
sees the concrete type and might be able to boil down the actual
generated virtual function implementations, thereby inlining the
given closures.
Whereas, on the other hand, if we'd go the obvious conventional route
and place the closures into a Map allocated on the stack, I wouldn't
expect the compiler to do data flow analysis to prove this allocation
is not necessary and inline it away.
NOTE: there is now guarantee this inlining trick will ever work.
And, moreover, we don't know anything regarding the runtime effect.
The whole picture is way more involved as it might seem at first sight.
Even if we go the completely conventional route and require every
participating object to supply an implementation of some kind of
"Serializable" interface, we'll end up with a (hand written!)
implementation class for each participating setup, which takes
up space in the code segment of the executable. While the closure
based approach chosen here, consumes data segment (or heap) space
per instance for the functors (or function pointers) representing
the closures, plus code segment space for the closures, but the
latter with a way higher potential for inlining, since the closure
code and the generated virtual functions are necessarily emitted
within the same compilation unit and within a local (inline, not
publickly exposed) scope.
2015-04-05 18:26:49 +02:00
723d1e0164
settle architectural considerations regarding the TreeMuator concept
...
so yes, it is complicated, and inevitably involves three layers
of indirection. The alternative seems to bind the GUI direcly to
the Session interface -- is there a middle gound?
For the messages from GUI to Proc, we have our commands, based
on PlacementRef entities. But for feeding model updates to the
GUI, whatever I consider, I end up either with diff messages or
an synchronised access to Session attributes, which ties the
responsiveness of the GUI to the Builder operation.
2015-04-03 20:10:22 +02:00
e4a1261849
initial syntax draft
...
the envisioned DSL syntax for installing the binding closures
into a generic tree mutator object seems to work out
2015-04-02 03:30:20 +02:00
b051845835
identify and decide on some of the insidious questions of design
...
- how to deal with typing
- how to relate equality and mutations
2015-03-21 19:23:41 +01:00
f5ddfa0dbe
decide on the foundations of tree diff representation
...
- we use a GenNode element
- this holds a polymorphic value known as DataCap
- besides simple attribute values, this may hold collections of GenNode sub elements
- a special kind of GenNode collection, the Record, is used to represent objects
The purpose of this setup is to enable an external model representation
which is only loosely coupled to the interndal data representation
through the exchange of (tree)diff messages
2015-03-21 02:00:55 +01:00
8b6177a1c5
Design: Backbone of the GUI
...
This is the first step towards a generic backbone to connect
any GUI elements to the session within Proc-Layer.
It is based on a spefic understanding of Model-View-Controller,
which turns the Model-Controller interactions into messages.
2015-01-06 23:44:58 +01:00
55b2c79aad
Implementation of List Diff detection finished. Unit Test PASS
2015-01-04 15:13:16 +01:00
a12a739f05
allow for iterative access to the snapshot data in the lookup table
2015-01-04 14:23:12 +01:00
a8d1cd9c8b
trivial implementation of index / snapshot table
...
lots of room for improvement here :)
2015-01-04 14:01:07 +01:00
80eec4132b
factor out index table helper and define its contract
2015-01-04 13:23:57 +01:00
d0dcccbd1b
move and split drafted code to the acutal library headers
2015-01-04 12:36:13 +01:00
eb8ad8ed11
code up the actual list diff generator algorithm
...
sans the implementation of the index lookup table(s)
The algorithm is KISS, a variant of insertion sort, i.e.
worst time quadratic, but known to perform well on small data sets.
The mere generation of the diff description is O(n log n), since
we do not verify that we can "find" out of order elements. We leave
this to the consumer of the diff, which at this point has to scan
into the rest of the data sequence (leading to quadratic complexity)
2015-01-04 12:02:41 +01:00
5427d659d7
definition reordering and comments
2015-01-04 09:26:25 +01:00
97c63e0472
solution how to place and use the diff token constructors
...
finally....
The problem is that the C++ "dependent types" defeat the typical
DSL usage, where you define some helper function in a generic
language setup class and mix this language in as superclass.
This is, C++ requires us to refer explicitly to any dependent type,
since, due to possible template specialisations, the parser
can't know if a given symbol is a inherited type or a field.
As a solution, we place the token constructor functors into a
static struct "token", which allows to write e.g. token.insert(xyz)
2015-01-04 09:08:36 +01:00
5c818aff69
better typename
2015-01-03 12:52:09 +01:00
5bae84392a
implementation of demand-driven diff generating iterator
...
TODO: actual decision tree
2015-01-03 02:37:33 +01:00
25646337cd
change list diff language to rely on 'find' instead of 'push'
...
As decided in beb57cde
this changeset switches our basic list diff language to work
in the style of an insertion sort. Rather than 'pushing back'
out-of-order elements, we scan and bring forward missing elements.
Later, when passing the original location of the elements
fetched this way, a 'skip' verb will help to clean up
possible leftowers, so implementation is possible
(and indeed acomplished) without shifting any other elements.
2015-01-02 13:18:25 +01:00
ee941996c4
DSL tokens need to be equality comparable
...
and this adds a twist: conceptually, we identify the token
with the abstract handler function it represents. But C++
does not allow us to compare member pointers to virtual functions,
for good reason: even two pointers with the "same offset" into
the VTable might end up referring to different implementations,
when bound to instances of different subclasses. This is what
polymorphism is all about.
At this point it seems reasonably, albeit a bit uggly, to use the
diagnostic ID as placeholder instead, and just compare these IDs
instead. We assume that in practice tokens will be defined through
the provided helper macro, which ensures unique identifiers.
2015-01-02 11:31:29 +01:00
cd85b3425e
fix: neat a dedicated translation unit for definitions
...
...yes, sometimes we even want to emit code ;-)
2015-01-02 11:26:27 +01:00
14849c2df0
convenicence shortcut to expose a container snapshot as iterator
...
basically just a function to pick up the container and element type automatically.
The actual implementation is delegated to the exisiting lib::iter_stl::IterSnapshot
2014-12-15 03:22:36 +01:00
9707a8982c
Diff Handling and Diff Application: framework and definitions
...
factored out of the concept test built last week.
2014-12-15 03:21:19 +01:00
658698407e
use the successful concept test as starting point for a diff handling system
...
...basically move code from test to various headers
2014-12-15 01:27:03 +01:00
746fba98d5
DSL verb token: move to distinct definition header
...
concept finished thus far
2014-11-28 12:50:58 +01:00
088e4422fb
Test helper to show demangled C++ names
...
Heureka! found out that the C++ standard library exposes a
cross vendor C++ ABI, which amongst others allows to show
object code names and type-IDs in the language-level, human
readable unmangeld form.
Of course, actual application code should not rely on such a
internal representation, yet it is of tremendous help when
writing and debugging unit tests.
Signed-off-by: Ichthyostega <prg@ichthyostega.de>
2014-11-22 03:31:59 +01:00
639fd224db
Lib: helper to deal with malloced memory automatically
...
basically just a dressed-up std::unique_ptr
2014-11-16 04:26:12 +01:00
09e7e1f8f5
WIP: pondering diff representation variants
...
Actually I arried at the conclusion, that the *receiving* of
a diff representation is actually a typical double-dispatch situation.
This leads to the attempt to come up with a specialised visitor
as standard pattern to handle and apply a diff. Obviously,
we do not want the classical GoF-Visitor, but (yes, we had
that discussion allready) -- well in terms of runtime cost,
we have to deal with at least two indirections anyway;
so now I'm exploring the idea to implement one of these
indirections through a functor object, which at the same time
acts as "Tag" in the diff representation language (instead
of using an enum as tag)
2014-11-10 04:00:39 +01:00
41ad41d1f1
clean-up: sourcefile layout and spell checking
...
Uniform sequence at start of source files
- copyright claim
- license
- file comment
- header guard
- lumiera includes
- library / system includes
Lumiera uses Brittish spelling. Add an according note to the styleguide.
2014-10-23 23:04:35 +02:00
30686fdf82
fix argument passing for MultiFact( #388 )
...
as always, it turned out that the alledged "compiler bug"
rather was my own sloppyness: I forgot properly to undo a change
I made while fighting with compilation problems: the wrapper in
the factory didn't use std::forward, resulting in a plain flat
slicing copy. This, rightfully, triggered the assertion in the
session query resolver (since a sliced Goal can not be dynamic cast
to a specific Query subclass).
2014-09-23 03:37:28 +02:00
059dbd8c75
fix and finish the diagnostics helper
...
there was still a subtle bug in this helper.
testing your own test fixture is sometimes a good idea ;-)
2014-09-23 03:37:28 +02:00
4145452397
factor out a diagnostics helper for variadic templates
...
a nice offspring of this investigation
2014-09-22 03:37:07 +02:00
9dfd3fc981
phase out some use of auto_ptr
...
TODO: the toolfactory needs a redesign anyway,
this was just placeholder code added in a very early
state of the Lumiera project. We have way better memory
managing facilities at hand now
2014-09-15 02:03:10 +02:00
d064623bab
Reworked MultiFact( #388 ): switch in the new implementation
2014-09-14 23:58:05 +02:00
9a5d9873c8
WIP: prepare switch to the reworked MultiFac implementation #388
2014-09-14 22:38:58 +02:00
591e6d9775
MultiFact: implement the last and most complex usage case
...
the use of a custom finisihing functor, which is applied
to any generated product. This can be used for registration,
memory management or similar framework aspects
2014-09-14 22:25:12 +02:00
932d49fd95
MultiFact: how I learned to love the Bomb
...
C++11 is just incredibly cool. It is so easy to
support a flexible yet specific set of arguments
2014-09-14 02:06:58 +02:00
372edbfc85
MultiFact: implement second use case (smart pointers)
2014-09-14 00:36:36 +02:00
0ff5c50030
MultiFact: implement simple usage pattern. NOTE: breaks CLang 3.0
...
Implement the first simple usage scenario for the
unified MultiFact template, using variadic templates.
NOTE:
- the obvious solution based on std::forward
triggers strange behaviour in GCC-4.7
- the inline lambda in the test case traps the
CLang-3.0 parster with a segfault. Horay!
2014-09-13 02:50:14 +02:00
a1bb9178f5
Ticket #388 : start investigation of MultiFact design
...
needs overhaul, since current design leads to problems
with GCC 4.8 onwards (and is messed up anyway)
2014-09-11 00:10:59 +02:00
b2b75fbe43
attempt to make factory invocation more evident in the code
...
...but the whole design looks still overengineered. See #388
- should get rid of the explicit specialisation
- always use a function signature and thus have arguments?
- why inheriting from the wrapper?
2014-09-08 03:37:41 +02:00
21079f3145
re-reading and rewording comments
...
still puzzled why this instantiation of MultiFact fails to compile with GCC 4.8
so I'm bound to understand why the types involved
need indeed to be are structured the way they are right now.
2014-09-08 02:52:38 +02:00
7faa2e784d
CLang-Compatibility: zero argument ctor now treated as function definition
...
previous versions used to resolve this ambiguity in favour of a ctor call,
but now the compiler treats such constructs as function definition;
this is reasonable, since C++11 introduced the notion of a "generalised
initialisation", which is always written as a (possibly empty) list
in braces.
In these specific cases here, we just omit the empty parens
2014-08-26 03:31:03 +02:00
05042d96cd
document the hash bridge with a unit test
2014-08-17 08:39:46 +02:00
e35a45a65e
tricky header reordering to support a hackish-workaround ( #944 )
...
right now we have to defeat an unfortunate static assertion in
the standard library, which is expected to go away in the future.
We use a hack to hijack the problematic definition with the preprocessor,
which requires our header to be first.
2014-08-17 08:03:21 +02:00
9a95beda32
Library: automatic bridge to use boost::hash functions for std::hash
...
NOTE: this header contains a potentially dangerous, temporary workaround
to defeat the static assertion in the default implementation of std::hash,
as shipped with GCC 4.7.x
This assertion turns out to be detrimental all kinds of metaprogramming
based solutions, since it defeats SFINAE. It is expected to be removed
in GCC 4.8
2014-08-17 07:15:47 +02:00
4acb7de682
half hearted fix: order of hashmap entries is implementation dependent
...
a real fix would be to rewrite the test to collect the retrieved
values and do a structural verification of the results. This
would mean to write a lot of code for such a marginal topic,
which was implemented just for sake of completenes anyway.
Hopefully my lack of "motivation" doesn't backfire eventually ;-)
2014-05-09 01:45:10 +02:00
a205653cad
C++ uses a more precise meaning of 'convertiblity' now
...
Conversion means automatic conversion. In our case,
what we need ist the ability to *construct* a bool from
our (function) object -- while functors aren't automatically
convertible to bool. Thus we use one of the new predicates
from <type_traits>
2014-05-09 00:56:31 +02:00
643dfe3ea8
fix long standing error in testsuite runner
...
...uncovered by switching to c++11
When invoking an individual test, we used to erase
the 0-th cmdline argument, which happens to be allways
the name of the test being invoked. Yet none of our
tests actually complied to that contract. Rather,
all tests taking arguments access them by 1-based
argument index. Previously, the argument values just
happened to be still in memory at the original location
after erasing the 0st element.
"Fixed" that by changing the contract. Now, the 0th argument
remains in place, but when there are no additional arguments,
the whole cmdline is cleared.
This is messy, but the test runer needs to be rewritten
entirely, the whole API is clumsy and dangerous. Ticket #289
2014-05-09 00:56:31 +02:00
a4c41d1c12
testrunner: handle help request properly
...
don't actually execute the tests when there was a --help
2014-05-05 22:59:23 +02:00
2e9467fe76
Ticket #942 : introduce move semantics for our custom shared-ptr-wrapper lib::P
2014-04-28 01:06:40 +02:00
761bab5647
C++11 transition fixes
...
- comparison of weak-pointers
2014-04-05 22:20:38 +02:00
44970ed96e
unsuccessful attempt to bridge between std::hash and boost::hash_value (Ticket #722 )
2014-04-03 22:43:35 +02:00
7be1b7d35d
Switch from TR1 preveiw to the new standard headers
...
- functional
- memory
- unordered collections
2014-04-03 22:42:48 +02:00
5be52d4a55
Ticket #925 : remove LUID from interface/plugin specifications
...
In the November developer meeting, Christian and I agreed that
it's best to remove that offending LUID specifications altogether.
Those embedded LUIDs where one of the issues blocking the transition to C++11
2014-03-16 02:21:07 +01:00
a640283e4c
introduce typedef for Frame numbers (see #882 )
2013-11-18 00:01:43 +01:00
4da923696b
partial fix: use 64 framecounts (Ticket #882 )
...
This is a partial and preliminary fix; we had an occasional
numeric overflow on 32bit platforms in some tests.
The complete fix will be to introduce a typedef and then
rework the relevant APIs (which are preliminary anyway,
thus no urge right now)
2013-11-10 04:14:39 +01:00
3ffc27eee0
bugfix: format-string for long and ulong values
...
our front-end for boost::format, the class lib::_Fmt
was lacking an reliable specialisation for long and ulong.
This is due to the notorious problem of these types being
of platform dependant size. As a fix, we're speclialising
explicitly for int16_t, int32_t and int64_t and avoid the
common names 'short', 'int' and 'long' alltogether.
And especially for non-64bit-platform (NONPORTABLE)
we add an explicit specialisation for long
2013-11-10 04:14:22 +01:00
888099466f
release prep: remove defunct autotools buildsystem
2013-10-29 03:47:50 +01:00
d15ec47f9e
DOC: some further round-up and polishsing
2013-10-28 06:14:42 +01:00
6822a9e2fb
DOC: reorganise the Doxygen configuration and structure
...
- upgrade the configuration to a current version
- provide a frontpage with cross-links to other documentation
- define a set of modules; relevant classes and files can be
added to these, to create a exploration path for new readers
- fix a lot of errors in documentation comments
- use a custom configuration for the documentation pages
- tweak the navigation, the sections and further arrangements
2013-10-25 06:34:38 +02:00
974c670d41
fix **** in doxygen comments
...
to make them stand out more prominently, some entity comments
where started with a line of starts. Unfortunately, doxygen
(and javadoc) only recogise comments which are started exactly
with /**
This caused quite some comments to be ignored by doxygen.
Credits to Hendrik Boom for spotting this problem!
A workaround is to end the line of stars with *//**
2013-10-24 23:06:36 +02:00
7967f6270d
bugfix: don't call the dtor on failed objects
...
When a ctor throws, the dtors of sub-objects have already been
invoked. The object itself never existed, strictly speaking,
and thus the dtor must not be invoked. Usually the runtime system
handles matters automatically this way, but since we're doing
here placement new into an array, we're responsible ourselves
This error was uncovered by compiling with Clang.
GCC automatically neutralised this erroneous dtor invocation.
2013-10-21 05:17:59 +02:00
3a119ca9dd
remove diagnostic msgs
2013-10-21 02:55:33 +02:00
7204c58680
Ticket #934 : refactor DependencyFactory back to local memory management
...
This removes the central clean-up registry;
Instead, now the InstanceHolder manages the lifecycle of
the service instances placed into static memory; the net effect
is that DependencyFactory and instances are created and destroyed
together, locally for each usage scope
2013-10-21 02:42:43 +02:00
52c83b860b
DependencyFactory: remove the ability to restart a service explicitly
...
We don't need this ability and it pushes us into using a
central registry. This solution turned out to be problematic
when loading dynamic libraries (plug-ins).
2013-10-21 02:06:01 +02:00
dcae33a173
debugging: diagnostic msgs on singleton creation/destruction
2013-10-21 00:32:55 +02:00
a889e5ee8b
restore santity check against double creation of singletons
...
this check may look weird, but in fact a similar check in the
old version of the singleton factory helped us spot a problem
with Clang, most likely but of the compiler or runtime system
2013-10-20 22:40:14 +02:00
a344604f1b
Clang( #928 ): adjustments regarding scope and visibility
...
Clang doesn't allow to declare a private nested class as friend.
This is unfortunate, but likely correct to the letter of the standard.
As a workaround, now we're creating the instances within a static
function of DependencyFactory -- in the end this improves readability
A second issue fixed with this changeset is the scope of the
marker function. Clang is right, this isn't ADL, thus an inline
friend definition is simply not visible outside the class.
2013-10-20 21:51:28 +02:00
bfba22f41a
move test mock support into separate header. Write comments ( closes #934 )
2013-10-20 03:48:23 +02:00
d43a4c2c86
resolve problem with static initialisation order
...
...uncovered by the better checks of the new DependencyFactory!
2013-10-20 03:21:24 +02:00
0ea37402d2
Ticket #934 : switch entire code-base to use the new Singleton factory
...
lib::Depend<TY> works as drop-in replacement for lib::Singleton<TY>
This changeset removes the convoluted special cases like
SingletonSub and MockInjector.
2013-10-20 03:19:36 +02:00
7b3c68898a
move header for test support
2013-10-20 01:24:49 +02:00
b225120d09
reworkted Singleton / DependencyFactory unit test pass
2013-10-20 00:34:21 +02:00
24792c1f19
brainstorming: how to implement the test mock injection
2013-10-19 23:37:00 +02:00
739a473f7e
implemented the standard code path of DependencyFactory
...
still mising: a mechanism to inject mock objects temporarily
2013-10-19 03:32:49 +02:00
ed7f975748
draft the creation and lifecycle facilities
2013-10-19 00:07:06 +02:00
78c7036678
reshape the management interface
...
now using static functions; which simplifies building
a scoped object to install a mock automatically within
unit tests.
2013-10-18 20:15:29 +02:00
7000a40602
WIP: stubbed factory functions
2013-10-18 02:49:37 +02:00
319da4bff6
WIP: improve the API
2013-10-18 01:10:03 +02:00
f93c7f8930
WIP: draft internal structure of dependency factory
2013-10-16 04:46:20 +02:00
567ab3819b
WIP: draft an improved version of the Singleton factory
...
...this would both improve our general design and circumvent
the problems with Clang and static variables
2013-10-14 01:18:56 +02:00
08cae2617d
fix insideous problem with mutex initialisation
...
explanation: we use pthread_once to define a mutex type descriptor,
used to define some of our mutexes as recursive mutexes. Now,
pthread_once relies on a counter stored in a given location;
we used a non-exported global var for this counter.
Unfortunately this ties the mutex initialisation to the static
initialisation of the compilation unit holding this counter variable.
Theoretically it would be possible (we never observed such an incident)
that, during static initialisation, a singleton was brought up,
which requires a class-scoped lock, implemented as recursive mutex.
And it would be possible for this singleton locking to happen prior
to initialisation of the mentioned counter variable.
As a fix, I've moved the counter varialbe into a function scoped
static variable, since that is guaranteed by the C++ runtime system
to be initialised at first usage of the function, irrespective of the
initialisation order of the enclosing compilation units
2013-10-13 01:48:27 +02:00
67523269fc
clean-up and comments for the singleton factory
2013-10-07 01:58:13 +02:00
66b62e2146
remove superfluous template parameter dependency
2013-10-07 01:58:13 +02:00
961936ce9d
Clang-3.0( #932 ): workaround for a known problem of Clang-3.0 (Debian/stable)
...
http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20121203/069267.html
http://stackoverflow.com/questions/13521163/variadic-template-as-template-parameter-deduction-works-with-gcc-but-not-with-c
Clang aborts the template type deduction due to different size of the argument lists;
in fact the missmatching arguments can be filled in perfectly from the default template arguments.
As a workaround, we'll include an unused placeholder type parameter into the templated function,
to make the match succeed.
2013-09-27 23:28:29 +02:00
cb80d4001a
Clang( #928 ): refactor OutputSlot implementation to resolve a scoping problem
...
Clang is more insistent when it comes to enforcing 'protected' visibility.
Since in this case the basic design can be considered sane and optimal, the
only (and obvious) solution is to nest the PIMPL into a default base class
for implementation; this mirrors the structure of the interface.
2013-09-27 23:25:51 +02:00
4ea20f0e74
Clang( #928 ): fix inconsistencies and compilation problems
...
Compilation with Clang 3.0 (which is available in Debian/stable) fails,
mostly due to some scoping and naming inconsistencies which weren't detected
by GCC. At some instances, Clang seems to have problems to figure out a
perfectly valid type definition; these can be resolved by more explicit
typing (which is preferrable anyway)
2013-09-27 23:23:13 +02:00
7f68bc9020
integrate priority queue: lumiera namespace prefix; unit test pass
2013-09-13 05:44:58 +02:00
fc3cc1bc98
integrate priority queue: adjust imports and doxygen comments
2013-09-13 04:18:16 +02:00
87a84a931f
Import priority queue implementation from Cehteh's library
2013-09-13 03:28:50 +02:00
2b8ac2d071
render job dummy passes unit test
...
the basic job and job closure interface is mostly settled now.
We can define and invoke render jobs, and distinguish jobs
through a hash ID
2013-09-07 02:37:17 +02:00
bcbd05d7eb
reorganise some boost::format usage
...
using our util::_Fmt front-end helps to reduce the code size,
since all usages rely on a single inclusion of boost::format
including boost::format via header can cause quite some code bloat
NOTE: partial solution, still some further includes to reorganise
2013-09-01 17:36:05 +02:00
febce1282c
standard hash value for jobs (prerequisite for #786 )
...
this is mostly a diagnostic facility; the actual scheduling
of jobs doesn't rely on hash values.
2013-09-01 02:30:14 +02:00
86e76bf7fe
define setup and chaining of render planning chunks ( #920 )
2013-08-17 03:37:36 +02:00
2488478a12
file-level comment for time values
...
a recent discussion showed that it is rather likely
for a reader new to the whole time handling framework
to encounter this header first....
2013-08-13 01:27:37 +02:00
84281d5b60
WIP: CalcStream initialisation
...
especially: where to establish the effective Timings.
also fixed several compilation errors
2013-06-15 04:02:48 +02:00
9cfbc7bbe6
GCC 4.7 compilation fix
...
now builds for me on Debian-7 Wheezy 64bit
unqualified member functions in dependent base classes not found anymore.
Need to qualify either the class or the instance.
2013-05-10 00:48:25 +02:00
d512267575
navigation orientation indicator done ( closes #918 )
2013-04-30 02:40:21 +02:00
e0c5b18740
draft indicator (helper) to support tree navigation
2013-04-29 01:36:32 +02:00
d953d4e6af
Library: convenience function to take addresses
...
just a wrapper based on 5749a621
While implementing this, also simplified the way
a const iterator can be defined for taking addresses
2013-04-15 03:07:15 +02:00
346acb1fec
WIP continue debugging this test...
...
Problem with the visitation is solved now.
But the tree is still not rebuilt properly
2013-04-13 04:30:04 +02:00
5749a6216c
Library: iterator wrapper to expose the address
...
...for the very specific situation when we want
to explore an existing data structure, and the
exploration assumes value semantics.
The workaround then is to use pointers as values.
2013-04-08 02:03:43 +02:00
8353ebf7d2
WIP drafting cointinued...
...
now drafting the call structure
which might be used for adding jobs
to the scheduler.
Passes compiler
2013-03-31 01:13:13 +01:00
4c312e2299
WIP reworked idea for this test
...
...attempt to build it based on the monadic iterator primitives.
Only problem is: need to find out relation between nodes
after the fact. In the real usage situation, this
is not a problem, since we have a state object
there, which can track the relation as it is established
2013-03-23 01:17:23 +01:00
16c9f5fd36
WIP musing about re-creation of tree visitation order
2013-03-17 03:14:05 +01:00
7ada9ff291
consider how to integrate a playback mode strategy
2013-02-11 03:19:24 +01:00
727fdd8691
add convenience shortcut to access a collection's last element
...
actually two accessor functinons first() and last(),
which automatically pick a proper implementation,
either by iteration or by direct access
2013-01-13 16:49:20 +01:00
740f3d0211
add detection for STL-like back iteration
2013-01-13 16:39:43 +01:00
a4411d00b1
DONE: time anchor and latency handling for job planning
2013-01-12 12:38:33 +01:00
a2e4a23b30
bugfix
2013-01-11 14:11:51 +01:00
ada5cefaaf
re-arrange tests according to layer structure
...
the buildsystem will now pick up and link
all test cases according to the layer, e.g.
backend tests will automatically be linked
against the backend + library solely.
2013-01-07 05:43:01 +01:00
56d42e9b04
comments and tidying within BasicStetup and AppState
2013-01-05 04:50:59 +01:00
1c5ceaef15
Boost filesystem Ver 2/3 transition
...
This is kind of a workaround to avoid having to maintain two variants.
Explanation: between Boost 1.42 and 1.52 there was the transition to a
reworked version of the filesystem library, itroducing some breaking changes
The new version distinguishes much clearer between the native and the
generic representation of paths -- which becomes relevant when porting
to non-POXIX operating systems.
Actually the intention was to use the generic path representation in all
configuration; currently this distinction is moot, since we're caring
only for POSIX systems.
So the workaround is to use the fsys::path::string() function, which
is available in both versions, but changed meaning to yield the native
string. Later, when able to deprecate older Boost versions, we should
switch to generic_string()
Note: an alternative solution was found by Mike Fisher in 3b39f35
using the compiletime define BOOST_FILESYSTEM_VERSION=2
See also ticket #896
2013-01-05 04:50:29 +01:00
6a3d4777be
supplement special format handling for Symbol datatype
2012-12-27 22:32:55 +01:00
a1d98eb457
restore and fix some broken tests
...
..more to come, especially several of the
QueryResolver based tests are still broken
2012-12-27 03:31:09 +01:00
01792739f3
change Query ordering and hash to include the type information
2012-12-26 01:11:57 +01:00
d73c2fa842
adapt the fake-config-rules to use the new Query::Builder
2012-12-25 01:16:19 +01:00
9369709a46
fix breakage uncovered by unit-test
2012-12-24 03:20:52 +01:00
a9600387ba
refactor defaults-manager to use the reworked query interface
2012-12-22 00:39:23 +01:00
5cddc57932
WIP extend query with a warpper for indexing and ordering
...
...to extract the syntetic ordering from
DefsRegistry and make that a responsibility
of the (internal) syntactic representation
of the query.
doesn't pass the compiler yet
2012-12-17 23:17:32 +01:00
602a04c4b5
factor out fequently used functions for ordinal numbers
2012-12-11 04:07:06 +01:00
8630e888a5
integrate (placeholder) query definition
...
effectively this joins the two existing lines
of "Query" classes into one systematic representation
Next step would be to move all mutation operations
over to the Query::Builder
2012-12-07 01:49:35 +01:00
5b2668a17c
generic query representation (placeholder)
...
...planned to be replaced later by a real
AST based implementation, which acutally
parses the query definitions
2012-12-03 00:41:57 +01:00
d306bb3cdf
fix includes
2012-12-03 00:18:18 +01:00
6c8bf1f9e4
bring the plain query utilities back into lib
2012-12-02 23:32:30 +01:00
a79ba2c507
refactor use of HashVal typedef ( #722 )
2012-12-02 23:03:37 +01:00
5292b19dd6
clean-up and finalise time::Mutation
2012-12-02 01:54:02 +01:00
3852c8f8e8
provide a time mutation for nudging based on symbolic grid reference
...
time handling is part of the library, while this
convenience shortcut relies on the Advice system,
which resides in the application lib.
To allow this kind of symbolic acces to a grid
entity defined "elesewhere", client code needs
to be linked against liblumieracore.so
2012-12-02 01:17:02 +01:00
5dfe5e099f
refactor namespaces for query and defaults manager
2012-12-01 08:44:07 +01:00
8ee8eb1e73
create a new integration point for using application services
...
especially this allows to use the Advice system
or the query resolvers from within library facilities
to refer to other implementation level services by name
2012-12-01 07:46:49 +01:00
626b1d4356
re-arrange query- rules- and resolver facilities within Core
...
the rules-based configuration and query system
will be located within the core application,
while the concrete implementation facilities
are expected to reside within the session or
maybe also the GUI.
This is kind of a 'rochade' refactoring to resolve
circular library dependencies and confine the parts
dependant on the session and MObjects to the Proc-Layer
And while we're in the middle of chainsaw surgery,
we'll concentrate further query-based facilities
alongside the config-rules within the App core.
2012-11-27 02:17:21 +01:00
dd8a88d095
adjustments and stubbing to get it past the compiler
2012-11-26 01:22:01 +01:00
b5a7055f29
move Query interface to Lib
2012-11-25 02:29:52 +01:00
baefd74ae7
prepare refactoring of the Query interface
2012-11-25 02:04:19 +01:00
62bfccd67b
cleanup: remove the old factory template
...
This template was a leftover from the early days
of Lumiera development and doesn't provide any
substantial value as an abstraction.
For the more intricate cases, we're using the
lib::MultiFact template, which allows to install
several "fabrication" functions at runtime
2012-10-14 01:30:08 +02:00
Michael Fisher
f7a7c1c416
GCC 4.7 compilation fixes. Now builds on debian wheezy beta2
2012-10-10 05:29:54 +02:00
Michael Fisher
e267e0ad0b
GCC 4.7 compilation fixes
...
clarify binding of function (by specifying 'this')
2012-10-10 05:25:42 +02:00
30cf0b5718
implementation of JobTicket::ExplorationState
2012-10-10 05:20:22 +02:00
062e1bbdc1
explicate the JobPlanningSequence definition
...
..causing the compiler to instantiate the
involved templates, i.e. get the complete
pipeline definition through the compiler
2012-10-10 05:20:22 +02:00
66defdc0cb
refactor JobPlanning to encapsulate all state mechanics into a "state core"
...
especially the exploration stack is pushed down
first successful definition of all the JobPlanning classes
just the framework of classes necessary to pass the compiler;
all implementation is still stubbed
2012-10-10 05:20:21 +02:00
88f433f433
successfully implemented another combinator strategy
...
DOH!
this thime hopefully I've actually succeedd to
created what is actually required in the Dispatcher
2012-10-10 05:20:20 +02:00
e073d05f58
new header to define some class partially noncopyable
2012-10-10 05:20:20 +02:00
016a739a5c
WIP back to the original problem: how to dispatch jobs...
...
brainstorming how to implement the job planning stage
the idea is to built on top of the IterExplorer,
but have the "stack" of re-evaluation integrated
into a custom type, which exploits the static
node network structure to avoid heap allocations
solution idea: again use a builder function?
2012-10-10 05:20:20 +02:00
0e3821abeb
refatcor function meta programming headers
...
the template _Fun started as an internal helper
for function-closure, but seems to be of
general use. Thus move it into meta/function.hpp
(function-closure.hpp is heavyweight)
2012-10-10 05:20:19 +02:00
e6a105fbc1
iterator exploring monad finished, passes unit test
2012-10-10 05:20:19 +02:00
3d0d599158
get the depth-first exploration test to work
...
...using the IterQueue for intermediary results
2012-10-10 05:20:18 +02:00
2c33000346
complement IterStack by a similar wrapper for queue-like access
2012-10-10 05:20:18 +02:00
8ced6758fb
initial draft for recursive evaluating iterator monad
...
tricky design problem, because nothing is known about
the source and result sequences to be built.
2012-10-10 05:20:18 +02:00
59c5627bbe
change Implementation class for IterStack
...
now using a std::deque directly; this allows
for a later extension for queue-like behaviour
2012-10-10 05:20:18 +02:00
41180eb99c
rework to allow for recursive evaluation
...
this enables expansion of a (functional) data structure
until exhaustion -- which is what we need to
build job functors by traversing and expanding
an arbitrarily nested job definition structure
2012-10-10 05:20:17 +02:00
697924925c
pragmatic fix for the long-standing problem of detecting increment operator
...
our duck-detector had a shortcoming here and failed
to detect iterators, in case the increment operator
was inherited from a mix-in
2012-10-10 05:20:17 +02:00
8db5413199
implemented chained-iterators
...
...using the IterExplorer building blocks
2012-10-10 05:20:17 +02:00
d14b37a71d
utility class factored out and covered by test
...
...a stack which can be Lumiera-iterated
2012-10-10 05:20:16 +02:00
da4a343e9e
refactor IterExplorer to allow for more flexible strategy definition
2012-10-10 05:20:16 +02:00
dc3ebd4a8f
first working concept for an "iterator monad"
...
the intention is to use this to simplify
generating render jobs based on the elaborated
dependency network of the render nodes. The key
challenge is to overcome the necessity to
store partially done evaluations as
continuation
2012-10-10 05:20:16 +02:00
eedcd69941
draft the IterExplorer design
...
the tricky part seems to be how to combine the
source iterators into a new monad instance, while
keeping this "Combinator" Strategy configurable
...just passes the compiler, while still lacking
even the generic implementation of joining
together the source iterators
2012-10-10 05:20:16 +02:00
45f4c96c6f
change LinkedElements to us a more space efficient iterator
...
Actually we don't need any backreference to the
container for iterating a singly linked list
2012-10-10 05:20:15 +02:00
378ebe21f0
Fix naming of Iteration control API functions ( closes #410 )
...
comes in handy now, since IterStateWrapper uses a similar API
2012-10-10 05:20:15 +02:00
83a0f4b41f
Implementation (I) : IterStateWrapper as foundation (passing test)
2012-10-10 05:20:15 +02:00
ab2a6b2fce
WIP brainstorming about a monadic iterator
...
The idea is to avoid building a data structure
for intermediary results, while still being able
to process a variably sized and arbitrary shaped
set of source data
2012-10-10 05:20:15 +02:00
3ef1fb7697
linked list helper template finished and passes test
2012-10-10 05:20:14 +02:00
c33fcf9797
WIP draft a linked list helper template
2012-10-10 05:20:14 +02:00
ddff8b654b
WIP investigating the relation of Jobs, JobTicket and Closure in detail
2012-10-10 05:20:14 +02:00
0ab773ab7c
helper to pull all elements from an iterator, yielding the last one
2012-10-10 05:20:13 +02:00
5222384f8b
try to circumvent ambiguity in overload resolution
...
we want to support various integral and rational factors
for linear chaining of time offsets
2012-10-10 05:20:13 +02:00
08d266819d
re-read my own code and pick up the design work
...
..next question is: how to shape the dispatcher interface,
in order to support ongoing chunk wise planning
of new jobs, including a continuation
2012-10-10 05:20:13 +02:00
080d6913c6
fix a type converison problem
...
...better state explicitly we're requiring
a rational factor
2012-10-10 05:20:12 +02:00
9aec2a9806
allow for fractional scaling of time durations
...
implemented as extension to the linear combinations.
I decided to use the same "always floor" rule
as employed for time quantisation. Moreover,
we don't support floating point, only rationals
2012-10-10 05:20:12 +02:00
22322dfec4
refactor the division/quantisation helpers
...
...no need to keep them in util.hpp, as they
are used rather occasionally, while util.hpp
is used pervasively.
2012-10-10 05:20:12 +02:00
0b25c2e08d
Fix: missing sanity check in ScopedCollection
...
funny enough this possible memory corruption
didn't happen in the unit test, because my
compiler optimised the additional int field
of class SubDummy, making it the same size
of the baseclass. Now matters should be safe.
2012-10-10 05:20:12 +02:00
2cb254365c
some musing about timing constraints and quantisation
2012-10-10 05:20:10 +02:00
ec659b7141
a better way to inject the Render-Engine Mock
...
instead of (ab)using the Timings spect for a
runtime switch, better use the existing
MockInjector facility and thus turn the
mock engine mode into a global switch
2012-10-10 05:18:57 +02:00
d732e7e211
Lumiera Forward Iterators: remove support for post-increment
2012-01-08 01:14:36 +01:00
5cc034d26b
refactor ScopedCollection to use an init() function
2012-01-07 04:44:48 +01:00
e6888f7b83
supplement direct support for populating by member function
...
this turns out to be the typical usage scenario
for ScopedCollection: a manager object owning
the collection will populate it with specially
crafted components and invoke a member function
for creating the individual components.
This shortcut avoids using tr1::bind alltogether
2012-01-07 04:11:39 +01:00
9bba366763
investigate partial application of member functions
2012-01-07 03:28:12 +01:00
feff7537ef
reduce memory requirements for this test
...
...it caused out of memory frequently.
2012-01-07 03:27:31 +01:00
90e6dae2d5
add includes missing in some metaprogramming headers
...
types uint and string
2012-01-07 03:11:51 +01:00
00c08bd27b
fix helper functions not declared as inline
2012-01-07 03:11:02 +01:00
b64dff1ad8
spelling and comments
2012-01-07 00:02:03 +01:00
e41065101a
switch OutputSlot to use the ScopedCollection
...
..hehe, makes the code way more sane
2012-01-06 03:16:22 +01:00
e5c42e05e6
finish ScopedCollection ( closes #877 )
2012-01-05 23:17:16 +01:00
72e8d22454
implement the RAII-style collection ctor. test pass
2012-01-05 03:40:04 +01:00
434a371c33
take ctor args by value; test attaching sub-types passes
2012-01-04 04:28:14 +01:00
690304f9bc
get the simple and iteration unit tests to pass
2012-01-04 04:05:03 +01:00
fa5e7db2d3
WIP rewrite iteration-control logic...
2012-01-03 02:50:22 +01:00
6c01579a26
WIP draft implementation of ScopedCollection
2012-01-02 06:11:27 +01:00
e63fa6d646
Test-driven brainstorming: draft a ScopedCollection #877
2012-01-01 06:20:42 +01:00
06c7c27252
merge diagnostic facilities
2011-12-31 06:49:31 +01:00
37384f1b68
formatting wrapper/frontend: unit test pass.
...
Closes #166
2011-12-31 06:48:26 +01:00
e1b9b5b135
rewrite type selection logic to handle ptrs in the front-end
...
whew, quite a heavy rewrite, but greatly
simplifies the code and removes the necessity
to declare explicit specialisations of pointers
2011-12-31 06:48:11 +01:00
c8f46f47c9
handling of ptrs, first attempt
2011-12-31 06:47:58 +01:00
35ed2dcf5c
add more robust error handling
...
...incl handling of secondary errors
2011-12-31 06:47:38 +01:00
e838fb9799
document and cover various formatting special cases
2011-12-31 06:47:30 +01:00
0d136e2703
define explicit specialisations for primitive types
2011-12-31 06:47:03 +01:00
e054c272b6
research: detecting the possibility of a string conversion
...
find out about the corner cases of this
simplistic implementation
2011-12-31 06:46:50 +01:00
6c95c1b0e4
format-frontend: fill in missing bits of the implementation
2011-12-28 06:42:30 +01:00
dbb63ffc08
perfer STATIC_ASSERT to check for suitable placement-New buffer size
...
Still incomplete, but already this small change
detected an error in the output-designation. Cough.
2011-12-28 06:42:18 +01:00
cd3c633fc0
STATIC_ASSERT to verify guessed size
...
... and we indeed had an error: vector<bool>
is way larger than normal vectors!
2011-12-28 06:41:47 +01:00
962c789a05
a horrible hack to guess the size of boost::format
...
...without actually including the boost/format.hpp
This saves us a lot of compilation time and debug code size
2011-12-28 06:41:37 +01:00
ce6fbe5f0f
define how to pick the correct specialisation
...
some basic types are passed on directly;
for those, we use explicit specialisations
in the implementation file, and a traits template
to mark those cases in the header.
custom types with custom string conversion will
be converted to string; everything else
just becomes a type id
2011-12-27 07:45:25 +01:00
6e4883bcf1
add stub definitions to pass compilation
2011-12-27 07:45:16 +01:00
545d9ea82b
WIP draft frontend for diagnostic output ( #166 )
2011-12-27 07:45:07 +01:00
89928bc447
refactor format-util: simplify picking the right specialisation
2011-12-27 07:44:59 +01:00
50885a065b
move asside lib/format.hpp
...
...to make room for a new more specialised header
2011-12-27 07:44:49 +01:00
24a8d6a926
generalised diagnostic context passes unit test
2011-12-24 05:57:28 +01:00
5498ace9fc
WIP define a unit-test for diagnostic context stack
2011-12-24 05:57:11 +01:00
87f7a8f6e8
unit test to cover thread-local helper
2011-12-24 05:55:31 +01:00
451b0abec5
spelling and typos
2011-12-24 05:48:31 +01:00
bda0dea990
clarify the relation of PlayProcess, CalcStream and EngineFacade
2011-12-17 02:20:48 +01:00
8362145039
spelling and comments
2011-12-10 03:13:45 +01:00
477b443191
implement diagnostic OutputSlot simple frame tracking
...
...should be enough to run tests against the OutputSlot interface
2011-12-09 01:03:02 +01:00
e7ae9a3082
introduce marker time values to designate corner cases
2011-12-09 01:00:50 +01:00
aef3d50ffd
implement basics of the diagnostic OutputSlot
...
...specific diagnostic facilities still lacking
2011-12-08 23:02:19 +01:00
7fd28e23eb
cleanup configflags to use uint instead of char
...
using char for those flag template parameters
was never a good idea. It won't save us any space
and makes debugging harder
2011-12-03 03:16:08 +01:00
d9f84a9bfd
clean up lib/meta namespaces
2011-12-03 03:15:59 +01:00
b2d6074097
cleanup test includes
2011-12-02 21:34:29 +01:00
b9d1899486
cleanup: rectify Proc-Layer namespaces (II)
2011-12-02 17:50:44 +01:00
eb79a00cf4
cleanup: rectify Proc-Layer namespaces (I)
2011-12-02 16:10:03 +01:00
89a9202c6c
cleanup: remove precompiled headers
...
we don't need them and they even tend to
increase build times due to unnecessary
compound-includes at some core headers
2011-12-01 23:32:34 +01:00
2fce2b1c8d
make ctor-tracking test::Dummy more widely usable
2011-11-25 22:05:12 +01:00
0a1256f4e3
cover and verify detaching from ScopedPtrVect
2011-11-19 21:41:50 +01:00
13b795016b
comment rewording
2011-11-19 18:01:48 +01:00
5947e0e3e1
allow to detach an object managed by ScopedPtrVect
2011-11-19 17:48:04 +01:00
1f966a02ec
some rather tricky adjustments to PtrDerefIter
...
...allowing to use that custom iterator together
with STL algorithms
2011-11-19 17:46:24 +01:00
ca689ae5e0
WIP some musing about building an option monad
2011-11-18 01:24:43 +01:00
c8458ab397
improved diagnostics
2011-11-07 00:50:03 +01:00
9c04637aea
fix misspelling in library
2011-10-23 02:44:52 +02:00
b39edad306
clean-up some additional mentions of boost::ref
2011-10-22 21:45:59 +02:00
606251749e
fix time::Control should properly include <tr1/functional>
2011-10-22 21:45:40 +02:00
65b309e5cb
Testsuite: automatically seed the random number generator
2011-10-21 01:09:12 +02:00
011afa4be8
fix: ubiquitous constant defined in header
...
..resulting in that global constant being allocated a gazillion times
2011-10-15 23:41:31 +02:00
1627698911
implement hash function for functor obejects. Unit-test pass
2011-10-14 14:49:55 +02:00
6baadbaef0
draft a workaround for hashing functor objects
2011-10-14 03:54:22 +02:00
f505c46d1d
finish simple allocator frontend. Unit-test pass
2011-09-25 19:26:12 +02:00
5350ef6dbe
split off and test-cover simple typelist utils
...
these simple utils (length of typelist, maximum size
containment test) are mostly not used in conjunction
with the more elaborate typelist manipulatino utils.
Moreover, we lacked a dedicated unit test
2011-09-25 19:26:11 +02:00
057f32e15b
rename the typelist-manipulation header
2011-09-25 19:26:09 +02:00
db2b02f0c5
define a front-end for explicit allocations
...
...currently just defined by forwarding
to std::allocator
2011-09-25 19:26:09 +02:00
0706b83a46
fix a warning
2011-09-25 19:26:04 +02:00
d1b6f7a57b
polymorphic value builder functions: how to take arguments
...
Previously, I've added an additional '&' to be able
to pass references without much ado. This turned out
to be problematic when using constant values at the
invocation site. Well. C++ has really a fixation
ont passing things by value. This is fine, but
doesn't play so well at times when passing smart-ptrs
or similar ref-counting stuff, especially when we just
want to *use* the handle, not store it away.
Essentially the same situation as with for_each
Bottom line: from now on, we need to state the
template parameter for such arguments explicitly,
or just accept the overhead of creating an additional
transient copy of the smart-ptr.
2011-09-25 19:26:03 +02:00
1e7da409bb
Fix logic error uncovered by GCC 4.4
...
benefits of using a newer compiler, yay!
Explanation: the Link<...> template combines
various policy templates and exposes a set
of functions, which can be bound as functor
into an concrete time::Control instance.
Actually, we need to mix in only the Mutation
baseclass, because we just want to inherit
the privilege to change time values, which
are otherwise immutable. We don't need to
mix in the Mutator template anymore (this
was a leftover from an earlier design)
2011-09-25 19:26:02 +02:00
f46cc26851
factor out convenience shortcut
...
transform iterator and wrap result into IterSource
2011-09-25 19:25:59 +02:00
a19562942c
further considerations regarding output and output slots
2011-09-25 19:25:57 +02:00
1b0cb56dcc
implement PlayOut subsystem and draft OutputDirector
2011-09-25 19:25:55 +02:00
971dea6f6a
PlayService: basic definition and link to facade
2011-09-25 19:25:55 +02:00
2099ecbcac
finish and comment the new time::Control facility
2011-09-25 19:25:55 +02:00
f4d0d23e48
clean up leftovers from the first implementation attempts
2011-09-25 19:25:54 +02:00
fec2d25b52
additional quantisation and duration canges covered and passing test
2011-09-25 19:25:54 +02:00
15a3694cca
more complete unit test pass
2011-09-25 19:25:54 +02:00
b54cd2c722
cont. defining time::Control special cases
...
the refactoring seems to work out OK, was able
to cover all the cases defined thus far....
2011-09-25 19:25:53 +02:00
9bd96a1b19
time-entities refactoring: Duration isn't an Offset
...
removed that inheritance relation; it was a typical
example of abusing inheritance and violated the
Liscov substitution principle. It is sufficient
to allow promotion of an offset into a Duration.
Note: Duration is the time metric
2011-09-25 19:25:53 +02:00
7c5f18643b
cont. reworking based on that idea; refactor mutation base cases
2011-09-25 19:25:53 +02:00
d39ae8afc6
idea for better organisation of the template specialisations
2011-09-25 19:25:53 +02:00
a8fd0bf7c5
better avoid throwing and use a default time grid in some cases
2011-09-25 19:25:53 +02:00
47afbbeab0
first attempt towards covering the various special cases
...
the intention is to generate most combinations from
generic template cases, but to define the difficult
cases by explicit specialisation
2011-09-25 19:25:53 +02:00
eed2b0f320
time::Control simple unit test pass
2011-09-25 19:25:52 +02:00
c96cd66688
draft implementation for time change and propagation
2011-09-25 19:25:52 +02:00
27533c3bb9
WIP darft usage for the new time::Control (life change) element
2011-09-25 19:25:52 +02:00
ae36b2d941
stubs and adjustments to get it through the compiler
2011-09-25 19:25:52 +02:00
786ecbe829
WIP draft test helper for generating test cases (Cartesian product)
2011-09-25 19:25:51 +02:00
eb5e0ab9ff
WIP: start building a Test for time::Control. Need Cartesian product of cases...
2011-09-25 19:25:51 +02:00
9004818d63
further planning the features of time::Change
2011-09-25 19:25:51 +02:00
4731afefb8
continue drafting the Player control elements -- life timevalue changes
2011-09-25 19:25:50 +02:00
20f95ca26f
draft the player facade interface
2011-09-25 19:25:50 +02:00
4a53ef4cd0
Clean-up: change some long standing TODOs into tickets
...
makes the test logs way more readable
Believe me: no one will ever notice a "TODO"
entry in the logs, when it showed up for
more than some months.
Thus I've created some new tickets, mostly
tagged as "QA" and placed the ticket number
at the corresponding locations in the source
2011-09-25 19:16:33 +02:00
Stefan Kangas
e34bb5ead1
Fix autotool build again, still fails on setup.ini
2011-09-15 04:35:08 +02:00
49d5a9592a
Fix drop-frame: remove float framerate
2011-05-21 07:09:22 +02:00
36cfaaa14d
REVERT tmpbuf implementation to the state of July.2010 ( bc989dab)
...
The new implementation provides differentiated buffers,
but is still buggy and causes double free alarms on shutdown
See Ticket #683
2011-05-21 06:52:39 +02:00
12f43078a2
fix some names
2011-05-20 02:17:20 +02:00
4b4fcb0c80
use (and verify) this with the MediaAccessMock_test
2011-05-20 02:02:14 +02:00
e5e6264493
technique to install a mock service temporarily
2011-05-19 23:21:50 +02:00
a207a9f003
adapt Media-Access (+Mock) to include an overall Duration
2011-05-18 01:37:33 +02:00
042598f04c
adapt Core + Proc to use the new Time framework
2011-05-16 08:37:36 +02:00
ef126283eb
add symbolic constant for "neutral" time.
...
Note: it's rather arbitrary choosen,
because any time grid can define its own origin.
You must not assume that the origin of any time axis
is located at Time::ZERO !!
2011-05-16 04:37:03 +02:00
481875a78a
add check for time point contained in TimeSpan
2011-05-16 04:02:26 +02:00
b9861ef88f
WIP completely remove the old Time wrapper
2011-05-15 22:51:02 +02:00
ee5c9910e1
dry-run: switch the lumitime-test.cpp to use the new Time framework
2011-05-15 22:10:26 +02:00
99bf3c6d81
join with latest work on timecodes and frame quantisation
...
Merge branch 'timequant' into gui
2011-05-15 04:28:20 +02:00
4bf53bba0f
code unit test to demonstrate full time/timecode usage cycle
2011-05-15 04:19:27 +02:00
f85c86d6c8
parsing fractional seconds: unit test pass
2011-05-15 04:19:27 +02:00
c7bb7154a7
draft a test to cover parsing of timecode values
2011-05-15 04:19:27 +02:00
6b1b6cb805
draft how to integrate parsing of timecode formats
2011-05-15 04:19:27 +02:00
3139fb7f1e
more 64/32bit fun
2011-05-15 04:19:27 +02:00
10215948a5
Fix another 64/32bit loss-of-precision problem
2011-05-15 04:19:26 +02:00
ccd40c3fee
better use a dedicated 'materialise' operation on the Quantiser
2011-05-15 04:19:26 +02:00
80f7dba334
WIP some comments and considerations
2011-05-15 04:19:26 +02:00
11137f7634
provide implementation of the nudge-Mutation
2011-05-15 04:19:26 +02:00
af1561068e
definitions and stubs to make it compile
2011-05-15 04:19:26 +02:00
bf61ff7248
WIP test-driven brainstorming: nudge by grid
2011-05-15 04:19:26 +02:00
2035405251
add time Mutation to adjust by offset
2011-05-15 04:19:26 +02:00
baf601c16b
first time mutation test cases pass
2011-05-15 04:19:25 +02:00
5851332628
back to business: now able to implement time mutation messages
2011-05-15 04:19:25 +02:00
6fa11ffcf6
special case: support cloning, but not copy
...
needed to add yet another policy template,
so PolymorphicValue doesn't invoke the
assignment operator in such cases
2011-05-15 04:19:25 +02:00
6daf14211b
Finish the PolymorphicValue support template
2011-05-15 04:19:25 +02:00
710ae8fa0f
Allow for improved performance in special cases
...
Using a policy based switch in case the client
interface collaborates and provides copy operations;
in this case, a direct static downcast instead of
the expensive indirect (dynamic) cast to the
management interface can be employed.
2011-05-15 04:19:25 +02:00
9aa601d004
WIP first implementation version of PolymorphicValue holder template
2011-05-15 04:19:25 +02:00
eb733df1bb
proof-of-concept: implement simple mutation
2011-05-15 04:19:24 +02:00
4d6bb3d54c
design outline for a limited time::Mutation capability
2011-05-15 04:19:24 +02:00
9364d717b0
implement total order on time intervals
2011-05-15 04:19:24 +02:00
9eb4f66372
draft more convenience handling for TimeSpan
2011-05-15 04:19:24 +02:00
eafbd4b1cb
fix a comment
2011-05-15 04:19:22 +02:00
Christian Thaeter
d4bb6cc906
fnv hash functions and tools
2011-04-29 04:04:01 +02:00
Christian Thaeter
e6cc7d3f99
WIP: autotools catchup, make it build again
...
Lumiera builds again, but some tests are missing and the new setup.ini
isn't loaded correctly which makes the plugin loader fail.
2011-04-28 13:14:29 +02:00
b843546922
cumulated build/release fixes
...
up to corresponding debian/0.pre.01-3
- compile issue (digxel.hpp)
- SCons missing config dependency on test-only
- 32/64bit fixes
2011-03-31 18:43:50 +02:00
dca5b81710
Fix: problems whith bare $ORIGIN without relative dir
...
actually the iterator was written quite contrieved;
now doing the token replacement as a separate first
step -- makes matters way simpler
2011-02-15 00:16:50 +01:00
cef1ff3dcc
Fix: extract empty path relative to $ORIGIN
2011-02-14 23:54:30 +01:00
65d28b4018
Gui: rework resource loading to make the application fully relocatable
2011-02-07 09:56:27 +01:00
29e67e828d
remove NoBug resourcetracker and switch back to plain pthreads
...
due to desing shortcomings, the resourcetracker
produces lots of false positives and inhibits
any further diagnostics regarding GUI startup.
2011-02-07 09:55:39 +01:00
88678209bc
use setup.ini to retrieve the modulepath and configpath
...
connect config-facade with the new BasicSetup implementation
to fetch values from setup.ini, instead of the (not implemented)
Config-system. Hook this new lookup mechanism into the
plugin loader to retrieve the search path from there
2011-02-06 05:06:16 +01:00
11d709b85e
incorporate basic setup.ini into the AppState object
2011-02-06 02:12:00 +01:00
e84ceec9b5
refactor some lib facilities
...
- Cmdline into namespace lib
- test coverage for the SearchPath iterator
2011-02-05 23:53:37 +01:00
e73bea379c
Adjust some Copyright headers
...
List of years instead of a range is better
2011-02-05 20:56:51 +01:00
51ef755a4f
Merge Timehandling draft and GUI DrawStrategy and TimelineEntiy refactorings
...
Merge branch 'gui' into install
2011-02-05 14:30:11 +01:00
faf579c4c5
enforce generally imutable time values
2011-01-22 23:20:12 +01:00
69eb659d4e
refactor to extract a special "flip representation" operation
2011-01-22 18:33:15 +01:00
acc7a19fbd
Fix: now able to handle negative extended SMPTE
...
changed the order of propagation when wrapping
the individual digxels of the SMPTE Timecode
2011-01-22 14:41:58 +01:00
ac9e9a99df
change the way the Digxel mutator is invoked
...
this refactoring prepares a change to address
the problems with negative extended SMPTE Timecode
2011-01-22 14:04:43 +01:00
14f233f83b
WIP: some more test coverage ... unveiling yet more bugs
2011-01-22 02:35:58 +01:00
9d75739089
SMPTE Timecode (without drop frame) unit test pass
2011-01-21 20:24:41 +01:00
1a07cc9bb2
SMPTE Timecode: first round of debugging and testing
2011-01-21 16:22:01 +01:00
0493caac1d
first complete implementation of SMPTE timecode
...
first integration of the various components
developed thus far; design still needs some
improvements, esp. regarding the effectiveFramerate
Note NTSC-drop-frame not yet supported...
2011-01-21 11:42:29 +01:00
f930703e86
WIP draft cascading breakdown of time into timecode components
...
TODO not entirely correct... and how to access the framerate?
2011-01-20 22:17:25 +01:00
c55260d4e4
generalise to long and int; improve test coverage
2011-01-20 21:30:48 +01:00
05383ea44a
crafting a integer scale wrapping util, for timecode conversions
2011-01-20 13:21:14 +01:00
e1c025778b
Digxel: ensure the mutator functor is also called on increment
2011-01-19 11:47:14 +01:00
5418902442
remove superfluous default parameters from Tuple constructor function
2011-01-19 11:32:27 +01:00
9df0df6145
Merge Stefan's work on timeconversion and SMPTE drop-frame
2011-01-19 11:32:03 +01:00
Stefan Kangas
551ec8f011
Remove preconditions requiring correct formatting of input times in time lib.
...
For example, one could not specify minutes > 59 nor milliseconds > 999. Other
parts of the code however relied on the fact that one could give arbitrary times
in all fields (hours, milliseconds and minutes).
2011-01-19 11:10:39 +01:00
Stefan Kangas
6a44134833
Add support for NTSC drop-frame timecode.
2011-01-19 11:10:39 +01:00
Stefan Kangas
94f8379aa2
Improved frame counting capabilities for time lib. Unit tests.
2011-01-19 11:10:39 +01:00
Stefan Kangas
d2702e8254
Add frame counting capabilities to time conversion lib.
2011-01-19 11:10:39 +01:00
95a1687a5b
draft how a SMPTE-Timecode element could be implemented
...
passes Compiler, but thats about all...
2011-01-18 05:01:25 +01:00
ce420a1570
special digxel to represent the sign
2011-01-18 04:59:40 +01:00
38844b9050
get simple quantisation/timecode integration to run
...
passing the basic tests now;
still missing: implementation of specific timecodes,
e.g. SMPTE, HMS,....
2011-01-17 07:25:22 +01:00
02653621f6
adapt the TimeGrid meta asset, so it can be published as Quantiser
2011-01-17 06:38:10 +01:00
484c771d2a
establish hidden advice link to the session
2011-01-16 23:58:42 +01:00
71a80d3df6
integrate check for supported formats into Quantiser
2011-01-16 22:19:48 +01:00
92c4516cae
implement this format-support descriptor
2011-01-16 19:50:42 +01:00
2c90335b1d
WIP idea how to represent support for some timecode formats
...
concrete quantiser instances need a way to state
support for just some timecode formats -- yet I dont
want to push vectors aroud all over the place
2011-01-16 15:41:34 +01:00
ee0dcf3ba0
introduce generic grid API to subsume quantiser and grid asset
2011-01-15 03:49:35 +01:00
bdc1800470
add support for offset linear combinations
2011-01-15 01:45:55 +01:00
eb89547265
get rid of the QuantiserRef
...
this is going to become soooo complicated
better just bite the bullet and use a shared_ptr
2011-01-15 00:52:02 +01:00
Stefan Kangas
944406f4a3
Remove redundant '*' in many doxygen style comments
2011-01-14 16:57:34 +01:00
457d4fb7c4
define or stub to get it to compile; add function time-from gridnr
2011-01-14 05:33:50 +01:00
a1f2a60427
WIP design draft regarding the interplay of quantisation and timecode
2011-01-13 23:56:52 +01:00
debe032f49
basic quantisation now working and covered by unit test
2011-01-13 03:36:12 +01:00
e2cab1f512
some more smoothing of rough edges
2011-01-13 03:36:12 +01:00
c7a887a528
Quantiser basic unit test pass, including corner case
...
ufff... finally
2011-01-13 03:36:12 +01:00
edc2598f27
cover additional time handling convenience shortcuts
2011-01-13 03:36:12 +01:00
af9c799fc8
Fix time quantisation to circumvent the precision problem
...
required to re-arrange several functions in order
to use the new util::floordiv and to get all relevant
calculations into time.h
2011-01-13 03:36:12 +01:00
237d287021
change time.h into a multilingual header
2011-01-13 03:36:12 +01:00
71aacc7698
implement an Integer-floor function for time quantisation
...
Contrary to the built-in division operator, this
function always truncates towards the next smaller
integer (also for negative numbers)
2011-01-13 03:36:11 +01:00
52eb4c4709
set an explicit artificial limit on the allowed time range
...
this is the first building block in an attempt to
protrect against time wraparound. The intention is
not to be airtight, but practically effective.
A really airtight solution would require writing
our own SafeInt class
2011-01-13 03:36:11 +01:00
3cf9974211
provide unary minus to flip a TimeVar around origin
2011-01-13 03:36:11 +01:00
d30515c37e
analysis of range limit problems in quantisation
2011-01-13 03:36:11 +01:00
48b3f39c49
improve and cover Time convenience handling shortcuts
2011-01-13 03:36:11 +01:00
b66b778c42
implement and test simple demo quantiser
2011-01-13 03:36:11 +01:00
dede87d384
implement basic quantisation operation for timehandling library
2011-01-13 03:36:11 +01:00
84c73c645d
draft unit-test to cover basic quantiser behaviour
2011-01-13 03:36:10 +01:00
c85f7e0715
Add more special formatters and Digxel testcases
...
The Digxel implementation draft can be considered complete now
2011-01-13 03:36:10 +01:00
8e90b3d5dc
Digxel unit test pass
2011-01-13 03:36:10 +01:00
159d3928d8
Timecode stub implementation...
...
now passes Compiler and Linker again
2011-01-13 03:36:10 +01:00
031f61f31d
WIP prototypical Digxel implementation complete
2011-01-13 03:36:10 +01:00
e66bed65e4
WIP stubs for timecode string representation
2011-01-13 03:36:10 +01:00
2edaae5c5b
simplify util::isnil implementation
...
doh!
2011-01-13 03:36:10 +01:00
25d7af449e
WIP adapt / rewrite Digxel implementation
2011-01-13 03:36:10 +01:00
e7f5ce9e33
WIP rework timecode format hierarchy
...
second try: eliminate base class,
work with concrete formats allways...
2011-01-13 03:36:09 +01:00
336264a6be
WIP first implementation draft for Digxel -- problematic
...
This draft highlights problems with poliferation of
generated virtual methods (code bloat). Also it's
unnecessarily complex and especially the automatic
conversion to double *and* int creates a whole
shitload of problems....
2011-01-13 03:36:09 +01:00
b19fd1e634
WIP rework and adjust "Digxel" draft
2011-01-13 03:36:09 +01:00
6638120ec2
WIP test-driven dreaming... inventing a "Digxel" entity
2011-01-13 03:36:09 +01:00
607c8a2338
WIP enough stubbing to get it through the Compiler...
...
...but NOT yet the linker
2011-01-13 03:36:09 +01:00
62f9e84f2d
reduce the prerequisites of trait.hpp
...
the AssignableRefWrapper is not in use anymore...
by not pulling in wrapper.hpp, we avoid <functional>
2011-01-13 03:36:09 +01:00
c40ba74bc6
WIP clarify ambiguity with fractional seconds
...
They are *not* intended to stand-in for gavl_time_t
Indeed, Time values should be handled as opaque
2011-01-13 03:36:09 +01:00
15214cc069
WIP start stubbing and defining time quantisation and timecode entities
2011-01-13 03:36:08 +01:00
04db5655f1
Implementation: building a simple time grid
2011-01-13 03:36:08 +01:00
3d4227d374
cover offsets, durations and timespans by unit test
2011-01-13 03:36:07 +01:00
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