diff --git a/___Documentation___ b/___Documentation___ deleted file mode 100644 index 2a7390788..000000000 --- a/___Documentation___ +++ /dev/null @@ -1,9 +0,0 @@ -|This is the Lumiera Documentation Tree| - -Lumiera documentation is meant to be self contained and included in the main tree. -The 'current' documentation is prepared, collected and tracked in a 'documentation' branch -of the main repository; there, documentation resides in the /doc subdirectory, while the -actual source goes into /src - -Moreover, the /doc subdirectory of the documentation tree is linked into the -Lumiera website. diff --git a/admin/rfc.sh b/admin/rfc.sh index f360b7393..24f720d26 100755 --- a/admin/rfc.sh +++ b/admin/rfc.sh @@ -4,7 +4,7 @@ shopt -s extglob function usage() { - less -F <<"EOF" + less <<"EOF" Script to maintain Lumiera RFC's usage: @@ -22,6 +22,7 @@ commands (with and [optional] parameters): show [regex] - Read RFC's (matching 'regex') create - Create a new RFC edit <rfc> [chapter] - Edit RFC at chapter + asciidoc <rfc> - pass the rfc.txt to 'asciidoc' command comment <rfc> - Add a new comment to a RFC draft <rfc> - Change RFC to Draft state final <rfc> - Change RFC to Final state @@ -237,7 +238,7 @@ function edit() { # filename lineoffset chapter EDITOR="${EDITOR:-$(git config --get core.editor)}" - EDITOR="${EDITOR:-VISUAL}" + EDITOR="${EDITOR:-$VISUAL}" local file="$1" local line=0 @@ -370,6 +371,12 @@ edit) git add "$name" fi ;; +asciidoc) + name=$(unique_name "$1") + if [[ "$name" ]]; then + asciidoc "${name}" + fi + ;; draft) name=$(unique_name "$1") if [[ "$name" ]]; then diff --git a/doc/design/index.txt b/doc/design/index.txt index 7d35ac233..a78d59ac8 100644 --- a/doc/design/index.txt +++ b/doc/design/index.txt @@ -5,8 +5,12 @@ The vision of the development team defines a modern design for the core of a Non One of the key aspect of Lumiera is the strong separation between the user interface and the processing core. Lumiera as a software will come along with a GTK GUI but that does not make this exclusive, any other GUI could be written as well as scripts to drive the core. This is made possible by the above-mentioned quality of Lumiera being considered as two strictly separate parts. -Lumiera as a processing core will be able to do anything possibly conceivable and thus enabling it to be used to do any task on video (and audio?), even unrelated to video editing. +Lumiera as a processing core will be able to do anything possibly conceivable, therefore it may be used to do any task on video (and audio?), even unrelated to video editing. +.Workflow +**** +The word Workflow is used to name the way tasks can be achieved in an application. Any operation in Lumiera must be possible in the most suitable and stringent fashion. The Workflow is closely related to how flexible the GUI is but also the concern of deeper and more technical parts of the application. +**** === Overview The internal structure of Lumiera is divided in numerous subsystems. @@ -16,7 +20,7 @@ They can be categorized into three main categories plus extra components : ==== link:gui/index.html[Graphical User Interface] User interfaces are basically handled like plugins, consequently it is possible to interface with Lumiera through scripts. It is also possible to create specialized GUIs. -The interface is the closest component to the user, it is purely visual. There the user manipulates, organizes, loads, configures all sorts of datas that are called Assets. These Assets are grouped in a structure called the Session. +The interface is the closest component to the user, it is purely visual. There the user manipulates, organizes, loads, configures all sorts of datas, especially MObjects (media objects) and Assets. These elements are contained within a structure called the Session. ==== The Processing Layer @@ -27,26 +31,21 @@ The Processing layer (or proc) is where the elements from the Session are assemb ==== link:backend/index.html[The Backend] -The backend uses the Low-level model. It does the rendering process and makes a heavy use of the Input/Output System to the screen or to external monitors. - + - + +The backend uses the Low-level model. It allows the rendering and makes a heavy use of the Input/Output System to the screen or to external monitors. +//link:workflow/index.html[The Workflow] -'''' - -link:workflow/index.html[The Workflow] -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The word Workflow is used to name the way tasks can be achieved in an application. Any operation in Lumiera must be possible in the most suitable and stringent fashion. The Workflow is closely related to how flexible the GUI is but also the concern of deeper and more technical parts of the application. +Extra components +---------------- link:application/index.html[The Application] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Apart from all things that deal with the internal gear, Lumiera contains several elements related to external elements. +The application controls the initialization and shutdown procedures as well as loading external elements like plugins that are widely used. link:plugins/index.html[Plugins] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -They are key elements in Lumiera since the application relies heavily on this concept of modules. +They are key elements in Lumiera since the application relies heavily on this concept of modules. For example, the GUI of Lumiera is a plugin. diff --git a/doc/devel/draw/Builder.Fixture-1.svg b/doc/devel/draw/Builder.Fixture-1.svg new file mode 100644 index 000000000..c7bb4e9d2 --- /dev/null +++ b/doc/devel/draw/Builder.Fixture-1.svg @@ -0,0 +1,4091 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="600" + height="800" + id="svg2" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docbase="/home/hiv/devel/lumi/doc/devel/draw" + sodipodi:docname="Builder.Fixture-1.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.0" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/SegmentationSteps1.png" + inkscape:export-xdpi="72.970001" + inkscape:export-ydpi="72.970001"> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.99999999" + inkscape:cx="311.21285" + inkscape:cy="399.39675" + inkscape:document-units="px" + inkscape:current-layer="svg2" + inkscape:window-width="1668" + inkscape:window-height="1020" + inkscape:window-x="0" + inkscape:window-y="0" + width="800px" + height="600px" + showgrid="false" + gridanglex="30px" + gridanglez="30px" + grid_units="px" + inkscape:grid-points="true" + inkscape:grid-bbox="false" + showguides="true" + inkscape:object-paths="false" + inkscape:object-nodes="true" + gridtolerance="10000" + inkscape:guide-points="true" + guidetolerance="5"> + <inkscape:grid + id="GridFromPre046Settings" + type="xygrid" + originx="0px" + originy="0px" + spacingx="2px" + spacingy="2px" + color="#4b4bf4" + empcolor="#0000ff" + opacity="0.09019608" + empopacity="0.4" + empspacing="5" + visible="true" + enabled="true" /> + </sodipodi:namedview> + <defs + id="globals"> + <linearGradient + id="linearGradient4018"> + <stop + style="stop-color:#dee5f6;stop-opacity:0.65104169;" + offset="0" + id="stop4020" /> + <stop + style="stop-color:#bac2ef;stop-opacity:0.08854166;" + offset="1" + id="stop4022" /> + </linearGradient> + <linearGradient + id="linearGradient4517"> + <stop + id="stop4519" + style="stop-color:#d9e3ea;stop-opacity:1;" + offset="0" /> + <stop + id="stop4521" + style="stop-color:#bac8d8;stop-opacity:1;" + offset="0.75833333" /> + <stop + id="stop4523" + style="stop-color:#8caac0;stop-opacity:0.78431374;" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient4164"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop4166" /> + <stop + id="stop4172" + offset="0.75833333" + style="stop-color:#ecedf8;stop-opacity:1;" /> + <stop + style="stop-color:#c5caf2;stop-opacity:1;" + offset="1" + id="stop4168" /> + </linearGradient> + <filter + id="filter4817" + width="1.1881721" + y="-0.125448" + x="-0.094086036" + height="1.250896" + inkscape:collect="always"> + <feGaussianBlur + stdDeviation="0.78404989" + id="feGaussianBlur4819" + inkscape:collect="always" /> + </filter> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient5569" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient5583" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient5597" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient5611" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient5625" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient5639" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient5655" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient5669" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient5683" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient5875" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient5877" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient5879" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient5881" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient5883" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient5885" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4517" + id="radialGradient5911" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4517" + id="radialGradient5937" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4517" + id="radialGradient5963" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4517" + id="radialGradient5989" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4517" + id="radialGradient6015" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient6089" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient6091" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient6093" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient6095" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient6097" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient6099" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient6173" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient6175" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient6177" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient6179" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient6181" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient6183" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient6257" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient6259" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient6261" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient6305" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient6307" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient6309" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4517" + id="radialGradient6431" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4517" + id="radialGradient6433" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4517" + id="radialGradient6435" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4517" + id="radialGradient6437" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4517" + id="radialGradient6563" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4517" + id="radialGradient6565" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4517" + id="radialGradient6567" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4517" + id="radialGradient6569" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4517" + id="radialGradient6691" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4517" + id="radialGradient6693" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4517" + id="radialGradient6695" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4517" + id="radialGradient6697" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4517" + id="radialGradient6699" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4517" + id="radialGradient6725" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4517" + id="radialGradient6751" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4517" + id="radialGradient6923" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4517" + id="radialGradient6925" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4517" + id="radialGradient6927" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4517" + id="radialGradient6929" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4517" + id="radialGradient6931" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4018" + id="linearGradient4024" + x1="170" + y1="0" + x2="170" + y2="350" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9702776,0,0,1,10.101804,0)" /> + </defs> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <cc:license + rdf:resource="http://creativecommons.org/licenses/by-nc-sa/3.0/" /> + <dc:title>Structure of the Fixture</dc:title> + <dc:creator> + <cc:Agent> + <dc:title>Ichthyostega</dc:title> + </cc:Agent> + </dc:creator> + <dc:description>Lumiera: how the Fixture data structure is organised</dc:description> + <dc:date>2010</dc:date> + </cc:Work> + <cc:License + rdf:about="http://creativecommons.org/licenses/by-nc-sa/3.0/"> + <cc:permits + rdf:resource="http://creativecommons.org/ns#Reproduction" /> + <cc:permits + rdf:resource="http://creativecommons.org/ns#Distribution" /> + <cc:requires + rdf:resource="http://creativecommons.org/ns#Notice" /> + <cc:requires + rdf:resource="http://creativecommons.org/ns#Attribution" /> + <cc:prohibits + rdf:resource="http://creativecommons.org/ns#CommercialUse" /> + <cc:permits + rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> + <cc:requires + rdf:resource="http://creativecommons.org/ns#ShareAlike" /> + </cc:License> + </rdf:RDF> + </metadata> + <rect + style="opacity:1;fill:url(#linearGradient4024);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:1.00000003, 2.00000003;stroke-dashoffset:1.80000002;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect4016" + width="329.84216" + height="350.0032" + x="10.029635" + y="-0.020056937" /> + <g + inkscape:label="Drawing" + id="lay1" + inkscape:groupmode="layer" /> + <rect + style="opacity:1;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:none;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect_Canvas" + width="740" + height="460" + x="40" + y="70" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <text + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + xml:space="preserve" + style="font-size:14px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + x="69.624023" + y="54.671062" + id="text4704" + sodipodi:linespacing="100%"><tspan + y="54.671062" + x="69.624023" + id="tspan4706" + sodipodi:role="line">List of Model Ports</tspan></text> + <use + id="use5871" + width="744.09448" + y="0" + xlink:href="#path4523Sha" + x="0" + height="1052.36" + transform="translate(-407.1889,-251.23988)" /> + <use + id="use5873" + width="744.09448" + y="0" + xlink:href="#rect4525Bod" + x="0" + height="1052.36" + transform="translate(-407.1889,-251.23988)" /> + <use + id="use5893" + width="744.09448" + y="0" + xlink:href="#rect4589Top" + x="0" + height="1052.36" + transform="translate(-407.1889,-251.23988)" /> + <use + x="0" + y="0" + xlink:href="#g_port" + id="use5895" + width="744.09448" + height="1052.36" + transform="translate(-22.188904,83.760119)" /> + <text + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + sodipodi:linespacing="100%" + id="text4716" + y="130" + x="285.01251" + style="font-size:14px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + xml:space="preserve"><tspan + sodipodi:role="line" + x="285.01251" + y="130" + style="font-size:8px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans" + id="tspan4718">exit</tspan><tspan + sodipodi:role="line" + x="285.01251" + y="138" + style="font-size:8px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans" + id="tspan4004">nodes</tspan></text> + <rect + y="119.97588" + x="69.98085" + height="170.01205" + width="30.015827" + id="rect5555" + style="opacity:1;fill:#5568d7;fill-opacity:0.18613138;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:0.99999982;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <g + id="g5557" + transform="translate(23.007882,-527.92669)"> + <path + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="630" + sodipodi:cx="110" + id="path5559" + style="opacity:1;fill:url(#radialGradient5569);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <g + id="g5561" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + style="stroke:#000089;stroke-opacity:1"> + <path + sodipodi:ry="2.8284271" + sodipodi:rx="2.8284271" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + sodipodi:type="arc" + sodipodi:cy="99.920204" + sodipodi:cx="73.539108" + id="path5563" + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <text + xml:space="preserve" + x="604.14581" + y="34.371136" + transform="scale(0.9716714,1.0291545)" + sodipodi:linespacing="100%" + id="text5565" + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"><tspan + x="604.14581" + y="34.371136" + id="tspan5567" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + sodipodi:role="line">x</tspan></text> + </g> + </g> + <g + transform="translate(43.007882,-527.92669)" + id="g5571"> + <path + sodipodi:type="arc" + style="opacity:1;fill:url(#radialGradient5583);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path5573" + sodipodi:cx="110" + sodipodi:cy="630" + sodipodi:rx="10" + sodipodi:ry="10" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" /> + <g + style="stroke:#000089;stroke-opacity:1" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + id="g5575"> + <path + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path5577" + sodipodi:cx="73.539108" + sodipodi:cy="99.920204" + sodipodi:type="arc" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + sodipodi:rx="2.8284271" + sodipodi:ry="2.8284271" /> + <text + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + id="text5579" + sodipodi:linespacing="100%" + transform="scale(0.9716714,1.0291545)" + y="34.371136" + x="604.14581" + xml:space="preserve"><tspan + sodipodi:role="line" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + id="tspan5581" + y="34.371136" + x="604.14581">x</tspan></text> + </g> + </g> + <g + id="g5585" + transform="translate(63.007882,-527.92669)"> + <path + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="630" + sodipodi:cx="110" + id="path5587" + style="opacity:1;fill:url(#radialGradient5597);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <g + id="g5589" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + style="stroke:#000089;stroke-opacity:1"> + <path + sodipodi:ry="2.8284271" + sodipodi:rx="2.8284271" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + sodipodi:type="arc" + sodipodi:cy="99.920204" + sodipodi:cx="73.539108" + id="path5591" + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <text + xml:space="preserve" + x="604.14581" + y="34.371136" + transform="scale(0.9716714,1.0291545)" + sodipodi:linespacing="100%" + id="text5593" + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"><tspan + x="604.14581" + y="34.371136" + id="tspan5595" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + sodipodi:role="line">x</tspan></text> + </g> + </g> + <g + transform="translate(83.007882,-527.92669)" + id="g5599"> + <path + sodipodi:type="arc" + style="opacity:1;fill:url(#radialGradient5611);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path5601" + sodipodi:cx="110" + sodipodi:cy="630" + sodipodi:rx="10" + sodipodi:ry="10" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" /> + <g + style="stroke:#000089;stroke-opacity:1" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + id="g5603"> + <path + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path5605" + sodipodi:cx="73.539108" + sodipodi:cy="99.920204" + sodipodi:type="arc" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + sodipodi:rx="2.8284271" + sodipodi:ry="2.8284271" /> + <text + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + id="text5607" + sodipodi:linespacing="100%" + transform="scale(0.9716714,1.0291545)" + y="34.371136" + x="604.14581" + xml:space="preserve"><tspan + sodipodi:role="line" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + id="tspan5609" + y="34.371136" + x="604.14581">x</tspan></text> + </g> + </g> + <g + id="g5613" + transform="translate(103.00788,-527.92669)"> + <path + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="630" + sodipodi:cx="110" + id="path5615" + style="opacity:1;fill:url(#radialGradient5625);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <g + id="g5617" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + style="stroke:#000089;stroke-opacity:1"> + <path + sodipodi:ry="2.8284271" + sodipodi:rx="2.8284271" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + sodipodi:type="arc" + sodipodi:cy="99.920204" + sodipodi:cx="73.539108" + id="path5619" + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <text + xml:space="preserve" + x="604.14581" + y="34.371136" + transform="scale(0.9716714,1.0291545)" + sodipodi:linespacing="100%" + id="text5621" + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"><tspan + x="604.14581" + y="34.371136" + id="tspan5623" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + sodipodi:role="line">x</tspan></text> + </g> + </g> + <g + transform="translate(123.00788,-527.92669)" + id="g5627"> + <path + sodipodi:type="arc" + style="opacity:1;fill:url(#radialGradient5639);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path5629" + sodipodi:cx="110" + sodipodi:cy="630" + sodipodi:rx="10" + sodipodi:ry="10" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" /> + <g + style="stroke:#000089;stroke-opacity:1" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + id="g5631"> + <path + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path5633" + sodipodi:cx="73.539108" + sodipodi:cy="99.920204" + sodipodi:type="arc" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + sodipodi:rx="2.8284271" + sodipodi:ry="2.8284271" /> + <text + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + id="text5635" + sodipodi:linespacing="100%" + transform="scale(0.9716714,1.0291545)" + y="34.371136" + x="604.14581" + xml:space="preserve"><tspan + sodipodi:role="line" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + id="tspan5637" + y="34.371136" + x="604.14581">x</tspan></text> + </g> + </g> + <g + id="g5643" + transform="translate(163.00788,-527.92669)"> + <path + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="630" + sodipodi:cx="110" + id="path5645" + style="opacity:1;fill:url(#radialGradient5655);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <g + id="g5647" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + style="stroke:#000089;stroke-opacity:1"> + <path + sodipodi:ry="2.8284271" + sodipodi:rx="2.8284271" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + sodipodi:type="arc" + sodipodi:cy="99.920204" + sodipodi:cx="73.539108" + id="path5649" + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <text + xml:space="preserve" + x="604.14581" + y="34.371136" + transform="scale(0.9716714,1.0291545)" + sodipodi:linespacing="100%" + id="text5651" + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"><tspan + x="604.14581" + y="34.371136" + id="tspan5653" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + sodipodi:role="line">x</tspan></text> + </g> + </g> + <g + transform="translate(183.00788,-527.92669)" + id="g5657"> + <path + sodipodi:type="arc" + style="opacity:1;fill:url(#radialGradient5669);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path5659" + sodipodi:cx="110" + sodipodi:cy="630" + sodipodi:rx="10" + sodipodi:ry="10" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" /> + <g + style="stroke:#000089;stroke-opacity:1" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + id="g5661"> + <path + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path5663" + sodipodi:cx="73.539108" + sodipodi:cy="99.920204" + sodipodi:type="arc" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + sodipodi:rx="2.8284271" + sodipodi:ry="2.8284271" /> + <text + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + id="text5665" + sodipodi:linespacing="100%" + transform="scale(0.9716714,1.0291545)" + y="34.371136" + x="604.14581" + xml:space="preserve"><tspan + sodipodi:role="line" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + id="tspan5667" + y="34.371136" + x="604.14581">x</tspan></text> + </g> + </g> + <g + id="g5671" + transform="translate(203.00788,-527.92669)"> + <path + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="630" + sodipodi:cx="110" + id="path5673" + style="opacity:1;fill:url(#radialGradient5683);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <g + id="g5675" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + style="stroke:#000089;stroke-opacity:1"> + <path + sodipodi:ry="2.8284271" + sodipodi:rx="2.8284271" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + sodipodi:type="arc" + sodipodi:cy="99.920204" + sodipodi:cx="73.539108" + id="path5677" + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <text + xml:space="preserve" + x="604.14581" + y="34.371136" + transform="scale(0.9716714,1.0291545)" + sodipodi:linespacing="100%" + id="text5679" + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"><tspan + x="604.14581" + y="34.371136" + id="tspan5681" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + sodipodi:role="line">x</tspan></text> + </g> + </g> + <rect + style="opacity:1;fill:#5568d7;fill-opacity:0.18613138;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:0.99999988;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect5685" + width="30.013449" + height="170.01205" + x="109.98656" + y="119.98795" /> + <rect + y="119.9759" + x="149.97311" + height="170.01205" + width="30.424906" + id="rect5687" + style="opacity:1;fill:#5568d7;fill-opacity:0.18613138;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <rect + style="opacity:1;fill:#5568d7;fill-opacity:0.18613138;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:0.99999988;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect5689" + width="29.601994" + height="170.01205" + x="210" + y="120" /> + <rect + y="119.98795" + x="249.98656" + height="170.01205" + width="30.013449" + id="rect5691" + style="opacity:1;fill:#5568d7;fill-opacity:0.18613138;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:0.99999988;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <g + transform="translate(35.507882,-467.47309)" + id="g5693"> + <path + sodipodi:type="arc" + style="opacity:1;fill:url(#radialGradient5885);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path5695" + sodipodi:cx="110" + sodipodi:cy="630" + sodipodi:rx="10" + sodipodi:ry="10" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" /> + <g + style="stroke:#000089;stroke-opacity:1" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + id="g5697"> + <path + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path5699" + sodipodi:cx="73.539108" + sodipodi:cy="99.920204" + sodipodi:type="arc" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + sodipodi:rx="2.8284271" + sodipodi:ry="2.8284271" /> + <text + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + id="text5701" + sodipodi:linespacing="100%" + transform="scale(0.9716714,1.0291545)" + y="34.371136" + x="604.14581" + xml:space="preserve"><tspan + sodipodi:role="line" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + id="tspan5703" + y="34.371136" + x="604.14581">x</tspan></text> + </g> + </g> + <g + id="g5705" + transform="translate(35.507882,-449.56379)"> + <path + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="630" + sodipodi:cx="110" + id="path5707" + style="opacity:1;fill:url(#radialGradient5875);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <g + id="g5709" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + style="stroke:#000089;stroke-opacity:1"> + <path + sodipodi:ry="2.8284271" + sodipodi:rx="2.8284271" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + sodipodi:type="arc" + sodipodi:cy="99.920204" + sodipodi:cx="73.539108" + id="path5711" + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <text + xml:space="preserve" + x="604.14581" + y="34.371136" + transform="scale(0.9716714,1.0291545)" + sodipodi:linespacing="100%" + id="text5713" + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"><tspan + x="604.14581" + y="34.371136" + id="tspan5715" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + sodipodi:role="line">x</tspan></text> + </g> + </g> + <g + transform="translate(35.507882,-431.65453)" + id="g5717"> + <path + sodipodi:type="arc" + style="opacity:1;fill:url(#radialGradient5877);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path5719" + sodipodi:cx="110" + sodipodi:cy="630" + sodipodi:rx="10" + sodipodi:ry="10" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" /> + <g + style="stroke:#000089;stroke-opacity:1" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + id="g5721"> + <path + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path5723" + sodipodi:cx="73.539108" + sodipodi:cy="99.920204" + sodipodi:type="arc" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + sodipodi:rx="2.8284271" + sodipodi:ry="2.8284271" /> + <text + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + id="text5725" + sodipodi:linespacing="100%" + transform="scale(0.9716714,1.0291545)" + y="34.371136" + x="604.14581" + xml:space="preserve"><tspan + sodipodi:role="line" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + id="tspan5727" + y="34.371136" + x="604.14581">x</tspan></text> + </g> + </g> + <g + id="g5729" + transform="translate(35.507882,-413.74523)"> + <path + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="630" + sodipodi:cx="110" + id="path5731" + style="opacity:1;fill:url(#radialGradient5879);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <g + id="g5733" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + style="stroke:#000089;stroke-opacity:1"> + <path + sodipodi:ry="2.8284271" + sodipodi:rx="2.8284271" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + sodipodi:type="arc" + sodipodi:cy="99.920204" + sodipodi:cx="73.539108" + id="path5735" + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <text + xml:space="preserve" + x="604.14581" + y="34.371136" + transform="scale(0.9716714,1.0291545)" + sodipodi:linespacing="100%" + id="text5737" + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"><tspan + x="604.14581" + y="34.371136" + id="tspan5739" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + sodipodi:role="line">x</tspan></text> + </g> + </g> + <g + transform="translate(35.507882,-377.92669)" + id="g5741"> + <path + sodipodi:type="arc" + style="opacity:1;fill:url(#radialGradient5881);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path5743" + sodipodi:cx="110" + sodipodi:cy="630" + sodipodi:rx="10" + sodipodi:ry="10" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" /> + <g + style="stroke:#000089;stroke-opacity:1" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + id="g5745"> + <path + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path5747" + sodipodi:cx="73.539108" + sodipodi:cy="99.920204" + sodipodi:type="arc" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + sodipodi:rx="2.8284271" + sodipodi:ry="2.8284271" /> + <text + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + id="text5749" + sodipodi:linespacing="100%" + transform="scale(0.9716714,1.0291545)" + y="34.371136" + x="604.14581" + xml:space="preserve"><tspan + sodipodi:role="line" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + id="tspan5751" + y="34.371136" + x="604.14581">x</tspan></text> + </g> + </g> + <g + id="g5753" + transform="translate(35.507882,-395.83601)"> + <path + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="630" + sodipodi:cx="110" + id="path5755" + style="opacity:1;fill:url(#radialGradient5883);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <g + id="g5757" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + style="stroke:#000089;stroke-opacity:1"> + <path + sodipodi:ry="2.8284271" + sodipodi:rx="2.8284271" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + sodipodi:type="arc" + sodipodi:cy="99.920204" + sodipodi:cx="73.539108" + id="path5759" + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <text + xml:space="preserve" + x="604.14581" + y="34.371136" + transform="scale(0.9716714,1.0291545)" + sodipodi:linespacing="100%" + id="text5761" + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"><tspan + x="604.14581" + y="34.371136" + id="tspan5763" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + sodipodi:role="line">x</tspan></text> + </g> + </g> + <g + transform="translate(5.3169981e-2,-356.31307)" + id="g5887"> + <g + id="g5889"> + <g + transform="translate(-117.27504,344.4467)" + id="g5891" + style="display:inline"> + <g + id="g5893"> + <g + id="g5895"> + <use + height="1052.3622" + x="0" + xlink:href="#g_object_pin" + y="0" + transform="translate(-430,225)" + width="744.09448" + id="use5897" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,15)" + width="744.09448" + id="use5899" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,30)" + width="744.09448" + id="use5901" /> + </g> + </g> + <g + id="g5903"> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path5905" + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" /> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="translate(0,25)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path5907" + style="opacity:1;fill:url(#radialGradient5911);fill-opacity:1;fill-rule:evenodd;stroke:#00003c;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + id="path5909" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + style="fill:#053466;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + </g> + </g> + </g> + </g> + <g + id="g5913" + transform="translate(1.3922433,-347.01565)"> + <g + id="g5915"> + <g + style="display:inline" + id="g5917" + transform="translate(-117.27504,344.4467)"> + <g + id="g5919"> + <g + id="g5921"> + <use + id="use5923" + width="744.09448" + transform="translate(-430,225)" + y="0" + xlink:href="#g_object_pin" + x="0" + height="1052.3622" /> + <use + id="use5925" + width="744.09448" + transform="translate(0,15)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + <use + id="use5927" + width="744.09448" + transform="translate(0,30)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + </g> + </g> + <g + id="g5929"> + <path + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" + id="path5931" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="opacity:1;fill:url(#radialGradient5937);fill-opacity:1;fill-rule:evenodd;stroke:#00003c;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path5933" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="translate(0,25)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="fill:#053466;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + id="path5935" /> + </g> + </g> + </g> + </g> + <g + transform="translate(2.7313165,-337.71822)" + id="g5939"> + <g + id="g5941"> + <g + transform="translate(-117.27504,344.4467)" + id="g5943" + style="display:inline"> + <g + id="g5945"> + <g + id="g5947"> + <use + height="1052.3622" + x="0" + xlink:href="#g_object_pin" + y="0" + transform="translate(-430,225)" + width="744.09448" + id="use5949" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,15)" + width="744.09448" + id="use5951" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,30)" + width="744.09448" + id="use5953" /> + </g> + </g> + <g + id="g5955"> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path5957" + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" /> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="translate(0,25)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path5959" + style="opacity:1;fill:url(#radialGradient5963);fill-opacity:1;fill-rule:evenodd;stroke:#00003c;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + id="path5961" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + style="fill:#053466;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + </g> + </g> + </g> + </g> + <g + id="g5965" + transform="translate(4.0703795,-328.42077)"> + <g + id="g5967"> + <g + style="display:inline" + id="g5969" + transform="translate(-117.27504,344.4467)"> + <g + id="g5971"> + <g + id="g5973"> + <use + id="use5975" + width="744.09448" + transform="translate(-430,225)" + y="0" + xlink:href="#g_object_pin" + x="0" + height="1052.3622" /> + <use + id="use5977" + width="744.09448" + transform="translate(0,15)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + <use + id="use5979" + width="744.09448" + transform="translate(0,30)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + </g> + </g> + <g + id="g5981"> + <path + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" + id="path5983" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="opacity:1;fill:url(#radialGradient5989);fill-opacity:1;fill-rule:evenodd;stroke:#00003c;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path5985" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="translate(0,25)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="fill:#053466;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + id="path5987" /> + </g> + </g> + </g> + </g> + <g + transform="translate(5.40945,-319.12338)" + id="g5991"> + <g + id="g5993"> + <g + transform="translate(-117.27504,344.4467)" + id="g5995" + style="display:inline"> + <g + id="g5997"> + <g + id="g5999"> + <use + height="1052.3622" + x="0" + xlink:href="#g_object_pin" + y="0" + transform="translate(-430,225)" + width="744.09448" + id="use6001" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,15)" + width="744.09448" + id="use6003" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,30)" + width="744.09448" + id="use6005" /> + </g> + </g> + <g + id="g6007"> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path6009" + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" /> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="translate(0,25)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path6011" + style="opacity:1;fill:url(#radialGradient6015);fill-opacity:1;fill-rule:evenodd;stroke:#00003c;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + id="path6013" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + style="fill:#053466;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + </g> + </g> + </g> + </g> + <g + id="g6017" + transform="translate(75.507882,-467.47309)"> + <path + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="630" + sodipodi:cx="110" + id="path6019" + style="opacity:1;fill:url(#radialGradient6089);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <g + id="g6021" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + style="stroke:#000089;stroke-opacity:1"> + <path + sodipodi:ry="2.8284271" + sodipodi:rx="2.8284271" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + sodipodi:type="arc" + sodipodi:cy="99.920204" + sodipodi:cx="73.539108" + id="path6023" + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <text + xml:space="preserve" + x="604.14581" + y="34.371136" + transform="scale(0.9716714,1.0291545)" + sodipodi:linespacing="100%" + id="text6025" + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"><tspan + x="604.14581" + y="34.371136" + id="tspan6027" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + sodipodi:role="line">x</tspan></text> + </g> + </g> + <g + transform="translate(75.507882,-449.56379)" + id="g6029"> + <path + sodipodi:type="arc" + style="opacity:1;fill:url(#radialGradient6091);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6031" + sodipodi:cx="110" + sodipodi:cy="630" + sodipodi:rx="10" + sodipodi:ry="10" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" /> + <g + style="stroke:#000089;stroke-opacity:1" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + id="g6033"> + <path + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6035" + sodipodi:cx="73.539108" + sodipodi:cy="99.920204" + sodipodi:type="arc" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + sodipodi:rx="2.8284271" + sodipodi:ry="2.8284271" /> + <text + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + id="text6037" + sodipodi:linespacing="100%" + transform="scale(0.9716714,1.0291545)" + y="34.371136" + x="604.14581" + xml:space="preserve"><tspan + sodipodi:role="line" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + id="tspan6039" + y="34.371136" + x="604.14581">x</tspan></text> + </g> + </g> + <g + id="g6041" + transform="translate(75.507882,-431.65453)"> + <path + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="630" + sodipodi:cx="110" + id="path6043" + style="opacity:1;fill:url(#radialGradient6093);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <g + id="g6045" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + style="stroke:#000089;stroke-opacity:1"> + <path + sodipodi:ry="2.8284271" + sodipodi:rx="2.8284271" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + sodipodi:type="arc" + sodipodi:cy="99.920204" + sodipodi:cx="73.539108" + id="path6047" + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <text + xml:space="preserve" + x="604.14581" + y="34.371136" + transform="scale(0.9716714,1.0291545)" + sodipodi:linespacing="100%" + id="text6049" + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"><tspan + x="604.14581" + y="34.371136" + id="tspan6051" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + sodipodi:role="line">x</tspan></text> + </g> + </g> + <g + transform="translate(75.507882,-413.74523)" + id="g6053"> + <path + sodipodi:type="arc" + style="opacity:1;fill:url(#radialGradient6095);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6055" + sodipodi:cx="110" + sodipodi:cy="630" + sodipodi:rx="10" + sodipodi:ry="10" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" /> + <g + style="stroke:#000089;stroke-opacity:1" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + id="g6057"> + <path + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6059" + sodipodi:cx="73.539108" + sodipodi:cy="99.920204" + sodipodi:type="arc" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + sodipodi:rx="2.8284271" + sodipodi:ry="2.8284271" /> + <text + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + id="text6061" + sodipodi:linespacing="100%" + transform="scale(0.9716714,1.0291545)" + y="34.371136" + x="604.14581" + xml:space="preserve"><tspan + sodipodi:role="line" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + id="tspan6063" + y="34.371136" + x="604.14581">x</tspan></text> + </g> + </g> + <g + id="g6065" + transform="translate(75.507882,-377.92669)"> + <path + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="630" + sodipodi:cx="110" + id="path6067" + style="opacity:1;fill:url(#radialGradient6097);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <g + id="g6069" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + style="stroke:#000089;stroke-opacity:1"> + <path + sodipodi:ry="2.8284271" + sodipodi:rx="2.8284271" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + sodipodi:type="arc" + sodipodi:cy="99.920204" + sodipodi:cx="73.539108" + id="path6071" + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <text + xml:space="preserve" + x="604.14581" + y="34.371136" + transform="scale(0.9716714,1.0291545)" + sodipodi:linespacing="100%" + id="text6073" + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"><tspan + x="604.14581" + y="34.371136" + id="tspan6075" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + sodipodi:role="line">x</tspan></text> + </g> + </g> + <g + transform="translate(75.507882,-395.83601)" + id="g6077"> + <path + sodipodi:type="arc" + style="opacity:1;fill:url(#radialGradient6099);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6079" + sodipodi:cx="110" + sodipodi:cy="630" + sodipodi:rx="10" + sodipodi:ry="10" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" /> + <g + style="stroke:#000089;stroke-opacity:1" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + id="g6081"> + <path + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6083" + sodipodi:cx="73.539108" + sodipodi:cy="99.920204" + sodipodi:type="arc" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + sodipodi:rx="2.8284271" + sodipodi:ry="2.8284271" /> + <text + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + id="text6085" + sodipodi:linespacing="100%" + transform="scale(0.9716714,1.0291545)" + y="34.371136" + x="604.14581" + xml:space="preserve"><tspan + sodipodi:role="line" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + id="tspan6087" + y="34.371136" + x="604.14581">x</tspan></text> + </g> + </g> + <g + transform="translate(115.50788,-467.47309)" + id="g6101"> + <path + sodipodi:type="arc" + style="opacity:1;fill:url(#radialGradient6173);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6103" + sodipodi:cx="110" + sodipodi:cy="630" + sodipodi:rx="10" + sodipodi:ry="10" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" /> + <g + style="stroke:#000089;stroke-opacity:1" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + id="g6105"> + <path + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6107" + sodipodi:cx="73.539108" + sodipodi:cy="99.920204" + sodipodi:type="arc" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + sodipodi:rx="2.8284271" + sodipodi:ry="2.8284271" /> + <text + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + id="text6109" + sodipodi:linespacing="100%" + transform="scale(0.9716714,1.0291545)" + y="34.371136" + x="604.14581" + xml:space="preserve"><tspan + sodipodi:role="line" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + id="tspan6111" + y="34.371136" + x="604.14581">x</tspan></text> + </g> + </g> + <g + id="g6113" + transform="translate(115.50788,-449.56379)"> + <path + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="630" + sodipodi:cx="110" + id="path6115" + style="opacity:1;fill:url(#radialGradient6175);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <g + id="g6117" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + style="stroke:#000089;stroke-opacity:1"> + <path + sodipodi:ry="2.8284271" + sodipodi:rx="2.8284271" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + sodipodi:type="arc" + sodipodi:cy="99.920204" + sodipodi:cx="73.539108" + id="path6119" + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <text + xml:space="preserve" + x="604.14581" + y="34.371136" + transform="scale(0.9716714,1.0291545)" + sodipodi:linespacing="100%" + id="text6121" + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"><tspan + x="604.14581" + y="34.371136" + id="tspan6123" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + sodipodi:role="line">x</tspan></text> + </g> + </g> + <g + transform="translate(115.50788,-431.65453)" + id="g6125"> + <path + sodipodi:type="arc" + style="opacity:1;fill:url(#radialGradient6177);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6127" + sodipodi:cx="110" + sodipodi:cy="630" + sodipodi:rx="10" + sodipodi:ry="10" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" /> + <g + style="stroke:#000089;stroke-opacity:1" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + id="g6129"> + <path + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6131" + sodipodi:cx="73.539108" + sodipodi:cy="99.920204" + sodipodi:type="arc" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + sodipodi:rx="2.8284271" + sodipodi:ry="2.8284271" /> + <text + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + id="text6133" + sodipodi:linespacing="100%" + transform="scale(0.9716714,1.0291545)" + y="34.371136" + x="604.14581" + xml:space="preserve"><tspan + sodipodi:role="line" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + id="tspan6135" + y="34.371136" + x="604.14581">x</tspan></text> + </g> + </g> + <g + id="g6137" + transform="translate(115.50788,-413.74523)"> + <path + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="630" + sodipodi:cx="110" + id="path6139" + style="opacity:1;fill:url(#radialGradient6179);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <g + id="g6141" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + style="stroke:#000089;stroke-opacity:1"> + <path + sodipodi:ry="2.8284271" + sodipodi:rx="2.8284271" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + sodipodi:type="arc" + sodipodi:cy="99.920204" + sodipodi:cx="73.539108" + id="path6143" + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <text + xml:space="preserve" + x="604.14581" + y="34.371136" + transform="scale(0.9716714,1.0291545)" + sodipodi:linespacing="100%" + id="text6145" + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"><tspan + x="604.14581" + y="34.371136" + id="tspan6147" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + sodipodi:role="line">x</tspan></text> + </g> + </g> + <g + transform="translate(115.50788,-377.92669)" + id="g6149"> + <path + sodipodi:type="arc" + style="opacity:1;fill:url(#radialGradient6181);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6151" + sodipodi:cx="110" + sodipodi:cy="630" + sodipodi:rx="10" + sodipodi:ry="10" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" /> + <g + style="stroke:#000089;stroke-opacity:1" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + id="g6153"> + <path + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6155" + sodipodi:cx="73.539108" + sodipodi:cy="99.920204" + sodipodi:type="arc" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + sodipodi:rx="2.8284271" + sodipodi:ry="2.8284271" /> + <text + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + id="text6157" + sodipodi:linespacing="100%" + transform="scale(0.9716714,1.0291545)" + y="34.371136" + x="604.14581" + xml:space="preserve"><tspan + sodipodi:role="line" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + id="tspan6159" + y="34.371136" + x="604.14581">x</tspan></text> + </g> + </g> + <g + id="g6161" + transform="translate(115.50788,-395.83601)"> + <path + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="630" + sodipodi:cx="110" + id="path6163" + style="opacity:1;fill:url(#radialGradient6183);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <g + id="g6165" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + style="stroke:#000089;stroke-opacity:1"> + <path + sodipodi:ry="2.8284271" + sodipodi:rx="2.8284271" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + sodipodi:type="arc" + sodipodi:cy="99.920204" + sodipodi:cx="73.539108" + id="path6167" + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <text + xml:space="preserve" + x="604.14581" + y="34.371136" + transform="scale(0.9716714,1.0291545)" + sodipodi:linespacing="100%" + id="text6169" + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"><tspan + x="604.14581" + y="34.371136" + id="tspan6171" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + sodipodi:role="line">x</tspan></text> + </g> + </g> + <g + id="g6185" + transform="translate(175.50788,-467.47309)"> + <path + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="630" + sodipodi:cx="110" + id="path6187" + style="opacity:1;fill:url(#radialGradient6257);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <g + id="g6189" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + style="stroke:#000089;stroke-opacity:1"> + <path + sodipodi:ry="2.8284271" + sodipodi:rx="2.8284271" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + sodipodi:type="arc" + sodipodi:cy="99.920204" + sodipodi:cx="73.539108" + id="path6191" + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <text + xml:space="preserve" + x="604.14581" + y="34.371136" + transform="scale(0.9716714,1.0291545)" + sodipodi:linespacing="100%" + id="text6193" + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"><tspan + x="604.14581" + y="34.371136" + id="tspan6195" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + sodipodi:role="line">x</tspan></text> + </g> + </g> + <g + transform="translate(175.50788,-449.56379)" + id="g6197"> + <path + sodipodi:type="arc" + style="opacity:1;fill:url(#radialGradient6259);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6199" + sodipodi:cx="110" + sodipodi:cy="630" + sodipodi:rx="10" + sodipodi:ry="10" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" /> + <g + style="stroke:#000089;stroke-opacity:1" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + id="g6201"> + <path + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6203" + sodipodi:cx="73.539108" + sodipodi:cy="99.920204" + sodipodi:type="arc" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + sodipodi:rx="2.8284271" + sodipodi:ry="2.8284271" /> + <text + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + id="text6205" + sodipodi:linespacing="100%" + transform="scale(0.9716714,1.0291545)" + y="34.371136" + x="604.14581" + xml:space="preserve"><tspan + sodipodi:role="line" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + id="tspan6207" + y="34.371136" + x="604.14581">x</tspan></text> + </g> + </g> + <g + id="g6209" + transform="translate(175.50788,-431.65453)"> + <path + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="630" + sodipodi:cx="110" + id="path6211" + style="opacity:1;fill:url(#radialGradient6261);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <g + id="g6213" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + style="stroke:#000089;stroke-opacity:1"> + <path + sodipodi:ry="2.8284271" + sodipodi:rx="2.8284271" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + sodipodi:type="arc" + sodipodi:cy="99.920204" + sodipodi:cx="73.539108" + id="path6215" + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <text + xml:space="preserve" + x="604.14581" + y="34.371136" + transform="scale(0.9716714,1.0291545)" + sodipodi:linespacing="100%" + id="text6217" + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"><tspan + x="604.14581" + y="34.371136" + id="tspan6219" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + sodipodi:role="line">x</tspan></text> + </g> + </g> + <g + transform="translate(215.50788,-467.47309)" + id="g6269"> + <path + sodipodi:type="arc" + style="opacity:1;fill:url(#radialGradient6305);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6271" + sodipodi:cx="110" + sodipodi:cy="630" + sodipodi:rx="10" + sodipodi:ry="10" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" /> + <g + style="stroke:#000089;stroke-opacity:1" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + id="g6273"> + <path + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6275" + sodipodi:cx="73.539108" + sodipodi:cy="99.920204" + sodipodi:type="arc" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + sodipodi:rx="2.8284271" + sodipodi:ry="2.8284271" /> + <text + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + id="text6277" + sodipodi:linespacing="100%" + transform="scale(0.9716714,1.0291545)" + y="34.371136" + x="604.14581" + xml:space="preserve"><tspan + sodipodi:role="line" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + id="tspan6279" + y="34.371136" + x="604.14581">x</tspan></text> + </g> + </g> + <g + id="g6281" + transform="translate(215.50788,-449.56379)"> + <path + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="630" + sodipodi:cx="110" + id="path6283" + style="opacity:1;fill:url(#radialGradient6307);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <g + id="g6285" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + style="stroke:#000089;stroke-opacity:1"> + <path + sodipodi:ry="2.8284271" + sodipodi:rx="2.8284271" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + sodipodi:type="arc" + sodipodi:cy="99.920204" + sodipodi:cx="73.539108" + id="path6287" + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <text + xml:space="preserve" + x="604.14581" + y="34.371136" + transform="scale(0.9716714,1.0291545)" + sodipodi:linespacing="100%" + id="text6289" + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"><tspan + x="604.14581" + y="34.371136" + id="tspan6291" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + sodipodi:role="line">x</tspan></text> + </g> + </g> + <g + transform="translate(215.50788,-431.65453)" + id="g6293"> + <path + sodipodi:type="arc" + style="opacity:1;fill:url(#radialGradient6309);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6295" + sodipodi:cx="110" + sodipodi:cy="630" + sodipodi:rx="10" + sodipodi:ry="10" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" /> + <g + style="stroke:#000089;stroke-opacity:1" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + id="g6297"> + <path + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6299" + sodipodi:cx="73.539108" + sodipodi:cy="99.920204" + sodipodi:type="arc" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + sodipodi:rx="2.8284271" + sodipodi:ry="2.8284271" /> + <text + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + id="text6301" + sodipodi:linespacing="100%" + transform="scale(0.9716714,1.0291545)" + y="34.371136" + x="604.14581" + xml:space="preserve"><tspan + sodipodi:role="line" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + id="tspan6303" + y="34.371136" + x="604.14581">x</tspan></text> + </g> + </g> + <g + id="g6311" + transform="translate(41.23126,-356.31307)"> + <g + id="g6313"> + <g + style="display:inline" + id="g6315" + transform="translate(-117.27504,344.4467)"> + <g + id="g6317"> + <g + id="g6319"> + <use + id="use6321" + width="744.09448" + transform="translate(-430,225)" + y="0" + xlink:href="#g_object_pin" + x="0" + height="1052.3622" /> + <use + id="use6323" + width="744.09448" + transform="translate(0,15)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + <use + id="use6325" + width="744.09448" + transform="translate(0,30)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + </g> + </g> + <g + id="g6327"> + <path + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" + id="path6329" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="opacity:1;fill:url(#radialGradient6431);fill-opacity:1;fill-rule:evenodd;stroke:#00003c;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6331" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="translate(0,25)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="fill:#053466;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + id="path6333" /> + </g> + </g> + </g> + </g> + <g + transform="translate(42.570333,-347.01565)" + id="g6335"> + <g + id="g6337"> + <g + transform="translate(-117.27504,344.4467)" + id="g6339" + style="display:inline"> + <g + id="g6341"> + <g + id="g6343"> + <use + height="1052.3622" + x="0" + xlink:href="#g_object_pin" + y="0" + transform="translate(-430,225)" + width="744.09448" + id="use6345" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,15)" + width="744.09448" + id="use6347" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,30)" + width="744.09448" + id="use6349" /> + </g> + </g> + <g + id="g6351"> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path6353" + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" /> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="translate(0,25)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path6355" + style="opacity:1;fill:url(#radialGradient6433);fill-opacity:1;fill-rule:evenodd;stroke:#00003c;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + id="path6357" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + style="fill:#053466;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + </g> + </g> + </g> + </g> + <g + id="g6359" + transform="translate(43.909407,-337.71822)"> + <g + id="g6361"> + <g + style="display:inline" + id="g6363" + transform="translate(-117.27504,344.4467)"> + <g + id="g6365"> + <g + id="g6367"> + <use + id="use6369" + width="744.09448" + transform="translate(-430,225)" + y="0" + xlink:href="#g_object_pin" + x="0" + height="1052.3622" /> + <use + id="use6371" + width="744.09448" + transform="translate(0,15)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + <use + id="use6373" + width="744.09448" + transform="translate(0,30)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + </g> + </g> + <g + id="g6375"> + <path + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" + id="path6377" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="opacity:1;fill:url(#radialGradient6435);fill-opacity:1;fill-rule:evenodd;stroke:#00003c;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6379" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="translate(0,25)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="fill:#053466;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + id="path6381" /> + </g> + </g> + </g> + </g> + <g + transform="translate(45.24847,-328.42077)" + id="g6383"> + <g + id="g6385"> + <g + transform="translate(-117.27504,344.4467)" + id="g6387" + style="display:inline"> + <g + id="g6389"> + <g + id="g6391"> + <use + height="1052.3622" + x="0" + xlink:href="#g_object_pin" + y="0" + transform="translate(-430,225)" + width="744.09448" + id="use6393" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,15)" + width="744.09448" + id="use6395" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,30)" + width="744.09448" + id="use6397" /> + </g> + </g> + <g + id="g6399"> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path6401" + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" /> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="translate(0,25)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path6403" + style="opacity:1;fill:url(#radialGradient6437);fill-opacity:1;fill-rule:evenodd;stroke:#00003c;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + id="path6405" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + style="fill:#053466;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + </g> + </g> + </g> + </g> + <g + id="g6465" + transform="translate(81.81476,-347.01565)"> + <g + id="g6467"> + <g + style="display:inline" + id="g6469" + transform="translate(-117.27504,344.4467)"> + <g + id="g6471"> + <g + id="g6473"> + <use + id="use6475" + width="744.09448" + transform="translate(-430,225)" + y="0" + xlink:href="#g_object_pin" + x="0" + height="1052.3622" /> + <use + id="use6477" + width="744.09448" + transform="translate(0,15)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + <use + id="use6479" + width="744.09448" + transform="translate(0,30)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + </g> + </g> + <g + id="g6481"> + <path + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" + id="path6483" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="opacity:1;fill:url(#radialGradient6563);fill-opacity:1;fill-rule:evenodd;stroke:#00003c;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6485" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="translate(0,25)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="fill:#053466;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + id="path6487" /> + </g> + </g> + </g> + </g> + <g + transform="translate(83.153834,-337.71822)" + id="g6489"> + <g + id="g6491"> + <g + transform="translate(-117.27504,344.4467)" + id="g6493" + style="display:inline"> + <g + id="g6495"> + <g + id="g6497"> + <use + height="1052.3622" + x="0" + xlink:href="#g_object_pin" + y="0" + transform="translate(-430,225)" + width="744.09448" + id="use6499" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,15)" + width="744.09448" + id="use6501" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,30)" + width="744.09448" + id="use6503" /> + </g> + </g> + <g + id="g6505"> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path6507" + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" /> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="translate(0,25)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path6509" + style="opacity:1;fill:url(#radialGradient6565);fill-opacity:1;fill-rule:evenodd;stroke:#00003c;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + id="path6511" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + style="fill:#053466;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + </g> + </g> + </g> + </g> + <g + id="g6513" + transform="translate(84.492897,-328.42077)"> + <g + id="g6515"> + <g + style="display:inline" + id="g6517" + transform="translate(-117.27504,344.4467)"> + <g + id="g6519"> + <g + id="g6521"> + <use + id="use6523" + width="744.09448" + transform="translate(-430,225)" + y="0" + xlink:href="#g_object_pin" + x="0" + height="1052.3622" /> + <use + id="use6525" + width="744.09448" + transform="translate(0,15)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + <use + id="use6527" + width="744.09448" + transform="translate(0,30)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + </g> + </g> + <g + id="g6529"> + <path + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" + id="path6531" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="opacity:1;fill:url(#radialGradient6567);fill-opacity:1;fill-rule:evenodd;stroke:#00003c;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6533" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="translate(0,25)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="fill:#053466;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + id="path6535" /> + </g> + </g> + </g> + </g> + <g + transform="translate(85.831967,-319.12338)" + id="g6537"> + <g + id="g6539"> + <g + transform="translate(-117.27504,344.4467)" + id="g6541" + style="display:inline"> + <g + id="g6543"> + <g + id="g6545"> + <use + height="1052.3622" + x="0" + xlink:href="#g_object_pin" + y="0" + transform="translate(-430,225)" + width="744.09448" + id="use6547" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,15)" + width="744.09448" + id="use6549" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,30)" + width="744.09448" + id="use6551" /> + </g> + </g> + <g + id="g6553"> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path6555" + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" /> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="translate(0,25)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path6557" + style="opacity:1;fill:url(#radialGradient6569);fill-opacity:1;fill-rule:evenodd;stroke:#00003c;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + id="path6559" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + style="fill:#053466;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + </g> + </g> + </g> + </g> + <g + id="g6727" + transform="translate(139.0786,-372.24638)"> + <g + id="g6729"> + <g + style="display:inline" + id="g6731" + transform="translate(-117.27504,344.4467)"> + <g + id="g6733"> + <g + id="g6735"> + <use + id="use6737" + width="744.09448" + transform="translate(-430,225)" + y="0" + xlink:href="#g_object_pin" + x="0" + height="1052.3622" /> + <use + id="use6739" + width="744.09448" + transform="translate(0,15)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + <use + id="use6741" + width="744.09448" + transform="translate(0,30)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + </g> + </g> + <g + id="g6743"> + <path + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" + id="path6745" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="opacity:1;fill:url(#radialGradient6751);fill-opacity:1;fill-rule:evenodd;stroke:#00003c;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6747" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="translate(0,25)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="fill:#053466;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + id="path6749" /> + </g> + </g> + </g> + </g> + <g + transform="translate(140.13494,-363.39259)" + id="g6701"> + <g + id="g6703"> + <g + transform="translate(-117.27504,344.4467)" + id="g6705" + style="display:inline"> + <g + id="g6707"> + <g + id="g6709"> + <use + height="1052.3622" + x="0" + xlink:href="#g_object_pin" + y="0" + transform="translate(-430,225)" + width="744.09448" + id="use6711" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,15)" + width="744.09448" + id="use6713" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,30)" + width="744.09448" + id="use6715" /> + </g> + </g> + <g + id="g6717"> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path6719" + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" /> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="translate(0,25)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path6721" + style="opacity:1;fill:url(#radialGradient6725);fill-opacity:1;fill-rule:evenodd;stroke:#00003c;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + id="path6723" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + style="fill:#053466;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + </g> + </g> + </g> + </g> + <g + id="g6571" + transform="translate(141.19126,-354.53872)"> + <g + id="g6573"> + <g + style="display:inline" + id="g6575" + transform="translate(-117.27504,344.4467)"> + <g + id="g6577"> + <g + id="g6579"> + <use + id="use6581" + width="744.09448" + transform="translate(-430,225)" + y="0" + xlink:href="#g_object_pin" + x="0" + height="1052.3622" /> + <use + id="use6583" + width="744.09448" + transform="translate(0,15)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + <use + id="use6585" + width="744.09448" + transform="translate(0,30)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + </g> + </g> + <g + id="g6587"> + <path + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" + id="path6589" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="opacity:1;fill:url(#radialGradient6691);fill-opacity:1;fill-rule:evenodd;stroke:#00003c;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6591" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="translate(0,25)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="fill:#053466;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + id="path6593" /> + </g> + </g> + </g> + </g> + <g + transform="translate(142.2476,-345.6849)" + id="g6595"> + <g + id="g6597"> + <g + transform="translate(-117.27504,344.4467)" + id="g6599" + style="display:inline"> + <g + id="g6601"> + <g + id="g6603"> + <use + height="1052.3622" + x="0" + xlink:href="#g_object_pin" + y="0" + transform="translate(-430,225)" + width="744.09448" + id="use6605" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,15)" + width="744.09448" + id="use6607" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,30)" + width="744.09448" + id="use6609" /> + </g> + </g> + <g + id="g6611"> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path6613" + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" /> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="translate(0,25)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path6615" + style="opacity:1;fill:url(#radialGradient6693);fill-opacity:1;fill-rule:evenodd;stroke:#00003c;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + id="path6617" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + style="fill:#053466;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + </g> + </g> + </g> + </g> + <g + id="g6619" + transform="translate(143.30394,-336.83107)"> + <g + id="g6621"> + <g + style="display:inline" + id="g6623" + transform="translate(-117.27504,344.4467)"> + <g + id="g6625"> + <g + id="g6627"> + <use + id="use6629" + width="744.09448" + transform="translate(-430,225)" + y="0" + xlink:href="#g_object_pin" + x="0" + height="1052.3622" /> + <use + id="use6631" + width="744.09448" + transform="translate(0,15)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + <use + id="use6633" + width="744.09448" + transform="translate(0,30)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + </g> + </g> + <g + id="g6635"> + <path + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" + id="path6637" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="opacity:1;fill:url(#radialGradient6695);fill-opacity:1;fill-rule:evenodd;stroke:#00003c;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6639" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="translate(0,25)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="fill:#053466;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + id="path6641" /> + </g> + </g> + </g> + </g> + <g + transform="translate(144.36025,-327.97717)" + id="g6643"> + <g + id="g6645"> + <g + transform="translate(-117.27504,344.4467)" + id="g6647" + style="display:inline"> + <g + id="g6649"> + <g + id="g6651"> + <use + height="1052.3622" + x="0" + xlink:href="#g_object_pin" + y="0" + transform="translate(-430,225)" + width="744.09448" + id="use6653" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,15)" + width="744.09448" + id="use6655" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,30)" + width="744.09448" + id="use6657" /> + </g> + </g> + <g + id="g6659"> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path6661" + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" /> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="translate(0,25)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path6663" + style="opacity:1;fill:url(#radialGradient6697);fill-opacity:1;fill-rule:evenodd;stroke:#00003c;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + id="path6665" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + style="fill:#053466;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + </g> + </g> + </g> + </g> + <g + id="g6667" + transform="translate(145.41659,-319.12338)"> + <g + id="g6669"> + <g + style="display:inline" + id="g6671" + transform="translate(-117.27504,344.4467)"> + <g + id="g6673"> + <g + id="g6675"> + <use + id="use6677" + width="744.09448" + transform="translate(-430,225)" + y="0" + xlink:href="#g_object_pin" + x="0" + height="1052.3622" /> + <use + id="use6679" + width="744.09448" + transform="translate(0,15)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + <use + id="use6681" + width="744.09448" + transform="translate(0,30)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + </g> + </g> + <g + id="g6683"> + <path + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" + id="path6685" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="opacity:1;fill:url(#radialGradient6699);fill-opacity:1;fill-rule:evenodd;stroke:#00003c;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6687" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="translate(0,25)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="fill:#053466;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + id="path6689" /> + </g> + </g> + </g> + </g> + <g + id="g6777" + transform="translate(179.88494,-363.39259)"> + <g + id="g6779"> + <g + style="display:inline" + id="g6781" + transform="translate(-117.27504,344.4467)"> + <g + id="g6783"> + <g + id="g6785"> + <use + id="use6787" + width="744.09448" + transform="translate(-430,225)" + y="0" + xlink:href="#g_object_pin" + x="0" + height="1052.3622" /> + <use + id="use6789" + width="744.09448" + transform="translate(0,15)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + <use + id="use6791" + width="744.09448" + transform="translate(0,30)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + </g> + </g> + <g + id="g6793"> + <path + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" + id="path6795" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="opacity:1;fill:url(#radialGradient6923);fill-opacity:1;fill-rule:evenodd;stroke:#00003c;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6797" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="translate(0,25)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="fill:#053466;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + id="path6799" /> + </g> + </g> + </g> + </g> + <g + transform="translate(180.94126,-354.53872)" + id="g6801"> + <g + id="g6803"> + <g + transform="translate(-117.27504,344.4467)" + id="g6805" + style="display:inline"> + <g + id="g6807"> + <g + id="g6809"> + <use + height="1052.3622" + x="0" + xlink:href="#g_object_pin" + y="0" + transform="translate(-430,225)" + width="744.09448" + id="use6811" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,15)" + width="744.09448" + id="use6813" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,30)" + width="744.09448" + id="use6815" /> + </g> + </g> + <g + id="g6817"> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path6819" + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" /> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="translate(0,25)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path6821" + style="opacity:1;fill:url(#radialGradient6925);fill-opacity:1;fill-rule:evenodd;stroke:#00003c;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + id="path6823" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + style="fill:#053466;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + </g> + </g> + </g> + </g> + <g + id="g6825" + transform="translate(181.9976,-345.6849)"> + <g + id="g6827"> + <g + style="display:inline" + id="g6829" + transform="translate(-117.27504,344.4467)"> + <g + id="g6831"> + <g + id="g6833"> + <use + id="use6835" + width="744.09448" + transform="translate(-430,225)" + y="0" + xlink:href="#g_object_pin" + x="0" + height="1052.3622" /> + <use + id="use6837" + width="744.09448" + transform="translate(0,15)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + <use + id="use6839" + width="744.09448" + transform="translate(0,30)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + </g> + </g> + <g + id="g6841"> + <path + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" + id="path6843" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="opacity:1;fill:url(#radialGradient6927);fill-opacity:1;fill-rule:evenodd;stroke:#00003c;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6845" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="translate(0,25)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="fill:#053466;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + id="path6847" /> + </g> + </g> + </g> + </g> + <g + transform="translate(183.05394,-336.83107)" + id="g6849"> + <g + id="g6851"> + <g + transform="translate(-117.27504,344.4467)" + id="g6853" + style="display:inline"> + <g + id="g6855"> + <g + id="g6857"> + <use + height="1052.3622" + x="0" + xlink:href="#g_object_pin" + y="0" + transform="translate(-430,225)" + width="744.09448" + id="use6859" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,15)" + width="744.09448" + id="use6861" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,30)" + width="744.09448" + id="use6863" /> + </g> + </g> + <g + id="g6865"> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path6867" + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" /> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="translate(0,25)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path6869" + style="opacity:1;fill:url(#radialGradient6929);fill-opacity:1;fill-rule:evenodd;stroke:#00003c;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + id="path6871" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + style="fill:#053466;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + </g> + </g> + </g> + </g> + <g + id="g6873" + transform="translate(184.11025,-327.97717)"> + <g + id="g6875"> + <g + style="display:inline" + id="g6877" + transform="translate(-117.27504,344.4467)"> + <g + id="g6879"> + <g + id="g6881"> + <use + id="use6883" + width="744.09448" + transform="translate(-430,225)" + y="0" + xlink:href="#g_object_pin" + x="0" + height="1052.3622" /> + <use + id="use6885" + width="744.09448" + transform="translate(0,15)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + <use + id="use6887" + width="744.09448" + transform="translate(0,30)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + </g> + </g> + <g + id="g6889"> + <path + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" + id="path6891" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="opacity:1;fill:url(#radialGradient6931);fill-opacity:1;fill-rule:evenodd;stroke:#00003c;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6893" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="translate(0,25)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="fill:#053466;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + id="path6895" /> + </g> + </g> + </g> + </g> + <rect + style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000066;stroke-width:0.50000000000000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect6935" + width="230" + height="20" + x="60" + y="60" /> + <path + id="path6937" + style="fill:#5568d7;fill-opacity:0.18613138000000001;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:0.99999981999999998;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;opacity:1;color:#000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 70,110 L 100,110M 70,108 L 70,112M 100,108 L 100,112" /> + <path + d="M 110,110 L 140,110 M 110,108 L 110,112 M 140,108 L 140,112" + style="opacity:1;fill:#5568d7;fill-opacity:0.18613138;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:0.99999982;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6944" /> + <path + id="path6946" + style="opacity:1;fill:#5568d7;fill-opacity:0.18613138;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:0.99999982;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 150,110 L 180,110 M 150,108 L 150,112 M 180,108 L 180,112" /> + <path + d="M 210,110 L 240,110 M 210,108 L 210,112 M 240,108 L 240,112" + style="opacity:1;fill:#5568d7;fill-opacity:0.18613138;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:0.99999982;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6948" /> + <path + id="path6950" + style="opacity:1;fill:#5568d7;fill-opacity:0.18613138;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:0.99999982;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 250,110 L 280,110 M 250,108 L 250,112 M 280,108 L 280,112" /> + <path + style="fill:#5568d7;fill-opacity:0.18613138000000001;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;opacity:1;color:#000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:1,2;stroke-dashoffset:1.8;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 200,110 L 290,110 M 60,110 L 190,110" + id="path6952" + sodipodi:nodetypes="cccc" /> + <text + sodipodi:linespacing="100%" + id="text3992" + y="104.69887" + x="69.624023" + style="font-size:14px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + xml:space="preserve" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"><tspan + sodipodi:role="line" + id="tspan3994" + x="69.624023" + y="104.69887">Segmentation-1</tspan></text> + <text + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + xml:space="preserve" + style="font-size:14px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + x="209.91797" + y="104.69887" + id="text3996" + sodipodi:linespacing="100%"><tspan + y="104.69887" + x="209.91797" + id="tspan3998" + sodipodi:role="line">Segmtn-2</tspan></text> + <text + xml:space="preserve" + style="font-size:14px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + x="285.01251" + y="240" + id="text4006" + sodipodi:linespacing="100%" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"><tspan + id="tspan4010" + style="font-size:8px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans" + y="240" + x="285.01251" + sodipodi:role="line">Eplicit</tspan><tspan + style="font-size:8px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans" + y="248" + x="285.01251" + sodipodi:role="line" + id="tspan4014">placem</tspan></text> +</svg> diff --git a/doc/devel/draw/Builder.SegmentationSteps-1.svg b/doc/devel/draw/Builder.SegmentationSteps-1.svg new file mode 100644 index 000000000..9694920cf --- /dev/null +++ b/doc/devel/draw/Builder.SegmentationSteps-1.svg @@ -0,0 +1,3333 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="600" + height="800" + id="svg2" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docbase="/home/hiv/devel/lumi/doc/devel/draw" + sodipodi:docname="Builder.SegmentationSteps-1.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.0" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/ScopeStructure1.png" + inkscape:export-xdpi="72.970001" + inkscape:export-ydpi="72.970001"> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.99999999" + inkscape:cx="320.83396" + inkscape:cy="479.20601" + inkscape:document-units="px" + inkscape:current-layer="svg2" + inkscape:window-width="1668" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="1" + width="800px" + height="600px" + showgrid="false" + gridanglex="30px" + gridanglez="30px" + grid_units="px" + inkscape:grid-points="true" + inkscape:grid-bbox="false" + showguides="true" + inkscape:object-paths="false" + inkscape:object-nodes="true" + gridtolerance="10000" + inkscape:guide-points="true" + guidetolerance="5"> + <inkscape:grid + id="GridFromPre046Settings" + type="xygrid" + originx="0px" + originy="0px" + spacingx="2px" + spacingy="2px" + color="#4b4bf4" + empcolor="#0000ff" + opacity="0.09019608" + empopacity="0.4" + empspacing="5" + visible="true" + enabled="true" /> + </sodipodi:namedview> + <defs + id="globals"> + <linearGradient + id="linearGradient5519"> + <stop + id="stop5521" + offset="0" + style="stop-color:#ffffff;stop-opacity:0;" /> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0.27418667" + id="stop5523" /> + <stop + id="stop5525" + offset="1" + style="stop-color:#ffffff;stop-opacity:1;" /> + </linearGradient> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow1Mend" + style="overflow:visible;"> + <path + id="path3646" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.4) rotate(180) translate(10,0)" /> + </marker> + <linearGradient + id="linearGradient4517"> + <stop + id="stop4519" + style="stop-color:#d9e3ea;stop-opacity:1;" + offset="0" /> + <stop + id="stop4521" + style="stop-color:#bac8d8;stop-opacity:1;" + offset="0.75833333" /> + <stop + id="stop4523" + style="stop-color:#8caac0;stop-opacity:0.78431374;" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient4164"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop4166" /> + <stop + id="stop4172" + offset="0.75833333" + style="stop-color:#ecedf8;stop-opacity:1;" /> + <stop + style="stop-color:#c5caf2;stop-opacity:1;" + offset="1" + id="stop4168" /> + </linearGradient> + <linearGradient + id="linearGradient4152"> + <stop + style="stop-color:#5568d7;stop-opacity:0.18431373;" + offset="0" + id="stop4154" /> + <stop + id="stop4160" + offset="0.69166666" + style="stop-color:#5568d7;stop-opacity:0.11458334;" /> + <stop + style="stop-color:#5568d7;stop-opacity:0;" + offset="1" + id="stop4156" /> + </linearGradient> + <linearGradient + id="linearGradient4144"> + <stop + style="stop-color:#1b2c8c;stop-opacity:1;" + offset="0" + id="stop4146" /> + <stop + style="stop-color:#1b2c8c;stop-opacity:0;" + offset="1" + id="stop4148" /> + </linearGradient> + <linearGradient + id="linearGradient3595"> + <stop + style="stop-color:#aaafc7;stop-opacity:1;" + offset="0" + id="stop3597" /> + <stop + id="stop3603" + offset="0.20833333" + style="stop-color:#d1d1d1;stop-opacity:1;" /> + <stop + style="stop-color:#f6f6f6;stop-opacity:1;" + offset="1" + id="stop3599" /> + </linearGradient> + <filter + id="filter4688" + width="1.3973759" + y="-0.054845817" + x="-0.19868796" + height="1.1096916" + inkscape:collect="always"> + <feGaussianBlur + stdDeviation="3.3181169" + id="feGaussianBlur4690" + inkscape:collect="always" /> + </filter> + <linearGradient + id="linearGrad_In1"> + <stop + offset="0" + style="stop-color:#3e3e3e;stop-opacity:0.72941178;" + id="stop8557" /> + <stop + offset="0.18208332" + style="stop-color:#7e7e7e;stop-opacity:0.58854169;" + id="stop9540" /> + <stop + offset="0.44109029" + style="stop-color:#ffffff;stop-opacity:0;" + id="stop8563" /> + <stop + offset="1" + style="stop-color:#ffffff;stop-opacity:0;" + id="stop8553" /> + </linearGradient> + <marker + style="overflow:visible" + id="Arrow2Send" + orient="auto" + refY="0" + inkscape:stockid="Arrow2Send" + refX="0"> + <path + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path5285" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z" + transform="matrix(-0.3,0,0,-0.3,0.69,0)" /> + </marker> + <linearGradient + id="linearGradient3548"> + <stop + offset="0" + style="stop-color:#ececec;stop-opacity:0.86666667;" + id="stop3550" /> + <stop + offset="0.64166665" + style="stop-color:#f2f2f2;stop-opacity:0.87058824;" + id="stop3556" /> + <stop + offset="1" + style="stop-color:#ffffff;stop-opacity:0.96078432;" + id="stop3552" /> + </linearGradient> + <linearGradient + id="linearGradient4901"> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="0" + id="stop4903" /> + <stop + id="stop4913" + offset="0.44999999" + style="stop-color:#ffffff;stop-opacity:1;" /> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="1" + id="stop4905" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4901" + id="linearGradient5166" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.3221205,0,0,0.9882635,-259.14325,-655.71027)" + x1="324.60001" + y1="871.85999" + x2="500.39999" + y2="871.85999" /> + <linearGradient + id="linearGrad_RoundHigh1"> + <stop + offset="0" + style="stop-color:#d9eadb;stop-opacity:1;" + id="stop5572" /> + <stop + offset="0.75833333" + style="stop-color:#bad8cd;stop-opacity:1;" + id="stop5578" /> + <stop + offset="1" + style="stop-color:#8cc0ac;stop-opacity:0.78431374;" + id="stop5574" /> + </linearGradient> + <filter + id="filter4817" + width="1.1881721" + y="-0.125448" + x="-0.094086036" + height="1.250896" + inkscape:collect="always"> + <feGaussianBlur + stdDeviation="0.78404989" + id="feGaussianBlur4819" + inkscape:collect="always" /> + </filter> + <marker + style="overflow:visible" + orient="auto" + id="ArrowHIV1end" + refY="0" + inkscape:stockid="ArrowHIV1end" + refX="0"> + <path + style="fill:#40c0ab;stroke:#01ffff;stroke-width:0.1;stroke-linecap:butt;stroke-miterlimit:6.5" + d="M -8,0 L -10,1.2 L -2,1.2 L 5,0 L -2,-1.2 L -10,-1.2 L -8,0 z" + sodipodi:nodetypes="ccccccc" + id="pathPfeil1" /> + </marker> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGrad_RoundHigh1" + id="radialGradient5444" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGrad_RoundHigh1" + id="radialGradient5492" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3548" + id="linearGradient6208" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.7952199,-681.9777,684.57714)" + x1="574.5" + y1="94.861481" + x2="605.48975" + y2="94.861481" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGrad_In1" + id="linearGradient6210" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.7952199,-681.9777,684.57714)" + x1="574.5" + y1="94.861481" + x2="605.48975" + y2="94.861481" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGrad_RoundHigh1" + id="radialGradient2784" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <filter + inkscape:collect="always" + id="filter3759" + x="-0.054940525" + width="1.109881" + y="-0.32228465" + height="1.6445693"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="2.3835636" + id="feGaussianBlur3761" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3595" + id="linearGradient3808" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.25,0,0,0.25,-73.19772,-29.055966)" + x1="1070.8202" + y1="1060.4146" + x2="1070.8202" + y2="1165.8572" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3595" + id="linearGradient3810" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.25,0,0,0.25,-73.19772,-29.055966)" + x1="1070.8202" + y1="936.4361" + x2="1070.8202" + y2="1031.1575" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3595" + id="linearGradient3812" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.5,0,0,0.5,-48.79848,-19.370644)" + x1="433.25751" + y1="381.43607" + x2="433.25751" + y2="434.15741" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3595" + id="linearGradient3891" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.25,0,0,0.25,-73.19772,-29.055966)" + x1="1070.8202" + y1="936.4361" + x2="1070.8202" + y2="1031.1575" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3595" + id="linearGradient3893" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.5,0,0,0.5,-48.79848,-19.370644)" + x1="433.25751" + y1="381.43607" + x2="433.25751" + y2="434.15741" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGrad_RoundHigh1" + id="radialGradient4030" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4144" + id="linearGradient4150" + x1="280" + y1="570" + x2="280" + y2="510" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4152" + id="linearGradient4158" + x1="260" + y1="570" + x2="260" + y2="510" + gradientUnits="userSpaceOnUse" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient4170" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" + gradientUnits="userSpaceOnUse" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient4176" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient4180" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient4184" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient4234" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient4248" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient4252" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient4254" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient4287" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient4289" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient4291" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient4293" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient4331" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient4333" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient4335" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient4337" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient4355" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient4357" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient4359" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient4361" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3548" + id="linearGradient4389" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.7952199,-681.9777,684.57714)" + x1="574.5" + y1="94.861481" + x2="605.48975" + y2="94.861481" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGrad_In1" + id="linearGradient4391" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.7952199,-681.9777,684.57714)" + x1="574.5" + y1="94.861481" + x2="605.48975" + y2="94.861481" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3548" + id="linearGradient4419" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.7952199,-681.9777,684.57714)" + x1="574.5" + y1="94.861481" + x2="605.48975" + y2="94.861481" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGrad_In1" + id="linearGradient4421" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.7952199,-681.9777,684.57714)" + x1="574.5" + y1="94.861481" + x2="605.48975" + y2="94.861481" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3548" + id="linearGradient4449" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.7952199,-681.9777,684.57714)" + x1="574.5" + y1="94.861481" + x2="605.48975" + y2="94.861481" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGrad_In1" + id="linearGradient4451" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.7952199,-681.9777,684.57714)" + x1="574.5" + y1="94.861481" + x2="605.48975" + y2="94.861481" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3548" + id="linearGradient4479" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.7952199,-681.9777,684.57714)" + x1="574.5" + y1="94.861481" + x2="605.48975" + y2="94.861481" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGrad_In1" + id="linearGradient4481" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.7952199,-681.9777,684.57714)" + x1="574.5" + y1="94.861481" + x2="605.48975" + y2="94.861481" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGrad_RoundHigh1" + id="radialGradient4505" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4517" + id="radialGradient4552" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4517" + id="radialGradient4578" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4517" + id="radialGradient4604" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGrad_RoundHigh1" + id="radialGradient4628" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGrad_RoundHigh1" + id="radialGradient4652" + gradientUnits="userSpaceOnUse" + cx="200" + cy="227.36218" + fx="200" + fy="227.36218" + r="10.15" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient4658" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient4726" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4164" + id="radialGradient5509" + gradientUnits="userSpaceOnUse" + cx="110" + cy="630" + fx="110" + fy="630" + r="10.666667" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4901" + id="linearGradient5513" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.3221205,0,0,0.6301239,-167.14325,-191.88831)" + x1="324.60001" + y1="871.85999" + x2="500.39999" + y2="871.85999" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5519" + id="linearGradient5517" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.0992633,0,0,0.2580309,170.2853,241.64101)" + x1="324.60001" + y1="871.85999" + x2="500.39999" + y2="871.85999" /> + </defs> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <cc:license + rdf:resource="http://creativecommons.org/licenses/by-nc-sa/3.0/" /> + <dc:title>Steps towards building a Segmentation</dc:title> + <dc:creator> + <cc:Agent> + <dc:title>Ichthyostega</dc:title> + </cc:Agent> + </dc:creator> + <dc:description>explanation of Builder structures: How the Segmentation of the Lumiera low-level-model (render nodes graph) is derived from the high-level-model</dc:description> + <dc:date>2010</dc:date> + </cc:Work> + <cc:License + rdf:about="http://creativecommons.org/licenses/by-nc-sa/3.0/"> + <cc:permits + rdf:resource="http://creativecommons.org/ns#Reproduction" /> + <cc:permits + rdf:resource="http://creativecommons.org/ns#Distribution" /> + <cc:requires + rdf:resource="http://creativecommons.org/ns#Notice" /> + <cc:requires + rdf:resource="http://creativecommons.org/ns#Attribution" /> + <cc:prohibits + rdf:resource="http://creativecommons.org/ns#CommercialUse" /> + <cc:permits + rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> + <cc:requires + rdf:resource="http://creativecommons.org/ns#ShareAlike" /> + </cc:License> + </rdf:RDF> + </metadata> + <g + id="g3941"> + <g + id="g3899"> + <path + sodipodi:type="arc" + style="fill:#ffffff;fill-opacity:0.61594202;fill-rule:evenodd;stroke:#6c6c6c;stroke-width:0.84475815;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path4791" + sodipodi:cx="144.95689" + sodipodi:cy="242.20396" + sodipodi:rx="16.970562" + sodipodi:ry="16.970562" + d="M 161.92746,242.20396 A 16.970562,16.970562 0 1 1 127.98633,242.20396 A 16.970562,16.970562 0 1 1 161.92746,242.20396 z" + transform="matrix(1.1837708,0,0,1.1837708,-121.4146,-209.14039)" /> + <path + transform="matrix(1.1837708,0,0,1.1837708,-121.4146,-179.05113)" + d="M 161.92746,242.20396 A 16.970562,16.970562 0 1 1 127.98633,242.20396 A 16.970562,16.970562 0 1 1 161.92746,242.20396 z" + sodipodi:ry="16.970562" + sodipodi:rx="16.970562" + sodipodi:cy="242.20396" + sodipodi:cx="144.95689" + id="path4795" + style="opacity:1;fill:#ffffff;fill-opacity:0.61594202;fill-rule:evenodd;stroke:#6c6c6c;stroke-width:0.84475815;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + </g> + <text + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + sodipodi:linespacing="100%" + id="text5680" + y="95.121399" + x="68.820358" + style="font-size:14px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + xml:space="preserve"><tspan + sodipodi:role="line" + x="68.820358" + y="95.121399" + style="font-size:8px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans" + id="tspan5682">Binding</tspan></text> + </g> + <g + id="g3821"> + <g + id="g3814"> + <rect + style="opacity:1;fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#979797;stroke-width:1.49999988;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect2786" + width="290.5452" + height="128.7419" + x="20" + y="141.25812" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <g + id="g3803" + transform="translate(-4.8125,-2.09375)"> + <rect + style="opacity:1;fill:url(#linearGradient3808);fill-opacity:1;fill-rule:evenodd;stroke:#979797;stroke-width:1.49999988;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect2788" + width="192.68118" + height="24.86068" + x="98.166733" + y="236.79765" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <rect + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + y="204.44751" + x="98.166733" + height="24.86068" + width="192.68118" + id="rect2790" + style="opacity:1;fill:url(#linearGradient3810);fill-opacity:1;fill-rule:evenodd;stroke:#979797;stroke-width:1.49999988;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + style="opacity:1;fill:url(#linearGradient3812);fill-opacity:1;fill-rule:evenodd;stroke:#979797;stroke-width:1.49999988;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 44.8125,172.09375 L 44.8125,196.96875 L 290.84375,196.96875 L 290.84375,172.09375 L 44.8125,172.09375 z" + id="rect2792" /> + </g> + </g> + <text + sodipodi:linespacing="100%" + id="text3864" + y="160" + x="30" + style="font-size:14px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + xml:space="preserve" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"><tspan + sodipodi:role="line" + id="tspan3845">Sequence-α</tspan></text> + </g> + <rect + ry="0.91569769" + rx="0.30000001" + y="102.64362" + x="170.54575" + height="212.47665" + width="231.37108" + id="use_fadeTracks" + style="fill:url(#linearGradient5166);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.74725276;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <g + inkscape:label="Drawing" + id="lay1" + inkscape:groupmode="layer" /> + <rect + style="opacity:1;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:none;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect_Canvas" + width="740" + height="460" + x="40" + y="70" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <g + id="g3797" + transform="translate(0.5,-1.4)"> + <text + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + xml:space="preserve" + style="font-size:14px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + x="28" + y="49" + id="text3868" + sodipodi:linespacing="100%"><tspan + y="49" + x="28" + id="tspan3870" + sodipodi:role="line">Timeline-1</tspan></text> + <path + sodipodi:nodetypes="ccc" + id="rect3872" + d="M 19.5,56.5 L 19.5,31.63932 L 184.5,31.5" + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#6c6c6c;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + d="M 89.5,31.4 L 89.5,34.4 M 84.5,31.4 L 84.5,34.4 M 79.5,31.5 L 79.5,34.5 M 74.5,31.5 L 74.5,34.5 M 94.5,31.49167 L 94.5,35.59167 M 64.5,31.4 L 64.5,34.4 M 59.5,31.4 L 59.5,34.4 M 54.5,31.5 L 54.5,34.5 M 49.5,31.5 L 49.5,34.5 M 69.5,31.49167 L 69.5,35.59167 M 39.5,31.4 L 39.5,34.4 M 34.5,31.4 L 34.5,34.4 M 29.5,31.5 L 29.5,34.5 M 24.5,31.5 L 24.5,34.5 M 44.5,31.49167 L 44.5,35.59167 M 114.5,31.4 L 114.5,34.4 M 109.5,31.4 L 109.5,34.4 M 104.5,31.5 L 104.5,34.5 M 99.5,31.5 L 99.5,34.5 M 119.5,31.49167 L 119.5,35.59167 M 139.5,31.4 L 139.5,34.4 M 134.5,31.4 L 134.5,34.4 M 129.5,31.5 L 129.5,34.5 M 124.5,31.5 L 124.5,34.5 M 144.5,31.49167 L 144.5,35.59167 M 164.5,31.4 L 164.5,34.4 M 159.5,31.4 L 159.5,34.4 M 154.5,31.5 L 154.5,34.5 M 149.5,31.5 L 149.5,34.5 M 169.5,31.49167 L 169.5,35.59167" + style="fill:#6c6c6c;fill-opacity:1;fill-rule:evenodd;stroke:#6c6c6c;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path4669" /> + <text + sodipodi:linespacing="100%" + id="text4704" + y="466.19299" + x="28" + style="font-size:14px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + xml:space="preserve" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"><tspan + sodipodi:role="line" + id="tspan4706" + x="28" + y="466.19299">Fixture</tspan></text> + </g> + <g + id="g5494" + transform="translate(-497.30212,-202.02439)"> + <g + transform="translate(347.11835,17.967953)" + id="g5496" + style="display:inline"> + <g + id="g5498"> + <g + id="g5500"> + <use + height="1052.3622" + x="0" + xlink:href="#g_object_pin" + y="0" + transform="translate(-430,225)" + width="744.09448" + id="use5502" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,15)" + width="744.09448" + id="use5504" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,30)" + width="744.09448" + id="use5506" /> + </g> + </g> + <g + id="g5508"> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path5510" + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" /> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="translate(0,25)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path5512" + style="opacity:1;fill:url(#radialGradient2784);fill-opacity:1;fill-rule:evenodd;stroke:#003c23;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + id="path5514" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + style="fill:#054b3f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + </g> + </g> + </g> + <text + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + sodipodi:linespacing="100%" + id="text6325" + y="125.07683" + x="207.82036" + style="font-size:14px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + xml:space="preserve"><tspan + sodipodi:role="line" + x="207.82036" + y="125.07683" + style="font-size:8px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans" + id="tspan6327">global Pipes</tspan></text> + <use + id="use5871" + width="744.09448" + y="0" + xlink:href="#path4523Sha" + x="0" + height="1052.36" + transform="translate(-407.1889,-251.23988)" /> + <use + id="use5873" + width="744.09448" + y="0" + xlink:href="#rect4525Bod" + x="0" + height="1052.36" + transform="translate(-407.1889,-251.23988)" /> + <use + id="use5893" + width="744.09448" + y="0" + xlink:href="#rect4589Top" + x="0" + height="1052.36" + transform="translate(-407.1889,-251.23988)" /> + <use + x="0" + y="0" + xlink:href="#g_port" + id="use5895" + width="744.09448" + height="1052.36" + transform="translate(-22.188904,83.760119)" /> + <g + transform="matrix(0.8,0,0,0.8,204.85045,-523.02107)" + id="g6182"> + <path + style="fill:#797e87;fill-opacity:0.2014652;fill-rule:evenodd;stroke:none;stroke-width:1.00068593;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4688);enable-background:accumulate" + transform="matrix(1,0,-2.4015919e-3,0.7941301,-686.92104,682.58909)" + sodipodi:nodetypes="cccsccc" + id="path6184" + d="M 599.42598,26.398361 C 607.73314,26.398361 618.45986,33.956938 618.45986,42.42032 L 614.42086,156.31908 C 614.42086,164.78247 607.73314,171.59595 599.42598,171.59595 C 591.11881,171.59595 584.43109,164.78247 584.43109,156.31908 L 584.43109,41.675225 C 584.43109,33.211843 591.11881,26.398361 599.42598,26.398361 z" /> + <rect + style="fill:url(#linearGradient6208);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect6186" + width="29.989771" + rx="19.1481" + ry="19.1481" + y="702.35999" + x="-106.9777" + height="115.30578" /> + <g + id="g6188" + transform="translate(-191.97771,584.46451)"> + <g + id="g6190"> + <path + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Send);stroke-opacity:1" + d="M 100,213.75916 L 100,133.37478 L 100,133.37478" + id="path6192" + sodipodi:nodetypes="ccc" /> + <g + transform="translate(-490,95.001405)" + id="g6194"> + <path + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000000;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.71062275;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path6196" + sodipodi:cx="73.539108" + sodipodi:cy="99.920204" + sodipodi:type="arc" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + sodipodi:rx="2.8284271" + sodipodi:ry="2.8284271" /> + <text + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.71062275;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + id="text6198" + sodipodi:linespacing="100%" + transform="scale(0.9716714,1.0291545)" + y="34.371136" + x="604.14581" + xml:space="preserve"><tspan + sodipodi:role="line" + style="stroke-width:0.49999997" + id="tspan6200" + y="34.371136" + x="604.14581">x</tspan></text> + </g> + </g> + </g> + <rect + style="fill:url(#linearGradient6210);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.25000012;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect6202" + width="29.989771" + rx="19.1481" + ry="19.1481" + y="702.35999" + x="-106.9777" + height="115.30578" /> + <g + id="g6204" + transform="translate(-191.9777,555)"> + <path + d="M 106.65685,252.36359 C 106.65685,256.03818 103.67458,259.02044 99.999996,259.02044 C 96.325414,259.02044 93.343142,256.03818 93.343142,252.36359 C 93.343142,248.689 96.325414,245.70673 99.999996,245.70673 C 103.67458,245.70673 106.65685,248.689 106.65685,252.36359 z M 101.40685,252.36359 C 101.40685,253.14018 100.77658,253.77044 99.999995,253.77044 C 99.223412,253.77044 98.593141,253.14018 98.593141,252.36359 C 98.593141,251.58701 99.223412,250.95674 99.999995,250.95674 C 100.77658,250.95674 101.40685,251.58701 101.40685,252.36359 z" + id="path6206" + style="opacity:1;fill:#ffffff;fill-opacity:0.58974364;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.71062275;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + </g> + </g> + <g + transform="translate(-80,-94)" + id="g3778"> + <g + id="g3763"> + <rect + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + y="302.5" + x="183" + height="17.75" + width="104.12264" + id="rect3637" + style="opacity:0.84827582;fill:#626262;fill-opacity:0.52536232;fill-rule:evenodd;stroke:none;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter3759);enable-background:accumulate" + ry="2.75" + rx="2.25" /> + <rect + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect2300" + width="104.12264" + height="17.75" + x="180" + y="300" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + </g> + <text + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + sodipodi:linespacing="100%" + id="text2306" + y="314" + x="198" + style="font-size:14px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + xml:space="preserve"><tspan + sodipodi:role="line" + x="198" + y="314" + style="font-size:8px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans" + id="tspan3774">Clip-A</tspan></text> + </g> + <g + id="g3785" + transform="translate(0,-61.75)"> + <g + id="g3787"> + <rect + rx="2.25" + ry="2.75" + style="opacity:0.84827582;fill:#626262;fill-opacity:0.52536232;fill-rule:evenodd;stroke:none;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter3759);enable-background:accumulate" + id="rect3789" + width="104.12264" + height="17.75" + x="183" + y="302.5" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <rect + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + y="300" + x="180" + height="17.75" + width="104.12264" + id="rect3791" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + </g> + <text + xml:space="preserve" + style="font-size:14px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + x="198" + y="314" + id="text3793" + sodipodi:linespacing="100%" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"><tspan + id="tspan3795" + style="font-size:8px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans" + y="314" + x="198" + sodipodi:role="line">Meta-Clip</tspan></text> + </g> + <g + id="g3847" + transform="translate(79.454803,168.74188)"> + <g + id="g3849"> + <rect + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + y="141.25812" + x="20" + height="99.665138" + width="290.5452" + id="rect3851" + style="opacity:1;fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#979797;stroke-width:1.49999988;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <g + transform="translate(-4.8125,-2.09375)" + id="g3853"> + <rect + style="opacity:1;fill:url(#linearGradient3891);fill-opacity:1;fill-rule:evenodd;stroke:#979797;stroke-width:1.49999988;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect3857" + width="192.68118" + height="24.86068" + x="98.166733" + y="204.44751" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + id="path3859" + d="M 44.8125,172.09375 L 44.8125,196.96875 L 290.84375,196.96875 L 290.84375,172.09375 L 44.8125,172.09375 z" + style="opacity:1;fill:url(#linearGradient3893);fill-opacity:1;fill-rule:evenodd;stroke:#979797;stroke-width:1.49999988;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + </g> + </g> + <text + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + xml:space="preserve" + style="font-size:14px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + x="30" + y="160" + id="text3861" + sodipodi:linespacing="100%"><tspan + sodipodi:role="line" + id="tspan3897">Sequence-β</tspan></text> + <text + sodipodi:linespacing="100%" + id="text4708" + y="417.38687" + x="30" + style="font-size:14px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + xml:space="preserve" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"><tspan + id="tspan4710" + sodipodi:role="line" + x="30" + y="417.38687">Segmentation</tspan></text> + </g> + <g + id="g3865" + transform="translate(10,42.25)"> + <g + id="g3867"> + <rect + rx="2.25" + ry="2.75" + style="opacity:0.84827582;fill:#626262;fill-opacity:0.52536232;fill-rule:evenodd;stroke:none;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter3759);enable-background:accumulate" + id="rect3869" + width="104.12264" + height="17.75" + x="183" + y="302.5" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <rect + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + y="300" + x="180" + height="17.75" + width="104.12264" + id="rect3871" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + </g> + <text + xml:space="preserve" + style="font-size:14px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + x="198" + y="314" + id="text3873" + sodipodi:linespacing="100%" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"><tspan + id="tspan3875" + style="font-size:8px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans" + y="314" + x="198" + sodipodi:role="line">Clip-B</tspan></text> + </g> + <g + id="g4006" + transform="translate(54.63038,-0.19167)"> + <g + transform="translate(315.36962,0)" + id="g3960"> + <g + id="g3962"> + <path + sodipodi:type="arc" + style="fill:#ffffff;fill-opacity:0.61594202;fill-rule:evenodd;stroke:#6c6c6c;stroke-width:0.84475815;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path3964" + sodipodi:cx="144.95689" + sodipodi:cy="242.20396" + sodipodi:rx="16.970562" + sodipodi:ry="16.970562" + d="M 161.92746,242.20396 A 16.970562,16.970562 0 1 1 127.98633,242.20396 A 16.970562,16.970562 0 1 1 161.92746,242.20396 z" + transform="matrix(1.1837708,0,0,1.1837708,-121.4146,-209.14039)" /> + <path + transform="matrix(1.1837708,0,0,1.1837708,-121.4146,-179.05113)" + d="M 161.92746,242.20396 A 16.970562,16.970562 0 1 1 127.98633,242.20396 A 16.970562,16.970562 0 1 1 161.92746,242.20396 z" + sodipodi:ry="16.970562" + sodipodi:rx="16.970562" + sodipodi:cy="242.20396" + sodipodi:cx="144.95689" + id="path3966" + style="opacity:1;fill:#ffffff;fill-opacity:0.61594202;fill-rule:evenodd;stroke:#6c6c6c;stroke-width:0.84475815;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + </g> + <text + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + sodipodi:linespacing="100%" + id="text3968" + y="95.121399" + x="68.820358" + style="font-size:14px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + xml:space="preserve"><tspan + sodipodi:role="line" + x="68.820358" + y="95.121399" + style="font-size:8px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans" + id="tspan3970">Binding</tspan></text> + </g> + <g + id="g3972" + transform="translate(315.86962,-1.4)"> + <text + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + xml:space="preserve" + style="font-size:14px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + x="28" + y="49" + id="text3974" + sodipodi:linespacing="100%"><tspan + y="49" + x="28" + id="tspan3976" + sodipodi:role="line">Timeline-2</tspan></text> + <path + sodipodi:nodetypes="ccc" + id="path3978" + d="M 19.5,56.5 L 19.5,31.63932 L 184.5,31.5" + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#6c6c6c;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + d="M 89.5,31.4 L 89.5,34.4 M 84.5,31.4 L 84.5,34.4 M 79.5,31.5 L 79.5,34.5 M 74.5,31.5 L 74.5,34.5 M 94.5,31.49167 L 94.5,35.59167 M 64.5,31.4 L 64.5,34.4 M 59.5,31.4 L 59.5,34.4 M 54.5,31.5 L 54.5,34.5 M 49.5,31.5 L 49.5,34.5 M 69.5,31.49167 L 69.5,35.59167 M 39.5,31.4 L 39.5,34.4 M 34.5,31.4 L 34.5,34.4 M 29.5,31.5 L 29.5,34.5 M 24.5,31.5 L 24.5,34.5 M 44.5,31.49167 L 44.5,35.59167 M 114.5,31.4 L 114.5,34.4 M 109.5,31.4 L 109.5,34.4 M 104.5,31.5 L 104.5,34.5 M 99.5,31.5 L 99.5,34.5 M 119.5,31.49167 L 119.5,35.59167 M 139.5,31.4 L 139.5,34.4 M 134.5,31.4 L 134.5,34.4 M 129.5,31.5 L 129.5,34.5 M 124.5,31.5 L 124.5,34.5 M 144.5,31.49167 L 144.5,35.59167 M 164.5,31.4 L 164.5,34.4 M 159.5,31.4 L 159.5,34.4 M 154.5,31.5 L 154.5,34.5 M 149.5,31.5 L 149.5,34.5 M 169.5,31.49167 L 169.5,35.59167" + style="fill:#6c6c6c;fill-opacity:1;fill-rule:evenodd;stroke:#6c6c6c;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path3980" /> + </g> + <g + id="g3982" + transform="translate(-181.9325,-202.02439)"> + <g + transform="translate(347.11835,17.967953)" + id="g3984" + style="display:inline"> + <g + id="g3986"> + <g + id="g3988"> + <use + height="1052.3622" + x="0" + xlink:href="#g_object_pin" + y="0" + transform="translate(-430,225)" + width="744.09448" + id="use3990" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,15)" + width="744.09448" + id="use3992" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,30)" + width="744.09448" + id="use3994" /> + </g> + </g> + <g + id="g3996"> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path3998" + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" /> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="translate(0,25)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path4000" + style="opacity:1;fill:url(#radialGradient4030);fill-opacity:1;fill-rule:evenodd;stroke:#003c23;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + id="path4002" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + style="fill:#054b3f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + </g> + </g> + </g> + </g> + <g + id="g4048"> + <path + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#6c6c6c;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 20,470.23932 L 340,470" + id="path4038" + sodipodi:nodetypes="cc" /> + <path + id="path4040" + style="fill:#6c6c6c;fill-opacity:1;fill-rule:evenodd;stroke:#6c6c6c;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 90,470 L 90,473 M 85,470 L 85,473 M 80,470.1 L 80,473.1 M 75,470.1 L 75,473.1 M 95,470.09167 L 95,474.19167 M 65,470 L 65,473 M 60,470 L 60,473 M 55,470.1 L 55,473.1 M 50,470.1 L 50,473.1 M 70,470.09167 L 70,474.19167 M 40,470 L 40,473 M 35,470 L 35,473 M 30,470.1 L 30,473.1 M 25,470.1 L 25,473.1 M 45,470.09167 L 45,474.19167 M 115,470 L 115,473 M 110,470 L 110,473 M 105,470.1 L 105,473.1 M 100,470.1 L 100,473.1 M 120,470.09167 L 120,474.19167 M 140,470 L 140,473 M 135,470 L 135,473 M 130,470.1 L 130,473.1 M 125,470.1 L 125,473.1 M 145,470.09167 L 145,474.19167 M 165,470 L 165,473 M 160,470 L 160,473 M 155,470.1 L 155,473.1 M 150,470.1 L 150,473.1 M 170,470.09167 L 170,474.19167" /> + <path + d="M 240,470 L 240,473 M 235,470 L 235,473 M 230,470.1 L 230,473.1 M 225,470.1 L 225,473.1 M 245,470.09167 L 245,474.19167 M 215,470 L 215,473 M 210,470 L 210,473 M 205,470.1 L 205,473.1 M 200,470.1 L 200,473.1 M 220,470.09167 L 220,474.19167 M 190,470 L 190,473 M 185,470 L 185,473 M 180,470.1 L 180,473.1 M 175,470.1 L 175,473.1 M 195,470.09167 L 195,474.19167 M 265,470 L 265,473 M 260,470 L 260,473 M 255,470.1 L 255,473.1 M 250,470.1 L 250,473.1 M 270,470.09167 L 270,474.19167 M 290,470 L 290,473 M 285,470 L 285,473 M 280,470.1 L 280,473.1 M 275,470.1 L 275,473.1 M 295,470.09167 L 295,474.19167 M 315,470 L 315,473 M 310,470 L 310,473 M 305,470.1 L 305,473.1 M 300,470.1 L 300,473.1 M 320,470.09167 L 320,474.19167" + style="fill:#6c6c6c;fill-opacity:1;fill-rule:evenodd;stroke:#6c6c6c;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path4046" /> + </g> + <g + id="g4082"> + <g + transform="matrix(1,0,0,0.5633803,-80,310.76761)" + id="g4055"> + <rect + rx="2.25" + ry="4.8812499" + style="opacity:0.84827582;fill:#626262;fill-opacity:0.52536232;fill-rule:evenodd;stroke:none;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter3759);enable-background:accumulate" + id="rect4057" + width="104.12264" + height="17.75" + x="183" + y="302.5" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <rect + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + y="300" + x="180" + height="17.75" + width="104.12264" + id="rect4059" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33229113;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + </g> + <text + xml:space="preserve" + style="font-size:14px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + x="118" + y="487.5" + id="text4061" + sodipodi:linespacing="100%" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"><tspan + id="tspan4063" + style="font-size:8px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans" + y="487.5" + x="118" + sodipodi:role="line">Clip-A</tspan></text> + </g> + <g + id="g4094" + transform="translate(0,-9.7817)"> + <g + transform="matrix(1,0,0,0.5633803,10,340.76761)" + id="g4067"> + <rect + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + y="302.5" + x="183" + height="17.75" + width="104.12264" + id="rect4069" + style="opacity:0.84827582;fill:#626262;fill-opacity:0.52536232;fill-rule:evenodd;stroke:none;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter3759);enable-background:accumulate" + ry="4.8812499" + rx="2.25" /> + <rect + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33229113;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect4071" + width="104.12264" + height="17.75" + x="180" + y="300" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + </g> + <text + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + sodipodi:linespacing="100%" + id="text4073" + y="517.5" + x="208" + style="font-size:14px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + xml:space="preserve"><tspan + sodipodi:role="line" + x="208" + y="517.5" + style="font-size:8px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans" + id="tspan4075">Clip-B</tspan></text> + </g> + <g + id="g4101" + transform="translate(364.98353,0)"> + <path + sodipodi:nodetypes="cc" + id="path4103" + d="M 20,470.23932 L 340,470" + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#6c6c6c;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + d="M 90,470 L 90,473 M 85,470 L 85,473 M 80,470.1 L 80,473.1 M 75,470.1 L 75,473.1 M 95,470.09167 L 95,474.19167 M 65,470 L 65,473 M 60,470 L 60,473 M 55,470.1 L 55,473.1 M 50,470.1 L 50,473.1 M 70,470.09167 L 70,474.19167 M 40,470 L 40,473 M 35,470 L 35,473 M 30,470.1 L 30,473.1 M 25,470.1 L 25,473.1 M 45,470.09167 L 45,474.19167 M 115,470 L 115,473 M 110,470 L 110,473 M 105,470.1 L 105,473.1 M 100,470.1 L 100,473.1 M 120,470.09167 L 120,474.19167 M 140,470 L 140,473 M 135,470 L 135,473 M 130,470.1 L 130,473.1 M 125,470.1 L 125,473.1 M 145,470.09167 L 145,474.19167 M 165,470 L 165,473 M 160,470 L 160,473 M 155,470.1 L 155,473.1 M 150,470.1 L 150,473.1 M 170,470.09167 L 170,474.19167" + style="fill:#6c6c6c;fill-opacity:1;fill-rule:evenodd;stroke:#6c6c6c;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path4105" /> + <path + id="path4107" + style="fill:#6c6c6c;fill-opacity:1;fill-rule:evenodd;stroke:#6c6c6c;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 240,470 L 240,473 M 235,470 L 235,473 M 230,470.1 L 230,473.1 M 225,470.1 L 225,473.1 M 245,470.09167 L 245,474.19167 M 215,470 L 215,473 M 210,470 L 210,473 M 205,470.1 L 205,473.1 M 200,470.1 L 200,473.1 M 220,470.09167 L 220,474.19167 M 190,470 L 190,473 M 185,470 L 185,473 M 180,470.1 L 180,473.1 M 175,470.1 L 175,473.1 M 195,470.09167 L 195,474.19167 M 265,470 L 265,473 M 260,470 L 260,473 M 255,470.1 L 255,473.1 M 250,470.1 L 250,473.1 M 270,470.09167 L 270,474.19167 M 290,470 L 290,473 M 285,470 L 285,473 M 280,470.1 L 280,473.1 M 275,470.1 L 275,473.1 M 295,470.09167 L 295,474.19167 M 315,470 L 315,473 M 310,470 L 310,473 M 305,470.1 L 305,473.1 M 300,470.1 L 300,473.1 M 320,470.09167 L 320,474.19167" /> + </g> + <g + transform="translate(249.87735,-9.7817003)" + id="g4109"> + <g + id="g4111" + transform="matrix(1,0,0,0.5633803,10,340.76761)"> + <rect + rx="2.25" + ry="4.8812499" + style="opacity:0.84827582;fill:#626262;fill-opacity:0.52536232;fill-rule:evenodd;stroke:none;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter3759);enable-background:accumulate" + id="rect4113" + width="104.12264" + height="17.75" + x="183" + y="302.5" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <rect + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + y="300" + x="180" + height="17.75" + width="104.12264" + id="rect4115" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33229113;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + </g> + <text + xml:space="preserve" + style="font-size:14px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + x="208" + y="517.5" + id="text4117" + sodipodi:linespacing="100%" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"><tspan + id="tspan4119" + style="font-size:8px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans" + y="517.5" + x="208" + sodipodi:role="line">Clip-B</tspan></text> + </g> + <rect + style="opacity:1;fill:#5568d7;fill-opacity:0.18613138;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect4121" + width="69.890129" + height="170.01205" + x="99.985832" + y="590.10522" /> + <rect + y="590.10522" + x="180.10986" + height="170.01205" + width="69.890129" + id="rect4125" + style="opacity:1;fill:#5568d7;fill-opacity:0.18613138;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <rect + style="opacity:1;fill:#5568d7;fill-opacity:0.18613138;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect4127" + width="69.890129" + height="170.01205" + x="260.10986" + y="590.10522" /> + <rect + y="590.10522" + x="440.10986" + height="170.01205" + width="69.890129" + id="rect4129" + style="opacity:1;fill:#5568d7;fill-opacity:0.18613138;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + id="rect4131" + style="fill:url(#linearGradient4158);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4150);stroke-width:0.99999994000000003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 100,510 L 190,510 L 169.7661,570.01205 L 99.875969,570.01205 L 100,510 zM 190,510 L 204,510 L 249.89013,570.01205 L 180,570.01205 L 190,510 zM 204,510 L 294,510 L 329.89013,570.01205 L 260,570.01205 L 204,510 zM 440,510 L 544,510 L 509.89013,570.01205 L 440,570.01205 L 440,510 z" /> + <g + id="g4196"> + <path + sodipodi:nodetypes="cc" + inkscape:connection-end="#path4162" + inkscape:connection-start="#path4174" + inkscape:connector-type="polyline" + id="path4186" + d="M 120,670 L 112.13333,638" + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + sodipodi:nodetypes="cc" + inkscape:connector-type="polyline" + id="path4190" + d="M 120,670 L 150,700" + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" /> + <path + sodipodi:nodetypes="cc" + inkscape:connection-end="#path4182" + inkscape:connection-start="#path4178" + inkscape:connector-type="polyline" + id="path4192" + d="M 150,700 L 120,730" + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + sodipodi:nodetypes="cc" + inkscape:connection-end="#path4182" + inkscape:connection-start="#path4174" + inkscape:connector-type="polyline" + id="path4194" + d="M 120,670 L 120,719.5" + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + transform="matrix(0.75,0,0,0.75,27.5,157.5)" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="630" + sodipodi:cx="110" + id="path4162" + style="opacity:1;fill:url(#radialGradient4170);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337000000007;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="opacity:1;fill:url(#radialGradient4176);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path4174" + sodipodi:cx="110" + sodipodi:cy="630" + sodipodi:rx="10" + sodipodi:ry="10" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + transform="matrix(0.75,0,0,0.75,37.5,195)" /> + <path + transform="matrix(0.75,0,0,0.75,67.5,225)" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="630" + sodipodi:cx="110" + id="path4178" + style="opacity:1;fill:url(#radialGradient4180);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="opacity:1;fill:url(#radialGradient4184);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path4182" + sodipodi:cx="110" + sodipodi:cy="630" + sodipodi:rx="10" + sodipodi:ry="10" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + transform="matrix(0.75,0,0,0.75,37.5,255)" /> + </g> + <path + sodipodi:nodetypes="cc" + inkscape:connector-type="polyline" + id="path4216" + d="M 117.86667,659.5 L 112.13333,638" + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + inkscape:connection-end="#path4162" + inkscape:connection-start="#path4174" /> + <path + sodipodi:nodetypes="cc" + inkscape:connection-end="#path4182" + inkscape:connection-start="#path4174" + inkscape:connector-type="polyline" + id="path4222" + d="M 120,675.5 L 120,719.5" + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <g + id="g4262"> + <path + sodipodi:type="arc" + style="fill:url(#radialGradient4252);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path4224" + sodipodi:cx="110" + sodipodi:cy="630" + sodipodi:rx="10" + sodipodi:ry="10" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + transform="matrix(-0.75,0,0,0.75,382.5,155)" /> + <path + transform="matrix(-0.75,0,0,0.75,382.5,195)" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="630" + sodipodi:cx="110" + id="path4226" + style="fill:url(#radialGradient4234);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="fill:url(#radialGradient4248);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path4228" + sodipodi:cx="110" + sodipodi:cy="630" + sodipodi:rx="10" + sodipodi:ry="10" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + transform="matrix(-0.75,0,0,0.75,362.5,195)" /> + <path + transform="matrix(-0.75,0,0,0.75,392.5,260)" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="630" + sodipodi:cx="110" + id="path4230" + style="fill:url(#radialGradient4254);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <path + inkscape:connection-end="#path4226" + inkscape:connection-start="#path4230" + inkscape:connector-type="polyline" + id="path4256" + d="M 308.76923,724.5 L 301.23077,675.5" + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + inkscape:connection-end="#path4224" + inkscape:connection-start="#path4226" + inkscape:connector-type="polyline" + id="path4258" + d="M 300,659.5 L 300,635.5" + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + inkscape:connection-end="#path4224" + inkscape:connection-start="#path4228" + inkscape:connector-type="polyline" + id="path4260" + d="M 284,659.5 L 296,635.5" + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + <path + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" + d="M 220,600 L 199.875,620.125" + id="path4660" + inkscape:connector-type="polyline" /> + <path + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" + d="M 230,628 L 220,600" + id="path4662" + inkscape:connector-type="polyline" + sodipodi:nodetypes="cc" /> + <g + id="g4271" + transform="translate(-70,0)"> + <path + transform="matrix(-0.75,0,0,0.75,382.5,155)" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="630" + sodipodi:cx="110" + id="path4273" + style="fill:url(#radialGradient4287);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="fill:url(#radialGradient4289);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path4275" + sodipodi:cx="110" + sodipodi:cy="630" + sodipodi:rx="10" + sodipodi:ry="10" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + transform="matrix(-0.75,0,0,0.75,382.5,195)" /> + <path + transform="matrix(-0.75,0,0,0.75,362.5,195)" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="630" + sodipodi:cx="110" + id="path4277" + style="fill:url(#radialGradient4291);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="fill:url(#radialGradient4293);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path4279" + sodipodi:cx="110" + sodipodi:cy="630" + sodipodi:rx="10" + sodipodi:ry="10" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + transform="matrix(-0.75,0,0,0.75,392.5,260)" /> + <path + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 308.76923,724.5 L 301.23077,675.5" + id="path4281" + inkscape:connector-type="polyline" + inkscape:connection-start="#path4230" + inkscape:connection-end="#path4226" /> + <path + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 300,659.5 L 300,635.5" + id="path4283" + inkscape:connector-type="polyline" + inkscape:connection-start="#path4226" + inkscape:connection-end="#path4224" /> + <path + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 284,659.5 L 296,635.5" + id="path4285" + inkscape:connector-type="polyline" + inkscape:connection-start="#path4228" + inkscape:connection-end="#path4224" /> + <path + sodipodi:type="arc" + style="fill:url(#radialGradient4658);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path4656" + sodipodi:cx="110" + sodipodi:cy="630" + sodipodi:rx="10" + sodipodi:ry="10" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + transform="matrix(-0.75,0,0,0.75,372.5,128)" /> + </g> + <g + id="g4313" + transform="translate(70,0)"> + <path + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 120,670 L 130,620" + id="path4315" + inkscape:connector-type="polyline" + inkscape:connection-start="#path4174" + inkscape:connection-end="#path4162" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" + d="M 120,670 L 150,700" + id="path4317" + inkscape:connector-type="polyline" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 150,700 L 120,730" + id="path4319" + inkscape:connector-type="polyline" + inkscape:connection-start="#path4178" + inkscape:connection-end="#path4182" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 120,670 L 120,719.5" + id="path4321" + inkscape:connector-type="polyline" + inkscape:connection-start="#path4174" + inkscape:connection-end="#path4182" + sodipodi:nodetypes="cc" /> + <path + transform="matrix(0.75,0,0,0.75,37.5,195)" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="630" + sodipodi:cx="110" + id="path4325" + style="opacity:1;fill:url(#radialGradient4333);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="opacity:1;fill:url(#radialGradient4335);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path4327" + sodipodi:cx="110" + sodipodi:cy="630" + sodipodi:rx="10" + sodipodi:ry="10" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + transform="matrix(0.75,0,0,0.75,67.5,225)" /> + <path + transform="matrix(0.75,0,0,0.75,37.5,255)" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="630" + sodipodi:cx="110" + id="path4329" + style="opacity:1;fill:url(#radialGradient4337);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="opacity:1;fill:url(#radialGradient4331);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path4323" + sodipodi:cx="110" + sodipodi:cy="630" + sodipodi:rx="10" + sodipodi:ry="10" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + transform="matrix(0.75,0,0,0.75,47.5,148)" /> + </g> + <g + id="g4339" + transform="translate(190,0)"> + <path + transform="matrix(-0.75,0,0,0.75,382.5,155)" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="630" + sodipodi:cx="110" + id="path4341" + style="fill:url(#radialGradient4355);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="fill:url(#radialGradient4357);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path4343" + sodipodi:cx="110" + sodipodi:cy="630" + sodipodi:rx="10" + sodipodi:ry="10" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + transform="matrix(-0.75,0,0,0.75,382.5,195)" /> + <path + transform="matrix(-0.75,0,0,0.75,362.5,195)" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="630" + sodipodi:cx="110" + id="path4345" + style="fill:url(#radialGradient4359);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="fill:url(#radialGradient4361);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path4347" + sodipodi:cx="110" + sodipodi:cy="630" + sodipodi:rx="10" + sodipodi:ry="10" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + transform="matrix(-0.75,0,0,0.75,392.5,260)" /> + <path + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 308.76923,724.5 L 301.23077,675.5" + id="path4349" + inkscape:connector-type="polyline" + inkscape:connection-start="#path4230" + inkscape:connection-end="#path4226" /> + <path + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 300,659.5 L 300,635.5" + id="path4351" + inkscape:connector-type="polyline" + inkscape:connection-start="#path4226" + inkscape:connection-end="#path4224" /> + <path + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 284,659.5 L 296,635.5" + id="path4353" + inkscape:connector-type="polyline" + inkscape:connection-start="#path4228" + inkscape:connection-end="#path4224" /> + </g> + <g + id="g4363" + transform="matrix(0.8,0,0,0.8,235.85045,-523.02107)"> + <path + d="M 599.42598,26.398361 C 607.73314,26.398361 618.45986,33.956938 618.45986,42.42032 L 614.42086,156.31908 C 614.42086,164.78247 607.73314,171.59595 599.42598,171.59595 C 591.11881,171.59595 584.43109,164.78247 584.43109,156.31908 L 584.43109,41.675225 C 584.43109,33.211843 591.11881,26.398361 599.42598,26.398361 z" + id="path4365" + sodipodi:nodetypes="cccsccc" + transform="matrix(1,0,-2.4015919e-3,0.7941301,-686.92104,682.58909)" + style="fill:#797e87;fill-opacity:0.2014652;fill-rule:evenodd;stroke:none;stroke-width:1.00068593;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4688);enable-background:accumulate" /> + <rect + height="115.30578" + x="-106.9777" + y="702.35999" + ry="19.1481" + rx="19.1481" + width="29.989771" + id="rect4367" + style="fill:url(#linearGradient4389);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <g + transform="translate(-191.97771,584.46451)" + id="g4369"> + <g + id="g4371"> + <path + sodipodi:nodetypes="ccc" + id="path4373" + d="M 100,213.75916 L 100,133.37478 L 100,133.37478" + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Send);stroke-opacity:1" /> + <g + id="g4375" + transform="translate(-490,95.001405)"> + <path + sodipodi:ry="2.8284271" + sodipodi:rx="2.8284271" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + sodipodi:type="arc" + sodipodi:cy="99.920204" + sodipodi:cx="73.539108" + id="path4377" + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000000;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.71062275;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <text + xml:space="preserve" + x="604.14581" + y="34.371136" + transform="scale(0.9716714,1.0291545)" + sodipodi:linespacing="100%" + id="text4379" + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.71062275;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"><tspan + x="604.14581" + y="34.371136" + id="tspan4381" + style="stroke-width:0.49999997" + sodipodi:role="line">x</tspan></text> + </g> + </g> + </g> + <rect + height="115.30578" + x="-106.9777" + y="702.35999" + ry="19.1481" + rx="19.1481" + width="29.989771" + id="rect4383" + style="fill:url(#linearGradient4391);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.25000012;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <g + transform="translate(-191.9777,555)" + id="g4385"> + <path + style="opacity:1;fill:#ffffff;fill-opacity:0.58974364;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.71062275;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path4387" + d="M 106.65685,252.36359 C 106.65685,256.03818 103.67458,259.02044 99.999996,259.02044 C 96.325414,259.02044 93.343142,256.03818 93.343142,252.36359 C 93.343142,248.689 96.325414,245.70673 99.999996,245.70673 C 103.67458,245.70673 106.65685,248.689 106.65685,252.36359 z M 101.40685,252.36359 C 101.40685,253.14018 100.77658,253.77044 99.999995,253.77044 C 99.223412,253.77044 98.593141,253.14018 98.593141,252.36359 C 98.593141,251.58701 99.223412,250.95674 99.999995,250.95674 C 100.77658,250.95674 101.40685,251.58701 101.40685,252.36359 z" /> + </g> + </g> + <g + transform="matrix(0.8,0,0,0.8,265.85045,-523.02107)" + id="g4393"> + <path + style="fill:#797e87;fill-opacity:0.2014652;fill-rule:evenodd;stroke:none;stroke-width:1.00068593;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4688);enable-background:accumulate" + transform="matrix(1,0,-2.4015919e-3,0.7941301,-686.92104,682.58909)" + sodipodi:nodetypes="cccsccc" + id="path4395" + d="M 599.42598,26.398361 C 607.73314,26.398361 618.45986,33.956938 618.45986,42.42032 L 614.42086,156.31908 C 614.42086,164.78247 607.73314,171.59595 599.42598,171.59595 C 591.11881,171.59595 584.43109,164.78247 584.43109,156.31908 L 584.43109,41.675225 C 584.43109,33.211843 591.11881,26.398361 599.42598,26.398361 z" /> + <rect + style="fill:url(#linearGradient4419);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect4397" + width="29.989771" + rx="19.1481" + ry="19.1481" + y="702.35999" + x="-106.9777" + height="115.30578" /> + <g + id="g4399" + transform="translate(-191.97771,584.46451)"> + <g + id="g4401"> + <path + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Send);stroke-opacity:1" + d="M 100,213.75916 L 100,133.37478 L 100,133.37478" + id="path4403" + sodipodi:nodetypes="ccc" /> + <g + transform="translate(-490,95.001405)" + id="g4405"> + <path + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000000;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.71062275;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path4407" + sodipodi:cx="73.539108" + sodipodi:cy="99.920204" + sodipodi:type="arc" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + sodipodi:rx="2.8284271" + sodipodi:ry="2.8284271" /> + <text + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.71062275;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + id="text4409" + sodipodi:linespacing="100%" + transform="scale(0.9716714,1.0291545)" + y="34.371136" + x="604.14581" + xml:space="preserve"><tspan + sodipodi:role="line" + style="stroke-width:0.49999997" + id="tspan4411" + y="34.371136" + x="604.14581">x</tspan></text> + </g> + </g> + </g> + <rect + style="fill:url(#linearGradient4421);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.25000012;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect4413" + width="29.989771" + rx="19.1481" + ry="19.1481" + y="702.35999" + x="-106.9777" + height="115.30578" /> + <g + id="g4415" + transform="translate(-191.9777,555)"> + <path + d="M 106.65685,252.36359 C 106.65685,256.03818 103.67458,259.02044 99.999996,259.02044 C 96.325414,259.02044 93.343142,256.03818 93.343142,252.36359 C 93.343142,248.689 96.325414,245.70673 99.999996,245.70673 C 103.67458,245.70673 106.65685,248.689 106.65685,252.36359 z M 101.40685,252.36359 C 101.40685,253.14018 100.77658,253.77044 99.999995,253.77044 C 99.223412,253.77044 98.593141,253.14018 98.593141,252.36359 C 98.593141,251.58701 99.223412,250.95674 99.999995,250.95674 C 100.77658,250.95674 101.40685,251.58701 101.40685,252.36359 z" + id="path4417" + style="opacity:1;fill:#ffffff;fill-opacity:0.58974364;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.71062275;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + </g> + </g> + <g + id="g4423" + transform="matrix(0.8,0,0,0.8,565.9572,-523.72818)"> + <path + d="M 599.42598,26.398361 C 607.73314,26.398361 618.45986,33.956938 618.45986,42.42032 L 614.42086,156.31908 C 614.42086,164.78247 607.73314,171.59595 599.42598,171.59595 C 591.11881,171.59595 584.43109,164.78247 584.43109,156.31908 L 584.43109,41.675225 C 584.43109,33.211843 591.11881,26.398361 599.42598,26.398361 z" + id="path4425" + sodipodi:nodetypes="cccsccc" + transform="matrix(1,0,-2.4015919e-3,0.7941301,-686.92104,682.58909)" + style="fill:#797e87;fill-opacity:0.2014652;fill-rule:evenodd;stroke:none;stroke-width:1.00068593;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4688);enable-background:accumulate" /> + <rect + height="115.30578" + x="-106.9777" + y="702.35999" + ry="19.1481" + rx="19.1481" + width="29.989771" + id="rect4427" + style="fill:url(#linearGradient4449);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <g + transform="translate(-191.97771,584.46451)" + id="g4429"> + <g + id="g4431"> + <path + sodipodi:nodetypes="ccc" + id="path4433" + d="M 100,213.75916 L 100,133.37478 L 100,133.37478" + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Send);stroke-opacity:1" /> + <g + id="g4435" + transform="translate(-490,95.001405)"> + <path + sodipodi:ry="2.8284271" + sodipodi:rx="2.8284271" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + sodipodi:type="arc" + sodipodi:cy="99.920204" + sodipodi:cx="73.539108" + id="path4437" + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000000;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.71062275;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <text + xml:space="preserve" + x="604.14581" + y="34.371136" + transform="scale(0.9716714,1.0291545)" + sodipodi:linespacing="100%" + id="text4439" + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.71062275;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"><tspan + x="604.14581" + y="34.371136" + id="tspan4441" + style="stroke-width:0.49999997" + sodipodi:role="line">x</tspan></text> + </g> + </g> + </g> + <rect + height="115.30578" + x="-106.9777" + y="702.35999" + ry="19.1481" + rx="19.1481" + width="29.989771" + id="rect4443" + style="fill:url(#linearGradient4451);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.25000012;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <g + transform="translate(-191.9777,555)" + id="g4445"> + <path + style="opacity:1;fill:#ffffff;fill-opacity:0.58974364;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.71062275;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path4447" + d="M 106.65685,252.36359 C 106.65685,256.03818 103.67458,259.02044 99.999996,259.02044 C 96.325414,259.02044 93.343142,256.03818 93.343142,252.36359 C 93.343142,248.689 96.325414,245.70673 99.999996,245.70673 C 103.67458,245.70673 106.65685,248.689 106.65685,252.36359 z M 101.40685,252.36359 C 101.40685,253.14018 100.77658,253.77044 99.999995,253.77044 C 99.223412,253.77044 98.593141,253.14018 98.593141,252.36359 C 98.593141,251.58701 99.223412,250.95674 99.999995,250.95674 C 100.77658,250.95674 101.40685,251.58701 101.40685,252.36359 z" /> + </g> + </g> + <g + transform="matrix(0.8,0,0,0.8,595.60564,-523.72818)" + id="g4453"> + <path + style="fill:#797e87;fill-opacity:0.2014652;fill-rule:evenodd;stroke:none;stroke-width:1.00068593;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4688);enable-background:accumulate" + transform="matrix(1,0,-2.4015919e-3,0.7941301,-686.92104,682.58909)" + sodipodi:nodetypes="cccsccc" + id="path4455" + d="M 599.42598,26.398361 C 607.73314,26.398361 618.45986,33.956938 618.45986,42.42032 L 614.42086,156.31908 C 614.42086,164.78247 607.73314,171.59595 599.42598,171.59595 C 591.11881,171.59595 584.43109,164.78247 584.43109,156.31908 L 584.43109,41.675225 C 584.43109,33.211843 591.11881,26.398361 599.42598,26.398361 z" /> + <rect + style="fill:url(#linearGradient4479);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect4457" + width="29.989771" + rx="19.1481" + ry="19.1481" + y="702.35999" + x="-106.9777" + height="115.30578" /> + <g + id="g4459" + transform="translate(-191.97771,584.46451)"> + <g + id="g4461"> + <path + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Send);stroke-opacity:1" + d="M 100,213.75916 L 100,133.37478 L 100,133.37478" + id="path4463" + sodipodi:nodetypes="ccc" /> + <g + transform="translate(-490,95.001405)" + id="g4465"> + <path + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000000;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.71062275;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path4467" + sodipodi:cx="73.539108" + sodipodi:cy="99.920204" + sodipodi:type="arc" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + sodipodi:rx="2.8284271" + sodipodi:ry="2.8284271" /> + <text + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.71062275;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + id="text4469" + sodipodi:linespacing="100%" + transform="scale(0.9716714,1.0291545)" + y="34.371136" + x="604.14581" + xml:space="preserve"><tspan + sodipodi:role="line" + style="stroke-width:0.49999997" + id="tspan4471" + y="34.371136" + x="604.14581">x</tspan></text> + </g> + </g> + </g> + <rect + style="fill:url(#linearGradient4481);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.25000012;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect4473" + width="29.989771" + rx="19.1481" + ry="19.1481" + y="702.35999" + x="-106.9777" + height="115.30578" /> + <g + id="g4475" + transform="translate(-191.9777,555)"> + <path + d="M 106.65685,252.36359 C 106.65685,256.03818 103.67458,259.02044 99.999996,259.02044 C 96.325414,259.02044 93.343142,256.03818 93.343142,252.36359 C 93.343142,248.689 96.325414,245.70673 99.999996,245.70673 C 103.67458,245.70673 106.65685,248.689 106.65685,252.36359 z M 101.40685,252.36359 C 101.40685,253.14018 100.77658,253.77044 99.999995,253.77044 C 99.223412,253.77044 98.593141,253.14018 98.593141,252.36359 C 98.593141,251.58701 99.223412,250.95674 99.999995,250.95674 C 100.77658,250.95674 101.40685,251.58701 101.40685,252.36359 z" + id="path4477" + style="opacity:1;fill:#ffffff;fill-opacity:0.58974364;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.71062275;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + </g> + </g> + <g + transform="translate(-447.11879,-48.798995)" + id="g5470"> + <g + style="display:inline" + id="g5472" + transform="translate(347.11835,17.967953)"> + <g + id="g5474"> + <g + id="g5476"> + <use + id="use5478" + width="744.09448" + transform="translate(-430,225)" + y="0" + xlink:href="#g_object_pin" + x="0" + height="1052.3622" /> + <use + id="use5480" + width="744.09448" + transform="translate(0,15)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + <use + id="use5482" + width="744.09448" + transform="translate(0,30)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + </g> + </g> + <g + id="g5484"> + <path + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" + id="path5486" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="opacity:1;fill:url(#radialGradient5492);fill-opacity:1;fill-rule:evenodd;stroke:#003c23;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path5488" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="translate(0,25)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="fill:#054b3f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + id="path5490" /> + </g> + </g> + </g> + <g + id="g4483" + transform="translate(-355.31479,86.271327)"> + <g + transform="translate(347.11835,17.967953)" + id="g4485" + style="display:inline"> + <g + id="g4487"> + <g + id="g4489"> + <use + height="1052.3622" + x="0" + xlink:href="#g_object_pin" + y="0" + transform="translate(-430,225)" + width="744.09448" + id="use4491" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,15)" + width="744.09448" + id="use4493" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,30)" + width="744.09448" + id="use4495" /> + </g> + </g> + <g + id="g4497"> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path4499" + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" /> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="translate(0,25)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path4501" + style="opacity:1;fill:url(#radialGradient4505);fill-opacity:1;fill-rule:evenodd;stroke:#003c23;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + id="path4503" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + style="fill:#054b3f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + </g> + </g> + </g> + <g + id="g4539" + transform="translate(19.26782,-110.20742)"> + <g + id="g4527"> + <g + style="display:inline" + id="g5544" + transform="translate(-117.27504,344.4467)"> + <g + id="g5546"> + <g + id="g5548"> + <use + id="use5550" + width="744.09448" + transform="translate(-430,225)" + y="0" + xlink:href="#g_object_pin" + x="0" + height="1052.3622" /> + <use + id="use5552" + width="744.09448" + transform="translate(0,15)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + <use + id="use5554" + width="744.09448" + transform="translate(0,30)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + </g> + </g> + <g + id="g5556"> + <path + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" + id="path5558" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="opacity:1;fill:url(#radialGradient4552);fill-opacity:1;fill-rule:evenodd;stroke:#00003c;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path5560" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="translate(0,25)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="fill:#053466;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + id="path5562" /> + </g> + </g> + </g> + </g> + <g + transform="translate(109.0786,-90.20742)" + id="g4554"> + <g + id="g4556"> + <g + transform="translate(-117.27504,344.4467)" + id="g4558" + style="display:inline"> + <g + id="g4560"> + <g + id="g4562"> + <use + height="1052.3622" + x="0" + xlink:href="#g_object_pin" + y="0" + transform="translate(-430,225)" + width="744.09448" + id="use4564" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,15)" + width="744.09448" + id="use4566" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,30)" + width="744.09448" + id="use4568" /> + </g> + </g> + <g + id="g4570"> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path4572" + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" /> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="translate(0,25)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path4574" + style="opacity:1;fill:url(#radialGradient4578);fill-opacity:1;fill-rule:evenodd;stroke:#00003c;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + id="path4576" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + style="fill:#053466;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + </g> + </g> + </g> + </g> + <g + id="g4580" + transform="translate(359.33089,-90.20742)"> + <g + id="g4582"> + <g + style="display:inline" + id="g4584" + transform="translate(-117.27504,344.4467)"> + <g + id="g4586"> + <g + id="g4588"> + <use + id="use4590" + width="744.09448" + transform="translate(-430,225)" + y="0" + xlink:href="#g_object_pin" + x="0" + height="1052.3622" /> + <use + id="use4592" + width="744.09448" + transform="translate(0,15)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + <use + id="use4594" + width="744.09448" + transform="translate(0,30)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + </g> + </g> + <g + id="g4596"> + <path + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" + id="path4598" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="opacity:1;fill:url(#radialGradient4604);fill-opacity:1;fill-rule:evenodd;stroke:#00003c;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path4600" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="translate(0,25)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="fill:#053466;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + id="path4602" /> + </g> + </g> + </g> + </g> + <g + transform="translate(-425.91399,96.063407)" + id="g4630"> + <g + style="display:inline" + id="g4632" + transform="translate(347.11835,17.967953)"> + <g + id="g4634"> + <g + id="g4636"> + <use + id="use4638" + width="744.09448" + transform="translate(-430,225)" + y="0" + xlink:href="#g_object_pin" + x="0" + height="1052.3622" /> + <use + id="use4640" + width="744.09448" + transform="translate(0,15)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + <use + id="use4642" + width="744.09448" + transform="translate(0,30)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + </g> + </g> + <g + id="g4644"> + <path + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" + id="path4646" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="opacity:1;fill:url(#radialGradient4652);fill-opacity:1;fill-rule:evenodd;stroke:#003c23;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path4648" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="translate(0,25)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="fill:#054b3f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + id="path4650" /> + </g> + </g> + </g> + <path + sodipodi:nodetypes="ccc" + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#55cbb9;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#ArrowHIV1end);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 197.90263,313.11806 L 180.66609,313.11806 L 180.66609,270.81445" + id="path5668" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + id="path4654" + d="M 40,196 L 10,196 L 10,110 L 40,80" + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#55cbb9;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#ArrowHIV1end);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:nodetypes="cccc" /> + <g + id="g4606" + transform="translate(-505.31479,-73.728673)"> + <g + transform="translate(347.11835,17.967953)" + id="g4608" + style="display:inline"> + <g + id="g4610"> + <g + id="g4612"> + <use + height="1052.3622" + x="0" + xlink:href="#g_object_pin" + y="0" + transform="translate(-430,225)" + width="744.09448" + id="use4614" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,15)" + width="744.09448" + id="use4616" /> + <use + height="1052.3622" + x="0" + xlink:href="#use_obj_pin" + y="0" + transform="translate(0,30)" + width="744.09448" + id="use4618" /> + </g> + </g> + <g + id="g4620"> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path4622" + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" /> + <path + sodipodi:ry="10" + sodipodi:rx="10" + transform="translate(0,25)" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + sodipodi:type="arc" + sodipodi:cy="227.36218" + sodipodi:cx="200" + id="path4624" + style="opacity:1;fill:url(#radialGradient4628);fill-opacity:1;fill-rule:evenodd;stroke:#003c23;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + id="path4626" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + style="fill:#054b3f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + </g> + </g> + </g> + <g + transform="translate(-365.61835,-16.892636)" + id="g5420"> + <g + style="display:inline" + id="g5422" + transform="translate(347.11835,17.967953)"> + <g + id="g5426"> + <g + id="g5428"> + <use + id="use5430" + width="744.09448" + transform="translate(-430,225)" + y="0" + xlink:href="#g_object_pin" + x="0" + height="1052.3622" /> + <use + id="use5432" + width="744.09448" + transform="translate(0,15)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + <use + id="use5434" + width="744.09448" + transform="translate(0,30)" + y="0" + xlink:href="#use_obj_pin" + x="0" + height="1052.3622" /> + </g> + </g> + <g + id="g5436"> + <path + style="opacity:1;fill:#43434b;fill-opacity:0.52747258;fill-rule:evenodd;stroke:none;stroke-width:0.3035306;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4817);enable-background:accumulate" + id="path5438" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="matrix(1.009375,0,-7.390511e-2,1.0125,15.521977,22.720473)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="opacity:1;fill:url(#radialGradient5444);fill-opacity:1;fill-rule:evenodd;stroke:#003c23;stroke-width:0.29999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path5440" + sodipodi:cx="200" + sodipodi:cy="227.36218" + sodipodi:type="arc" + d="M 210,227.36218 A 10,10 0 1 1 190,227.36218 A 10,10 0 1 1 210,227.36218 z" + transform="translate(0,25)" + sodipodi:rx="10" + sodipodi:ry="10" /> + <path + style="fill:#054b3f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 198.00722,245.76072 L 196.30425,257.2627 C 194.35902,256.92523 194.45145,255.68749 194.97187,254.11637 L 193.74195,253.99033 C 192.63989,256.65712 192.89705,258.83696 196.54871,259.12682 L 196.73787,259.125 C 200.48598,259.04214 201.82787,256.90806 201.94147,254.21091 L 200.64847,254.27394 C 200.46058,255.80341 199.85819,256.97455 197.94415,257.2627 L 198.79564,251.96864 L 200.78245,251.96864 C 202.26922,251.96865 203.40558,251.65924 204.1884,251.02327 C 204.97119,250.38731 205.32991,249.48672 205.26065,248.34473 C 205.20911,247.49524 204.89756,246.86347 204.31455,246.42248 C 203.73153,245.98147 202.91517,245.76074 201.85469,245.76072 L 198.19644,245.76072 L 198.00722,245.76072 z M 199.61559,246.92668 L 201.66547,246.92668 C 202.25289,246.92669 202.71443,247.03559 203.05309,247.30482 C 203.39691,247.57409 203.59117,247.95186 203.62074,248.43927 C 203.66691,249.20057 203.4435,249.79546 202.99001,250.20395 C 202.53651,250.61247 201.86583,250.8342 200.97167,250.8342 L 198.98486,250.8342 L 199.61559,246.92668 z" + sodipodi:nodetypes="cccccccccccssscccccsssccc" + id="path5442" /> + </g> + </g> + </g> + <g + id="g3948" + transform="translate(164.04877,201.52543)"> + <g + id="g3950"> + <path + transform="matrix(1.1837708,0,0,1.1837708,-121.4146,-209.14039)" + d="M 161.92746,242.20396 A 16.970562,16.970562 0 1 1 127.98633,242.20396 A 16.970562,16.970562 0 1 1 161.92746,242.20396 z" + sodipodi:ry="16.970562" + sodipodi:rx="16.970562" + sodipodi:cy="242.20396" + sodipodi:cx="144.95689" + id="path3952" + style="fill:#ffffff;fill-opacity:0.61594202;fill-rule:evenodd;stroke:#6c6c6c;stroke-width:0.84475815;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="opacity:1;fill:#ffffff;fill-opacity:0.61594202;fill-rule:evenodd;stroke:#6c6c6c;stroke-width:0.84475815;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path3954" + sodipodi:cx="144.95689" + sodipodi:cy="242.20396" + sodipodi:rx="16.970562" + sodipodi:ry="16.970562" + d="M 161.92746,242.20396 A 16.970562,16.970562 0 1 1 127.98633,242.20396 A 16.970562,16.970562 0 1 1 161.92746,242.20396 z" + transform="matrix(1.1837708,0,0,1.1837708,-121.4146,-179.05113)" /> + </g> + <text + xml:space="preserve" + style="font-size:14px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + x="68.820358" + y="95.121399" + id="text3956" + sodipodi:linespacing="100%" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"><tspan + id="tspan3958" + style="font-size:8px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans" + y="95.121399" + x="68.820358" + sodipodi:role="line">Binding</tspan></text> + </g> + <g + transform="matrix(0.8,0,0,0.8,-361.97653,604.11839)" + id="g4672"> + <path + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000000;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.71062275;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path4674" + sodipodi:cx="73.539108" + sodipodi:cy="99.920204" + sodipodi:type="arc" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + sodipodi:rx="2.8284271" + sodipodi:ry="2.8284271" /> + <text + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.71062275;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + id="text4676" + sodipodi:linespacing="100%" + transform="scale(0.9716714,1.0291545)" + y="34.371136" + x="604.14581" + xml:space="preserve"><tspan + sodipodi:role="line" + style="stroke-width:0.49999997" + id="tspan4678" + y="34.371136" + x="604.14581">x</tspan></text> + </g> + <g + id="g4680" + transform="matrix(0.8,0,0,0.8,-251.97653,574.11839)"> + <path + sodipodi:ry="2.8284271" + sodipodi:rx="2.8284271" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + sodipodi:type="arc" + sodipodi:cy="99.920204" + sodipodi:cx="73.539108" + id="path4682" + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000000;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.71062275;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <text + xml:space="preserve" + x="604.14581" + y="34.371136" + transform="scale(0.9716714,1.0291545)" + sodipodi:linespacing="100%" + id="text4684" + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.71062275;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"><tspan + x="604.14581" + y="34.371136" + id="tspan4686" + style="stroke-width:0.49999997" + sodipodi:role="line">x</tspan></text> + </g> + <g + transform="matrix(0.8,0,0,0.8,-158.43013,602.01834)" + id="g4688"> + <path + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000000;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.71062275;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path4690" + sodipodi:cx="73.539108" + sodipodi:cy="99.920204" + sodipodi:type="arc" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + transform="matrix(1.5673028,0,0,1.5673028,457.77961,-124.75314)" + sodipodi:rx="2.8284271" + sodipodi:ry="2.8284271" /> + <text + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.71062275;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + id="text4692" + sodipodi:linespacing="100%" + transform="scale(0.9716714,1.0291545)" + y="33.763844" + x="586.71912" + xml:space="preserve"><tspan + sodipodi:role="line" + style="stroke-width:0.49999997" + id="tspan4694" + y="33.763844" + x="586.71912">x</tspan></text> + </g> + <g + id="g4696" + transform="matrix(0.8,0,0,0.8,31.569872,602.01834)"> + <path + sodipodi:ry="2.8284271" + sodipodi:rx="2.8284271" + transform="matrix(1.5673028,0,0,1.5673028,457.77961,-124.75314)" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + sodipodi:type="arc" + sodipodi:cy="99.920204" + sodipodi:cx="73.539108" + id="path4698" + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000000;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.71062275;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <text + xml:space="preserve" + x="586.71912" + y="33.763844" + transform="scale(0.9716714,1.0291545)" + sodipodi:linespacing="100%" + id="text4700" + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.71062275;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"><tspan + x="586.71912" + y="33.763844" + id="tspan4702" + style="stroke-width:0.49999997" + sodipodi:role="line">x</tspan></text> + </g> + <text + xml:space="preserve" + style="font-size:14px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + x="46.600014" + y="502.67184" + id="text4712" + sodipodi:linespacing="100%" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"><tspan + id="tspan4714" + style="font-size:8px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans" + y="502.67184" + x="46.600014" + sodipodi:role="line">explicit Placement</tspan></text> + <text + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + sodipodi:linespacing="100%" + id="text4716" + y="620.05151" + x="109.53251" + style="font-size:14px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + xml:space="preserve"><tspan + sodipodi:role="line" + x="109.53251" + y="620.05151" + style="font-size:8px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans" + id="tspan4718">exit node</tspan></text> + <text + xml:space="preserve" + style="font-size:14px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + x="43.064472" + y="613.33398" + id="text4728" + sodipodi:linespacing="100%" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"><tspan + id="tspan4730" + style="font-size:8px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans" + y="613.33398" + x="43.064472" + sodipodi:role="line">Model</tspan><tspan + style="font-size:8px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans" + y="621.33398" + x="43.064472" + sodipodi:role="line" + id="tspan4732">Port-1</tspan></text> + <path + style="fill:none;fill-opacity:0.75000000000000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.50000000000000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none" + d="M 54.419417,598.06245 L 211.37973,597.61181" + id="path4742" + sodipodi:nodetypes="cc" /> + <path + sodipodi:nodetypes="ccc" + id="path5478" + d="M 54.458087,598.21713 L 79.286516,597.99181 L 103.40784,623.92944" + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 227.66058,597.53212 L 252.48901,597.3068 L 294.11123,620.59278" + id="path5480" + sodipodi:nodetypes="ccc" /> + <g + id="g5482"> + <path + sodipodi:type="arc" + style="opacity:1;fill:url(#radialGradient4726);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path4724" + sodipodi:cx="110" + sodipodi:cy="630" + sodipodi:rx="10" + sodipodi:ry="10" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" /> + <g + style="stroke:#000089;stroke-opacity:1" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + id="g4734"> + <path + style="fill:none;fill-opacity:0.63369966000000000;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452000000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path4736" + sodipodi:cx="73.539108" + sodipodi:cy="99.920204" + sodipodi:type="arc" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + sodipodi:rx="2.8284271" + sodipodi:ry="2.8284271" /> + <text + style="font-size:10.29154491000000071px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997000000002;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + id="text4738" + sodipodi:linespacing="100%" + transform="scale(0.9716714,1.0291545)" + y="34.371136" + x="604.14581" + xml:space="preserve"><tspan + sodipodi:role="line" + style="stroke-width:0.49999997000000002;fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-opacity:1" + id="tspan4740" + y="34.371136" + x="604.14581">x</tspan></text> + </g> + </g> + <text + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + sodipodi:linespacing="100%" + id="text5489" + y="613.33398" + x="411.06448" + style="font-size:14px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans" + xml:space="preserve"><tspan + sodipodi:role="line" + x="411.06448" + y="613.33398" + style="font-size:8px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans" + id="tspan5491">Model</tspan><tspan + id="tspan5493" + sodipodi:role="line" + x="411.06448" + y="621.33398" + style="font-size:8px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans">Port-2</tspan></text> + <path + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 422.45809,598.21713 L 447.28652,597.99181 L 483.03284,621.92944" + id="path5495" + sodipodi:nodetypes="ccc" /> + <g + id="g5497" + transform="translate(368,0)"> + <path + transform="matrix(0.75,0,0,0.75,-28.007882,125.42669)" + d="M 120,630 A 10,10 0 1 1 100,630 A 10,10 0 1 1 120,630 z" + sodipodi:ry="10" + sodipodi:rx="10" + sodipodi:cy="630" + sodipodi:cx="110" + id="path5499" + style="opacity:1;fill:url(#radialGradient5509);fill-opacity:1;fill-rule:evenodd;stroke:#1b2c8c;stroke-width:1.33333337;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <g + id="g5501" + transform="matrix(0.8,0,0,0.8,-417.48441,571.94503)" + style="stroke:#000089;stroke-opacity:1"> + <path + sodipodi:ry="2.8284271" + sodipodi:rx="2.8284271" + transform="matrix(1.5673028,0,0,1.5673028,474.71261,-124.12814)" + d="M 76.367535,99.920204 A 2.8284271,2.8284271 0 1 1 70.710681,99.920204 A 2.8284271,2.8284271 0 1 1 76.367535,99.920204 z" + sodipodi:type="arc" + sodipodi:cy="99.920204" + sodipodi:cx="73.539108" + id="path5503" + style="fill:none;fill-opacity:0.63369966;fill-rule:evenodd;stroke:#000089;stroke-width:0.23926452;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <text + xml:space="preserve" + x="604.14581" + y="34.371136" + transform="scale(0.9716714,1.0291545)" + sodipodi:linespacing="100%" + id="text5505" + style="font-size:10.29154491px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#5d11ef;fill-opacity:1;fill-rule:evenodd;stroke:#000089;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"><tspan + x="604.14581" + y="34.371136" + id="tspan5507" + style="fill:#5d11ef;fill-opacity:1;stroke:#000089;stroke-width:0.49999997;stroke-opacity:1" + sodipodi:role="line">x</tspan></text> + </g> + </g> + <rect + style="fill:url(#linearGradient5513);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.74725276;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect5511" + width="231.37108" + height="135.47665" + x="262.54575" + y="291.64365" + rx="0.30000001" + ry="0.91569775" /> + <path + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/hiv/devel/lumi/wiki/draw/PlayerArch1.png" + id="path5666" + d="M 310.61868,315.39192 L 420.58114,252.63693 L 420.58114,137.55604" + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#55cbb9;stroke-width:1.50000000000000000;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#ArrowHIV1end);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:nodetypes="ccc" /> + <rect + ry="0.91569775" + rx="0.30000001" + y="439.64365" + x="527.54578" + height="55.476654" + width="192.37108" + id="rect5515" + style="fill:url(#linearGradient5517);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.80000000999999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.74725275999999985;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> +</svg> diff --git a/doc/devel/rfc_pending/EngineInterfaceOverview.txt b/doc/devel/rfc_pending/EngineInterfaceOverview.txt index 4966339fc..9e242a27f 100644 --- a/doc/devel/rfc_pending/EngineInterfaceOverview.txt +++ b/doc/devel/rfc_pending/EngineInterfaceOverview.txt @@ -41,8 +41,8 @@ _corresponds to a single data stream_ to be rendered. Thus, when the play in _playing_ or _paused_ state, typically multiple corresponding render processes exist. -* there is an displayer- or output slot, which got allocated on creation of the - process +* there is an displayer- or output slot, which got allocated on creation + of the process * the process disposes calculated data frames "into" this slot * the process can be paused/started and stopped (aborted, halted). * some processes allow for changing parameters dynamically (e.g. speed, @@ -52,23 +52,31 @@ processes exist. .Process parameters A process is linked to a single stream data format (a -> -link:StreamTypeSystem.html[stream implementation type]). + It is configured -with _frame quantisation_ and _timings_, and a _model port_ identifier and -_channel selector_. +link:StreamTypeSystem.html[stream implementation type]). + +It is configured with _frame quantisation_ and _timings_, and a _model port_ +identifier and _channel selector_. + + quantisation:: + translates time values into frame numbers. (In the most general + case this is a function, connected to the session) + + timings:: + a definition to translate global model time units in real clock time, + including _alignment_ to an external time grid. + + model port:: + a point in the (high level) model where output can be produced. + + This might be a global pipe in one of the model's timelines, or + it might be a _probe point_. + + channel:: + within the session and high level model, details of the stream + implementation are abstracted. Typically, a global pipe (master bus + or subgroup) corresponds to a multichannel stream, and each of these + channels might be hooked up to an individual render process + (we have to work out if that's _always the case_ or just under + _some circumstances_) - quantisation:: translates time values into frame numbers. (In the most general - case this is a function, connected to the session) timings:: a definition to - translate global model time units in real clock time, including _alignment_ to - an external time grid. model port:: a point in the (high level) model where - output can be produced. + - This might be a global pipe in one of the model's timelines, or - it might be a _probe point_. - channel:: within the session and high level model, details of the stream - implementation are abstracted. Typically, - a global pipe (master bus or subgroup) corresponds to a multichannel - stream, and each of these channels might be hooked up to an - individual render process (we have to work out if that's _always the - case_ or just under _some circumstances_) [NOTE] =================== diff --git a/doc/devel/rfc_pending/NormalizedDeviceCoordinates.txt b/doc/devel/rfc_pending/NormalizedDeviceCoordinates.txt index 4272b1816..87496b4e8 100644 --- a/doc/devel/rfc_pending/NormalizedDeviceCoordinates.txt +++ b/doc/devel/rfc_pending/NormalizedDeviceCoordinates.txt @@ -58,6 +58,11 @@ Tasks ^^^^^ + + +Discussion +~~~~~~~~~~ + Pros ^^^^ @@ -75,7 +80,7 @@ Alternatives Rationale ~~~~~~~~~ - +TBD diff --git a/doc/devel/rfc_pending/ProcPlacementMetaphor.txt b/doc/devel/rfc_pending/ProcPlacementMetaphor.txt index f12f33004..d6ba41545 100644 --- a/doc/devel/rfc_pending/ProcPlacementMetaphor.txt +++ b/doc/devel/rfc_pending/ProcPlacementMetaphor.txt @@ -109,6 +109,11 @@ Tasks + + +Discussion +~~~~~~~~~~ + Pros ^^^^ * with just one concept, we get a lot of issues right, which many conventional diff --git a/doc/devel/rfc_pending/RenderOptimizer.txt b/doc/devel/rfc_pending/RenderOptimizer.txt index c10f7027d..ce2c57b7c 100644 --- a/doc/devel/rfc_pending/RenderOptimizer.txt +++ b/doc/devel/rfc_pending/RenderOptimizer.txt @@ -32,6 +32,11 @@ Tasks ^^^^^ + + +Discussion +~~~~~~~~~~ + Pros ^^^^ diff --git a/doc/devel/rfc_pending/ResourceManagementBudgeting.txt b/doc/devel/rfc_pending/ResourceManagementBudgeting.txt index 0ff21933e..ffa488e5c 100644 --- a/doc/devel/rfc_pending/ResourceManagementBudgeting.txt +++ b/doc/devel/rfc_pending/ResourceManagementBudgeting.txt @@ -73,6 +73,11 @@ Tasks // * item ... + + +Discussion +~~~~~~~~~~ + Pros ^^^^ // add just a fact list/enumeration which make this suitable: @@ -88,7 +93,7 @@ Cons Alternatives ------------- +^^^^^^^^^^^^ //alternatives: if possible explain/link alternatives and tell why they are not viable: diff --git a/doc/devel/rfc_pending/ResourceManagementProfiling.txt b/doc/devel/rfc_pending/ResourceManagementProfiling.txt index 7022d861c..bfd1b2731 100644 --- a/doc/devel/rfc_pending/ResourceManagementProfiling.txt +++ b/doc/devel/rfc_pending/ResourceManagementProfiling.txt @@ -134,6 +134,11 @@ Tasks // * item ... + + +Discussion +~~~~~~~~~~ + Pros ^^^^ // add just a fact list/enumeration which make this suitable: @@ -149,7 +154,7 @@ Cons Alternatives ------------- +^^^^^^^^^^^^ //alternatives: if possible explain/link alternatives and tell why they are not viable: diff --git a/doc/devel/rfc_pending/Roadmap-first.txt b/doc/devel/rfc_pending/Roadmap-first.txt index cdba0f267..a8a38d50a 100644 --- a/doc/devel/rfc_pending/Roadmap-first.txt +++ b/doc/devel/rfc_pending/Roadmap-first.txt @@ -136,6 +136,11 @@ Please review and discuss this proposal, consider if it's of any use setting it up this way... + + +Discussion +~~~~~~~~~~ + Pros ^^^^ * doesn't hinder us diff --git a/doc/devel/rfc_pending/StreamTypeSystem.txt b/doc/devel/rfc_pending/StreamTypeSystem.txt index 077d1aed9..4a81eaf9b 100644 --- a/doc/devel/rfc_pending/StreamTypeSystem.txt +++ b/doc/devel/rfc_pending/StreamTypeSystem.txt @@ -10,8 +10,7 @@ Stream Type System ------------------ Especially in the Proc-Layer, we need a framework to deal with different -"kinds" of media streams. - + +"kinds" of media streams. + This is the foundation to be able to define what can be connected and to separate out generic parts and isolate specific parts. @@ -69,7 +68,7 @@ or selection regarding each of these levels. conversions. Examples for Prototypes are: stereoscopic (3D) video versus the common flat video lacking depth information, spatial audio systems (Ambisonics, Wave Field Synthesis), panorama simulating sound systems (5.1, - 7.1,...), stereophonic and monaural audio. + 7.1,...), binaural, stereophonic and monaural audio. * Besides the distinction by prototypes, there are the various *media implementation types*. This classification is not necessarily hierarchically related to the prototype classification, while in practice commonly there diff --git a/doc/devel/rfc_pending/ThreadsSignalsAndImportantManagementTasks.txt b/doc/devel/rfc_pending/ThreadsSignalsAndImportantManagementTasks.txt index e218e8e9e..69ca53595 100644 --- a/doc/devel/rfc_pending/ThreadsSignalsAndImportantManagementTasks.txt +++ b/doc/devel/rfc_pending/ThreadsSignalsAndImportantManagementTasks.txt @@ -113,6 +113,11 @@ We have appstate::maybeWait() which already does such a loop. It needs to be extended by the proposed things above. + +Discussion +~~~~~~~~~~ + + Pros ^^^^ // add just a fact list/enumeration which make this suitable: @@ -127,7 +132,7 @@ Cons Alternatives ------------- +^^^^^^^^^^^^ //alternatives: if possible explain/link alternatives and tell why they are not diff --git a/doc/devel/rfc_pending/WebsiteNavigation.txt b/doc/devel/rfc_pending/WebsiteNavigation.txt new file mode 100644 index 000000000..172b6543f --- /dev/null +++ b/doc/devel/rfc_pending/WebsiteNavigation.txt @@ -0,0 +1,160 @@ +WebsiteNavigation +================= + +// please don't remove the //word: comments + +[grid="all"] +`------------`----------------------- +*State* _Idea_ +*Date* _Mi 08 Dez 2010 11:32:32 CET_ +*Proposed by* Ichthyostega <prg@ichthyostega.de> +------------------------------------- + +[abstract] +******************************************************************************** +The Lumiera website is assumed to accumulate a lot of content. Thus we need +to care about making that content accessible, to help finding the relevant +topics and to keep the overall structure intact. This RfC is to collect, +discuss and agree upon the guidelines and requirements. +******************************************************************************** + +Description +----------- +//description: add a detailed description: + +Issues to care +~~~~~~~~~~~~~~ + +Navigation:: + The page hierarchy becomes at least 5 levels deep, likely even deeper. + When reading a page, the current subtree leading down to this page should + be right at hand; especially access to the siblings and the parent's siblings + is important. For re-accessing content, it is necessary to be able to drill + down to an known location (``within the design docs, detailing the application, + I need the configuration section'') + + -> we need an *auto generated navigation* and an embedded *menu tree widget* in the web pages. + +Tagging:: + There should be an easy way to categorise individual pages *by keyword(s)* + and an automatically generated indexing by tags, possibly with an per tag + overview page. + +Search:: + The usual *site search*. It should include the contents of the issue tracker. + Even today such a scoped search is valuable and even necessary for working + with the informations collected within the Lumiera project + +Sanity:: + Each relevant page needs to be reachable. There are some additional pages and + especially subdirectories which should not be linked into the website navigation. + Moreover, all (internal) links on the pages should be valid. + + -> this could be addressed by a **sanity checker script** + +Usage situations +~~~~~~~~~~~~~~~~ + +(a) working on content +^^^^^^^^^^^^^^^^^^^^^^ +Working on content should be readily accessible for _everyone_. One time contributions +are especially encouraged. This leads to the following usage scenario: + +A contributor has some informations to share or wants to do some additions or modifications. +(S)he locates somehow the place where relevant informations are stored, adds some text, +possibly adds a new page or splits another page in two. + +_Note_: no awareness of the issues of navigation can be assumed. The occasional contributor +won't notice any concern which isn't right at hand. + +(b) maintaining a subsystem +^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Some person(s) will be responsible for a subsystem or some segment of the informations +on the website. This responsibility is content centric. It might include frequent rearranging, +regrouping and reordering of pages to accommodate the increasing scope of informations. + +_Note_: while here some awareness of website organisational issues can be assumed, +any requirement to care for external organisational issues is a burden and distracts +from the actual work to be done -- thus it is likely to be short circuited or postponed +``for later''. Note especially, reorganising content in a subsection *must not* incur +the burden of re-doing the same reorganisation steps mirrored in some central navigation +configuration or table of contents. (this is a knock out criterion) + +(c) maintaining the website +^^^^^^^^^^^^^^^^^^^^^^^^^^^ +The website maintainer is responsible for the overall sanity of the website, without +being familiar with all details of ongoing work in some part or section of the information. +Another concern here is the outward perception of the website, which might incur changes +on the top level navigation or some rewording of overview pages. + +_Note_: this kind of work is rather unrewarding. There is the danger of collisions with the +work of the subsystem maintainer + + +Conclusion: Requirements for any navigation solution +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * ability to to pick up a nested page structure + * ability to cope with any additions and changes in the lower levels automatically, without help by the user + * ability to override: + + - not including some subdirectories + - including links-to-external at arbitrary positions + +optional/additional features +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +The following features would be handy, but can be considered optional + + * ability to change the displayed title of a page in the navigation + * ability to control the ordering of pages in the navigation + * complete manual override of the visible content of a specific subdirectory + + + +Tasks +~~~~~ +// List what would need to be done to implement this Proposal in a few words: +// * item ... + + + +Discussion +~~~~~~~~~~ + +Pros +^^^^ +// add just a fact list/enumeration which make this suitable: +// * foo +// * bar ... + + + +Cons +^^^^ +// fact list of the known/considered bad implications: + + + +Alternatives +^^^^^^^^^^^^ +//alternatives: explain alternatives and tell why they are not viable: + + + +Rationale +--------- +//rationale: Describe why it should be done *this* way: + + + +//Conclusion +//---------- +//conclusion: When approbate (this proposal becomes a Final) +// write some conclusions about its process: + + + + +Comments +-------- +//comments: append below + + +//endof_comments: diff --git a/doc/devel/uml/fig129413.png b/doc/devel/uml/fig129413.png index df8722ad2..581c0bf46 100644 Binary files a/doc/devel/uml/fig129413.png and b/doc/devel/uml/fig129413.png differ diff --git a/doc/template/rfc.txt b/doc/template/rfc.txt index b85efe175..0988835bd 100644 --- a/doc/template/rfc.txt +++ b/doc/template/rfc.txt @@ -25,13 +25,17 @@ Description Tasks ~~~~~ -// List what would need to be done to implement this Proposal in a few words: -// * item ... +// List what needs to be done to implement this Proposal: +// * first step ([green]#✔ done#) +// * second step [,yellow]#WIP# +Discussion +~~~~~~~~~~ + Pros ^^^^ -// add just a fact list/enumeration which make this suitable: +// add a fact list/enumeration which make this suitable: // * foo // * bar ... @@ -44,14 +48,14 @@ Cons Alternatives ------------- +^^^^^^^^^^^^ //alternatives: explain alternatives and tell why they are not viable: Rationale --------- -//rationale: Describe why it should be done *this* way: +//rationale: Give a concise summary why it should be done *this* way: diff --git a/doc/user/outerSpace/Glossary.txt b/doc/user/outerSpace/Glossary.txt index 1408fcdf4..9f5f7c2ea 100644 --- a/doc/user/outerSpace/Glossary.txt +++ b/doc/user/outerSpace/Glossary.txt @@ -2,31 +2,30 @@ Glossary ======== - 'NOTE Draft, please help rephrase/review and sort this terms, shorten explanations, the long explanation is the topic of the document above..' - Project:: + anchor:Project[] link:#Project[->]Project:: the top-level context in which all edit work is done over an extended period of time. The Project can be saved and re-opened. It is comprised of the collection of all things the user is working on, it contains all informations, assets, state and objects to be edited. - Session:: + anchor:Session[] link:#Session[->]Session:: the current in-memory representation of the Project when opened within an instance of Lumiera. This is an implementation-internal term. For the GUI and the users POV we should always prefer the term "Project" for the general concept. - Timeline View:: + anchor:TimelineView[] link:#TimelineView[->]Timeline View:: A view in the GUI featuring a given Timeline. There might be multiple views of the same timeline, all sharing the same PlayController. A proposed extension is the ability to 'focus' a timeline view to a sub-Sequence contained within the top-level sequence of the underlying Timeline. (Intended for editing meta-clips) - Track-head/patchbay:: + anchor:Track-head_patchbay[] link:#Track-head_patchbay[->]Track-head/patchbay:: the box in front of a track allowing to control properties of the elements contained within this track, unfold nested tracks and so on. To a large extent, it corresponds to the placement of this track and @@ -39,7 +38,7 @@ explanations, the long explanation is the topic of the document above..' patchbay, that is not the main purpose and they can do things beyond that.. - Timeline:: + anchor:Timeline[] link:#Timeline[->]Timeline:: the top level element(s) within the Project. It is visible within a 'timeline view' in the GUI and represents the effective (resulting) arrangement of media objects, resolved to a finite time axis, to be @@ -54,7 +53,7 @@ explanations, the long explanation is the topic of the document above..' * global pipes, i.e. global busses like in a mixing desk * exactly one top level Sequence - Time Axis:: + anchor:TimeAxis[] link:#TimeAxis[->]Time Axis:: An entity defining the temporal properties of a timeline. A time axis defines the time base, kind of timecode and absolute anchor point. Besides, it manages a set of frame quantisation grids, corresponding @@ -62,14 +61,13 @@ explanations, the long explanation is the topic of the document above..' busses). The GUI representation is a time ruler with configurable time ticks showed on top of the timeline view - - Busses:: + anchor:Busses[] link:#Busses[->]Busses:: A list of 'global Pipes' representing the possible outputs (master busses) similar to audio mixing desk. A bus defines the properties of the rendered output (Framerate, Resolution, Colorformat and so on). Busses are part of a Timeline. - Sequence:: + anchor:Sequence[] link:#Sequence[->]Sequence:: A collection of *Media Objects* (clips, effects, transitions, labels, automation) placed onto a tree of tracks. By means of this placement, the objects could be anchored relative to each other, relative to @@ -80,7 +78,7 @@ explanations, the long explanation is the topic of the document above..' contains just a single root track and sends directly to the master bus of the timeline. - Placement:: + anchor:Placement[] link:#Placement[->]Placement:: A Placement represents a relation: it is always linked to a Subject (this being a Media Object) and has the meaning to place this Subject in some manner, either relatively to other Media Objects, by some @@ -89,7 +87,7 @@ explanations, the long explanation is the topic of the document above..' thus are organised hierarchically and need to be _resolved_ to obtain a specific value (time point, output routing, layering, fade,...) - Pipe:: + anchor:Pipe[] link:#Pipe[->]Pipe:: Conceptual building block of the high-level model. It can be thought off as simple linear processing chain. A stream can be 'sent to' a pipe, in which case it will be mixed in at the input, and you can @@ -98,15 +96,15 @@ explanations, the long explanation is the topic of the document above..' (busses) in each Timeline, each clip automatically creates N pipes (one for each distinct content stream. Typically N=2, for video and audio) - - MediaStream:: + + anchor:MediaStream[] link:#MediaStream[->]MediaStream:: Media data is supposed to appear structured as stream(s) over time. While there may be an inherent internal structuring, at a given perspective any stream is a unit and homogeneous. In the context of digital media data processing, streams are always quantized, which means they appear as a temporal sequence of data chunks called frames. - StreamType:: + anchor:StreamType[] link:#StreamType[->]StreamType:: Classification of a media stream. StreamType is a descriptor record. While external media processing libraries usually do provide some kind of classification already, within lumiera we rely on an uniform yet @@ -119,42 +117,42 @@ explanations, the long explanation is the topic of the document above..' film quality, TV, youtube). - implementation type (e.g. 96kHz 24bit PCM, 2 channels muxed) - intention tag (Source, Raw, Intermediary and Target) - - OutputDesignation:: + + anchor:OutputDesignation[] link:#OutputDesignation[->]OutputDesignation:: A specification denoting where to connect the output of a pipe. It might either be given _absoulutely_, i.e as Pipe-ID, or by an _relative_ or _indirect_ specification - - OutputMapping:: + + anchor:OutputMapping[] link:#OutputMapping[->]OutputMapping:: translates one output designation into another one, e.g. when hooking up a sequence as virtual clip within another sequence - OutputSlot:: + anchor:OutputSlot[] link:#OutputSlot[->]OutputSlot:: opaque descriptor for an output facility, ready to dispose frames of data to be output. - OutputManager:: + anchor:OutputManager[] link:#OutputManager[->]OutputManager:: manages all external outputs of the application and provides output - slots targetting these + slots targetting these. - PlayController:: + anchor:PlayController[] link:#PlayController[->]PlayController:: coordinating playback, cueing and rewinding of a playback position, visible as 'Playhead' cursor in the GUI. When in play state, a PlayController requests and directs a render process to deliver the media data needed for playback. - RenderTask:: + anchor:RenderTask[] link:#RenderTask[->]RenderTask:: basically a PlayController, but collecting output directly, without moving a PlayheadCursor (maybe a progress indicator) and not operating in a timed fashion, but freewheeling or in background mode - Controller Gui:: + anchor:ControllerGui[] link:#ControllerGui[->]Controller Gui:: This can be either a full Software implementation for a Transport control (Widgets for Start/Stop/Rev/Ffw etc) or some Gui managing an Input Device. They share some feature to attach them to controllable gui-entities (Viewers, Timeline Views) - Viewer:: + anchor:Viewer[] link:#Viewer[->]Viewer:: the display destination showing video frame and possibly some effect overlays (masking etc.). When attached to a timeline, a viewer reflects the state of the timeline's associated PlayController, and it @@ -166,21 +164,21 @@ explanations, the long explanation is the topic of the document above..' mere control for sending video to a dedicated monitor (separate X display or firewire) - High Level Model:: + anchor:HighLevelModel[] link:#HighLevelModel[->]High Level Model:: All the session content to be edited and manipulated by the user through the GUI. The high-level-model will be translated by the Builder into the Low Level Model for rendering. - Low Level Model:: + anchor:LowLevelModel[] link:#LowLevelModel[->]Low Level Model:: The generated Processing Graph, to be ``performed'' within the engine to yield rendered output - Builder:: + anchor:Builder[] link:#Builder[->]Builder:: A kind of compiler which creates Low Level/Processing Graphs, by traversing and evaluating the relevant parts of the high-level-model and using the Rules System. - Timeline Segment:: + anchor:TimelineSegment[] link:#TimelineSegment[->]Timeline Segment:: A range in the timeline which yields in one Processing graph, commonly the range between cut points (which require a reconfiguration of the graph). @@ -188,23 +186,23 @@ explanations, the long explanation is the topic of the document above..' // Note by Ichthyo: "Extent" sounds somewhat cool, just it didn't occur to me as a term. // We may well agree on it, if "extent" communicates the meaning better. Up to now, I called it "segment" - Assets View:: + anchor:AssetsView[] link:#AssetsView[->]Assets View:: The windows showing and managing the available things to work with. This are the ingested footage, already composed Clips, available Sub-Projects, Effects, Transitions and internal artefacts. - Rules System:: + anchor:RulesSystem[] link:#RulesSystem[->]Rules System:: Translating the Timeline to the underlying Processing Graphs involves some logic and knowledge about handling/converting data. This may be configued with this Rules System. Typically Lumiera will provide sane defaults for most purposes but may extended/refined for site specific - things. + things. - Processing Graph:: + anchor:ProcessingGraph[] link:#ProcessingGraph[->]Processing Graph:: Rendering is expressed as detailed network of Nodes, each defining a processing step. - Config System/Preferences:: + anchor:ConfigSystem_Preferences[] link:#ConfigSystem_Preferences[->]Config System/Preferences:: TODO: agree on one term here Provides defaults for all kinds of application configurations. These include machine specific configurations for performance @@ -213,13 +211,12 @@ explanations, the long explanation is the topic of the document above..' data. Many settings will then be stored within the project and the Config/Preferences becomes overridden by that. - Input Device:: + anchor:InputDevice[] link:#InputDevice[->]Input Device:: some hardware controler, like a extra Keyboard, Midi Mixer, Jog, .. TODO: decide if the main keyboard as special (global) state. - Focus:: + anchor:Focus[] link:#Focus[->]Focus:: TBD - Cursor:: + anchor:Cursor[] link:#Cursor[->]Cursor:: playback- or edit position - diff --git a/src/backend/backend.c b/src/backend/backend.c index fa007c404..0f2c62b8a 100644 --- a/src/backend/backend.c +++ b/src/backend/backend.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/backend/backend.h b/src/backend/backend.h index f1e68c85b..163c8fc7c 100644 --- a/src/backend/backend.h +++ b/src/backend/backend.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/backend/enginefacade.cpp b/src/backend/enginefacade.cpp index 93b2dedc8..d99ad83fa 100644 --- a/src/backend/enginefacade.cpp +++ b/src/backend/enginefacade.cpp @@ -1,23 +1,23 @@ /* EngineFacade - access point for communicating with the render engine - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/backend/enginefacade.hpp b/src/backend/enginefacade.hpp index 05680d39b..7cbf698e8 100644 --- a/src/backend/enginefacade.hpp +++ b/src/backend/enginefacade.hpp @@ -1,23 +1,23 @@ /* ENGINEFACADE.hpp - access point for communicating with the render engine - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/backend/file.c b/src/backend/file.c index 3303cae5d..b636bdf29 100644 --- a/src/backend/file.c +++ b/src/backend/file.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/backend/file.h b/src/backend/file.h index d70525004..8b8b94ca5 100644 --- a/src/backend/file.h +++ b/src/backend/file.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/backend/filedescriptor.c b/src/backend/filedescriptor.c index ee0366dcb..a1bfcd15f 100644 --- a/src/backend/filedescriptor.c +++ b/src/backend/filedescriptor.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/backend/filedescriptor.h b/src/backend/filedescriptor.h index 89306cab8..8f73bfb2c 100644 --- a/src/backend/filedescriptor.h +++ b/src/backend/filedescriptor.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/backend/filedescriptorregistry.c b/src/backend/filedescriptorregistry.c index 5dc186a3e..c31623a78 100644 --- a/src/backend/filedescriptorregistry.c +++ b/src/backend/filedescriptorregistry.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/backend/filedescriptorregistry.h b/src/backend/filedescriptorregistry.h index c3a03da83..2faea51f9 100644 --- a/src/backend/filedescriptorregistry.h +++ b/src/backend/filedescriptorregistry.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/backend/filehandle.c b/src/backend/filehandle.c index 37944ba26..409d6ed32 100644 --- a/src/backend/filehandle.c +++ b/src/backend/filehandle.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/backend/filehandle.h b/src/backend/filehandle.h index 6ad9c5832..1290a52e8 100644 --- a/src/backend/filehandle.h +++ b/src/backend/filehandle.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/backend/filehandlecache.c b/src/backend/filehandlecache.c index c130fbd39..abf77e49e 100644 --- a/src/backend/filehandlecache.c +++ b/src/backend/filehandlecache.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/backend/filehandlecache.h b/src/backend/filehandlecache.h index 29a023b17..ca130cfbd 100644 --- a/src/backend/filehandlecache.h +++ b/src/backend/filehandlecache.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/backend/fileheader.c b/src/backend/fileheader.c index 5bbe8c4e5..9b7e44959 100644 --- a/src/backend/fileheader.c +++ b/src/backend/fileheader.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/backend/fileheader.h b/src/backend/fileheader.h index 03058181c..a14abd97f 100644 --- a/src/backend/fileheader.h +++ b/src/backend/fileheader.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/backend/mediaaccessfacade.cpp b/src/backend/mediaaccessfacade.cpp index f3308f4a7..e9feab29f 100644 --- a/src/backend/mediaaccessfacade.cpp +++ b/src/backend/mediaaccessfacade.cpp @@ -1,23 +1,23 @@ /* MediaAccessFacade - functions for querying media file and channels. - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/backend/mediaaccessfacade.hpp b/src/backend/mediaaccessfacade.hpp index 3d009c6fe..261e84a61 100644 --- a/src/backend/mediaaccessfacade.hpp +++ b/src/backend/mediaaccessfacade.hpp @@ -1,23 +1,23 @@ /* MEDIAACCESSFACADE.hpp - functions for querying media file and channels. - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/backend/mmap.c b/src/backend/mmap.c index 37523c9f0..f31c05154 100644 --- a/src/backend/mmap.c +++ b/src/backend/mmap.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/backend/mmap.h b/src/backend/mmap.h index 155ec0d06..77f4672d0 100644 --- a/src/backend/mmap.h +++ b/src/backend/mmap.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/backend/mmapcache.c b/src/backend/mmapcache.c index cda0493c7..dc91b2baa 100644 --- a/src/backend/mmapcache.c +++ b/src/backend/mmapcache.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/backend/mmapcache.h b/src/backend/mmapcache.h index 5b3704512..2b5345696 100644 --- a/src/backend/mmapcache.h +++ b/src/backend/mmapcache.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/backend/mmapings.c b/src/backend/mmapings.c index 376519f9e..a751b1b89 100644 --- a/src/backend/mmapings.c +++ b/src/backend/mmapings.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/backend/mmapings.h b/src/backend/mmapings.h index 28b567d93..39cf7aa9f 100644 --- a/src/backend/mmapings.h +++ b/src/backend/mmapings.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/backend/netnodefacade.cpp b/src/backend/netnodefacade.cpp index 24d97b8b2..99f64e1bb 100644 --- a/src/backend/netnodefacade.cpp +++ b/src/backend/netnodefacade.cpp @@ -1,23 +1,23 @@ /* NetNodeFacade - access point for maintaining a renderfarm node - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/backend/netnodefacade.hpp b/src/backend/netnodefacade.hpp index afeee3b59..17ceb60de 100644 --- a/src/backend/netnodefacade.hpp +++ b/src/backend/netnodefacade.hpp @@ -1,23 +1,23 @@ /* NETNODEFACADE.hpp - access point for maintaining a renderfarm node - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/backend/resourcecollector.c b/src/backend/resourcecollector.c index 7ef6a48de..ec9dce348 100644 --- a/src/backend/resourcecollector.c +++ b/src/backend/resourcecollector.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/backend/resourcecollector.h b/src/backend/resourcecollector.h index 1d41e3e44..6a90ddb7a 100644 --- a/src/backend/resourcecollector.h +++ b/src/backend/resourcecollector.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/backend/scriptrunnerfacade.cpp b/src/backend/scriptrunnerfacade.cpp index 9ecf4f13f..a36d70fea 100644 --- a/src/backend/scriptrunnerfacade.cpp +++ b/src/backend/scriptrunnerfacade.cpp @@ -1,23 +1,23 @@ /* ScriptRunnerFacade - access point for running a script within Lumiera application context - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/backend/scriptrunnerfacade.hpp b/src/backend/scriptrunnerfacade.hpp index b0c1f74ec..d54087497 100644 --- a/src/backend/scriptrunnerfacade.hpp +++ b/src/backend/scriptrunnerfacade.hpp @@ -1,23 +1,23 @@ /* SCRIPTRUNNERFACADE.hpp - access point for running a script within Lumiera application context - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/backend/thread-wrapper.hpp b/src/backend/thread-wrapper.hpp index 1a6c4be49..c45fd4e75 100644 --- a/src/backend/thread-wrapper.hpp +++ b/src/backend/thread-wrapper.hpp @@ -1,24 +1,24 @@ /* THREADWRAPPER.hpp - thin convenience wrapper for starting lumiera threads - + Copyright (C) Lumiera.org 2008 - 2010 Hermann Vosseler <Ichthyostega@web.de> Christian Thaeter <ct@pipapo.org> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/backend/threadpool-init.cpp b/src/backend/threadpool-init.cpp index 0f4bdaf90..604a6a8ac 100644 --- a/src/backend/threadpool-init.cpp +++ b/src/backend/threadpool-init.cpp @@ -1,23 +1,23 @@ /* ThreadpoolInit - pull up the Thread management automagically at application initialisation - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/backend/threadpool-init.hpp b/src/backend/threadpool-init.hpp index aebdb00aa..05fe29370 100644 --- a/src/backend/threadpool-init.hpp +++ b/src/backend/threadpool-init.hpp @@ -1,24 +1,24 @@ /* THREADPOOL-INIT.hpp - pull up the Thread management automagically at application initialisation - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file threadpool-init.hpp diff --git a/src/backend/threadpool.c b/src/backend/threadpool.c index 0e144e31c..b0ac7c0b3 100644 --- a/src/backend/threadpool.c +++ b/src/backend/threadpool.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/backend/threadpool.h b/src/backend/threadpool.h index 28bb21020..6f80c8bb9 100644 --- a/src/backend/threadpool.h +++ b/src/backend/threadpool.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/backend/threads.c b/src/backend/threads.c index f4e379354..1261fe134 100644 --- a/src/backend/threads.c +++ b/src/backend/threads.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/backend/threads.h b/src/backend/threads.h index 1eee2d536..6e755be48 100644 --- a/src/backend/threads.h +++ b/src/backend/threads.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/common/appstate.cpp b/src/common/appstate.cpp index dfcab9834..20d2c6e96 100644 --- a/src/common/appstate.cpp +++ b/src/common/appstate.cpp @@ -1,23 +1,23 @@ /* AppState - application initialisation and behaviour - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/common/appstate.hpp b/src/common/appstate.hpp index 1f16f0630..6472b5102 100644 --- a/src/common/appstate.hpp +++ b/src/common/appstate.hpp @@ -1,23 +1,23 @@ /* APPSTATE.hpp - application initialisation and behaviour - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file appstate.hpp diff --git a/src/common/config.c b/src/common/config.c index 88961ddc6..a767cce96 100644 --- a/src/common/config.c +++ b/src/common/config.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/common/config.h b/src/common/config.h index 7cf0ff2df..4fa462f25 100644 --- a/src/common/config.h +++ b/src/common/config.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/common/config_interface.c b/src/common/config_interface.c index a40a8ab03..9f83b3e56 100644 --- a/src/common/config_interface.c +++ b/src/common/config_interface.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/common/config_interface.h b/src/common/config_interface.h index d4eca205a..0e605ca30 100644 --- a/src/common/config_interface.h +++ b/src/common/config_interface.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/common/config_lookup.c b/src/common/config_lookup.c index f2bca1ff1..0c0a776a4 100644 --- a/src/common/config_lookup.c +++ b/src/common/config_lookup.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/common/config_lookup.h b/src/common/config_lookup.h index aa11e8dff..eadf96b39 100644 --- a/src/common/config_lookup.h +++ b/src/common/config_lookup.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/common/config_typed.c b/src/common/config_typed.c index b916cdb61..68083931f 100644 --- a/src/common/config_typed.c +++ b/src/common/config_typed.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/common/config_wordlist.c b/src/common/config_wordlist.c index 0762a74a7..a528286f4 100644 --- a/src/common/config_wordlist.c +++ b/src/common/config_wordlist.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/common/configentry.c b/src/common/configentry.c index 0b09f76c3..495690c04 100644 --- a/src/common/configentry.c +++ b/src/common/configentry.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/common/configentry.h b/src/common/configentry.h index 92d63ec46..c2c1eadd8 100644 --- a/src/common/configentry.h +++ b/src/common/configentry.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/common/configfacade.cpp b/src/common/configfacade.cpp index b0860e08e..08aa04903 100644 --- a/src/common/configfacade.cpp +++ b/src/common/configfacade.cpp @@ -1,23 +1,23 @@ /* ConfigFacade - C++ convenience wrapper and startup of the config system - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/common/configitem.c b/src/common/configitem.c index c69d804d8..e2a22c98c 100644 --- a/src/common/configitem.c +++ b/src/common/configitem.c @@ -7,8 +7,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/common/configitem.h b/src/common/configitem.h index 942f77ef8..3c3823422 100644 --- a/src/common/configitem.h +++ b/src/common/configitem.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/common/configrules.cpp b/src/common/configrules.cpp index b4d4ea00a..b42e5591a 100644 --- a/src/common/configrules.cpp +++ b/src/common/configrules.cpp @@ -1,24 +1,24 @@ /* ConfigRules - interface for rule based configuration - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/common/configrules.hpp b/src/common/configrules.hpp index 473b82155..841858883 100644 --- a/src/common/configrules.hpp +++ b/src/common/configrules.hpp @@ -1,23 +1,23 @@ /* CONFIGRULES.hpp - interface for rule based configuration - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/common/external/libgavl.cpp b/src/common/external/libgavl.cpp index 8cb37a12f..b60caecea 100644 --- a/src/common/external/libgavl.cpp +++ b/src/common/external/libgavl.cpp @@ -1,23 +1,23 @@ /* ImplFacadeGAVL - facade for integrating the GAVL media handling library - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/common/external/libgavl.hpp b/src/common/external/libgavl.hpp index 505fc4325..ac6a00b03 100644 --- a/src/common/external/libgavl.hpp +++ b/src/common/external/libgavl.hpp @@ -1,23 +1,23 @@ /* LILBGAVL.hpp - facade for integrating the GAVL media handling library - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/common/guifacade.cpp b/src/common/guifacade.cpp index e786dba40..aff7febb8 100644 --- a/src/common/guifacade.cpp +++ b/src/common/guifacade.cpp @@ -1,23 +1,23 @@ /* GuiFacade - access point for communicating with the Lumiera GTK GUI - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/common/instancehandle.hpp b/src/common/instancehandle.hpp index 9b9a12bd9..d6c98e546 100644 --- a/src/common/instancehandle.hpp +++ b/src/common/instancehandle.hpp @@ -1,23 +1,23 @@ /* INSTANCEHANDLE.hpp - automatically handling interface lifecycle - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file instancehandle.hpp diff --git a/src/common/interface.c b/src/common/interface.c index a8d91c40f..71cf71e96 100644 --- a/src/common/interface.c +++ b/src/common/interface.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/common/interface.h b/src/common/interface.h index d50af3233..3a8e2fb5c 100644 --- a/src/common/interface.h +++ b/src/common/interface.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/common/interfacedescriptor.h b/src/common/interfacedescriptor.h index 121c0711e..c6aab3043 100644 --- a/src/common/interfacedescriptor.h +++ b/src/common/interfacedescriptor.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/common/interfaceproxy.cpp b/src/common/interfaceproxy.cpp index 1970cce21..e403e40a5 100644 --- a/src/common/interfaceproxy.cpp +++ b/src/common/interfaceproxy.cpp @@ -1,23 +1,23 @@ /* InterfaceProxy - definition of forwarding proxies for the facade interfaces - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/common/interfaceregistry.c b/src/common/interfaceregistry.c index 1637e48df..121bf6408 100644 --- a/src/common/interfaceregistry.c +++ b/src/common/interfaceregistry.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/common/interfaceregistry.h b/src/common/interfaceregistry.h index bc4f11440..677ef6c89 100644 --- a/src/common/interfaceregistry.h +++ b/src/common/interfaceregistry.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/common/option.cpp b/src/common/option.cpp index 84b28b942..d01afc88d 100644 --- a/src/common/option.cpp +++ b/src/common/option.cpp @@ -1,23 +1,23 @@ /* Option - handle cmdline for starting the Lumiera application - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/common/option.hpp b/src/common/option.hpp index c44a6b35e..a6ccc4ab9 100644 --- a/src/common/option.hpp +++ b/src/common/option.hpp @@ -1,23 +1,23 @@ /* OPTION.hpp - handle cmdline for starting the Lumiera application - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/common/plugin.c b/src/common/plugin.c index 0b9a515a5..2638af5d1 100644 --- a/src/common/plugin.c +++ b/src/common/plugin.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/common/plugin.h b/src/common/plugin.h index df75cd012..bd77b3806 100644 --- a/src/common/plugin.h +++ b/src/common/plugin.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/common/plugin_dynlib.c b/src/common/plugin_dynlib.c index 6c30afe85..7e8618628 100644 --- a/src/common/plugin_dynlib.c +++ b/src/common/plugin_dynlib.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/common/query/fake-configrules.cpp b/src/common/query/fake-configrules.cpp index b2f187dea..a095a4acf 100644 --- a/src/common/query/fake-configrules.cpp +++ b/src/common/query/fake-configrules.cpp @@ -1,23 +1,23 @@ /* FakeConfigRules - dummy implementation of the config rules system - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/common/query/fake-configrules.hpp b/src/common/query/fake-configrules.hpp index 7cdf1df37..bbc9f91ca 100644 --- a/src/common/query/fake-configrules.hpp +++ b/src/common/query/fake-configrules.hpp @@ -1,23 +1,23 @@ /* FAKE-CONFIGRULES.hpp - dummy implementation of the config rules system - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/common/subsys.cpp b/src/common/subsys.cpp index 68850f4c8..2a9b2446c 100644 --- a/src/common/subsys.cpp +++ b/src/common/subsys.cpp @@ -1,23 +1,23 @@ /* Subsys - interface for describing an application part to be handled by main() - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/common/subsys.hpp b/src/common/subsys.hpp index ee0e229ad..363b17e51 100644 --- a/src/common/subsys.hpp +++ b/src/common/subsys.hpp @@ -1,23 +1,23 @@ /* SUBSYS.hpp - interface for describing an application part to be handled by main() - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file subsys.hpp diff --git a/src/common/subsystem-runner.hpp b/src/common/subsystem-runner.hpp index 8e7edcffc..89a90245d 100644 --- a/src/common/subsystem-runner.hpp +++ b/src/common/subsystem-runner.hpp @@ -1,23 +1,23 @@ /* SUBSYSTEMRUNNER.hpp - helper for controlling execution of several dependent subsystems - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/gui/controller/controller.cpp b/src/gui/controller/controller.cpp index 2d7deefc9..c31ca787d 100644 --- a/src/gui/controller/controller.cpp +++ b/src/gui/controller/controller.cpp @@ -1,23 +1,23 @@ /* controllerk.cpp - Implementation of the timeline track object - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "controller.hpp" diff --git a/src/gui/controller/controller.hpp b/src/gui/controller/controller.hpp index 594f5e19e..29d3684df 100644 --- a/src/gui/controller/controller.hpp +++ b/src/gui/controller/controller.hpp @@ -1,23 +1,23 @@ /* controller.hpp - Declaration of the controller object - + Copyright (C) Lumiera.org 2009, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file controller/controller.hpp ** This file contains the definition of the controller object diff --git a/src/gui/controller/playback-controller.cpp b/src/gui/controller/playback-controller.cpp index bfb623860..12727c86b 100644 --- a/src/gui/controller/playback-controller.cpp +++ b/src/gui/controller/playback-controller.cpp @@ -1,23 +1,23 @@ /* playback-controller.cpp - Implementation of the playback controller object - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/gui/controller/playback-controller.hpp b/src/gui/controller/playback-controller.hpp index 7ef5ce4fb..e403bc528 100644 --- a/src/gui/controller/playback-controller.hpp +++ b/src/gui/controller/playback-controller.hpp @@ -1,23 +1,23 @@ /* playback-controller.hpp - Declaration of the playback controller object - + Copyright (C) Lumiera.org 2009, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file controller/playback-controller.hpp ** This file contains the definition of the playback controller object diff --git a/src/gui/dialogs/dialog.hpp b/src/gui/dialogs/dialog.hpp index 454ddee6a..c72949b3b 100644 --- a/src/gui/dialogs/dialog.hpp +++ b/src/gui/dialogs/dialog.hpp @@ -1,23 +1,23 @@ /* dialog.hpp - Definitions of globals for dialogs - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file render.hpp ** This file contains definitions of globals for dialogs diff --git a/src/gui/dialogs/name-chooser.cpp b/src/gui/dialogs/name-chooser.cpp index c44c7adad..c61527be8 100644 --- a/src/gui/dialogs/name-chooser.cpp +++ b/src/gui/dialogs/name-chooser.cpp @@ -1,23 +1,23 @@ /* name-chooser.cpp - Definition of the name chooser dialog object - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "../gtk-lumiera.hpp" diff --git a/src/gui/dialogs/name-chooser.hpp b/src/gui/dialogs/name-chooser.hpp index c848820e3..0794e6427 100644 --- a/src/gui/dialogs/name-chooser.hpp +++ b/src/gui/dialogs/name-chooser.hpp @@ -1,23 +1,23 @@ /* name-chooser.hpp - Definition of the name chooser dialog object - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file name-chooser.hpp ** This file contains the definition of the name chooser dialog diff --git a/src/gui/dialogs/preferences-dialog.cpp b/src/gui/dialogs/preferences-dialog.cpp index dae928143..4db367360 100644 --- a/src/gui/dialogs/preferences-dialog.cpp +++ b/src/gui/dialogs/preferences-dialog.cpp @@ -1,23 +1,23 @@ /* preferences-dialog.cpp - Implementation of the application preferences dialog - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "../gtk-lumiera.hpp" diff --git a/src/gui/dialogs/preferences-dialog.hpp b/src/gui/dialogs/preferences-dialog.hpp index 6e9ce2087..62a37ed07 100644 --- a/src/gui/dialogs/preferences-dialog.hpp +++ b/src/gui/dialogs/preferences-dialog.hpp @@ -1,23 +1,23 @@ /* preferences-dialog.hpp - Definition of the application preferences dialog - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file render.hpp ** This file contains the definition of the application preferences dialog diff --git a/src/gui/dialogs/render.cpp b/src/gui/dialogs/render.cpp index 88a8c41ff..6178c014c 100644 --- a/src/gui/dialogs/render.cpp +++ b/src/gui/dialogs/render.cpp @@ -1,23 +1,23 @@ /* render.cpp - Definition of the main workspace window object - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "../gtk-lumiera.hpp" diff --git a/src/gui/dialogs/render.hpp b/src/gui/dialogs/render.hpp index 51989a25e..8d586c398 100644 --- a/src/gui/dialogs/render.hpp +++ b/src/gui/dialogs/render.hpp @@ -1,23 +1,23 @@ /* render.hpp - Definition of the render output dialog - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file render.hpp ** This file contains the definition of the render output dialog diff --git a/src/gui/display-interface-proxy.hpp b/src/gui/display-interface-proxy.hpp index 8ae035124..e0fd15031 100644 --- a/src/gui/display-interface-proxy.hpp +++ b/src/gui/display-interface-proxy.hpp @@ -1,23 +1,23 @@ /* Display(Proxy) - service providing access to a display for outputting frames - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/gui/display-service.cpp b/src/gui/display-service.cpp index 1c20dd4de..96600bf3b 100644 --- a/src/gui/display-service.cpp +++ b/src/gui/display-service.cpp @@ -1,23 +1,23 @@ /* DisplayService - service providing access to a display for outputting frames - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/gui/display-service.hpp b/src/gui/display-service.hpp index 2a84f9c12..1dec2c192 100644 --- a/src/gui/display-service.hpp +++ b/src/gui/display-service.hpp @@ -1,23 +1,23 @@ /* DISPLAY-SERVICE.hpp - service providing access to a display for outputting frames - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file display-service.hpp diff --git a/src/gui/gtk-lumiera.cpp b/src/gui/gtk-lumiera.cpp index 624a7f68f..1b0303903 100644 --- a/src/gui/gtk-lumiera.cpp +++ b/src/gui/gtk-lumiera.cpp @@ -1,23 +1,23 @@ /* gtk-lumiera.cpp - The entry point for the GTK GUI application - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include <gtkmm.h> diff --git a/src/gui/gtk-lumiera.hpp b/src/gui/gtk-lumiera.hpp index c1b5a773a..bc26c1d96 100644 --- a/src/gui/gtk-lumiera.hpp +++ b/src/gui/gtk-lumiera.hpp @@ -1,23 +1,23 @@ /* gtk-lumiera.hpp - Application wide global definitions - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file gtk-lumiera.hpp ** This file contains application wide global definitions diff --git a/src/gui/guifacade.hpp b/src/gui/guifacade.hpp index d7bf7f542..27de18a35 100644 --- a/src/gui/guifacade.hpp +++ b/src/gui/guifacade.hpp @@ -1,23 +1,23 @@ /* GUIFACADE.hpp - access point for communicating with the Lumiera GTK GUI - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file guifacade.hpp diff --git a/src/gui/guistart.cpp b/src/gui/guistart.cpp index e345f9047..d8c5513d8 100644 --- a/src/gui/guistart.cpp +++ b/src/gui/guistart.cpp @@ -1,25 +1,25 @@ /* GuiStart - entry point for the lumiera GUI loaded as shared module - + Copyright (C) Lumiera.org 2007-2008, Joel Holdsworth <joel@airwebreathe.org.uk> Christian Thaeter <ct@pipapo.org> Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/gui/model/clip-track.cpp b/src/gui/model/clip-track.cpp index 5f8907599..30407a1f8 100644 --- a/src/gui/model/clip-track.cpp +++ b/src/gui/model/clip-track.cpp @@ -1,23 +1,23 @@ /* clip-track.cpp - Implementation of a clip containing track object - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "clip-track.hpp" diff --git a/src/gui/model/clip-track.hpp b/src/gui/model/clip-track.hpp index c3c7e0e2f..5e8ea354c 100644 --- a/src/gui/model/clip-track.hpp +++ b/src/gui/model/clip-track.hpp @@ -1,23 +1,23 @@ /* clip-track.hpp - Declaration of a clip containing track object - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** * @file widgets/timeline/clip-track.hpp diff --git a/src/gui/model/clip.cpp b/src/gui/model/clip.cpp index 802543991..2815ea7fe 100644 --- a/src/gui/model/clip.cpp +++ b/src/gui/model/clip.cpp @@ -1,23 +1,23 @@ /* timeline-track.cpp - Implementation of the timeline clip object - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "clip.hpp" diff --git a/src/gui/model/clip.hpp b/src/gui/model/clip.hpp index 89f7d89d7..df9d67d1c 100644 --- a/src/gui/model/clip.hpp +++ b/src/gui/model/clip.hpp @@ -1,23 +1,23 @@ /* timeline-clip.hpp - Declaration of the timeline clip object - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file widgets/timeline/timeline-clip.hpp ** This file contains the definition of timeline clip object diff --git a/src/gui/model/group-track.cpp b/src/gui/model/group-track.cpp index 73ac08114..067821d82 100644 --- a/src/gui/model/group-track.cpp +++ b/src/gui/model/group-track.cpp @@ -1,23 +1,23 @@ /* group-track.cpp - Implementation of the timeline group track object - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "group-track.hpp" diff --git a/src/gui/model/group-track.hpp b/src/gui/model/group-track.hpp index ae3f48b63..6dc15db31 100644 --- a/src/gui/model/group-track.hpp +++ b/src/gui/model/group-track.hpp @@ -1,23 +1,23 @@ /* group-track.hpp - Declaration of the timeline group track object - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file widgets/timeline/group-track.hpp ** This file contains the definition of group track timeline objects diff --git a/src/gui/model/parent-track.cpp b/src/gui/model/parent-track.cpp index f7122fe46..874c7e9d5 100644 --- a/src/gui/model/parent-track.cpp +++ b/src/gui/model/parent-track.cpp @@ -1,23 +1,23 @@ /* parent-track-.cpp - Implementation of the ParentTrack class - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "parent-track.hpp" diff --git a/src/gui/model/parent-track.hpp b/src/gui/model/parent-track.hpp index bc26be80f..6d5b0481a 100644 --- a/src/gui/model/parent-track.hpp +++ b/src/gui/model/parent-track.hpp @@ -1,23 +1,23 @@ /* parent-track.hpp - Definition of the ParentTrack class - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file parent-track.hpp ** This file contains the definition of ParentTrack, a class which diff --git a/src/gui/model/project.cpp b/src/gui/model/project.cpp index cc7dd6b84..92dda0758 100644 --- a/src/gui/model/project.cpp +++ b/src/gui/model/project.cpp @@ -1,23 +1,23 @@ /* project.cpp - Implementation of the Project class - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include <boost/foreach.hpp> diff --git a/src/gui/model/project.hpp b/src/gui/model/project.hpp index f70029f88..42fb8d611 100644 --- a/src/gui/model/project.hpp +++ b/src/gui/model/project.hpp @@ -1,23 +1,23 @@ /* project.hpp - Definition of the Project class - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file project.hpp ** This file contains the definition of Project, a class which diff --git a/src/gui/model/sequence.cpp b/src/gui/model/sequence.cpp index 361724125..6cb0269a9 100644 --- a/src/gui/model/sequence.cpp +++ b/src/gui/model/sequence.cpp @@ -1,23 +1,23 @@ /* sequence.hpp - Implementation of the Sequence class - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "sequence.hpp" diff --git a/src/gui/model/sequence.hpp b/src/gui/model/sequence.hpp index 717368a9c..ae4f59a2f 100644 --- a/src/gui/model/sequence.hpp +++ b/src/gui/model/sequence.hpp @@ -1,23 +1,23 @@ /* sequence.hpp - Definition of the Sequence class - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file sequence.hpp ** This file contains the definition of Sequence, a class which diff --git a/src/gui/model/track.cpp b/src/gui/model/track.cpp index d94926229..6d5cf2a65 100644 --- a/src/gui/model/track.cpp +++ b/src/gui/model/track.cpp @@ -1,23 +1,23 @@ /* track.cpp - Implementation of the Track class - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "track.hpp" diff --git a/src/gui/model/track.hpp b/src/gui/model/track.hpp index c59d06875..6dc5d2b71 100644 --- a/src/gui/model/track.hpp +++ b/src/gui/model/track.hpp @@ -1,23 +1,23 @@ /* track.hpp - Definition of the Track class - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file track.hpp ** This file contains the definition of Track, a class which diff --git a/src/gui/notification-interface-proxy.hpp b/src/gui/notification-interface-proxy.hpp index 361e01865..79500e8df 100644 --- a/src/gui/notification-interface-proxy.hpp +++ b/src/gui/notification-interface-proxy.hpp @@ -1,23 +1,23 @@ /* Notification(Proxy) - public service allowing to push informations into the GUI - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/gui/notification-service.cpp b/src/gui/notification-service.cpp index 080d1461d..0cfd3c826 100644 --- a/src/gui/notification-service.cpp +++ b/src/gui/notification-service.cpp @@ -1,23 +1,23 @@ /* NotificationService - public service allowing to push informations into the GUI - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/gui/notification-service.hpp b/src/gui/notification-service.hpp index c6e862be8..d7e2e218b 100644 --- a/src/gui/notification-service.hpp +++ b/src/gui/notification-service.hpp @@ -1,23 +1,23 @@ /* NOTIFICATION-SERVICE.hpp - public service allowing to push informations into the GUI - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file notification-service.hpp diff --git a/src/gui/output/displayer.cpp b/src/gui/output/displayer.cpp index 482db826e..251279a9a 100644 --- a/src/gui/output/displayer.cpp +++ b/src/gui/output/displayer.cpp @@ -1,25 +1,25 @@ /* displayer.cpp - Implements the base class for displaying video - + Copyright (C) Lumiera.org 2000, Arne Schirmacher <arne@schirmacher.de> 2001-2007, Dan Dennedy <dan@dennedy.org> 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "../gtk-lumiera.hpp" diff --git a/src/gui/output/displayer.hpp b/src/gui/output/displayer.hpp index 5dc576565..1ec3ed6be 100644 --- a/src/gui/output/displayer.hpp +++ b/src/gui/output/displayer.hpp @@ -1,25 +1,25 @@ /* displayer.hpp - Defines the base class for displaying video - + Copyright (C) Lumiera.org 2000, Arne Schirmacher <arne@schirmacher.de> 2001-2007, Dan Dennedy <dan@dennedy.org> 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file displayer.hpp ** This file contains the defintion of Displayer; the base class diff --git a/src/gui/output/gdkdisplayer.cpp b/src/gui/output/gdkdisplayer.cpp index 523ed2bb5..1d6f96214 100644 --- a/src/gui/output/gdkdisplayer.cpp +++ b/src/gui/output/gdkdisplayer.cpp @@ -1,25 +1,25 @@ /* gdkdisplayer.cpp - Implements the class for displaying video via GDK - + Copyright (C) Lumiera.org 2000, Arne Schirmacher <arne@schirmacher.de> 2001-2007, Dan Dennedy <dan@dennedy.org> 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "../gtk-lumiera.hpp" diff --git a/src/gui/output/gdkdisplayer.hpp b/src/gui/output/gdkdisplayer.hpp index 76bb66d0f..291a20503 100644 --- a/src/gui/output/gdkdisplayer.hpp +++ b/src/gui/output/gdkdisplayer.hpp @@ -1,25 +1,25 @@ /* gdkdisplayer.hpp - Defines the class for displaying video via GDK - + Copyright (C) Lumiera.org 2000, Arne Schirmacher <arne@schirmacher.de> 2001-2007, Dan Dennedy <dan@dennedy.org> 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file gdkdisplayer.hpp ** This file contains the definition of XvDisplayer, the XVideo diff --git a/src/gui/output/xvdisplayer.cpp b/src/gui/output/xvdisplayer.cpp index 5799f93dc..4c0780101 100644 --- a/src/gui/output/xvdisplayer.cpp +++ b/src/gui/output/xvdisplayer.cpp @@ -1,25 +1,25 @@ /* xvdisplayer.cpp - Implements the base class for XVideo display - + Copyright (C) Lumiera.org 2000, Arne Schirmacher <arne@schirmacher.de> 2001-2007, Dan Dennedy <dan@dennedy.org> 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "../gtk-lumiera.hpp" @@ -62,7 +62,7 @@ XvDisplayer::XvDisplayer( Gtk::Widget *drawing_area, int width, int height ) : for ( unsigned int n = 0; gotPort == false && n < count; ++n ) { // Diagnostics - INFO(gui, "%s, %u, %u", adaptorInfo[ n ].name, + INFO(gui, "%s, %lu, %lu", adaptorInfo[ n ].name, adaptorInfo[ n ].base_id, adaptorInfo[ n ].num_ports - 1); for ( unsigned int port = adaptorInfo[ n ].base_id; diff --git a/src/gui/output/xvdisplayer.hpp b/src/gui/output/xvdisplayer.hpp index afc25c670..9c7e58208 100644 --- a/src/gui/output/xvdisplayer.hpp +++ b/src/gui/output/xvdisplayer.hpp @@ -1,25 +1,25 @@ /* xvdisplayer.hpp - Defines the base class for XVideo display - + Copyright (C) Lumiera.org 2000, Arne Schirmacher <arne@schirmacher.de> 2001-2007, Dan Dennedy <dan@dennedy.org> 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file xvdisplayer.hpp ** This file contains the definition of XvDisplayer, the XVideo diff --git a/src/gui/panels/panel.cpp b/src/gui/panels/panel.cpp index 4d782d619..4db7a2ff2 100644 --- a/src/gui/panels/panel.cpp +++ b/src/gui/panels/panel.cpp @@ -1,23 +1,23 @@ /* panel.cpp - Implementation of Panel, the base class for docking panels - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "panel.hpp" diff --git a/src/gui/panels/panel.hpp b/src/gui/panels/panel.hpp index a46233169..5b0ed2afe 100644 --- a/src/gui/panels/panel.hpp +++ b/src/gui/panels/panel.hpp @@ -1,23 +1,23 @@ /* panel.hpp - Definition of Panel, the base class for docking panels - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file panel.hpp ** This file contains the definition of Panel; the base class diff --git a/src/gui/panels/resources-panel.cpp b/src/gui/panels/resources-panel.cpp index 1180ddd58..bd37cf195 100644 --- a/src/gui/panels/resources-panel.cpp +++ b/src/gui/panels/resources-panel.cpp @@ -1,23 +1,23 @@ /* assets-panel.cpp - Implementation of the assets panel - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "../gtk-lumiera.hpp" diff --git a/src/gui/panels/resources-panel.hpp b/src/gui/panels/resources-panel.hpp index 5c725dc3c..20021a920 100644 --- a/src/gui/panels/resources-panel.hpp +++ b/src/gui/panels/resources-panel.hpp @@ -1,23 +1,23 @@ /* assets-panel.hpp - Definition of the assets panel - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file assets-panel.hpp ** This file contains the definition of the assets panel diff --git a/src/gui/panels/timeline-panel.cpp b/src/gui/panels/timeline-panel.cpp index f85b83bc1..325cda76b 100644 --- a/src/gui/panels/timeline-panel.cpp +++ b/src/gui/panels/timeline-panel.cpp @@ -1,23 +1,23 @@ /* timeline-panel.cpp - Implementation of the timeline panel - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include <boost/foreach.hpp> diff --git a/src/gui/panels/timeline-panel.hpp b/src/gui/panels/timeline-panel.hpp index 01a618b26..8b209b3ff 100644 --- a/src/gui/panels/timeline-panel.hpp +++ b/src/gui/panels/timeline-panel.hpp @@ -1,23 +1,23 @@ /* timeline-panel.hpp - Definition of the timeline panel - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file timeline-panel.hpp ** This file contains the definition of the timeline panel diff --git a/src/gui/panels/viewer-panel.cpp b/src/gui/panels/viewer-panel.cpp index 94c055a00..01a94934f 100644 --- a/src/gui/panels/viewer-panel.cpp +++ b/src/gui/panels/viewer-panel.cpp @@ -1,23 +1,23 @@ /* viewer-panel.cpp - Implementation of the viewer panel - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "../gtk-lumiera.hpp" diff --git a/src/gui/panels/viewer-panel.hpp b/src/gui/panels/viewer-panel.hpp index a51b3997f..fd234a823 100644 --- a/src/gui/panels/viewer-panel.hpp +++ b/src/gui/panels/viewer-panel.hpp @@ -1,23 +1,23 @@ /* viewer-panel.hpp - Definition of the viewer panel - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file viewer-panel.hpp ** This file contains the definition of the viewer panel diff --git a/src/gui/util/rectangle.cpp b/src/gui/util/rectangle.cpp index 72c678a2b..e8797784c 100644 --- a/src/gui/util/rectangle.cpp +++ b/src/gui/util/rectangle.cpp @@ -1,23 +1,23 @@ /* rectangle.cpp - Implements utility functions for GDK rects - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "rectangle.hpp" diff --git a/src/gui/util/rectangle.hpp b/src/gui/util/rectangle.hpp index bd72adb2d..ae77d2305 100644 --- a/src/gui/util/rectangle.hpp +++ b/src/gui/util/rectangle.hpp @@ -1,23 +1,23 @@ /* rectangle.hpp - Declares utility functions for GDK rects - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ /** @file rectangle.hpp ** This file contains the declaration of the utility functions for diff --git a/src/gui/widgets/button-bar.cpp b/src/gui/widgets/button-bar.cpp index 9e121be48..ccd3c1919 100644 --- a/src/gui/widgets/button-bar.cpp +++ b/src/gui/widgets/button-bar.cpp @@ -1,23 +1,23 @@ /* button-bar.cpp - Implementation of the button bar widget - + Copyright (C) Lumiera.org 2009, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "button-bar.hpp" diff --git a/src/gui/widgets/button-bar.hpp b/src/gui/widgets/button-bar.hpp index d9a0b2d79..237f0270c 100644 --- a/src/gui/widgets/button-bar.hpp +++ b/src/gui/widgets/button-bar.hpp @@ -1,23 +1,23 @@ /* button-bar.hpp - Declaration of the button bar widget - + Copyright (C) Lumiera.org 2009, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file button-bar.hpp ** This file contains the definition of the button bar widget diff --git a/src/gui/widgets/menu-button.cpp b/src/gui/widgets/menu-button.cpp index 6c78d5c67..a5e7629b6 100644 --- a/src/gui/widgets/menu-button.cpp +++ b/src/gui/widgets/menu-button.cpp @@ -1,23 +1,23 @@ /* menu-button.cpp - Implementation of the menu button widget - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "menu-button.hpp" diff --git a/src/gui/widgets/menu-button.hpp b/src/gui/widgets/menu-button.hpp index 0ebca1b0b..fe32f677d 100644 --- a/src/gui/widgets/menu-button.hpp +++ b/src/gui/widgets/menu-button.hpp @@ -1,23 +1,23 @@ /* menu-button.hpp - Declaration of the menu button widget - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file menu-button.hpp ** This file contains the definition of menu button widget diff --git a/src/gui/widgets/mini-button.hpp b/src/gui/widgets/mini-button.hpp index 7edf510ad..9b6c39565 100644 --- a/src/gui/widgets/mini-button.hpp +++ b/src/gui/widgets/mini-button.hpp @@ -1,23 +1,23 @@ /* mini-button.hpp - Declaration of the mini button widget - + Copyright (C) Lumiera.org 2009, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file mini-button.hpp ** This file contains the definition of mini button widget diff --git a/src/gui/widgets/panel-bar.cpp b/src/gui/widgets/panel-bar.cpp index 251c9a7cf..7b41a4d32 100644 --- a/src/gui/widgets/panel-bar.cpp +++ b/src/gui/widgets/panel-bar.cpp @@ -1,23 +1,23 @@ /* panel-bar.hpp - Declaration of the panel bar widget - + Copyright (C) Lumiera.org 2009, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "panel-bar.hpp" diff --git a/src/gui/widgets/panel-bar.hpp b/src/gui/widgets/panel-bar.hpp index 30e08c91e..d9f9d99e1 100644 --- a/src/gui/widgets/panel-bar.hpp +++ b/src/gui/widgets/panel-bar.hpp @@ -1,23 +1,23 @@ /* panel-bar.hpp - Declaration of the panel bar widget - + Copyright (C) Lumiera.org 2009, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file panel-bar.hpp ** This file contains the definition of timeline widget diff --git a/src/gui/widgets/timeline-widget.cpp b/src/gui/widgets/timeline-widget.cpp index 721467536..eabf25514 100644 --- a/src/gui/widgets/timeline-widget.cpp +++ b/src/gui/widgets/timeline-widget.cpp @@ -1,23 +1,23 @@ /* timeline-widget.cpp - Implementation of the timeline widget - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "timeline-widget.hpp" diff --git a/src/gui/widgets/timeline-widget.hpp b/src/gui/widgets/timeline-widget.hpp index 41e368947..2278f5ca9 100644 --- a/src/gui/widgets/timeline-widget.hpp +++ b/src/gui/widgets/timeline-widget.hpp @@ -1,23 +1,23 @@ /* timeline-widget.hpp - Declaration of the timeline widget - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file timeline-widget.hpp ** This file contains the definition of timeline widget diff --git a/src/gui/widgets/timeline/timeline-arrow-tool.cpp b/src/gui/widgets/timeline/timeline-arrow-tool.cpp index c211e3ace..d985cf7bf 100644 --- a/src/gui/widgets/timeline/timeline-arrow-tool.cpp +++ b/src/gui/widgets/timeline/timeline-arrow-tool.cpp @@ -1,23 +1,23 @@ /* timeline-arrow-tool.cpp - Implementation of the ArrowTool class - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "timeline-arrow-tool.hpp" diff --git a/src/gui/widgets/timeline/timeline-arrow-tool.hpp b/src/gui/widgets/timeline/timeline-arrow-tool.hpp index 74d6f8e5c..be21b19c5 100644 --- a/src/gui/widgets/timeline/timeline-arrow-tool.hpp +++ b/src/gui/widgets/timeline/timeline-arrow-tool.hpp @@ -1,23 +1,23 @@ /* timeline-arrow-tool.hpp - Declaration of the ArrowTool class - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file timeline-arrow-tool.hpp ** This file contains the definition of the arrow tool class diff --git a/src/gui/widgets/timeline/timeline-body.cpp b/src/gui/widgets/timeline/timeline-body.cpp index 44eb9a472..eac93ba09 100644 --- a/src/gui/widgets/timeline/timeline-body.cpp +++ b/src/gui/widgets/timeline/timeline-body.cpp @@ -1,23 +1,23 @@ /* timeline.cpp - Implementation of the timeline widget - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include <cairomm-1.0/cairomm/cairomm.h> diff --git a/src/gui/widgets/timeline/timeline-body.hpp b/src/gui/widgets/timeline/timeline-body.hpp index e218ae3a4..46dfb2303 100644 --- a/src/gui/widgets/timeline/timeline-body.hpp +++ b/src/gui/widgets/timeline/timeline-body.hpp @@ -1,23 +1,23 @@ /* timeline-body.hpp - Declaration of the timeline body widget - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file timeline-body.hpp ** This file contains the definition of timeline body widget diff --git a/src/gui/widgets/timeline/timeline-clip-track.cpp b/src/gui/widgets/timeline/timeline-clip-track.cpp index 0f0f2f1f5..2b2bbb875 100644 --- a/src/gui/widgets/timeline/timeline-clip-track.cpp +++ b/src/gui/widgets/timeline/timeline-clip-track.cpp @@ -1,23 +1,23 @@ /* timeline-clip-track.cpp - Implementation of the timeline clip track object - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "timeline-clip-track.hpp" diff --git a/src/gui/widgets/timeline/timeline-clip-track.hpp b/src/gui/widgets/timeline/timeline-clip-track.hpp index 1ac781195..f6947fbe8 100644 --- a/src/gui/widgets/timeline/timeline-clip-track.hpp +++ b/src/gui/widgets/timeline/timeline-clip-track.hpp @@ -1,23 +1,23 @@ /* timeline-clip-track.hpp - Declaration of the timeline clip track object - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** * @file widgets/timeline/timeline-clip-track.hpp diff --git a/src/gui/widgets/timeline/timeline-clip.cpp b/src/gui/widgets/timeline/timeline-clip.cpp index a6b6fb124..e4c031e52 100644 --- a/src/gui/widgets/timeline/timeline-clip.cpp +++ b/src/gui/widgets/timeline/timeline-clip.cpp @@ -1,23 +1,23 @@ /* timeline-track.cpp - Implementation of the timeline clip object - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "timeline-clip.hpp" diff --git a/src/gui/widgets/timeline/timeline-clip.hpp b/src/gui/widgets/timeline/timeline-clip.hpp index 3dd8b0759..46cc751be 100644 --- a/src/gui/widgets/timeline/timeline-clip.hpp +++ b/src/gui/widgets/timeline/timeline-clip.hpp @@ -1,23 +1,23 @@ /* timeline-clip.hpp - Declaration of the timeline clip object - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file widgets/timeline/timeline-clip.hpp ** This file contains the definition of timeline clip object diff --git a/src/gui/widgets/timeline/timeline-group-track.cpp b/src/gui/widgets/timeline/timeline-group-track.cpp index 56ad56c0a..6ecc20005 100644 --- a/src/gui/widgets/timeline/timeline-group-track.cpp +++ b/src/gui/widgets/timeline/timeline-group-track.cpp @@ -1,23 +1,23 @@ /* timeline-group-track.cpp - Implementation of the timeline group track object - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "timeline-group-track.hpp" diff --git a/src/gui/widgets/timeline/timeline-group-track.hpp b/src/gui/widgets/timeline/timeline-group-track.hpp index 821acf9a8..62e4d8d53 100644 --- a/src/gui/widgets/timeline/timeline-group-track.hpp +++ b/src/gui/widgets/timeline/timeline-group-track.hpp @@ -1,23 +1,23 @@ /* timeline-group-track.hpp - Declaration of the timeline group track object - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file widgets/timeline/timeline-group-track.hpp ** This file contains the definition of group track timeline objects diff --git a/src/gui/widgets/timeline/timeline-header-container.cpp b/src/gui/widgets/timeline/timeline-header-container.cpp index 5b6291ade..93f2e6aee 100644 --- a/src/gui/widgets/timeline/timeline-header-container.cpp +++ b/src/gui/widgets/timeline/timeline-header-container.cpp @@ -1,24 +1,24 @@ /* timeline-header-container.cpp - Implementation of the timeline header container widget - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include <boost/foreach.hpp> diff --git a/src/gui/widgets/timeline/timeline-header-container.hpp b/src/gui/widgets/timeline/timeline-header-container.hpp index 8243135d2..921394eff 100644 --- a/src/gui/widgets/timeline/timeline-header-container.hpp +++ b/src/gui/widgets/timeline/timeline-header-container.hpp @@ -1,24 +1,24 @@ /* timeline-header-container.hpp - Declaration of the timeline header container widget - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file timeline-header-container.hpp ** This file contains the definition of the header container diff --git a/src/gui/widgets/timeline/timeline-header-widget.cpp b/src/gui/widgets/timeline/timeline-header-widget.cpp index f51e026cf..ae5e85a98 100644 --- a/src/gui/widgets/timeline/timeline-header-widget.cpp +++ b/src/gui/widgets/timeline/timeline-header-widget.cpp @@ -1,24 +1,24 @@ /* timeline-header-widget.cpp - Implementation of the timeline header widget - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include <boost/foreach.hpp> diff --git a/src/gui/widgets/timeline/timeline-header-widget.hpp b/src/gui/widgets/timeline/timeline-header-widget.hpp index 3db843738..18dcfb78c 100644 --- a/src/gui/widgets/timeline/timeline-header-widget.hpp +++ b/src/gui/widgets/timeline/timeline-header-widget.hpp @@ -1,24 +1,24 @@ /* timeline-header-widget.hpp - Declaration of the timeline header widget - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file timeline-header-widget.hpp ** This file contains the definition of the header widget diff --git a/src/gui/widgets/timeline/timeline-ibeam-tool.cpp b/src/gui/widgets/timeline/timeline-ibeam-tool.cpp index 7e243ef7c..5e37d4b4d 100644 --- a/src/gui/widgets/timeline/timeline-ibeam-tool.cpp +++ b/src/gui/widgets/timeline/timeline-ibeam-tool.cpp @@ -1,23 +1,23 @@ /* timeline-ibeam-tool.cpp - Implementation of the IBeamTool class - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "timeline-ibeam-tool.hpp" diff --git a/src/gui/widgets/timeline/timeline-ibeam-tool.hpp b/src/gui/widgets/timeline/timeline-ibeam-tool.hpp index 5d05b14ba..219a6dd49 100644 --- a/src/gui/widgets/timeline/timeline-ibeam-tool.hpp +++ b/src/gui/widgets/timeline/timeline-ibeam-tool.hpp @@ -1,23 +1,23 @@ /* timeline-ibeam-tool.hpp - Declaration of the ArrowTool class - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file timeline-ibeam-tool.hpp ** This file contains the definition of ibeam tool class diff --git a/src/gui/widgets/timeline/timeline-layout-helper.cpp b/src/gui/widgets/timeline/timeline-layout-helper.cpp index 93531f800..c9ff0ed03 100644 --- a/src/gui/widgets/timeline/timeline-layout-helper.cpp +++ b/src/gui/widgets/timeline/timeline-layout-helper.cpp @@ -1,24 +1,24 @@ /* timeline-layout-helper.cpp - Implementation of the timeline layout helper class - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include <boost/foreach.hpp> diff --git a/src/gui/widgets/timeline/timeline-layout-helper.hpp b/src/gui/widgets/timeline/timeline-layout-helper.hpp index 217f35d13..f8ac3f7bd 100644 --- a/src/gui/widgets/timeline/timeline-layout-helper.hpp +++ b/src/gui/widgets/timeline/timeline-layout-helper.hpp @@ -1,24 +1,24 @@ /* timeline-layout-helper.hpp - Declaration of the timeline layout helper class - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file timeline-layout-helper.cpp ** This file contains the definition of the layout helpeer class diff --git a/src/gui/widgets/timeline/timeline-ruler.cpp b/src/gui/widgets/timeline/timeline-ruler.cpp index cce311007..cd5c9cdd3 100644 --- a/src/gui/widgets/timeline/timeline-ruler.cpp +++ b/src/gui/widgets/timeline/timeline-ruler.cpp @@ -1,23 +1,23 @@ /* timeline-ruler.cpp - Implementation of the time ruler widget - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include <cairomm-1.0/cairomm/cairomm.h> diff --git a/src/gui/widgets/timeline/timeline-ruler.hpp b/src/gui/widgets/timeline/timeline-ruler.hpp index e47038ab1..4e8bf2083 100644 --- a/src/gui/widgets/timeline/timeline-ruler.hpp +++ b/src/gui/widgets/timeline/timeline-ruler.hpp @@ -1,23 +1,23 @@ /* timeline-ruler.hpp - Declaration of the time ruler widget - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file timeline-ruler.hpp ** This file contains the declaration of the time ruler widget diff --git a/src/gui/widgets/timeline/timeline-state.cpp b/src/gui/widgets/timeline/timeline-state.cpp index e6a6e92c5..f8e712169 100644 --- a/src/gui/widgets/timeline/timeline-state.cpp +++ b/src/gui/widgets/timeline/timeline-state.cpp @@ -1,23 +1,23 @@ /* timeline-state.cpp - Implementation of the timeline state object - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "timeline-state.hpp" diff --git a/src/gui/widgets/timeline/timeline-state.hpp b/src/gui/widgets/timeline/timeline-state.hpp index 431173240..2d9a11ea3 100644 --- a/src/gui/widgets/timeline/timeline-state.hpp +++ b/src/gui/widgets/timeline/timeline-state.hpp @@ -1,23 +1,23 @@ /* timeline-state.hpp - Declaration of the timeline state object - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file widgets/timeline/timeline-state.hpp ** This file contains the definition of the timeline state object diff --git a/src/gui/widgets/timeline/timeline-tool.cpp b/src/gui/widgets/timeline/timeline-tool.cpp index 96991ef64..bc1092e53 100644 --- a/src/gui/widgets/timeline/timeline-tool.cpp +++ b/src/gui/widgets/timeline/timeline-tool.cpp @@ -1,23 +1,23 @@ /* timeline-tool.hpp - Implementation of the Tool class - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "timeline-tool.hpp" diff --git a/src/gui/widgets/timeline/timeline-tool.hpp b/src/gui/widgets/timeline/timeline-tool.hpp index 9b5d8ea16..af9e61146 100644 --- a/src/gui/widgets/timeline/timeline-tool.hpp +++ b/src/gui/widgets/timeline/timeline-tool.hpp @@ -1,23 +1,23 @@ /* timeline-tool.hpp - Declaration of the Tool class - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file timeline-tool.hpp ** This file contains the definition of base class for timeline diff --git a/src/gui/widgets/timeline/timeline-track.cpp b/src/gui/widgets/timeline/timeline-track.cpp index 1803a12d2..240a62a2b 100644 --- a/src/gui/widgets/timeline/timeline-track.cpp +++ b/src/gui/widgets/timeline/timeline-track.cpp @@ -1,23 +1,23 @@ /* timeline-track.cpp - Implementation of the timeline track object - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "timeline-track.hpp" diff --git a/src/gui/widgets/timeline/timeline-track.hpp b/src/gui/widgets/timeline/timeline-track.hpp index 1b1b967d4..f550b2c80 100644 --- a/src/gui/widgets/timeline/timeline-track.hpp +++ b/src/gui/widgets/timeline/timeline-track.hpp @@ -1,23 +1,23 @@ /* timeline-track.hpp - Declaration of the timeline group track object - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file widgets/timeline/timeline-track.hpp ** This file contains the definition of timeline track object diff --git a/src/gui/widgets/timeline/timeline-view-window.cpp b/src/gui/widgets/timeline/timeline-view-window.cpp index e5283a24a..6ea7ff242 100644 --- a/src/gui/widgets/timeline/timeline-view-window.cpp +++ b/src/gui/widgets/timeline/timeline-view-window.cpp @@ -1,23 +1,23 @@ /* timeline-window.hpp - Implementation of the timeline window object - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "timeline-view-window.hpp" diff --git a/src/gui/widgets/timeline/timeline-view-window.hpp b/src/gui/widgets/timeline/timeline-view-window.hpp index 8689b6ce6..972f30edb 100644 --- a/src/gui/widgets/timeline/timeline-view-window.hpp +++ b/src/gui/widgets/timeline/timeline-view-window.hpp @@ -1,23 +1,23 @@ /* timeline-view-window.hpp - Declaration of the timeline window object - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file widgets/timeline/timeline-view-window.hpp ** This file contains the definition of timeline view window helper diff --git a/src/gui/widgets/video-display-widget.cpp b/src/gui/widgets/video-display-widget.cpp index 4a31af101..5b6d59b1f 100644 --- a/src/gui/widgets/video-display-widget.cpp +++ b/src/gui/widgets/video-display-widget.cpp @@ -1,23 +1,23 @@ /* video-display-widget.cpp - Implementation of the video viewer widget - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include <gdkmm/drawable.h> diff --git a/src/gui/widgets/video-display-widget.hpp b/src/gui/widgets/video-display-widget.hpp index 6587362cf..9eea972f2 100644 --- a/src/gui/widgets/video-display-widget.hpp +++ b/src/gui/widgets/video-display-widget.hpp @@ -1,23 +1,23 @@ /* video-display-widget.hpp - Declaration of the video viewer widget - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file video-display-widget.hpp ** This file contains the definition of video viewer widget diff --git a/src/gui/window-manager.cpp b/src/gui/window-manager.cpp index d2f91f3b2..cd108bf71 100644 --- a/src/gui/window-manager.cpp +++ b/src/gui/window-manager.cpp @@ -1,23 +1,23 @@ /* window-manager.cpp - Defines the global UI Manager class - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "window-manager.hpp" diff --git a/src/gui/window-manager.hpp b/src/gui/window-manager.hpp index 0b320d966..987bde10a 100644 --- a/src/gui/window-manager.hpp +++ b/src/gui/window-manager.hpp @@ -1,23 +1,23 @@ /* window-manager.hpp - Defines the global UI Manager class - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file window-manager.hpp ** This file contains the defintion of global UI Manager class. diff --git a/src/gui/workspace/actions.cpp b/src/gui/workspace/actions.cpp index 5c6bc3747..0472e7b59 100644 --- a/src/gui/workspace/actions.cpp +++ b/src/gui/workspace/actions.cpp @@ -1,23 +1,23 @@ /* Actions.cpp - Definition of the main workspace window object - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "actions.hpp" diff --git a/src/gui/workspace/actions.hpp b/src/gui/workspace/actions.hpp index 8d0a68e6b..f4f72c1ec 100644 --- a/src/gui/workspace/actions.hpp +++ b/src/gui/workspace/actions.hpp @@ -1,23 +1,23 @@ /* ACTIONS.hpp - Definition of a helper class for user actions - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file actions.hpp ** This file contains the definition of a helper class for the diff --git a/src/gui/workspace/panel-manager.cpp b/src/gui/workspace/panel-manager.cpp index 357f91860..3cabe8f45 100644 --- a/src/gui/workspace/panel-manager.cpp +++ b/src/gui/workspace/panel-manager.cpp @@ -1,23 +1,23 @@ /* panel-manager.cpp - Definition of the panel manager object - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "panel-manager.hpp" diff --git a/src/gui/workspace/panel-manager.hpp b/src/gui/workspace/panel-manager.hpp index 012826184..9362b66aa 100644 --- a/src/gui/workspace/panel-manager.hpp +++ b/src/gui/workspace/panel-manager.hpp @@ -1,23 +1,23 @@ /* panel-manager.hpp - Definition of the panel manager object - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file panel-manager.hpp ** This file contains the definition of the panel manager object. diff --git a/src/gui/workspace/workspace-window.cpp b/src/gui/workspace/workspace-window.cpp index 791e49c99..c84ca228c 100644 --- a/src/gui/workspace/workspace-window.cpp +++ b/src/gui/workspace/workspace-window.cpp @@ -1,23 +1,23 @@ /* workspace-window.cpp - Definition of the main workspace window object - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include <gtkmm/stock.h> diff --git a/src/gui/workspace/workspace-window.hpp b/src/gui/workspace/workspace-window.hpp index 18727ab39..6836882bf 100644 --- a/src/gui/workspace/workspace-window.hpp +++ b/src/gui/workspace/workspace-window.hpp @@ -1,23 +1,23 @@ /* workspace-window.hpp - Definition of the main workspace window object - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file workspace-window.hpp ** This file contains the definition of the main workspace window diff --git a/src/include/configfacade.hpp b/src/include/configfacade.hpp index 7e6c8307b..90a2528b2 100644 --- a/src/include/configfacade.hpp +++ b/src/include/configfacade.hpp @@ -1,23 +1,23 @@ /* CONFIGFACADE - C++ convenience wrapper and startup of the config system - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file configfacade.hpp diff --git a/src/include/display-facade.h b/src/include/display-facade.h index ef12fdb1d..d226fa6e5 100644 --- a/src/include/display-facade.h +++ b/src/include/display-facade.h @@ -1,23 +1,23 @@ /* DISPLAY-FACADE.h - accessing a display for outputting frames - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file display-facade.h diff --git a/src/include/display-handles.h b/src/include/display-handles.h index 467607427..8efb51ed9 100644 --- a/src/include/display-handles.h +++ b/src/include/display-handles.h @@ -1,23 +1,23 @@ /* DISPLAY-HANDLES.h - opaque handle types for playback and display - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file display-handles.hpp diff --git a/src/include/dummy-player-facade.h b/src/include/dummy-player-facade.h index 0447172d1..403ca2f35 100644 --- a/src/include/dummy-player-facade.h +++ b/src/include/dummy-player-facade.h @@ -1,23 +1,23 @@ /* DUMMY-PLAYER-FACADE.h - access point to a dummy test player - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/include/guinotification-facade.h b/src/include/guinotification-facade.h index ea575fb5f..8c0834d2c 100644 --- a/src/include/guinotification-facade.h +++ b/src/include/guinotification-facade.h @@ -1,23 +1,23 @@ /* GUINOTIFICATION-FACADE.h - access point for pushing informations into the GUI - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file guinotification-facade.h diff --git a/src/include/interfaceproxy.hpp b/src/include/interfaceproxy.hpp index 26d1761f1..ea5677042 100644 --- a/src/include/interfaceproxy.hpp +++ b/src/include/interfaceproxy.hpp @@ -1,23 +1,23 @@ /* INTERFACEPROXY - definition of forwarding proxies for the facade interfaces - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file interfaceproxy.hpp diff --git a/src/include/lifecycle.h b/src/include/lifecycle.h index 26e649569..3313e5bee 100644 --- a/src/include/lifecycle.h +++ b/src/include/lifecycle.h @@ -1,23 +1,23 @@ /* LIFECYCLE.h - interface for registering and triggering lifecycle callbacks - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file lifecycle.h diff --git a/src/include/logging.h b/src/include/logging.h index d2420b0f8..e2b9455ea 100644 --- a/src/include/logging.h +++ b/src/include/logging.h @@ -7,8 +7,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -132,6 +132,12 @@ NOBUG_CPP_DEFINE_FLAG_PARENT ( proc, progress); NOBUG_CPP_DEFINE_FLAG_PARENT ( command, proc); /** progress log for session datastructure */ NOBUG_CPP_DEFINE_FLAG_PARENT ( session, proc); +/** progress log for the builder and build process */ +NOBUG_CPP_DEFINE_FLAG_PARENT ( builder, proc); +/** progress log for running the engine */ +NOBUG_CPP_DEFINE_FLAG_PARENT ( engine, proc); +/** progress log for play- and render subsystem */ +NOBUG_CPP_DEFINE_FLAG_PARENT ( play, proc); /** progress log for the gui */ NOBUG_CPP_DEFINE_FLAG_PARENT ( gui, progress); /** progress log for the support lib */ @@ -158,13 +164,13 @@ NOBUG_CPP_DEFINE_FLAG_PARENT ( config, logging); /** base flag for software testing */ NOBUG_CPP_DEFINE_FLAG_PARENT ( test, logging); -/** base flag for syncronization logging */ +/** base flag for synchronisation logging */ NOBUG_CPP_DEFINE_FLAG_PARENT ( sync, logging); // do we need subsections here? backend_mutex_sync proc_mutex_sync etc? NOBUG_CPP_DEFINE_FLAG_PARENT ( mutex_sync, sync); //locking/unlocking mutexes NOBUG_CPP_DEFINE_FLAG_PARENT ( cond_sync, sync); //waiting and signalling condition vars /** base flag for memory related logging */ NOBUG_CPP_DEFINE_FLAG_PARENT ( memory, logging); -/** memory busines of the proc layer */ +/** proc layer memory handling */ NOBUG_CPP_DEFINE_FLAG_PARENT ( proc_mem, memory); NOBUG_CPP_DEFINE_FLAG_PARENT ( mobject_mem, proc_mem); NOBUG_CPP_DEFINE_FLAG_PARENT ( builder_mem, proc_mem); diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am index 74911c158..9837f7da3 100644 --- a/src/lib/Makefile.am +++ b/src/lib/Makefile.am @@ -35,7 +35,7 @@ liblumiera_la_LIBADD = \ liblumiera_la_SOURCES = \ $(liblumiera_la_srcdir)/advice/advice.cpp \ $(liblumiera_la_srcdir)/advice/binding.cpp \ - $(liblumiera_la_srcdir)/allocationcluster.cpp \ + $(liblumiera_la_srcdir)/allocation-cluster.cpp \ $(liblumiera_la_srcdir)/cmdline.cpp \ $(liblumiera_la_srcdir)/condition.c \ $(liblumiera_la_srcdir)/error.c \ @@ -69,8 +69,8 @@ noinst_HEADERS += \ $(liblumiera_la_srcdir)/advice.hpp \ $(liblumiera_la_srcdir)/advice/binding.hpp \ $(liblumiera_la_srcdir)/advice/index.hpp \ - $(liblumiera_la_srcdir)/allocationcluster.hpp \ - $(liblumiera_la_srcdir)/allocationcluster.hpp \ + $(liblumiera_la_srcdir)/allocation-cluster.hpp \ + $(liblumiera_la_srcdir)/allocation-cluster.hpp \ $(liblumiera_la_srcdir)/condition.h \ $(liblumiera_la_srcdir)/error.h \ $(liblumiera_la_srcdir)/error.hpp \ @@ -103,9 +103,9 @@ noinst_HEADERS += \ $(liblumiera_la_srcdir)/scoped-holder.hpp \ $(liblumiera_la_srcdir)/singleton-subclass.hpp \ $(liblumiera_la_srcdir)/singleton.hpp \ - $(liblumiera_la_srcdir)/singletonfactory.hpp \ - $(liblumiera_la_srcdir)/singletonpolicies.hpp \ - $(liblumiera_la_srcdir)/singletonpreconfigure.hpp \ + $(liblumiera_la_srcdir)/singleton-factory.hpp \ + $(liblumiera_la_srcdir)/singleton-policies.hpp \ + $(liblumiera_la_srcdir)/singleton-preconfigure.hpp \ $(liblumiera_la_srcdir)/sync-classlock.hpp \ $(liblumiera_la_srcdir)/sync.hpp \ $(liblumiera_la_srcdir)/sync.hpp \ diff --git a/src/lib/access-casted.hpp b/src/lib/access-casted.hpp index 503262294..9f51110f8 100644 --- a/src/lib/access-casted.hpp +++ b/src/lib/access-casted.hpp @@ -1,23 +1,23 @@ /* ACCESS-CASTED.hpp - util template to access a value using conversion or cast as appropriate - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/advice.hpp b/src/lib/advice.hpp index dd6e749eb..d83c33aa4 100644 --- a/src/lib/advice.hpp +++ b/src/lib/advice.hpp @@ -1,23 +1,23 @@ /* ADVICE.hpp - generic loosely coupled interaction guided by symbolic pattern - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/advice/advice.cpp b/src/lib/advice/advice.cpp index cbd70e764..2255de2b6 100644 --- a/src/lib/advice/advice.cpp +++ b/src/lib/advice/advice.cpp @@ -1,23 +1,23 @@ /* Advice - generic loosely coupled interaction guided by symbolic pattern - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/lib/advice/binding.cpp b/src/lib/advice/binding.cpp index c123f04d7..82bcc491b 100644 --- a/src/lib/advice/binding.cpp +++ b/src/lib/advice/binding.cpp @@ -1,23 +1,23 @@ /* Binding - pattern defining a specific attachment to the Advice system - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/lib/advice/binding.hpp b/src/lib/advice/binding.hpp index 23d2b5ae4..df9715907 100644 --- a/src/lib/advice/binding.hpp +++ b/src/lib/advice/binding.hpp @@ -1,23 +1,23 @@ /* BINDING.hpp - pattern defining a specific attachment to the Advice system - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/advice/index.hpp b/src/lib/advice/index.hpp index 7d3b07fc0..5f3fa249a 100644 --- a/src/lib/advice/index.hpp +++ b/src/lib/advice/index.hpp @@ -1,23 +1,23 @@ /* INDEX.hpp - data structure for organising advice solutions and matching - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/allocationcluster.cpp b/src/lib/allocation-cluster.cpp similarity index 98% rename from src/lib/allocationcluster.cpp rename to src/lib/allocation-cluster.cpp index ae283e62f..605e15a5c 100644 --- a/src/lib/allocationcluster.cpp +++ b/src/lib/allocation-cluster.cpp @@ -1,27 +1,27 @@ /* AllocationCluster - allocating and owning a pile of objects - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ -#include "lib/allocationcluster.hpp" +#include "lib/allocation-cluster.hpp" #include "lib/error.hpp" #include "lib/util.hpp" #include "lib/sync.hpp" diff --git a/src/lib/allocationcluster.hpp b/src/lib/allocation-cluster.hpp similarity index 95% rename from src/lib/allocationcluster.hpp rename to src/lib/allocation-cluster.hpp index 304405d58..12f9e9a9f 100644 --- a/src/lib/allocationcluster.hpp +++ b/src/lib/allocation-cluster.hpp @@ -1,26 +1,26 @@ /* - ALLOCATIONCLUSTER.hpp - allocating and owning a pile of objects - + ALLOCATION-CLUSTER.hpp - allocating and owning a pile of objects + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ -/** @file allocationcluster.hpp +/** @file allocation-cluster.hpp ** Memory management for the low-level model (render nodes network). ** The model is organised into temporal segments, which are considered ** to be structurally constant and uniform. The objects within each @@ -35,17 +35,17 @@ ** templates, and thus need to be in the header. This way they can ** exploit the type information available in call context. This ** information is passed to generic implementation functions - ** defined in allocationcluster.cpp . In a similar vein, the + ** defined in allocation-cluster.cpp . In a similar vein, the ** AllocationCluster::MemoryManger is just forward declared. ** - ** @see allocationclustertest.cpp + ** @see allocation-cluster-test.cpp ** @see builder::ToolFactory ** @see frameid.hpp */ -#ifndef LIB_ALLOCATIONCLUSTER_H -#define LIB_ALLOCATIONCLUSTER_H +#ifndef LIB_ALLOCATION_CLUSTER_H +#define LIB_ALLOCATION_CLUSTER_H #include <vector> #include <boost/scoped_ptr.hpp> @@ -54,7 +54,7 @@ #include "lib/error.hpp" #include "lib/sync-classlock.hpp" #include "lib/scoped-holder.hpp" -#include "lib/scopedholdertransfer.hpp" +#include "lib/scoped-holder-transfer.hpp" diff --git a/src/lib/bool-checkable.hpp b/src/lib/bool-checkable.hpp index 8ff9ab063..4f03c2773 100644 --- a/src/lib/bool-checkable.hpp +++ b/src/lib/bool-checkable.hpp @@ -1,23 +1,23 @@ /* BOOL-CHECKABLE.hpp - mixin template for defining a safe conversion to bool - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/cmdline.cpp b/src/lib/cmdline.cpp index 90335230e..8539909ec 100644 --- a/src/lib/cmdline.cpp +++ b/src/lib/cmdline.cpp @@ -1,23 +1,23 @@ /* Cmdline - abstraction of the usual commandline, a sequence of strings - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/lib/cmdline.hpp b/src/lib/cmdline.hpp index 1353a9d1d..88d6e2d5a 100644 --- a/src/lib/cmdline.hpp +++ b/src/lib/cmdline.hpp @@ -1,23 +1,23 @@ /* CMDLINE.hpp - abstraction of the usual commandline, a sequence of strings - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/condition.c b/src/lib/condition.c index 7c2d31d8e..2218f40ce 100644 --- a/src/lib/condition.c +++ b/src/lib/condition.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/condition.h b/src/lib/condition.h index db06d5441..70d1a2a03 100644 --- a/src/lib/condition.h +++ b/src/lib/condition.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/cuckoo.c b/src/lib/cuckoo.c index b2ad064c0..4b3a2cbee 100644 --- a/src/lib/cuckoo.c +++ b/src/lib/cuckoo.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/cuckoo.h b/src/lib/cuckoo.h index 84546d002..9fc5c2e75 100644 --- a/src/lib/cuckoo.h +++ b/src/lib/cuckoo.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/del-stash.hpp b/src/lib/del-stash.hpp index 11dd537c6..92dcef26a 100644 --- a/src/lib/del-stash.hpp +++ b/src/lib/del-stash.hpp @@ -1,23 +1,23 @@ /* DEL-STASH.hpp - collect and execute deleter functions - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/diagnostic-context.hpp b/src/lib/diagnostic-context.hpp index 0003c0677..28f97c5c1 100644 --- a/src/lib/diagnostic-context.hpp +++ b/src/lib/diagnostic-context.hpp @@ -1,14 +1,14 @@ /* DIAGNOSTIC-CONTEXT.hpp - thread local stack for explicitly collecting diagnostic context info - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the diff --git a/src/lib/element-tracker.hpp b/src/lib/element-tracker.hpp index 4513ae379..d7d6c1794 100644 --- a/src/lib/element-tracker.hpp +++ b/src/lib/element-tracker.hpp @@ -1,23 +1,23 @@ /* ELEMENT-TRACKER.hpp - registry for tracking instances automatically - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/error.c b/src/lib/error.c index 0de5f4b7a..d91a27359 100644 --- a/src/lib/error.c +++ b/src/lib/error.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/error.h b/src/lib/error.h index 1449c4fa2..f76a21591 100644 --- a/src/lib/error.h +++ b/src/lib/error.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/error.hpp b/src/lib/error.hpp index 4a841c629..af911ac7a 100644 --- a/src/lib/error.hpp +++ b/src/lib/error.hpp @@ -1,23 +1,23 @@ /* ERROR.hpp - Lumiera Exception Interface - + Copyright (C) Lumiera.org 2008-2010 Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/exception.cpp b/src/lib/exception.cpp index 8d11c8580..bd19d30f6 100644 --- a/src/lib/exception.cpp +++ b/src/lib/exception.cpp @@ -1,23 +1,23 @@ /* Error - Lumiera Exception Interface - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/lib/factory.hpp b/src/lib/factory.hpp index 6cefba752..28d37ad1a 100644 --- a/src/lib/factory.hpp +++ b/src/lib/factory.hpp @@ -1,23 +1,23 @@ /* FACTORY.hpp - template for object/smart-pointer factories - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/format.hpp b/src/lib/format.hpp index 0e75f6da2..4aa0a1743 100644 --- a/src/lib/format.hpp +++ b/src/lib/format.hpp @@ -1,23 +1,23 @@ /* FORMAT.hpp - helpers for formatting and diagnostics - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/frameid.hpp b/src/lib/frameid.hpp index 1e0f2af78..a8db83077 100644 --- a/src/lib/frameid.hpp +++ b/src/lib/frameid.hpp @@ -1,23 +1,23 @@ /* FRAMEID.hpp - distinct identification of a single data frame - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/functor-util.hpp b/src/lib/functor-util.hpp index 7efee7060..d47b86a9c 100644 --- a/src/lib/functor-util.hpp +++ b/src/lib/functor-util.hpp @@ -1,23 +1,23 @@ /* FUNCTOR-UTIL.hpp - collection of helpers for dealing with functors and signals - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/handle.hpp b/src/lib/handle.hpp index cb3b56e55..a1a01a919 100644 --- a/src/lib/handle.hpp +++ b/src/lib/handle.hpp @@ -1,14 +1,14 @@ /* HANDLE.hpp - opaque handle to an implementation entity, automatically managing lifecycle - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the diff --git a/src/lib/hash-indexed.hpp b/src/lib/hash-indexed.hpp index 81c0b37fa..d665dac81 100644 --- a/src/lib/hash-indexed.hpp +++ b/src/lib/hash-indexed.hpp @@ -1,23 +1,23 @@ /* HASH-INDEXED.hpp - generic hash based and typed ID - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/iter-adapter-stl.hpp b/src/lib/iter-adapter-stl.hpp index 13e183113..f974892ec 100644 --- a/src/lib/iter-adapter-stl.hpp +++ b/src/lib/iter-adapter-stl.hpp @@ -1,23 +1,23 @@ /* ITER-ADAPTER-STL.hpp - helpers for building simple forward iterators - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file iter-adapter-stl.hpp diff --git a/src/lib/iter-adapter.hpp b/src/lib/iter-adapter.hpp index 88968cca5..a8306a774 100644 --- a/src/lib/iter-adapter.hpp +++ b/src/lib/iter-adapter.hpp @@ -1,23 +1,23 @@ /* ITER-ADAPTER.hpp - helpers for building simple forward iterators - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file iter-adapter.hpp diff --git a/src/lib/iter-source.hpp b/src/lib/iter-source.hpp index ee3ec8228..7910ecd5c 100644 --- a/src/lib/iter-source.hpp +++ b/src/lib/iter-source.hpp @@ -1,23 +1,23 @@ /* ITER-SOURCE.hpp - an interface to build an opaque iterator-based data source - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file iter-source.hpp diff --git a/src/lib/iter-type-binding.hpp b/src/lib/iter-type-binding.hpp index a370e99fb..4580ac18c 100644 --- a/src/lib/iter-type-binding.hpp +++ b/src/lib/iter-type-binding.hpp @@ -1,23 +1,23 @@ /* ITER-TYPE-BINDING.hpp - control type variations for IterAdapter - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file iter-type-binding.hpp diff --git a/src/lib/itertools.hpp b/src/lib/itertools.hpp index 80092d61b..a4efc4829 100644 --- a/src/lib/itertools.hpp +++ b/src/lib/itertools.hpp @@ -1,23 +1,23 @@ /* ITERTOOLS.hpp - collection of tools for building and combining iterators - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file itertools.hpp diff --git a/src/lib/lifecycle.cpp b/src/lib/lifecycle.cpp index 939e3e252..2e23081ec 100644 --- a/src/lib/lifecycle.cpp +++ b/src/lib/lifecycle.cpp @@ -1,23 +1,23 @@ /* Lifecycle - registering and triggering lifecycle callbacks - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/lib/lifecycleregistry.hpp b/src/lib/lifecycleregistry.hpp index 4a426e2e6..a52ff65c4 100644 --- a/src/lib/lifecycleregistry.hpp +++ b/src/lib/lifecycleregistry.hpp @@ -1,24 +1,24 @@ /* LIFECYCLEREGISTRY.hpp - registry for application lifecycle callbacks - + Copyright (C) Lumiera.org 2008, Christian Thaeter <ct@pipapo.org> Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file lifecycleregistry.hpp diff --git a/src/lib/llist.h b/src/lib/llist.h index d6511ebaf..d5599a007 100644 --- a/src/lib/llist.h +++ b/src/lib/llist.h @@ -8,8 +8,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/lockerror.c b/src/lib/lockerror.c index bad423698..d115f8d7f 100644 --- a/src/lib/lockerror.c +++ b/src/lib/lockerror.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/lockerror.h b/src/lib/lockerror.h index 27ff5dbe3..3c5293272 100644 --- a/src/lib/lockerror.h +++ b/src/lib/lockerror.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/logging.cpp b/src/lib/logging.cpp index b2a62dfce..91c1af570 100644 --- a/src/lib/logging.cpp +++ b/src/lib/logging.cpp @@ -7,8 +7,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/luid.c b/src/lib/luid.c index c8d766094..2776cda84 100644 --- a/src/lib/luid.c +++ b/src/lib/luid.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/luid.h b/src/lib/luid.h index 0986e5580..d24614a37 100644 --- a/src/lib/luid.h +++ b/src/lib/luid.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/lumitime-fmt.hpp b/src/lib/lumitime-fmt.hpp index bb8066ebe..20b24f951 100644 --- a/src/lib/lumitime-fmt.hpp +++ b/src/lib/lumitime-fmt.hpp @@ -1,23 +1,23 @@ /* LUMITIME-FMT.hpp - output and formatting of time(code) values - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/lumitime.cpp b/src/lib/lumitime.cpp index fb798d476..bae855539 100644 --- a/src/lib/lumitime.cpp +++ b/src/lib/lumitime.cpp @@ -1,23 +1,23 @@ /* Time - convenience wrapper for working with gavl_time in C++ - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -47,41 +47,45 @@ namespace lumiera { ) : t_(lumiera_build_time (millis,secs,mins,hours)) { } - - + int Time::getMillis() const { - return (t_ / (GAVL_TIME_SCALE / 1000)) % 1000; + return lumiera_time_millis(t_); } int Time::getSecs() const { - return (t_ / (GAVL_TIME_SCALE / 1 )) % 60; + return lumiera_time_seconds(t_); } int Time::getMins() const { - return (t_ / (60 * GAVL_TIME_SCALE)) % 60; + return lumiera_time_minutes(t_); } int Time::getHours() const { - return (t_ / (gavl_time_t(60) * 60 * GAVL_TIME_SCALE)); + return lumiera_time_hours(t_); } + int + Time::getFrames() const + { + // TODO + return 0; + } + Time::operator string() const { return string (lumiera_tmpbuf_print_time (t_)); } - - } // namespace lumiera diff --git a/src/lib/lumitime.hpp b/src/lib/lumitime.hpp index 9f13d48f8..5fe942218 100644 --- a/src/lib/lumitime.hpp +++ b/src/lib/lumitime.hpp @@ -1,23 +1,23 @@ /* LUMITIME.hpp - convenience wrapper for working with gavl_time in C++ - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ @@ -85,8 +85,8 @@ namespace lumiera { int getSecs () const; int getMins () const; int getHours () const; - - + int getFrames () const; + operator std::string () const; operator gavl_time_t () const { return t_; } diff --git a/src/lib/meta/configflags.hpp b/src/lib/meta/configflags.hpp index 82d49bfc5..16c81a7bb 100644 --- a/src/lib/meta/configflags.hpp +++ b/src/lib/meta/configflags.hpp @@ -1,23 +1,23 @@ /* CONFIGFLAGS.hpp - Building classes based on configuration cases - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/meta/duck-detector.hpp b/src/lib/meta/duck-detector.hpp index 9ee864880..0091a894f 100644 --- a/src/lib/meta/duck-detector.hpp +++ b/src/lib/meta/duck-detector.hpp @@ -1,23 +1,23 @@ /* DUCK-DETECTOR.hpp - helpers for statically detecting properties of a type - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/meta/function-closure.hpp b/src/lib/meta/function-closure.hpp index 936534af9..374c75883 100644 --- a/src/lib/meta/function-closure.hpp +++ b/src/lib/meta/function-closure.hpp @@ -1,23 +1,23 @@ /* FUNCTION-CLOSURE.hpp - metaprogramming tools for closing a function over given arguments - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/meta/function-erasure.hpp b/src/lib/meta/function-erasure.hpp index 388e799cb..6e04effc2 100644 --- a/src/lib/meta/function-erasure.hpp +++ b/src/lib/meta/function-erasure.hpp @@ -1,23 +1,23 @@ /* FUNCTION-ERASURE.hpp - wrapping a functor object for inline storage while hiding the signature - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/meta/function.hpp b/src/lib/meta/function.hpp index 57faab310..fa7c38c55 100644 --- a/src/lib/meta/function.hpp +++ b/src/lib/meta/function.hpp @@ -1,23 +1,23 @@ /* FUNCTION.hpp - metaprogramming utilities for transforming function types - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/meta/generator.hpp b/src/lib/meta/generator.hpp index b248888d2..c3dfa76f4 100644 --- a/src/lib/meta/generator.hpp +++ b/src/lib/meta/generator.hpp @@ -1,14 +1,14 @@ /* GENERATOR.hpp - metaprogramming utilities for generating classes and interfaces - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the diff --git a/src/lib/meta/maybe-compare.hpp b/src/lib/meta/maybe-compare.hpp index 385e90bd3..3c96cdf01 100644 --- a/src/lib/meta/maybe-compare.hpp +++ b/src/lib/meta/maybe-compare.hpp @@ -1,23 +1,23 @@ /* MAYBE-COMPARE.hpp - guarded invocation of comparisons - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/meta/trait-special.hpp b/src/lib/meta/trait-special.hpp index 1fbb4b157..e6a302a7b 100644 --- a/src/lib/meta/trait-special.hpp +++ b/src/lib/meta/trait-special.hpp @@ -1,23 +1,23 @@ /* TRAIT-SPECIAL.hpp - supplement, not so commonly used definitions and specialisations - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/meta/trait.hpp b/src/lib/meta/trait.hpp index eb6d208ef..84250866f 100644 --- a/src/lib/meta/trait.hpp +++ b/src/lib/meta/trait.hpp @@ -1,23 +1,23 @@ /* TRAIT.hpp - type handling and type detection helpers - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/meta/tuple.hpp b/src/lib/meta/tuple.hpp index 27f8538c1..39e9e53dd 100644 --- a/src/lib/meta/tuple.hpp +++ b/src/lib/meta/tuple.hpp @@ -1,23 +1,23 @@ /* TUPLE.hpp - metaprogramming utilities for type tuples and data tuples - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/meta/typelist-util.hpp b/src/lib/meta/typelist-util.hpp index a55ca639f..cf66a791a 100644 --- a/src/lib/meta/typelist-util.hpp +++ b/src/lib/meta/typelist-util.hpp @@ -1,23 +1,23 @@ /* TYPELIST-UTIL.hpp - Utils for working with lists-of-types - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/meta/typelist.hpp b/src/lib/meta/typelist.hpp index b3e44138d..5d0e11bc0 100644 --- a/src/lib/meta/typelist.hpp +++ b/src/lib/meta/typelist.hpp @@ -1,14 +1,14 @@ /* TYPELIST.hpp - typelist meta programming facilities - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the diff --git a/src/lib/meta/typeseq-util.hpp b/src/lib/meta/typeseq-util.hpp index 23ffbdc77..398d09d53 100644 --- a/src/lib/meta/typeseq-util.hpp +++ b/src/lib/meta/typeseq-util.hpp @@ -1,23 +1,23 @@ /* TYPESEQ-UTIL.hpp - basic metaprogramming utilities for type sequences - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/meta/util.hpp b/src/lib/meta/util.hpp index f824ee6b6..e6bb82209 100644 --- a/src/lib/meta/util.hpp +++ b/src/lib/meta/util.hpp @@ -1,23 +1,23 @@ /* UTIL.hpp - metaprogramming helpers and utilities - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/mpool.c b/src/lib/mpool.c index b713006c8..abcc8a810 100644 --- a/src/lib/mpool.c +++ b/src/lib/mpool.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/mpool.h b/src/lib/mpool.h index f2384bf94..3d9ec4e13 100644 --- a/src/lib/mpool.h +++ b/src/lib/mpool.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/mrucache.c b/src/lib/mrucache.c index d591d5f56..272d66a3e 100644 --- a/src/lib/mrucache.c +++ b/src/lib/mrucache.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/mrucache.h b/src/lib/mrucache.h index 8a8c5fbe9..a96f02282 100644 --- a/src/lib/mrucache.h +++ b/src/lib/mrucache.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/multifact-arg.hpp b/src/lib/multifact-arg.hpp index dfb452765..c68117c2c 100644 --- a/src/lib/multifact-arg.hpp +++ b/src/lib/multifact-arg.hpp @@ -1,23 +1,23 @@ /* MULTIFACT-ARG.hpp - variant of family-of-object factory, accepting fabrication arguments - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file multifact.hpp diff --git a/src/lib/multifact.hpp b/src/lib/multifact.hpp index 6e77b5d6e..b598a198d 100644 --- a/src/lib/multifact.hpp +++ b/src/lib/multifact.hpp @@ -1,23 +1,23 @@ /* MULTIFACT.hpp - flexible family-of-object factory template - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file multifact.hpp diff --git a/src/lib/mutex.c b/src/lib/mutex.c index baaa39b07..11977c372 100644 --- a/src/lib/mutex.c +++ b/src/lib/mutex.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/mutex.h b/src/lib/mutex.h index ec9215e04..cfcba113d 100644 --- a/src/lib/mutex.h +++ b/src/lib/mutex.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/nobug-init.cpp b/src/lib/nobug-init.cpp index 59c4edf6c..18d1f95d0 100644 --- a/src/lib/nobug-init.cpp +++ b/src/lib/nobug-init.cpp @@ -1,23 +1,23 @@ /* NoBugInit - pull up NoBug automagically in static initialisation - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/lib/nobug-init.hpp b/src/lib/nobug-init.hpp index a34fa8577..8d340b855 100644 --- a/src/lib/nobug-init.hpp +++ b/src/lib/nobug-init.hpp @@ -1,24 +1,24 @@ /* NOBUG-INIT.hpp - pull up NoBug automagically in static initialisation - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file nobug-init.hpp diff --git a/src/lib/null-value.hpp b/src/lib/null-value.hpp index 5b102d110..050bd3fcc 100644 --- a/src/lib/null-value.hpp +++ b/src/lib/null-value.hpp @@ -1,23 +1,23 @@ /* NULL-VALUE.hpp - maintain per-type NIL values in static memory - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/observable-list.hpp b/src/lib/observable-list.hpp index dd06d0979..467fa7020 100644 --- a/src/lib/observable-list.hpp +++ b/src/lib/observable-list.hpp @@ -1,23 +1,23 @@ /* observable-list.hpp - Defines the observable std::list class - + Copyright (C) Lumiera.org 2008, Joel Holdsworth <joel@airwebreathe.org.uk> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file observable-list.hpp ** This file contains the definition of the observable list class diff --git a/src/lib/opaque-holder.hpp b/src/lib/opaque-holder.hpp index 407a4c685..3cc52a607 100644 --- a/src/lib/opaque-holder.hpp +++ b/src/lib/opaque-holder.hpp @@ -1,23 +1,23 @@ /* OPAQUE-HOLDER.hpp - buffer holding an object inline while hiding the concrete type - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file opaque-holder.hpp diff --git a/src/lib/optional-ref.hpp b/src/lib/optional-ref.hpp index 9c4825825..71ce7393d 100644 --- a/src/lib/optional-ref.hpp +++ b/src/lib/optional-ref.hpp @@ -1,14 +1,14 @@ /* OPTIONAL-REF.hpp - optional and switchable reference - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the diff --git a/src/lib/p.hpp b/src/lib/p.hpp index 4ac393a18..4fef50a36 100644 --- a/src/lib/p.hpp +++ b/src/lib/p.hpp @@ -1,23 +1,23 @@ /* P.hpp - customised shared_ptr with ordering and type relationships - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file p.hpp diff --git a/src/lib/ppmpl.h b/src/lib/ppmpl.h index f2cf20665..db47b9920 100644 --- a/src/lib/ppmpl.h +++ b/src/lib/ppmpl.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/psplay.c b/src/lib/psplay.c index 1f788a644..e28840476 100644 --- a/src/lib/psplay.c +++ b/src/lib/psplay.c @@ -8,8 +8,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/psplay.h b/src/lib/psplay.h index 70c450fe3..4858db8cd 100644 --- a/src/lib/psplay.h +++ b/src/lib/psplay.h @@ -8,8 +8,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/query.cpp b/src/lib/query.cpp index ab143cd0b..e6ff8e918 100644 --- a/src/lib/query.cpp +++ b/src/lib/query.cpp @@ -1,23 +1,23 @@ /* Query - interface for capability queries - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/lib/query.hpp b/src/lib/query.hpp index 283292b24..a9ef96614 100644 --- a/src/lib/query.hpp +++ b/src/lib/query.hpp @@ -1,23 +1,23 @@ /* QUERY.hpp - interface for capability queries - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ @@ -28,7 +28,7 @@ #include <string> #include <typeinfo> -#include <boost/format.hpp> +#include <boost/format.hpp> /////////////////////////////////////////TICKET #166 Oh RLY ... need to do away with this #include "lib/symbol.hpp" @@ -64,7 +64,7 @@ namespace lumiera { { public: explicit Query (string const& predicate="") : string(predicate) {} - explicit Query (format& pattern) : string(str(pattern)) {} +// explicit Query (format& pattern) : string(str(pattern)) {} //////////////TICKET #166 outch... that needs to disappear const string asKey() const { diff --git a/src/lib/reccondition.c b/src/lib/reccondition.c index 01feab0ee..b7d0730d5 100644 --- a/src/lib/reccondition.c +++ b/src/lib/reccondition.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/reccondition.h b/src/lib/reccondition.h index 418d8556b..a2a734a69 100644 --- a/src/lib/reccondition.h +++ b/src/lib/reccondition.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/recmutex.c b/src/lib/recmutex.c index ca3c2f37c..dc631f25b 100644 --- a/src/lib/recmutex.c +++ b/src/lib/recmutex.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/recmutex.h b/src/lib/recmutex.h index 18dff4acf..0088b8ae6 100644 --- a/src/lib/recmutex.h +++ b/src/lib/recmutex.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/ref-array-impl.hpp b/src/lib/ref-array-impl.hpp index 02eff2d54..7a8b84c82 100644 --- a/src/lib/ref-array-impl.hpp +++ b/src/lib/ref-array-impl.hpp @@ -1,23 +1,23 @@ /* REF-ARRAY-IMPL.hpp - some implementations of the ref-array interface - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file ref-array-impl.hpp diff --git a/src/lib/ref-array.hpp b/src/lib/ref-array.hpp index ccf565406..ddbc06da1 100644 --- a/src/lib/ref-array.hpp +++ b/src/lib/ref-array.hpp @@ -1,23 +1,23 @@ /* REF-ARRAY.hpp - abstraction providing array-like access to a list of references - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/result.hpp b/src/lib/result.hpp index 8cc77beb9..ae4f7b187 100644 --- a/src/lib/result.hpp +++ b/src/lib/result.hpp @@ -1,23 +1,23 @@ /* RESULT.hpp - intermediary token representing the result of an operation - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/rwlock.c b/src/lib/rwlock.c index 03d70b7e3..8e293543f 100644 --- a/src/lib/rwlock.c +++ b/src/lib/rwlock.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/rwlock.h b/src/lib/rwlock.h index 79b019660..9890cd1ef 100644 --- a/src/lib/rwlock.h +++ b/src/lib/rwlock.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/safeclib.c b/src/lib/safeclib.c index ae621501d..980353273 100644 --- a/src/lib/safeclib.c +++ b/src/lib/safeclib.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/safeclib.h b/src/lib/safeclib.h index 7a79b5021..60ae3c5ad 100644 --- a/src/lib/safeclib.h +++ b/src/lib/safeclib.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/scopedholdertransfer.hpp b/src/lib/scoped-holder-transfer.hpp similarity index 95% rename from src/lib/scopedholdertransfer.hpp rename to src/lib/scoped-holder-transfer.hpp index 3d600e61a..e1ee6d5c9 100644 --- a/src/lib/scopedholdertransfer.hpp +++ b/src/lib/scoped-holder-transfer.hpp @@ -1,29 +1,29 @@ /* - SCOPEDHOLDERVECTOR.hpp - using ScopedHolder within a STL vector - + SCOPED-HOLDER-TRANSFER.hpp - using ScopedHolder within a STL vector + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ -#ifndef LIB_SCOPEDHOLDERVECTOR_H -#define LIB_SCOPEDHOLDERVECTOR_H +#ifndef LIB_SCOPEDHOLDER_TRANSFER_H +#define LIB_SCOPEDHOLDER_TRANSFER_H #include "lib/error.hpp" #include <memory> diff --git a/src/lib/scoped-holder.hpp b/src/lib/scoped-holder.hpp index 4e2c82627..f8eaf74d2 100644 --- a/src/lib/scoped-holder.hpp +++ b/src/lib/scoped-holder.hpp @@ -1,23 +1,23 @@ /* SCOPED-HOLDER.hpp - general purpose wrapper for dealing with ownership problems - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file scoped-holder.hpp @@ -47,7 +47,7 @@ ** friend function. ** ** @see scoped-holder-test.cpp - ** @see scopedholdertransfer.hpp use in std::vector + ** @see scoped-holder-transfer.hpp use in std::vector ** @see AllocationCluster usage example ** @see scoped-ptrvect.hpp simple pointer-holding collection */ diff --git a/src/lib/scoped-ptrvect.hpp b/src/lib/scoped-ptrvect.hpp index d21e2333a..8bb713082 100644 --- a/src/lib/scoped-ptrvect.hpp +++ b/src/lib/scoped-ptrvect.hpp @@ -1,23 +1,23 @@ /* SCOPED-PTRVECT.hpp - simple noncopyable lifecycle managing collection of pointers - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file scoped-ptrvect.hpp @@ -171,7 +171,7 @@ namespace lib { private: - /** @internal element access, including null check */ + /** @internal element access, including range and null check */ T* get (size_type i) { diff --git a/src/lib/sectionlock.h b/src/lib/sectionlock.h index 61225e84b..0eb6cd93b 100644 --- a/src/lib/sectionlock.h +++ b/src/lib/sectionlock.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/singletonfactory.hpp b/src/lib/singleton-factory.hpp similarity index 90% rename from src/lib/singletonfactory.hpp rename to src/lib/singleton-factory.hpp index 737ebe8b4..5f5070aa4 100644 --- a/src/lib/singletonfactory.hpp +++ b/src/lib/singleton-factory.hpp @@ -1,14 +1,14 @@ /* - SINGLETONFACTORY.hpp - template for implementing the singleton pattern - + SINGLETON-FACTORY.hpp - template for implementing the singleton pattern + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the @@ -31,11 +31,11 @@ This code is heavily inspired by -#ifndef LIB_SINGLETONFACTORY_H -#define LIB_SINGLETONFACTORY_H +#ifndef LIB_SINGLETON_FACTORY_H +#define LIB_SINGLETON_FACTORY_H -#include "lib/singletonpolicies.hpp" // several Policies usable together with SingletonFactory +#include "lib/singleton-policies.hpp" // several Policies usable together with SingletonFactory #include "lib/nobug-init.hpp" #include "include/logging.h" @@ -45,9 +45,9 @@ This code is heavily inspired by namespace lib { /** - * A configurable Template for implementing Singletons. + * A configurable Template for implementing Singletons. * Actually this is a Factory object, which could be placed into a static field - * of the Singleton (target) class or used directly. + * of the Singleton (target) class or used directly. * @note internally uses static fields, so all factory instances share pInstance_ * @note there is an ongoing discussion regarding Double Checked Locking pattern, * which in this case boils down to the question: does \c pthread_mutex_lock/unlock @@ -71,7 +71,7 @@ namespace lib { static PType pInstance_; static bool isDead_; - + public: /** Interface to be used by SingletonFactory's clients. @@ -84,7 +84,7 @@ namespace lib { if (!pInstance_) { ThreadLock guard SIDEEFFECT; - + if (!pInstance_) { if (isDead_) @@ -114,15 +114,15 @@ namespace lib { isDead_ = true; } }; - - // Storage for SingletonFactory's static fields... + + // Storage for SingletonFactory's static fields... template < class SI, template <class> class C, template <class> class L > - typename SingletonFactory<SI,C,L>::PType + typename SingletonFactory<SI,C,L>::PType SingletonFactory<SI,C,L>::pInstance_; template diff --git a/src/lib/singleton-policies.hpp b/src/lib/singleton-policies.hpp new file mode 100644 index 000000000..7c688c829 --- /dev/null +++ b/src/lib/singleton-policies.hpp @@ -0,0 +1,138 @@ +/* + SINGLETON-POLICIES.hpp - how to manage creation, lifecycle and multithreading + + Copyright (C) Lumiera.org + 2008, Hermann Vosseler <Ichthyostega@web.de> + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +==================================================================== +This code is heavily inspired by + The Loki Library (loki-lib/trunk/include/loki/Singleton.h) + Copyright (c) 2001 by Andrei Alexandrescu + This Loki code accompanies the book: + Alexandrescu, Andrei. "Modern C++ Design: Generic Programming + and Design Patterns Applied". + Copyright (c) 2001. Addison-Wesley. ISBN 0201704315 + +*/ + + + +#ifndef LIB_SINGLETON_POLICIES_H +#define LIB_SINGLETON_POLICIES_H + +#include "lib/nobug-init.hpp" +#include "lib/error.hpp" + +#include <vector> + + +namespace lib { +namespace singleton { + + + /* === several Policies usable in conjunction with lib::Singleton === */ + + /** + * Policy placing the Singleton instance into a statically allocated buffer + */ + template<class S> + struct StaticCreate + { + static S* create () + { +#if NOBUG_MODE_ALPHA + static uint callCount = 0; + ASSERT ( 0 == callCount++ ); +#endif + static char buff[sizeof(S)]; + return new(buff) S(); + } + static void destroy (S* pSi) + { + pSi-> ~S(); + } + }; + + + /** + * Policy for creating the Singleton instance heap allocated + */ + template<class S> + struct HeapCreate + { + static S* create () { return new S; } + static void destroy (S* pS) { delete pS; } + }; + + + + + + typedef void (*DelFunc)(void); + using std::vector; + + /** + * Policy relying on the compiler/runtime system for Singleton Lifecycle + */ + template<class S> + struct AutoDestroy + { + /** implements the Singleton removal by calling + * the provided deleter function(s) at application shutdown, + * relying on the runtime system calling destructors of static + * objects. Because this Policy class can be shared between + * several Singletons, we need to memorise all registered + * deleter functions for calling them at shutdown. + */ + static void + scheduleDelete (DelFunc kill_the_singleton) + { + class DeleteTrigger + { + vector<DelFunc> dels_; + + public: + void schedule (DelFunc del) + { + dels_.push_back(del); + } + ~DeleteTrigger() + { + vector<DelFunc>::iterator i = dels_.begin(); + for ( ; i != dels_.end(); ++i ) + (*i)(); // invoke deleter function + } + }; + + REQUIRE (kill_the_singleton); + static DeleteTrigger finally; + finally.schedule (kill_the_singleton); + } + + static void + onDeadReference () + { + throw lumiera::error::Logic ("Trying to access the a Singleton instance that has " + "already been released or finished its lifecycle."); + } + }; + + + + +}} // namespace lib::singleton +#endif diff --git a/src/lib/singletonpreconfigure.hpp b/src/lib/singleton-preconfigure.hpp similarity index 90% rename from src/lib/singletonpreconfigure.hpp rename to src/lib/singleton-preconfigure.hpp index a657a0ec9..5101c634e 100644 --- a/src/lib/singletonpreconfigure.hpp +++ b/src/lib/singleton-preconfigure.hpp @@ -1,26 +1,26 @@ /* - SINGLETONPRECONFIGURE - declare the configuration of some Singleton types in advance - + SINGLETON-PRECONFIGURE - declare the configuration of some Singleton types in advance + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ -/** @file singletonpreconfigure.hpp +/** @file singleton-preconfigure.hpp ** Pre-configuration of some Singleton types, done by template specialisation. ** Typically the client code just includes singleton.h and uses the Singleton ** type. But in some cases, we want to configure specific (dependency injection) @@ -37,12 +37,12 @@ ** @note we declare the specialisations into the target namespace ** ** @see SingletonFactory - ** @see singletontestmocktest.hpp + ** @see SingletonTestMock_test */ -#ifndef LIB_SINGLETONPRECONFIGURE_H -#define LIB_SINGLETONPRECONFIGURE_H +#ifndef LIB_SINGLETON_PRECONFIGURE_H +#define LIB_SINGLETON_PRECONFIGURE_H #include "lib/test/mockinjector.hpp" diff --git a/src/lib/singleton-ref.hpp b/src/lib/singleton-ref.hpp index 8fc9c289c..089ae8579 100644 --- a/src/lib/singleton-ref.hpp +++ b/src/lib/singleton-ref.hpp @@ -1,23 +1,23 @@ /* SINGLETON-REF.hpp - helper template providing singleton-like access for implementation code - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file singleton-ref.hpp diff --git a/src/lib/singleton-subclass.hpp b/src/lib/singleton-subclass.hpp index ce120278a..386fc9f59 100644 --- a/src/lib/singleton-subclass.hpp +++ b/src/lib/singleton-subclass.hpp @@ -1,23 +1,23 @@ /* SINGLETON-SUBCLASS.hpp - variant of the singleton (factory) creating a subclass - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file singleton-subclass.hpp diff --git a/src/lib/singleton.hpp b/src/lib/singleton.hpp index 731c441ac..f7af5ddba 100644 --- a/src/lib/singleton.hpp +++ b/src/lib/singleton.hpp @@ -1,42 +1,42 @@ /* SINGLETON.hpp - configuration header for singleton factory - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file singleton.hpp ** Factory for creating Singleton instances. ** This configuration header just pulls in some other implementation headers in ** the right order. The basic class template for creating singletons resides in - ** singletonfactory.hpp, besides we need policy classes defining how to create + ** singleton-factory.hpp, besides we need policy classes defining how to create ** the singleton objects and how to manage singleton lifecycle. Finally, ** we want to preconfigure singleton factories for some important facilities; ** e.g. sometimes we want to include a hook for injecting Test Mock instances. ** - ** You'll find the default Policies in singletonfactory.hpp and the default - ** definition of type lumiera::singleton in singletonpreconfigure.hpp + ** You'll find the default Policies in singleton-factory.hpp and the default + ** definition of type lumiera::singleton in singleton-preconfigure.hpp ** ** @see SingletonFactory ** @see singleton::StaticCreate ** @see singleton::AutoDestroy ** @see singletontest.hpp - ** @see singletontestmocktest.hpp + ** @see SingletonTestMock_test */ @@ -44,9 +44,9 @@ #define LIB_SINGLETON_H -#include "lib/singletonpolicies.hpp" -#include "lib/singletonfactory.hpp" -#include "lib/singletonpreconfigure.hpp" +#include "lib/singleton-policies.hpp" +#include "lib/singleton-factory.hpp" +#include "lib/singleton-preconfigure.hpp" #endif diff --git a/src/lib/singletonpolicies.hpp b/src/lib/singletonpolicies.hpp deleted file mode 100644 index b8333334d..000000000 --- a/src/lib/singletonpolicies.hpp +++ /dev/null @@ -1,138 +0,0 @@ -/* - SINGLETONPOLICIES.hpp - how to manage creation, lifecycle and multithreading - - Copyright (C) Lumiera.org - 2008, Hermann Vosseler <Ichthyostega@web.de> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -==================================================================== -This code is heavily inspired by - The Loki Library (loki-lib/trunk/include/loki/Singleton.h) - Copyright (c) 2001 by Andrei Alexandrescu - This Loki code accompanies the book: - Alexandrescu, Andrei. "Modern C++ Design: Generic Programming - and Design Patterns Applied". - Copyright (c) 2001. Addison-Wesley. ISBN 0201704315 - -*/ - - - -#ifndef LIB_SINGLETONPOLICIES_H -#define LIB_SINGLETONPOLICIES_H - -#include "lib/nobug-init.hpp" -#include "lib/error.hpp" - -#include <vector> - - -namespace lib { - namespace singleton { - - - /* === several Policies usable in conjunction with lib::Singleton === */ - - /** - * Policy placing the Singleton instance into a statically allocated buffer - */ - template<class S> - struct StaticCreate - { - static S* create () - { -#ifdef DEBUG - static uint callCount = 0; - ASSERT ( 0 == callCount++ ); -#endif - static char buff[sizeof(S)]; - return new(buff) S(); - } - static void destroy (S* pSi) - { - pSi-> ~S(); - } - }; - - - /** - * Policy for creating the Singleton instance heap allocated - */ - template<class S> - struct HeapCreate - { - static S* create () { return new S; } - static void destroy (S* pS) { delete pS; } - }; - - - - - - typedef void (*DelFunc)(void); - using std::vector; - - /** - * Policy relying on the compiler/runtime system for Singleton Lifecycle - */ - template<class S> - struct AutoDestroy - { - /** implements the Singleton removal by calling - * the provided deleter function(s) at application shutdown, - * relying on the runtime system calling destructors of static - * objects. Because this Policy class can be shared between - * several Singletons, we need to memorise all registered - * deleter functions for calling them at shutdown. - */ - static void - scheduleDelete (DelFunc kill_the_singleton) - { - class DeleteTrigger - { - vector<DelFunc> dels_; - - public: - void schedule (DelFunc del) - { - dels_.push_back(del); - } - ~DeleteTrigger() - { - vector<DelFunc>::iterator i = dels_.begin(); - for ( ; i != dels_.end(); ++i ) - (*i)(); // invoke deleter func - } - }; - - REQUIRE (kill_the_singleton); - static DeleteTrigger finally; - finally.schedule (kill_the_singleton); - } - - static void - onDeadReference () - { - throw lumiera::error::Logic ("Trying to access the a Singleton instance that has " - "already been released or finished its lifecycle."); - } - }; - - - - -}} // namespace lib::singleton -#endif diff --git a/src/lib/streamtype.cpp b/src/lib/streamtype.cpp index 5d90af0c0..410227567 100644 --- a/src/lib/streamtype.cpp +++ b/src/lib/streamtype.cpp @@ -1,23 +1,23 @@ /* StreamType - classification of media stream types - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/lib/streamtype.hpp b/src/lib/streamtype.hpp index 6dc5747fc..745f50d86 100644 --- a/src/lib/streamtype.hpp +++ b/src/lib/streamtype.hpp @@ -1,23 +1,23 @@ /* STREAMTYPE.hpp - classification of media stream types - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file streamtype.hpp @@ -37,6 +37,7 @@ #include "lib/symbol.hpp" #include "lib/query.hpp" +#include "proc/asset/entry-id.hpp" #include <boost/noncopyable.hpp> @@ -47,7 +48,7 @@ namespace lumiera { /** - * + * TODO write type comment */ struct StreamType : boost::noncopyable { @@ -72,6 +73,8 @@ namespace lumiera { class ImplFacade; class ImplConstraint; + typedef asset::EntryID<StreamType> ID; + Prototype const& prototype; ImplFacade * implType; /////////////TODO: really by ptr??? @@ -149,9 +152,9 @@ namespace lumiera { * and use it to create a new framebuffer */ virtual DataBuffer* createFrame () const =0; - /** similarily create a impl type which complies to this constraint + /** Similarly create a impl type which complies to this constraint * as well as to the additional constraints (e.g. frame size). - * Create a new framebuffer of the resutling type */ + * Create a new frame buffer of the resulting type */ virtual DataBuffer* createFrame (ImplConstraint const& furtherConstraints) const =0; //TODO: do we need functions to represent and describe this constraint? diff --git a/src/lib/sub-id.hpp b/src/lib/sub-id.hpp index 98df7c4e7..fa47f42f5 100644 --- a/src/lib/sub-id.hpp +++ b/src/lib/sub-id.hpp @@ -1,23 +1,23 @@ /* SUB-ID.hpp - extensible symbolic identifier - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/symbol-impl.cpp b/src/lib/symbol-impl.cpp index 3d06dcc35..9e09b4254 100644 --- a/src/lib/symbol-impl.cpp +++ b/src/lib/symbol-impl.cpp @@ -1,23 +1,23 @@ /* Symbol(impl) - helpers for working with literal string IDs - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ /** @file symbol-impl.hpp diff --git a/src/lib/symbol.hpp b/src/lib/symbol.hpp index fcc9041ce..5c1f4d298 100644 --- a/src/lib/symbol.hpp +++ b/src/lib/symbol.hpp @@ -1,23 +1,23 @@ /* SYMBOL.hpp - symbolic constant datatype - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file symbol.hpp diff --git a/src/lib/sync-classlock.hpp b/src/lib/sync-classlock.hpp index cdee70048..60ffba9bd 100644 --- a/src/lib/sync-classlock.hpp +++ b/src/lib/sync-classlock.hpp @@ -1,15 +1,15 @@ /* SYNC-CLASSLOCK.hpp - special case of object based locking tied directly to a type - + Copyright (C) Lumiera.org 2008, Christian Thaeter <ct@pipapo.org> Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the @@ -29,7 +29,7 @@ ** ** @note simply using the ClassLock may cause a Monitor object (with a mutex) to be ** created at static initialisation and destroyed on application shutdown. - ** @see singletonfactory.hpp usage example + ** @see singleton-factory.hpp usage example */ diff --git a/src/lib/sync.hpp b/src/lib/sync.hpp index 56d4c29af..c6ceafc40 100644 --- a/src/lib/sync.hpp +++ b/src/lib/sync.hpp @@ -1,15 +1,15 @@ /* SYNC.hpp - generic helper for object based locking and synchronisation - + Copyright (C) Lumiera.org 2008, Christian Thaeter <ct@pipapo.org> Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the diff --git a/src/lib/test/mockinjector.hpp b/src/lib/test/mockinjector.hpp index 594ac2727..dbc47d3ed 100644 --- a/src/lib/test/mockinjector.hpp +++ b/src/lib/test/mockinjector.hpp @@ -1,23 +1,23 @@ /* MOCKINJECTOR.hpp - replacement singleton factory for injecting Test-Mock objects - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ @@ -26,7 +26,7 @@ #define LUMIERA_TEST_MOCKINJECTOR_H -#include "lib/singletonfactory.hpp" +#include "lib/singleton-factory.hpp" #include <boost/scoped_ptr.hpp> diff --git a/src/lib/test/run.hpp b/src/lib/test/run.hpp index ff61cf30c..b47a46e4c 100644 --- a/src/lib/test/run.hpp +++ b/src/lib/test/run.hpp @@ -1,24 +1,24 @@ /* RUN.hpp - helper class for grouping, registering and invoking testcases - + Copyright (C) Lumiera.org 2008, Christian Thaeter <ct@pipapo.org> Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file run.hpp diff --git a/src/lib/test/suite.cpp b/src/lib/test/suite.cpp index cef0bda42..b109b755d 100644 --- a/src/lib/test/suite.cpp +++ b/src/lib/test/suite.cpp @@ -1,23 +1,23 @@ /* Suite - helper class for running collections of tests - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/lib/test/suite.hpp b/src/lib/test/suite.hpp index d640050f6..953642150 100644 --- a/src/lib/test/suite.hpp +++ b/src/lib/test/suite.hpp @@ -1,23 +1,23 @@ /* SUITE.hpp - helper class for running collections of tests - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file suite.hpp diff --git a/src/lib/test/test-coll.hpp b/src/lib/test/test-coll.hpp index 09578d5fb..907c19309 100644 --- a/src/lib/test/test-coll.hpp +++ b/src/lib/test/test-coll.hpp @@ -1,23 +1,23 @@ /* TEST-COLL.hpp - containers and collections with test data - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/test/test-helper.cpp b/src/lib/test/test-helper.cpp index 0c67ca7fd..8c8a7dda0 100644 --- a/src/lib/test/test-helper.cpp +++ b/src/lib/test/test-helper.cpp @@ -1,23 +1,23 @@ /* Test-Helper - collection of functions supporting unit testing - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/lib/test/test-helper.hpp b/src/lib/test/test-helper.hpp index 5ad305977..a115e3a1f 100644 --- a/src/lib/test/test-helper.hpp +++ b/src/lib/test/test-helper.hpp @@ -1,23 +1,23 @@ /* TEST-HELPER.hpp - collection of functions supporting unit testing - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/test/testoption.cpp b/src/lib/test/testoption.cpp index b0807ab63..3a84ee4f8 100644 --- a/src/lib/test/testoption.cpp +++ b/src/lib/test/testoption.cpp @@ -1,23 +1,23 @@ /* TestOption - handle cmdline for invoking Testsuite - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/lib/test/testoption.hpp b/src/lib/test/testoption.hpp index d9b31521a..efa9ea2cd 100644 --- a/src/lib/test/testoption.hpp +++ b/src/lib/test/testoption.hpp @@ -1,23 +1,23 @@ /* TESTOPTION.hpp - handle cmdline for invoking Testsuite - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/thread-local.hpp b/src/lib/thread-local.hpp index d0cdb06a4..cfb854ae8 100644 --- a/src/lib/thread-local.hpp +++ b/src/lib/thread-local.hpp @@ -1,14 +1,14 @@ /* THREAD-LOCAL.hpp - support using thread local data - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the diff --git a/src/lib/time.c b/src/lib/time.c index 9fcc15b4f..5af40d640 100644 --- a/src/lib/time.c +++ b/src/lib/time.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -23,12 +23,16 @@ #include "lib/time.h" #include "lib/tmpbuf.h" +/* GAVL_TIME_SCALE is the correct factor or dividend when using gavl_time_t for + * units of whole seconds from gavl_time_t. Since we want to use milliseconds, + * we need to multiply or divide by 1000 to get correct results. */ +#define GAVL_TIME_SCALE_MS (GAVL_TIME_SCALE / 1000) + char* lumiera_tmpbuf_print_time (gavl_time_t time) { int milliseconds, seconds, minutes, hours; int negative; - if(time < 0) { @@ -37,7 +41,7 @@ lumiera_tmpbuf_print_time (gavl_time_t time) } else negative = 0; - time /= GAVL_TIME_SCALE / 1000; + time /= GAVL_TIME_SCALE_MS; milliseconds = time % 1000; time /= 1000; seconds = time % 60; @@ -53,16 +57,37 @@ lumiera_tmpbuf_print_time (gavl_time_t time) return buffer; } - gavl_time_t -lumiera_build_time (long millis, uint secs, uint mins, uint hours) +lumiera_build_time(long millis, uint secs, uint mins, uint hours) { gavl_time_t time = millis + 1000 * secs + 1000 * 60 * mins + 1000 * 60 * 60 * hours; - time *= GAVL_TIME_SCALE / 1000; + time *= GAVL_TIME_SCALE_MS; return time; } +int +lumiera_time_hours(gavl_time_t time) +{ + return time / GAVL_TIME_SCALE_MS / 1000 / 60 / 60; +} +int +lumiera_time_minutes(gavl_time_t time) +{ + return (time / GAVL_TIME_SCALE_MS / 1000 / 60) % 60; +} + +int +lumiera_time_seconds(gavl_time_t time) +{ + return (time / GAVL_TIME_SCALE_MS / 1000) % 60; +} + +int +lumiera_time_millis(gavl_time_t time) +{ + return (time / GAVL_TIME_SCALE_MS) % 1000; +} diff --git a/src/lib/time.h b/src/lib/time.h index 5a6034a20..f812c1b9d 100644 --- a/src/lib/time.h +++ b/src/lib/time.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -34,12 +34,31 @@ char* lumiera_tmpbuf_print_time (gavl_time_t time); - /** * Builds a time value by summing up the given components. */ gavl_time_t lumiera_build_time (long millis, uint secs, uint mins, uint hours); +/** + * Get the hour part of given time. + */ +int lumiera_time_hours(gavl_time_t time); + +/** + * Get the minute part of given time. + */ +int lumiera_time_minutes(gavl_time_t time); + +/** + * Get the seconds part of given time. + */ +int lumiera_time_seconds(gavl_time_t time); + +/** + * Get the milliseconds part of given time. + */ +int lumiera_time_millis(gavl_time_t time); + #endif diff --git a/src/lib/tmpbuf.c b/src/lib/tmpbuf.c index 9ac442d2b..d2ef81a7c 100644 --- a/src/lib/tmpbuf.c +++ b/src/lib/tmpbuf.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/tmpbuf.h b/src/lib/tmpbuf.h index da1f0f09a..95fc62564 100644 --- a/src/lib/tmpbuf.h +++ b/src/lib/tmpbuf.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/typed-allocation-manager.hpp b/src/lib/typed-allocation-manager.hpp index 1a4887121..188f120dc 100644 --- a/src/lib/typed-allocation-manager.hpp +++ b/src/lib/typed-allocation-manager.hpp @@ -1,23 +1,23 @@ /* TYPED-ALLOCATION-MANAGER.hpp - abstract backbone to build custom memory managers - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/typed-counter.hpp b/src/lib/typed-counter.hpp index 8b7ca90a7..252faaab5 100644 --- a/src/lib/typed-counter.hpp +++ b/src/lib/typed-counter.hpp @@ -1,23 +1,23 @@ /* TYPED-COUNTER.hpp - maintain a set of type based contexts - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/util-foreach.hpp b/src/lib/util-foreach.hpp index bfb6f9514..9270c3a06 100644 --- a/src/lib/util-foreach.hpp +++ b/src/lib/util-foreach.hpp @@ -1,23 +1,23 @@ /* UTIL-FOREACH.hpp - helpers for doing something for each element - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/util.cpp b/src/lib/util.cpp index f5229fc86..b11c232fc 100644 --- a/src/lib/util.cpp +++ b/src/lib/util.cpp @@ -1,23 +1,23 @@ /* util.cpp - helper functions implementation - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/lib/util.hpp b/src/lib/util.hpp index 3d3abf038..1383e6244 100644 --- a/src/lib/util.hpp +++ b/src/lib/util.hpp @@ -1,23 +1,23 @@ /* UTIL.hpp - collection of small helper functions used "everywhere" - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/variant.hpp b/src/lib/variant.hpp index ebaac670a..7a964c5db 100644 --- a/src/lib/variant.hpp +++ b/src/lib/variant.hpp @@ -1,23 +1,23 @@ /* VARIANT.hpp - simple variant wrapper (typesafe union) - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/vcall.h b/src/lib/vcall.h index bcd3b5190..16bf81b2d 100644 --- a/src/lib/vcall.h +++ b/src/lib/vcall.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/lib/visitor-dispatcher.hpp b/src/lib/visitor-dispatcher.hpp index 26e99f9aa..35f566193 100644 --- a/src/lib/visitor-dispatcher.hpp +++ b/src/lib/visitor-dispatcher.hpp @@ -1,23 +1,23 @@ /* VISITOR-DISPATCHER.hpp - visitor implementation details - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/visitor-policies.hpp b/src/lib/visitor-policies.hpp index 63e6324cf..164b7d1b2 100644 --- a/src/lib/visitor-policies.hpp +++ b/src/lib/visitor-policies.hpp @@ -1,23 +1,23 @@ /* VISITOR-POLICIES.hpp - Acyclic Visitor library - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lib/visitor.hpp b/src/lib/visitor.hpp index a36ca00e1..b2a67e447 100644 --- a/src/lib/visitor.hpp +++ b/src/lib/visitor.hpp @@ -1,14 +1,14 @@ /* VISITOR.hpp - Generic Visitor library implementation - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the diff --git a/src/lib/wrapper.hpp b/src/lib/wrapper.hpp index d31a0983a..8a7761263 100644 --- a/src/lib/wrapper.hpp +++ b/src/lib/wrapper.hpp @@ -1,14 +1,14 @@ /* WRAPPER.hpp - some smart wrapping and reference managing helper templates - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the diff --git a/src/lib/wrapperptr.hpp b/src/lib/wrapperptr.hpp index ed4b43b82..1032045b0 100644 --- a/src/lib/wrapperptr.hpp +++ b/src/lib/wrapperptr.hpp @@ -1,23 +1,23 @@ /* WRAPPERPTR.hpp - variant record able to hold a pointer to some smart-ptr/wrapper types, providing conversions - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/lumiera/main.cpp b/src/lumiera/main.cpp index f5555e927..a1f73e53e 100644 --- a/src/lumiera/main.cpp +++ b/src/lumiera/main.cpp @@ -8,8 +8,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/pre.hpp b/src/pre.hpp index 6b12ea67f..1170769b9 100644 --- a/src/pre.hpp +++ b/src/pre.hpp @@ -1,25 +1,25 @@ /* PRE.hpp - precompiled header collection - + Copyright (C) Lumiera.org 2008, Christian Thaeter <ct@pipapo.org> Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file pre.hpp diff --git a/src/pre_a.hpp b/src/pre_a.hpp index 1bac10969..153fbb01a 100644 --- a/src/pre_a.hpp +++ b/src/pre_a.hpp @@ -1,25 +1,25 @@ /* PRE_A.hpp - precompiled header (including assets) - + Copyright (C) Lumiera.org 2008, Christian Thaeter <ct@pipapo.org> Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file pre.hpp diff --git a/src/proc/Makefile.am b/src/proc/Makefile.am index d2a185dbf..56ef795df 100644 --- a/src/proc/Makefile.am +++ b/src/proc/Makefile.am @@ -108,8 +108,11 @@ liblumiprocmobjectbuilder_la_CXXFLAGS = $(AM_CXXFLAGS) $(LUMIERA_PROC_CFLAGS) -W liblumiprocmobjectbuilder_la_SOURCES = \ $(liblumiprocmobjectbuilder_la_srcdir)/assembler.cpp \ $(liblumiprocmobjectbuilder_la_srcdir)/conmanager.cpp \ + $(liblumiprocmobjectbuilder_la_srcdir)/model-port-registry.cpp \ + $(liblumiprocmobjectbuilder_la_srcdir)/operationpoint.cpp \ $(liblumiprocmobjectbuilder_la_srcdir)/nodecreatortool.cpp \ - $(liblumiprocmobjectbuilder_la_srcdir)/segmentationtool.cpp \ + $(liblumiprocmobjectbuilder_la_srcdir)/segmentation-tool.cpp \ + $(liblumiprocmobjectbuilder_la_srcdir)/segmentation.cpp \ $(liblumiprocmobjectbuilder_la_srcdir)/toolfactory.cpp @@ -154,7 +157,7 @@ liblumiprocmobjectsession_la_SOURCES = \ $(liblumiprocmobjectsession_la_srcdir)/clip.cpp \ $(liblumiprocmobjectsession_la_srcdir)/compoundclip.cpp \ $(liblumiprocmobjectsession_la_srcdir)/constraint.cpp \ - $(liblumiprocmobjectsession_la_srcdir)/defsmanager.cpp \ + $(liblumiprocmobjectsession_la_srcdir)/defs-manager.cpp \ $(liblumiprocmobjectsession_la_srcdir)/effect.cpp \ $(liblumiprocmobjectsession_la_srcdir)/fixedlocation.cpp \ $(liblumiprocmobjectsession_la_srcdir)/fixture.cpp \ @@ -219,7 +222,8 @@ noinst_HEADERS += \ $(liblumiproc_la_srcdir)/mobject/builder/assembler.hpp \ $(liblumiproc_la_srcdir)/mobject/builder/buildertool.hpp \ $(liblumiproc_la_srcdir)/mobject/builder/conmanager.hpp \ - $(liblumiproc_la_srcdir)/mobject/builder/segmentationtool.hpp \ + $(liblumiproc_la_srcdir)/mobject/builder/segmentation.hpp \ + $(liblumiproc_la_srcdir)/mobject/builder/segmentation-tool.hpp \ $(liblumiproc_la_srcdir)/mobject/builder/toolfactory.hpp \ $(liblumiproc_la_srcdir)/mobject/builderfacade.hpp \ $(liblumiproc_la_srcdir)/mobject/explicitplacement.hpp \ @@ -235,8 +239,8 @@ noinst_HEADERS += \ $(liblumiproc_la_srcdir)/mobject/session/clip.hpp \ $(liblumiproc_la_srcdir)/mobject/session/compoundclip.hpp \ $(liblumiproc_la_srcdir)/mobject/session/constraint.hpp \ - $(liblumiproc_la_srcdir)/mobject/session/defsmanager.hpp \ - $(liblumiproc_la_srcdir)/mobject/session/defsregistry.hpp \ + $(liblumiproc_la_srcdir)/mobject/session/defs-manager.hpp \ + $(liblumiproc_la_srcdir)/mobject/session/defs-registry.hpp \ $(liblumiproc_la_srcdir)/mobject/session/effect.hpp \ $(liblumiproc_la_srcdir)/mobject/session/fixedlocation.hpp \ $(liblumiproc_la_srcdir)/mobject/session/fixture.hpp \ diff --git a/src/proc/asset.cpp b/src/proc/asset.cpp index 36a4d7c49..81e5ab5f9 100644 --- a/src/proc/asset.cpp +++ b/src/proc/asset.cpp @@ -1,23 +1,23 @@ /* Asset - Superinterface: bookkeeping view of "things" present in the session - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/asset.hpp b/src/proc/asset.hpp index def4a02ee..bef9463ac 100644 --- a/src/proc/asset.hpp +++ b/src/proc/asset.hpp @@ -1,23 +1,23 @@ /* ASSET.hpp - Superinterface: bookkeeping view of "things" present in the session - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file asset.hpp @@ -103,11 +103,13 @@ namespace asset { template<class KIND> class ID { + HashVal hash_; public: - const HashVal hash; - ID (HashVal id) : hash(id) {} - ID (const KIND& asset) : hash(asset.getID()) {} - operator HashVal() const { return hash; } + ID (HashVal id) : hash_(id) {} + ID (const KIND& asset) : hash_(asset.getID()) {} + operator HashVal() const { return hash_; } + + static ID INVALID; }; class DB; @@ -303,53 +305,59 @@ namespace asset { - /* ====== ordering of Assets and Asset-Pointers ====== */ - - /** ordering of Assets is based on the ordering - * of Ident tuples, which are supposed to be unique. - * By using our customised lumiera::P as smart ptr, - * comparison on P<Asset> ptrs will be automatically - * forwarded to the Asset comparison operators. - * @note version info is irrelevant */ - inline int - Asset::Ident::compare (Asset::Ident const& oi) const - { - int res; - if (0 != (res=category.compare (oi.category))) return res; - if (0 != (res=org.compare (oi.org))) return res; - return name.compare (oi.name); - } - - - /** promote subtype-ptr to PAsset, e.g. for comparing */ - template<class A> - inline const PcAsset - pAsset (shared_ptr<A> const& subPtr) - { - return static_pointer_cast<const Asset,A> (subPtr); - } - - - /** type trait for detecting a shared-ptr-to-asset */ - template <class X> - struct is_pAsset : boost::false_type {}; - - template <class A> - struct is_pAsset<shared_ptr<A> > - : boost::is_base_of<Asset, A> {}; - - - /** convenient for debugging */ - inline string str (PcAsset const& a) - { - if (a) - return string (*a.get()); - else - return "Asset(NULL)"; - } - - - + /* ====== ordering of Assets and Asset-Pointers ====== */ + + /** ordering of Assets is based on the ordering + * of Ident tuples, which are supposed to be unique. + * By using our customised lumiera::P as smart ptr, + * comparison on P<Asset> ptrs will be automatically + * forwarded to the Asset comparison operators. + * @note version info is irrelevant */ + inline int + Asset::Ident::compare (Asset::Ident const& oi) const + { + int res; + if (0 != (res=category.compare (oi.category))) return res; + if (0 != (res=org.compare (oi.org))) return res; + return name.compare (oi.name); + } + + + /** promote subtype-ptr to PAsset, e.g. for comparing */ + template<class A> + inline const PcAsset + pAsset (shared_ptr<A> const& subPtr) + { + return static_pointer_cast<const Asset,A> (subPtr); + } + + + /** type trait for detecting a shared-ptr-to-asset */ + template <class X> + struct is_pAsset : boost::false_type {}; + + template <class A> + struct is_pAsset<shared_ptr<A> > + : boost::is_base_of<Asset, A> {}; + + + /** marker constant denoting a NIL asset */ + template<class KIND> + ID<KIND> ID<KIND>::INVALID = ID(0); + + + /** convenient for debugging */ + inline string str (PcAsset const& a) + { + if (a) + return string (*a.get()); + else + return "Asset(NULL)"; + } + + + + } // namespace asset diff --git a/src/proc/asset/buildinstruct.hpp b/src/proc/asset/buildinstruct.hpp index 1b1129762..715e40954 100644 --- a/src/proc/asset/buildinstruct.hpp +++ b/src/proc/asset/buildinstruct.hpp @@ -1,23 +1,23 @@ /* BUILDINSTRUCT.hpp - Instructions for building some configuration of render nodes. - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/asset/category.cpp b/src/proc/asset/category.cpp index e285bf011..8e98a68dd 100644 --- a/src/proc/asset/category.cpp +++ b/src/proc/asset/category.cpp @@ -1,23 +1,23 @@ /* Category - tree like classification of Assets - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/asset/category.hpp b/src/proc/asset/category.hpp index 71a24eac4..aa263ee7d 100644 --- a/src/proc/asset/category.hpp +++ b/src/proc/asset/category.hpp @@ -1,23 +1,23 @@ /* CATEGORY.hpp - tree like classification of Assets - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/asset/clip.cpp b/src/proc/asset/clip.cpp index ebfb2fa8d..aa651de74 100644 --- a/src/proc/asset/clip.cpp +++ b/src/proc/asset/clip.cpp @@ -1,23 +1,23 @@ /* Clip(Asset) - bookkeeping (asset) view of a media clip. - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/asset/clip.hpp b/src/proc/asset/clip.hpp index 8534b32ba..d3b1a3aaa 100644 --- a/src/proc/asset/clip.hpp +++ b/src/proc/asset/clip.hpp @@ -1,23 +1,23 @@ /* CLIP.hpp - bookkeeping (asset) view of a media clip. - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/asset/codec.cpp b/src/proc/asset/codec.cpp index e98608375..8810ea0da 100644 --- a/src/proc/asset/codec.cpp +++ b/src/proc/asset/codec.cpp @@ -1,23 +1,23 @@ /* Codec(Asset) - description of some media data decoder or encoder facility - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/asset/codec.hpp b/src/proc/asset/codec.hpp index e46fcf5dd..b7d7e5e34 100644 --- a/src/proc/asset/codec.hpp +++ b/src/proc/asset/codec.hpp @@ -1,23 +1,23 @@ /* CODEC.hpp - description of some media data decoder or encoder facility - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/asset/compoundmedia.cpp b/src/proc/asset/compoundmedia.cpp index 1a00458b6..e77416247 100644 --- a/src/proc/asset/compoundmedia.cpp +++ b/src/proc/asset/compoundmedia.cpp @@ -1,23 +1,23 @@ /* CompoundMedia - multichannel media - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/asset/compoundmedia.hpp b/src/proc/asset/compoundmedia.hpp index 987632408..22fdb6922 100644 --- a/src/proc/asset/compoundmedia.hpp +++ b/src/proc/asset/compoundmedia.hpp @@ -1,23 +1,23 @@ /* COMPOUNDMEDIA.hpp - multichannel media - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/asset/dataset.hpp b/src/proc/asset/dataset.hpp index 31fcb8982..e488302c2 100644 --- a/src/proc/asset/dataset.hpp +++ b/src/proc/asset/dataset.hpp @@ -1,23 +1,23 @@ /* DATASET.hpp - meta asset describing a collection of control data - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/asset/db.hpp b/src/proc/asset/db.hpp index 1676c96da..b2d9b073f 100644 --- a/src/proc/asset/db.hpp +++ b/src/proc/asset/db.hpp @@ -1,23 +1,23 @@ /* DB.hpp - registry holding known Asset instances. - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/asset/effect.cpp b/src/proc/asset/effect.cpp index cf795dc08..999b5c118 100644 --- a/src/proc/asset/effect.cpp +++ b/src/proc/asset/effect.cpp @@ -1,23 +1,23 @@ /* Effect(Asset) - Effect or media processing component - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/asset/effect.hpp b/src/proc/asset/effect.hpp index a9b470b17..e2e8c3fd4 100644 --- a/src/proc/asset/effect.hpp +++ b/src/proc/asset/effect.hpp @@ -1,23 +1,23 @@ /* EFFECT.hpp - Effect or media processing component - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/asset/entry-id.hpp b/src/proc/asset/entry-id.hpp index 3f736892e..b7ff98cce 100644 --- a/src/proc/asset/entry-id.hpp +++ b/src/proc/asset/entry-id.hpp @@ -1,23 +1,23 @@ /* ENTRY-ID.hpp - plain symbolic and hash ID used for accounting - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ @@ -241,7 +241,7 @@ namespace asset { } friend ostream& operator<< (ostream& os, EntryID const& id) { return os << string(id); } - friend bool operator< (EntryID const& i1, EntryID const& i2) { return i1.getSym() < i2.getSym(); } + friend bool operator< (EntryID const& i1, EntryID const& i2) { return i1.getSym() < i2.getSym(); } }; diff --git a/src/proc/asset/inventory.hpp b/src/proc/asset/inventory.hpp index 7286f3324..2853e2697 100644 --- a/src/proc/asset/inventory.hpp +++ b/src/proc/asset/inventory.hpp @@ -1,23 +1,23 @@ /* INVENTORY.hpp - viewing an Typed-ID registration group as meta asset - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/asset/media.cpp b/src/proc/asset/media.cpp index 4f3ffddc4..53cd1f1fd 100644 --- a/src/proc/asset/media.cpp +++ b/src/proc/asset/media.cpp @@ -1,23 +1,23 @@ /* Media(Asset) - key abstraction: media-like assets - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/asset/media.hpp b/src/proc/asset/media.hpp index ba6b10558..d3b2c9024 100644 --- a/src/proc/asset/media.hpp +++ b/src/proc/asset/media.hpp @@ -1,23 +1,23 @@ /* MEDIA.hpp - key abstraction: media-like assets - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/asset/meta.cpp b/src/proc/asset/meta.cpp index ecb918ed1..795ea0e74 100644 --- a/src/proc/asset/meta.cpp +++ b/src/proc/asset/meta.cpp @@ -1,23 +1,23 @@ /* Meta(Asset) - key abstraction: metadata and organisational asset - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/asset/meta.hpp b/src/proc/asset/meta.hpp index 5a5ac592f..cd94b26e5 100644 --- a/src/proc/asset/meta.hpp +++ b/src/proc/asset/meta.hpp @@ -1,23 +1,23 @@ /* META.hpp - key abstraction: metadata and organisational asset - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/asset/pipe.cpp b/src/proc/asset/pipe.cpp index 2188a8138..4a766cb36 100644 --- a/src/proc/asset/pipe.cpp +++ b/src/proc/asset/pipe.cpp @@ -1,23 +1,23 @@ /* Pipe - structural asset denoting a processing pipe to generate media output - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -38,7 +38,7 @@ namespace asset { * default wiring. */ Pipe::Pipe ( const Asset::Ident& idi - , string const& streamID + , string const& streamID ////////////////////////////////////////TICKET #648 , PProcPatt& wiring , string shortName , string longName diff --git a/src/proc/asset/pipe.hpp b/src/proc/asset/pipe.hpp index 922dec444..c60d310c4 100644 --- a/src/proc/asset/pipe.hpp +++ b/src/proc/asset/pipe.hpp @@ -1,23 +1,23 @@ /* PIPE.hpp - structural asset denoting a processing pipe generating media output - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ @@ -26,6 +26,7 @@ #include "proc/asset/struct.hpp" #include "proc/asset/procpatt.hpp" +#include "lib/streamtype.hpp" #include <string> @@ -34,6 +35,7 @@ namespace asset { using lumiera::P; + using lumiera::StreamType; using std::string; class Pipe; @@ -45,7 +47,16 @@ namespace asset { { public: ID (HashVal id); - ID (const Pipe&); + ID (Pipe const&); + ID (PPipe const&); + + /** allows a Pipe-ID to stand in for a full Pipe Asset + * @throw error::Invalid when there is no corresponding Pipe */ + operator PPipe() const; + + /** allows to fetch the StreamType directly just from a Pipe-ID + * @throw error::Invalid when there is no corresponding Pipe */ + StreamType::ID streamType() const; }; @@ -59,7 +70,7 @@ namespace asset { : public Struct { PProcPatt wiringTemplate_; - const string streamID_; ///< @todo just a placeholder for now 10/10 + StreamType::ID streamID_; ////////////////////////////////////////TICKET #648 public: string shortDesc; @@ -78,7 +89,7 @@ namespace asset { public: string const& getPipeID() const { return ident.name; } - string const& getStreamID() const { return streamID_; } + StreamType::ID getStreamID() const { return streamID_; } ////////////////////////////////////////TICKET #648 PProcPatt const& getProcPatt() const { return wiringTemplate_; } @@ -95,9 +106,21 @@ namespace asset { // catch up with postponed definition of ID<Struct> ctors... // - inline ID<Pipe>::ID(HashVal id) : ID<Struct> (id) {}; - inline ID<Pipe>::ID(Pipe const& pipe) : ID<Struct> (pipe.getID()) {}; + inline ID<Pipe>::ID(HashVal id) : ID<Struct> (id) {}; + inline ID<Pipe>::ID(Pipe const& pipe) : ID<Struct> (pipe.getID()) {}; + inline ID<Pipe>::ID(PPipe const& pipe) : ID<Struct> (pipe->getID()) {}; + inline + ID<Pipe>::operator PPipe() const + { + return Pipe::lookup(*this); + } + + inline StreamType::ID + ID<Pipe>::streamType() const + { + return Pipe::lookup(*this)->getStreamID(); + } diff --git a/src/proc/asset/preview.cpp b/src/proc/asset/preview.cpp index f6aa426d6..d14d54a77 100644 --- a/src/proc/asset/preview.cpp +++ b/src/proc/asset/preview.cpp @@ -1,23 +1,23 @@ /* Preview(Asset) - alternative version of the media data, probably with lower resolution - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/asset/preview.hpp b/src/proc/asset/preview.hpp index 8aec81b5f..27bacd1b2 100644 --- a/src/proc/asset/preview.hpp +++ b/src/proc/asset/preview.hpp @@ -1,23 +1,23 @@ /* PREVIEW.hpp - alternative version of the media data, probably with lower resolution - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/asset/proc.cpp b/src/proc/asset/proc.cpp index fe53bd336..8b6ecb178 100644 --- a/src/proc/asset/proc.cpp +++ b/src/proc/asset/proc.cpp @@ -1,23 +1,23 @@ /* Proc(Asset) - key abstraction: data-processing assets - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/asset/proc.hpp b/src/proc/asset/proc.hpp index 35618627b..cced6e638 100644 --- a/src/proc/asset/proc.hpp +++ b/src/proc/asset/proc.hpp @@ -1,23 +1,23 @@ /* PROC.hpp - key abstraction: data-processing assets - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/asset/procpatt.cpp b/src/proc/asset/procpatt.cpp index 13d193c2c..8399f6ccb 100644 --- a/src/proc/asset/procpatt.cpp +++ b/src/proc/asset/procpatt.cpp @@ -1,23 +1,23 @@ /* ProcPatt - template for building some render processing network - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/asset/procpatt.hpp b/src/proc/asset/procpatt.hpp index bd9b025df..ff714617d 100644 --- a/src/proc/asset/procpatt.hpp +++ b/src/proc/asset/procpatt.hpp @@ -1,23 +1,23 @@ /* PROCPATT.hpp - template for building some render processing network - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/asset/sequence.cpp b/src/proc/asset/sequence.cpp index 7d4f375e8..a84e2fd3b 100644 --- a/src/proc/asset/sequence.cpp +++ b/src/proc/asset/sequence.cpp @@ -1,23 +1,23 @@ /* Sequence - Compound of MObjects placed on a track tree. Building block of the Session - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/asset/sequence.hpp b/src/proc/asset/sequence.hpp index c1ce02704..91d851d59 100644 --- a/src/proc/asset/sequence.hpp +++ b/src/proc/asset/sequence.hpp @@ -1,23 +1,23 @@ /* SEQUENCE.hpp - Compound of MObjects placed on a track tree. Building block of the Session - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/asset/struct-factory-impl.hpp b/src/proc/asset/struct-factory-impl.hpp index 93836e2b2..bfc702d18 100644 --- a/src/proc/asset/struct-factory-impl.hpp +++ b/src/proc/asset/struct-factory-impl.hpp @@ -1,23 +1,23 @@ /* STRUCT-FACTORY-IMPL.hpp - crating structural assets (impl details) - + Copyright (C) Lumiera.org 2008-2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/asset/struct-scheme.hpp b/src/proc/asset/struct-scheme.hpp index c8e0d09a4..f39069101 100644 --- a/src/proc/asset/struct-scheme.hpp +++ b/src/proc/asset/struct-scheme.hpp @@ -1,23 +1,23 @@ /* STRUCT-SCHEME.hpp - naming and designation scheme for structural assets - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ @@ -52,6 +52,9 @@ namespace session { class Clip; }} +namespace lumiera { + class StreamType; +} namespace asset{ @@ -104,6 +107,12 @@ namespace asset{ static Symbol catFolder() { return "pipes";} static Symbol idSymbol() { return "pipe"; } }; + template<> struct StructTraits<lumiera::StreamType> + { + static Symbol namePrefix() { return "type"; } + static Symbol catFolder() { return "stream-types";} + static Symbol idSymbol() { return "stype"; } + }; template<> struct StructTraits<const ProcPatt> { static Symbol namePrefix() { return "patt"; } diff --git a/src/proc/asset/struct.cpp b/src/proc/asset/struct.cpp index 9145c2ad8..1eeece4a9 100644 --- a/src/proc/asset/struct.cpp +++ b/src/proc/asset/struct.cpp @@ -1,23 +1,23 @@ /* Struct(Asset) - key abstraction: structural asset - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -148,7 +148,7 @@ namespace asset { normaliseID (pipeID); normaliseID (streamID); static format descriptor("pipe(%s), stream(%s)."); - Pipe* pP = impl_->fabricate (Query<Pipe> (descriptor % pipeID % streamID)); + Pipe* pP = impl_->fabricate (Query<Pipe> (str(descriptor % pipeID % streamID))); return AssetManager::instance().wrap (*pP); } diff --git a/src/proc/asset/struct.hpp b/src/proc/asset/struct.hpp index 9a9e84caa..bfd175fae 100644 --- a/src/proc/asset/struct.hpp +++ b/src/proc/asset/struct.hpp @@ -1,23 +1,23 @@ /* STRUCT.hpp - key abstraction: structural asset - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/asset/timeline.cpp b/src/proc/asset/timeline.cpp index dbd663b3d..bb2f9e36e 100644 --- a/src/proc/asset/timeline.cpp +++ b/src/proc/asset/timeline.cpp @@ -1,23 +1,23 @@ /* Timeline - independent top-level element of the Session - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/asset/timeline.hpp b/src/proc/asset/timeline.hpp index 64fd4af32..7bf168e1e 100644 --- a/src/proc/asset/timeline.hpp +++ b/src/proc/asset/timeline.hpp @@ -1,23 +1,23 @@ /* TIMELINE.hpp - independent top-level element of the Session - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/asset/typed-id.hpp b/src/proc/asset/typed-id.hpp index 0c9db1f12..a7edcc732 100644 --- a/src/proc/asset/typed-id.hpp +++ b/src/proc/asset/typed-id.hpp @@ -1,23 +1,23 @@ /* TYPED-ID.hpp - registration service for ID to type association - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/asset/typed-lookup.cpp b/src/proc/asset/typed-lookup.cpp index fdfeafd57..a7d9c3368 100644 --- a/src/proc/asset/typed-lookup.cpp +++ b/src/proc/asset/typed-lookup.cpp @@ -1,23 +1,23 @@ /* TypedLookup - implementing a registration service for ID to type association - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/asset/unknown.cpp b/src/proc/asset/unknown.cpp index 3fa2e4ae9..ca25adf74 100644 --- a/src/proc/asset/unknown.cpp +++ b/src/proc/asset/unknown.cpp @@ -1,23 +1,23 @@ /* Unknown - placeholder for unknown or unavailable media source - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/asset/unknown.hpp b/src/proc/asset/unknown.hpp index 0402f6bc7..fa3f5a291 100644 --- a/src/proc/asset/unknown.hpp +++ b/src/proc/asset/unknown.hpp @@ -1,23 +1,23 @@ /* UNKNOWN.hpp - placeholder for unknown or unavailable media source - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/assetmanager.cpp b/src/proc/assetmanager.cpp index ec7421b4a..0cf1a989c 100644 --- a/src/proc/assetmanager.cpp +++ b/src/proc/assetmanager.cpp @@ -1,23 +1,23 @@ /* AssetManager - Facade for the Asset subsystem - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/assetmanager.hpp b/src/proc/assetmanager.hpp index 51b7b416b..d5102eeb4 100644 --- a/src/proc/assetmanager.hpp +++ b/src/proc/assetmanager.hpp @@ -1,23 +1,23 @@ /* ASSETMANAGER.hpp - Facade for the Asset subsystem - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file assetmanager.hpp diff --git a/src/proc/common.hpp b/src/proc/common.hpp index 69cbce3e8..ebf5ca48f 100644 --- a/src/proc/common.hpp +++ b/src/proc/common.hpp @@ -1,25 +1,25 @@ /* COMMON.hpp - global definitions and common types for the Proc-Layer - + Copyright (C) Lumiera.org 2008, Christian Thaeter <ct@pipapo.org> Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file common.hpp diff --git a/src/proc/control/argument-erasure.hpp b/src/proc/control/argument-erasure.hpp index c903605c9..1a9d15b60 100644 --- a/src/proc/control/argument-erasure.hpp +++ b/src/proc/control/argument-erasure.hpp @@ -1,23 +1,23 @@ /* ARGUMENT-ERASURE.hpp - helper for passing on a dynamic typed argument tuple - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/control/argument-tuple-accept.hpp b/src/proc/control/argument-tuple-accept.hpp index 189934b9f..5db90d0c8 100644 --- a/src/proc/control/argument-tuple-accept.hpp +++ b/src/proc/control/argument-tuple-accept.hpp @@ -1,23 +1,23 @@ /* ARGUMENT-TUPLE-ACCEPT.hpp - helper template providing a bind(...) member function - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/control/command-argument-holder.hpp b/src/proc/control/command-argument-holder.hpp index e4d4adfbe..e71a60a10 100644 --- a/src/proc/control/command-argument-holder.hpp +++ b/src/proc/control/command-argument-holder.hpp @@ -1,23 +1,23 @@ /* COMMAND-ARGUMENT-HOLDER.hpp - specifically typed container for storage of command arguments - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/control/command-closure.hpp b/src/proc/control/command-closure.hpp index be82e0649..90b29435c 100644 --- a/src/proc/control/command-closure.hpp +++ b/src/proc/control/command-closure.hpp @@ -1,23 +1,23 @@ /* COMMAND-CLOSURE.hpp - defining execution targets and parameters for commands - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/control/command-def.hpp b/src/proc/control/command-def.hpp index 058f06ce9..b3e777c4c 100644 --- a/src/proc/control/command-def.hpp +++ b/src/proc/control/command-def.hpp @@ -1,23 +1,23 @@ /* COMMAND-DEF.hpp - defining and binding a Proc-Layer command - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/control/command-impl-clone-builder.hpp b/src/proc/control/command-impl-clone-builder.hpp index 21848f2a8..cbc6ba378 100644 --- a/src/proc/control/command-impl-clone-builder.hpp +++ b/src/proc/control/command-impl-clone-builder.hpp @@ -1,23 +1,23 @@ /* COMMAND-IMPL-CLONE-BUILDER.hpp - Cloning command implementation without disclosing concrete type - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/control/command-impl.cpp b/src/proc/control/command-impl.cpp index b73573091..36406ced5 100644 --- a/src/proc/control/command-impl.cpp +++ b/src/proc/control/command-impl.cpp @@ -1,23 +1,23 @@ /* CommandImpl - Proc-Layer command implementation (top level) - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/control/command-impl.hpp b/src/proc/control/command-impl.hpp index f796c248a..7d3c18536 100644 --- a/src/proc/control/command-impl.hpp +++ b/src/proc/control/command-impl.hpp @@ -1,23 +1,23 @@ /* COMMAND-IMPL.hpp - Proc-Layer command implementation (top level) - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/control/command-invocation.hpp b/src/proc/control/command-invocation.hpp index 64cbbe44f..660814098 100644 --- a/src/proc/control/command-invocation.hpp +++ b/src/proc/control/command-invocation.hpp @@ -1,23 +1,23 @@ /* COMMAND-INVOCATION.hpp - shortcuts and helpers for calling Proc-Layer commands - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/control/command-mutation.hpp b/src/proc/control/command-mutation.hpp index 8152f093c..9a4f2d13d 100644 --- a/src/proc/control/command-mutation.hpp +++ b/src/proc/control/command-mutation.hpp @@ -1,23 +1,23 @@ /* COMMAND-MUTATION.hpp - functor encapsulating the actual operation of proc-Command - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/control/command-registry.hpp b/src/proc/control/command-registry.hpp index 4dbd225be..1a94ee13f 100644 --- a/src/proc/control/command-registry.hpp +++ b/src/proc/control/command-registry.hpp @@ -1,23 +1,23 @@ /* COMMAND-REGISTRY.hpp - proc-Command object registration and storage management - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/control/command-signature.hpp b/src/proc/control/command-signature.hpp index 150e3db0b..3c9df666f 100644 --- a/src/proc/control/command-signature.hpp +++ b/src/proc/control/command-signature.hpp @@ -1,23 +1,23 @@ /* COMMAND-SIGNATURE.hpp - deriving suitable command function signatures - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/control/command.cpp b/src/proc/control/command.cpp index 43906c704..291edfb7e 100644 --- a/src/proc/control/command.cpp +++ b/src/proc/control/command.cpp @@ -1,23 +1,23 @@ /* Command - Key abstraction for proc/edit operations and UNDO management - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/control/command.hpp b/src/proc/control/command.hpp index b23882863..86632febc 100644 --- a/src/proc/control/command.hpp +++ b/src/proc/control/command.hpp @@ -1,23 +1,23 @@ /* COMMAND.hpp - Key abstraction for proc/edit operations and UNDO management - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/control/handling-pattern.cpp b/src/proc/control/handling-pattern.cpp index b3d961418..b71cc6d4c 100644 --- a/src/proc/control/handling-pattern.cpp +++ b/src/proc/control/handling-pattern.cpp @@ -1,23 +1,23 @@ /* HandlingPattern - A skeleton for executing commands, including standard implementations - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/control/handling-pattern.hpp b/src/proc/control/handling-pattern.hpp index d4b4ae946..f414e25a1 100644 --- a/src/proc/control/handling-pattern.hpp +++ b/src/proc/control/handling-pattern.hpp @@ -1,23 +1,23 @@ /* HANDLILNG-PATTERN.hpp - A skeleton for executing commands, including standard implementations - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/control/handling-patterns.hpp b/src/proc/control/handling-patterns.hpp index d01ad6236..19d3d7d5f 100644 --- a/src/proc/control/handling-patterns.hpp +++ b/src/proc/control/handling-patterns.hpp @@ -1,23 +1,23 @@ /* HANDLILNG-PATTERNS.hpp - Collection of predefined command handling patterns - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/control/mediaimpllib.hpp b/src/proc/control/mediaimpllib.hpp index 6150c3f4e..0afa07b8a 100644 --- a/src/proc/control/mediaimpllib.hpp +++ b/src/proc/control/mediaimpllib.hpp @@ -1,23 +1,23 @@ /* MEDIAIMPLLIB.hpp - interface providing a facade to an media handling library - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/control/memento-tie.hpp b/src/proc/control/memento-tie.hpp index 3c78b99f7..af63d38d1 100644 --- a/src/proc/control/memento-tie.hpp +++ b/src/proc/control/memento-tie.hpp @@ -1,23 +1,23 @@ /* MEMENTO-TIE.hpp - capturing and providing state for undoing commands - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/control/pathmanager.cpp b/src/proc/control/pathmanager.cpp index 6c2288a28..0e3375083 100644 --- a/src/proc/control/pathmanager.cpp +++ b/src/proc/control/pathmanager.cpp @@ -1,23 +1,23 @@ /* PathManager - Manager for deciding the actual render strategy - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/control/pathmanager.hpp b/src/proc/control/pathmanager.hpp index c3057944f..63ea761c2 100644 --- a/src/proc/control/pathmanager.hpp +++ b/src/proc/control/pathmanager.hpp @@ -1,23 +1,23 @@ /* PATHMANAGER.hpp - Manager for deciding the actual render strategy - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/control/proc-dispatcher.cpp b/src/proc/control/proc-dispatcher.cpp index 2fcb6e251..b7bb53fc4 100644 --- a/src/proc/control/proc-dispatcher.cpp +++ b/src/proc/control/proc-dispatcher.cpp @@ -1,23 +1,23 @@ /* ProcDispatcher - Proc-Layer command dispatch and execution - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/control/proc-dispatcher.hpp b/src/proc/control/proc-dispatcher.hpp index d15021523..a4161aa42 100644 --- a/src/proc/control/proc-dispatcher.hpp +++ b/src/proc/control/proc-dispatcher.hpp @@ -1,23 +1,23 @@ /* PROC-DISPATCHER.hpp - Proc-Layer command dispatch and execution - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/control/stypemanager.cpp b/src/proc/control/stypemanager.cpp index 10131f130..8c4d50672 100644 --- a/src/proc/control/stypemanager.cpp +++ b/src/proc/control/stypemanager.cpp @@ -1,23 +1,23 @@ /* STypeManager - entry point for dealing with media stream types - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -79,6 +79,14 @@ namespace control { } + /** */ + StreamType const& + STypeManager::getType (StreamType::ID stID) + { + UNIMPLEMENTED ("get type just by symbolic ID (query defaults manager)"); + } + + StreamType const& STypeManager::getType (StreamType::Prototype const& protoType) { diff --git a/src/proc/control/stypemanager.hpp b/src/proc/control/stypemanager.hpp index 70003eef4..0f40408cc 100644 --- a/src/proc/control/stypemanager.hpp +++ b/src/proc/control/stypemanager.hpp @@ -1,23 +1,23 @@ /* STYPEMANAGER.hpp - entry point for dealing with media stream types - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ @@ -53,6 +53,8 @@ namespace control { * just a symbolic ID. Effectively this queries a default */ StreamType const& getType (Symbol sTypeID) ; + StreamType const& getType (StreamType::ID stID) ; + /** build or retrieve a complete StreamType implementing the given Prototype */ StreamType const& getType (StreamType::Prototype const& protoType) ; diff --git a/src/proc/control/styperegistry.hpp b/src/proc/control/styperegistry.hpp index 5979582d2..a5593f9c7 100644 --- a/src/proc/control/styperegistry.hpp +++ b/src/proc/control/styperegistry.hpp @@ -1,29 +1,29 @@ /* STYPEREGISTRY.hpp - implementation of the registry for stream type descriptors - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file styperegistry.hpp ** This is part of the \i implementation of the stream type manager (include). - ** Only used in stypemanager.cpp and accompaning unit tests. + ** Only used in stypemanager.cpp and accompanying unit tests. ** ** @see control::STypeManager ** @see lumiera::StreamType @@ -62,7 +62,7 @@ namespace control { /** - * @internal Helper for organizing preconfigured default objects. + * @internal Helper for organising preconfigured default objects. * Maintaines a collection of objects known or encountered as "default" * for a given type. This collection is ordered by "degree of constriction", * which is implemented by counting the number of predicates in the query diff --git a/src/proc/controllerfacade.cpp b/src/proc/controllerfacade.cpp index cff9e43d0..737f85589 100644 --- a/src/proc/controllerfacade.cpp +++ b/src/proc/controllerfacade.cpp @@ -1,23 +1,23 @@ /* ControllerFacade - Facade and service access point for the Proc Layer Controller - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/controllerfacade.hpp b/src/proc/controllerfacade.hpp index faa213e9b..e7f2c95c2 100644 --- a/src/proc/controllerfacade.hpp +++ b/src/proc/controllerfacade.hpp @@ -1,23 +1,23 @@ /* CONTROLLERFACADE.hpp - Facade and service access point for the Proc Layer Controller - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/engine/buffhandle.cpp b/src/proc/engine/buffhandle.cpp index 30ae603e2..24573990e 100644 --- a/src/proc/engine/buffhandle.cpp +++ b/src/proc/engine/buffhandle.cpp @@ -1,23 +1,23 @@ /* BuffHandle - Buffer handling support for the render engine - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/engine/buffhandle.hpp b/src/proc/engine/buffhandle.hpp index cdf1135e6..6cdca586c 100644 --- a/src/proc/engine/buffhandle.hpp +++ b/src/proc/engine/buffhandle.hpp @@ -1,23 +1,23 @@ /* BUFFHANDLE.hpp - Buffer handling support for the render engine - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file buffhandle.hpp diff --git a/src/proc/engine/bufftable.hpp b/src/proc/engine/bufftable.hpp index 7ec679f72..3682b51ff 100644 --- a/src/proc/engine/bufftable.hpp +++ b/src/proc/engine/bufftable.hpp @@ -1,23 +1,23 @@ /* BUFFTABLE.hpp - Table of buffer pointers to be used by the render nodes - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/engine/link.cpp b/src/proc/engine/link.cpp index aac01ed41..e3e9096c6 100644 --- a/src/proc/engine/link.cpp +++ b/src/proc/engine/link.cpp @@ -1,23 +1,23 @@ /* Link - forwarding, adapting or connecting ProcNode - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/engine/link.hpp b/src/proc/engine/link.hpp index d677fca9c..ac3f70f01 100644 --- a/src/proc/engine/link.hpp +++ b/src/proc/engine/link.hpp @@ -1,23 +1,23 @@ /* LINK.hpp - forwarding, adapting or connecting ProcNode - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/engine/mask.cpp b/src/proc/engine/mask.cpp index beecb86d3..e742a9a91 100644 --- a/src/proc/engine/mask.cpp +++ b/src/proc/engine/mask.cpp @@ -1,23 +1,23 @@ /* Mask - Video ProcNode for masking regions of the image (automatable) - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/engine/mask.hpp b/src/proc/engine/mask.hpp index ccbac5bcf..d2973550f 100644 --- a/src/proc/engine/mask.hpp +++ b/src/proc/engine/mask.hpp @@ -1,23 +1,23 @@ /* MASK.hpp - Video ProcNode for masking regions of the image (automatable) - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/engine/nodefactory.cpp b/src/proc/engine/nodefactory.cpp index d8dbfa01d..eb3ec1913 100644 --- a/src/proc/engine/nodefactory.cpp +++ b/src/proc/engine/nodefactory.cpp @@ -1,29 +1,29 @@ /* NodeFactory - Interface for creating processing nodes of various kinds - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "proc/engine/nodefactory.hpp" #include "proc/mobject/session/effect.hpp" -#include "lib/allocationcluster.hpp" +#include "lib/allocation-cluster.hpp" #include "proc/engine/nodewiring.hpp" diff --git a/src/proc/engine/nodefactory.hpp b/src/proc/engine/nodefactory.hpp index 4c3d9e679..49f605ca4 100644 --- a/src/proc/engine/nodefactory.hpp +++ b/src/proc/engine/nodefactory.hpp @@ -1,23 +1,23 @@ /* NODEFACTORY.hpp - Interface for creating processing nodes of various kinds - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/engine/nodeinvocation.hpp b/src/proc/engine/nodeinvocation.hpp index 1d57280f4..dd9b17ea4 100644 --- a/src/proc/engine/nodeinvocation.hpp +++ b/src/proc/engine/nodeinvocation.hpp @@ -1,23 +1,23 @@ /* NODEINVOCATION.hpp - Organise the invocation state within a single pull() call - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file nodeinvocation.hpp diff --git a/src/proc/engine/nodeoperation.hpp b/src/proc/engine/nodeoperation.hpp index cc8a29137..ce587862b 100644 --- a/src/proc/engine/nodeoperation.hpp +++ b/src/proc/engine/nodeoperation.hpp @@ -1,23 +1,23 @@ /* NODEOPERATION.hpp - Specify how the nodes call each other and how processing is organized - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file nodeoperation.hpp diff --git a/src/proc/engine/nodewiring-config.hpp b/src/proc/engine/nodewiring-config.hpp index 6271199fd..62ce24abc 100644 --- a/src/proc/engine/nodewiring-config.hpp +++ b/src/proc/engine/nodewiring-config.hpp @@ -1,23 +1,23 @@ /* NODEWIRING-CONFIG.hpp - Helper for representing and selecting the wiring case - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file nodewiring-config.hpp diff --git a/src/proc/engine/nodewiring-def.hpp b/src/proc/engine/nodewiring-def.hpp index 496195de1..ef0173820 100644 --- a/src/proc/engine/nodewiring-def.hpp +++ b/src/proc/engine/nodewiring-def.hpp @@ -1,23 +1,23 @@ /* NODEWIRING-DEF.hpp - Implementation of the node network and operation control - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file nodewiring-def.hpp diff --git a/src/proc/engine/nodewiring.cpp b/src/proc/engine/nodewiring.cpp index f59d620db..f1e989816 100644 --- a/src/proc/engine/nodewiring.cpp +++ b/src/proc/engine/nodewiring.cpp @@ -1,23 +1,23 @@ /* NodeWiring - Implementation of the node network and operation control - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/engine/nodewiring.hpp b/src/proc/engine/nodewiring.hpp index 7d2882d45..9f263ab06 100644 --- a/src/proc/engine/nodewiring.hpp +++ b/src/proc/engine/nodewiring.hpp @@ -1,23 +1,23 @@ /* NODEWIRING.hpp - Implementation of the node network and operation control - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ @@ -26,7 +26,7 @@ #include "proc/engine/procnode.hpp" -#include "lib/allocationcluster.hpp" +#include "lib/allocation-cluster.hpp" #include "proc/engine/nodewiring-def.hpp" //#include <boost/noncopyable.hpp> diff --git a/src/proc/engine/pluginadapter.cpp b/src/proc/engine/pluginadapter.cpp index fb57ae58a..7d6a16031 100644 --- a/src/proc/engine/pluginadapter.cpp +++ b/src/proc/engine/pluginadapter.cpp @@ -1,23 +1,23 @@ /* PluginAdapter - Adapter for integrating various Effect processors in the render pipeline - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/engine/pluginadapter.hpp b/src/proc/engine/pluginadapter.hpp index b771f1fbc..25dabab66 100644 --- a/src/proc/engine/pluginadapter.hpp +++ b/src/proc/engine/pluginadapter.hpp @@ -1,23 +1,23 @@ /* PLUGINADAPTER.hpp - Adapter for integrating various Effect processors in the render pipeline - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/engine/procnode.hpp b/src/proc/engine/procnode.hpp index 536085832..757524914 100644 --- a/src/proc/engine/procnode.hpp +++ b/src/proc/engine/procnode.hpp @@ -1,23 +1,23 @@ /* PROCNODE.hpp - Key abstraction of the Render Engine: a Processing Node - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file procnode.hpp diff --git a/src/proc/engine/projector.cpp b/src/proc/engine/projector.cpp index 14fcecabb..3b75702ed 100644 --- a/src/proc/engine/projector.cpp +++ b/src/proc/engine/projector.cpp @@ -1,23 +1,23 @@ /* Projector - video ProcNode for scaling and translating image data - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/engine/projector.hpp b/src/proc/engine/projector.hpp index 4e03c4cc2..b93552e4d 100644 --- a/src/proc/engine/projector.hpp +++ b/src/proc/engine/projector.hpp @@ -1,23 +1,23 @@ /* PROJECTOR.hpp - video ProcNode for scaling and translating image data - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/engine/render-invocation.cpp b/src/proc/engine/render-invocation.cpp index abd0ce338..90c9bf147 100644 --- a/src/proc/engine/render-invocation.cpp +++ b/src/proc/engine/render-invocation.cpp @@ -1,23 +1,23 @@ /* RenderInvocation - Interface for creating processing nodes of various kinds - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/engine/render-invocation.hpp b/src/proc/engine/render-invocation.hpp index 2138169cf..459eb3f93 100644 --- a/src/proc/engine/render-invocation.hpp +++ b/src/proc/engine/render-invocation.hpp @@ -1,23 +1,23 @@ /* RENDER-INVOCATION.hpp - initiate the rendering of a single frame - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file render-invocation.hpp diff --git a/src/proc/engine/renderengine.cpp b/src/proc/engine/renderengine.cpp index 25eb6257d..588d1276b 100644 --- a/src/proc/engine/renderengine.cpp +++ b/src/proc/engine/renderengine.cpp @@ -1,33 +1,33 @@ /* RenderEngine - a complete network of processing nodes usable for rendering - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "proc/engine/renderengine.hpp" namespace engine { - - + + /** */ - - - + + + } // namespace engine diff --git a/src/proc/engine/renderengine.hpp b/src/proc/engine/renderengine.hpp index 1c361c739..c3030271f 100644 --- a/src/proc/engine/renderengine.hpp +++ b/src/proc/engine/renderengine.hpp @@ -1,23 +1,23 @@ /* RENDERENGINE.hpp - a complete network of processing nodes usable for rendering - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ @@ -32,19 +32,26 @@ using std::list; -namespace engine - { - - +namespace engine { + + + /** + * @todo this is planned to become the frontend + * to the render node network, which can be considered + * at the lower end of the middle layer; the actual + * render operations are mostly implemented by the backend + * ////////TODO WIP as of 12/2010 + */ class RenderEngine : public RenderGraph { public: ///// TODO: find out about the public operations - // note: the play controller lives in the backend - + // note: the play controller lives in the proc-layer, + // but is a subsystem separate of the sesison. + private: list<RenderGraph> renderSegments; - + }; } // namespace engine diff --git a/src/proc/engine/rendergraph.cpp b/src/proc/engine/rendergraph.cpp index c2ab6e332..fefaf7c63 100644 --- a/src/proc/engine/rendergraph.cpp +++ b/src/proc/engine/rendergraph.cpp @@ -1,23 +1,23 @@ /* RenderGraph - render network corresponding to one segment of the timeline - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -26,17 +26,17 @@ #include "proc/state.hpp" namespace lumiera { - + /** storage for the unique node-ID counter */ ulong NodeID::currID (0); } namespace engine { - + /** */ - - - - + + + + } // namespace engine diff --git a/src/proc/engine/rendergraph.hpp b/src/proc/engine/rendergraph.hpp index 6fdb28217..718d3dfdb 100644 --- a/src/proc/engine/rendergraph.hpp +++ b/src/proc/engine/rendergraph.hpp @@ -1,23 +1,23 @@ /* RENDERGRAPH.hpp - render network corresponding to one segment of the timeline - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ @@ -29,25 +29,27 @@ -namespace engine - { - +namespace engine { + class ExitNode; - + + /** + * @todo likely to be reworked into the engine backbone /////////////TODO WIP as of 12/2010 + */ class RenderGraph { protected: ExitNode * output; - + /** begin of the timerange covered by this RenderGraph */ lumiera::Time start; - + /**end (exclusive) of the timerange */ lumiera::Time end; - + }; - - - + + + } // namespace engine #endif diff --git a/src/proc/engine/source.cpp b/src/proc/engine/source.cpp index 73da9add5..68cad7a62 100644 --- a/src/proc/engine/source.cpp +++ b/src/proc/engine/source.cpp @@ -1,23 +1,23 @@ /* Source - Representation of a Media source - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/engine/source.hpp b/src/proc/engine/source.hpp index 3573f3e0b..8587c3d67 100644 --- a/src/proc/engine/source.hpp +++ b/src/proc/engine/source.hpp @@ -1,23 +1,23 @@ /* SOURCE.hpp - Representation of a Media source - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/engine/stateproxy.cpp b/src/proc/engine/stateproxy.cpp index c8a07a429..cb32f3b57 100644 --- a/src/proc/engine/stateproxy.cpp +++ b/src/proc/engine/stateproxy.cpp @@ -1,23 +1,23 @@ /* StateProxy - Encapsulation of the state corresponding to a render calculation - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/engine/stateproxy.hpp b/src/proc/engine/stateproxy.hpp index 50e961ca1..7125790f7 100644 --- a/src/proc/engine/stateproxy.hpp +++ b/src/proc/engine/stateproxy.hpp @@ -1,23 +1,23 @@ /* STATEPROXY.hpp - Encapsulation of the state corresponding to a render calculation - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/engine/trafo.cpp b/src/proc/engine/trafo.cpp index 28c3db772..636e59e4e 100644 --- a/src/proc/engine/trafo.cpp +++ b/src/proc/engine/trafo.cpp @@ -1,23 +1,23 @@ /* Trafo - transforming processing Node - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/engine/trafo.hpp b/src/proc/engine/trafo.hpp index 166154674..cb1933619 100644 --- a/src/proc/engine/trafo.hpp +++ b/src/proc/engine/trafo.hpp @@ -1,23 +1,23 @@ /* TRAFO.hpp - transforming processing Node - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/facade.cpp b/src/proc/facade.cpp index 3c7d6f93b..6b44fbd36 100644 --- a/src/proc/facade.cpp +++ b/src/proc/facade.cpp @@ -1,23 +1,23 @@ /* Facade - access point for communicating with the Proc-Interface - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/facade.hpp b/src/proc/facade.hpp index b231359f3..88ac62e56 100644 --- a/src/proc/facade.hpp +++ b/src/proc/facade.hpp @@ -1,23 +1,23 @@ /* FACADE.hpp - access point for communicating with the Proc-Interface - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/builder/applicable-builder-target-types.hpp b/src/proc/mobject/builder/applicable-builder-target-types.hpp index 0f0a4d848..57c2e66f9 100644 --- a/src/proc/mobject/builder/applicable-builder-target-types.hpp +++ b/src/proc/mobject/builder/applicable-builder-target-types.hpp @@ -1,23 +1,23 @@ /* ApplicableBuilderTargetTypes - definition header specifying all types treated by builder tools - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file applicable-builder-target-types.hpp diff --git a/src/proc/mobject/builder/assembler.cpp b/src/proc/mobject/builder/assembler.cpp index 8542860f3..b4d05bb07 100644 --- a/src/proc/mobject/builder/assembler.cpp +++ b/src/proc/mobject/builder/assembler.cpp @@ -1,23 +1,23 @@ /* Assembler - building facility (implementation of the build process) - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/builder/assembler.hpp b/src/proc/mobject/builder/assembler.hpp index f0274f171..f874b99bd 100644 --- a/src/proc/mobject/builder/assembler.hpp +++ b/src/proc/mobject/builder/assembler.hpp @@ -1,23 +1,23 @@ /* ASSEMBLER.hpp - building facility (implementation of the build process) - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/builder/buildertool.hpp b/src/proc/mobject/builder/buildertool.hpp index 93086ac4c..9d51361d4 100644 --- a/src/proc/mobject/builder/buildertool.hpp +++ b/src/proc/mobject/builder/buildertool.hpp @@ -1,23 +1,23 @@ /* BUILDERTOOL.hpp - Interface, (visiting) tool for processing MObjects - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file buildertool.hpp @@ -62,7 +62,7 @@ namespace mobject { - + class Buildable; namespace builder { @@ -105,7 +105,7 @@ namespace mobject { * as we simply store a pointer within the BuilderTool instance. */ class BuilderTool - : public lumiera::visitor::Tool<void, InvokeCatchAllFunction> + : public lumiera::visitor::Tool<void, InvokeCatchAllFunction> { lumiera::WrapperPtr currentWrapper_; @@ -172,7 +172,9 @@ namespace mobject { using lumiera::typelist::Types; // convenience for the users of "Applicable" - } // namespace mobject::builder + }// namespace mobject::builder + + @@ -185,8 +187,15 @@ namespace mobject { - namespace builder { // to be found by ADL + namespace builder { + /** to be picked up by ADL: redirect tool invocation for double dispatch. + * The purpose of this function is to apply a visitor, while the actual target + * is managed by a generic wrapper (smart-ptr). This template function serves + * to generate forwarding functions, which pass on the \c apply() call to the + * actual embedded target, while passing on the fully wrapped object for later + * referral and usage too. + */ template<typename WRA> inline Buildable::ReturnType apply (BuilderTool& tool, WRA& wrappedTargetObj) @@ -195,8 +204,7 @@ namespace mobject { wrappedTargetObj->apply (tool); // dispatch to suitable treat() function tool.forgetWrapper(); } - - } // namespace mobject::builder -} // namespace mobject + +}} // namespace mobject::builder #endif diff --git a/src/proc/mobject/builder/common.hpp b/src/proc/mobject/builder/common.hpp index e0503499b..ba09ec9ca 100644 --- a/src/proc/mobject/builder/common.hpp +++ b/src/proc/mobject/builder/common.hpp @@ -1,48 +1,37 @@ /* COMMON.hpp - common definitions for the Builder subsystem - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ #ifndef MOBJECT_BUILDER_COMMON_H #define MOBJECT_BUILDER_COMMON_H +#include "lib/error.hpp" #include "include/logging.h" namespace mobject { - namespace builder { +namespace builder { - // TODO NOBUG_DECLARE_FLAG (builder_mem); - - } // namespace builder - -} // namespace mobject +}} // namespace mobject::builder #endif - -/* -// Local Variables: -// mode: C -// c-file-style: "gnu" -// indent-tabs-mode: nil -// End: -*/ diff --git a/src/proc/mobject/builder/conmanager.cpp b/src/proc/mobject/builder/conmanager.cpp index 14e20a788..b13c19b67 100644 --- a/src/proc/mobject/builder/conmanager.cpp +++ b/src/proc/mobject/builder/conmanager.cpp @@ -1,23 +1,23 @@ /* ConManager - manages the creation of data/control connections when building the Renderengine - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/builder/conmanager.hpp b/src/proc/mobject/builder/conmanager.hpp index c992cbf59..db699d868 100644 --- a/src/proc/mobject/builder/conmanager.hpp +++ b/src/proc/mobject/builder/conmanager.hpp @@ -1,23 +1,23 @@ /* CONMANAGER.hpp - manages the creation of data/control connections when building the Renderengine - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/builder/fixture-change-detector.hpp b/src/proc/mobject/builder/fixture-change-detector.hpp new file mode 100644 index 000000000..bf836d7d1 --- /dev/null +++ b/src/proc/mobject/builder/fixture-change-detector.hpp @@ -0,0 +1,81 @@ +/* + FIXTURE-CHANGE-DETECTOR.hpp - isolating changed segments and tainted processes + + Copyright (C) Lumiera.org + 2010, Hermann Vosseler <Ichthyostega@web.de> + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +/** @file fixture-change-detector.hpp + ** Work out the part of the Fixture changed by a build process. + ** This facility helps to deal with ongoing render/playback processes, which might be + ** affected by the results of a build process. It's comprised of two distinct parts: + ** - a comparison tool allowing to spot equal and changed segments when considering + ** the old and the new version of the fixture before/after a build process. + ** - a registration service to establish a relation between play/render processes + ** and specific segments of the fixture. + ** Together, these allow to identify those ongoing processes which need to be cancelled + ** or restarted, because their results might be tainted by the changes induced by the + ** build process. Typically, these detection process runs just before commiting the + ** newly built fixture datastructure. + ** + ** @todo WIP-WIP-WIP as of 12/2010 + ** + ** @see Fixture + ** @see ModelPort + */ + + +#ifndef PROC_MOBJECT_BUILDER_FIXTURE_CHANGE_DETECTOR_H +#define PROC_MOBJECT_BUILDER_FIXTURE_CHANGE_DETECTOR_H + +#include "lib/error.hpp" +//#include "lib/optional-ref.hpp" +#include "proc/asset/pipe.hpp" +//#include "proc/asset/struct.hpp" +//#include "proc/mobject/model-port.hpp" + +//#include <map> + +namespace mobject { +namespace builder { + + using asset::ID; + using asset::Pipe; +//using asset::Struct; + +//LUMIERA_ERROR_DECLARE (DUPLICATE_MODEL_PORT); ///< Attempt to define a new model port with an pipe-ID already denoting an existing port + + + /** + * TODO type comment + */ + class FixtureChangeDetector + : boost::noncopyable + { + + typedef ID<Pipe> PID; +// typedef ID<Struct> StID; + + public: + + }; + + + +}} // namespace mobject::builder +#endif diff --git a/src/proc/mobject/builder/model-port-registry.cpp b/src/proc/mobject/builder/model-port-registry.cpp new file mode 100644 index 000000000..c3c16d7eb --- /dev/null +++ b/src/proc/mobject/builder/model-port-registry.cpp @@ -0,0 +1,302 @@ +/* + ModelPortRegistry - creating and organising and accessing model ports + + Copyright (C) Lumiera.org + 2010, Hermann Vosseler <Ichthyostega@web.de> + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +* *****************************************************/ + + +/** @file model-port-registry.cpp + ** Implementation details of model port descriptors and references. + ** Essentially the handling of the ModelPortRegistry datastructure is + ** kept an opaque implementation detail and confined entirely within + ** this translation unit. Both the client interface (ModelPort) and + ** the management interface (ModelPortRegistry) are backed by this + ** common translation unit. + ** + ** @see OutputDesignation + ** @see OutputMapping + ** @see Timeline + ** + */ + + +#include "lib/error.hpp" +#include "include/logging.h" +#include "lib/sync-classlock.hpp" +#include "proc/mobject/builderfacade.hpp" +#include "proc/mobject/model-port.hpp" +#include "proc/mobject/builder/model-port-registry.hpp" + +namespace mobject { + namespace builder { + + namespace error = lumiera::error; + + + typedef ModelPortRegistry::ModelPortDescriptor const& MPDescriptor; + typedef lib::ClassLock<ModelPortRegistry> LockRegistry; + + + /** storage for the link to the global + Registry instance currently in charge */ + lib::OptionalRef<ModelPortRegistry> ModelPortRegistry::theGlobalRegistry; + + + + /** globally deactivate access to model ports */ + void + ModelPortRegistry::shutdown () + { + INFO (builder, "disabling ModelPort registry...."); + LockRegistry global_lock; + theGlobalRegistry.clear(); + } + + + /** switch the implicit link to \em the global ModelPort registry + * to point to the given implementation instance. Typically used + * within the Builder subsystem lifecycle methods, or for + * temporarily exchanging the registry for unit tests + * @return the registry instance previously in use or \c NULL + */ + ModelPortRegistry* + ModelPortRegistry::setActiveInstance (ModelPortRegistry& newRegistry) + { + LockRegistry global_lock; + ModelPortRegistry *previous = theGlobalRegistry.isValid()? + &( theGlobalRegistry()) : 0; + INFO_IF (!previous, builder, "activating new ModelPort registry."); + WARN_IF ( previous, builder, "switching ModelPort registry instance."); + theGlobalRegistry.link_to (newRegistry); + return previous; + } + + + /** access the globally valid registry instance. + * @throw error::State if this global registry is + * already closed or not yet initialised. */ + ModelPortRegistry& + ModelPortRegistry::globalInstance() + { + LockRegistry global_lock; + if (theGlobalRegistry.isValid()) + return theGlobalRegistry(); + + throw error::State ("global model port registry is not accessible" + , LUMIERA_ERROR_BUILDER_LIFECYCLE); + } + + + + /** does the <i>transaction currently being built</i> + * already contain a model port registration for the given ID? + * @note this does \em not query registration state of the + * global registry; use #isRegistered for that...*/ + bool + ModelPortRegistry::contains (ID<Pipe> key) const + { + return bool(key) + && util::contains (transaction_, key); + } + + + /** @return true if the given pipe-ID actually denotes an + * existing, connected and usable model port. + * @note reflects the state of the publicly visible + * model port registry, \em not any model ports + * being registered within a pending transaction + * (ongoing build process). */ + bool + ModelPortRegistry::isRegistered (ID<Pipe> key) const + { + return bool(key) + && util::contains (currentReg_, key); + } + + + /** basic access operation: access the descriptor + * of a currently valid model port. + * @note no locking (but #accessDescriptor does lock!) + * @throw error::Logic if accessing a non registered port + * @throw error::State if accessing an invalid / disconnected port + */ + MPDescriptor + ModelPortRegistry::get (ID<Pipe> key) const + { + if (!key) + throw error::State ("This model port is disconnected or NIL" + , LUMIERA_ERROR_UNCONNECTED_MODEL_PORT); + if (!isRegistered (key)) + throw error::Logic ("Model port was never registered, or got unregistered meanwhile." + ,LUMIERA_ERROR_INVALID_MODEL_PORT); + + MPTable::const_iterator pos = currentReg_.find (key); + ASSERT (pos != currentReg_.end()); + ASSERT (pos->second.isValid()); + return pos->second; + } + + + /** access \em the globally valid model port for the given pipe. + * This (static) function locks and accesses the global model port registry + * to fetch the descriptor record. Typically invoked by client code + * through the ModelPort frontend + * @throw error::State when registry is down or the model port is disconnected + * @throw error::Logic when the given key wasn't registered for a model port */ + MPDescriptor + ModelPortRegistry::accessDescriptor (ID<Pipe> key) + { + LockRegistry global_lock; + return theGlobalRegistry().get(key); + } + + + /* === Mutations === */ + + /** create and register a new model port entry, + * within the pending transaction */ + MPDescriptor + ModelPortRegistry::definePort (ID<Pipe> pipe, ID<Struct> element_exposing_this_port) + { + LockRegistry global_lock; + if (contains (pipe)) + throw error::Logic ("attempt to register a model port with a pipe-ID, " + "which has already been used to register a " + "model port within this transaction (build process)." + , LUMIERA_ERROR_DUPLICATE_MODEL_PORT); + return (transaction_[pipe] = ModelPortDescriptor(pipe, element_exposing_this_port)); + } + + + /** remove a model port entry from the pending transaction */ + void + ModelPortRegistry::remove (PID key) + { + LockRegistry global_lock; + transaction_.erase (key); + } + + + /** schedule removal of all registry contents. + * When the currently pending transaction is committed, + * all registered model ports will be removed */ + void + ModelPortRegistry::clear() + { + LockRegistry global_lock; + transaction_.clear(); + } + + + /** transactional switch for new/modified model ports. + * Promote the registered model ports from the currently + * pending transaction to become the globally valid model ports + * @note automatically starts a new transaction, initialised + * with the now published mappings. + */ + void + ModelPortRegistry::commit() + { + LockRegistry global_lock; + MPTable newTransaction(transaction_); + TRACE (builder, "committing new ModelPort list...."); + swap (currentReg_, transaction_); + swap (transaction_, newTransaction); + } + + + /** discard current transaction. + * The global port registration thus + * remains unaltered. */ + void + ModelPortRegistry::rollback() + { + LockRegistry global_lock; + TRACE (builder, "discarding changes to ModelPort list (rollback)...."); + MPTable newTransaction(currentReg_); + swap (transaction_, newTransaction); + } + + + + LUMIERA_ERROR_DEFINE (DUPLICATE_MODEL_PORT, "Attempt to define a new model port with an pipe-ID already denoting an existing port"); + + }// namespace builder + + + + + LUMIERA_ERROR_DEFINE (INVALID_MODEL_PORT, "Referral to unknown model port"); + LUMIERA_ERROR_DEFINE (UNCONNECTED_MODEL_PORT, "Attempt to operate on an existing but unconnected model port"); + + + ModelPort::ModelPort (ID<asset::Pipe> refID) + : id_(refID) + { + builder::ModelPortRegistry::accessDescriptor (refID); + } + + + /** check if the global model port registration + * contains a mapping for the given pipe-ID*/ + bool + ModelPort::exists (ID<asset::Pipe> key) + { + return builder::ModelPortRegistry::globalInstance().isRegistered (key); + } + + + /** access the Pipe (ID) of the global model port registered + * with the ID underlying this model port. + * @throw error::Logic if no model port is registered for this Pipe-ID + */ + ID<asset::Pipe> + ModelPort::pipe() const + { + ENSURE (this->id_ == builder::ModelPortRegistry::accessDescriptor(this->id_).id()); + + return builder::ModelPortRegistry::accessDescriptor(this->id_).id(); + } + + + /** access the timeline (or similar structural element) holding + * a global pipe which corresponds to this model port + * @throw error::Logic if no model port is registered for this Pipe-ID + */ + ID<asset::Struct> + ModelPort::holder() const + { + return builder::ModelPortRegistry::accessDescriptor(this->id_).holder(); + } + + + /** convenience shortcut to access the stream type + * associated with the pipe-ID corresponding to this model port. + * @note no check if this model port actually is valid + * @throw error::Invalid in case of unknown/unregistered Pipe-ID + */ + StreamType::ID + ModelPort::streamType() const + { + return this->id_.streamType(); + } + + + +} // namespace mobject diff --git a/src/proc/mobject/builder/model-port-registry.hpp b/src/proc/mobject/builder/model-port-registry.hpp new file mode 100644 index 000000000..078c1928b --- /dev/null +++ b/src/proc/mobject/builder/model-port-registry.hpp @@ -0,0 +1,181 @@ +/* + MODEL-PORT-REGISTRY.hpp - creating and organising and accessing model ports + + Copyright (C) Lumiera.org + 2010, Hermann Vosseler <Ichthyostega@web.de> + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +/** @file model-port-registry.hpp + ** Mutation and management facility for model ports within the builder. + ** Model ports denote the points where output might possibly be produced. + ** While client code accesses model ports only as immutable descriptors handled + ** through an (opaque) reference, the builder is in charge of detecting and organising + ** any (new) model ports arising as the result of the build process. Changes to the set + ** of current model ports are to be activated with an atomic <i>transactional switch.</i> + ** + ** builder::ModelPortRegistry thus acts as management interface and factory for model ports. + ** A given instance of this registry can be promoted to be "the" model port registry reflecting + ** the current active model ports. Within the Lumiera application, the builder subsystem cares + ** for setting up such a registry, while all other parts of the system just access the current + ** model ports through the mobject::ModelPort frontend. + ** + ** @note the locking is rather coarse grained; basically we're using just one + ** single global lock for all ModelPortRegistry instances and all access/mutations, + ** as well as for accessing the globally valid Registry through the ModelPort frontend. + ** Assumed that usually there is just one Registry maintained by the builder, this is + ** likely to be sufficient. + ** + ** @see ModelPort + ** @see OutputDesignation + ** @see ModelPortRegistry_test + */ + + +#ifndef PROC_MOBJECT_BUILDER_MODEL_PORT_REGISTRY_H +#define PROC_MOBJECT_BUILDER_MODEL_PORT_REGISTRY_H + +#include "lib/error.hpp" +#include "lib/optional-ref.hpp" +#include "proc/asset/pipe.hpp" +#include "proc/asset/struct.hpp" +#include "proc/mobject/model-port.hpp" + +#include <map> + +namespace mobject { +namespace builder { + + using asset::ID; + using asset::Pipe; + using asset::Struct; + + LUMIERA_ERROR_DECLARE (DUPLICATE_MODEL_PORT); ///< Attempt to define a new model port with an pipe-ID already denoting an existing port + + + /** + * Management facility for tracking model ports. + * ModelPort handles are exposed as frontend for usage + * by client code. Model ports are discovered by the builder + * when re-creating the low-level model; during such an ongoing + * build process, newly discovered ports are accumulated within + * a transaction, which then gets committed atomically when the + * new model is complete and ready for use. + */ + class ModelPortRegistry + : boost::noncopyable + { + + typedef ID<Pipe> PID; + typedef ID<Struct> StID; + + public: + + /** @internal record to describe a model port */ + struct ModelPortDescriptor; + + + static void shutdown (); + + static ModelPortRegistry* + setActiveInstance (ModelPortRegistry& newRegistry); + + static ModelPortRegistry& + globalInstance(); + + static ModelPortDescriptor const& + accessDescriptor (PID); + + + ModelPortDescriptor const& + definePort (PID pipe, StID element_exposing_this_port); + + bool contains (PID) const; + bool isRegistered (PID) const; + + ModelPortDescriptor const& + get (PID) const; + + + void remove (PID); + void clear(); + + + /** activate pending model port changes. + * Any accumulated changes and newly defined model ports + * are promoted to become part of the current active configuration + * with a single atomic (transactional) switch. + */ + void commit(); + + /** discard pending changes. + * Silently drop model port definition changes since the last commit. + */ + void rollback(); + + + private: + static lib::OptionalRef<ModelPortRegistry> theGlobalRegistry; + + typedef std::map<PID, ModelPortDescriptor> MPTable; + + MPTable currentReg_; + MPTable transaction_; + }; + + + + + /** ModelPortDescriptor records are used as actual storage + * within the model port registration table; they are immutable + * value objects and never exposed to client code directly. + */ + class ModelPortRegistry::ModelPortDescriptor + { + PID id_; + StID holder_; + + protected: + ModelPortDescriptor (PID pipe, StID element_exposing_this_port) + : id_(pipe) + , holder_(element_exposing_this_port) + { } + + friend class ModelPortRegistry; + + public: + ModelPortDescriptor() + : id_(PID::INVALID) + , holder_(StID::INVALID) + { } + + // default copy operations permitted + + bool + isValid() const + { + return bool(id_); + } + + const PID id() const { return id_; } + const StID holder() const { return holder_; } + }; + + + +}} // namespace mobject::builder +#endif diff --git a/src/proc/mobject/builder/mould.hpp b/src/proc/mobject/builder/mould.hpp index 9a0108104..5db2ece7f 100644 --- a/src/proc/mobject/builder/mould.hpp +++ b/src/proc/mobject/builder/mould.hpp @@ -1,23 +1,23 @@ /* MOULD.hpp - builder tool kit for the basic building situations - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/builder/nodecreatortool.cpp b/src/proc/mobject/builder/nodecreatortool.cpp index 854d92dbc..9dcb639b7 100644 --- a/src/proc/mobject/builder/nodecreatortool.cpp +++ b/src/proc/mobject/builder/nodecreatortool.cpp @@ -1,23 +1,23 @@ /* NodeCreaterTool - central Tool implementing the Renderengine building - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/builder/nodecreatortool.hpp b/src/proc/mobject/builder/nodecreatortool.hpp index 6d2b5e9e8..fda4c95db 100644 --- a/src/proc/mobject/builder/nodecreatortool.hpp +++ b/src/proc/mobject/builder/nodecreatortool.hpp @@ -1,23 +1,23 @@ /* NODECREATERTOOL.hpp - central Tool implementing the Renderengine building - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/builder/operationpoint.cpp b/src/proc/mobject/builder/operationpoint.cpp index 5a6bbe3bf..e27ffc5b4 100644 --- a/src/proc/mobject/builder/operationpoint.cpp +++ b/src/proc/mobject/builder/operationpoint.cpp @@ -1,23 +1,23 @@ /* OperationPoint - abstraction representing the point where to apply a build instruction - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/builder/operationpoint.hpp b/src/proc/mobject/builder/operationpoint.hpp index 329dbcebc..49b5855bb 100644 --- a/src/proc/mobject/builder/operationpoint.hpp +++ b/src/proc/mobject/builder/operationpoint.hpp @@ -1,23 +1,23 @@ /* OPERATIONPOINT.hpp - abstraction representing the point where to apply a build instruction - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/builder/renderstate.hpp b/src/proc/mobject/builder/renderstate.hpp index 6e99a99b1..3da0e094b 100644 --- a/src/proc/mobject/builder/renderstate.hpp +++ b/src/proc/mobject/builder/renderstate.hpp @@ -1,23 +1,23 @@ /* RENDERSTATE.hpp - renderengine state management - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/builder/segmentation-tool.cpp b/src/proc/mobject/builder/segmentation-tool.cpp new file mode 100644 index 000000000..39b47380f --- /dev/null +++ b/src/proc/mobject/builder/segmentation-tool.cpp @@ -0,0 +1,79 @@ +/* + SegmentationTool - Tool for creating a partitioning of the current timeline + + Copyright (C) Lumiera.org + 2008, Hermann Vosseler <Ichthyostega@web.de> + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +* *****************************************************/ + + +#include "proc/mobject/builder/segmentation-tool.hpp" + + +using mobject::Buildable; +using mobject::session::Clip; +using mobject::session::Effect; + + +namespace mobject { +namespace builder { + + /////////////////////////////////TICKET #414 + + + SegmentationTool::SegmentationTool(mobject::session::Fixture&) + { + UNIMPLEMENTED ("create new SegmentationTool"); + } + + + void + SegmentationTool::treat (Buildable& something) + { + UNIMPLEMENTED ("??? when partitioning timeline"); + } + + + void + SegmentationTool::treat (Clip& clip) + { + UNIMPLEMENTED ("consider clip when partitioning timeline"); + } + + + void + SegmentationTool::treat (Effect& effect) + { + UNIMPLEMENTED ("note applied effect when partitioning timeline"); + } + + + void + SegmentationTool::onUnknown (Buildable& target) + { + UNIMPLEMENTED ("catch-all when partitioning timeline"); + } + + + bool + SegmentationTool::empty() const + { + UNIMPLEMENTED ("detect an empty segmentation"); + } + + +}} // namespace mobject::builder diff --git a/src/proc/mobject/builder/segmentation-tool.hpp b/src/proc/mobject/builder/segmentation-tool.hpp new file mode 100644 index 000000000..52bb1c5c1 --- /dev/null +++ b/src/proc/mobject/builder/segmentation-tool.hpp @@ -0,0 +1,78 @@ +/* + SEGMENTATION-TOOL.hpp - Tool for creating a partitioning of the current timeline + + Copyright (C) Lumiera.org + 2008, Hermann Vosseler <Ichthyostega@web.de> + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + + +#ifndef MOBJECT_BUILDER_SEGMENTATION_TOOL_H +#define MOBJECT_BUILDER_SEGMENTATION_TOOL_H + + +#include "proc/mobject/builder/applicable-builder-target-types.hpp" + +#include "proc/mobject/session/segmentation.hpp" +#include "proc/mobject/session/fixture.hpp" //////TODO really on the header?? + + +#include <list> +using std::list; + + + +namespace mobject { +namespace builder { + + + /** + * Tool implementation for deriving a partitioning of the current + * timeline, such that each Segment has a constant configuration. + * "Constant" means here, that any remaining changes over time + * can be represented by automation solely, without the need + * to change the node connections. + */ + class SegmentationTool + : public ApplicableBuilderTargetTypes<SegmentationTool> + { + + public: + SegmentationTool (session::Fixture &) ; + + void treat (mobject::session::Clip& clip) ; + void treat (mobject::session::Effect& effect) ; + + void treat (mobject::Buildable& something) ; + + void onUnknown (Buildable& target) ; /////////TODO why doesn't the treat(Buildable) function shadow this?? + + bool empty() const; + + private: + typedef mobject::session::Segment Segment; + + /** Partitioning of the Timeline to be created by this tool. */ + //session::Segmentation& segments_; + ///////////////////////////////////////////TODO: either put it inline, or use a scopend_ptr!!!!!!!!!! + + }; + + + +}} // namespace mobject::builder +#endif diff --git a/src/proc/mobject/builder/segmentation.cpp b/src/proc/mobject/builder/segmentation.cpp new file mode 100644 index 000000000..e7cd9cbf1 --- /dev/null +++ b/src/proc/mobject/builder/segmentation.cpp @@ -0,0 +1,85 @@ +/* + Segmentation - partitioning the effective timeline + + Copyright (C) Lumiera.org + 2010, Hermann Vosseler <Ichthyostega@web.de> + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +* *****************************************************/ + + +/** @file segmentation.cpp + ** Implementation details of fixture data structures. + ** + ** /////TODO file comment necessary? + ** + ** @see mobject::session::Fixture + ** + */ + + +#include "lib/error.hpp" +//#include "include/logging.h" +//#include "lib/sync-classlock.hpp" +//#include "proc/mobject/builderfacade.hpp" +#include "proc/mobject/builder/segmentation.hpp" +#include "proc/mobject/builder/fixture-change-detector.hpp" + +namespace mobject { +namespace builder { + + namespace error = lumiera::error; + + +// typedef ModelPortRegistry::ModelPortDescriptor const& MPDescriptor; + + + /** storage for the link to the global + Registry instance currently in charge */ +// lib::OptionalRef<ModelPortRegistry> ModelPortRegistry::theGlobalRegistry; + + + /** access the globally valid registry instance. + * @throw error::State if this global registry is + * already closed or not yet initialised. */ +//ModelPortRegistry& +//ModelPortRegistry::globalInstance() +//{ +// LockRegistry global_lock; +// if (theGlobalRegistry.isValid()) +// return theGlobalRegistry(); +// +// throw error::State ("global model port registry is not accessible" +// , LUMIERA_ERROR_BUILDER_LIFECYCLE); +//} + + + + /** */ +// bool +// ModelPortRegistry::contains (ID<Pipe> key) const +// { +// return bool(key) +// && util::contains (transaction_, key); +// } + + + +//LUMIERA_ERROR_DEFINE (DUPLICATE_MODEL_PORT, "Attempt to define a new model port with an pipe-ID already denoting an existing port"); + + + +}}// namespace mobject::builder diff --git a/src/proc/mobject/builder/segmentation.hpp b/src/proc/mobject/builder/segmentation.hpp new file mode 100644 index 000000000..028e47f26 --- /dev/null +++ b/src/proc/mobject/builder/segmentation.hpp @@ -0,0 +1,87 @@ +/* + SEGMENTATION.hpp - partitioning the effective timeline + + Copyright (C) Lumiera.org + 2010, Hermann Vosseler <Ichthyostega@web.de> + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +/** @file segmentation.hpp + ** Part of the Fixture datastructure to manage time segments of constant structure. + ** The Fixture is result of the build process and separation between high-level and + ** low-level model. It's kind of an effective resulting timeline, and split into segments + ** of constant wiring structure: whenever the processing nodes need to be wired differently + ** for some timespan, we start a new segment of the timeline. This might be for the duration + ** of a clip, or just for the duration of a transition, when the pipes of both clips need to + ** be wired up in parallel. + ** + ** @see Fixture + ** @see ModelPort + */ + + +#ifndef PROC_MOBJECT_BUILDER_SEGMENTATION_H +#define PROC_MOBJECT_BUILDER_SEGMENTATION_H + +#include "lib/error.hpp" +//#include "lib/optional-ref.hpp" +#include "proc/asset/pipe.hpp" +//#include "proc/asset/struct.hpp" +//#include "proc/mobject/model-port.hpp" + +//#include <map> + +namespace mobject { +namespace builder { + + using asset::ID; + using asset::Pipe; +//using asset::Struct; + +//LUMIERA_ERROR_DECLARE (DUPLICATE_MODEL_PORT); ///< Attempt to define a new model port with an pipe-ID already denoting an existing port + + + /** + * TODO type comment + */ + class Segment + : boost::noncopyable + { + + typedef ID<Pipe> PID; +// typedef ID<Struct> StID; + + public: + + }; + + + + + /** + * TODO type comment + */ + class Segmentation + { + + public: + }; + + + +}} // namespace mobject::builder +#endif diff --git a/src/proc/mobject/builder/segmentationtool.cpp b/src/proc/mobject/builder/segmentationtool.cpp deleted file mode 100644 index d0a18595d..000000000 --- a/src/proc/mobject/builder/segmentationtool.cpp +++ /dev/null @@ -1,81 +0,0 @@ -/* - SegmentationTool - Tool for creating a partitioning of the current timeline - - Copyright (C) Lumiera.org - 2008, Hermann Vosseler <Ichthyostega@web.de> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -* *****************************************************/ - - -#include "proc/mobject/builder/segmentationtool.hpp" - - -using mobject::Buildable; -using mobject::session::Clip; -using mobject::session::Effect; - - -namespace mobject { - namespace builder { - - /////////////////////////////////TICKET #414 - - - SegmentationTool::SegmentationTool(mobject::session::Fixture&) - { - UNIMPLEMENTED ("create new SegmentationTool"); - } - - - void - SegmentationTool::treat (Buildable& something) - { - UNIMPLEMENTED ("??? when partitioning timeline"); - } - - - void - SegmentationTool::treat (Clip& clip) - { - UNIMPLEMENTED ("consider clip when partitioning timeline"); - } - - - void - SegmentationTool::treat (Effect& effect) - { - UNIMPLEMENTED ("note applied effect when partitioning timeline"); - } - - - void - SegmentationTool::onUnknown (Buildable& target) - { - UNIMPLEMENTED ("catch-all when partitioning timeline"); - } - - - bool - SegmentationTool::empty() const - { - UNIMPLEMENTED ("detect an empty segmentation"); - } - - - } // namespace mobject::builder - -} // namespace mobject diff --git a/src/proc/mobject/builder/segmentationtool.hpp b/src/proc/mobject/builder/segmentationtool.hpp deleted file mode 100644 index 2b88f572a..000000000 --- a/src/proc/mobject/builder/segmentationtool.hpp +++ /dev/null @@ -1,80 +0,0 @@ -/* - SEGMENTATIONTOOL.hpp - Tool for creating a partitioning of the current timeline - - Copyright (C) Lumiera.org - 2008, Hermann Vosseler <Ichthyostega@web.de> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -*/ - - -#ifndef MOBJECT_BUILDER_SEGMENTATIONTOOL_H -#define MOBJECT_BUILDER_SEGMENTATIONTOOL_H - - -#include "proc/mobject/builder/applicable-builder-target-types.hpp" - -#include "proc/mobject/session/segmentation.hpp" -#include "proc/mobject/session/fixture.hpp" //////TODO really on the header?? - - -#include <list> -using std::list; - - - -namespace mobject { - namespace builder { - - - /** - * Tool implementation for deriving a partitioning of the current - * timeline, such that each Segment has a constant configuration. - * "Constant" means here, that any remaining changes over time - * can be represented by automation solely, without the need - * to change the node connections. - */ - class SegmentationTool - : public ApplicableBuilderTargetTypes<SegmentationTool> - { - - public: - SegmentationTool (session::Fixture &) ; - - void treat (mobject::session::Clip& clip) ; - void treat (mobject::session::Effect& effect) ; - - void treat (mobject::Buildable& something) ; - - void onUnknown (Buildable& target) ; /////////TODO why doesn't the treat(Buildable) function shadow this?? - - bool empty() const; - - private: - typedef mobject::session::Segment Segment; - - /** Partitioning of the Timeline to be created by this tool. */ - //session::Segmentation& segments_; - ///////////////////////////////////////////TODO: either put it inline, or use a scopend_ptr!!!!!!!!!! - - }; - - - - } // namespace mobject::builder - -} // namespace mobject -#endif diff --git a/src/proc/mobject/builder/toolfactory.cpp b/src/proc/mobject/builder/toolfactory.cpp index abfa8c83c..ab844f574 100644 --- a/src/proc/mobject/builder/toolfactory.cpp +++ b/src/proc/mobject/builder/toolfactory.cpp @@ -1,23 +1,23 @@ /* ToolFactory - supply of Tool implementations for the Builder - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/builder/toolfactory.hpp b/src/proc/mobject/builder/toolfactory.hpp index b283bea60..201653fde 100644 --- a/src/proc/mobject/builder/toolfactory.hpp +++ b/src/proc/mobject/builder/toolfactory.hpp @@ -1,23 +1,23 @@ /* TOOLFACTORY.hpp - supply of Tool implementations for the Builder - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ @@ -25,7 +25,7 @@ #define MOBJECT_BUILDER_TOOLFACTORY_H #include "proc/mobject/session/fixture.hpp" -#include "proc/mobject/builder/segmentationtool.hpp" +#include "proc/mobject/builder/segmentation-tool.hpp" #include "proc/mobject/builder/nodecreatortool.hpp" #include "proc/mobject/builder/mould.hpp" #include "proc/engine/rendergraph.hpp" diff --git a/src/proc/mobject/builder/wiringrequest.hpp b/src/proc/mobject/builder/wiringrequest.hpp index 6e39cb562..1ebb4515c 100644 --- a/src/proc/mobject/builder/wiringrequest.hpp +++ b/src/proc/mobject/builder/wiringrequest.hpp @@ -1,23 +1,23 @@ /* WIRINGREQUEST.hpp - (interface) the intention to make a data or control connection - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/builderfacade.cpp b/src/proc/mobject/builderfacade.cpp index 175aa2b24..b2f1377d5 100644 --- a/src/proc/mobject/builderfacade.cpp +++ b/src/proc/mobject/builderfacade.cpp @@ -1,23 +1,23 @@ /* BuilderFacade - Facade and service access point for the Builder Subsystem - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -26,12 +26,7 @@ namespace mobject { - namespace builder { - using ::NOBUG_FLAG(memory); - NOBUG_CPP_DEFINE_FLAG_PARENT(buildermem, memory); - } - - + /** * Main Operation of the Builder: * create a render engine for a given part of the timeline @@ -41,7 +36,10 @@ namespace mobject { { //////////////////////TODO } - - - + + LUMIERA_ERROR_DEFINE (BUILDER_LIFECYCLE, "Builder activated while in non operational state"); + + + + } // namespace mobject diff --git a/src/proc/mobject/builderfacade.hpp b/src/proc/mobject/builderfacade.hpp index 98197ec13..4a27d8b88 100644 --- a/src/proc/mobject/builderfacade.hpp +++ b/src/proc/mobject/builderfacade.hpp @@ -1,23 +1,23 @@ /* BUILDERFACADE.hpp - Facade and service access point for the Builder Subsystem - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ @@ -30,8 +30,9 @@ namespace mobject { - - + + LUMIERA_ERROR_DECLARE (BUILDER_LIFECYCLE); ///< Builder activated while in non operational state + /** * Provides unified access to the builder functionality. * While individual components of the builder subsystem may be called @@ -44,12 +45,14 @@ namespace mobject { /** * Main Operation of the Builder: * create a render engine for a given part of the timeline + * @deprecated thats a placeholder! the real invocation is now + * in the course of being worked out ////////////TODO 12/2010 */ engine::RenderEngine & buildEngine () ; // TODO: allocation, GC?????? }; - - - + + + } // namespace mobject #endif diff --git a/src/proc/mobject/explicitplacement.hpp b/src/proc/mobject/explicitplacement.hpp index 7fc3ec5dc..363e8beef 100644 --- a/src/proc/mobject/explicitplacement.hpp +++ b/src/proc/mobject/explicitplacement.hpp @@ -1,23 +1,23 @@ /* EXPLICITPLACEMENT.hpp - special Placement yielding an absolute location (Time,Track) for a MObject - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/interpolator.cpp b/src/proc/mobject/interpolator.cpp index 8ceb9ad86..026111b53 100644 --- a/src/proc/mobject/interpolator.cpp +++ b/src/proc/mobject/interpolator.cpp @@ -1,23 +1,23 @@ /* Interpolator - denotes a facility to get (continuously interpolated) parameter values - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/interpolator.hpp b/src/proc/mobject/interpolator.hpp index 843cd52bc..2244d7e58 100644 --- a/src/proc/mobject/interpolator.hpp +++ b/src/proc/mobject/interpolator.hpp @@ -1,23 +1,23 @@ /* INTERPOLATOR.hpp - denotes a facility to get (continuously interpolated) parameter values - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/mobject-ref.cpp b/src/proc/mobject/mobject-ref.cpp index a66250f1a..4eb98dcfc 100644 --- a/src/proc/mobject/mobject-ref.cpp +++ b/src/proc/mobject/mobject-ref.cpp @@ -1,23 +1,23 @@ /* MobjectRef - active external reference to an MObject within the Session - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/mobject-ref.hpp b/src/proc/mobject/mobject-ref.hpp index 737782436..ac03f32a1 100644 --- a/src/proc/mobject/mobject-ref.hpp +++ b/src/proc/mobject/mobject-ref.hpp @@ -1,23 +1,23 @@ /* MOBJECT-REF.hpp - active external reference to an MObject within the Session - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/mobject.cpp b/src/proc/mobject/mobject.cpp index 8ac73a1d2..f55c588aa 100644 --- a/src/proc/mobject/mobject.cpp +++ b/src/proc/mobject/mobject.cpp @@ -1,23 +1,23 @@ /* MObject - Key Abstraction: A Media Object in the Session - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/mobject.hpp b/src/proc/mobject/mobject.hpp index a1a7c8eab..a8ea73313 100644 --- a/src/proc/mobject/mobject.hpp +++ b/src/proc/mobject/mobject.hpp @@ -1,23 +1,23 @@ /* MOBJECT.hpp - Key Abstraction: A Media Object in the Session - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/model-port.hpp b/src/proc/mobject/model-port.hpp new file mode 100644 index 000000000..1ff5a0b3b --- /dev/null +++ b/src/proc/mobject/model-port.hpp @@ -0,0 +1,152 @@ +/* + MODEL-PORT.hpp - point to pull output data from the model + + Copyright (C) Lumiera.org + 2010, Hermann Vosseler <Ichthyostega@web.de> + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +/** @file model-port.hpp + ** Organising the output data calculation possibilities. + ** Model ports are conceptual entities, denoting the points where output might + ** possibly be produced. There is an actual representation, a collection of small + ** descriptor objects managed by the Fixture and organised within the registry + ** datastructure. Thus, while the actual ModelPort descriptor entities are located + ** within and managed by the Fixture -- model port as a concept spans the high-level + ** and low-level view. A model port can be associated both to a pipe within a timeline + ** in the HighLevelModel, as well as to denote a set of corresponding exit nodes within + ** the segments of the render nodes network. Model ports are keyed by Pipe-ID and thus + ** are bound to be unique within the application. + ** + ** A model port is rather derived than configured; it emerges during the build process + ** when a pipe claims an OutputDesignation and some other entity actually uses this + ** designation as a target, either directly or indirectly. This match of provision + ** and usage is detected by the Builder and produces an entry in the fixture's + ** ModelPortTable. Because of the 1:1 association with a pipe, each model port + ** has an associated StreamType. + ** + ** Because model ports are discovered this way, dynamically during the build process, + ** at some point there is a <i>transactional switch</i> to promote the new configuration + ** to become the valid current model port configuration. After that switch, model ports + ** are immutable. + ** + ** Model ports are to be accessed, enumerated and grouped in various ways, because + ** each port belongs to a specific timeline and is used to produce data of a single + ** StreamType solely. But all those referrals, searching and grouping happens only + ** after the build process has discovered all model ports currently available. + ** Thus actually the ModelPort elements handed out to client code are just + ** smart-handles, accessing a global ModelPortRegistry behind the scenes. + ** Validity of these handles will be checked on each access. The actual + ** model port descriptors are owned and managed by the fixture; + ** @todo they might bulk allocated in a similar manner than the + ** ProcNode and WiringDescriptor objects are. + ** + ** @see ModelPortRegistry_test abstract usage example + ** @see ModelPortRegistry management interface + ** @see OutputDesignation + ** @see OutputMapping + ** @see Timeline + */ + + +#ifndef PROC_MOBJECT_MODEL_PORT_H +#define PROC_MOBJECT_MODEL_PORT_H + +#include "proc/asset/pipe.hpp" +#include "lib/bool-checkable.hpp" +#include "lib/streamtype.hpp" + +namespace mobject { + + LUMIERA_ERROR_DECLARE (INVALID_MODEL_PORT); ///< Referral to unknown model port + LUMIERA_ERROR_DECLARE (UNCONNECTED_MODEL_PORT); ///< Attempt to operate on an existing but unconnected model port + + + using asset::ID; + using lumiera::StreamType; + + + /** + * Handle denoting a point within the model, + * where actually output data can be pulled. + * ModelPort is a frontend to be used by clients. + * These ModelPort handle objects may be copied and stored + * at will, but their validity will be verified on each access. + * Actually, the Builder will discover any model ports and + * maintain a ModelPortRegistry behind the scenes. + * + * Each model port corresponds to a (global) pipe within a + * specific Timeline ("holder"); consequently each such port is also + * bound to produce data of a specific StreamType (as defined by + * the corresponding pipe). A model port may be in \em unconnected + * state, which can be checked through \c bool conversion. While + * the ModelPort handles are value objects, the identity of the + * underlying model port (descriptor) is given by the + * corresponding pipe-ID, thus effectively resulting + * in a global namespace for model ports. + * + * @see builder::ModelPortRegistry management interface + * @see ModelPortRegistry_test abstract usage example + */ + class ModelPort + : public lib::BoolCheckable<ModelPort> + { + ID<asset::Pipe> id_; + + public: + ModelPort() ///< \em unconnected model port + : id_(ID<asset::Pipe>::INVALID) + { } + + ModelPort (ID<asset::Pipe> refID); ///< @note conversion from pipe-ID + + // using default copy operations + + + static bool exists (ID<asset::Pipe>); + + ID<asset::Pipe> pipe() const; + ID<asset::Struct> holder() const; + StreamType::ID streamType() const; + + bool + isValid() const + { + return exists (this->id_); + } + + + friend bool + operator== (ModelPort const& mp1, ModelPort const& mp2) + { + return mp1.id_ == mp2.id_; + } + + friend bool + operator!= (ModelPort const& mp1, ModelPort const& mp2) + { + return mp1.id_ != mp2.id_; + } + + private: + + }; + + + +} // namespace mobject +#endif diff --git a/src/proc/mobject/output-designation.cpp b/src/proc/mobject/output-designation.cpp index 0423e5890..3d628150b 100644 --- a/src/proc/mobject/output-designation.cpp +++ b/src/proc/mobject/output-designation.cpp @@ -1,23 +1,23 @@ /* OutputDesignation - specifying a desired output destination - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/output-designation.hpp b/src/proc/mobject/output-designation.hpp index 61a7b1c1a..43aa6f5b8 100644 --- a/src/proc/mobject/output-designation.hpp +++ b/src/proc/mobject/output-designation.hpp @@ -1,23 +1,23 @@ /* OUTPUT-DESIGNATION.hpp - specifying a desired output destination - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/output-mapping.hpp b/src/proc/mobject/output-mapping.hpp index 45f26ae0a..182c007e1 100644 --- a/src/proc/mobject/output-mapping.hpp +++ b/src/proc/mobject/output-mapping.hpp @@ -1,23 +1,23 @@ /* OUTPUT-MAPPING.hpp - generic interface for translation of output designations - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/parameter.cpp b/src/proc/mobject/parameter.cpp index ac826dcdd..854634f49 100644 --- a/src/proc/mobject/parameter.cpp +++ b/src/proc/mobject/parameter.cpp @@ -1,23 +1,23 @@ /* Parameter - representation of an automatable effect/plugin parameter - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/parameter.hpp b/src/proc/mobject/parameter.hpp index 634e36851..7a0a852d5 100644 --- a/src/proc/mobject/parameter.hpp +++ b/src/proc/mobject/parameter.hpp @@ -1,23 +1,23 @@ /* PARAMETER.hpp - representation of an automatable effect/plugin parameter - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/paramprovider.cpp b/src/proc/mobject/paramprovider.cpp index 8b5da785a..e0fae70a2 100644 --- a/src/proc/mobject/paramprovider.cpp +++ b/src/proc/mobject/paramprovider.cpp @@ -1,23 +1,23 @@ /* ParamProvider - interface denoting a source for actual Parameter values - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/paramprovider.hpp b/src/proc/mobject/paramprovider.hpp index fdcaff2a8..cbf44a779 100644 --- a/src/proc/mobject/paramprovider.hpp +++ b/src/proc/mobject/paramprovider.hpp @@ -1,23 +1,23 @@ /* PARAMPROVIDER.hpp - interface denoting a source for actual Parameter values - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/placement-ref.hpp b/src/proc/mobject/placement-ref.hpp index 91d246471..d5fb4fa59 100644 --- a/src/proc/mobject/placement-ref.hpp +++ b/src/proc/mobject/placement-ref.hpp @@ -1,23 +1,23 @@ /* PLACEMENT-REF.hpp - generic reference to an individual placement added to the session - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/placement.cpp b/src/proc/mobject/placement.cpp index 1b6e4c14d..e0260ef13 100644 --- a/src/proc/mobject/placement.cpp +++ b/src/proc/mobject/placement.cpp @@ -1,23 +1,23 @@ /* Placement - Key Abstraction: a way to place and locate a Media Object - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/placement.hpp b/src/proc/mobject/placement.hpp index 46607752d..5cd8206dc 100644 --- a/src/proc/mobject/placement.hpp +++ b/src/proc/mobject/placement.hpp @@ -1,23 +1,23 @@ /* PLACEMENT.hpp - Key Abstraction: a way to place and locate a Media Object - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session.hpp b/src/proc/mobject/session.hpp index 4bab5f285..22dd59bdf 100644 --- a/src/proc/mobject/session.hpp +++ b/src/proc/mobject/session.hpp @@ -1,23 +1,23 @@ /* SESSION.hpp - holds the complete session to be edited by the user - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ @@ -51,7 +51,7 @@ #include "proc/mobject/placement.hpp" #include "proc/mobject/mobject-ref.hpp" -#include "proc/mobject/session/defsmanager.hpp" ////////////////////////////TICKET #643 forward declare this? +#include "proc/mobject/session/defs-manager.hpp" ////////////////////////////TICKET #643 forward declare this? #include "lib/ref-array.hpp" #include "lib/singleton.hpp" #include "lib/symbol.hpp" diff --git a/src/proc/mobject/session/abstractmo.cpp b/src/proc/mobject/session/abstractmo.cpp index bdebb727d..aba3d7b2f 100644 --- a/src/proc/mobject/session/abstractmo.cpp +++ b/src/proc/mobject/session/abstractmo.cpp @@ -1,23 +1,23 @@ /* AbstractMO - abstract base class for all Media Objects - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/session/abstractmo.hpp b/src/proc/mobject/session/abstractmo.hpp index eff1d5d0c..53abf0466 100644 --- a/src/proc/mobject/session/abstractmo.hpp +++ b/src/proc/mobject/session/abstractmo.hpp @@ -1,23 +1,23 @@ /* ABSTRACTMO.hpp - abstract base class for all Media Objects - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/allocation.cpp b/src/proc/mobject/session/allocation.cpp index ae23185b8..03cbfd88d 100644 --- a/src/proc/mobject/session/allocation.cpp +++ b/src/proc/mobject/session/allocation.cpp @@ -1,23 +1,23 @@ /* Allocation - objective to place a MObject in a specific way - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/session/allocation.hpp b/src/proc/mobject/session/allocation.hpp index e668fb469..a1a668b9d 100644 --- a/src/proc/mobject/session/allocation.hpp +++ b/src/proc/mobject/session/allocation.hpp @@ -1,23 +1,23 @@ /* ALLOCATION.hpp - objective to place a MObject in a specific way - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/auto.cpp b/src/proc/mobject/session/auto.cpp index a8ecf4c38..b46ea5cae 100644 --- a/src/proc/mobject/session/auto.cpp +++ b/src/proc/mobject/session/auto.cpp @@ -1,23 +1,23 @@ /* Auto - Media Object holding automation data - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/session/auto.hpp b/src/proc/mobject/session/auto.hpp index 0ec133bc0..24b82ba9c 100644 --- a/src/proc/mobject/session/auto.hpp +++ b/src/proc/mobject/session/auto.hpp @@ -1,23 +1,23 @@ /* AUTO.hpp - Media Object holding automation data - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/binding.cpp b/src/proc/mobject/session/binding.cpp index eac8d70ea..9a763129a 100644 --- a/src/proc/mobject/session/binding.cpp +++ b/src/proc/mobject/session/binding.cpp @@ -1,23 +1,23 @@ /* Binding - link to use a sequence within the session - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/session/binding.hpp b/src/proc/mobject/session/binding.hpp index 05c51fd74..0b790da9c 100644 --- a/src/proc/mobject/session/binding.hpp +++ b/src/proc/mobject/session/binding.hpp @@ -1,23 +1,23 @@ /* BINDING.hpp - link to use a sequence within the session - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/bus-mo.cpp b/src/proc/mobject/session/bus-mo.cpp index ab43dba67..1ea99c15c 100644 --- a/src/proc/mobject/session/bus-mo.cpp +++ b/src/proc/mobject/session/bus-mo.cpp @@ -1,23 +1,23 @@ /* BusMO - attachment point to form a global pipe - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/session/bus-mo.hpp b/src/proc/mobject/session/bus-mo.hpp index 1e686bd37..30d5c3ae6 100644 --- a/src/proc/mobject/session/bus-mo.hpp +++ b/src/proc/mobject/session/bus-mo.hpp @@ -1,23 +1,23 @@ /* BUS-MO.hpp - attachment point to form a global pipe - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/clip.cpp b/src/proc/mobject/session/clip.cpp index a99f7c5df..af388fd9b 100644 --- a/src/proc/mobject/session/clip.cpp +++ b/src/proc/mobject/session/clip.cpp @@ -1,23 +1,23 @@ /* Clip - a Media Clip - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/session/clip.hpp b/src/proc/mobject/session/clip.hpp index 09aeda4c7..6a6251103 100644 --- a/src/proc/mobject/session/clip.hpp +++ b/src/proc/mobject/session/clip.hpp @@ -1,23 +1,23 @@ /* CLIP.hpp - a Media Clip - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/compoundclip.cpp b/src/proc/mobject/session/compoundclip.cpp index caa8e83bd..6de47a052 100644 --- a/src/proc/mobject/session/compoundclip.cpp +++ b/src/proc/mobject/session/compoundclip.cpp @@ -1,23 +1,23 @@ /* CompoundClip - compound of several clips (multichannel) - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/session/compoundclip.hpp b/src/proc/mobject/session/compoundclip.hpp index e2dfd9fd9..9e4f32f77 100644 --- a/src/proc/mobject/session/compoundclip.hpp +++ b/src/proc/mobject/session/compoundclip.hpp @@ -1,23 +1,23 @@ /* COMPOUNDCLIP.hpp - compound of several clips (multichannel) - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/constraint.cpp b/src/proc/mobject/session/constraint.cpp index 8a767ed45..4a1241cf3 100644 --- a/src/proc/mobject/session/constraint.cpp +++ b/src/proc/mobject/session/constraint.cpp @@ -1,23 +1,23 @@ /* Constraint - LocatingPin representing an mandatory directive - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/session/constraint.hpp b/src/proc/mobject/session/constraint.hpp index 191f4b515..eabddc617 100644 --- a/src/proc/mobject/session/constraint.hpp +++ b/src/proc/mobject/session/constraint.hpp @@ -1,23 +1,23 @@ /* CONSTRAINT.hpp - LocatingPin representing an mandatory directive - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/defsmanager.cpp b/src/proc/mobject/session/defs-manager.cpp similarity index 96% rename from src/proc/mobject/session/defsmanager.cpp rename to src/proc/mobject/session/defs-manager.cpp index 7f660f8c8..5dd350947 100644 --- a/src/proc/mobject/session/defsmanager.cpp +++ b/src/proc/mobject/session/defs-manager.cpp @@ -1,28 +1,28 @@ /* DefsManager - access to preconfigured default objects and definitions - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ -#include "proc/mobject/session/defsmanager.hpp" -#include "proc/mobject/session/defsregistry.hpp" +#include "proc/mobject/session/defs-manager.hpp" +#include "proc/mobject/session/defs-registry.hpp" #include "common/configrules.hpp" #include "lib/error.hpp" diff --git a/src/proc/mobject/session/defs-manager.hpp b/src/proc/mobject/session/defs-manager.hpp new file mode 100644 index 000000000..0fbcb1ab5 --- /dev/null +++ b/src/proc/mobject/session/defs-manager.hpp @@ -0,0 +1,128 @@ +/* + DEFS-MANAGER.hpp - access to preconfigured default objects and definitions + + Copyright (C) Lumiera.org + 2008, Hermann Vosseler <Ichthyostega@web.de> + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + + +#ifndef MOBJECT_SESSION_DEFS_MANAGER_H +#define MOBJECT_SESSION_DEFS_MANAGER_H + + +#include "lib/p.hpp" +#include "lib/query.hpp" + +#include <boost/scoped_ptr.hpp> +#include <boost/noncopyable.hpp> + + + +namespace mobject { +namespace session { + + + using lumiera::P; + using boost::scoped_ptr; + + namespace impl { class DefsRegistry; } + + + /** + * Organise a collection of preconfigured default objects. + * For various kinds of objects we can tweak the default parametrisation + * as part of the general session configuration. A ref to an instance of + * this class is accessible through the current session and can be used + * to fill in parts of the configuration of new objects, if the user + * code didn't give more specific parameters. Necessary sub-objects + * will be created on demand, and any default configuration, once + * found, will be remembered and stored with the current session. + * + * @note while the logic of defaults handling can be considered + * roughly final, as of 12/09 most of the actual object + * handling is placeholder code. + */ + class DefsManager : private boost::noncopyable + { + scoped_ptr<impl::DefsRegistry> defsRegistry; + + public: + + DefsManager () throw(); + ~DefsManager (); + + /** common access point: retrieve the default object fulfilling + * some given conditions. May silently trigger object creation. + * @throw error::Config in case no solution is possible, which + * is considered \e misconfiguration. + */ + template<class TAR> + P<TAR> operator() (lumiera::Query<TAR> const&); + + + /** search through the registered defaults, never create anything. + * @return object fulfilling the query, \c empty ptr if not found. + */ + template<class TAR> + P<TAR> search (lumiera::Query<TAR> const&); + + /** retrieve an object fulfilling the query and register it as default. + * The resolution is delegated to the ConfigQuery system (which may cause + * creation of new object instances) + * @return object fulfilling the query, \c empty ptr if no solution. + */ + template<class TAR> + P<TAR> create (lumiera::Query<TAR> const&); + + /** register the given object as default, after ensuring it fulfils the + * query. The latter may cause some properties of the object to be set, + * trigger creation of additional objects, and may fail altogether. + * @return true if query was successful and object is registered as default + * @note only a weak ref to the object is stored + */ + template<class TAR> + bool define (P<TAR> const&, lumiera::Query<TAR> const& =lumiera::Query<TAR>()); + + /** remove the defaults registration of the given object, if there was such + * @return false if nothing has been changed because the object wasn't registered + */ + template<class TAR> + bool forget (P<TAR> const&); + + +// Q: can we have something along the line of...? +// +// template +// < class TAR, ///< the target to query for +// template <class> class SMP ///< smart pointer class to wrap the result +// > +// SMP<TAR> operator() (const lumiera::Query<TAR>&); + +// 12/09: according to my current knowledge of template metaprogramming, the answer is "no", +// but we could use a traits template to set up a fixed association of smart pointers +// and kinds of target object. This would allow to define a templated operator() returning +// the result wrapped into the right holder. But currently I don't see how to build a sensible +// implementation infrastructure backing such an interface. +//////////TICKET #452 + + }; + + + +}} // namespace mobject::session +#endif diff --git a/src/proc/mobject/session/defsregistry.hpp b/src/proc/mobject/session/defs-registry.hpp similarity index 64% rename from src/proc/mobject/session/defsregistry.hpp rename to src/proc/mobject/session/defs-registry.hpp index 0dc6242c5..a6fc169cb 100644 --- a/src/proc/mobject/session/defsregistry.hpp +++ b/src/proc/mobject/session/defs-registry.hpp @@ -1,43 +1,43 @@ /* - DEFSREGISTRY.hpp - implementation of the default object store - + DEFS-REGISTRY.hpp - implementation of the default object store + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ -/** @file defsregistry.hpp +/** @file defs-registry.hpp ** A piece of implementation code factored out into a separate header (include). - ** Only used in defsmanager.cpp and for the unit tests. We can't place it into - ** a separate compilation unit, because defsmanager.cpp defines some explicit + ** Only used in defs-manager.cpp and for the unit tests. We can't place it into + ** a separate compilation unit, because defs-manager.cpp defines some explicit ** template instantiation, which cause the different Slots of the DefsrRegistry#table_ ** to be filled with data and defaults for the specific Types. ** ** @see mobject::session::DefsManager - ** @see defsregistryimpltest.cpp + ** @see DefsRegistryImpl_test ** */ -#ifndef MOBJECT_SESSION_DEFSREGISTRY_H -#define MOBJECT_SESSION_DEFSREGISTRY_H +#ifndef MOBJECT_SESSION_DEFS_REGISTRY_H +#define MOBJECT_SESSION_DEFS_REGISTRY_H #include "lib/sync-classlock.hpp" @@ -55,131 +55,131 @@ namespace mobject { - namespace session { +namespace session { + + using lumiera::P; + using lumiera::Query; + using lib::ClassLock; + using std::tr1::weak_ptr; + + using std::string; + using boost::format; + using boost::lambda::_1; + using boost::lambda::var; + + namespace impl { - using lumiera::P; - using lumiera::Query; - using lib::ClassLock; - using std::tr1::weak_ptr; + namespace { + uint maxSlots (0); ///< number of different registered Types + format dumpRecord ("%2i| %64s --> %s\n"); + } - using std::string; - using boost::format; - using boost::lambda::_1; - using boost::lambda::var; - namespace impl { - - namespace { - uint maxSlots (0); ///< number of different registered Types - format dumpRecord ("%2i| %64s --> %s\n"); - } - - - struct TableEntry - { - virtual ~TableEntry() {}; - }; - - /** we maintain an independent defaults registry - * for every participating kind of object. */ - typedef std::vector< P<TableEntry> > Table; - - - /** - * holding a single "default object" entry - */ - template<class TAR> - struct Record - { - uint degree; - Query<TAR> query; - weak_ptr<TAR> objRef; - - Record (const Query<TAR>& q, const P<TAR>& obj) - : degree (lumiera::query::countPred (q)), - query (q), - objRef (obj) - { } - - - struct Search ///< Functor searching for a specific object - { - Search (const P<TAR>& obj) - : obj_(obj) { } - - const P<TAR>& obj_; - - bool - operator() (const Record& rec) - { - P<TAR> storedObj (rec.objRef.lock()); - return storedObj && (storedObj == obj_); - } - }; - - struct OrderRelation - { - inline bool - operator() (Record one, Record two) ///< @note doesn't touch the objRef - { - return ( one.degree < two.degree - ||(one.degree == two.degree && one.query < two.query) - ); - } - }; + struct TableEntry + { + virtual ~TableEntry() {}; + }; + + /** we maintain an independent defaults registry + * for every participating kind of object. */ + typedef std::vector< P<TableEntry> > Table; + + + /** + * holding a single "default object" entry + */ + template<class TAR> + struct Record + { + uint degree; + Query<TAR> query; + weak_ptr<TAR> objRef; + + Record (const Query<TAR>& q, const P<TAR>& obj) + : degree (lumiera::query::countPred (q)), + query (q), + objRef (obj) + { } + + + struct Search ///< Functor searching for a specific object + { + Search (const P<TAR>& obj) + : obj_(obj) { } - operator string () const { return str (dumpRecord % degree % query % dumpObj()); } - string dumpObj () const { P<TAR> o (objRef.lock()); return o? string(*o):"dead"; } - }; - - /** every new kind of object (Type) creates a new - * slot in the main Table holding all registered - * default objects. Each slot actually holds a - * separate tree (set) of registry entries - */ - template<class TAR> - struct Slot : public TableEntry - { - typedef typename Record<TAR>::OrderRelation Ordering; - typedef std::set<Record<TAR>, Ordering> Registry; - - Registry registry; - static size_t index; ///< where to find this Slot in every Table - - static Registry& - access (Table& table) + const P<TAR>& obj_; + + bool + operator() (const Record& rec) { - if ( !index - || index > table.size() - ||!table[index-1]) - createSlot (table); - - ASSERT (0 < index && index<=table.size() && table[index-1]); - Slot* item = static_cast<Slot*> (table[index-1].get()); - return item->registry; + P<TAR> storedObj (rec.objRef.lock()); + return storedObj && (storedObj == obj_); } - - private: - static void - createSlot (Table& table) - { - ClassLock<TableEntry> guard(); - if (!index) - index = ++maxSlots; - if (index > table.size()) - table.resize (index); - table[index-1].reset(new Slot); - } - }; + }; + struct OrderRelation + { + inline bool + operator() (Record one, Record two) ///< @note doesn't touch the objRef + { + return ( one.degree < two.degree + ||(one.degree == two.degree && one.query < two.query) + ); + } + }; - // static vars to organise one Table Slot per type.... - template<class TAR> - size_t Slot<TAR>::index (0); - - + operator string () const { return str (dumpRecord % degree % query % dumpObj()); } + string dumpObj () const { P<TAR> o (objRef.lock()); return o? string(*o):"dead"; } + }; + + /** every new kind of object (Type) creates a new + * slot in the main Table holding all registered + * default objects. Each slot actually holds a + * separate tree (set) of registry entries + */ + template<class TAR> + struct Slot : public TableEntry + { + typedef typename Record<TAR>::OrderRelation Ordering; + typedef std::set<Record<TAR>, Ordering> Registry; + + Registry registry; + static size_t index; ///< where to find this Slot in every Table + + static Registry& + access (Table& table) + { + if ( !index + || index > table.size() + ||!table[index-1]) + createSlot (table); + + ASSERT (0 < index && index<=table.size() && table[index-1]); + Slot* item = static_cast<Slot*> (table[index-1].get()); + return item->registry; + } + + private: + static void + createSlot (Table& table) + { + ClassLock<TableEntry> guard(); + if (!index) + index = ++maxSlots; + if (index > table.size()) + table.resize (index); + table[index-1].reset(new Slot); + } + }; + // static vars to organise one Table Slot per type.... + template<class TAR> + size_t Slot<TAR>::index (0); + + + + /** * @internal Helper for organising preconfigured default objects. * Maintains a collection of objects known or encountered as "default" @@ -235,8 +235,8 @@ namespace mobject { public: P<TAR> operator* () { return ptr; } bool hasNext () { return next || findNext(); } - Iter operator++ (int) { Iter tmp=*this; operator++(); return tmp; } - Iter& operator++ () + Iter operator++ (int) { Iter tmp=*this; operator++(); return tmp; } + Iter& operator++ () { ptr=findNext(); next.reset(); @@ -332,16 +332,13 @@ namespace mobject { return res; } }; - - - - } // (End) impl namespace - - using impl::DefsRegistry; - } // namespace mobject::session - -} // namespace mobject - + + } // (End) impl namespace + + using impl::DefsRegistry; + + +}} // namespace mobject::session #endif diff --git a/src/proc/mobject/session/defsmanager.hpp b/src/proc/mobject/session/defsmanager.hpp deleted file mode 100644 index 09b7a0499..000000000 --- a/src/proc/mobject/session/defsmanager.hpp +++ /dev/null @@ -1,130 +0,0 @@ -/* - DEFSMANAGER.hpp - access to preconfigured default objects and definitions - - Copyright (C) Lumiera.org - 2008, Hermann Vosseler <Ichthyostega@web.de> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -*/ - - -#ifndef MOBJECT_SESSION_DEFSMANAGER_H -#define MOBJECT_SESSION_DEFSMANAGER_H - - -#include "lib/p.hpp" -#include "lib/query.hpp" - -#include <boost/scoped_ptr.hpp> -#include <boost/noncopyable.hpp> - - - -namespace mobject { - namespace session { - - - using lumiera::P; - using boost::scoped_ptr; - - namespace impl { class DefsRegistry; } - - - /** - * Organise a collection of preconfigured default objects. - * For various kinds of objects we can tweak the default parametrisation - * as part of the general session configuration. A ref to an instance of - * this class is accessible through the current session and can be used - * to fill in parts of the configuration of new objects, if the user - * code didn't give more specific parameters. Necessary sub-objects - * will be created on demand, and any default configuration, once - * found, will be remembered and stored with the current session. - * - * @note while the logic of defaults handling can be considered - * roughly final, as of 12/09 most of the actual object - * handling is placeholder code. - */ - class DefsManager : private boost::noncopyable - { - scoped_ptr<impl::DefsRegistry> defsRegistry; - - public: - - DefsManager () throw(); - ~DefsManager (); - - /** common access point: retrieve the default object fulfilling - * some given conditions. May silently trigger object creation. - * @throw error::Config in case no solution is possible, which - * is considered \e misconfiguration. - */ - template<class TAR> - P<TAR> operator() (lumiera::Query<TAR> const&); - - - /** search through the registered defaults, never create anything. - * @return object fulfilling the query, \c empty ptr if not found. - */ - template<class TAR> - P<TAR> search (lumiera::Query<TAR> const&); - - /** retrieve an object fulfilling the query and register it as default. - * The resolution is delegated to the ConfigQuery system (which may cause - * creation of new object instances) - * @return object fulfilling the query, \c empty ptr if no solution. - */ - template<class TAR> - P<TAR> create (lumiera::Query<TAR> const&); - - /** register the given object as default, after ensuring it fulfils the - * query. The latter may cause some properties of the object to be set, - * trigger creation of additional objects, and may fail altogether. - * @return true if query was successful and object is registered as default - * @note only a weak ref to the object is stored - */ - template<class TAR> - bool define (P<TAR> const&, lumiera::Query<TAR> const& =lumiera::Query<TAR>()); - - /** remove the defaults registration of the given object, if there was such - * @return false if nothing has been changed because the object wasn't registered - */ - template<class TAR> - bool forget (P<TAR> const&); - - -// Q: can we have something along the line of...? -// -// template -// < class TAR, ///< the target to query for -// template <class> class SMP ///< smart pointer class to wrap the result -// > -// SMP<TAR> operator() (const lumiera::Query<TAR>&); - -// 12/09: according to my current knowledge of template metaprogramming, the answer is "no", -// but we could use a traits template to set up a fixed association of smart pointers -// and kinds of target object. This would allow to define a templated operator() returning -// the result wrapped into the right holder. But currently I don't see how to build a sensible -// implementation infrastructure backing such an interface. -//////////TICKET #452 - - }; - - - - } // namespace mobject::session - -} // namespace mobject -#endif diff --git a/src/proc/mobject/session/effect.cpp b/src/proc/mobject/session/effect.cpp index de2bfe18a..d190274dd 100644 --- a/src/proc/mobject/session/effect.cpp +++ b/src/proc/mobject/session/effect.cpp @@ -1,23 +1,23 @@ /* Effect - Model representation of a pluggable and automatable effect. - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/session/effect.hpp b/src/proc/mobject/session/effect.hpp index ba0f08e8c..9c22e847e 100644 --- a/src/proc/mobject/session/effect.hpp +++ b/src/proc/mobject/session/effect.hpp @@ -1,23 +1,23 @@ /* EFFECT.hpp - Model representation of a pluggable and automatable effect. - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/element-query.hpp b/src/proc/mobject/session/element-query.hpp index 9baf6a5d6..fbb3fbe3a 100644 --- a/src/proc/mobject/session/element-query.hpp +++ b/src/proc/mobject/session/element-query.hpp @@ -1,23 +1,23 @@ /* ELEMENT-QUERY.hpp - session sub-interface to query and retrieve elements - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/fixedlocation.cpp b/src/proc/mobject/session/fixedlocation.cpp index 238b8c011..1cd7eb98c 100644 --- a/src/proc/mobject/session/fixedlocation.cpp +++ b/src/proc/mobject/session/fixedlocation.cpp @@ -1,23 +1,23 @@ /* FixedLocation - directly positioning a MObject to a fixed location - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/session/fixedlocation.hpp b/src/proc/mobject/session/fixedlocation.hpp index 6b6d981c3..ab9b9cc6d 100644 --- a/src/proc/mobject/session/fixedlocation.hpp +++ b/src/proc/mobject/session/fixedlocation.hpp @@ -1,23 +1,23 @@ /* FIXEDLOCATION.hpp - directly positioning a MObject to a fixed location - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/fixture.cpp b/src/proc/mobject/session/fixture.cpp index 9c8209000..053bd3827 100644 --- a/src/proc/mobject/session/fixture.cpp +++ b/src/proc/mobject/session/fixture.cpp @@ -1,23 +1,23 @@ /* Fixture - the (low level) representation of the Session with explicit placement data - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/session/fixture.hpp b/src/proc/mobject/session/fixture.hpp index 76f55ce4b..d6ecdc847 100644 --- a/src/proc/mobject/session/fixture.hpp +++ b/src/proc/mobject/session/fixture.hpp @@ -1,23 +1,23 @@ /* FIXTURE.hpp - the (low level) representation of the Session with explicit placement data - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/label.cpp b/src/proc/mobject/session/label.cpp index 6f6224fed..58e3cd86f 100644 --- a/src/proc/mobject/session/label.cpp +++ b/src/proc/mobject/session/label.cpp @@ -1,23 +1,23 @@ /* Label - a user visible Marker or Tag - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/session/label.hpp b/src/proc/mobject/session/label.hpp index d2b6c3616..df790d74f 100644 --- a/src/proc/mobject/session/label.hpp +++ b/src/proc/mobject/session/label.hpp @@ -1,23 +1,23 @@ /* LABEL.hpp - a user visible Marker or Tag - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/lifecycle-advisor.hpp b/src/proc/mobject/session/lifecycle-advisor.hpp index b595273f2..a3c286af8 100644 --- a/src/proc/mobject/session/lifecycle-advisor.hpp +++ b/src/proc/mobject/session/lifecycle-advisor.hpp @@ -1,23 +1,23 @@ /* LIFECYCLE-ADVISOR.hpp - outline of the session lifecycle - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/locatingpin.cpp b/src/proc/mobject/session/locatingpin.cpp index f4e7ce954..1c98c3df1 100644 --- a/src/proc/mobject/session/locatingpin.cpp +++ b/src/proc/mobject/session/locatingpin.cpp @@ -1,23 +1,23 @@ /* LocatingPin - Chaining and constraining the Placement of a Media Object - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/session/locatingpin.hpp b/src/proc/mobject/session/locatingpin.hpp index 945947a75..04feae332 100644 --- a/src/proc/mobject/session/locatingpin.hpp +++ b/src/proc/mobject/session/locatingpin.hpp @@ -1,23 +1,23 @@ /* LOCATINGPIN.hpp - Chaining and constraining the Placement of a Media Object - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/meta.cpp b/src/proc/mobject/session/meta.cpp index cb61756d5..88d87c443 100644 --- a/src/proc/mobject/session/meta.cpp +++ b/src/proc/mobject/session/meta.cpp @@ -1,23 +1,23 @@ /* Meta - abstract base class of all MObjects representing meta data or processing instructions - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/session/meta.hpp b/src/proc/mobject/session/meta.hpp index bea5bdb25..3015bb127 100644 --- a/src/proc/mobject/session/meta.hpp +++ b/src/proc/mobject/session/meta.hpp @@ -1,23 +1,23 @@ /* META.hpp - abstract base class of all MObjects representing meta data or processing instructions - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/mobjectfactory.cpp b/src/proc/mobject/session/mobjectfactory.cpp index b7f639d9e..f6c6aa807 100644 --- a/src/proc/mobject/session/mobjectfactory.cpp +++ b/src/proc/mobject/session/mobjectfactory.cpp @@ -1,23 +1,23 @@ /* MObjectFactory - creating concrete MObject subclass instances - + Copyright (C) Lumiera.org 2008-2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/session/mobjectfactory.hpp b/src/proc/mobject/session/mobjectfactory.hpp index 0d7aa6010..67e1ada4e 100644 --- a/src/proc/mobject/session/mobjectfactory.hpp +++ b/src/proc/mobject/session/mobjectfactory.hpp @@ -1,23 +1,23 @@ /* MOBJECTFACTORY.hpp - creating concrete MObject subclass instances - + Copyright (C) Lumiera.org 2008-2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/placement-index-query-resolver.cpp b/src/proc/mobject/session/placement-index-query-resolver.cpp index 5b06caf73..ea366b6ac 100644 --- a/src/proc/mobject/session/placement-index-query-resolver.cpp +++ b/src/proc/mobject/session/placement-index-query-resolver.cpp @@ -1,23 +1,23 @@ /* placementIndexQueryResolver - using PlacementIndex to resolve scope queries - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/session/placement-index-query-resolver.hpp b/src/proc/mobject/session/placement-index-query-resolver.hpp index 7ae60a7b9..6e4ab424d 100644 --- a/src/proc/mobject/session/placement-index-query-resolver.hpp +++ b/src/proc/mobject/session/placement-index-query-resolver.hpp @@ -1,23 +1,23 @@ /* PLACEMENT-INDEX-QUERY-RESOLVER.hpp - using PlacementIndex to resolve scope queries - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/placement-index.cpp b/src/proc/mobject/session/placement-index.cpp index 1772bae18..fab3adda6 100644 --- a/src/proc/mobject/session/placement-index.cpp +++ b/src/proc/mobject/session/placement-index.cpp @@ -1,23 +1,23 @@ /* PlacementIndex - tracking individual Placements and their relations - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/session/placement-index.hpp b/src/proc/mobject/session/placement-index.hpp index b94cf0e2b..51dde737d 100644 --- a/src/proc/mobject/session/placement-index.hpp +++ b/src/proc/mobject/session/placement-index.hpp @@ -1,23 +1,23 @@ /* PLACEMENT-INDEX.hpp - tracking individual Placements and their relations - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/plug.cpp b/src/proc/mobject/session/plug.cpp index ccc117510..d642ed1e3 100644 --- a/src/proc/mobject/session/plug.cpp +++ b/src/proc/mobject/session/plug.cpp @@ -1,23 +1,23 @@ /* Plug - LocatingPin for requesting connection to some Pipe - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/session/plug.hpp b/src/proc/mobject/session/plug.hpp index 333ee3ed8..fb0835c55 100644 --- a/src/proc/mobject/session/plug.hpp +++ b/src/proc/mobject/session/plug.hpp @@ -1,23 +1,23 @@ /* PLUG.hpp - LocatingPin for requesting connection to some Pipe - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/query-focus-stack.hpp b/src/proc/mobject/session/query-focus-stack.hpp index d58b02481..42dedc962 100644 --- a/src/proc/mobject/session/query-focus-stack.hpp +++ b/src/proc/mobject/session/query-focus-stack.hpp @@ -1,23 +1,23 @@ /* QUERY-FOCUS-STACK.hpp - management of current scope within the Session - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/query-focus.cpp b/src/proc/mobject/session/query-focus.cpp index b6bcf3bd0..2972d2f35 100644 --- a/src/proc/mobject/session/query-focus.cpp +++ b/src/proc/mobject/session/query-focus.cpp @@ -1,23 +1,23 @@ /* QueryFocus - management of current scope within the Session - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/session/query-focus.hpp b/src/proc/mobject/session/query-focus.hpp index 3dfe9ba04..9fc74decc 100644 --- a/src/proc/mobject/session/query-focus.hpp +++ b/src/proc/mobject/session/query-focus.hpp @@ -1,23 +1,23 @@ /* QUERY-FOCUS.hpp - management of current scope within the Session - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/query-resolver.cpp b/src/proc/mobject/session/query-resolver.cpp index 1461cf7f5..787c58f6d 100644 --- a/src/proc/mobject/session/query-resolver.cpp +++ b/src/proc/mobject/session/query-resolver.cpp @@ -1,23 +1,23 @@ /* QueryResolver - interface for discovering contents of a scope - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/session/query-resolver.hpp b/src/proc/mobject/session/query-resolver.hpp index 38a41d874..eedd6811a 100644 --- a/src/proc/mobject/session/query-resolver.hpp +++ b/src/proc/mobject/session/query-resolver.hpp @@ -1,23 +1,23 @@ /* QUERY-RESOLVER.hpp - interface for discovering contents of a scope - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/relativelocation.cpp b/src/proc/mobject/session/relativelocation.cpp index 7ae39ff3a..557d3b66d 100644 --- a/src/proc/mobject/session/relativelocation.cpp +++ b/src/proc/mobject/session/relativelocation.cpp @@ -1,23 +1,23 @@ /* RelativeLocation - Placement implementation attaching MObjects relative to another one - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/session/relativelocation.hpp b/src/proc/mobject/session/relativelocation.hpp index ff0d159f2..46b2a6d4b 100644 --- a/src/proc/mobject/session/relativelocation.hpp +++ b/src/proc/mobject/session/relativelocation.hpp @@ -1,23 +1,23 @@ /* RELATIVELOCATION.hpp - Placement implementation attaching MObjects relative to another one - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/root.cpp b/src/proc/mobject/session/root.cpp index 401a90dcb..5b6aa6290 100644 --- a/src/proc/mobject/session/root.cpp +++ b/src/proc/mobject/session/root.cpp @@ -1,28 +1,28 @@ /* Root - root element of the high-level model, global session scope - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "proc/mobject/session/root.hpp" -#include "proc/mobject/session/defsmanager.hpp" +#include "proc/mobject/session/defs-manager.hpp" namespace mobject { diff --git a/src/proc/mobject/session/root.hpp b/src/proc/mobject/session/root.hpp index 8d5b744ad..c8dc18631 100644 --- a/src/proc/mobject/session/root.hpp +++ b/src/proc/mobject/session/root.hpp @@ -1,23 +1,23 @@ /* ROOT.hpp - root element of the high-level model, global session scope - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/scope-locator.hpp b/src/proc/mobject/session/scope-locator.hpp index 5512f3917..a3c427722 100644 --- a/src/proc/mobject/session/scope-locator.hpp +++ b/src/proc/mobject/session/scope-locator.hpp @@ -1,23 +1,23 @@ /* SCOPE-LOCATOR.hpp - management and registration point for the QueryFocus-system - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/scope-path.cpp b/src/proc/mobject/session/scope-path.cpp index c713e2fc0..5c750d920 100644 --- a/src/proc/mobject/session/scope-path.cpp +++ b/src/proc/mobject/session/scope-path.cpp @@ -1,23 +1,23 @@ /* ScopePath - logical access path down from Session root - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/session/scope-path.hpp b/src/proc/mobject/session/scope-path.hpp index 61799d95d..da23516d8 100644 --- a/src/proc/mobject/session/scope-path.hpp +++ b/src/proc/mobject/session/scope-path.hpp @@ -1,23 +1,23 @@ /* SCOPE-PATH.hpp - logical access path down from Session root - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file scope-path.hpp diff --git a/src/proc/mobject/session/scope-query.hpp b/src/proc/mobject/session/scope-query.hpp index f8d7e600a..166e2615a 100644 --- a/src/proc/mobject/session/scope-query.hpp +++ b/src/proc/mobject/session/scope-query.hpp @@ -1,23 +1,23 @@ /* SCOPE-QUERY.hpp - query to discover the contents of a container-like part of the model - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/scope.cpp b/src/proc/mobject/session/scope.cpp index 2143cb4f5..24b684a03 100644 --- a/src/proc/mobject/session/scope.cpp +++ b/src/proc/mobject/session/scope.cpp @@ -1,23 +1,23 @@ /* Scope - nested search scope for properties of placement - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/session/scope.hpp b/src/proc/mobject/session/scope.hpp index a4b9ca3fd..d3b463dc2 100644 --- a/src/proc/mobject/session/scope.hpp +++ b/src/proc/mobject/session/scope.hpp @@ -1,23 +1,23 @@ /* SCOPE.hpp - nested search scope for properties of placement - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/segment.cpp b/src/proc/mobject/session/segment.cpp index 45c593c67..07320761d 100644 --- a/src/proc/mobject/session/segment.cpp +++ b/src/proc/mobject/session/segment.cpp @@ -1,23 +1,23 @@ /* Segment - Segment of the timeline for rendering. - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "proc/mobject/session/segment.hpp" diff --git a/src/proc/mobject/session/segment.hpp b/src/proc/mobject/session/segment.hpp index 66f03b9bc..3a0835c87 100644 --- a/src/proc/mobject/session/segment.hpp +++ b/src/proc/mobject/session/segment.hpp @@ -1,23 +1,23 @@ /* SEGMENT.hpp - Segment of the timeline for rendering. - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/segmentation.cpp b/src/proc/mobject/session/segmentation.cpp index f19b8041b..b8c8fd660 100644 --- a/src/proc/mobject/session/segmentation.cpp +++ b/src/proc/mobject/session/segmentation.cpp @@ -1,23 +1,23 @@ /* Segementation - Partitioning of a timeline for organising the render graph. - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "proc/mobject/session/segmentation.hpp" diff --git a/src/proc/mobject/session/segmentation.hpp b/src/proc/mobject/session/segmentation.hpp index 2decf122c..4312a6205 100644 --- a/src/proc/mobject/session/segmentation.hpp +++ b/src/proc/mobject/session/segmentation.hpp @@ -1,23 +1,23 @@ /* SEGMENTATION.hpp - Partitioning of a timeline for organising the render graph. - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/sess-manager-impl.cpp b/src/proc/mobject/session/sess-manager-impl.cpp index 51696928f..d0e4c4cc4 100644 --- a/src/proc/mobject/session/sess-manager-impl.cpp +++ b/src/proc/mobject/session/sess-manager-impl.cpp @@ -1,23 +1,23 @@ /* SessManagerImpl - global session access and lifecycle - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -40,7 +40,7 @@ #include "proc/mobject/session.hpp" #include "proc/mobject/session/sess-manager-impl.hpp" -#include "proc/mobject/session/defsmanager.hpp" +#include "proc/mobject/session/defs-manager.hpp" #include "proc/mobject/session/lifecycle-advisor.hpp" #include "proc/asset/timeline.hpp" #include "lib/error.hpp" @@ -152,6 +152,7 @@ namespace session { closeSessionInterface() { /////////////////////// TICKET #699 INFO (session, "closing session interfaces."); + TODO ("actually close session interfaces :) and don't babble in the log when NOT closing anything..."); } diff --git a/src/proc/mobject/session/sess-manager-impl.hpp b/src/proc/mobject/session/sess-manager-impl.hpp index dcd671d2f..14af631c6 100644 --- a/src/proc/mobject/session/sess-manager-impl.hpp +++ b/src/proc/mobject/session/sess-manager-impl.hpp @@ -1,23 +1,23 @@ /* SESS-MANAGER-IMPL.hpp - global session access and lifecycle - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/session-impl.cpp b/src/proc/mobject/session/session-impl.cpp index 6ce106049..e091414b2 100644 --- a/src/proc/mobject/session/session-impl.cpp +++ b/src/proc/mobject/session/session-impl.cpp @@ -1,23 +1,23 @@ /* SessionImpl - holds the complete session data to be edited by the user - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/session/session-impl.hpp b/src/proc/mobject/session/session-impl.hpp index c741bde80..b5416057e 100644 --- a/src/proc/mobject/session/session-impl.hpp +++ b/src/proc/mobject/session/session-impl.hpp @@ -1,23 +1,23 @@ /* SESSION-IMPL.hpp - holds the complete session data to be edited by the user - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/session-interface-modules.hpp b/src/proc/mobject/session/session-interface-modules.hpp index 437bc5663..daa05b18f 100644 --- a/src/proc/mobject/session/session-interface-modules.hpp +++ b/src/proc/mobject/session/session-interface-modules.hpp @@ -1,23 +1,23 @@ /* SESSION-INTERFACE-MODULES.hpp - composing the public session API from several interface modules - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ @@ -73,7 +73,7 @@ #include "lib/element-tracker.hpp" #include "proc/asset/timeline.hpp" #include "proc/asset/sequence.hpp" -#include "proc/mobject/session/defsmanager.hpp" +#include "proc/mobject/session/defs-manager.hpp" #include "proc/mobject/session/element-query.hpp" diff --git a/src/proc/mobject/session/session-query.hpp b/src/proc/mobject/session/session-query.hpp index 5514b9a4c..15cf82d69 100644 --- a/src/proc/mobject/session/session-query.hpp +++ b/src/proc/mobject/session/session-query.hpp @@ -1,23 +1,23 @@ /* SESSION-QUERY.hpp - querying for session contents in various ways - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/session-service-defaults.hpp b/src/proc/mobject/session/session-service-defaults.hpp index 85073e96f..70cbd1b4a 100644 --- a/src/proc/mobject/session/session-service-defaults.hpp +++ b/src/proc/mobject/session/session-service-defaults.hpp @@ -1,23 +1,23 @@ /* SESSION-SERVICE-DEFAULTS.hpp - session implementation service API: manage default objects - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/session-service-explore-scope.hpp b/src/proc/mobject/session/session-service-explore-scope.hpp index 98d998a2f..e3330fe27 100644 --- a/src/proc/mobject/session/session-service-explore-scope.hpp +++ b/src/proc/mobject/session/session-service-explore-scope.hpp @@ -1,23 +1,23 @@ /* SESSION-SERVICE-EXPLORE-SCOPE.hpp - session implementation service API: explore scope - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/session-service-fetch.hpp b/src/proc/mobject/session/session-service-fetch.hpp index 50f62c7c5..fd883dffb 100644 --- a/src/proc/mobject/session/session-service-fetch.hpp +++ b/src/proc/mobject/session/session-service-fetch.hpp @@ -1,23 +1,23 @@ /* SESSION-SERVICE-FETCH.hpp - session implementation service API: fetch PlacementRef - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/session-service-mock-index.hpp b/src/proc/mobject/session/session-service-mock-index.hpp index 4389a80f6..44d4ab446 100644 --- a/src/proc/mobject/session/session-service-mock-index.hpp +++ b/src/proc/mobject/session/session-service-mock-index.hpp @@ -1,23 +1,23 @@ /* SESSION-SERVICE-MOCK-INDEX.hpp - session service API: mock PlacementIndex for tests - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/session-service-mutate.hpp b/src/proc/mobject/session/session-service-mutate.hpp index a1cdcb4e2..dbd063592 100644 --- a/src/proc/mobject/session/session-service-mutate.hpp +++ b/src/proc/mobject/session/session-service-mutate.hpp @@ -1,23 +1,23 @@ /* SESSION-SERVICE-MUTATE.hpp - session implementation service API: add/remove session contents - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/session-services.cpp b/src/proc/mobject/session/session-services.cpp index 76ebe2d58..c75a6c9bd 100644 --- a/src/proc/mobject/session/session-services.cpp +++ b/src/proc/mobject/session/session-services.cpp @@ -1,23 +1,23 @@ /* SessionServices - accessing Proc-Layer internal session implementation services - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/session/session-services.hpp b/src/proc/mobject/session/session-services.hpp index 889f70cbd..a44fddae8 100644 --- a/src/proc/mobject/session/session-services.hpp +++ b/src/proc/mobject/session/session-services.hpp @@ -1,23 +1,23 @@ /* SESSION-SERVICES.hpp - accessing Proc-Layer internal session implementation services - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/session.cpp b/src/proc/mobject/session/session.cpp index ba414dc65..891ba1349 100644 --- a/src/proc/mobject/session/session.cpp +++ b/src/proc/mobject/session/session.cpp @@ -1,23 +1,23 @@ /* Session - holds the complete session to be edited by the user - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -32,7 +32,7 @@ #include "proc/mobject/session.hpp" -#include "proc/mobject/session/defsmanager.hpp" +#include "proc/mobject/session/defs-manager.hpp" #include "proc/mobject/session/session-impl.hpp" #include "proc/mobject/session/sess-manager-impl.hpp" diff --git a/src/proc/mobject/session/simpleclip.cpp b/src/proc/mobject/session/simpleclip.cpp index 97796a00e..e404532bf 100644 --- a/src/proc/mobject/session/simpleclip.cpp +++ b/src/proc/mobject/session/simpleclip.cpp @@ -1,23 +1,23 @@ /* SimpleClip - Elementary clip (single media stream only) - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/session/simpleclip.hpp b/src/proc/mobject/session/simpleclip.hpp index f0dc62c02..6b6c23913 100644 --- a/src/proc/mobject/session/simpleclip.hpp +++ b/src/proc/mobject/session/simpleclip.hpp @@ -1,23 +1,23 @@ /* SIMPLECLIP.hpp - Elementary clip (single media stream only) - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/specific-contents-query.hpp b/src/proc/mobject/session/specific-contents-query.hpp index 0fbf713e7..4437441bc 100644 --- a/src/proc/mobject/session/specific-contents-query.hpp +++ b/src/proc/mobject/session/specific-contents-query.hpp @@ -1,23 +1,23 @@ /* SPECIFIC-CONTENTS-QUERY.hpp - pick specific contents from the model, using a filter - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/track.cpp b/src/proc/mobject/session/track.cpp index 8d7c5eb22..73e811b90 100644 --- a/src/proc/mobject/session/track.cpp +++ b/src/proc/mobject/session/track.cpp @@ -1,23 +1,23 @@ /* Track - A grouping device within the Session. - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/session/track.hpp b/src/proc/mobject/session/track.hpp index 0bff48744..60fb8afa5 100644 --- a/src/proc/mobject/session/track.hpp +++ b/src/proc/mobject/session/track.hpp @@ -1,23 +1,23 @@ /* TRACK.hpp - A grouping device within the Session. - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/session/wish.cpp b/src/proc/mobject/session/wish.cpp index ddf90d307..3704c77e6 100644 --- a/src/proc/mobject/session/wish.cpp +++ b/src/proc/mobject/session/wish.cpp @@ -1,23 +1,23 @@ /* Wish - LocatingPin representing a low-priority directive - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/mobject/session/wish.hpp b/src/proc/mobject/session/wish.hpp index 7fe447e4e..ae5ffbeab 100644 --- a/src/proc/mobject/session/wish.hpp +++ b/src/proc/mobject/session/wish.hpp @@ -1,23 +1,23 @@ /* WISH.hpp - LocatingPin representing a low-priority directive - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/proc/mobject/test-dummy-mobject.hpp b/src/proc/mobject/test-dummy-mobject.hpp index 24c1df0f2..14542b629 100644 --- a/src/proc/mobject/test-dummy-mobject.hpp +++ b/src/proc/mobject/test-dummy-mobject.hpp @@ -1,23 +1,23 @@ /* TEST-DUMMY-MOBJECT.hpp - dummy MObject hierarchy for unit tests - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file test-dummy-mobject.hpp diff --git a/src/proc/play/dummy-image-generator.cpp b/src/proc/play/dummy-image-generator.cpp index 603b0d033..250549b42 100644 --- a/src/proc/play/dummy-image-generator.cpp +++ b/src/proc/play/dummy-image-generator.cpp @@ -1,24 +1,24 @@ /* DummyImageGenerator - creating test output frames for simulated playback - + Copyright (C) Lumiera.org 2009, Joel Holdsworth <joel@airwebreathe.org.uk>, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/play/dummy-image-generator.hpp b/src/proc/play/dummy-image-generator.hpp index 17056997d..e2d70d322 100644 --- a/src/proc/play/dummy-image-generator.hpp +++ b/src/proc/play/dummy-image-generator.hpp @@ -1,24 +1,24 @@ /* DUMMY-IMAGE-GENERATOR.hpp - creating test output frames for simulated playback - + Copyright (C) Lumiera.org 2009, Joel Holdsworth <joel@airwebreathe.org.uk>, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file dummy-image-generator.hpp diff --git a/src/proc/play/dummy-player-interface-proxy.hpp b/src/proc/play/dummy-player-interface-proxy.hpp index 05319dc27..3e4ccdcd4 100644 --- a/src/proc/play/dummy-player-interface-proxy.hpp +++ b/src/proc/play/dummy-player-interface-proxy.hpp @@ -1,23 +1,23 @@ /* DummyPlayer(Proxy) - access point and service implementing a dummy test player - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/play/dummy-player-service.cpp b/src/proc/play/dummy-player-service.cpp index 54ce69e9d..ea443f709 100644 --- a/src/proc/play/dummy-player-service.cpp +++ b/src/proc/play/dummy-player-service.cpp @@ -1,23 +1,23 @@ /* DummyPlayerService - access point and service implementing a dummy test player - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/play/dummy-player-service.hpp b/src/proc/play/dummy-player-service.hpp index 8dc1f87e8..75e0f3d78 100644 --- a/src/proc/play/dummy-player-service.hpp +++ b/src/proc/play/dummy-player-service.hpp @@ -1,23 +1,23 @@ /* DUMMY-PLAYER-SERVICE.hpp - service implementing a dummy test player - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file dummy-player-service.hpp diff --git a/src/proc/play/tick-service.hpp b/src/proc/play/tick-service.hpp index a81335913..a67116020 100644 --- a/src/proc/play/tick-service.hpp +++ b/src/proc/play/tick-service.hpp @@ -1,24 +1,24 @@ /* TICK-SERVICE.hpp - issuing timed callbacks - + Copyright (C) Lumiera.org 2009, Joel Holdsworth <joel@airwebreathe.org.uk>, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file tick-service.hpp diff --git a/src/proc/state.cpp b/src/proc/state.cpp index fa9f32dc3..939bd6721 100644 --- a/src/proc/state.cpp +++ b/src/proc/state.cpp @@ -1,23 +1,23 @@ /* State - Key Interface representing a render process and encapsulating state - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/src/proc/state.hpp b/src/proc/state.hpp index a37e85933..ca0a6a44c 100644 --- a/src/proc/state.hpp +++ b/src/proc/state.hpp @@ -1,23 +1,23 @@ /* STATE.hpp - Key Interface representing a render process and encapsulating state - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/src/tool/luidgen.c b/src/tool/luidgen.c index 84ed75588..7452288a8 100644 --- a/src/tool/luidgen.c +++ b/src/tool/luidgen.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/tests/15time.tests b/tests/15time.tests new file mode 100644 index 000000000..0cb57ddcc --- /dev/null +++ b/tests/15time.tests @@ -0,0 +1,6 @@ +TESTING "Time conversion" ./test-time + +TEST "basic functionality" basic <<END +err: ECHO: .*: 00:00:00.000 +err: ECHO: .*: 03:55:20.700 +END diff --git a/tests/44builder.tests b/tests/44builder.tests index 6424f453f..c5d20d870 100644 --- a/tests/44builder.tests +++ b/tests/44builder.tests @@ -15,7 +15,22 @@ PLANNED "BuildSegment_test" BuildSegment_test <<END END +PLANNED "detecting Fixture changes" FixtureChangeDetector_test <<END +return: 0 +END + + +TEST "ModelPort registry" ModelPortRegistry_test <<END +return: 0 +END + + TEST "Output pipe mapping" OutputMapping_test <<END return: 0 END + +PLANNED "Segmentation datastructure" SegmentationDatastructure_test <<END +return: 0 +END + diff --git a/tests/Makefile.am b/tests/Makefile.am index f42027dd4..2f15f797f 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -49,6 +49,11 @@ test_safeclib_SOURCES = $(tests_srcdir)/library/test-safeclib.c test_safeclib_CPPFLAGS = $(AM_CPPFLAGS) -std=gnu99 -Wall -Werror test_safeclib_LDADD = $(LUMIERA_LIBS) liblumiera.la +check_PROGRAMS += test-time +test_time_SOURCES = $(tests_srcdir)/library/test-time.c +test_time_CPPFLAGS = $(AM_CPPFLAGS) -std=gnu99 -Wall -Werror +test_time_LDADD = $(LUMIERA_LIBS) liblumiera.la + check_PROGRAMS += test-luid test_luid_SOURCES = $(tests_srcdir)/library/test-luid.c test_luid_CPPFLAGS = $(AM_CPPFLAGS) -std=gnu99 -Wall -Werror diff --git a/tests/backend/test-filedescriptors.c b/tests/backend/test-filedescriptors.c index ecd717e9b..b10f5845e 100644 --- a/tests/backend/test-filedescriptors.c +++ b/tests/backend/test-filedescriptors.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/tests/backend/test-filehandles.c b/tests/backend/test-filehandles.c index 351a07e4b..7e13c8c7f 100644 --- a/tests/backend/test-filehandles.c +++ b/tests/backend/test-filehandles.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -38,7 +38,7 @@ TEST ("basic") int fd = lumiera_file_handle_acquire (file); /* we now 'own'it and can use it */ - ENSURE (fd > -1); + CHECK (fd > -1); printf ("got filehandle #%d\n", fd); /* put it into aging, can't use anymore */ @@ -67,7 +67,7 @@ TEST ("more") for (int i=0; i<100; ++i) { fds[i] = lumiera_file_handle_acquire (files[i]); - ENSURE (fds[i] > -1); + CHECK (fds[i] > -1); printf ("got filehandle #%d\n", fds[i]); } diff --git a/tests/backend/test-fileheader.c b/tests/backend/test-fileheader.c index 5b206c7da..b19ba5204 100644 --- a/tests/backend/test-fileheader.c +++ b/tests/backend/test-fileheader.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -56,7 +56,7 @@ TEST (create_nowrite) { lumiera_backend_init (); LumieraFile file = lumiera_file_new (",tmp-fileheader", LUMIERA_FILE_READONLY); - REQUIRE(file); + CHECK(file); LUMIERA_FILE_RDLOCK_SECTION (NOBUG_ON, file) { diff --git a/tests/backend/test-filemmap.c b/tests/backend/test-filemmap.c index c93e2543c..bd1b4ce7a 100644 --- a/tests/backend/test-filemmap.c +++ b/tests/backend/test-filemmap.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -159,7 +159,7 @@ TEST (mmap_simple) /* check that the file got truncated to the desired size */ struct stat st; stat (",tmp-filemmap", &st); - ENSURE (st.st_size == 100); + CHECK (st.st_size == 100); lumiera_backend_destroy (); lumiera_config_destroy (); @@ -179,7 +179,7 @@ TEST (mmap_checkout_twice) LumieraMMap map2 = lumiera_mmapings_mmap_acquire (mmaps, file, 0, 100); - ENSURE (map->address == map2->address); + CHECK (map->address == map2->address); lumiera_mmapings_release_mmap (mmaps, map); @@ -190,7 +190,7 @@ TEST (mmap_checkout_twice) /* check that the file got truncated to the desired size */ struct stat st; stat (",tmp-filemmap", &st); - ENSURE (st.st_size == 100); + CHECK (st.st_size == 100); lumiera_backend_destroy (); lumiera_config_destroy (); @@ -217,7 +217,7 @@ TEST (mmap_checkout_again) /* check that the file got truncated to the desired size */ struct stat st; stat (",tmp-filemmap", &st); - ENSURE (st.st_size == 100); + CHECK (st.st_size == 100); lumiera_backend_destroy (); lumiera_config_destroy (); @@ -242,7 +242,7 @@ TEST (mmap_grow_existing_file) /* check that the file got truncated to the desired size */ struct stat st; stat (",tmp-filemmap", &st); - ENSURE (st.st_size == 100); + CHECK (st.st_size == 100); lumiera_backend_destroy (); lumiera_config_destroy (); @@ -266,7 +266,7 @@ TEST (mmap_readonly_file) /* check that the file got truncated to the desired size */ struct stat st; stat (",tmp-filemmap", &st); - ENSURE (st.st_size == 100); + CHECK (st.st_size == 100); lumiera_backend_destroy (); lumiera_config_destroy (); diff --git a/tests/backend/test-resourcecollector.c b/tests/backend/test-resourcecollector.c index f0d0f5dda..6629ea2f8 100644 --- a/tests/backend/test-resourcecollector.c +++ b/tests/backend/test-resourcecollector.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -57,7 +57,7 @@ TEST (basic) TEST (memory_collection_mockup) { - REQUIRE (argv[2]); + CHECK (argv[2]); lumiera_resourcecollector_init (); lumiera_resourcecollector_register_handler (LUMIERA_RESOURCE_MEMORY, test_memory_handler, NULL); diff --git a/tests/backend/test-threadpool.c b/tests/backend/test-threadpool.c index 8173361de..ed3204a9b 100644 --- a/tests/backend/test-threadpool.c +++ b/tests/backend/test-threadpool.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/tests/backend/test-threads.c b/tests/backend/test-threads.c index 73108ab6e..a3b3697a3 100644 --- a/tests/backend/test-threads.c +++ b/tests/backend/test-threads.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/tests/bugs/bugmain.c b/tests/bugs/bugmain.c index 7823b279e..f932a0321 100644 --- a/tests/bugs/bugmain.c +++ b/tests/bugs/bugmain.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/tests/common/ref-array-test.cpp b/tests/common/ref-array-test.cpp index 92e799069..b0127167f 100644 --- a/tests/common/ref-array-test.cpp +++ b/tests/common/ref-array-test.cpp @@ -1,23 +1,23 @@ /* RefArray(Test) - unittest for wrapping with array-of-refs access - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -129,12 +129,12 @@ namespace test{ RefArray<I> & rArr (subWrap); - ASSERT (subWrap.size()==subz.size()); - ASSERT (INSTANCEOF(I, &rArr[0])); + CHECK (subWrap.size()==subz.size()); + CHECK (INSTANCEOF(I, &rArr[0])); for (size_t i=0; i<rArr.size(); ++i) { - ASSERT (&rArr[i] == &subz[i]); - ASSERT (rArr[i].op(i) == subz[i].op(i)); + CHECK (&rArr[i] == &subz[i]); + CHECK (rArr[i].op(i) == subz[i].op(i)); } } @@ -146,12 +146,12 @@ namespace test{ vector<Sub2> & vect (subz); RefArray<I> & rArr (subz); - ASSERT (vect.size()==subz.size()); - ASSERT (INSTANCEOF(I, &rArr[0])); + CHECK (vect.size()==subz.size()); + CHECK (INSTANCEOF(I, &rArr[0])); for (size_t i=0; i<rArr.size(); ++i) { - ASSERT (&rArr[i] == &vect[i]); - ASSERT (rArr[i].op(i) == vect[i].op(i)); + CHECK (&rArr[i] == &vect[i]); + CHECK (rArr[i].op(i) == vect[i].op(i)); } } @@ -164,17 +164,17 @@ namespace test{ RefArrayTable<I,20,Sub1> tab; // creates 20 Sub1-objects in-place // which are indeed located within the object - ASSERT (sizeof(tab) >= 20 * sizeof(Sub1)); - ASSERT (ADR(tab) < ADR(tab[19]) && ADR(tab[19]) < ADR(tab) + sizeof(tab)); + CHECK (sizeof(tab) >= 20 * sizeof(Sub1)); + CHECK (ADR(tab) < ADR(tab[19]) && ADR(tab[19]) < ADR(tab) + sizeof(tab)); RefArray<I> & rArr (tab); - ASSERT (20 == tab.size()); - ASSERT (INSTANCEOF(I, &rArr[0])); + CHECK (20 == tab.size()); + CHECK (INSTANCEOF(I, &rArr[0])); for (size_t i=0; i<rArr.size(); ++i) { - ASSERT (i*sizeof(Sub1) == ADR(rArr[i]) - ADR(rArr[0]) ); // indeed array-like storage - ASSERT (int(i+1) == rArr[i].op(i)); // check the known result + CHECK (i*sizeof(Sub1) == ADR(rArr[i]) - ADR(rArr[0]) ); // indeed array-like storage + CHECK (int(i+1) == rArr[i].op(i)); // check the known result } } @@ -186,7 +186,7 @@ namespace test{ void operator() (void* place) { - ASSERT (place); + CHECK (place); new(place) SUB (offset_++); // note: varying ctor parameter } }; @@ -198,9 +198,9 @@ namespace test{ Fac<Sub1> theFact; RefArrayTable<I,30,Sub1> tab (theFact); RefArray<I> & rArr (tab); - ASSERT (30 == tab.size()); + CHECK (30 == tab.size()); for (size_t i=0; i<rArr.size(); ++i) - ASSERT (int(i+i) == rArr[i].op(i)); // each one has gotten another offset ctor parameter + CHECK (int(i+i) == rArr[i].op(i)); // each one has gotten another offset ctor parameter } @@ -216,15 +216,15 @@ namespace test{ { Fac<Sub3> factory; RefArrayTable<I,30,Sub3> table (factory); - ASSERT (Sub3::sum == (29+1)*29/2); + CHECK (Sub3::sum == (29+1)*29/2); } - ASSERT (Sub3::sum == 0); + CHECK (Sub3::sum == 0); } catch(long id) { - ASSERT (id == Sub3::trigger); - ASSERT (Sub3::sum == id); + CHECK (id == Sub3::trigger); + CHECK (Sub3::sum == id); // meaning: all objects have been cleaned up, // with the exception of the one hitting the trigger } } diff --git a/tests/common/test-config.c b/tests/common/test-config.c index f90441a8e..e1a72636d 100644 --- a/tests/common/test-config.c +++ b/tests/common/test-config.c @@ -7,8 +7,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -39,12 +39,12 @@ TEST (init) TEST (configitem_simple) { - REQUIRE (argv[2]); + CHECK (argv[2]); LumieraConfigitem item; item = lumiera_configitem_new (argv[2]); - ENSURE (item); + CHECK (item); printf ("line = '%s'\n", item->line); if (item->key) @@ -71,10 +71,10 @@ TEST (lookup) lumiera_config_lookup_insert (&lookup, item); LumieraConfigitem found = lumiera_config_lookup_item_find (&lookup, "foo.bar"); - ENSURE (found == item); + CHECK (found == item); lumiera_config_lookup_remove (&lookup, found); - ENSURE (!lumiera_config_lookup_item_find (&lookup, "foo.bar")); + CHECK (!lumiera_config_lookup_item_find (&lookup, "foo.bar")); lumiera_config_lookup_destroy (&lookup); lumiera_config_destroy (); @@ -83,9 +83,9 @@ TEST (lookup) TEST (change_value) { - REQUIRE (argv[2]); - REQUIRE (argv[3]); - REQUIRE (argv[4]); + CHECK (argv[2]); + CHECK (argv[3]); + CHECK (argv[4]); const char* value; @@ -112,8 +112,8 @@ TEST (change_value) TEST (basic_set_get) { - REQUIRE (argv[2]); - REQUIRE (argv[3]); + CHECK (argv[2]); + CHECK (argv[3]); if (!lumiera_config_set (argv[2], argv[3])) printf ("failure setting first time '%s%s': %s\n", argv[2], argv[3], lumiera_error ()); @@ -135,8 +135,8 @@ TEST (basic_set_get) TEST (number_get) { - REQUIRE (argv[2]); - REQUIRE (argv[3]); + CHECK (argv[2]); + CHECK (argv[3]); long long number = 0; @@ -153,7 +153,7 @@ TEST (number_get) TEST (number_get_nodefault) { - REQUIRE (argv[2]); + CHECK (argv[2]); long long number = 0; @@ -168,8 +168,8 @@ TEST (number_get_nodefault) TEST (number_set) { - REQUIRE (argv[2]); - REQUIRE (argv[3]); + CHECK (argv[2]); + CHECK (argv[3]); signed long long number = atoll (argv[3]); @@ -187,8 +187,8 @@ TEST (number_set) TEST (string_get) { - REQUIRE (argv[2]); - REQUIRE (argv[3]); + CHECK (argv[2]); + CHECK (argv[3]); const char* string; @@ -205,8 +205,8 @@ TEST (string_get) TEST (string_set) { - REQUIRE (argv[2]); - REQUIRE (argv[3]); + CHECK (argv[2]); + CHECK (argv[3]); if (!lumiera_config_string_set (argv[2], &argv[3])) printf ("failed setting string '%s=%s': %s\n", argv[2], argv[3], lumiera_error ()); @@ -223,8 +223,8 @@ TEST (string_set) TEST (word_get) { - REQUIRE (argv[2]); - REQUIRE (argv[3]); + CHECK (argv[2]); + CHECK (argv[3]); const char* word; @@ -241,8 +241,8 @@ TEST (word_get) TEST (word_set) { - REQUIRE (argv[2]); - REQUIRE (argv[3]); + CHECK (argv[2]); + CHECK (argv[3]); if (!lumiera_config_word_set (argv[2], &argv[3])) printf ("failed setting word '%s=%s': %s\n", argv[2], argv[3], lumiera_error ()); @@ -259,7 +259,7 @@ TEST (word_set) TEST (configitem_simple_ctor_dtor) { - REQUIRE (argv[2]); + CHECK (argv[2]); LumieraConfigitem item; @@ -271,7 +271,7 @@ TEST (configitem_simple_ctor_dtor) TEST (configitem_simple_content_check) { - REQUIRE (argv[2]); + CHECK (argv[2]); LumieraConfigitem item; @@ -300,9 +300,9 @@ TEST (configitem_simple_content_check) TEST (wordlist_get_nth) { - REQUIRE (argv[2]); - REQUIRE (argv[3]); - REQUIRE (argv[4]); + CHECK (argv[2]); + CHECK (argv[3]); + CHECK (argv[4]); if (!lumiera_config_wordlist_set (argv[2], &argv[3])) printf ("failed setting word '%s=%s': %s\n", argv[2], argv[3], lumiera_error ()); @@ -317,9 +317,9 @@ TEST (wordlist_get_nth) TEST (wordlist_find) { - REQUIRE (argv[2]); - REQUIRE (argv[3]); - REQUIRE (argv[4]); + CHECK (argv[2]); + CHECK (argv[3]); + CHECK (argv[4]); if (!lumiera_config_wordlist_set (argv[2], &argv[3])) printf ("failed setting word '%s=%s': %s\n", argv[2], argv[3], lumiera_error ()); @@ -334,11 +334,11 @@ TEST (wordlist_find) TEST (wordlist_replace) { - REQUIRE (argv[2]); - REQUIRE (argv[3]); - REQUIRE (argv[4]); - REQUIRE (argv[5]); - REQUIRE (argv[6]); + CHECK (argv[2]); + CHECK (argv[3]); + CHECK (argv[4]); + CHECK (argv[5]); + CHECK (argv[6]); if (!lumiera_config_wordlist_set (argv[2], &argv[3])) printf ("failed setting word '%s=%s': %s\n", argv[2], argv[3], lumiera_error ()); @@ -356,10 +356,10 @@ TEST (wordlist_replace) TEST (wordlist_add) { - REQUIRE (argv[2]); - REQUIRE (argv[3]); - REQUIRE (argv[4]); - REQUIRE (argv[5]); + CHECK (argv[2]); + CHECK (argv[3]); + CHECK (argv[4]); + CHECK (argv[5]); if (!lumiera_config_wordlist_set (argv[2], &argv[3])) printf ("failed setting word '%s=%s': %s\n", argv[2], argv[3], lumiera_error ()); diff --git a/tests/common/test-interfaces.c b/tests/common/test-interfaces.c index 5616369d0..93440a530 100644 --- a/tests/common/test-interfaces.c +++ b/tests/common/test-interfaces.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/tests/components/Makefile.am b/tests/components/Makefile.am index ea5d1fddb..2de68311a 100644 --- a/tests/components/Makefile.am +++ b/tests/components/Makefile.am @@ -73,6 +73,9 @@ test_components_SOURCES = \ $(testcomponents_srcdir)/proc/engine/node-source-test.cpp \ $(testcomponents_srcdir)/proc/mobject/builder/buildertooltest.cpp \ $(testcomponents_srcdir)/proc/mobject/builder/buildsegmenttest.cpp \ + $(testcomponents_srcdir)/proc/mobject/builder/model-port-registry-test.cpp \ + $(testcomponents_srcdir)/proc/mobject/builder/fixture-change-detector-test.cpp \ + $(testcomponents_srcdir)/proc/mobject/builder/segmentation-datastructure-test.cpp\ $(testcomponents_srcdir)/proc/mobject/controller/rendersegmenttest.cpp \ $(testcomponents_srcdir)/proc/mobject/mobject-interface-test.cpp \ $(testcomponents_srcdir)/proc/mobject/mobject-ref-test.cpp \ @@ -82,9 +85,9 @@ test_components_SOURCES = \ $(testcomponents_srcdir)/proc/mobject/placement-object-identity-test.cpp \ $(testcomponents_srcdir)/proc/mobject/placement-ref-test.cpp \ $(testcomponents_srcdir)/proc/mobject/session/addcliptest.cpp \ - $(testcomponents_srcdir)/proc/mobject/session/defsmanagerimpltest.cpp \ - $(testcomponents_srcdir)/proc/mobject/session/defsmanagertest.cpp \ - $(testcomponents_srcdir)/proc/mobject/session/defsregistryimpltest.cpp \ + $(testcomponents_srcdir)/proc/mobject/session/defs-manager-impl-test.cpp \ + $(testcomponents_srcdir)/proc/mobject/session/defs-manager-test.cpp \ + $(testcomponents_srcdir)/proc/mobject/session/defs-registry-impl-test.cpp \ $(testcomponents_srcdir)/proc/mobject/session/deletecliptest.cpp \ $(testcomponents_srcdir)/proc/mobject/session/placement-index-query-test.cpp \ $(testcomponents_srcdir)/proc/mobject/session/placement-index-test.cpp \ diff --git a/tests/components/backend/mediaaccessmock.cpp b/tests/components/backend/mediaaccessmock.cpp index 820b5487a..e15a2213c 100644 --- a/tests/components/backend/mediaaccessmock.cpp +++ b/tests/components/backend/mediaaccessmock.cpp @@ -1,23 +1,23 @@ /* MediaAccessMock.hpp - a test (stub) target object for testing the factories - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/components/backend/mediaaccessmock.hpp b/tests/components/backend/mediaaccessmock.hpp index 4199b29f8..e48733bc1 100644 --- a/tests/components/backend/mediaaccessmock.hpp +++ b/tests/components/backend/mediaaccessmock.hpp @@ -1,23 +1,23 @@ /* MEDIAACCESSMOCK.hpp - a test (stub) target object for testing the factories - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/tests/components/backend/mediaaccessmocktest.cpp b/tests/components/backend/mediaaccessmocktest.cpp index a81f6fe8f..60d770b89 100644 --- a/tests/components/backend/mediaaccessmocktest.cpp +++ b/tests/components/backend/mediaaccessmocktest.cpp @@ -1,23 +1,23 @@ /* MediaAccessMock(Test) - checking our Test Mock replacing the MediaAccessFacade - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/components/proc/asset/asset-category-test.cpp b/tests/components/proc/asset/asset-category-test.cpp index a211cd963..bc0676011 100644 --- a/tests/components/proc/asset/asset-category-test.cpp +++ b/tests/components/proc/asset/asset-category-test.cpp @@ -1,23 +1,23 @@ /* AssetCategory(Test) - verifying Asset category tuple functions - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -82,16 +82,16 @@ namespace test { Category c3 (VIDEO,"bin1/subbin"); Category c4 (EFFECT,"some_kind"); - ASSERT ( c1.hasKind(VIDEO) ); - ASSERT (!c1.hasKind(AUDIO) ); - ASSERT ( c2.isWithin(c1) ); - ASSERT ( c3.isWithin(c2) ); - ASSERT ( c3.isWithin(c1) ); - ASSERT (!c1.isWithin(c2) ); - ASSERT (!c2.isWithin(c3) ); - ASSERT (!c1.isWithin(c3) ); - ASSERT (!c3.isWithin(c4) ); - ASSERT (!c4.isWithin(c3) ); + CHECK ( c1.hasKind(VIDEO) ); + CHECK (!c1.hasKind(AUDIO) ); + CHECK ( c2.isWithin(c1) ); + CHECK ( c3.isWithin(c2) ); + CHECK ( c3.isWithin(c1) ); + CHECK (!c1.isWithin(c2) ); + CHECK (!c2.isWithin(c3) ); + CHECK (!c1.isWithin(c3) ); + CHECK (!c3.isWithin(c4) ); + CHECK (!c4.isWithin(c3) ); } @@ -104,30 +104,30 @@ namespace test { Category c5 (STRUCT); Category c6 (META); - ASSERT (0 > c1.compare(c2)); - ASSERT (0 > c2.compare(c3)); - ASSERT (0 > c3.compare(c4)); - ASSERT (0 > c4.compare(c5)); - ASSERT (0 > c5.compare(c6)); + CHECK (0 > c1.compare(c2)); + CHECK (0 > c2.compare(c3)); + CHECK (0 > c3.compare(c4)); + CHECK (0 > c4.compare(c5)); + CHECK (0 > c5.compare(c6)); - ASSERT (0 ==c1.compare(c1)); - ASSERT (0 > c1.compare(c6)); + CHECK (0 ==c1.compare(c1)); + CHECK (0 > c1.compare(c6)); Category c21 (VIDEO,"bin1"); Category c22 (VIDEO,"bin2"); Category c23 (VIDEO,"bin2/sub"); - ASSERT (0 > c1.compare(c21)); - ASSERT (0 > c2.compare(c21)); - ASSERT (0 < c22.compare(c21)); - ASSERT (0 < c23.compare(c22)); - ASSERT (0 < c23.compare(c21)); - ASSERT ( 0==c22.compare(c22)); + CHECK (0 > c1.compare(c21)); + CHECK (0 > c2.compare(c21)); + CHECK (0 < c22.compare(c21)); + CHECK (0 < c23.compare(c22)); + CHECK (0 < c23.compare(c21)); + CHECK ( 0==c22.compare(c22)); - ASSERT ( c2 == c2 ); - ASSERT ( c2 != c22 ); - ASSERT ( c2 != c3 ); + CHECK ( c2 == c2 ); + CHECK ( c2 != c22 ); + CHECK ( c2 != c3 ); } }; diff --git a/tests/components/proc/asset/asset-diagnostics.hpp b/tests/components/proc/asset/asset-diagnostics.hpp index 856f131b3..08619bbba 100644 --- a/tests/components/proc/asset/asset-diagnostics.hpp +++ b/tests/components/proc/asset/asset-diagnostics.hpp @@ -1,23 +1,23 @@ /* ASSET-DIAGNOSTICS.hpp - collection of test and debug helpers - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ /** @file asset-diagnostics.hpp diff --git a/tests/components/proc/asset/basicpipetest.cpp b/tests/components/proc/asset/basicpipetest.cpp index 70f644ed1..6084dba5e 100644 --- a/tests/components/proc/asset/basicpipetest.cpp +++ b/tests/components/proc/asset/basicpipetest.cpp @@ -1,23 +1,23 @@ /* BasicPipe(Test) - checking the basic properties of Pipe Assets - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -42,13 +42,13 @@ using std::string; using std::cout; -namespace asset - { - namespace test - { +namespace asset { +namespace test { + using mobject::Session; using lumiera::Query; using lumiera::query::normaliseID; + using lumiera::StreamType; @@ -81,25 +81,25 @@ namespace asset { string pID_sane (pID); normaliseID (pID_sane); - ASSERT (pID_sane != pID); + CHECK (pID_sane != pID); PPipe thePipe = asset::Struct::retrieve.newPipe (pID,sID); - ASSERT (thePipe); - ASSERT (thePipe->getProcPatt()); - ASSERT (thePipe->getPipeID() == pID_sane); - ASSERT (thePipe->getStreamID() == sID); - ASSERT (thePipe->shortDesc == pID_sane); + CHECK (thePipe); + CHECK (thePipe->getProcPatt()); + CHECK (thePipe->getPipeID() == pID_sane); + CHECK (thePipe->getStreamID() == StreamType::ID(sID)); + CHECK (thePipe->shortDesc == pID_sane); Asset::Ident idi = thePipe->ident; - ASSERT (idi.org == "lumi"); - ASSERT (contains (idi.name, thePipe->getPipeID())); - ASSERT (contains (idi.name, thePipe->getStreamID())); + CHECK (idi.org == "lumi"); + CHECK (contains (idi.name, thePipe->getPipeID())); + CHECK (contains (idi.name, thePipe->getStreamID())); Category cat (idi.category); Category refcat (STRUCT,"pipes"); - ASSERT ( cat.hasKind(STRUCT) ); - ASSERT ( cat.isWithin(refcat) ); + CHECK ( cat.hasKind(STRUCT) ); + CHECK ( cat.isWithin(refcat) ); } @@ -108,20 +108,20 @@ namespace asset normaliseID (pID); PPipe pipe1 = Pipe::query ("pipe("+pID+")"); - ASSERT (pipe1); - ASSERT (pipe1->getPipeID() == pID); + CHECK (pipe1); + CHECK (pipe1->getPipeID() == pID); string pID2 = "another-" + pID; PPipe pipe2 = Pipe::query ("pipe("+pID2+")"); - ASSERT (pipe2); - ASSERT (pipe2 != pipe1); + CHECK (pipe2); + CHECK (pipe2 != pipe1); Category c1 = pipe1->ident.category; Category c2 = pipe2->ident.category; - ASSERT (c1 == c2); + CHECK (c1 == c2); PPipe pipe3 = Pipe::query ("pipe("+pID2+")"); //////////////////////////////////////////////////////////////TODO: that's broken; creating a new one instead to find the existing one, as it should be - ASSERT (pipe3 == pipe2); + CHECK (pipe3 == pipe2); } @@ -129,26 +129,26 @@ namespace asset { PPipe pipe1 = Pipe::query (""); // "the default pipe" PPipe pipe2; - ASSERT (pipe1); - ASSERT (pipe1 == Session::current->defaults (Query<Pipe>())); - ASSERT (pipe1->ident.category.hasKind(VIDEO)); - ASSERT (pipe1->getProcPatt()); + CHECK (pipe1); + CHECK (pipe1 == Session::current->defaults (Query<Pipe>())); + CHECK (pipe1->ident.category.hasKind(VIDEO)); + CHECK (pipe1->getProcPatt()); PProcPatt propa = Session::current->defaults (Query<const ProcPatt>("pipe(default)")); - ASSERT (propa == pipe1->getProcPatt()); + CHECK (propa == pipe1->getProcPatt()); // several variants to query for "the default pipe" pipe2 = Session::current->defaults(Query<Pipe> ()); - ASSERT (pipe2 == pipe1); + CHECK (pipe2 == pipe1); pipe2 = asset::Struct::retrieve (Query<Pipe> ()); - ASSERT (pipe2 == pipe1); + CHECK (pipe2 == pipe1); pipe2 = asset::Struct::retrieve (Query<Pipe> ("pipe(default)")); - ASSERT (pipe2 == pipe1); + CHECK (pipe2 == pipe1); string sID = pipe1->getStreamID(); // sort of a "default stream type" PPipe pipe3 = Pipe::query ("stream("+sID+")"); - ASSERT (pipe3); - ASSERT (pipe3->getStreamID() == sID); - ASSERT (pipe3->getProcPatt() == Session::current->defaults (Query<const ProcPatt>("stream("+sID+")"))); + CHECK (pipe3); + CHECK (pipe3->getStreamID() == StreamType::ID(sID)); + CHECK (pipe3->getProcPatt() == Session::current->defaults (Query<const ProcPatt>("stream("+sID+")"))); } @@ -158,46 +158,46 @@ namespace asset typedef P<const ProcPatt> PProcPatt; PPipe thePipe = Pipe::query ("pipe("+pID+")"); - ASSERT (thePipe); + CHECK (thePipe); PProcPatt thePatt = thePipe->getProcPatt(); - ASSERT (thePatt); - ASSERT (dependencyCheck (thePipe, thePatt)); + CHECK (thePatt); + CHECK (dependencyCheck (thePipe, thePatt)); PProcPatt pattern2 = thePatt->newCopy("another"); - ASSERT (thePatt != pattern2); - ASSERT (!dependencyCheck (thePipe, pattern2)); + CHECK (thePatt != pattern2); + CHECK (!dependencyCheck (thePipe, pattern2)); TODO ("add something to the new pattern, e.g. an effect"); // now querying for a pipe using this pattern (created on-the-fly) // note: because the pattern is new, this new pipe will be used as // default pipe for this pattern automatically PPipe pipe2x = Pipe::query ("pattern(another)"); - ASSERT (pattern2 == pipe2x->getProcPatt()); - ASSERT (pipe2x == Session::current->defaults (Query<Pipe>("pattern(another)"))); + CHECK (pattern2 == pipe2x->getProcPatt()); + CHECK (pipe2x == Session::current->defaults (Query<Pipe>("pattern(another)"))); thePipe->switchProcPatt(pattern2); - ASSERT ( dependencyCheck (thePipe, pattern2)); - ASSERT (!dependencyCheck (thePipe, thePatt)); + CHECK ( dependencyCheck (thePipe, pattern2)); + CHECK (!dependencyCheck (thePipe, thePatt)); AssetManager& aMang = AssetManager::instance(); - ASSERT ( aMang.known (thePipe->getID())); - ASSERT ( aMang.known (thePatt->getID())); - ASSERT ( aMang.known (pattern2->getID())); + CHECK ( aMang.known (thePipe->getID())); + CHECK ( aMang.known (thePatt->getID())); + CHECK ( aMang.known (pattern2->getID())); aMang.remove (pattern2->getID()); - ASSERT ( aMang.known (thePatt->getID())); - ASSERT (!aMang.known (pattern2->getID())); - ASSERT (!aMang.known (thePipe->getID())); // has been unlinked too, because dependant on pattern2 + CHECK ( aMang.known (thePatt->getID())); + CHECK (!aMang.known (pattern2->getID())); + CHECK (!aMang.known (thePipe->getID())); // has been unlinked too, because dependant on pattern2 - ASSERT (thePipe); + CHECK (thePipe); PProcPatt pattern3 = thePipe->getProcPatt(); /////TODO: transition to P<> - ASSERT (thePipe->getProcPatt()); - ASSERT ( pattern3 == pattern2); // but is still valid, as long as the ref is alive.... + CHECK (thePipe->getProcPatt()); + CHECK ( pattern3 == pattern2); // but is still valid, as long as the ref is alive.... PPipe pipe3x = Pipe::query ("pattern(another)"); pattern3 = pipe3x->getProcPatt(); /////TODO: transition to P<> - ASSERT (pattern3 != pattern2); // because pattern2 is already unlinked... - ASSERT (pipe3x == Session::current->defaults (Query<Pipe>("pattern(another)"))); - ASSERT (pipe3x != pipe2x); // ..we got a new default pipe for "pattern(another)" too! + CHECK (pattern3 != pattern2); // because pattern2 is already unlinked... + CHECK (pipe3x == Session::current->defaults (Query<Pipe>("pattern(another)"))); + CHECK (pipe3x != pipe2x); // ..we got a new default pipe for "pattern(another)" too! TRACE (asset_mem, "leaving BasicPipe_test::dependProcPatt()"); diff --git a/tests/components/proc/asset/compoundmediatest.cpp b/tests/components/proc/asset/compoundmediatest.cpp index d3a2324f8..f7bf248d0 100644 --- a/tests/components/proc/asset/compoundmediatest.cpp +++ b/tests/components/proc/asset/compoundmediatest.cpp @@ -1,23 +1,23 @@ /* CompoundMedia(Test) - handling multichannel Media Assets - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/components/proc/asset/create-asset-test.cpp b/tests/components/proc/asset/create-asset-test.cpp index cec6d97ef..716155f7d 100644 --- a/tests/components/proc/asset/create-asset-test.cpp +++ b/tests/components/proc/asset/create-asset-test.cpp @@ -1,23 +1,23 @@ /* CreateAsset(Test) - constructing and registering Assets - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -37,168 +37,168 @@ using std::string; namespace asset { namespace test { - - - - + + + + /*********************************************************************** * @test creating new Assets and registering them with the AssetManager. * @see proc_interface::AssetManager#reg */ class CreateAsset_test : public Test { - virtual void run(Arg arg) + virtual void run(Arg arg) { createMedia(); factoryVariants(); - + if (!isnil (arg)) dumpAssetManager(); TRACE (asset_mem, "leaving CreateAsset_test::run()"); } - - + + ////////////////////////////////////TICKET #589 typedef P<Media> PM; /////TODO: transition to P<> - + /** @test Creating and automatically registering Asset instances. * Re-Retrieving the newly created objects from AssetManager. - * Checking AssetManager access functions, esp. getting + * Checking AssetManager access functions, esp. getting * different kinds of Assets by ID, querying with the - * wrong Category and querying unknown IDs. + * wrong Category and querying unknown IDs. */ void createMedia() - { + { Category cat(VIDEO,"bin1"); Asset::Ident key("Name-1", cat, "ichthyo", 5); PM mm1 = asset::Media::create(key,"testfile.mov"); PM mm2 = asset::Media::create("testfile1.mov", cat); PM mm3 = asset::Media::create("testfile2.mov", VIDEO); - + // Assets have been registered and can be retrieved by ID AssetManager& aMang = AssetManager::instance(); PM registered; /////TODO: transition to P<> registered = aMang.getAsset (mm1->getID()); - ASSERT (registered == mm1); + CHECK (registered == mm1); registered = aMang.getAsset (mm2->getID()); - ASSERT (registered == mm2); + CHECK (registered == mm2); registered = aMang.getAsset (mm3->getID()); - ASSERT (registered == mm3); - + CHECK (registered == mm3); + registered = aMang.getAsset (mm1->getID()); - ASSERT (registered != mm2); -/* + CHECK (registered != mm2); +/* * TODO: switch back to original version * once the transition to P<XX> is done... -* - ASSERT (aMang.getAsset (mm1->getID()) == mm1); - ASSERT (aMang.getAsset (mm2->getID()) == mm2); - ASSERT (aMang.getAsset (mm3->getID()) == mm3); - - ASSERT (aMang.getAsset (mm1->getID()) != mm2); -*/ +* + CHECK (aMang.getAsset (mm1->getID()) == mm1); + CHECK (aMang.getAsset (mm2->getID()) == mm2); + CHECK (aMang.getAsset (mm3->getID()) == mm3); + + CHECK (aMang.getAsset (mm1->getID()) != mm2); +*/ PAsset aa1 = aMang.getAsset (ID<Asset>(mm1->getID())); // note we get an Asset ref - ASSERT (aa1 == mm1); + CHECK (aa1 == mm1); PM mX1 = aMang.getAsset (mm1->getID()); // ..and now we get a Media ref - ASSERT (mX1 == mm1); - ASSERT (mX1 == aa1); - - ASSERT (aMang.known (mm1->getID())); - ASSERT (aMang.known (mm2->getID())); - ASSERT (aMang.known (mm3->getID())); - - ASSERT ( !aMang.known (mm3->getID(), Category(AUDIO))); // not found within AUDIO-Category - try - { // can't be found if specifying wrong Asset kind.... + CHECK (mX1 == mm1); + CHECK (mX1 == aa1); + + CHECK (aMang.known (mm1->getID())); + CHECK (aMang.known (mm2->getID())); + CHECK (aMang.known (mm3->getID())); + + CHECK ( !aMang.known (mm3->getID(), Category(AUDIO))); // not found within AUDIO-Category + try + { // can't be found if specifying wrong Asset kind.... aMang.getAsset (ID<asset::Proc>(mm1->getID())); NOTREACHED(); } - catch (lumiera::error::Invalid& xxx) {ASSERT (xxx.getID()==LUMIERA_ERROR_WRONG_ASSET_KIND);} - try - { // try accessing nonexistent ID + catch (lumiera::error::Invalid& xxx) {CHECK (xxx.getID()==LUMIERA_ERROR_WRONG_ASSET_KIND);} + try + { // try accessing nonexistent ID aMang.getAsset (ID<Asset> (1234567890)); NOTREACHED(); } - catch (lumiera::error::Invalid& xxx) {ASSERT (xxx.getID()==LUMIERA_ERROR_UNKNOWN_ASSET_ID);} + catch (lumiera::error::Invalid& xxx) {CHECK (xxx.getID()==LUMIERA_ERROR_UNKNOWN_ASSET_ID);} lumiera_error (); // reset errorflag - - + + // checking the Ident-Fields - ASSERT (mm1->ident.name == "Name-1"); - ASSERT (mm2->ident.name == "testfile1"); - ASSERT (mm3->ident.name == "testfile2"); - - ASSERT (cat == Category (VIDEO,"bin1")); - ASSERT (mm1->ident.category == Category (VIDEO,"bin1")); - ASSERT (mm2->ident.category == Category (VIDEO,"bin1")); - ASSERT (mm3->ident.category == Category (VIDEO )); - - ASSERT (mm1->ident.org == "ichthyo"); - ASSERT (mm2->ident.org == "lumi"); - ASSERT (mm3->ident.org == "lumi"); - - ASSERT (mm1->ident.version == 5); - ASSERT (mm2->ident.version == 1); - ASSERT (mm3->ident.version == 1); - - ASSERT (mm1->getFilename() == "testfile.mov"); - ASSERT (mm2->getFilename() == "testfile1.mov"); - ASSERT (mm3->getFilename() == "testfile2.mov"); - - + CHECK (mm1->ident.name == "Name-1"); + CHECK (mm2->ident.name == "testfile1"); + CHECK (mm3->ident.name == "testfile2"); + + CHECK (cat == Category (VIDEO,"bin1")); + CHECK (mm1->ident.category == Category (VIDEO,"bin1")); + CHECK (mm2->ident.category == Category (VIDEO,"bin1")); + CHECK (mm3->ident.category == Category (VIDEO )); + + CHECK (mm1->ident.org == "ichthyo"); + CHECK (mm2->ident.org == "lumi"); + CHECK (mm3->ident.org == "lumi"); + + CHECK (mm1->ident.version == 5); + CHECK (mm2->ident.version == 1); + CHECK (mm3->ident.version == 1); + + CHECK (mm1->getFilename() == "testfile.mov"); + CHECK (mm2->getFilename() == "testfile1.mov"); + CHECK (mm3->getFilename() == "testfile2.mov"); + + TRACE (asset_mem, "leaving test method scope"); } - - + + /** @test different variants of calling the MediaFactory, - * with focus on the behaviour of the basic Asset - * creation machinery. Covers filling out Asset's + * with focus on the behaviour of the basic Asset + * creation machinery. Covers filling out Asset's * datafields, amending missing pieces of information. */ void factoryVariants() - { + { PM candi; - + Asset::Ident key1("Au-1", Category(AUDIO), "ichthyo", 5); candi = asset::Media::create(key1); - ASSERT ( checkProperties (candi, key1, "")); - + CHECK ( checkProperties (candi, key1, "")); + candi = asset::Media::create(key1, string("testfile.wav")); - ASSERT ( checkProperties (candi, key1, "testfile.wav")); - + CHECK ( checkProperties (candi, key1, "testfile.wav")); + Asset::Ident key2("", Category(AUDIO), "ichthyo", 5); candi = asset::Media::create(key2, string("testfile2.wav")); - ASSERT ( checkProperties (candi, key2, "testfile2.wav")); - ASSERT (key2.name == "testfile2"); // name filled in automatically - + CHECK ( checkProperties (candi, key2, "testfile2.wav")); + CHECK (key2.name == "testfile2"); // name filled in automatically + candi = asset::Media::create(string("testfile3.wav"), Category(AUDIO)); - ASSERT ( checkProperties (candi, Asset::Ident("testfile3", Category(AUDIO), "lumi", 1) + CHECK ( checkProperties (candi, Asset::Ident("testfile3", Category(AUDIO), "lumi", 1) , "testfile3.wav")); - + candi = asset::Media::create("some/path/testfile4.wav", Category(AUDIO)); - ASSERT ( checkProperties (candi, Asset::Ident("testfile4", Category(AUDIO), "lumi", 1) + CHECK ( checkProperties (candi, Asset::Ident("testfile4", Category(AUDIO), "lumi", 1) , "some/path/testfile4.wav")); - + candi = asset::Media::create("", Category(AUDIO,"sub/bin")); - ASSERT ( checkProperties (candi, Asset::Ident("nil", Category(AUDIO,"sub/bin"), "lumi", 1) + CHECK ( checkProperties (candi, Asset::Ident("nil", Category(AUDIO,"sub/bin"), "lumi", 1) , "")); - + candi = asset::Media::create("", AUDIO); - ASSERT ( checkProperties (candi, Asset::Ident("nil", Category(AUDIO), "lumi", 1) + CHECK ( checkProperties (candi, Asset::Ident("nil", Category(AUDIO), "lumi", 1) , "")); } - + bool checkProperties (PM object, Asset::Ident identity, string filename) { - return identity == object->ident + return identity == object->ident && filename == object->getFilename(); } }; - - + + /** Register this test class... */ LAUNCHER (CreateAsset_test, "unit asset"); - - - + + + }} // namespace asset::test diff --git a/tests/components/proc/asset/deleteassettest.cpp b/tests/components/proc/asset/deleteassettest.cpp index d8c79f761..b47a93755 100644 --- a/tests/components/proc/asset/deleteassettest.cpp +++ b/tests/components/proc/asset/deleteassettest.cpp @@ -1,23 +1,23 @@ /* DeleteAsset(Test) - deleting and Asset with all dependencies - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/components/proc/asset/dependent-assets-test.cpp b/tests/components/proc/asset/dependent-assets-test.cpp index e2234602d..65783b20c 100644 --- a/tests/components/proc/asset/dependent-assets-test.cpp +++ b/tests/components/proc/asset/dependent-assets-test.cpp @@ -1,23 +1,23 @@ /* DependentAssets(Test) - check the asset dependency handling - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -35,10 +35,10 @@ using util::isnil; namespace asset{ namespace test { - - - - + + + + /******************************************************************* * @test the handling of Assets dependent on other Assets and the * enabling/disabling of Assets. @@ -47,142 +47,142 @@ namespace test { */ class DependentAssets_test : public Test { - virtual void run (Arg) + virtual void run (Arg) { checkDependencyMechanics (); checkUnlinking (); checkEnablementPropagation (); checkRealAssetDependencyRegistration (); } - + typedef TestAsset<Asset> TA; typedef TA::PA PTestA; - - + + /** @test check operation of basic asset dependency support */ void checkDependencyMechanics () { PAsset a1 = TA::create(); - ASSERT (isnil (a1->getParents())); - ASSERT (isnil (a1->getDependant())); - + CHECK (isnil (a1->getParents())); + CHECK (isnil (a1->getDependant())); + PTestA a2 = TA::create(a1); - ASSERT (a1 == a2->getParents()[0]); // TestAsset registered a1 as parent - ASSERT (a2 == a1->getDependant()[0]); - + CHECK (a1 == a2->getParents()[0]); // TestAsset registered a1 as parent + CHECK (a2 == a1->getDependant()[0]); + PAsset a3 = TA::create(); a2->set_depend(a3); - ASSERT (a3 == a2->getParents()[1]); - ASSERT (a2 == a3->getDependant()[0]); - ASSERT (!contains (a1->getDependant(), a3)); + CHECK (a3 == a2->getParents()[1]); + CHECK (a2 == a3->getDependant()[0]); + CHECK (!contains (a1->getDependant(), a3)); } - - + + /** @test unlink operation removing inter asset links */ void checkUnlinking () { PTestA a1_ = TA::create(); PAsset a1 (a1_); - PTestA a2_ = TA::create(a1); - PAsset a2 (a2_); - PAsset a3 = TA::create(a2); - ASSERT (a1 == a2->getParents()[0]); - ASSERT (a2 == a1->getDependant()[0]); - ASSERT (a2 == a3->getParents()[0]); - ASSERT (a3 == a2->getDependant()[0]); - + PTestA a2_ = TA::create(a1); + PAsset a2 (a2_); + PAsset a3 = TA::create(a2); + CHECK (a1 == a2->getParents()[0]); + CHECK (a2 == a1->getDependant()[0]); + CHECK (a2 == a3->getParents()[0]); + CHECK (a3 == a2->getDependant()[0]); + a2_->call_unlink(); - ASSERT (isnil (a2->getDependant())); - ASSERT (!contains (a1->getDependant(), a2)); // has been propagated up - ASSERT (!isnil (a2->getParents())); - ASSERT (contains (a3->getParents(), a2)); // but up-links remain intact - + CHECK (isnil (a2->getDependant())); + CHECK (!contains (a1->getDependant(), a2)); // has been propagated up + CHECK (!isnil (a2->getParents())); + CHECK (contains (a3->getParents(), a2)); // but up-links remain intact + a2_->call_unlink(a1->getID()); a2_->set_depend(a1); PAsset a4 = TA::create(a1); - ASSERT (a1 == a2->getParents()[0]); - ASSERT (a1 == a4->getParents()[0]); - ASSERT (a2 == a1->getDependant()[0]); - ASSERT (a4 == a1->getDependant()[1]); - + CHECK (a1 == a2->getParents()[0]); + CHECK (a1 == a4->getParents()[0]); + CHECK (a2 == a1->getDependant()[0]); + CHECK (a4 == a1->getDependant()[1]); + a1_->call_unlink(a4->getID()); - ASSERT (!contains (a1->getDependant(), a4)); // selectively removed - ASSERT ( contains (a1->getDependant(), a2)); - ASSERT (a1 == a4->getParents()[0]); // no propagation + CHECK (!contains (a1->getDependant(), a4)); // selectively removed + CHECK ( contains (a1->getDependant(), a2)); + CHECK (a1 == a4->getParents()[0]); // no propagation } - - - /** @test enabling and disabling an asset should + + + /** @test enabling and disabling an asset should * propagate to dependant assets */ void checkEnablementPropagation () { PAsset a1 = TA::create(); - PTestA a2_= TA::create(a1); + PTestA a2_= TA::create(a1); PAsset a2 (a2_); PAsset a3 = TA::create(); // not dependant - - ASSERT (a1->isActive()); - ASSERT (a2->isActive()); - ASSERT (a3->isActive()); - + + CHECK (a1->isActive()); + CHECK (a2->isActive()); + CHECK (a3->isActive()); + a1->enable(false); - ASSERT (!a1->isActive()); - ASSERT (!a2->isActive()); - ASSERT (a3->isActive()); - + CHECK (!a1->isActive()); + CHECK (!a2->isActive()); + CHECK (a3->isActive()); + a2->enable(true); - ASSERT (!a1->isActive()); - ASSERT (!a2->isActive()); // ignored because parent is disabled - + CHECK (!a1->isActive()); + CHECK (!a2->isActive()); // ignored because parent is disabled + a1->enable(true); - ASSERT (a1->isActive()); - ASSERT (a2->isActive()); - + CHECK (a1->isActive()); + CHECK (a2->isActive()); + a2->enable(false); - ASSERT (a1->isActive()); - ASSERT (!a2->isActive()); // disabling not propagated to parent + CHECK (a1->isActive()); + CHECK (!a2->isActive()); // disabling not propagated to parent a2->enable(true); - ASSERT (a1->isActive()); - ASSERT (a2->isActive()); - + CHECK (a1->isActive()); + CHECK (a2->isActive()); + a3->enable(false); - ASSERT (a1->isActive()); - ASSERT (a2->isActive()); - ASSERT (!a3->isActive()); // no dependency... - + CHECK (a1->isActive()); + CHECK (a2->isActive()); + CHECK (!a3->isActive()); // no dependency... + a1->enable(false); a3->enable(); - ASSERT (!a1->isActive()); - ASSERT (!a2->isActive()); - ASSERT (a3->isActive()); - + CHECK (!a1->isActive()); + CHECK (!a2->isActive()); + CHECK (a3->isActive()); + a1->enable(); a2_->set_depend(a3); // now add a new parent dependency a3->enable(false); - ASSERT (a1->isActive()); - ASSERT (!a2->isActive()); // has been propagated via the new dependency - ASSERT (!a3->isActive()); - + CHECK (a1->isActive()); + CHECK (!a2->isActive()); // has been propagated via the new dependency + CHECK (!a3->isActive()); + a2->enable(true); - ASSERT (a1->isActive()); // no change because one of the parents is disbled - ASSERT (!a2->isActive()); - ASSERT (!a3->isActive()); + CHECK (a1->isActive()); // no change because one of the parents is disbled + CHECK (!a2->isActive()); + CHECK (!a3->isActive()); a1->enable(false); - ASSERT (!a1->isActive()); + CHECK (!a1->isActive()); a3->enable(true); - ASSERT (!a1->isActive()); // no propagation because the disabled other parent (a1) - ASSERT (!a2->isActive()); - ASSERT (a3->isActive()); + CHECK (!a1->isActive()); // no propagation because the disabled other parent (a1) + CHECK (!a2->isActive()); + CHECK (a3->isActive()); a1->enable(true); - ASSERT (a1->isActive()); // but now propagation is possible - ASSERT (a2->isActive()); - ASSERT (a3->isActive()); + CHECK (a1->isActive()); // but now propagation is possible + CHECK (a2->isActive()); + CHECK (a3->isActive()); } - - + + /** @test each real world asset subclass has to care * for registering and deregistering any additional * dependencies. Here we collect some more prominent @@ -196,16 +196,16 @@ namespace test { typedef P<Clip> PC; PM mm = asset::Media::create("test-1", VIDEO); PC cc = mm->createClip()->findClipAsset(); - ASSERT (dependencyCheck (cc,mm)); - + CHECK (dependencyCheck (cc,mm)); + } - + }; - - + + /** Register this test class... */ LAUNCHER (DependentAssets_test, "unit function asset"); - - - + + + }} // namespace asset::test diff --git a/tests/components/proc/asset/entry-id-test.cpp b/tests/components/proc/asset/entry-id-test.cpp index 4c266f30e..c25e9f82c 100644 --- a/tests/components/proc/asset/entry-id-test.cpp +++ b/tests/components/proc/asset/entry-id-test.cpp @@ -1,23 +1,23 @@ /* EntryID(Test) - proof-of-concept test for a combined hash+symbolic ID - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/components/proc/asset/identityofassetstest.cpp b/tests/components/proc/asset/identityofassetstest.cpp index d2fb11911..6f13cb7fc 100644 --- a/tests/components/proc/asset/identityofassetstest.cpp +++ b/tests/components/proc/asset/identityofassetstest.cpp @@ -1,23 +1,23 @@ /* IdentityOfAssets(Test) - Asset object identity and versioning - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -35,74 +35,70 @@ using util::isnil; using std::string; -namespace asset - { - namespace test +namespace asset { +namespace test { + + + + + /*********************************************************************** + * @test creating several Assets and checking object identity, + * detection of duplicates and version handling. + * @see proc_interface::AssetManager#reg + */ + class IdentityOfAssets_test : public Test { - - - - - /*********************************************************************** - * @test creating several Assets and checking object identity, - * detection of duplicates and version handling. - * @see proc_interface::AssetManager#reg - */ - class IdentityOfAssets_test : public Test - { - virtual void run(Arg arg) - { - createDuplicate(); - - if (!isnil (arg)) - dumpAssetManager(); - TRACE (asset_mem, "leaving IdentityOfAssets_test::run()"); - } - - - - typedef shared_ptr<asset::Media> PM; - - /** @test produce an ID clash. - * documents the current behaviour of the code as of 9/07 - * @todo this test is expected to break when the detection - * of duplicate registrations is implemented. - */ - void createDuplicate() - { - PM mm1 = asset::Media::create ("testfile1.mov", VIDEO); - - Asset::Ident idi (mm1->ident); // duplicate Ident record - PM mm1X = asset::Media::create (idi); // note: we actually don't call any ctor - ASSERT (mm1 == mm1X); // instead, we got mm1 back. - - PM mm2 = asset::Media::create (idi,"testfile2.mov"); - - ASSERT (mm1->getID() == mm2->getID()); // different object, same hash - - AssetManager& aMang = AssetManager::instance(); - ASSERT (aMang.getAsset (mm1->getID()) == mm2); // record of mm1 was replaced by mm2 - ASSERT (aMang.getAsset (mm2->getID()) == mm2); - - ASSERT (aMang.known (mm1->getID())); - ASSERT (aMang.known (mm2->getID())); - ASSERT (mm1->ident.name == "testfile1"); - ASSERT (mm2->ident.name == "testfile1"); - ASSERT (mm1->getFilename() == "testfile1.mov"); - ASSERT (mm2->getFilename() == "testfile2.mov"); - - - TRACE (asset_mem, "leaving test method scope"); - } - - }; - - - /** Register this test class... */ - LAUNCHER (IdentityOfAssets_test, "unit asset"); - - - - } // namespace test - -} // namespace asset + virtual void run(Arg arg) + { + createDuplicate(); + + if (!isnil (arg)) + dumpAssetManager(); + TRACE (asset_mem, "leaving IdentityOfAssets_test::run()"); + } + + + + typedef shared_ptr<asset::Media> PM; + + /** @test produce an ID clash. + * documents the current behaviour of the code as of 9/07 + * @todo this test is expected to break when the detection + * of duplicate registrations is implemented. + */ + void createDuplicate() + { + PM mm1 = asset::Media::create ("testfile1.mov", VIDEO); + + Asset::Ident idi (mm1->ident); // duplicate Ident record + PM mm1X = asset::Media::create (idi); // note: we actually don't call any ctor + CHECK (mm1 == mm1X); // instead, we got mm1 back. + + PM mm2 = asset::Media::create (idi,"testfile2.mov"); + + CHECK (mm1->getID() == mm2->getID()); // different object, same hash + + AssetManager& aMang = AssetManager::instance(); + CHECK (aMang.getAsset (mm1->getID()) == mm2); // record of mm1 was replaced by mm2 + CHECK (aMang.getAsset (mm2->getID()) == mm2); + + CHECK (aMang.known (mm1->getID())); + CHECK (aMang.known (mm2->getID())); + CHECK (mm1->ident.name == "testfile1"); + CHECK (mm2->ident.name == "testfile1"); + CHECK (mm1->getFilename() == "testfile1.mov"); + CHECK (mm2->getFilename() == "testfile2.mov"); + + + TRACE (asset_mem, "leaving test method scope"); + } + + }; + + + /** Register this test class... */ + LAUNCHER (IdentityOfAssets_test, "unit asset"); + + + +}} // namespace asset::test diff --git a/tests/components/proc/asset/makecliptest.cpp b/tests/components/proc/asset/makecliptest.cpp index 7f9d0581c..4042053a7 100644 --- a/tests/components/proc/asset/makecliptest.cpp +++ b/tests/components/proc/asset/makecliptest.cpp @@ -1,23 +1,23 @@ /* MakeClip(Test) - create a Clip from a Media Asset - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -60,14 +60,14 @@ namespace asset { PC cc = mm->createClip(); PM cm = cc->getMedia(); - ASSERT (cm); - ASSERT (Time(0) < cc->getLength()); - ASSERT (cm->ident.category.hasKind (VIDEO)); - ASSERT (cm->getFilename() == mm->getFilename()); + CHECK (cm); + CHECK (Time(0) < cc->getLength()); + CHECK (cm->ident.category.hasKind (VIDEO)); + CHECK (cm->getFilename() == mm->getFilename()); TODO ("implement Processing Pattern!!!"); -// ASSERT (cm->howtoProc() == mm->howtoProc()); - ASSERT (cm->ident.org == mm->ident.org); - ASSERT (dependencyCheck (cm,mm)); +// CHECK (cm->howtoProc() == mm->howtoProc()); + CHECK (cm->ident.org == mm->ident.org); + CHECK (dependencyCheck (cm,mm)); TRACE (asset_mem, "leaving MakeClip_test::run()"); TRACE (mobject_mem, "leaving MakeClip_test::run()"); diff --git a/tests/components/proc/asset/mediastructurequerytest.cpp b/tests/components/proc/asset/mediastructurequerytest.cpp index 2f5a58c53..99f0aaab8 100644 --- a/tests/components/proc/asset/mediastructurequerytest.cpp +++ b/tests/components/proc/asset/mediastructurequerytest.cpp @@ -1,23 +1,23 @@ /* MediaStructureQuery(Test) - check functionallity used for creating media assets - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/components/proc/asset/orderingofassetstest.cpp b/tests/components/proc/asset/orderingofassetstest.cpp index d87b00d3b..cd4009e7f 100644 --- a/tests/components/proc/asset/orderingofassetstest.cpp +++ b/tests/components/proc/asset/orderingofassetstest.cpp @@ -1,23 +1,23 @@ /* OrderingOfAssets(Test) - equality and comparisons - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -74,45 +74,45 @@ namespace asset { // ordering of keys - ASSERT (key1 == key2); - ASSERT (key2 != key3); - ASSERT (key3 != key4); - ASSERT (key4 != key5); - ASSERT (key1 != key5); + CHECK (key1 == key2); + CHECK (key2 != key3); + CHECK (key3 != key4); + CHECK (key4 != key5); + CHECK (key1 != key5); - ASSERT ( 0 > key2.compare(key3)); - ASSERT ( 0 < key3.compare(key2)); + CHECK ( 0 > key2.compare(key3)); + CHECK ( 0 < key3.compare(key2)); - ASSERT ( 0 > key3.compare(key4)); - ASSERT ( 0 > key4.compare(key5)); - ASSERT ( 0 > key1.compare(key5)); - ASSERT ( 0 > key2.compare(key5)); - ASSERT ( 0 > key3.compare(key5)); - ASSERT ( 0 > key1.compare(key3)); - ASSERT ( 0 > key1.compare(key4)); - ASSERT ( 0 > key2.compare(key4)); + CHECK ( 0 > key3.compare(key4)); + CHECK ( 0 > key4.compare(key5)); + CHECK ( 0 > key1.compare(key5)); + CHECK ( 0 > key2.compare(key5)); + CHECK ( 0 > key3.compare(key5)); + CHECK ( 0 > key1.compare(key3)); + CHECK ( 0 > key1.compare(key4)); + CHECK ( 0 > key2.compare(key4)); // ordering of Asset smart ptrs - ASSERT (mm1 == mm2); - ASSERT (mm2 != mm3); - ASSERT (mm3 != mm4); - ASSERT (mm4 != mm5); - ASSERT (mm1 != mm5); + CHECK (mm1 == mm2); + CHECK (mm2 != mm3); + CHECK (mm3 != mm4); + CHECK (mm4 != mm5); + CHECK (mm1 != mm5); - ASSERT (mm2 < mm3); - ASSERT (mm2 <= mm3); - ASSERT (mm3 > mm2); - ASSERT (mm3 >= mm2); + CHECK (mm2 < mm3); + CHECK (mm2 <= mm3); + CHECK (mm3 > mm2); + CHECK (mm3 >= mm2); - ASSERT (mm3 < mm4); - ASSERT (mm4 < mm5); - ASSERT (mm1 < mm5); - ASSERT (mm2 < mm5); - ASSERT (mm3 < mm5); - ASSERT (mm1 < mm3); - ASSERT (mm1 < mm4); - ASSERT (mm2 < mm4); + CHECK (mm3 < mm4); + CHECK (mm4 < mm5); + CHECK (mm1 < mm5); + CHECK (mm2 < mm5); + CHECK (mm3 < mm5); + CHECK (mm1 < mm3); + CHECK (mm1 < mm4); + CHECK (mm2 < mm4); } }; diff --git a/tests/components/proc/asset/testasset.cpp b/tests/components/proc/asset/testasset.cpp index 3a6ffb61d..12eba65ad 100644 --- a/tests/components/proc/asset/testasset.cpp +++ b/tests/components/proc/asset/testasset.cpp @@ -1,23 +1,23 @@ /* TestClip - test clip (stub) for checking Model/Session functionality - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/components/proc/asset/testasset.hpp b/tests/components/proc/asset/testasset.hpp index 716cd33f7..7dbcbe636 100644 --- a/tests/components/proc/asset/testasset.hpp +++ b/tests/components/proc/asset/testasset.hpp @@ -1,23 +1,23 @@ /* TESTASSET.hpp - test asset (stub) for checking internal asset functionality - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/tests/components/proc/asset/testclipasset.hpp b/tests/components/proc/asset/testclipasset.hpp index fc501625c..eb5167abc 100644 --- a/tests/components/proc/asset/testclipasset.hpp +++ b/tests/components/proc/asset/testclipasset.hpp @@ -1,23 +1,23 @@ /* TESTCLIPASSET.hpp - test Media-Asset (clip) for checking Assets and MObjects - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/tests/components/proc/asset/typed-id-test.cpp b/tests/components/proc/asset/typed-id-test.cpp index 633a07443..7835c162b 100644 --- a/tests/components/proc/asset/typed-id-test.cpp +++ b/tests/components/proc/asset/typed-id-test.cpp @@ -1,23 +1,23 @@ /* TypedID(Test) - verifying registration service for ID to type association - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/components/proc/control/argument-tuple-accept-test.cpp b/tests/components/proc/control/argument-tuple-accept-test.cpp index 34efd4bd3..c264ca255 100644 --- a/tests/components/proc/control/argument-tuple-accept-test.cpp +++ b/tests/components/proc/control/argument-tuple-accept-test.cpp @@ -1,23 +1,23 @@ /* ArgumentTupleAccept(Test) - verify synthesising a bind(...) function - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -112,7 +112,7 @@ namespace test { cout << showSizeof(testTime) << endl; cout << testTime.getHead() << endl; - ASSERT (23 == testTime.getTail().getHead()); + CHECK (23 == testTime.getTail().getHead()); } }; diff --git a/tests/components/proc/control/command-argument-test.cpp b/tests/components/proc/control/command-argument-test.cpp index bdf7b2724..8f5feb85f 100644 --- a/tests/components/proc/control/command-argument-test.cpp +++ b/tests/components/proc/control/command-argument-test.cpp @@ -1,23 +1,23 @@ /* CommandArgument(Test) - checking storage of specifically typed command arguments - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -51,77 +51,77 @@ using std::endl; namespace control { namespace test { - + using lib::test::showSizeof; using lib::test::randTime; using namespace lumiera::typelist; - - - - - + + + + + namespace { // test helpers - + ostringstream protocol; ///< used to verify the test function calls - - - /** + + + /** * watching the instance creation - * of some parameter values + * of some parameter values */ template<typename TY> struct Tracker { TY element_; static int instanceCnt; - + Tracker (TY init = TY()) : element_(init) { ++instanceCnt; } Tracker (Tracker const& otr) : element_(otr.element_) { ++instanceCnt; } ~Tracker() { --instanceCnt; } - + TY& operator* () { return element_; } - + operator string() const { return element_; } - + friend ostream& operator<< (ostream& out, const Tracker& tra) { return out << tra.element_; } - + friend bool operator== (Tracker const& tra1, Tracker const& tra2) { return tra1.element_ == tra2.element_; } }; - + template<typename TY> int Tracker<TY>::instanceCnt (0); - - + + /** Dummy custom memento datatype * @note memento needs to be equality comparable */ struct Sint5 { int i[5]; - + friend bool operator== (Sint5 const& i1, Sint5 const& i2) { return i1.i == i2.i; } }; - - - + + + /* === functions to implement test-"operation" & UNDO === */ - + void doIt (Tracker<Time> time, Tracker<string> str, int rand) { @@ -129,88 +129,88 @@ namespace test { cout << "invoke operation..." << endl; protocol << fmt % *time % *str % rand; } - + Tracker<string> captureState (Tracker<Time>, Tracker<string> xstr, int) { cout << "capture state..." << endl; return protocol.str() + *xstr; } - + void undoIt (Tracker<Time> time, Tracker<string>, int, Tracker<string> memento) { cout << "undo... memento=" << memento << endl; protocol << "undoIt(time="<<time<<")----memento-:"<< *memento; } - - + + /// another dummy-UNDO function void dummyU (int,int,int) { } int dummyC (int u,int o) { return u + rand() % (o-u+1); } - - - + + + void showIt (CmdClosure& clo) { cout << clo << endl; } - + void checkSerialisation (CmdClosure& clo) { TODO ("implement serialisation/de-serialisation-Check"); cout << "would be serialised....." << clo << endl; - + // serialise, then de-serialise into a new instance and compare both } - - + + } // test-helper implementation - - - - - - + + + + + + typedef lib::ScopedPtrVect<CmdClosure> ArgTuples; - + /*************************************************************************** * @test Check storage handling of the command parameters and state memento. - * + * * @see control::CommandArgumentHolder * @see command-basic-test.hpp */ class CommandArgument_test : public Test { - + virtual void - run (Arg) + run (Arg) { ArgTuples testTuples; Tracker<Time>::instanceCnt = 0; Tracker<string>::instanceCnt = 0; - + createTuples (testTuples); checkArgumentComparison (); serialiseArgTuples (testTuples); testTuples.clear(); - + simulateCmdLifecycle(); - - // verify all dtors properly called... - ASSERT (0 == Tracker<Time>::instanceCnt); - ASSERT (0 == Tracker<string>::instanceCnt); + + // verify all dtors properly called... + CHECK (0 == Tracker<Time>::instanceCnt); + CHECK (0 == Tracker<string>::instanceCnt); } - - + + typedef Tracker<Time> TTime; typedef Tracker<string> Tstr; - - - - + + + + /** @test create various argument tuples and re-access their contents */ void createTuples (ArgTuples& tup) @@ -219,102 +219,102 @@ namespace test { typedef ArgumentHolder<void(int), void*> A2; typedef ArgumentHolder<void(int,Time), int> A3; typedef ArgumentHolder<void(int,Time), Sint5> A4; - + typedef ArgumentHolder<void(TTime,Tstr,int), Tstr> A5; - - + + A1* arg1 = new A1(); tup.manage (arg1); A2* arg2 = new A2(); tup.manage (arg2); A3* arg3 = new A3(); tup.manage (arg3); A4* arg4 = new A4(); tup.manage (arg4); A5* arg5 = new A5(); tup.manage (arg5); - - ASSERT (isnil (*arg1)); - ASSERT (isnil (*arg2)); - ASSERT (isnil (*arg3)); - ASSERT (isnil (*arg4)); - ASSERT (isnil (*arg5)); - + + CHECK (isnil (*arg1)); + CHECK (isnil (*arg2)); + CHECK (isnil (*arg3)); + CHECK (isnil (*arg4)); + CHECK (isnil (*arg5)); + for_each (tup, showIt); - + arg1->storeTuple (tuple::makeNullTuple()); arg2->storeTuple (tuple::make (rand() % 10)); arg3->storeTuple (tuple::make (rand() % 10, randTime())); arg4->storeTuple (tuple::make (rand() % 10, randTime())); - + arg5->storeTuple (tuple::make (TTime (randTime()), Tstr("glorious"), rand() % 25)); - - ASSERT (!arg5->canUndo()); - + + CHECK (!arg5->canUndo()); + arg5->tie(undoIt, captureState) .tieCaptureFunc() // bind capturing function to memento storage, (TTime(), Tstr("destruction"), 11); // then invoke the bound capturing mechanism - - ASSERT (arg5->canUndo()); - ASSERT (*arg5->memento() == "destruction"); - + + CHECK (arg5->canUndo()); + CHECK (*arg5->memento() == "destruction"); + VERIFY_ERROR(MISSING_MEMENTO, arg4->memento().i[3] = 513 ); - + for_each (tup, showIt); } - - - + + + /** @test serialise and de-serialise each tuple and check validity * @todo unimplemented, waiting on Serialiser */ - void + void serialiseArgTuples (ArgTuples& tup) { for_each (tup, checkSerialisation); } - - - + + + /** @test verify the comparison operators */ void checkArgumentComparison () { ArgumentHolder<void(int,int), int> one, two; - ASSERT (one == two); // empty, identically typed argument holders -->equal - + CHECK (one == two); // empty, identically typed argument holders -->equal + one.tie(dummyU,dummyC) .tieCaptureFunc()(1,9); - ASSERT (one != two); // now one contains captured UNDO state - + CHECK (one != two); // now one contains captured UNDO state + two.tie(dummyU,dummyC) .tieCaptureFunc()(1,9); two.memento() = one.memento(); // put the same UNDO state in both - ASSERT (one == two); // ...makes them equal again - + CHECK (one == two); // ...makes them equal again + one.storeTuple (tuple::make (1,2)); - ASSERT (one != two); // verify argument tuple comparison - ASSERT (two != one); - ASSERT (!isnil (one)); - ASSERT ( isnil (two)); - + CHECK (one != two); // verify argument tuple comparison + CHECK (two != one); + CHECK (!isnil (one)); + CHECK ( isnil (two)); + two.storeTuple (tuple::make (3,4)); - ASSERT (!isnil (two)); - ASSERT (one != two); - ASSERT (two != one); - + CHECK (!isnil (two)); + CHECK (one != two); + CHECK (two != one); + one.storeTuple (tuple::make (1,4)); - ASSERT (!isnil (one)); - ASSERT (one != two); - ASSERT (two != one); - + CHECK (!isnil (one)); + CHECK (one != two); + CHECK (two != one); + one.storeTuple (tuple::make (3,4)); - ASSERT (!isnil (one)); - ASSERT (one == two); - ASSERT (two == one); + CHECK (!isnil (one)); + CHECK (one == two); + CHECK (two == one); two.memento() = 12345; - ASSERT (!isnil (two)); - ASSERT (one != two); - ASSERT (two != one); + CHECK (!isnil (two)); + CHECK (one != two); + CHECK (two != one); } - - - + + + /** @test simulate a complete command lifecycle with regards to the * storage handling of the command parameters and state memento. */ @@ -324,71 +324,71 @@ namespace test { typedef void SIG_do(Tracker<Time>, Tracker<string>, int); typedef ArgumentHolder<SIG_do, Tracker<string> > Args; typedef MementoTie<SIG_do, Tracker<string> > MemHolder; - + Args args; - ASSERT (isnil (args)); + CHECK (isnil (args)); cout << showSizeof(args) << endl; - + // store a set of parameter values, later to be used on invocation args.storeTuple ( tuple::make (TTime(randTime()), Tstr("Lumiera rocks"), rand() % 100)); - ASSERT (!isnil (args)); + CHECK (!isnil (args)); cout << args << endl; - - ASSERT (!args.canUndo()); + + CHECK (!args.canUndo()); VERIFY_ERROR(MISSING_MEMENTO, args.memento() ); - + MemHolder& memHolder = args.tie(undoIt,captureState); - ASSERT (!memHolder); // no stored memento.... - ASSERT (!args.canUndo()); - + CHECK (!memHolder); // no stored memento.... + CHECK (!args.canUndo()); + function<SIG_do> doItFun = doIt; function<SIG_do> undoFun = memHolder.tieUndoFunc(); function<SIG_do> captFun = memHolder.tieCaptureFunc(); - + typedef function<void()> OpFun; - - // now close all the functions with the stored parameter values... + + // now close all the functions with the stored parameter values... OpFun bound_doItFun = std::tr1::bind (&CmdClosure::invoke, args, CmdFunctor(doItFun)); OpFun bound_undoFun = std::tr1::bind (&CmdClosure::invoke, args, CmdFunctor(undoFun)); OpFun bound_captFun = std::tr1::bind (&CmdClosure::invoke, args, CmdFunctor(captFun)); - + protocol.seekp(0); protocol << "START..."; - + bound_captFun(); cout << "captured state: " << args.memento() << endl; - ASSERT (memHolder); - ASSERT (!isnil (*args.memento())); - ASSERT (args.canUndo()); + CHECK (memHolder); + CHECK (!isnil (*args.memento())); + CHECK (args.canUndo()); cout << args << endl; - + bound_doItFun(); cout << protocol.str() << endl; bound_undoFun(); cout << protocol.str() << endl; - + // Commands can serve as prototype to be copied.... Args argsCopy (args); bound_captFun(); protocol.seekp(0); protocol << "RESET..."; - + args.storeTuple ( tuple::make (TTime(Time(123456)), Tstr("unbelievable"), rand() %100)); cout << "modified: " << args << endl; cout << "copied : " << argsCopy << endl; // holds still the old params & memento - + bound_undoFun(); cout << protocol.str() << endl; } - + }; - - - + + + /** Register this test class... */ LAUNCHER (CommandArgument_test, "unit controller"); - - + + }} // namespace control::test diff --git a/tests/components/proc/control/command-basic-test.cpp b/tests/components/proc/control/command-basic-test.cpp index f75d2b81b..76ef584d2 100644 --- a/tests/components/proc/control/command-basic-test.cpp +++ b/tests/components/proc/control/command-basic-test.cpp @@ -1,23 +1,23 @@ /* CommandBasic(Test) - checking simple ProcDispatcher command definition and execution - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -101,13 +101,13 @@ namespace test { Command ourCmd = Command::get("test.command1"); // invoke the command - ASSERT (*obj == Time(5)); + CHECK (*obj == Time(5)); ourCmd(); - ASSERT (*obj == Time(5) + Time(randVal)); + CHECK (*obj == Time(5) + Time(randVal)); // undo the effect of the command ourCmd.undo(); - ASSERT (*obj == Time(5)); + CHECK (*obj == Time(5)); } }; diff --git a/tests/components/proc/control/command-binding-test.cpp b/tests/components/proc/control/command-binding-test.cpp index 3de2b2217..0f500a3b7 100644 --- a/tests/components/proc/control/command-binding-test.cpp +++ b/tests/components/proc/control/command-binding-test.cpp @@ -1,23 +1,23 @@ /* CommandBinding(Test) - special cases of binding command arguments - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -65,8 +65,8 @@ namespace test { Command::remove("test.command3.1"); Command::remove("test.command3.2"); - ASSERT (cnt_defs == Command::definition_count()); - ASSERT (cnt_inst == Command::instance_count()); + CHECK (cnt_defs == Command::definition_count()); + CHECK (cnt_inst == Command::instance_count()); } @@ -83,7 +83,7 @@ namespace test { .execSync() ; - ASSERT ( 1 == command3::check_); + CHECK ( 1 == command3::check_); CommandDef ("test.command3.2") .operation (command3::operate) @@ -91,28 +91,28 @@ namespace test { .undoOperation (command3::undoIt) ; Command com ("test.command3.2"); - ASSERT (com.canExec()); + CHECK (com.canExec()); cout << string(com) << endl; com(); - ASSERT ( 2 == command3::check_); + CHECK ( 2 == command3::check_); com.undo(); - ASSERT ( 1 == command3::check_); + CHECK ( 1 == command3::check_); Command commi = com.newInstance(); com(); com(); com(); - ASSERT ( 4 == command3::check_); + CHECK ( 4 == command3::check_); commi.undo(); // it uses the inherited UNDO state - ASSERT ( 1 == command3::check_); + CHECK ( 1 == command3::check_); com.undo(); - ASSERT ( 3 == command3::check_); + CHECK ( 3 == command3::check_); Command::get("test.command3.1").undo(); - ASSERT ( 0 == command3::check_); + CHECK ( 0 == command3::check_); } }; diff --git a/tests/components/proc/control/command-clone-builder-test.cpp b/tests/components/proc/control/command-clone-builder-test.cpp index 035af61ff..802dfb361 100644 --- a/tests/components/proc/control/command-clone-builder-test.cpp +++ b/tests/components/proc/control/command-clone-builder-test.cpp @@ -1,23 +1,23 @@ /* CommandCloneBuilder(Test) - verify building an implementation clone - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -73,7 +73,7 @@ namespace test { run (Arg) { CommandRegistry& registry = CommandRegistry::instance(); - ASSERT (®istry); + CHECK (®istry); uint cnt_inst = registry.instance_count(); { @@ -83,7 +83,7 @@ namespace test { verifySeparation (source, clone); } - ASSERT (cnt_inst == registry.instance_count()); + CHECK (cnt_inst == registry.instance_count()); } @@ -100,12 +100,12 @@ namespace test { function<Sig_capt> c_Fun (command1::capture); function<Sig_undo> u_Fun (command1::undoIt); - ASSERT (o_Fun && c_Fun && u_Fun); + CHECK (o_Fun && c_Fun && u_Fun); PCmdImpl cmd = registry.newCommandImpl(o_Fun,c_Fun,u_Fun); // make ready for execution bindRandArgument (*cmd); - ASSERT (cmd->canExec()); + CHECK (cmd->canExec()); return cmd; } @@ -117,7 +117,7 @@ namespace test { typedef Types<int> ArgType; TypedArguments<Tuple<ArgType> > arg (tuple::make (rand() % 10000)); cmd.setArguments (arg); - ASSERT (cmd.canExec()); + CHECK (cmd.canExec()); } @@ -129,10 +129,10 @@ namespace test { void verifySeparation (PCmdImpl orig, PCmdImpl copy) { - ASSERT (orig && copy); - ASSERT (orig->canExec()); - ASSERT (copy->canExec()); - ASSERT (orig == copy); + CHECK (orig && copy); + CHECK (orig->canExec()); + CHECK (copy->canExec()); + CHECK (orig == copy); // prepare for command invocation on implementation level.... @@ -141,29 +141,29 @@ namespace test { command1::check_ = 0; bindRandArgument (*orig); - ASSERT ( orig->canExec()); - ASSERT (!orig->canUndo()); + CHECK ( orig->canExec()); + CHECK (!orig->canUndo()); testExec.invoke (*orig, "Execute original"); // EXEC 1 long state_after_exec1 = command1::check_; - ASSERT (command1::check_ > 0); - ASSERT (orig->canUndo()); - ASSERT (orig != copy); + CHECK (command1::check_ > 0); + CHECK (orig->canUndo()); + CHECK (orig != copy); - ASSERT (!copy->canUndo()); + CHECK (!copy->canUndo()); testExec.invoke (*copy, "Execute clone"); // EXEC 2 - ASSERT (command1::check_ != state_after_exec1); - ASSERT (copy->canUndo()); - ASSERT (copy != orig); + CHECK (command1::check_ != state_after_exec1); + CHECK (copy->canUndo()); + CHECK (copy != orig); // invoke UNDO on the clone testUndo.invoke (*copy, "Undo clone"); // UNDO 2 - ASSERT (command1::check_ == state_after_exec1); + CHECK (command1::check_ == state_after_exec1); // invoke UNDO on original testUndo.invoke (*orig, "Undo original"); // UNDO 1 - ASSERT (command1::check_ ==0); + CHECK (command1::check_ ==0); - ASSERT (copy != orig); + CHECK (copy != orig); } }; diff --git a/tests/components/proc/control/command-equality-test.cpp b/tests/components/proc/control/command-equality-test.cpp index fc8986fbc..715a3b83f 100644 --- a/tests/components/proc/control/command-equality-test.cpp +++ b/tests/components/proc/control/command-equality-test.cpp @@ -1,23 +1,23 @@ /* CommandEquality(Test) - verify equality comparisons on command's subsystems - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -119,9 +119,9 @@ namespace test { virtual void run (Arg) { - ASSERT (&oper_1 != &oper_2); - ASSERT (&capt_1 != &capt_2); - ASSERT (&undo_1 != &undo_2); + CHECK (&oper_1 != &oper_2); + CHECK (&capt_1 != &capt_2); + CHECK (&undo_1 != &undo_2); verifyMutationEquality(); verifyMementoEquality(); @@ -144,23 +144,23 @@ namespace test { Mutation mut1 (oFun_1); Mutation muti (oFun_1); Mutation mut2 (oFun_2); - ASSERT (mut1 == mut1); - ASSERT (mut1 == muti); - ASSERT (muti == mut1); - ASSERT (mut1 != mut2); - ASSERT (mut2 != mut1); - ASSERT (muti != mut2); - ASSERT (mut2 != muti); + CHECK (mut1 == mut1); + CHECK (mut1 == muti); + CHECK (muti == mut1); + CHECK (mut1 != mut2); + CHECK (mut2 != mut1); + CHECK (muti != mut2); + CHECK (mut2 != muti); Mutation umu (oFun_empty); // empty operation function - ASSERT (mut1 != umu); + CHECK (mut1 != umu); Mutation mut_u0 (uFun_empty); // empty undo function - ASSERT (mut_u0 != umu); - ASSERT (mut_u0 != muti); + CHECK (mut_u0 != umu); + CHECK (mut_u0 != muti); Mutation mut_u1 (uFun_1); - ASSERT (mut_u0 != mut_u1); // function signatures differing + CHECK (mut_u0 != mut_u1); // function signatures differing } @@ -169,40 +169,40 @@ namespace test { { ArgHolder a1 (tuple::make ('a')); ArgHolder a2 (tuple::make ('z')); - ASSERT (a1 == a1); - ASSERT (a1 != a2); - ASSERT (a2 != a1); + CHECK (a1 == a1); + CHECK (a1 != a2); + CHECK (a2 != a1); TypedArguments<ArgTuple> newArgs (tuple::make ('z')); a1.bindArguments(newArgs); - ASSERT (a1 == a2); - ASSERT (a2 == a1); + CHECK (a1 == a2); + CHECK (a2 == a1); typedef ArgumentHolder<Sig_oper,string> AHImpl; AHImpl abuff1; AHImpl abuff2; - ASSERT (abuff1 == abuff2); + CHECK (abuff1 == abuff2); abuff1.bindArguments(newArgs); - ASSERT (abuff1 != abuff2); + CHECK (abuff1 != abuff2); abuff2.bindArguments(newArgs); - ASSERT (abuff1 == abuff2); + CHECK (abuff1 == abuff2); UndoMutation umu1 (abuff1.tie (undo_1, capt_1)); - ASSERT (abuff1 != abuff2); // abuff2 isn't tied yet, i.e. has no undo/capture function + CHECK (abuff1 != abuff2); // abuff2 isn't tied yet, i.e. has no undo/capture function UndoMutation umu2 (abuff2.tie (undo_1, capt_1)); - ASSERT (abuff1 == abuff2); // same capture function, no memento state! + CHECK (abuff1 == abuff2); // same capture function, no memento state! umu1.captureState(a1); - ASSERT (abuff1 != abuff2); + CHECK (abuff1 != abuff2); umu2.captureState(a1); - ASSERT (abuff1 == abuff2); // same functions, same memento state + CHECK (abuff1 == abuff2); // same functions, same memento state check_ += "fake"; // manipulate the "state" to be captured umu2.captureState(a1); // capture again... - ASSERT (abuff1 != abuff2); // captured memento differs! + CHECK (abuff1 != abuff2); // captured memento differs! UndoMutation umu3 (abuff2.tie (undo_1, capt_2)); umu3.captureState(a1); - ASSERT (abuff1 != abuff2); // differing functions detected + CHECK (abuff1 != abuff2); // differing functions detected } @@ -222,40 +222,40 @@ namespace test { MemHolder m21 (uFun_2, cFun_empty); // note: unbound capture function MemHolder m22 (uFun_2, cFun_2); - ASSERT (m11 == m11); - ASSERT (m12 == m12); - ASSERT (m21 == m21); - ASSERT (m22 == m22); - ASSERT (!(m11 != m11)); + CHECK (m11 == m11); + CHECK (m12 == m12); + CHECK (m21 == m21); + CHECK (m22 == m22); + CHECK (!(m11 != m11)); - ASSERT (m11 != m12); - ASSERT (m11 != m21); - ASSERT (m11 != m22); - ASSERT (m12 != m11); - ASSERT (m12 != m21); - ASSERT (m12 != m22); - ASSERT (m21 != m11); - ASSERT (m21 != m12); - ASSERT (m21 != m22); - ASSERT (m22 != m11); - ASSERT (m22 != m12); - ASSERT (m22 != m21); + CHECK (m11 != m12); + CHECK (m11 != m21); + CHECK (m11 != m22); + CHECK (m12 != m11); + CHECK (m12 != m21); + CHECK (m12 != m22); + CHECK (m21 != m11); + CHECK (m21 != m12); + CHECK (m21 != m22); + CHECK (m22 != m11); + CHECK (m22 != m12); + CHECK (m22 != m21); MemHolder m22x (m22); // clone copy - ASSERT (!m22x); - ASSERT (m22 == m22x); // same functions, no state --> equal + CHECK (!m22x); + CHECK (m22 == m22x); // same functions, no state --> equal m22x.tieCaptureFunc() ('x'); // produce a memento state - ASSERT (!isnil (m22x.getState())); + CHECK (!isnil (m22x.getState())); - ASSERT (m22 != m22x); + CHECK (m22 != m22x); m22.tieCaptureFunc() ('x'); // get same value into the memento within m22 - ASSERT (m22 == m22x); + CHECK (m22 == m22x); // document shortcomings on UndoMutation comparisons UndoMutation umu11 (m11); UndoMutation umu12 (m11); // note: due to cloning the embedded functor, - ASSERT (umu11 != umu12); // our hacked-in comparison operator fails + CHECK (umu11 != umu12); // our hacked-in comparison operator fails } @@ -275,22 +275,22 @@ namespace test { Command c1 = Command::get(COMMAND1); Command c2 = Command::get(COMMAND2); - ASSERT (c1 == c1); - ASSERT (c1 != c2); - ASSERT (c2 != c1); + CHECK (c1 == c1); + CHECK (c1 != c2); + CHECK (c2 != c1); Command cx = c1; - ASSERT (c1 == cx); - ASSERT (cx == c1); - ASSERT (!isSameObject (c1, c2)); + CHECK (c1 == cx); + CHECK (cx == c1); + CHECK (!isSameObject (c1, c2)); // verify equality matches behaviour string protocol1 = execCommand(c1); string protocolX = execCommand(cx); string protocol2 = execCommand(c2); - ASSERT (protocol1 == protocolX); - ASSERT (protocol1 != protocol2); + CHECK (protocol1 == protocolX); + CHECK (protocol1 != protocol2); } diff --git a/tests/components/proc/control/command-mutation-test.cpp b/tests/components/proc/control/command-mutation-test.cpp index d02822743..fbbbaa716 100644 --- a/tests/components/proc/control/command-mutation-test.cpp +++ b/tests/components/proc/control/command-mutation-test.cpp @@ -1,23 +1,23 @@ /* CommandMutation(Test) - checking the functor and undo-functor used within Proc-commands - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -104,7 +104,7 @@ namespace test { Mutation functor (funky); MissingArguments<SIG_fun> nullClosure; - ASSERT (!nullClosure); + CHECK (!nullClosure); cout << "empty placeholder closure: " << nullClosure << endl; VERIFY_ERROR (UNBOUND_ARGUMENTS, functor(nullClosure) ); @@ -113,15 +113,15 @@ namespace test { Closure<void(int)> close_over (param); CmdClosure& closure (close_over); - ASSERT (closure); + CHECK (closure); cout << "param values: " << closure << endl; testVal = 0; functor(closure); - ASSERT (testVal == 23); + CHECK (testVal == 23); functor(closure); - ASSERT (testVal == 2*23); + CHECK (testVal == 2*23); } @@ -150,7 +150,7 @@ namespace test { MemHolder mementoHolder (undo_func,cap_func); UndoMutation undoFunctor (mementoHolder); - ASSERT (!mementoHolder); + CHECK (!mementoHolder); MissingArguments<void(void)> nullClosure; VERIFY_ERROR (UNBOUND_ARGUMENTS, undoFunctor(nullClosure) ); @@ -159,29 +159,29 @@ namespace test { Tuple<Types<> > param; Closure<void()> clo (param); - ASSERT (!mementoHolder); + CHECK (!mementoHolder); VERIFY_ERROR (MISSING_MEMENTO, undoFunctor (clo) ); VERIFY_ERROR (MISSING_MEMENTO, mementoHolder.getState() ); testVal = 11; undoFunctor.captureState(clo); - ASSERT (mementoHolder); - ASSERT (testVal == 11); + CHECK (mementoHolder); + CHECK (testVal == 11); int mem = mementoHolder.getState(); cout << "saved state: " << mem << endl; undoFunctor(clo); - ASSERT (testVal == 11 + 11); + CHECK (testVal == 11 + 11); undoFunctor(clo); - ASSERT (testVal == 11 + 11 + 11); + CHECK (testVal == 11 + 11 + 11); undoFunctor.captureState(clo); - ASSERT (33 == mementoHolder.getState()); + CHECK (33 == mementoHolder.getState()); undoFunctor(clo); - ASSERT (testVal == 33 + 33); + CHECK (testVal == 33 + 33); testVal = 9; undoFunctor(clo); - ASSERT (testVal == 42); + CHECK (testVal == 42); } @@ -201,11 +201,11 @@ namespace test { int rr (rand() % 100); testVal = rr; bound_cap_func(); // invoke state capturing - ASSERT (rr == mementoHolder.getState()); + CHECK (rr == mementoHolder.getState()); testVal = 10; // meanwhile "somehow" mutate the state bound_undo_func(); // invoking the undo() feeds back the memento - ASSERT (testVal == 10+rr); + CHECK (testVal == 10+rr); } }; diff --git a/tests/components/proc/control/command-registry-test.cpp b/tests/components/proc/control/command-registry-test.cpp index dae04ca7a..f0958a48b 100644 --- a/tests/components/proc/control/command-registry-test.cpp +++ b/tests/components/proc/control/command-registry-test.cpp @@ -1,23 +1,23 @@ /* CommandRegistry(Test) - verify command registration and allocation - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -73,7 +73,7 @@ namespace test { run (Arg) { CommandRegistry& registry = CommandRegistry::instance(); - ASSERT (®istry); + CHECK (®istry); cnt_defs = registry.index_size(); cnt_inst = registry.instance_count(); @@ -87,17 +87,17 @@ namespace test { // this command definition is // represented internally by a prototype instance - ASSERT (++cnt_inst == registry.instance_count()); - ASSERT (++cnt_defs == registry.index_size()); + CHECK (++cnt_inst == registry.instance_count()); + CHECK (++cnt_defs == registry.index_size()); checkRegistration (registry); checkAllocation(registry); - ASSERT (cnt_inst == registry.instance_count()); - ASSERT (cnt_defs == registry.index_size()); + CHECK (cnt_inst == registry.instance_count()); + CHECK (cnt_defs == registry.index_size()); Command::remove (TEST_CMD); - ASSERT (--cnt_inst == registry.instance_count()); + CHECK (--cnt_inst == registry.instance_count()); } @@ -108,59 +108,59 @@ namespace test { void checkRegistration (CommandRegistry& registry) { - ASSERT (cnt_inst == registry.instance_count()); + CHECK (cnt_inst == registry.instance_count()); Command cmd1 = registry.queryIndex (TEST_CMD); - ASSERT (cmd1); - ASSERT (TEST_CMD == registry.findDefinition(cmd1)); + CHECK (cmd1); + CHECK (TEST_CMD == registry.findDefinition(cmd1)); Command nonexistant = registry.queryIndex("miraculous"); - ASSERT (!nonexistant); + CHECK (!nonexistant); // now create a clone, registered under a different ID Command cmd2 = cmd1.storeDef(TEST_CMD2); - ASSERT (cmd2 == cmd1); + CHECK (cmd2 == cmd1); cmd2.bind(54321); - ASSERT (cmd2 != cmd1); + CHECK (cmd2 != cmd1); // this created exactly one additional instance allocation: - ASSERT (1+cnt_inst == registry.instance_count()); - ASSERT (1+cnt_defs == registry.index_size()); + CHECK (1+cnt_inst == registry.instance_count()); + CHECK (1+cnt_defs == registry.index_size()); // ...and another index entry Command cmdX = registry.queryIndex(TEST_CMD2); - ASSERT (cmdX == cmd2); - ASSERT (cmdX != cmd1); + CHECK (cmdX == cmd2); + CHECK (cmdX != cmd1); - ASSERT (registry.remove(TEST_CMD2)); - ASSERT (!registry.queryIndex(TEST_CMD2)); - ASSERT (cnt_defs == registry.index_size()); // removed from index - ASSERT (1+cnt_inst == registry.instance_count()); //...but still alive + CHECK (registry.remove(TEST_CMD2)); + CHECK (!registry.queryIndex(TEST_CMD2)); + CHECK (cnt_defs == registry.index_size()); // removed from index + CHECK (1+cnt_inst == registry.instance_count()); //...but still alive // create a new registration.. registry.track(TEST_CMD2, cmd2); - ASSERT (registry.queryIndex(TEST_CMD2)); - ASSERT (1+cnt_defs == registry.index_size()); // again holding two distinct entries - ASSERT (cmdX == cmd2); - ASSERT (cmdX != cmd1); + CHECK (registry.queryIndex(TEST_CMD2)); + CHECK (1+cnt_defs == registry.index_size()); // again holding two distinct entries + CHECK (cmdX == cmd2); + CHECK (cmdX != cmd1); - ASSERT (TEST_CMD == registry.findDefinition(cmd1)); - ASSERT (TEST_CMD2 == registry.findDefinition(cmd2)); - ASSERT (TEST_CMD2 == registry.findDefinition(cmdX)); + CHECK (TEST_CMD == registry.findDefinition(cmd1)); + CHECK (TEST_CMD2 == registry.findDefinition(cmd2)); + CHECK (TEST_CMD2 == registry.findDefinition(cmdX)); - ASSERT ( registry.remove(TEST_CMD2)); - ASSERT (!registry.remove("miraculous")); + CHECK ( registry.remove(TEST_CMD2)); + CHECK (!registry.remove("miraculous")); - ASSERT (!registry.queryIndex(TEST_CMD2)); - ASSERT ( registry.queryIndex(TEST_CMD)); - ASSERT (cnt_defs == registry.index_size()); // the index entry is gone, + CHECK (!registry.queryIndex(TEST_CMD2)); + CHECK ( registry.queryIndex(TEST_CMD)); + CHECK (cnt_defs == registry.index_size()); // the index entry is gone, - ASSERT (1+cnt_inst == registry.instance_count()); // but the allocation still lives + CHECK (1+cnt_inst == registry.instance_count()); // but the allocation still lives cmdX.close(); - ASSERT (1+cnt_inst == registry.instance_count()); + CHECK (1+cnt_inst == registry.instance_count()); cmd2.close(); - ASSERT (0+cnt_inst == registry.instance_count()); // ...as long as it's still referred + CHECK (0+cnt_inst == registry.instance_count()); // ...as long as it's still referred } @@ -182,8 +182,8 @@ namespace test { function<Sig_capt> c_Fun (command1::capture); function<Sig_undo> u_Fun (command1::undoIt); - ASSERT (o_Fun && c_Fun && u_Fun); - ASSERT (cnt_inst == registry.instance_count()); + CHECK (o_Fun && c_Fun && u_Fun); + CHECK (cnt_inst == registry.instance_count()); // when the CommandDef is complete, it issues the // allocation call to the registry behind the scenes.... @@ -191,42 +191,42 @@ namespace test { typedef shared_ptr<CommandImpl> PImpl; PImpl pImpl = registry.newCommandImpl(o_Fun,c_Fun,u_Fun); - ASSERT (1+cnt_inst == registry.instance_count()); + CHECK (1+cnt_inst == registry.instance_count()); - ASSERT (pImpl); - ASSERT (pImpl->isValid()); - ASSERT (!pImpl->canExec()); - ASSERT (1 == pImpl.use_count()); // no magic involved, we hold the only instance + CHECK (pImpl); + CHECK (pImpl->isValid()); + CHECK (!pImpl->canExec()); + CHECK (1 == pImpl.use_count()); // no magic involved, we hold the only instance PImpl clone = registry.createCloneImpl(*pImpl); - ASSERT (clone->isValid()); - ASSERT (!clone->canExec()); - ASSERT (1 == clone.use_count()); - ASSERT (1 == pImpl.use_count()); - ASSERT (2+cnt_inst == registry.instance_count()); + CHECK (clone->isValid()); + CHECK (!clone->canExec()); + CHECK (1 == clone.use_count()); + CHECK (1 == pImpl.use_count()); + CHECK (2+cnt_inst == registry.instance_count()); - ASSERT (!isSameObject (*pImpl, *clone)); - ASSERT (*pImpl == *clone); + CHECK (!isSameObject (*pImpl, *clone)); + CHECK (*pImpl == *clone); - ASSERT (!pImpl->canExec()); + CHECK (!pImpl->canExec()); typedef Types<int> ArgType; TypedArguments<Tuple<ArgType> > arg (Tuple<ArgType>(98765)); pImpl->setArguments(arg); - ASSERT (pImpl->canExec()); + CHECK (pImpl->canExec()); - ASSERT (!clone->canExec()); // this proves the clone has indeed a separate identity - ASSERT (*pImpl != *clone); + CHECK (!clone->canExec()); // this proves the clone has indeed a separate identity + CHECK (*pImpl != *clone); // discard the first clone and overwrite with a new one clone = registry.createCloneImpl(*pImpl); - ASSERT (2+cnt_inst == registry.instance_count()); - ASSERT (*pImpl == *clone); - ASSERT (clone->canExec()); + CHECK (2+cnt_inst == registry.instance_count()); + CHECK (*pImpl == *clone); + CHECK (clone->canExec()); clone.reset(); pImpl.reset(); // corresponding allocation slots cleared automatically - ASSERT (cnt_inst == registry.instance_count()); + CHECK (cnt_inst == registry.instance_count()); } }; diff --git a/tests/components/proc/control/command-use1-test.cpp b/tests/components/proc/control/command-use1-test.cpp index 8e2452551..949fcfffd 100644 --- a/tests/components/proc/control/command-use1-test.cpp +++ b/tests/components/proc/control/command-use1-test.cpp @@ -1,23 +1,23 @@ /* CommandUse1(Test) - usage aspects I - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -80,9 +80,9 @@ namespace test { stringRepresentation(); undef(); - ASSERT (0 == command1::check_); - ASSERT (cnt_defs == Command::definition_count()); - ASSERT (cnt_inst == Command::instance_count()); + CHECK (0 == command1::check_); + CHECK (cnt_defs == Command::definition_count()); + CHECK (cnt_inst == Command::instance_count()); } @@ -98,10 +98,10 @@ namespace test { .execSync() ; - ASSERT (randVal == command1::check_); + CHECK (randVal == command1::check_); Command::get("test.command1.1").undo(); - ASSERT ( 0 == command1::check_); + CHECK ( 0 == command1::check_); } @@ -115,36 +115,36 @@ namespace test { .undoOperation (command1::undoIt) ; } - ASSERT (CommandDef("test.command1.2")); + CHECK (CommandDef("test.command1.2")); Command com ("test.command1.2"); - ASSERT (com); - ASSERT (com == Command::get("test.command1.2")); - ASSERT (contains (str(com), "test.command1.2")); - ASSERT (contains (str(com), "{def}")); - ASSERT (!com.canExec()); + CHECK (com); + CHECK (com == Command::get("test.command1.2")); + CHECK (contains (str(com), "test.command1.2")); + CHECK (contains (str(com), "{def}")); + CHECK (!com.canExec()); VERIFY_ERROR (UNBOUND_ARGUMENTS, com() ); - ASSERT ( 0 == command1::check_); + CHECK ( 0 == command1::check_); VERIFY_ERROR (INVALID_ARGUMENTS, com.bind ("foo") ); - com.bind (random()); // note: run-time type check only - ASSERT ( com.canExec()); - ASSERT (!com.canUndo()); + com.bind (random()); // note: run-time type check only + CHECK ( com.canExec()); + CHECK (!com.canUndo()); com(); - ASSERT (randVal == command1::check_); + CHECK (randVal == command1::check_); com.undo(); - ASSERT ( 0 == command1::check_); + CHECK ( 0 == command1::check_); // the following shortcut does the same: invoke ("test.command1.2") (1234); - ASSERT ( 1234 == command1::check_); + CHECK ( 1234 == command1::check_); // another shortcut, with static type check: // invoke (command1::operate) (5678); //////////////////TICKET #291 : unimplemented for now (9/09) -// ASSERT ( 1234+5678 == command1::check_); +// CHECK ( 1234+5678 == command1::check_); com.undo(); - ASSERT ( 0 == command1::check_); + CHECK ( 0 == command1::check_); } @@ -155,43 +155,43 @@ namespace test { VERIFY_ERROR (INVALID_COMMAND, Command::get("test.command1.2") ); CommandDef def ("test.command1.2"); - ASSERT (!def); + CHECK (!def); def.operation (command1::operate) .captureUndo (command1::capture); - ASSERT (!def); // undo functor still missing + CHECK (!def); // undo functor still missing VERIFY_ERROR (INVALID_COMMAND, Command::get("test.command1.2") ); def.operation (command1::operate) .captureUndo (command1::capture) .undoOperation (command1::undoIt); - ASSERT (def); - ASSERT (CommandDef("test.command1.2")); - ASSERT (Command::get("test.command1.2")); + CHECK (def); + CHECK (CommandDef("test.command1.2")); + CHECK (Command::get("test.command1.2")); - ASSERT ( Command::defined("test.command1.2")); - ASSERT (!Command::canExec("test.command1.2")); - ASSERT (!Command::canUndo("test.command1.2")); + CHECK ( Command::defined("test.command1.2")); + CHECK (!Command::canExec("test.command1.2")); + CHECK (!Command::canUndo("test.command1.2")); Command com = Command::get("test.command1.2"); - ASSERT (com); - ASSERT (!com.canExec()); - ASSERT (!com.canUndo()); + CHECK (com); + CHECK (!com.canExec()); + CHECK (!com.canUndo()); com.bind (11111); - ASSERT ( Command::defined("test.command1.2")); - ASSERT ( Command::canExec("test.command1.2")); - ASSERT (!Command::canUndo("test.command1.2")); + CHECK ( Command::defined("test.command1.2")); + CHECK ( Command::canExec("test.command1.2")); + CHECK (!Command::canUndo("test.command1.2")); com(); - ASSERT ( Command::defined("test.command1.2")); - ASSERT ( Command::canExec("test.command1.2")); - ASSERT ( Command::canUndo("test.command1.2")); + CHECK ( Command::defined("test.command1.2")); + CHECK ( Command::canExec("test.command1.2")); + CHECK ( Command::canUndo("test.command1.2")); com.undo(); - ASSERT ( Command::defined("test.command1.2")); - ASSERT ( Command::canExec("test.command1.2")); - ASSERT ( Command::canUndo("test.command1.2")); + CHECK ( Command::defined("test.command1.2")); + CHECK ( Command::canExec("test.command1.2")); + CHECK ( Command::canUndo("test.command1.2")); } @@ -205,7 +205,7 @@ namespace test { .bind (random()) ; - ASSERT (Command::get("test.command1.3").canExec()); + CHECK (Command::get("test.command1.3").canExec()); } @@ -213,73 +213,73 @@ namespace test { usePrototype() { Command c1 = Command::get("test.command1.3"); - ASSERT (c1); - ASSERT (c1.canExec()); - ASSERT (!c1.canUndo()); + CHECK (c1); + CHECK (c1.canExec()); + CHECK (!c1.canUndo()); Command c2 = c1.newInstance(); - ASSERT (c2); - ASSERT (c2.canExec()); - ASSERT (!c2.canUndo()); + CHECK (c2); + CHECK (c2.canExec()); + CHECK (!c2.canUndo()); - ASSERT (c1 == c2); - ASSERT (!isSameObject(c1, c2)); + CHECK (c1 == c2); + CHECK (!isSameObject(c1, c2)); - ASSERT (0 == command1::check_); + CHECK (0 == command1::check_); c1(); - ASSERT (randVal == command1::check_); - ASSERT ( c1.canUndo()); - ASSERT (!c2.canUndo()); - ASSERT (c1 != c2); + CHECK (randVal == command1::check_); + CHECK ( c1.canUndo()); + CHECK (!c2.canUndo()); + CHECK (c1 != c2); c2(); - ASSERT (randVal + randVal == command1::check_); - ASSERT (c2.canUndo()); - ASSERT (c1 != c2); + CHECK (randVal + randVal == command1::check_); + CHECK (c2.canUndo()); + CHECK (c1 != c2); c1.undo(); - ASSERT (0 == command1::check_); + CHECK (0 == command1::check_); c2.undo(); - ASSERT (randVal == command1::check_); + CHECK (randVal == command1::check_); c2.bind(23); c2(); - ASSERT (randVal + 23 == command1::check_); + CHECK (randVal + 23 == command1::check_); // you should not use a command more than once (but it works...) c1(); - ASSERT (randVal + 23 + randVal == command1::check_); + CHECK (randVal + 23 + randVal == command1::check_); c1.undo(); - ASSERT (randVal + 23 == command1::check_); + CHECK (randVal + 23 == command1::check_); // note we've overwritten the previous undo state // and get the sate captured on the second invocation c2.undo(); - ASSERT (randVal == command1::check_); + CHECK (randVal == command1::check_); c1.undo(); - ASSERT (randVal + 23 == command1::check_); + CHECK (randVal + 23 == command1::check_); // use the current sate of c2 as Prototype for new command definition c2.storeDef ("test.command1.4"); Command c4 = Command::get("test.command1.4"); - ASSERT (c4); - ASSERT (c4.canExec()); - ASSERT (c4.canUndo()); - ASSERT (c4 == c2); - ASSERT (c4 != c1); + CHECK (c4); + CHECK (c4.canExec()); + CHECK (c4.canUndo()); + CHECK (c4 == c2); + CHECK (c4 != c1); c4(); - ASSERT (c4 != c2); // now lives independently from the original - ASSERT (randVal + 2*23 == command1::check_); + CHECK (c4 != c2); // now lives independently from the original + CHECK (randVal + 2*23 == command1::check_); c4.bind(int(-command1::check_)); // new command argument binding c4(); - ASSERT (0 == command1::check_); + CHECK (0 == command1::check_); c2(); - ASSERT (23 == command1::check_); + CHECK (23 == command1::check_); c2.undo(); - ASSERT (0 == command1::check_); + CHECK (0 == command1::check_); } @@ -292,13 +292,13 @@ namespace test { .captureUndo (command1::capture) \ .undoOperation (command1::undoIt) - ASSERT (CommandDef ("test.command1.1")); + CHECK (CommandDef ("test.command1.1")); VERIFY_ERROR (DUPLICATE_COMMAND, BUILD_NEW_COMMAND_DEF ("test.command1.1") ); - ASSERT (CommandDef ("test.command1.2")); + CHECK (CommandDef ("test.command1.2")); VERIFY_ERROR (DUPLICATE_COMMAND, BUILD_NEW_COMMAND_DEF ("test.command1.2") ); - ASSERT (CommandDef ("test.command1.3")); + CHECK (CommandDef ("test.command1.3")); VERIFY_ERROR (DUPLICATE_COMMAND, BUILD_NEW_COMMAND_DEF ("test.command1.3") ); - ASSERT (CommandDef ("test.command1.4")); + CHECK (CommandDef ("test.command1.4")); VERIFY_ERROR (DUPLICATE_COMMAND, BUILD_NEW_COMMAND_DEF ("test.command1.4") ); } @@ -331,21 +331,21 @@ namespace test { void undef() { - ASSERT (CommandDef ("test.command1.1")); - ASSERT (CommandDef ("test.command1.2")); - ASSERT (CommandDef ("test.command1.3")); - ASSERT (CommandDef ("test.command1.4")); + CHECK (CommandDef ("test.command1.1")); + CHECK (CommandDef ("test.command1.2")); + CHECK (CommandDef ("test.command1.3")); + CHECK (CommandDef ("test.command1.4")); - ASSERT (Command::get("test.command1.1")); - ASSERT (Command::get("test.command1.2")); - ASSERT (Command::get("test.command1.3")); - ASSERT (Command::get("test.command1.4")); + CHECK (Command::get("test.command1.1")); + CHECK (Command::get("test.command1.2")); + CHECK (Command::get("test.command1.3")); + CHECK (Command::get("test.command1.4")); VERIFY_ERROR (INVALID_COMMAND, Command::get("miracle")); VERIFY_ERROR (INVALID_COMMAND, invoke ("miracle") (1,2,3)); CommandDef unbelievable ("miracle"); - ASSERT (!unbelievable); + CHECK (!unbelievable); Command miracle; // but because the miracle isn't yet defined, any use throws @@ -353,19 +353,19 @@ namespace test { VERIFY_ERROR (INVALID_COMMAND, miracle.execSync()); VERIFY_ERROR (INVALID_COMMAND, miracle.undo()); VERIFY_ERROR (INVALID_COMMAND, miracle()); - ASSERT (!miracle.canExec()); - ASSERT (!miracle.canUndo()); - ASSERT (!miracle); + CHECK (!miracle.canExec()); + CHECK (!miracle.canUndo()); + CHECK (!miracle); Command c5 (Command::get("test.command1.5")); - ASSERT (Command::remove("test.command1.1")); - ASSERT (Command::remove("test.command1.2")); - ASSERT (Command::remove("test.command1.3")); - ASSERT (Command::remove("test.command1.4")); - ASSERT (Command::remove("test.command1.5")); + CHECK (Command::remove("test.command1.1")); + CHECK (Command::remove("test.command1.2")); + CHECK (Command::remove("test.command1.3")); + CHECK (Command::remove("test.command1.4")); + CHECK (Command::remove("test.command1.5")); - ASSERT (!Command::remove("miracle")); // there is no such thing... + CHECK (!Command::remove("miracle")); // there is no such thing... VERIFY_ERROR (INVALID_COMMAND, Command::get("test.command1.1")); VERIFY_ERROR (INVALID_COMMAND, Command::get("test.command1.2")); @@ -378,8 +378,8 @@ namespace test { // note, removed the registered definitions, // but existing instances remain valid... // thus we're free to create new instances... - ASSERT (c5.isValid()); - ASSERT (c5.canExec()); + CHECK (c5.isValid()); + CHECK (c5.canExec()); } }; diff --git a/tests/components/proc/control/command-use2-test.cpp b/tests/components/proc/control/command-use2-test.cpp index a0acf000f..29d5c6c90 100644 --- a/tests/components/proc/control/command-use2-test.cpp +++ b/tests/components/proc/control/command-use2-test.cpp @@ -1,23 +1,23 @@ /* CommandUse2(Test) - usage aspects II - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -122,8 +122,8 @@ namespace test { Command::remove ("test.command2"); Command::remove ("test.command2.1"); - ASSERT (cnt_defs == Command::definition_count()); - ASSERT (cnt_inst == Command::instance_count()); + CHECK (cnt_defs == Command::definition_count()); + CHECK (cnt_inst == Command::instance_count()); } @@ -133,31 +133,31 @@ namespace test { { Command com = Command::get("test.command2"); - ASSERT (!protocolled("invoked")); + CHECK (!protocolled("invoked")); bool res = com(); - ASSERT (res); - ASSERT (protocolled("invoked")); - ASSERT (protocolled(randVal_)); + CHECK (res); + CHECK (protocolled("invoked")); + CHECK (protocolled(randVal_)); res = com.undo(); - ASSERT (res); // UNDO invoked successfully - ASSERT (!protocolled(randVal_)); - ASSERT (protocolled("UNDO")); + CHECK (res); // UNDO invoked successfully + CHECK (!protocolled(randVal_)); + CHECK (protocolled("UNDO")); blowUp_ = true; string current = command2::check_.str(); res = com(); - ASSERT (!res); // not executed successfully (exception thrown) - ASSERT (command2::check_.str() == current); - ASSERT (LUMIERA_ERROR_EXTERNAL == lumiera_error()); + CHECK (!res); // not executed successfully (exception thrown) + CHECK (command2::check_.str() == current); + CHECK (LUMIERA_ERROR_EXTERNAL == lumiera_error()); res = com.undo(); - ASSERT (!res); // UNDO failed (exception thrown) - ASSERT (command2::check_.str() == current); - ASSERT (LUMIERA_ERROR_EXTERNAL == lumiera_error()); + CHECK (!res); // UNDO failed (exception thrown) + CHECK (command2::check_.str() == current); + CHECK (LUMIERA_ERROR_EXTERNAL == lumiera_error()); blowUp_ = false; } @@ -171,14 +171,14 @@ namespace test { blowUp_ = false; com.exec(HandlingPattern::SYNC_THROW); - ASSERT (protocolled(randVal_)); + CHECK (protocolled(randVal_)); blowUp_ = true; string current = command2::check_.str(); HandlingPattern const& doThrow = HandlingPattern::get(HandlingPattern::SYNC_THROW); VERIFY_ERROR( EXTERNAL, com.exec (doThrow) ); - ASSERT (command2::check_.str() == current); + CHECK (command2::check_.str() == current); // we can achieve the same effect, // after changing the default HandlingPatern for this command instance @@ -187,15 +187,15 @@ namespace test { Command com2 = Command::get("test.command2.1"); VERIFY_ERROR( EXTERNAL, com2() ); - ASSERT (command2::check_.str() == current); + CHECK (command2::check_.str() == current); blowUp_ = false; com2(); - ASSERT (command2::check_.str() > current); - ASSERT (protocolled(randVal_)); + CHECK (command2::check_.str() > current); + CHECK (protocolled(randVal_)); com2.undo(); - ASSERT (!protocolled(randVal_)); + CHECK (!protocolled(randVal_)); } }; diff --git a/tests/components/proc/control/command-use3-test.cpp b/tests/components/proc/control/command-use3-test.cpp index c69f1bb24..5d3d29799 100644 --- a/tests/components/proc/control/command-use3-test.cpp +++ b/tests/components/proc/control/command-use3-test.cpp @@ -1,23 +1,23 @@ /* CommandUse3(Test) - usage aspects III - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -89,10 +89,10 @@ namespace test { UNIMPLEMENTED ("more elaborate command handling patterns"); ////////////////////////////////////////////////////////////////////////////////TODO: devise tests for async, repeated and compound sequences - ASSERT (cnt_inst == Command::instance_count()); + CHECK (cnt_inst == Command::instance_count()); Command::remove ("test.command1.1"); - ASSERT (cnt_defs == Command::definition_count()); + CHECK (cnt_defs == Command::definition_count()); } diff --git a/tests/components/proc/control/handling-pattern-basics-test.cpp b/tests/components/proc/control/handling-pattern-basics-test.cpp index 16f6ff878..87458b177 100644 --- a/tests/components/proc/control/handling-pattern-basics-test.cpp +++ b/tests/components/proc/control/handling-pattern-basics-test.cpp @@ -1,23 +1,23 @@ /* HandlingPatternBasics(Test) - verify elementary operation of a command handling pattern - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -44,7 +44,7 @@ namespace test { namespace { // test data and helpers... - + Symbol TEST_CMD = "test.command1.handling"; HandlingPattern::ID TEST_PATTERN = HandlingPattern::DUMMY; } @@ -71,20 +71,20 @@ namespace test { virtual void - run (Arg) + run (Arg) { CommandRegistry& registry = CommandRegistry::instance(); - ASSERT (®istry); + CHECK (®istry); cnt_inst = registry.instance_count(); - + { PCommandImpl pCom = buildTestCommand(registry); checkExec (pCom); checkUndo (pCom); } - ASSERT (cnt_inst == registry.instance_count()); + CHECK (cnt_inst == registry.instance_count()); } @@ -105,14 +105,14 @@ namespace test { function<Sig_capt> c_Fun (command1::capture); function<Sig_undo> u_Fun (command1::undoIt); - ASSERT (o_Fun && c_Fun && u_Fun); + CHECK (o_Fun && c_Fun && u_Fun); // when the CommandDef is complete, it issues the // allocation call to the registry behind the scenes.... PCommandImpl pImpl = registry.newCommandImpl(o_Fun,c_Fun,u_Fun); - ASSERT (pImpl); - ASSERT (*pImpl); + CHECK (pImpl); + CHECK (*pImpl); return pImpl; } @@ -120,8 +120,8 @@ namespace test { void checkExec (PCommandImpl com) { - ASSERT (com); - ASSERT (!com->canExec()); + CHECK (com); + CHECK (!com->canExec()); typedef Types<int> ArgType; const int ARGU (1 + rand() % 1000); @@ -129,34 +129,34 @@ namespace test { TypedArguments<Tuple<ArgType> > arg(tuple); com->setArguments(arg); - ASSERT (com->canExec()); - ASSERT (!com->canUndo()); + CHECK (com->canExec()); + CHECK (!com->canUndo()); command1::check_ = 0; HaPatt patt = HandlingPattern::get(TEST_PATTERN); ExecResult res = patt.invoke(*com, TEST_CMD); - ASSERT (res); - ASSERT (ARGU == command1::check_); - ASSERT (com->canUndo()); + CHECK (res); + CHECK (ARGU == command1::check_); + CHECK (com->canUndo()); } void checkUndo (PCommandImpl com) { - ASSERT (com); - ASSERT (com->canExec()); - ASSERT (com->canUndo()); + CHECK (com); + CHECK (com->canExec()); + CHECK (com->canUndo()); - ASSERT (command1::check_ > 0); + CHECK (command1::check_ > 0); HaPatt ePatt = HandlingPattern::get(TEST_PATTERN); HaPatt uPatt = ePatt.howtoUNDO(); ExecResult res = uPatt.invoke(*com, TEST_CMD); - ASSERT (res); - ASSERT (command1::check_ == 0); + CHECK (res); + CHECK (command1::check_ == 0); } }; diff --git a/tests/components/proc/control/handling-pattern-standard-impl-test.cpp b/tests/components/proc/control/handling-pattern-standard-impl-test.cpp index a83eed6d7..c73a11246 100644 --- a/tests/components/proc/control/handling-pattern-standard-impl-test.cpp +++ b/tests/components/proc/control/handling-pattern-standard-impl-test.cpp @@ -1,23 +1,23 @@ /* HandlingPatternStandardImpl(Test) - cover the provided standard command handling patterns - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -108,13 +108,13 @@ namespace test { run (Arg) { CommandRegistry& registry = CommandRegistry::instance(); - ASSERT (®istry); + CHECK (®istry); cnt_inst = registry.instance_count(); UNIMPLEMENTED ("unit test to cover the standard command handling patterns"); - ASSERT (cnt_inst == registry.instance_count()); + CHECK (cnt_inst == registry.instance_count()); } }; diff --git a/tests/components/proc/control/memento-tie-test.cpp b/tests/components/proc/control/memento-tie-test.cpp index 20a40e1fa..684078d8b 100644 --- a/tests/components/proc/control/memento-tie-test.cpp +++ b/tests/components/proc/control/memento-tie-test.cpp @@ -1,23 +1,23 @@ /* MementoTie(Test) - check the mechanism for capturing and providing undo-state - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -99,7 +99,7 @@ namespace test { MemHolder mementoHolder (undo_func,cap_func); - ASSERT (sizeof(MemHolder) <= sizeof(int) // storage for the memento + CHECK (sizeof(MemHolder) <= sizeof(int) // storage for the memento + 2 * sizeof(function<void()>) // storage for the 2 undecorated functors + ALIGNMENT); @@ -113,21 +113,21 @@ namespace test { testVal = 0; bound_cap_func(rr); // invoke state capturing - ASSERT (rr == mementoHolder.getState()); + CHECK (rr == mementoHolder.getState()); testVal = 10; // meanwhile "somehow" mutate the state bound_undo_func(0); // invoking the undo() feeds back the memento - ASSERT (testVal == 10-rr); + CHECK (testVal == 10-rr); // this cycle can be repeated with different state values rr = (rand() %100); testVal = rr; bound_cap_func(5); // capture new state - ASSERT (5+rr == mementoHolder.getState()); + CHECK (5+rr == mementoHolder.getState()); testVal = -20; bound_undo_func(3*rr); - ASSERT (testVal == -20 + 3*rr - (5+rr)); + CHECK (testVal == -20 + 3*rr - (5+rr)); } @@ -144,34 +144,34 @@ namespace test { MemHolder m21 (u2_fun, c1_fun); MemHolder m22 (u2_fun, c2_fun); - ASSERT (!m11 && !m12 && !m21 && !m22); - ASSERT ( (m11 == m11)); - ASSERT (!(m11 != m11)); + CHECK (!m11 && !m12 && !m21 && !m22); + CHECK ( (m11 == m11)); + CHECK (!(m11 != m11)); + + CHECK (m11 != m12); + CHECK (m11 != m21); + CHECK (m11 != m22); + CHECK (m12 != m11); + CHECK (m12 != m21); + CHECK (m12 != m22); + CHECK (m21 != m11); + CHECK (m21 != m12); + CHECK (m21 != m22); + CHECK (m22 != m11); + CHECK (m22 != m12); + CHECK (m22 != m21); - ASSERT (m11 != m12); - ASSERT (m11 != m21); - ASSERT (m11 != m22); - ASSERT (m12 != m11); - ASSERT (m12 != m21); - ASSERT (m12 != m22); - ASSERT (m21 != m11); - ASSERT (m21 != m12); - ASSERT (m21 != m22); - ASSERT (m22 != m11); - ASSERT (m22 != m12); - ASSERT (m22 != m21); - MemHolder m22x (m22); // clone copy - ASSERT (!m22x); - ASSERT (m22 == m22x); // same functions, no state --> equal + CHECK (!m22x); + CHECK (m22 == m22x); // same functions, no state --> equal testVal = 0; m22x.tieCaptureFunc() (1 + (rand() % 9)); // produce a random memento value != 0 - ASSERT (0 < m22x.getState()); + CHECK (0 < m22x.getState()); - ASSERT (m22 != m22x); + CHECK (m22 != m22x); m22.tieCaptureFunc() (m22x.getState()); // get the same value into the memento within m22 - ASSERT (m22 == m22x); + CHECK (m22 == m22x); } }; diff --git a/tests/components/proc/control/test-dummy-commands.cpp b/tests/components/proc/control/test-dummy-commands.cpp index 520ad90fb..81daa1020 100644 --- a/tests/components/proc/control/test-dummy-commands.cpp +++ b/tests/components/proc/control/test-dummy-commands.cpp @@ -1,23 +1,23 @@ /* test-dummy-commands - global checksum variables used to build test commands - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/components/proc/control/test-dummy-commands.hpp b/tests/components/proc/control/test-dummy-commands.hpp index 142ac8cd8..1a8bd5eb3 100644 --- a/tests/components/proc/control/test-dummy-commands.hpp +++ b/tests/components/proc/control/test-dummy-commands.hpp @@ -1,23 +1,23 @@ /* TEST-DUMMY-COMMANDS.hpp - dummy functions used to build test commands - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/tests/components/proc/engine/buff-table-test.cpp b/tests/components/proc/engine/buff-table-test.cpp index 8827c8990..267978d49 100644 --- a/tests/components/proc/engine/buff-table-test.cpp +++ b/tests/components/proc/engine/buff-table-test.cpp @@ -1,23 +1,23 @@ /* BuffTable(Test) - check consistency of buffer table chunk allocation - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -162,7 +162,7 @@ namespace test { ++counter; BuffTableChunk thisChunk (numbers, *pStorage); - ASSERT (consistencyCheck (thisChunk, numbers, lastLevel)); + CHECK (consistencyCheck (thisChunk, numbers, lastLevel)); uint nrBranches ( 1 + (rand() % WIDTH_MAX)); while (nrBranches--) diff --git a/tests/components/proc/engine/node-basic-test.cpp b/tests/components/proc/engine/node-basic-test.cpp index bff44a4df..8e973cc1a 100644 --- a/tests/components/proc/engine/node-basic-test.cpp +++ b/tests/components/proc/engine/node-basic-test.cpp @@ -1,23 +1,23 @@ /* NodeBasic(Test) - unit test covering render node basic lifecycle and usage - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -28,7 +28,7 @@ #include "proc/engine/stateproxy.hpp" #include "proc/engine/buffhandle.hpp" #include "proc/mobject/session/effect.hpp" -#include "lib/allocationcluster.hpp" +#include "lib/allocation-cluster.hpp" //#include <boost/format.hpp> //#include <iostream> @@ -89,13 +89,13 @@ namespace test { PEffect pEffect = createTestEffectMObject(); ProcNode* pNode = nodeFab (pEffect, setup); - ASSERT (pNode); + CHECK (pNode); TestContext simulatedInvocation; BuffHandle result = pNode->pull(simulatedInvocation, 0); - ASSERT (result); - // ASSERT we got calculated data in the result buffer + CHECK (result); + // CHECK we got calculated data in the result buffer } }; diff --git a/tests/components/proc/engine/node-fabrication-test.cpp b/tests/components/proc/engine/node-fabrication-test.cpp index 7130b5397..ccc0ad798 100644 --- a/tests/components/proc/engine/node-fabrication-test.cpp +++ b/tests/components/proc/engine/node-fabrication-test.cpp @@ -1,23 +1,23 @@ /* NodeFabrication(Test) - building render nodes - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/components/proc/engine/node-operation-test.cpp b/tests/components/proc/engine/node-operation-test.cpp index 8ac2b56d4..d6823cbaa 100644 --- a/tests/components/proc/engine/node-operation-test.cpp +++ b/tests/components/proc/engine/node-operation-test.cpp @@ -1,23 +1,23 @@ /* NodeOperation(Test) - verify proper render node operation and calldown - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/components/proc/engine/node-source-test.cpp b/tests/components/proc/engine/node-source-test.cpp index d00a87b47..b8bba352b 100644 --- a/tests/components/proc/engine/node-source-test.cpp +++ b/tests/components/proc/engine/node-source-test.cpp @@ -1,23 +1,23 @@ /* NodeSource(Test) - unit test of the source reading render node - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/components/proc/mobject/builder/buildertooltest.cpp b/tests/components/proc/mobject/builder/buildertooltest.cpp index 4c419a971..52a85f0af 100644 --- a/tests/components/proc/mobject/builder/buildertooltest.cpp +++ b/tests/components/proc/mobject/builder/buildertooltest.cpp @@ -1,23 +1,23 @@ /* BuilderTool(Test) - specialised visitor used within the builder for processing Placements - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -70,7 +70,7 @@ namespace test { { Placement<Clip>& pC = getPlacement<Clip>(); cout << "Clip on media : "<< str(pC->getMedia()) <<"\n"; - ASSERT (pC->operator==(c)); + CHECK (pC->operator==(c)); log_ = string (pC); } void treat (AbstractMO&) @@ -120,17 +120,17 @@ namespace test { cout << "apply (tool, clip);\n"; apply (tool, clip); INFO (test, "got Wrapper = %s", t1.log_.c_str()); - ASSERT (t1.log_ == string(clip)); + CHECK (t1.log_ == string(clip)); cout << "apply (tool, test1);\n"; apply (tool, test1); INFO (test, "got Wrapper = %s", t1.log_.c_str()); - ASSERT (t1.log_ == string(test1)); + CHECK (t1.log_ == string(test1)); cout << "apply (tool, test2);\n"; apply (tool, test2); INFO (test, "got Wrapper = %s", t1.log_.c_str()); - ASSERT (t1.log_ == string(test2)); + CHECK (t1.log_ == string(test2)); } }; diff --git a/tests/components/proc/mobject/builder/buildsegmenttest.cpp b/tests/components/proc/mobject/builder/buildsegmenttest.cpp index f47f7fbe0..39679814d 100644 --- a/tests/components/proc/mobject/builder/buildsegmenttest.cpp +++ b/tests/components/proc/mobject/builder/buildsegmenttest.cpp @@ -1,23 +1,23 @@ /* BuildSegment(Test) - building the render-tree for a segment of the Timeline - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/components/proc/mobject/builder/fixture-change-detector-test.cpp b/tests/components/proc/mobject/builder/fixture-change-detector-test.cpp new file mode 100644 index 000000000..f41a8fe20 --- /dev/null +++ b/tests/components/proc/mobject/builder/fixture-change-detector-test.cpp @@ -0,0 +1,113 @@ +/* + FixtureChangeDetector(Test) - detecting segmentation differences + + Copyright (C) Lumiera.org + 2010, Hermann Vosseler <Ichthyostega@web.de> + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +* *****************************************************/ + + +#include "lib/test/run.hpp" +#include "lib/test/test-helper.hpp" +#include "proc/mobject/builder/fixture-change-detector.hpp" +#include "proc/asset/timeline.hpp" +#include "proc/asset/pipe.hpp" +#include "lib/query.hpp" +#include "lib/util.hpp" + + +namespace mobject { +namespace builder { +namespace test { + +// using util::isSameObject; +// using util::isnil; +// + using asset::Pipe; + using asset::PPipe; + using asset::Struct; + using asset::Timeline; + using asset::PTimeline; + using lumiera::Query; +// + typedef asset::ID<Pipe> PID; + typedef asset::ID<Struct> TID; +// +// typedef ModelPortRegistry::ModelPortDescriptor const& MPDescriptor; + + + namespace { // test environment + + inline PID + getPipe (string id) + { + return Pipe::query("id("+id+")"); + } + + inline TID + getTimeline (string id) + { + return asset::Struct::retrieve (Query<Timeline> ("id("+id+")"))->getID(); + } + + struct TestContext + { + + /** setup */ + TestContext() + { } + + /** tear-down */ + ~TestContext() + { + } + }; + } + + + + + /********************************************************************************* + * @test TODO blubb + * + * @see mobject::builder::FixtureChangeDetector + */ + class FixtureChangeDetector_test : public Test + { + + virtual void + run (Arg) + { + TestContext ctx; + } + + + void + fabricating_ModelPorts () + { + } + + + }; + + + /** Register this test class... */ + LAUNCHER (FixtureChangeDetector_test, "unit builder"); + + + +}}} // namespace mobject::builder::test diff --git a/tests/components/proc/mobject/builder/model-port-registry-test.cpp b/tests/components/proc/mobject/builder/model-port-registry-test.cpp new file mode 100644 index 000000000..d9fea6e99 --- /dev/null +++ b/tests/components/proc/mobject/builder/model-port-registry-test.cpp @@ -0,0 +1,275 @@ +/* + ModelPortRegistry(Test) - verify handling of model ports + + Copyright (C) Lumiera.org + 2010, Hermann Vosseler <Ichthyostega@web.de> + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +* *****************************************************/ + + +#include "lib/test/run.hpp" +#include "lib/test/test-helper.hpp" +#include "proc/mobject/builder/model-port-registry.hpp" +#include "proc/asset/timeline.hpp" +#include "proc/asset/pipe.hpp" +#include "lib/query.hpp" +#include "lib/util.hpp" + + +namespace mobject { +namespace builder { +namespace test { + + using util::isSameObject; + using util::isnil; + + using asset::Pipe; + using asset::PPipe; + using asset::Struct; + using asset::Timeline; + using asset::PTimeline; + using lumiera::Query; + + typedef asset::ID<Pipe> PID; + typedef asset::ID<Struct> TID; + + typedef ModelPortRegistry::ModelPortDescriptor const& MPDescriptor; + + + namespace { // test environment + + inline PID + getPipe (string id) + { + return Pipe::query("id("+id+")"); + } + + inline TID + getTimeline (string id) + { + return asset::Struct::retrieve (Query<Timeline> ("id("+id+")"))->getID(); + } + + struct TestContext + { + ModelPortRegistry registry_; + ModelPortRegistry* previous_; + + /** setup */ + TestContext() + : registry_() + , previous_(ModelPortRegistry::setActiveInstance (registry_)) + { } + + /** tear-down */ + ~TestContext() + { + if (previous_) + ModelPortRegistry::setActiveInstance (*previous_); + else + ModelPortRegistry::shutdown(); + } + }; + } + + + + + /********************************************************************************* + * @test create a standalone model port registry to verify the behaviour of + * model ports, accessed through reference handles. This test provides an + * example setup detached from the real usage situation within the builder. + * The ModelPortRegistry management interface is used to create and track a + * set of model ports, to be made visible by an atomic, transactional switch. + * The access for client code through the ModelPort frontend is then verified. + * + * @see mobject::ModelPort + * @see mobject::builder::ModelPortRegistry + */ + class ModelPortRegistry_test : public Test + { + + virtual void + run (Arg) + { + TestContext ctx; + + fabricating_ModelPorts (ctx.registry_); + accessing_ModelPorts(); + transactionalSwitch (ctx.registry_); + } + + + void + fabricating_ModelPorts (ModelPortRegistry& registry) + { + /* == some Assets to play with == */ + PID pipeA = getPipe ("pipeA"); + PID pipeB = getPipe ("pipeB"); + TID someTimeline = getTimeline ("some_test_Timeline"); + + // start out with defining some new model ports...... + MPDescriptor p1 = registry.definePort (pipeA, someTimeline); + MPDescriptor p2 = registry.definePort (pipeB, someTimeline); + + CHECK (registry.contains (pipeA)); + CHECK (registry.contains (pipeB)); + + VERIFY_ERROR (DUPLICATE_MODEL_PORT, registry.definePort(pipeB, someTimeline) ); + CHECK (registry.contains (pipeB)); + + CHECK (pipeA == p1.id()); + CHECK (pipeB == p2.id()); + CHECK (someTimeline == p1.holder()); + CHECK (someTimeline == p2.holder()); + + registry.commit(); + } + + + void + accessing_ModelPorts () + { + PID pipeA = getPipe ("pipeA"); + PID pipeB = getPipe ("pipeB"); + PID pipeWC = getPipe ("WCpipe"); + + ModelPort mp1(pipeA); + ModelPort mp2(pipeB); + + VERIFY_ERROR (INVALID_MODEL_PORT, ModelPort unbefitting(pipeWC) ); + + ModelPort mp1x(pipeA); // can be created multiple times + ModelPort mp2x(mp1x); // can be copied at will + ModelPort mpNull; // can be default constructed (->unconnected) + + CHECK (mp1); + CHECK (mp2); + CHECK (mp1x); + CHECK (!mpNull); // bool check verifies setup and connected state + + CHECK ( ModelPort::exists (pipeA)); // this is the same check, but invoked just with an pipe-ID + CHECK ( ModelPort::exists (pipeB)); + CHECK (!ModelPort::exists (pipeWC)); + + CHECK (mp1 == mp1x); + CHECK (!isSameObject (mp1, mp1x)); + CHECK (mp1 != mp2); + CHECK (mp2 != mp1); + CHECK (mp1 != mpNull); + CHECK (mp2 != mpNull); + + CHECK (mp1.pipe() == pipeA); + CHECK (mp2.pipe() == pipeB); + CHECK (mp1x.pipe() == pipeA); + VERIFY_ERROR (UNCONNECTED_MODEL_PORT, mpNull.pipe()); // any further operations on an unconnected port will throw + VERIFY_ERROR (UNCONNECTED_MODEL_PORT, mpNull.holder()); + + CHECK (mp1.streamType() == pipeA.streamType()); + } + + + void + transactionalSwitch (ModelPortRegistry& registry) + { + PID pipeA = getPipe ("pipeA"); + PID pipeB = getPipe ("pipeB"); + PID pipeWC = getPipe ("WCpipe"); + + CHECK ( ModelPort::exists (pipeB)); + CHECK (!ModelPort::exists (pipeWC)); + + CHECK (ModelPort::exists (pipeA)); + CHECK (registry.contains (pipeA)); + registry.remove (pipeA); + CHECK (!registry.contains (pipeA)); // removed from the current (pending) transaction + CHECK ( ModelPort::exists (pipeA)); // but not yet publicly visible + + // now create a new and differing definition of port A + TID anotherTimeline = getTimeline ("another_test_Timeline"); + MPDescriptor p1 = registry.definePort (pipeA, anotherTimeline); + CHECK (registry.contains (pipeA)); + CHECK (anotherTimeline == p1.holder()); + CHECK (ModelPort(pipeA).holder() != anotherTimeline); + + registry.remove (pipeB); // some more wired definitions + registry.definePort (pipeWC, anotherTimeline); + CHECK (!registry.contains (pipeB)); + CHECK ( registry.contains (pipeWC)); + CHECK ( ModelPort::exists (pipeB)); + CHECK (!ModelPort::exists (pipeWC)); + CHECK ( registry.isRegistered (pipeB)); // this is the same as ModelPort::exists + CHECK (!registry.isRegistered (pipeWC)); // + // Note: pending transaction not yet committed + ModelPort portA(pipeA); // ...... thus the changes aren't reflected to client code + ModelPort portB(pipeB); + VERIFY_ERROR (INVALID_MODEL_PORT, ModelPort ineptly(pipeWC)); + CHECK (portA); + CHECK (portB); + CHECK (portA.pipe() == pipeA); + CHECK (portB.pipe() == pipeB); + CHECK (portA.holder() != anotherTimeline); + + registry.commit(); + CHECK ( ModelPort::exists (pipeA)); // now all our changes got publicly visible + CHECK (!ModelPort::exists (pipeB)); + CHECK ( ModelPort::exists (pipeWC)); + CHECK ( portA); + CHECK (!portB); + CHECK (portA.holder() == anotherTimeline); + CHECK (portA.pipe() == pipeA); + VERIFY_ERROR (INVALID_MODEL_PORT, portB.pipe()); + + ModelPort pwc(pipeWC); // now clients may also use the now officially promoted new port + CHECK (pwc); + CHECK (pwc.pipe() == pipeWC); + CHECK (pwc.holder() == anotherTimeline); + + // Next: doing several changes, + // but finally *not* committing them... + CHECK ( registry.contains (pipeA)); + CHECK (!registry.contains (pipeB)); + CHECK ( registry.contains (pipeWC)); + registry.remove (pipeA); + registry.clear(); // remove everything from the pending transaction + CHECK (!registry.contains (pipeA)); + CHECK (!registry.contains (pipeB)); + CHECK (!registry.contains (pipeWC)); + + registry.definePort (pipeB, anotherTimeline); + CHECK ( registry.contains (pipeB)); + CHECK (!portB); // not committed and thus not visible + CHECK (portA); + CHECK (pwc); + + registry.rollback(); + CHECK ( registry.contains (pipeA)); // no effect to the officialy visible state + CHECK (!registry.contains (pipeB)); + CHECK ( registry.contains (pipeWC)); + + VERIFY_ERROR(INVALID_MODEL_PORT, registry.get(pipeB) ); + CHECK (!portB); + } + }; + + + /** Register this test class... */ + LAUNCHER (ModelPortRegistry_test, "unit session builder"); + + + +}}} // namespace mobject::builder::test diff --git a/tests/components/proc/mobject/builder/segmentation-datastructure-test.cpp b/tests/components/proc/mobject/builder/segmentation-datastructure-test.cpp new file mode 100644 index 000000000..91cd1cd05 --- /dev/null +++ b/tests/components/proc/mobject/builder/segmentation-datastructure-test.cpp @@ -0,0 +1,113 @@ +/* + SegmentationDatastructure(Test) - verify basic properties of the Segmentation + + Copyright (C) Lumiera.org + 2010, Hermann Vosseler <Ichthyostega@web.de> + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +* *****************************************************/ + + +#include "lib/test/run.hpp" +#include "lib/test/test-helper.hpp" +#include "proc/mobject/builder/fixture-change-detector.hpp" +#include "proc/asset/timeline.hpp" +#include "proc/asset/pipe.hpp" +#include "lib/query.hpp" +#include "lib/util.hpp" + + +namespace mobject { +namespace builder { +namespace test { + +// using util::isSameObject; +// using util::isnil; +// + using asset::Pipe; + using asset::PPipe; + using asset::Struct; + using asset::Timeline; + using asset::PTimeline; + using lumiera::Query; +// + typedef asset::ID<Pipe> PID; + typedef asset::ID<Struct> TID; +// +// typedef ModelPortRegistry::ModelPortDescriptor const& MPDescriptor; + + + namespace { // test environment + + inline PID + getPipe (string id) + { + return Pipe::query("id("+id+")"); + } + + inline TID + getTimeline (string id) + { + return asset::Struct::retrieve (Query<Timeline> ("id("+id+")"))->getID(); + } + + struct TestContext + { + + /** setup */ + TestContext() + { } + + /** tear-down */ + ~TestContext() + { + } + }; + } + + + + + /********************************************************************************* + * @test TODO blubb + * + * @see mobject::builder::FixtureChangeDetector + */ + class SegmentationDatastructure_test : public Test + { + + virtual void + run (Arg) + { + TestContext ctx; + } + + + void + fabricating_ModelPorts () + { + } + + + }; + + + /** Register this test class... */ + LAUNCHER (SegmentationDatastructure_test, "unit builder"); + + + +}}} // namespace mobject::builder::test diff --git a/tests/components/proc/mobject/controller/rendersegmenttest.cpp b/tests/components/proc/mobject/controller/rendersegmenttest.cpp index ba20b4754..a74d1bdb4 100644 --- a/tests/components/proc/mobject/controller/rendersegmenttest.cpp +++ b/tests/components/proc/mobject/controller/rendersegmenttest.cpp @@ -1,23 +1,23 @@ /* RenderSegment(Test) - Proc-Layer Integrationtest - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/components/proc/mobject/mobject-interface-test.cpp b/tests/components/proc/mobject/mobject-interface-test.cpp index 49717737f..b1c5a1bae 100644 --- a/tests/components/proc/mobject/mobject-interface-test.cpp +++ b/tests/components/proc/mobject/mobject-interface-test.cpp @@ -1,23 +1,23 @@ /* MObjectInterface(Test) - covers behaviour common to all MObjects - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -93,11 +93,11 @@ namespace test { PDummy testDummy1(*new DummyMO); PDummy testDummy2(*new TestSubMO1); - ASSERT (testClip1->isValid()); - ASSERT (testClip2->isValid()); - ASSERT (testLabel1->isValid()); - ASSERT (testDummy1->isValid()); - ASSERT (testDummy2->isValid()); + CHECK (testClip1->isValid()); + CHECK (testClip2->isValid()); + CHECK (testLabel1->isValid()); + CHECK (testDummy1->isValid()); + CHECK (testDummy2->isValid()); Time lenC1 = testClip1->getLength(); Time lenC2 = testClip2->getLength(); diff --git a/tests/components/proc/mobject/mobject-ref-test.cpp b/tests/components/proc/mobject/mobject-ref-test.cpp index 2bd8239a7..c4b9bbd50 100644 --- a/tests/components/proc/mobject/mobject-ref-test.cpp +++ b/tests/components/proc/mobject/mobject-ref-test.cpp @@ -1,23 +1,23 @@ /* MObjectRef(Test) - validating basic properties of the external MObject reference tag - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -81,7 +81,7 @@ namespace test { * MObjects placed into the session. We create a simple, simulated * "session" (no real session datastructure) and a mock PlacementIndex. * Then we add two Placements, which can be used then to build - * MObjectRef instances to validate their behaviour. + * MObjectRef instances to validate their behaviour. * @see mobject::Placement * @see mobject::MObject * @see mobject::PlacementRef_test @@ -95,7 +95,7 @@ namespace test { virtual void - run (Arg) + run (Arg) { // create data simulating a "Session" @@ -106,10 +106,10 @@ namespace test { testClip1.chain(Time(10)); testClip2.chain(Time(20)); - ASSERT (testClip1->isValid()); - ASSERT (testClip2->isValid()); - ASSERT (2 == testClip1.use_count()); // one by the placement and one by the clip-Asset - ASSERT (2 == testClip2.use_count()); + CHECK (testClip1->isValid()); + CHECK (testClip2->isValid()); + CHECK (2 == testClip1.use_count()); // one by the placement and one by the clip-Asset + CHECK (2 == testClip2.use_count()); // Prepare an (test)Index @@ -119,7 +119,7 @@ namespace test { // Add the Clips to "session" (here: dummy index) PMObj::ID clip1ID = index->insert (testClip1, root); PMObj::ID clip2ID = index->insert (testClip2, root); - ASSERT (2 == index->size()); + CHECK (2 == index->size()); // use the IDs returned on insertion to fetch // language references to the placement instance within the index @@ -127,8 +127,8 @@ namespace test { PMObj& pClip1 = index->find(clip1ID); PMObj& pClip2 = index->find(clip2ID); - ASSERT (3 == pClip1.use_count()); // clip-Asset, original placement, new placement in index - ASSERT (3 == pClip2.use_count()); + CHECK (3 == pClip1.use_count()); // clip-Asset, original placement, new placement in index + CHECK (3 == pClip2.use_count()); checkUseCount(pClip1.use_count()); // set ref point for later checks // extract various kinds of IDs and refs @@ -160,12 +160,12 @@ namespace test { // verify clean state index->remove (pClip1); index->remove (pClip2); // note: this invalidates pClip1 and pClip2; - ASSERT (!ref1); - ASSERT (!ref2); - ASSERT (0 == index->size()); - ASSERT (1 == index.use_count()); - ASSERT (2 == testClip1.use_count()); - ASSERT (2 == testClip2.use_count()); + CHECK (!ref1); + CHECK (!ref2); + CHECK (0 == index->size()); + CHECK (1 == index.use_count()); + CHECK (2 == testClip1.use_count()); + CHECK (2 == testClip2.use_count()); index.reset(); } @@ -176,14 +176,14 @@ namespace test { checkBuildMObjectRef (REF& refObj, void* placementAdr) { MORef<Clip> rMO; - ASSERT (!rMO); // still empty (not bound) - ASSERT (0==rMO.use_count()); + CHECK (!rMO); // still empty (not bound) + CHECK (0==rMO.use_count()); cout << string(rMO) << endl; /////////////////////TICKET #527 cout << showSizeof(rMO) << endl; // activate by binding to provided ref rMO.activate(refObj); - ASSERT (rMO); // now bound + CHECK (rMO); // now bound cout << string(rMO) << endl; /////////////////////TICKET #527 // access MObject (Clip API) @@ -191,29 +191,29 @@ namespace test { PMedia media = rMO->getMedia(); cout << str(media) << endl; /////////////////////TICKET #520 Time mediaLength = media->getLength(); - ASSERT (Time(0) < mediaLength); - ASSERT (rMO->isValid()); + CHECK (Time(0) < mediaLength); + CHECK (rMO->isValid()); // access the Placement-API - ASSERT (checkUseCount(rMO, 1)); // now rMO shares ownership with the Placement --> use-count += 1 - ASSERT (Time(0) < rMO.getStartTime()); // (internally, this resolves to an ExplicitPlacement) /////////TICKET #332 - ASSERT ( rMO.isCompatible<MObject>()); - ASSERT ( rMO.isCompatible<Clip>()); - ASSERT (!rMO.isCompatible<TestSubMO1>()); + CHECK (checkUseCount(rMO, 1)); // now rMO shares ownership with the Placement --> use-count += 1 + CHECK (Time(0) < rMO.getStartTime()); // (internally, this resolves to an ExplicitPlacement) /////////TICKET #332 + CHECK ( rMO.isCompatible<MObject>()); + CHECK ( rMO.isCompatible<Clip>()); + CHECK (!rMO.isCompatible<TestSubMO1>()); Time start = rMO.getStartTime(); // re-link to the Placement (note we get the Clip API!) Placement<Clip> & refP = rMO.getPlacement(); - ASSERT (refP.isValid()); - ASSERT (refP.use_count() == rMO.use_count()); - ASSERT (checkUseCount(refP, 1)); // use count not changed - ASSERT (&refP == placementAdr); // actually denotes the address of the original Placement in the "session" + CHECK (refP.isValid()); + CHECK (refP.use_count() == rMO.use_count()); + CHECK (checkUseCount(refP, 1)); // use count not changed + CHECK (&refP == placementAdr); // actually denotes the address of the original Placement in the "session" cout << string(refP) << endl; ExplicitPlacement exPla = refP.resolve(); - ASSERT (exPla.time == start); // recovered Placement resolves to the same time as provided by the proxied API - ASSERT (checkUseCount(refP, 2)); // but now we've indeed created an additional owner (exPla) - ASSERT (checkUseCount(rMO, 2)); + CHECK (exPla.time == start); // recovered Placement resolves to the same time as provided by the proxied API + CHECK (checkUseCount(refP, 2)); // but now we've indeed created an additional owner (exPla) + CHECK (checkUseCount(rMO, 2)); } @@ -228,93 +228,93 @@ namespace test { rM.activate (p1); rC.activate (p2); - ASSERT (rM && rC); - ASSERT (!(rM == rC) && !(rC == rM)); - ASSERT ( (rM != rC) && (rC != rM)); + CHECK (rM && rC); + CHECK (!(rM == rC) && !(rC == rM)); + CHECK ( (rM != rC) && (rC != rM)); // mixed comparisons - ASSERT ( (rM == pRef1) && (pRef1 == rM)); - ASSERT ( (rC == pRef2) && (pRef2 == rC)); - ASSERT (!(rM != pRef1) && !(pRef1 != rM)); - ASSERT (!(rC != pRef2) && !(pRef2 != rC)); - ASSERT ( (rM != pRef2) && (pRef2 != rM)); - ASSERT ( (rC != pRef1) && (pRef1 != rC)); - ASSERT (!(rM == pRef2) && !(pRef2 == rM)); - ASSERT (!(rC == pRef1) && !(pRef1 == rC)); + CHECK ( (rM == pRef1) && (pRef1 == rM)); + CHECK ( (rC == pRef2) && (pRef2 == rC)); + CHECK (!(rM != pRef1) && !(pRef1 != rM)); + CHECK (!(rC != pRef2) && !(pRef2 != rC)); + CHECK ( (rM != pRef2) && (pRef2 != rM)); + CHECK ( (rC != pRef1) && (pRef1 != rC)); + CHECK (!(rM == pRef2) && !(pRef2 == rM)); + CHECK (!(rC == pRef1) && !(pRef1 == rC)); - ASSERT ( (rM == p1.getID()) ); - ASSERT ( (rC == p2.getID()) ); - ASSERT (!(rM != p1.getID()) ); - ASSERT (!(rC != p2.getID()) ); - ASSERT ( (rM != p2.getID()) ); - ASSERT ( (rC != p1.getID()) ); - ASSERT (!(rM == p2.getID()) ); - ASSERT (!(rC == p1.getID()) ); + CHECK ( (rM == p1.getID()) ); + CHECK ( (rC == p2.getID()) ); + CHECK (!(rM != p1.getID()) ); + CHECK (!(rC != p2.getID()) ); + CHECK ( (rM != p2.getID()) ); + CHECK ( (rC != p1.getID()) ); + CHECK (!(rM == p2.getID()) ); + CHECK (!(rC == p1.getID()) ); rC.activate (pRef1); - ASSERT ( (rM == rC) && (rC == rM)); - ASSERT (!(rM != rC) && !(rC != rM)); + CHECK ( (rM == rC) && (rC == rM)); + CHECK (!(rM != rC) && !(rC != rM)); - ASSERT ( (rC == pRef1) && (pRef1 == rC)); - ASSERT (!(rC != pRef1) && !(pRef1 != rC)); - ASSERT ( (rC != pRef2) && (pRef2 != rC)); - ASSERT (!(rC == pRef2) && !(pRef2 == rC)); + CHECK ( (rC == pRef1) && (pRef1 == rC)); + CHECK (!(rC != pRef1) && !(pRef1 != rC)); + CHECK ( (rC != pRef2) && (pRef2 != rC)); + CHECK (!(rC == pRef2) && !(pRef2 == rC)); - ASSERT ( (rC == p1.getID()) ); - ASSERT (!(rC != p1.getID()) ); - ASSERT ( (rC != p2.getID()) ); - ASSERT (!(rC == p2.getID()) ); + CHECK ( (rC == p1.getID()) ); + CHECK (!(rC != p1.getID()) ); + CHECK ( (rC != p2.getID()) ); + CHECK (!(rC == p2.getID()) ); rM.close(); - ASSERT (!rM); - ASSERT (!(rM == rC) && !(rC == rM)); - ASSERT ( (rM != rC) && (rC != rM)); + CHECK (!rM); + CHECK (!(rM == rC) && !(rC == rM)); + CHECK ( (rM != rC) && (rC != rM)); - ASSERT (!(rM == pRef1) && !(pRef1 == rM)); - ASSERT ( (rM != pRef1) && (pRef1 != rM)); - ASSERT ( (rM != pRef2) && (pRef2 != rM)); - ASSERT (!(rM == pRef2) && !(pRef2 == rM)); + CHECK (!(rM == pRef1) && !(pRef1 == rM)); + CHECK ( (rM != pRef1) && (pRef1 != rM)); + CHECK ( (rM != pRef2) && (pRef2 != rM)); + CHECK (!(rM == pRef2) && !(pRef2 == rM)); - ASSERT (!(rM == p1.getID()) ); - ASSERT ( (rM != p1.getID()) ); - ASSERT ( (rM != p2.getID()) ); - ASSERT (!(rM == p2.getID()) ); + CHECK (!(rM == p1.getID()) ); + CHECK ( (rM != p1.getID()) ); + CHECK ( (rM != p2.getID()) ); + CHECK (!(rM == p2.getID()) ); } void checkLifecycle (PMObj const& p1, PMObj const& p2) { - ASSERT (checkUseCount(p1, 0)); - ASSERT (checkUseCount(p2, 0)); + CHECK (checkUseCount(p1, 0)); + CHECK (checkUseCount(p2, 0)); MORef<Clip> rMO; - ASSERT (!rMO); - ASSERT (0 == rMO.use_count()); + CHECK (!rMO); + CHECK (0 == rMO.use_count()); rMO.activate(p1); - ASSERT (rMO); - ASSERT (rMO->getMedia()->getFilename() == "test-1"); - ASSERT (checkUseCount(rMO, 1)); - ASSERT (checkUseCount(p1, 1)); // sharing ownership - ASSERT (checkUseCount(p2, 0)); + CHECK (rMO); + CHECK (rMO->getMedia()->getFilename() == "test-1"); + CHECK (checkUseCount(rMO, 1)); + CHECK (checkUseCount(p1, 1)); // sharing ownership + CHECK (checkUseCount(p2, 0)); rMO.activate(p2); - ASSERT (rMO); - ASSERT (rMO->getMedia()->getFilename() == "test-2"); - ASSERT (checkUseCount(rMO, 1)); - ASSERT (checkUseCount(p1, 0)); // detached, use count dropped to previous value - ASSERT (checkUseCount(p2, 1)); // sharing ownership + CHECK (rMO); + CHECK (rMO->getMedia()->getFilename() == "test-2"); + CHECK (checkUseCount(rMO, 1)); + CHECK (checkUseCount(p1, 0)); // detached, use count dropped to previous value + CHECK (checkUseCount(p2, 1)); // sharing ownership rMO.activate(p2); - ASSERT (checkUseCount(rMO, 1)); // no change + CHECK (checkUseCount(rMO, 1)); // no change rMO.close(); - ASSERT (!rMO); - ASSERT (checkUseCount(p1, 0)); - ASSERT (checkUseCount(p2, 0)); + CHECK (!rMO); + CHECK (checkUseCount(p1, 0)); + CHECK (checkUseCount(p2, 0)); VERIFY_ERROR (BOTTOM_MOBJECTREF, rMO.getPlacement() ); VERIFY_ERROR (BOTTOM_MOBJECTREF, rMO->getMedia() ); @@ -327,39 +327,39 @@ namespace test { MORef<Clip> rClip; MORef<TestSubMO1> rSub1; - ASSERT ( ! rMObj.use_count()); - ASSERT ( ! rClip.use_count()); - ASSERT ( ! rSub1.use_count()); + CHECK ( ! rMObj.use_count()); + CHECK ( ! rClip.use_count()); + CHECK ( ! rSub1.use_count()); rMObj.activate(luid); - ASSERT (checkUseCount(rMObj, 1)); - ASSERT ( ! rClip.use_count()); - ASSERT ( ! rSub1.use_count()); + CHECK (checkUseCount(rMObj, 1)); + CHECK ( ! rClip.use_count()); + CHECK ( ! rSub1.use_count()); rClip.activate(rMObj); // attach on existing MObjectRef - ASSERT (checkUseCount(rMObj, 2)); - ASSERT (checkUseCount(rClip, 2)); - ASSERT ( ! rSub1.use_count()); + CHECK (checkUseCount(rMObj, 2)); + CHECK (checkUseCount(rClip, 2)); + CHECK ( ! rSub1.use_count()); // impossible, because Clip isn't a subclass of TestSubMO1: VERIFY_ERROR (INVALID_PLACEMENTREF, rSub1.activate(luid) ); VERIFY_ERROR (INVALID_PLACEMENTREF, rSub1 = rMObj ); - ASSERT (rMObj->isValid()); - ASSERT (rClip->isValid()); - ASSERT (rMObj.getPlacement().getID() == rClip.getPlacement().getID()); + CHECK (rMObj->isValid()); + CHECK (rClip->isValid()); + CHECK (rMObj.getPlacement().getID() == rClip.getPlacement().getID()); // doesn't compile, because the function isn't on MObject API: // rMObj->getMedia(); rClip.close(); - ASSERT (checkUseCount(rMObj, 1)); - ASSERT ( ! rClip.use_count()); + CHECK (checkUseCount(rMObj, 1)); + CHECK ( ! rClip.use_count()); // can assign, because the actual type is checked: rClip = rMObj; - ASSERT (checkUseCount(rMObj, 2)); - ASSERT (checkUseCount(rClip, 2)); + CHECK (checkUseCount(rMObj, 2)); + CHECK (checkUseCount(rClip, 2)); cout << string(rClip) << endl; //////////TICKET #527 cout << string(rClip->getMedia()->ident) << endl; //////////TICKET #520 diff --git a/tests/components/proc/mobject/output-mapping-test.cpp b/tests/components/proc/mobject/output-mapping-test.cpp index db6f36ee1..e8a6a7e03 100644 --- a/tests/components/proc/mobject/output-mapping-test.cpp +++ b/tests/components/proc/mobject/output-mapping-test.cpp @@ -1,23 +1,23 @@ /* OutputMapping(Test) - verify generic output designation mapping - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -76,7 +76,7 @@ namespace test { { PPipe srcP = Pipe::lookup (sourcePipeID); format queryPattern ("id(master_%1%), stream(%1%), ord(%2%)"); - return Query<Pipe> (queryPattern % srcP->getStreamID() % seqNr); + return Query<Pipe> (str(queryPattern % srcP->getStreamID().getSym() % seqNr)); } }; diff --git a/tests/components/proc/mobject/placement-basic-test.cpp b/tests/components/proc/mobject/placement-basic-test.cpp index b020173cc..150907b62 100644 --- a/tests/components/proc/mobject/placement-basic-test.cpp +++ b/tests/components/proc/mobject/placement-basic-test.cpp @@ -1,23 +1,23 @@ /* PlacementBasic(Test) - basic Placement and MObject handling - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -30,10 +30,8 @@ #include "lib/util.hpp" #include "proc/mobject/session/mobjectfactory.hpp" ////TODO: avoidable? -//#include <boost/format.hpp> #include <iostream> -//using boost::format; using lumiera::Time; using util::contains; using std::string; @@ -41,61 +39,57 @@ using std::cout; namespace mobject { - namespace session { - namespace test { - - using asset::VIDEO; - - - - /******************************************************************* - * @test basic behaviour of Placements and access to MObjects. - * @see mobject::Placement - * @see mobject::MObject#create - * @see mobject::Placement#addPlacement - * @see mobject::Placement#resolve - */ - class PlacementBasic_test : public Test - { - typedef shared_ptr<asset::Media> PM; - typedef shared_ptr<asset::Clip> PCA; - - virtual void - run (Arg) - { - // create Clip-MObject, which is wrapped into a placement (smart ptr) - PM media = asset::Media::create("test-1", VIDEO); - PCA clipAsset = Media::create(*media); - Placement<Clip> pc = MObject::create (*clipAsset, *media); - - // use of the Clip-MObject interface by dereferencing the placement - PM clip_media = pc->getMedia(); - ASSERT (clip_media->ident.category.hasKind (VIDEO)); - - // using the Placement interface - // TODO: how to handle insufficiently determinated Placement? Throw? - FixedLocation & fixloc = pc.chain(Time(1)); // TODO: the track?? - ExplicitPlacement expla = pc.resolve(); - ASSERT (expla.time == Time(1)); - ASSERT (!expla.chain.isOverdetermined()); -// ASSERT (*expla == *pc); ////////////////////////////////////////////TICKET #511 define equivalence of locating chains and solutions - - // now overconstraining with another Placement - pc.chain(Time(2)); - ExplicitPlacement expla2 = pc.resolve(); - ASSERT (expla2.time == Time(2)); // the latest addition wins - ASSERT (expla2.chain.isOverdetermined()); - } - }; - - - /** Register this test class... */ - LAUNCHER (PlacementBasic_test, "unit session"); - - - - } // namespace test +namespace session { +namespace test { - } // namespace session - -} // namespace mobject + using asset::VIDEO; + + + + /******************************************************************* + * @test basic behaviour of Placements and access to MObjects. + * @see mobject::Placement + * @see mobject::MObject#create + * @see mobject::Placement#addPlacement + * @see mobject::Placement#resolve + */ + class PlacementBasic_test : public Test + { + typedef shared_ptr<asset::Media> PM; + typedef shared_ptr<asset::Clip> PCA; + + virtual void + run (Arg) + { + // create Clip-MObject, which is wrapped into a placement (smart ptr) + PM media = asset::Media::create("test-1", VIDEO); + PCA clipAsset = Media::create(*media); + Placement<Clip> pc = MObject::create (*clipAsset, *media); + + // use of the Clip-MObject interface by dereferencing the placement + PM clip_media = pc->getMedia(); + CHECK (clip_media->ident.category.hasKind (VIDEO)); + + // using the Placement interface + // TODO: how to handle insufficiently determinated Placement? Throw? + FixedLocation & fixloc = pc.chain(Time(1)); // TODO: the track?? + ExplicitPlacement expla = pc.resolve(); + CHECK (expla.time == Time(1)); + CHECK (!expla.chain.isOverdetermined()); +// CHECK (*expla == *pc); ////////////////////////////////////////////TICKET #511 define equivalence of locating chains and solutions + + // now overconstraining with another Placement + pc.chain(Time(2)); + ExplicitPlacement expla2 = pc.resolve(); + CHECK (expla2.time == Time(2)); // the latest addition wins + CHECK (expla2.chain.isOverdetermined()); + } + }; + + + /** Register this test class... */ + LAUNCHER (PlacementBasic_test, "unit session"); + + + +}}} // namespace mobject::session::test diff --git a/tests/components/proc/mobject/placement-hierarchy-test.cpp b/tests/components/proc/mobject/placement-hierarchy-test.cpp index 4a2d8514e..12196b603 100644 --- a/tests/components/proc/mobject/placement-hierarchy-test.cpp +++ b/tests/components/proc/mobject/placement-hierarchy-test.cpp @@ -1,23 +1,23 @@ /* PlacementHierarchy(Test) - cooperating hierarchical placement types - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -79,24 +79,24 @@ namespace test { PMObj pClip = asset::Media::create("test-1", asset::VIDEO)->createClip(); - ASSERT (INSTANCEOF (Placement<MObject>, &pSub1)); - ASSERT (INSTANCEOF (Placement<MObject>, &pSub2)); - ASSERT (INSTANCEOF (Placement<MObject>, &pSub3)); - ASSERT (INSTANCEOF (Placement<MObject>, &pSubM)); + CHECK (INSTANCEOF (Placement<MObject>, &pSub1)); + CHECK (INSTANCEOF (Placement<MObject>, &pSub2)); + CHECK (INSTANCEOF (Placement<MObject>, &pSub3)); + CHECK (INSTANCEOF (Placement<MObject>, &pSubM)); - ASSERT (INSTANCEOF (Placement<DummyMO>, &pSub1)); - ASSERT (INSTANCEOF (Placement<DummyMO>, &pSub2)); - ASSERT (INSTANCEOF (Placement<DummyMO>, &pSub3)); + CHECK (INSTANCEOF (Placement<DummyMO>, &pSub1)); + CHECK (INSTANCEOF (Placement<DummyMO>, &pSub2)); + CHECK (INSTANCEOF (Placement<DummyMO>, &pSub3)); - ASSERT (INSTANCEOF (TestPlacement<DummyMO>, &pSub1)); - ASSERT (INSTANCEOF (TestPlacement<DummyMO>, &pSub2)); - ASSERT (INSTANCEOF (TestPlacement<DummyMO>, &pSub3)); + CHECK (INSTANCEOF (TestPlacement<DummyMO>, &pSub1)); + CHECK (INSTANCEOF (TestPlacement<DummyMO>, &pSub2)); + CHECK (INSTANCEOF (TestPlacement<DummyMO>, &pSub3)); - ASSERT ( INSTANCEOF (TestPlacement<TestSubMO2>, &pSub3)); + CHECK ( INSTANCEOF (TestPlacement<TestSubMO2>, &pSub3)); // the following won't succeed... -// ASSERT (INSTANCEOF (TestPlacement<TestSubMO21>, &pSub2)); // parent not instance of subclass -// ASSERT (INSTANCEOF (TestPlacement<TestSubMO2>, &pSub1)); // separate branch in the hierarchy +// CHECK (INSTANCEOF (TestPlacement<TestSubMO21>, &pSub2)); // parent not instance of subclass +// CHECK (INSTANCEOF (TestPlacement<TestSubMO2>, &pSub1)); // separate branch in the hierarchy cout << showSizeof(pSub1) << endl; cout << showSizeof(pSub2) << endl; @@ -104,8 +104,8 @@ namespace test { cout << showSizeof(pSubM) << endl; cout << showSizeof(pClip) << endl; - ASSERT (sizeof(pSub1) == sizeof(pSub3)); - ASSERT (sizeof(pClip) == sizeof(pSub3)); + CHECK (sizeof(pSub1) == sizeof(pSub3)); + CHECK (sizeof(pClip) == sizeof(pSub3)); cout << string(pSub1) << endl; cout << string(pSub2) << endl; @@ -118,12 +118,12 @@ namespace test { pSub3->specialAPI(); - ASSERT (2 == pSubM.use_count()); - ASSERT (2 == pSub3.use_count()); + CHECK (2 == pSubM.use_count()); + CHECK (2 == pSub3.use_count()); pClip = pSubM; // slicing and shared ownership - ASSERT (3 == pSubM.use_count()); - ASSERT (3 == pSub3.use_count()); - ASSERT (3 == pClip.use_count()); + CHECK (3 == pSubM.use_count()); + CHECK (3 == pSub3.use_count()); + CHECK (3 == pClip.use_count()); // now do a brute-force re-interpretation @@ -131,8 +131,8 @@ namespace test { PSub21& hijacked = reinterpret_cast<PSub21&> (pClip); hijacked->specialAPI(); - ASSERT (3 == hijacked.use_count()); - ASSERT (hijacked.getID() == pClip.getID()); + CHECK (3 == hijacked.use_count()); + CHECK (hijacked.getID() == pClip.getID()); cout << format_PlacementID(pSub1) << endl; cout << format_PlacementID(pSub2) << endl; @@ -141,11 +141,11 @@ namespace test { cout << format_PlacementID(pClip) << endl; pClip = pSub1; - ASSERT (2 == pSubM.use_count()); - ASSERT (2 == pSub3.use_count()); + CHECK (2 == pSubM.use_count()); + CHECK (2 == pSub3.use_count()); - ASSERT (2 == pClip.use_count()); - ASSERT (2 == pSub1.use_count()); + CHECK (2 == pClip.use_count()); + CHECK (2 == pSub1.use_count()); ///////////////////////////////////////////////////////////////////////////////TODO: find a way to configure NoBug to throw in case of assertion ///////////////////////////////////////////////////////////////////////////////TODO: configure NoBug specifically for the testsuite @@ -154,12 +154,12 @@ namespace test { #endif // runtime type diagnostics based on pointee RTTI - ASSERT ( pSub2.isCompatible<MObject>()); - ASSERT ( pSub2.isCompatible<DummyMO>()); - ASSERT ( pSub2.isCompatible<TestSubMO2>()); - ASSERT (!pSub2.isCompatible<TestSubMO21>()); - ASSERT (!pSub2.isCompatible<TestSubMO1>()); - ASSERT (!pSub2.isCompatible<Clip>()); + CHECK ( pSub2.isCompatible<MObject>()); + CHECK ( pSub2.isCompatible<DummyMO>()); + CHECK ( pSub2.isCompatible<TestSubMO2>()); + CHECK (!pSub2.isCompatible<TestSubMO21>()); + CHECK (!pSub2.isCompatible<TestSubMO1>()); + CHECK (!pSub2.isCompatible<Clip>()); } }; diff --git a/tests/components/proc/mobject/placement-object-identity-test.cpp b/tests/components/proc/mobject/placement-object-identity-test.cpp index dad475fb0..6d3e1044c 100644 --- a/tests/components/proc/mobject/placement-object-identity-test.cpp +++ b/tests/components/proc/mobject/placement-object-identity-test.cpp @@ -1,23 +1,23 @@ /* PlacementObjectIdentity(Test) - object identity for placements into the session - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -84,10 +84,10 @@ namespace test { pClip1.chain(Time(10)); pClip2.chain(Time(20)); - ASSERT (pClip1->isValid()); - ASSERT (pClip2->isValid()); - ASSERT (2 == pClip1.use_count()); // one by the placement and one by the clip-Asset - ASSERT (2 == pClip2.use_count()); + CHECK (pClip1->isValid()); + CHECK (pClip2->isValid()); + CHECK (2 == pClip1.use_count()); // one by the placement and one by the clip-Asset + CHECK (2 == pClip2.use_count()); ////////////////TODO direct comparisons ////////////////TODO direct comparisons @@ -118,24 +118,24 @@ namespace test { PlacementRef<MObject> ref2 (pClip2); MORef<Clip> rMO; - ASSERT (!rMO); // still empty (not bound) + CHECK (!rMO); // still empty (not bound) // activate by binding to provided ref rMO.activate(refObj); - ASSERT (rMO); // now bound + CHECK (rMO); // now bound ///TODO access Placement, fetch ID // re-link to the Placement (note we get the Clip API!) Placement<Clip> & refP = rMO.getPlacement(); - ASSERT (refP); - ASSERT (3 == refP.use_count()); - ASSERT (&refP == placementAdr); // actually denotes the address of the original Placement in the "session" + CHECK (refP); + CHECK (3 == refP.use_count()); + CHECK (&refP == placementAdr); // actually denotes the address of the original Placement in the "session" ExplicitPlacement exPla = refP.resolve(); - ASSERT (exPla.time == start); // recovered Placement resolves to the same time as provided by the proxied API - ASSERT (4 == refP.use_count()); // but now we've indeed created an additional owner (exPla) - ASSERT (4 == rMO.use_count()); + CHECK (exPla.time == start); // recovered Placement resolves to the same time as provided by the proxied API + CHECK (4 == refP.use_count()); // but now we've indeed created an additional owner (exPla) + CHECK (4 == rMO.use_count()); ////////////////TODO now do the cross comparisons diff --git a/tests/components/proc/mobject/placement-ref-test.cpp b/tests/components/proc/mobject/placement-ref-test.cpp index 23ee75583..dce4db94d 100644 --- a/tests/components/proc/mobject/placement-ref-test.cpp +++ b/tests/components/proc/mobject/placement-ref-test.cpp @@ -1,23 +1,23 @@ /* PlacementRef(Test) - generic reference to a Placement within the Session - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -49,8 +49,8 @@ namespace test { typedef TestPlacement<TestSubMO21> PSub; typedef PlacementMO::ID P_ID; - - + + /*************************************************************************** * @test properties and behaviour of the reference-mechanism for Placements. * We create an mock placement index and install it to be used @@ -67,7 +67,7 @@ namespace test { { virtual void - run (Arg) + run (Arg) { PSub testPlacement1(*new TestSubMO21); PSub testPlacement2(*new TestSubMO21); @@ -79,15 +79,15 @@ namespace test { P_ID id1 = index->insert (testPlacement1, root); P_ID tmpID = index->insert (testPlacement2, root); - ASSERT (2 == index->size()); + CHECK (2 == index->size()); // References to the "live" placements within our test index PMO& p1 = index->find(id1); PMO& p2 = index->find(tmpID); PlacementMO::Id<TestSubMO21> id2 = p2.recastID<TestSubMO21>(); - ASSERT (id2); - ASSERT (id2 != p1.getID()); + CHECK (id2); + CHECK (id2 != p1.getID()); // create placement refs PlacementRef<TestSubMO21> ref1 (p1); @@ -95,16 +95,16 @@ namespace test { PlacementRef<MObject> refX (ref2); - ASSERT (ref1); - ASSERT (ref2); - ASSERT (refX); - ASSERT (ref1 != ref2); - ASSERT (ref2 == refX); + CHECK (ref1); + CHECK (ref2); + CHECK (refX); + CHECK (ref1 != ref2); + CHECK (ref2 == refX); // indeed a "reference": resolves to the same memory location - ASSERT (isSameObject (p1, *ref1)); - ASSERT (isSameObject (p2, *ref2)); - ASSERT (isSameObject (p2, *refX)); + CHECK (isSameObject (p1, *ref1)); + CHECK (isSameObject (p2, *ref2)); + CHECK (isSameObject (p2, *refX)); cout << string(*ref1) << endl; cout << string(*ref2) << endl; @@ -112,72 +112,72 @@ namespace test { // PlacementRef mimics placement behaviour ref1->specialAPI(); - ASSERT (2 == ref1.use_count()); - ASSERT (2 == ref2.use_count()); + CHECK (2 == ref1.use_count()); + CHECK (2 == ref2.use_count()); ExplicitPlacement exPla = refX.resolve(); - ASSERT (exPla.time == Time(2)); // indeed get back the time we set on p2 above - ASSERT (3 == ref2.use_count()); // exPla shares ownership with p2 + CHECK (exPla.time == Time(2)); // indeed get back the time we set on p2 above + CHECK (3 == ref2.use_count()); // exPla shares ownership with p2 - ASSERT (index->contains(ref1)); // ref can stand-in for a placement-ID - ASSERT (sizeof(id2) == sizeof(ref2)); // (and is actually implemented based on an ID) + CHECK (index->contains(ref1)); // ref can stand-in for a placement-ID + CHECK (sizeof(id2) == sizeof(ref2)); // (and is actually implemented based on an ID) // assignment on placement refs refX = ref1; - ASSERT (ref1 != ref2); - ASSERT (ref1 == refX); - ASSERT (ref2 != refX); + CHECK (ref1 != ref2); + CHECK (ref1 == refX); + CHECK (ref2 != refX); // re-assignment with a new placement refX = p2; - ASSERT (refX == ref2); - ASSERT (isSameObject (*refX, p2)); + CHECK (refX == ref2); + CHECK (isSameObject (*refX, p2)); refX = p1.getID(); - ASSERT (refX == ref1); - ASSERT (refX != ref2); - ASSERT (isSameObject (*refX, p1)); + CHECK (refX == ref1); + CHECK (refX != ref2); + CHECK (isSameObject (*refX, p1)); LumieraUid luid2 (p2.getID().get()); refX = luid2; // assignment works even based on a plain LUID ref2 = ref1; ref1 = refX; // dynamic type check when downcasting - ASSERT (isSameObject (p1, *ref2)); - ASSERT (isSameObject (p2, *ref1)); + CHECK (isSameObject (p1, *ref2)); + CHECK (isSameObject (p2, *ref1)); refX = ref2; ref2 = ref1; ref1 = refX; - ASSERT (isSameObject (p1, *ref1)); - ASSERT (isSameObject (p1, *refX)); - ASSERT (isSameObject (p2, *ref2)); - ASSERT (ref1 != ref2); - ASSERT (ref1 == refX); - ASSERT (ref2 != refX); + CHECK (isSameObject (p1, *ref1)); + CHECK (isSameObject (p1, *refX)); + CHECK (isSameObject (p2, *ref2)); + CHECK (ref1 != ref2); + CHECK (ref1 == refX); + CHECK (ref2 != refX); // resolution is indeed "live", we see changes to the referred placement - ASSERT (refX.resolve().time == Time::MIN); + CHECK (refX.resolve().time == Time::MIN); p1.chain = p2.chain; // do a change on the placement within index.... - ASSERT (refX.resolve().time == Time(2)); // now we get the time tie we originally set on p2 + CHECK (refX.resolve().time == Time(2)); // now we get the time tie we originally set on p2 - ASSERT (p1.getID() != p2.getID()); // but the instance identities are still unaltered - ASSERT (2 == ref1.use_count()); - ASSERT (3 == ref2.use_count()); // one more because of shared ownership with exPla + CHECK (p1.getID() != p2.getID()); // but the instance identities are still unaltered + CHECK (2 == ref1.use_count()); + CHECK (3 == ref2.use_count()); // one more because of shared ownership with exPla // actively removing p2 invalidates the other refs to index->remove (ref1); - ASSERT (!ref1); // checks invalidity without throwing - ASSERT (!refX); + CHECK (!ref1); // checks invalidity without throwing + CHECK (!refX); VERIFY_ERROR(NOT_IN_SESSION, *ref1 ); // deliberately create an invalid PlacementRef PlacementRef<TestSubMO21> bottom; - ASSERT (!bottom); + CHECK (!bottom); VERIFY_ERROR(BOTTOM_PLACEMENTREF, *bottom ); VERIFY_ERROR(BOTTOM_PLACEMENTREF, bottom->specialAPI() ); VERIFY_ERROR(BOTTOM_PLACEMENTREF, bottom.resolve() ); //consistency check; then reset PlacementRef index to default - ASSERT (1 == index->size()); - ASSERT (index->isValid()); + CHECK (1 == index->size()); + CHECK (index->isValid()); index.reset(); } }; diff --git a/tests/components/proc/mobject/session/addcliptest.cpp b/tests/components/proc/mobject/session/addcliptest.cpp index 09022956f..34e83d2b5 100644 --- a/tests/components/proc/mobject/session/addcliptest.cpp +++ b/tests/components/proc/mobject/session/addcliptest.cpp @@ -1,23 +1,23 @@ /* AddClip(Test) - adding an Clip-MObject to the Model/Session - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -62,7 +62,7 @@ namespace mobject sess->attach (clip); ///////////////////////////////////////////////////////////////////TICKET #499 -// ASSERT (sess->currEDL().contains (clip)); +// CHECK (sess->currEDL().contains (clip)); // TODO: Clip-Asset and Placement magic?? } }; diff --git a/tests/components/proc/mobject/session/defs-manager-impl-test.cpp b/tests/components/proc/mobject/session/defs-manager-impl-test.cpp new file mode 100644 index 000000000..f3cc8d5e0 --- /dev/null +++ b/tests/components/proc/mobject/session/defs-manager-impl-test.cpp @@ -0,0 +1,176 @@ +/* + DefsManagerImpl(Test) - checking implementation details of the defaults manager + + Copyright (C) Lumiera.org + 2008, Hermann Vosseler <Ichthyostega@web.de> + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +* *****************************************************/ + + +#include "pre_a.hpp" + +#include "lib/test/run.hpp" +#include "lib/util.hpp" + +#include "proc/asset.hpp" +#include "proc/asset/pipe.hpp" +#include "proc/asset/struct.hpp" +#include "common/configrules.hpp" +#include "proc/assetmanager.hpp" +#include "proc/mobject/session.hpp" +#include "lib/streamtype.hpp" + +#include <boost/format.hpp> + +using boost::format; +using util::isnil; +using std::string; + + +namespace mobject { +namespace session { +namespace test { + + using lib::Symbol; + using asset::Asset; + using asset::AssetManager; + using asset::Pipe; + using asset::PPipe; + using asset::Struct; + using lumiera::Query; + using lumiera::query::normaliseID; + + using lumiera::ConfigRules; + using lumiera::query::QueryHandler; + using lumiera::StreamType; + + + + /** shortcut: query for given Pipe-ID */ + bool + find (const string& pID) + { + return Session::current->defaults.search (Query<Pipe> ("pipe("+pID+")")); + } + + + format pattern ("dummy_%s_%i"); + + /** create a random new ID */ + string + newID (Symbol prefix) + { + return str (pattern % prefix % std::rand()); + } + + + + + /************************************************************************ + * @test verify some general assumptions regarding implementation details + * of the the defaults manager. + * @see DefsManager_test for the "big picture" + */ + class DefsManagerImpl_test : public Test + { + virtual void + run(Arg) + { + define_and_search(); + string pipeID = create(); + forget(pipeID); + } + + + + + void + define_and_search () + { + string sID = newID ("stream"); + StreamType::ID stID (sID); + + // create Pipes explicitly + // (without utilising default queries) + PPipe pipe1 = Struct::retrieve.newPipe (newID("pipe"), newID("stream")); + PPipe pipe2 = Struct::retrieve.newPipe (newID("pipe"), sID ); + + CHECK (pipe1 != pipe2); + CHECK (stID == pipe2->getStreamID()); + + CHECK (!find (pipe1->getPipeID()), "accidental clash of random test-IDs"); + CHECK (!find (pipe2->getPipeID()), "accidental clash of random test-IDs"); + + // now declare that these objects should be considered "default" +lumiera::query::setFakeBypass(""); /////////////////////////////////////////////////TODO mock resolution + CHECK (Session::current->defaults.define (pipe1, Query<Pipe> (""))); // unrestricted default + +lumiera::query::setFakeBypass("stream("+sID+")"); ///////////////////////////////////TODO mock resolution + CHECK (Session::current->defaults.define (pipe2, Query<Pipe> ("stream("+sID+")"))); + + CHECK ( find (pipe1->getPipeID()), "failure declaring object as default"); + CHECK ( find (pipe2->getPipeID()), "failure declaring object as default"); + + CHECK (stID != pipe1->getStreamID(), "accidental clash"); + CHECK (!Session::current->defaults.define (pipe1, Query<Pipe> ("stream("+sID+")"))); + // can't be registered with this query, due to failure caused by wrong stream-ID + } + + + const string& + create() + { + string sID = newID ("stream"); + Query<Pipe> query_for_streamID ("stream("+sID+")"); + + // issue a ConfigQuery directly, without involving the DefaultsManager + QueryHandler<Pipe>& typeHandler = ConfigRules::instance(); + PPipe pipe1; + typeHandler.resolve (pipe1, query_for_streamID); + CHECK (pipe1); + + CHECK (!find (pipe1->getPipeID())); + PPipe pipe2 = Session::current->defaults.create (query_for_streamID); + CHECK (pipe2); + CHECK (pipe2 == pipe1); + CHECK ( find (pipe1->getPipeID())); // now declared as "default Pipe" for this stream-ID + + return pipe1->getPipeID(); + } + + + void + forget (string pID) + { + PPipe pipe = Pipe::query ("pipe("+pID+")"); + REQUIRE (find (pipe->getPipeID()), "need an object registered as default"); + long cnt = pipe.use_count(); + + // now de-register the pipe as "default Pipe" + CHECK (Session::current->defaults.forget (pipe)); + CHECK (!find (pipe->getPipeID())); + CHECK (cnt == pipe.use_count()); // indicates DefaultsManager holding only a weak ref. + } + }; + + + /** Register this test class... */ + LAUNCHER (DefsManagerImpl_test, "function session"); + + + +}}} // namespace mobject::session::test diff --git a/tests/components/proc/mobject/session/defs-manager-test.cpp b/tests/components/proc/mobject/session/defs-manager-test.cpp new file mode 100644 index 000000000..3f9ae390e --- /dev/null +++ b/tests/components/proc/mobject/session/defs-manager-test.cpp @@ -0,0 +1,204 @@ +/* + DefsManager(Test) - checking basic behaviour of the defaults manager + + Copyright (C) Lumiera.org + 2008, Hermann Vosseler <Ichthyostega@web.de> + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +* *****************************************************/ + + +#include "pre_a.hpp" + +#include "lib/test/run.hpp" +#include "lib/symbol.hpp" +#include "lib/query.hpp" +#include "lib/util.hpp" + +#include "proc/asset.hpp" +#include "proc/asset/pipe.hpp" +#include "proc/asset/struct.hpp" +#include "proc/assetmanager.hpp" +#include "proc/mobject/session.hpp" +#include "lib/streamtype.hpp" + +#include <boost/format.hpp> + +using boost::format; +using util::isnil; +using std::string; + + + +namespace mobject { +namespace session { +namespace test { + + using util::cStr; + using lib::Symbol; + using asset::ID; + using asset::Asset; + using asset::AssetManager; + using asset::Pipe; + using asset::PPipe; + using asset::Struct; + using lumiera::Query; + using lumiera::query::normaliseID; + using lumiera::StreamType; + + + /** shortcut: run just a query + * without creating new instances + */ + bool + find (Query<Pipe>& q) + { + return Session::current->defaults.search (q); + } + + + + + /*********************************************************************** + * @test basic behaviour of the defaults manager ("the big picture") + * - retrieving a "default" object repeatedly + * - retrieving a more constrained "default" object + * - failure registers a new "default" + * - instance management + * + * Using pipe assets as an example. The defaults manager shouldn't + * interfere with memory management (it holds weak refs). + */ + class DefsManager_test : public Test + { + virtual void + run (Arg arg) + { + string pipeID = isnil(arg)? "Black Hole" : arg[1]; + string streamID = 2>arg.size()? "teststream" : arg[2]; + + normaliseID (pipeID); + normaliseID (streamID); + + retrieveSimpleDefault (pipeID); + retrieveConstrainedDefault (pipeID, streamID); + failureCreatesNewDefault(); + verifyRemoval(); + } + + + + + void + retrieveSimpleDefault (string) + { + PPipe pipe1 = Pipe::query (""); // "the default pipe" + PPipe pipe2; + + // several variants to query for "the default pipe" + pipe2 = Pipe::query (""); + CHECK (pipe2 == pipe1); + pipe2 = Pipe::query ("default(X)"); + CHECK (pipe2 == pipe1); + pipe2 = Session::current->defaults(Query<Pipe> ()); + CHECK (pipe2 == pipe1); + pipe2 = asset::Struct::retrieve (Query<Pipe> ()); + CHECK (pipe2 == pipe1); + pipe2 = asset::Struct::retrieve (Query<Pipe> ("default(P)")); + CHECK (pipe2 == pipe1); + } + + + void + retrieveConstrainedDefault (string pID, string sID) + { + PPipe pipe1 = Pipe::query (""); // "the default pipe" + CHECK ( pipe1->getStreamID() != StreamType::ID(sID), + "stream-ID \"%s\" not suitable for test, because " + "the default-pipe \"%s\" happens to have the same " + "stream-ID. We need it to be different", + sID.c_str(), pID.c_str() + ); + + string query_for_sID ("stream("+sID+")"); + PPipe pipe2 = Pipe::query (query_for_sID); + CHECK (pipe2->getStreamID() == StreamType::ID(sID)); + CHECK (pipe2 != pipe1); + CHECK (pipe2 == Pipe::query (query_for_sID)); // reproducible + } + + + void + failureCreatesNewDefault() + { + PPipe pipe1 = Session::current->defaults(Query<Pipe> ()); // "the default pipe" + + string new_pID (str (format ("dummy_%s_%i") + % pipe1->getPipeID() + % std::rand() + )); // make random new pipeID + Query<Pipe> query_for_new ("pipe("+new_pID+")"); + + CHECK (!find (query_for_new)); // check it doesn't exist + PPipe pipe2 = Session::current->defaults (query_for_new); // triggers creation + CHECK ( find (query_for_new)); // check it exists now + + CHECK (pipe1 != pipe2); + CHECK (pipe2 == Session::current->defaults (query_for_new)); + } + + + /** verify the defaults manager holds only weak refs, + * so if an object goes out of scope, any defaults entries + * are purged silently + */ + void + verifyRemoval() + { + Symbol pID ("some_pipe"); + Query<Pipe> query_for_pID ("pipe("+pID+")"); + size_t hash; + { + // create new pipe and declare it to be a default + PPipe pipe1 = Struct::retrieve.newInstance<Pipe> (pID); + Session::current->defaults.define(pipe1); + + CHECK (2 == pipe1.use_count()); // the pipe1 smart-ptr and the AssetManager + hash = pipe1->getID(); + } + // pipe1 out of scope.... + // AssetManager now should hold the only ref + ID<Asset> assetID (hash); + + AssetManager& aMang (AssetManager::instance()); + CHECK ( aMang.known (assetID)); + aMang.remove (assetID); + CHECK (!aMang.known (assetID)); + + + CHECK (!find(query_for_pID)); // bare default-query should fail... + PPipe pipe2 = Session::current->defaults (query_for_pID); // triggers re-creation + CHECK ( find(query_for_pID)); // should succeed again + } + }; + + + + /** Register this test class... */ + LAUNCHER (DefsManager_test, "function session"); + + +}}} // namespace mobject::session::test diff --git a/tests/components/proc/mobject/session/defs-registry-impl-test.cpp b/tests/components/proc/mobject/session/defs-registry-impl-test.cpp new file mode 100644 index 000000000..8025bfbf0 --- /dev/null +++ b/tests/components/proc/mobject/session/defs-registry-impl-test.cpp @@ -0,0 +1,292 @@ +/* + DefsRegistryImpl(Test) - verifying correct behaviour of the defaults registry + + Copyright (C) Lumiera.org + 2008, Hermann Vosseler <Ichthyostega@web.de> + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +* *****************************************************/ + + +#include "lib/test/run.hpp" +#include "lib/util.hpp" + +#include "proc/mobject/session/defs-registry.hpp" +#include "lib/factory.hpp" +#include "lib/query.hpp" +#include "lib/p.hpp" + +#include "../lib/query/querydiagnostics.hpp" + +#include <boost/scoped_ptr.hpp> +#include <boost/format.hpp> +#include <map> + +using lumiera::P; +using lumiera::Query; +using lumiera::query::test::garbage_query; +using util::isnil; + +using boost::scoped_ptr; +using boost::format; +using std::string; +using std::rand; +using std::map; + + + +namespace mobject { +namespace session { +namespace test { + + format typePatt ("Dummy<%2i>"); + format instancePatt ("obj_%s_%i"); + format predicatePatt ("%s_%2i( %s )"); + + + + /** create a random new ID */ + string + newID (string prefix) + { + return str (instancePatt % prefix % rand()); + } + + + /** template for generating some different test types */ + template<int I> + struct Dummy + { + static string name; + string instanceID; + operator string () const { return instanceID; } + bool operator== (const Dummy& odu) const { return this == &odu; } + + + Dummy () : instanceID (newID (name)) {} + }; + + template<int I> + string Dummy<I>::name = str (typePatt % I); + + + + + + + /************************************************************************ + * @test build an registry table (just for this test) configured for + * some artificial test Types. Register some entries and verify + * the intended behaviour of the storage structure. + * @see DefsManagerImpl_test for checking the implementation details + * in the actual context used in Lumiera. + */ + class DefsRegistryImpl_test : public Test + { + scoped_ptr<DefsRegistry> reg_; + + typedef lumiera::P<Dummy<13> > O; + typedef lumiera::P<Dummy<23> > P; + + typedef Query<Dummy<13> > Q13; + typedef Query<Dummy<23> > Q23; + + typedef DefsRegistry::Iter<Dummy<13> > Iter13; + typedef DefsRegistry::Iter<Dummy<23> > Iter23; + + + // fabricating Objects wrapped into smart-ptrs + lib::factory::RefcountFac<Dummy<13> > oFac; + lib::factory::RefcountFac<Dummy<23> > pFac; + + O o1, o2, o3; + Q13 q1, q2, q3, q4, q5; + map<Q23, P> ps; + + public: + DefsRegistryImpl_test () + : o1 (oFac()), o2 (oFac()), o3 (oFac()), + q1 (garbage_query (1)), + q2 (garbage_query (2)), + q3 (garbage_query (3)), + q4 (garbage_query (4)), + q5 (garbage_query (5)) + { } + + + virtual void + run (Arg) + { + this->reg_.reset (new DefsRegistry); + + fill_table (); + check_query (); + check_remove (); + } + + + + + void + fill_table () + { + // at start the registry is indeed empty + // thus a query doesn't yield any results.... + CHECK ( ! *(reg_->candidates(Q13 ("something"))) ); + + reg_->put (o1, q5); + reg_->put (o2, q4); + reg_->put (o3, q3); + reg_->put (o3, q2); + reg_->put (o2, q1); + reg_->put (o1, Q13()); // the empty query + + ps.clear(); + for (int i=0; i<100; ++i) + { + P px (pFac()); + Q23 qx (garbage_query()); + ps[qx] = px; + reg_->put (px, qx); + px->instanceID = qx; + } + } + + + void + check_query () + { + Iter13 i (reg_->candidates(Q13 ("irrelevant query"))); + CHECK ( i.hasNext()); + CHECK ( *i++ == o1); // ordered according to the degree of the queries + CHECK ( *i++ == o2); + CHECK ( *i++ == o3); + CHECK ( *i++ == o3); + CHECK ( *i++ == o2); + CHECK ( *i == o1); + CHECK (!i.hasNext()); + CHECK (! *++i ); // null after end + + i = reg_->candidates(q3); + CHECK ( *i++ == o3); // found by direct match + CHECK ( *i++ == o1); // followed by the ordered enumeration + CHECK ( *i++ == o2); + CHECK ( *i++ == o3); + CHECK ( *i++ == o3); + CHECK ( *i++ == o2); + CHECK ( *i++ == o1); + CHECK (!i.hasNext()); + + i = reg_->candidates(Q13()); + CHECK ( *i++ == o1); // found by direct match to the empty query + CHECK ( *i++ == o1); + CHECK ( *i++ == o2); + CHECK ( *i++ == o3); + CHECK ( *i++ == o3); + CHECK ( *i++ == o2); + CHECK ( *i++ == o1); + CHECK (!i.hasNext()); + + uint d=0; + uint d_prev=0; + Iter23 j = reg_->candidates(Q23 ("some crap")); + for ( ; *j ; ++j ) + { + CHECK ( *j ); + Q23 qx ((*j)->instanceID); + CHECK ( ps[qx] == (*j)); + d = lumiera::query::countPred (qx); + CHECK ( d_prev <= d ); + d_prev = d; + } + CHECK (!j.hasNext()); + + // calling with an arbitrary (registered) query + // yields the corresponding object at start of the enumeration + j = reg_->candidates(ps.begin()->first); + CHECK ( *j == ps.begin()->second); + + } + + + void + check_remove () + { + reg_->forget (o2); + + Iter13 i (reg_->candidates(q4)); + CHECK ( i.hasNext()); + CHECK ( *i++ == o1); // ordered according to the degree of the queries + // but the o2 entries are missing + CHECK ( *i++ == o3); + CHECK ( *i++ == o3); + // missing + CHECK ( *i == o1); + CHECK (!i.hasNext()); + + o3.reset(); // killing the only reference.... + // expires the weak ref in the registry + + i = reg_->candidates(Q13 ("something")); + CHECK ( i.hasNext()); + CHECK ( *i++ == o1); // ordered according to the degree of the queries + // but now also the o3 entries are missing... + CHECK ( *i == o1); + CHECK (!i.hasNext()); + + CHECK ( reg_->put (o1, q5)); // trying to register the same object at the same place + // doesn't change anything (but counts as "success") + i = reg_->candidates(q5); + CHECK ( *i++ == o1); // direct match + CHECK ( *i++ == o1); + CHECK ( *i++ == o1); + CHECK (!i.hasNext()); + + CHECK (!reg_->put (o2, q5)); // trying to (re)register o2 with a existing query + // counts as failure (nothing changes) + i = reg_->candidates(q5); + CHECK ( *i++ == o1); // direct match + CHECK ( *i++ == o1); + CHECK ( *i++ == o1); + CHECK (!i.hasNext()); + + CHECK ( reg_->put (o2, q2)); // trying to (re)register o2 with another query succeeds + i = reg_->candidates(q2); + CHECK ( *i++ == o2); // direct match + CHECK ( *i++ == o1); + CHECK ( *i++ == o2); // inserted here in the dataset + CHECK ( *i++ == o1); + CHECK (!i.hasNext()); + + CHECK ( reg_->forget (o1)); + CHECK (!reg_->forget (o1)); // failure, because it's already removed + CHECK ( reg_->forget (o2)); + + o3 = oFac(); // another object is another object (it's irrelevant...) + + i = reg_->candidates(q2); + CHECK (! (*i)); // empty + } + + }; + + + /** Register this test class... */ + LAUNCHER (DefsRegistryImpl_test, "function session"); + + + +}}} // namespace mobject::session::test diff --git a/tests/components/proc/mobject/session/defsmanagerimpltest.cpp b/tests/components/proc/mobject/session/defsmanagerimpltest.cpp deleted file mode 100644 index 954730804..000000000 --- a/tests/components/proc/mobject/session/defsmanagerimpltest.cpp +++ /dev/null @@ -1,169 +0,0 @@ -/* - DefsManagerImpl(Test) - checking implementation details of the defaults manager - - Copyright (C) Lumiera.org - 2008, Hermann Vosseler <Ichthyostega@web.de> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -* *****************************************************/ - - -#include "pre_a.hpp" - -#include "lib/test/run.hpp" -#include "lib/util.hpp" - -#include "proc/asset.hpp" -#include "proc/asset/pipe.hpp" -#include "common/configrules.hpp" -#include "proc/assetmanager.hpp" -#include "proc/mobject/session.hpp" - -#include <boost/format.hpp> - -using boost::format; -using util::isnil; -using std::string; - - -namespace asset { - namespace test { - - using mobject::Session; - using lib::Symbol; - using lumiera::Query; - using lumiera::query::normaliseID; - - using lumiera::ConfigRules; - using lumiera::query::QueryHandler; - - - - /** shortcut: query for given Pipe-ID */ - bool - find (const string& pID) - { - return Session::current->defaults.search (Query<Pipe> ("pipe("+pID+")")); - } - - - format pattern ("dummy_%s_%i"); - - /** create a random new ID */ - string - newID (Symbol prefix) - { - return str (pattern % prefix % std::rand()); - } - - - - - /************************************************************************ - * @test verify some general assumptions regarding implementation details - * of the the defaults manager. - * @see DefsManager_test for the "big picture" - */ - class DefsManagerImpl_test : public Test - { - virtual void - run(Arg) - { - define_and_search(); - string pipeID = create(); - forget(pipeID); - } - - - - - void - define_and_search () - { - string sID = newID ("stream"); - - // create Pipes explicitly - // (without utilising default queries) - PPipe pipe1 = Struct::retrieve.newPipe (newID("pipe"), newID("stream")); - PPipe pipe2 = Struct::retrieve.newPipe (newID("pipe"), sID ); - - ASSERT (pipe1 != pipe2); - ASSERT (sID == pipe2->getStreamID()); - - ASSERT (!find (pipe1->getPipeID()), "accidental clash of random test-IDs"); - ASSERT (!find (pipe2->getPipeID()), "accidental clash of random test-IDs"); - - // now declare that these objects should be considered "default" -lumiera::query::setFakeBypass(""); /////////////////////////////////////////////////TODO mock resolution - ASSERT (Session::current->defaults.define (pipe1, Query<Pipe> (""))); // unrestricted default - -lumiera::query::setFakeBypass("stream("+sID+")"); ///////////////////////////////////TODO mock resolution - ASSERT (Session::current->defaults.define (pipe2, Query<Pipe> ("stream("+sID+")"))); - - ASSERT ( find (pipe1->getPipeID()), "failure declaring object as default"); - ASSERT ( find (pipe2->getPipeID()), "failure declaring object as default"); - - ASSERT (sID != pipe1->getStreamID(), "accidental clash"); - ASSERT (!Session::current->defaults.define (pipe1, Query<Pipe> ("stream("+sID+")"))); - // can't be registered with this query, due to failure caused by wrong stream-ID - } - - - const string& - create() - { - string sID = newID ("stream"); - Query<Pipe> query_for_streamID ("stream("+sID+")"); - - // issue a ConfigQuery directly, without involving the DefaultsManager - QueryHandler<Pipe>& typeHandler = ConfigRules::instance(); - PPipe pipe1; - typeHandler.resolve (pipe1, query_for_streamID); - ASSERT (pipe1); - - ASSERT (!find (pipe1->getPipeID())); - PPipe pipe2 = Session::current->defaults.create (query_for_streamID); - ASSERT (pipe2); - ASSERT (pipe2 == pipe1); - ASSERT ( find (pipe1->getPipeID())); // now declared as "default Pipe" for this stream-ID - - return pipe1->getPipeID(); - } - - - void - forget (string pID) - { - PPipe pipe = Pipe::query ("pipe("+pID+")"); - REQUIRE (find (pipe->getPipeID()), "need an object registered as default"); - long cnt = pipe.use_count(); - - // now de-register the pipe as "default Pipe" - ASSERT (Session::current->defaults.forget (pipe)); - ASSERT (!find (pipe->getPipeID())); - ASSERT (cnt == pipe.use_count()); // indicates DefaultsManager holding only a weak ref. - } - }; - - - /** Register this test class... */ - LAUNCHER (DefsManagerImpl_test, "function session"); - - - - } // namespace test - -} // namespace asset diff --git a/tests/components/proc/mobject/session/defsmanagertest.cpp b/tests/components/proc/mobject/session/defsmanagertest.cpp deleted file mode 100644 index 608dce6db..000000000 --- a/tests/components/proc/mobject/session/defsmanagertest.cpp +++ /dev/null @@ -1,195 +0,0 @@ -/* - DefsManager(Test) - checking basic behaviour of the defaults manager - - Copyright (C) Lumiera.org - 2008, Hermann Vosseler <Ichthyostega@web.de> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -* *****************************************************/ - - -#include "pre_a.hpp" - -#include "lib/test/run.hpp" -#include "lib/symbol.hpp" -#include "lib/query.hpp" -#include "lib/util.hpp" - -#include "proc/asset.hpp" -#include "proc/asset/pipe.hpp" -#include "proc/assetmanager.hpp" -#include "proc/mobject/session.hpp" - -#include <boost/format.hpp> - -using boost::format; -using util::isnil; -using std::string; - - - -namespace asset { -namespace test { - - using util::cStr; - using lib::Symbol; - using mobject::Session; - using lumiera::Query; - using lumiera::query::normaliseID; - - - /** shortcut: run just a query - * without creating new instances - */ - bool - find (Query<Pipe>& q) - { - return Session::current->defaults.search (q); - } - - - - - /*********************************************************************** - * @test basic behaviour of the defaults manager ("the big picture") - * - retrieving a "default" object repeatedly - * - retrieving a more constrained "default" object - * - failure registers a new "default" - * - instance management - * - * Using pipe assets as an example. The defaults manager shouldn't - * interfere with memory management (it holds weak refs). - */ - class DefsManager_test : public Test - { - virtual void - run (Arg arg) - { - string pipeID = isnil(arg)? "Black Hole" : arg[1]; - string streamID = 2>arg.size()? "teststream" : arg[2] ; - - normaliseID (pipeID); - normaliseID (streamID); - - retrieveSimpleDefault (pipeID); - retrieveConstrainedDefault (pipeID, streamID); - failureCreatesNewDefault(); - verifyRemoval(); - } - - - - - void - retrieveSimpleDefault (string) - { - PPipe pipe1 = Pipe::query (""); // "the default pipe" - PPipe pipe2; - - // several variants to query for "the default pipe" - pipe2 = Pipe::query (""); - ASSERT (pipe2 == pipe1); - pipe2 = Pipe::query ("default(X)"); - ASSERT (pipe2 == pipe1); - pipe2 = Session::current->defaults(Query<Pipe> ()); - ASSERT (pipe2 == pipe1); - pipe2 = asset::Struct::retrieve (Query<Pipe> ()); - ASSERT (pipe2 == pipe1); - pipe2 = asset::Struct::retrieve (Query<Pipe> ("default(P)")); - ASSERT (pipe2 == pipe1); - } - - - void - retrieveConstrainedDefault (string pID, string sID) - { - PPipe pipe1 = Pipe::query (""); // "the default pipe" - ASSERT (sID != pipe1->getStreamID(), - "stream-ID \"%s\" not suitable for test, because " - "the default-pipe \"%s\" happens to have the same " - "stream-ID. We need it to be different", - sID.c_str(), pID.c_str() - ); - - string query_for_sID ("stream("+sID+")"); - PPipe pipe2 = Pipe::query (query_for_sID); - ASSERT (sID == pipe2->getStreamID()); - ASSERT (pipe2 != pipe1); - ASSERT (pipe2 == Pipe::query (query_for_sID)); // reproducible - } - - - void - failureCreatesNewDefault() - { - PPipe pipe1 = Session::current->defaults(Query<Pipe> ()); // "the default pipe" - - string new_pID (str (format ("dummy_%s_%i") - % pipe1->getPipeID() - % std::rand() - )); // make random new pipeID - Query<Pipe> query_for_new ("pipe("+new_pID+")"); - - ASSERT (!find (query_for_new)); // check it doesn't exist - PPipe pipe2 = Session::current->defaults (query_for_new); // triggers creation - ASSERT ( find (query_for_new)); // check it exists now - - ASSERT (pipe1 != pipe2); - ASSERT (pipe2 == Session::current->defaults (query_for_new)); - } - - - /** verify the defaults manager holds only weak refs, - * so if an object goes out of scope, any defaults entries - * are purged silently - */ - void - verifyRemoval() - { - Symbol pID ("some_pipe"); - Query<Pipe> query_for_pID ("pipe("+pID+")"); - size_t hash; - { - // create new pipe and declare it to be a default - PPipe pipe1 = Struct::retrieve.newInstance<Pipe> (pID); - Session::current->defaults.define(pipe1); - - ASSERT (2 == pipe1.use_count()); // the pipe1 smart-ptr and the AssetManager - hash = pipe1->getID(); - } - // pipe1 out of scope.... - // AssetManager now should hold the only ref - ID<Asset> assetID (hash); - - AssetManager& aMang (AssetManager::instance()); - ASSERT ( aMang.known (assetID)); - aMang.remove (assetID); - ASSERT (!aMang.known (assetID)); - - - ASSERT (!find(query_for_pID)); // bare default-query should fail... - PPipe pipe2 = Session::current->defaults (query_for_pID); // triggers re-creation - ASSERT ( find(query_for_pID)); // should succeed again - } - }; - - - - /** Register this test class... */ - LAUNCHER (DefsManager_test, "function session"); - - -}} // namespace asset::test diff --git a/tests/components/proc/mobject/session/defsregistryimpltest.cpp b/tests/components/proc/mobject/session/defsregistryimpltest.cpp deleted file mode 100644 index dcfde3a55..000000000 --- a/tests/components/proc/mobject/session/defsregistryimpltest.cpp +++ /dev/null @@ -1,296 +0,0 @@ -/* - DefsRegistryImpl(Test) - verifying correct behaviour of the defaults registry - - Copyright (C) Lumiera.org - 2008, Hermann Vosseler <Ichthyostega@web.de> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -* *****************************************************/ - - -#include "lib/test/run.hpp" -#include "lib/util.hpp" - -#include "proc/mobject/session/defsregistry.hpp" -#include "lib/factory.hpp" -#include "lib/query.hpp" -#include "lib/p.hpp" - -#include "../lib/query/querydiagnostics.hpp" - -#include <boost/scoped_ptr.hpp> -#include <boost/format.hpp> -#include <map> - -using lumiera::P; -using lumiera::Query; -using lumiera::query::test::garbage_query; -using util::isnil; - -using boost::scoped_ptr; -using boost::format; -using std::string; -using std::rand; -using std::map; - - - -namespace mobject { - namespace session { - namespace test { - - format typePatt ("Dummy<%2i>"); - format instancePatt ("obj_%s_%i"); - format predicatePatt ("%s_%2i( %s )"); - - - - /** create a random new ID */ - string - newID (string prefix) - { - return str (instancePatt % prefix % rand()); - } - - - /** template for generating some different test types */ - template<int I> - struct Dummy - { - static string name; - string instanceID; - operator string () const { return instanceID; } - bool operator== (const Dummy& odu) const { return this == &odu; } - - - Dummy () : instanceID (newID (name)) {} - }; - - template<int I> - string Dummy<I>::name = str (typePatt % I); - - - - - - - /************************************************************************ - * @test build an registry table (just for this test) configured for - * some artificial test Types. Register some entries and verify - * the intended behaviour of the storage structure. - * @see DefsManagerImpl_test for checking the implementation details - * in the actual context used in Lumiera. - */ - class DefsRegistryImpl_test : public Test - { - scoped_ptr<DefsRegistry> reg_; - - typedef lumiera::P<Dummy<13> > O; - typedef lumiera::P<Dummy<23> > P; - - typedef Query<Dummy<13> > Q13; - typedef Query<Dummy<23> > Q23; - - typedef DefsRegistry::Iter<Dummy<13> > Iter13; - typedef DefsRegistry::Iter<Dummy<23> > Iter23; - - - // fabricating Objects wrapped into smart-ptrs - lib::factory::RefcountFac<Dummy<13> > oFac; - lib::factory::RefcountFac<Dummy<23> > pFac; - - O o1, o2, o3; - Q13 q1, q2, q3, q4, q5; - map<Q23, P> ps; - - public: - DefsRegistryImpl_test () - : o1 (oFac()), o2 (oFac()), o3 (oFac()), - q1 (garbage_query (1)), - q2 (garbage_query (2)), - q3 (garbage_query (3)), - q4 (garbage_query (4)), - q5 (garbage_query (5)) - { } - - - virtual void - run (Arg) - { - this->reg_.reset (new DefsRegistry); - - fill_table (); - check_query (); - check_remove (); - } - - - - - void - fill_table () - { - // at start the registry is indeed empty - // thus a query doesn't yield any results.... - ASSERT ( ! *(reg_->candidates(Q13 ("something"))) ); - - reg_->put (o1, q5); - reg_->put (o2, q4); - reg_->put (o3, q3); - reg_->put (o3, q2); - reg_->put (o2, q1); - reg_->put (o1, Q13()); // the empty query - - ps.clear(); - for (int i=0; i<100; ++i) - { - P px (pFac()); - Q23 qx (garbage_query()); - ps[qx] = px; - reg_->put (px, qx); - px->instanceID = qx; - } - } - - - void - check_query () - { - Iter13 i (reg_->candidates(Q13 ("irrelevant query"))); - ASSERT ( i.hasNext()); - ASSERT ( *i++ == o1); // ordered according to the degree of the queries - ASSERT ( *i++ == o2); - ASSERT ( *i++ == o3); - ASSERT ( *i++ == o3); - ASSERT ( *i++ == o2); - ASSERT ( *i == o1); - ASSERT (!i.hasNext()); - ASSERT (! *++i ); // null after end - - i = reg_->candidates(q3); - ASSERT ( *i++ == o3); // found by direct match - ASSERT ( *i++ == o1); // followed by the ordered enumeration - ASSERT ( *i++ == o2); - ASSERT ( *i++ == o3); - ASSERT ( *i++ == o3); - ASSERT ( *i++ == o2); - ASSERT ( *i++ == o1); - ASSERT (!i.hasNext()); - - i = reg_->candidates(Q13()); - ASSERT ( *i++ == o1); // found by direct match to the empty query - ASSERT ( *i++ == o1); - ASSERT ( *i++ == o2); - ASSERT ( *i++ == o3); - ASSERT ( *i++ == o3); - ASSERT ( *i++ == o2); - ASSERT ( *i++ == o1); - ASSERT (!i.hasNext()); - - uint d=0; - uint d_prev=0; - Iter23 j = reg_->candidates(Q23 ("some crap")); - for ( ; *j ; ++j ) - { - ASSERT ( *j ); - Q23 qx ((*j)->instanceID); - ASSERT ( ps[qx] == (*j)); - d = lumiera::query::countPred (qx); - ASSERT ( d_prev <= d ); - d_prev = d; - } - ASSERT (!j.hasNext()); - - // calling with an arbitrary (registered) query - // yields the corresponding object at start of the enumeration - j = reg_->candidates(ps.begin()->first); - ASSERT ( *j == ps.begin()->second); - - } - - - void - check_remove () - { - reg_->forget (o2); - - Iter13 i (reg_->candidates(q4)); - ASSERT ( i.hasNext()); - ASSERT ( *i++ == o1); // ordered according to the degree of the queries - // but the o2 entries are missing - ASSERT ( *i++ == o3); - ASSERT ( *i++ == o3); - // missing - ASSERT ( *i == o1); - ASSERT (!i.hasNext()); - - o3.reset(); // killing the only reference.... - // expires the weak ref in the registry - - i = reg_->candidates(Q13 ("something")); - ASSERT ( i.hasNext()); - ASSERT ( *i++ == o1); // ordered according to the degree of the queries - // but now also the o3 entries are missing... - ASSERT ( *i == o1); - ASSERT (!i.hasNext()); - - ASSERT ( reg_->put (o1, q5)); // trying to register the same object at the same place - // doesn't change anything (but counts as "success") - i = reg_->candidates(q5); - ASSERT ( *i++ == o1); // direct match - ASSERT ( *i++ == o1); - ASSERT ( *i++ == o1); - ASSERT (!i.hasNext()); - - ASSERT (!reg_->put (o2, q5)); // trying to (re)register o2 with a existing query - // counts as failure (nothing changes) - i = reg_->candidates(q5); - ASSERT ( *i++ == o1); // direct match - ASSERT ( *i++ == o1); - ASSERT ( *i++ == o1); - ASSERT (!i.hasNext()); - - ASSERT ( reg_->put (o2, q2)); // trying to (re)register o2 with another query succeeds - i = reg_->candidates(q2); - ASSERT ( *i++ == o2); // direct match - ASSERT ( *i++ == o1); - ASSERT ( *i++ == o2); // inserted here in the dataset - ASSERT ( *i++ == o1); - ASSERT (!i.hasNext()); - - ASSERT ( reg_->forget (o1)); - ASSERT (!reg_->forget (o1)); // failure, because it's already removed - ASSERT ( reg_->forget (o2)); - - o3 = oFac(); // another object is another object (it's irrelevant...) - - i = reg_->candidates(q2); - ASSERT (! (*i)); // empty - } - - }; - - - /** Register this test class... */ - LAUNCHER (DefsRegistryImpl_test, "function session"); - - - - } // namespace test - - } // namespace mobject - -} // namespace mobject diff --git a/tests/components/proc/mobject/session/deletecliptest.cpp b/tests/components/proc/mobject/session/deletecliptest.cpp index fa447bcfd..e803f165e 100644 --- a/tests/components/proc/mobject/session/deletecliptest.cpp +++ b/tests/components/proc/mobject/session/deletecliptest.cpp @@ -1,23 +1,23 @@ /* DeleteClip(Test) - removing an Clip-MObject from the Session - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -74,13 +74,13 @@ namespace test { // global Var assigned in buildTestsession1() PMedia media = clipPlacement->getMedia(); IDA clipAID = media->getID(); - ASSERT (clipPlacement); + CHECK (clipPlacement); sess->remove (clipPlacement); - ASSERT (!sess->currEDL().find(SESSION1_CLIP)); // Session forgot the Clip/Placement - ASSERT (!aMang.known (clipAID)); // corresponding Clip Asset has disappeared - ASSERT (!clipPlacement->getMedia()); // internal cross-links removed + CHECK (!sess->currEDL().find(SESSION1_CLIP)); // Session forgot the Clip/Placement + CHECK (!aMang.known (clipAID)); // corresponding Clip Asset has disappeared + CHECK (!clipPlacement->getMedia()); // internal cross-links removed #endif /////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #639 : work out how to search within the Model!! } }; diff --git a/tests/components/proc/mobject/session/placement-index-query-test.cpp b/tests/components/proc/mobject/session/placement-index-query-test.cpp index cb7ef3fb3..efb049cbf 100644 --- a/tests/components/proc/mobject/session/placement-index-query-test.cpp +++ b/tests/components/proc/mobject/session/placement-index-query-test.cpp @@ -1,23 +1,23 @@ /* PlacementIndexQuery(Test) - querying the placement index through the generic query interface - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -73,15 +73,15 @@ namespace test { QueryResolver const& resolver1 (SessionServiceExploreScope::getResolver()); QueryResolver const& resolver2 (SessionServiceExploreScope::getResolver()); - ASSERT (isSameObject (resolver1, resolver2)); + CHECK (isSameObject (resolver1, resolver2)); PlacementMO& root1 = index->getRoot(); PlacementMO& root2 = SessionServiceExploreScope::getScopeRoot(); - ASSERT (isSameObject (root1, root2)); + CHECK (isSameObject (root1, root2)); PlacementMO& elm1 = *ContentsQuery<TestSubMO21>(root1).resolveBy(resolver1); PlacementMO& elm2 = *(index->getReferrers(root1)); - ASSERT (isSameObject (elm1, elm2)); + CHECK (isSameObject (elm1, elm2)); } void diff --git a/tests/components/proc/mobject/session/placement-index-test.cpp b/tests/components/proc/mobject/session/placement-index-test.cpp index 7c43bcf69..c61f4b586 100644 --- a/tests/components/proc/mobject/session/placement-index-test.cpp +++ b/tests/components/proc/mobject/session/placement-index-test.cpp @@ -1,23 +1,23 @@ /* PlacementIndex(Test) - facility keeping track of Placements within the Session - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -63,16 +63,16 @@ namespace test { { virtual void - run (Arg) + run (Arg) { PlacementIndex index (make_dummyRoot()); - ASSERT (index.isValid()); + CHECK (index.isValid()); checkSimpleInsertRemove (index); has_size (0, index); PMO::ID elmID = checkSimpleAccess (index); - ASSERT (index.isValid()); + CHECK (index.isValid()); has_size (2, index); checkTypedAccess (index, elmID); @@ -84,17 +84,17 @@ namespace test { checkContentsEnumeration (index); has_size (9, index); - ASSERT (index.isValid()); + CHECK (index.isValid()); index.clear(); has_size (0, index); - ASSERT (index.isValid()); + CHECK (index.isValid()); } void has_size(uint siz, Idx index) { - ASSERT (siz == index.size()); + CHECK (siz == index.size()); } @@ -104,19 +104,19 @@ namespace test { PMO clip = TestClip::create(); PMO& root = index.getRoot(); - ASSERT (0 == index.size()); + CHECK (0 == index.size()); PMO::ID elmID = index.insert (clip, root); - ASSERT (1 == index.size()); - ASSERT ( index.contains (elmID)); - ASSERT (!index.contains (clip)); // index stores copies + CHECK (1 == index.size()); + CHECK ( index.contains (elmID)); + CHECK (!index.contains (clip)); // index stores copies index.remove(clip); // has no effect - ASSERT (1 == index.size()); + CHECK (1 == index.size()); index.remove(elmID); - ASSERT (0 == index.size()); - ASSERT (!index.contains (elmID)); - ASSERT ( index.contains (root)); + CHECK (0 == index.size()); + CHECK (!index.contains (elmID)); + CHECK ( index.contains (root)); } @@ -128,36 +128,36 @@ namespace test { PMO::ID elmID = index.insert (testObj, root); PMO& elm = index.find(elmID); - ASSERT (elmID == elm.getID()); - ASSERT (!isSameObject (elm,testObj)); // note: placements are registered as copy - ASSERT (isSameDef(elm,testObj)); // they are semantically equivalent ////////TICKET #511 - ASSERT (elmID != testObj.getID()); // but have a distinct identity + CHECK (elmID == elm.getID()); + CHECK (!isSameObject (elm,testObj)); // note: placements are registered as copy + CHECK (isSameDef(elm,testObj)); // they are semantically equivalent ////////TICKET #511 + CHECK (elmID != testObj.getID()); // but have a distinct identity PMO::ID elmID2 = index.insert(testObj, root); - ASSERT (elmID2 != elmID); // ...and each insert creates a new instance - ASSERT (testObj != index.find (elmID)); - ASSERT (testObj != index.find (elmID2)); - ASSERT (isSameDef(testObj, index.find(elmID))); - ASSERT (isSameDef(testObj, index.find(elmID2))); - ASSERT (!isSameObject (testObj, index.find(elmID2))); - ASSERT (!isSameObject (elm, index.find(elmID2))); + CHECK (elmID2 != elmID); // ...and each insert creates a new instance + CHECK (testObj != index.find (elmID)); + CHECK (testObj != index.find (elmID2)); + CHECK (isSameDef(testObj, index.find(elmID))); + CHECK (isSameDef(testObj, index.find(elmID2))); + CHECK (!isSameObject (testObj, index.find(elmID2))); + CHECK (!isSameObject (elm, index.find(elmID2))); // can repeatedly retrieve a reference to the same object - ASSERT ( isSameObject (elm, index.find(elmID ))); - ASSERT ( isSameObject (elm, index.find(elmID ))); + CHECK ( isSameObject (elm, index.find(elmID ))); + CHECK ( isSameObject (elm, index.find(elmID ))); // can also re-access objects by previous ref - ASSERT ( isSameObject (elm, index.find(elm))); + CHECK ( isSameObject (elm, index.find(elm))); return elmID; } - + void checkTypedAccess (Idx index, PMO::ID elmID) { PMO& elm = index.find(elmID); - ASSERT (elmID == elm.getID()); + CHECK (elmID == elm.getID()); typedef Placement<Clip> PClip; PClip anotherTestClip = TestClip::create(); @@ -172,10 +172,10 @@ namespace test { // access as Clip PClip& asClip = index.find(clipID); - ASSERT (LENGTH_TestClip == asClip->getMedia()->getLength()); // using the Clip API + CHECK (LENGTH_TestClip == asClip->getMedia()->getLength()); // using the Clip API - ASSERT ( isSameObject(asMO,asClip)); - ASSERT (!isSameObject(asClip, anotherTestClip)); // always inserting a copy into the PlacementIndex + CHECK ( isSameObject(asMO,asClip)); + CHECK (!isSameObject(asClip, anotherTestClip)); // always inserting a copy into the PlacementIndex } @@ -184,19 +184,19 @@ namespace test { { RefPlacement invalid; PlacementMO::ID invalidID (invalid); - ASSERT (!bool(invalidID)); - ASSERT (!bool(invalid)); + CHECK (!bool(invalidID)); + CHECK (!bool(invalid)); VERIFY_ERROR(BOTTOM_PLACEMENTREF, index.find(invalid) ); VERIFY_ERROR(BOTTOM_PLACEMENTREF, index.find(invalidID) ); VERIFY_ERROR(BOTTOM_PLACEMENTREF, index.getScope(invalidID) ); - ASSERT (!index.contains(invalidID)); + CHECK (!index.contains(invalidID)); PMO testObj = TestClip::create(); VERIFY_ERROR(INVALID_SCOPE, index.insert(testObj, invalidID) ); - ASSERT (false == index.remove(invalidID)); + CHECK (false == index.remove(invalidID)); } @@ -216,32 +216,32 @@ namespace test { ID e133 = index.insert (testObj, e13); ID e1331 = index.insert (testObj, e133); - ASSERT (index.isValid()); - ASSERT (root == index.getScope(e1)); - ASSERT (e1 == index.getScope(e11).getID()); - ASSERT (e1 == index.getScope(e12).getID()); - ASSERT (e1 == index.getScope(e13).getID()); - ASSERT (e13 == index.getScope(e131).getID()); - ASSERT (e13 == index.getScope(e132).getID()); - ASSERT (e13 == index.getScope(e133).getID()); - ASSERT (e133 == index.getScope(e1331).getID()); - ASSERT (e1 != e13); - ASSERT (e13 != e133); + CHECK (index.isValid()); + CHECK (root == index.getScope(e1)); + CHECK (e1 == index.getScope(e11).getID()); + CHECK (e1 == index.getScope(e12).getID()); + CHECK (e1 == index.getScope(e13).getID()); + CHECK (e13 == index.getScope(e131).getID()); + CHECK (e13 == index.getScope(e132).getID()); + CHECK (e13 == index.getScope(e133).getID()); + CHECK (e133 == index.getScope(e1331).getID()); + CHECK (e1 != e13); + CHECK (e13 != e133); - ASSERT (index.getScope(e11) == index.getScope(index.find(e11))); - ASSERT (index.getScope(e131) == index.getScope(index.find(e131))); + CHECK (index.getScope(e11) == index.getScope(index.find(e11))); + CHECK (index.getScope(e131) == index.getScope(index.find(e131))); VERIFY_ERROR(NONEMPTY_SCOPE, index.remove(e13) ); // can't remove a scope-constituting element VERIFY_ERROR(NONEMPTY_SCOPE, index.remove(e133) ); - ASSERT (index.contains(e1331)); - ASSERT (index.remove(e1331)); - ASSERT (!index.contains(e1331)); - ASSERT (!index.remove(e1331)); + CHECK (index.contains(e1331)); + CHECK (index.remove(e1331)); + CHECK (!index.contains(e1331)); + CHECK (!index.remove(e1331)); - ASSERT (index.remove(e133)); // but can remove an scope, after emptying it - ASSERT (!index.contains(e133)); - ASSERT (index.isValid()); + CHECK (index.remove(e133)); // but can remove an scope, after emptying it + CHECK (!index.contains(e133)); + CHECK (index.isValid()); // build a complete new subtree uint siz = index.size(); @@ -261,13 +261,13 @@ namespace test { // ...and kill it recursively in one sway index.clear (e1321); - ASSERT (!index.contains (e1321)); - ASSERT (!index.contains (e13211)); - ASSERT (!index.contains (e13213)); - ASSERT (!index.contains (e132131)); - ASSERT (!index.contains (e132144)); - ASSERT (siz == index.size()); - ASSERT (index.isValid()); + CHECK (!index.contains (e1321)); + CHECK (!index.contains (e13211)); + CHECK (!index.contains (e13213)); + CHECK (!index.contains (e132131)); + CHECK (!index.contains (e132144)); + CHECK (siz == index.size()); + CHECK (index.isValid()); } @@ -283,7 +283,7 @@ namespace test { PMO& root = index.getRoot(); Iter rootContents = index.getReferrers (root.getID()); - ASSERT (rootContents); + CHECK (rootContents); discover (index, rootContents, 0); } @@ -306,14 +306,14 @@ namespace test { static format summary ("...%i elements at Level %i"); cout << indent(level) << summary % count % level << endl; - ASSERT (!iter); - ASSERT (0 < count); + CHECK (!iter); + CHECK (0 < count); } static string indent (uint level) { - return string (level, ' '); + return string (level, ' '); } }; diff --git a/tests/components/proc/mobject/session/placement-scope-test.cpp b/tests/components/proc/mobject/session/placement-scope-test.cpp index f3efca615..3d3ab194a 100644 --- a/tests/components/proc/mobject/session/placement-scope-test.cpp +++ b/tests/components/proc/mobject/session/placement-scope-test.cpp @@ -1,23 +1,23 @@ /* PlacementScope(Test) - accessing and navigating placement scope - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -99,7 +99,7 @@ namespace test { for (_Iter ii = contents_of_testSession(sess); ii; ++ii) { PlacementMO& elm = *ii; - ASSERT (elm.isValid()); + CHECK (elm.isValid()); Scope const& scope1 = Scope::containing(elm); std::cout << "Scope: " << string(scope1) << std::endl; std::cout << string(elm) << std::endl; @@ -109,11 +109,11 @@ namespace test { // verify this with the scope registered within the index... PlacementMO& scopeTop = sess->getScope(elm); - ASSERT (scope1 == scopeTop); - ASSERT (scope2 == scopeTop); - ASSERT (scope1 == scope2); + CHECK (scope1 == scopeTop); + CHECK (scope2 == scopeTop); + CHECK (scope1 == scope2); - ASSERT (!isSameObject (scope1,scope2)); + CHECK (!isSameObject (scope1,scope2)); } } @@ -128,23 +128,23 @@ namespace test { Scope scope2(aPlac); Scope nil; - ASSERT (scope1 == scope2); ASSERT (scope2 == scope1); - ASSERT (scope1 != nil); ASSERT (nil != scope1); - ASSERT (scope2 != nil); ASSERT (nil != scope2); + CHECK (scope1 == scope2); CHECK (scope2 == scope1); + CHECK (scope1 != nil); CHECK (nil != scope1); + CHECK (scope2 != nil); CHECK (nil != scope2); - ASSERT (aPlac == scope1); ASSERT (scope1 == aPlac); - ASSERT (aPlac == scope2); ASSERT (scope2 == aPlac); - ASSERT (aPlac != nil); ASSERT (nil != aPlac); + CHECK (aPlac == scope1); CHECK (scope1 == aPlac); + CHECK (aPlac == scope2); CHECK (scope2 == aPlac); + CHECK (aPlac != nil); CHECK (nil != aPlac); Scope par (scope1.getParent()); - ASSERT (scope1 != par); ASSERT (par != scope1); - ASSERT (scope2 != par); ASSERT (par != scope2); + CHECK (scope1 != par); CHECK (par != scope1); + CHECK (scope2 != par); CHECK (par != scope2); PlacementMO& placm2 (scope2.getTop()); - ASSERT (aPlac.getID() == placm2.getID()); + CHECK (aPlac.getID() == placm2.getID()); PlacementMO& parPlac (par.getTop()); - ASSERT (aPlac.getID() != parPlac.getID()); + CHECK (aPlac.getID() != parPlac.getID()); } @@ -163,8 +163,8 @@ namespace test { { _Iter pathIter = pathToRoot(*elm); Scope const& enclosing = Scope::containing(*elm); - ASSERT (enclosing == Scope(*elm).getParent()); - ASSERT (*pathIter == Scope(*elm)); + CHECK (enclosing == Scope(*elm).getParent()); + CHECK (*pathIter == Scope(*elm)); for ( ; pathIter; ++pathIter) { @@ -175,7 +175,7 @@ namespace test { PlacementMO& top = sco.getTop(); PlacementMO& root = sess->getRoot(); - ASSERT (isSameObject (top,root)); + CHECK (isSameObject (top,root)); } else { @@ -183,8 +183,8 @@ namespace test { PlacementMO& top = sco.getTop(); Scope parentsScope = Scope::containing(top); PlacementMO& topsTop = sess->getScope(top); ///////////////////TODO impact of Binding a Sequence? see Ticket #311 - ASSERT (topsTop == parentsScope); - ASSERT (isSameObject (topsTop, parentsScope.getTop())); + CHECK (topsTop == parentsScope); + CHECK (isSameObject (topsTop, parentsScope.getTop())); }}} } diff --git a/tests/components/proc/mobject/session/query-focus-stack-test.cpp b/tests/components/proc/mobject/session/query-focus-stack-test.cpp index 109bea1f5..d5f733b58 100644 --- a/tests/components/proc/mobject/session/query-focus-stack-test.cpp +++ b/tests/components/proc/mobject/session/query-focus-stack-test.cpp @@ -1,23 +1,23 @@ /* QueryFocusStack(Test) - verify the stack of focus path frames - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -77,9 +77,9 @@ namespace test { { QueryFocusStack stack; - ASSERT (!isnil (stack)); - ASSERT (!isnil (stack.top())); - ASSERT (stack.top().isRoot()); + CHECK (!isnil (stack)); + CHECK (!isnil (stack.top())); + CHECK (stack.top().isRoot()); } @@ -93,39 +93,39 @@ namespace test { intrusive_ptr_add_ref (&firstFrame); stack.top().navigate(startPoint); stack.top().moveUp(); - ASSERT (Scope(startPoint).getParent() == stack.top().getLeaf()); - ASSERT (1 == stack.size()); + CHECK (Scope(startPoint).getParent() == stack.top().getLeaf()); + CHECK (1 == stack.size()); // now open a second path frame, pushing aside the initial one ScopePath& secondFrame = stack.push(startPoint); intrusive_ptr_add_ref (&secondFrame); - ASSERT (2 == stack.size()); - ASSERT (secondFrame == stack.top()); - ASSERT (secondFrame.getLeaf() == startPoint); - ASSERT (secondFrame.getLeaf() != firstFrame.getLeaf()); + CHECK (2 == stack.size()); + CHECK (secondFrame == stack.top()); + CHECK (secondFrame.getLeaf() == startPoint); + CHECK (secondFrame.getLeaf() != firstFrame.getLeaf()); // can still reach and manipulate the ref-count of the first frame intrusive_ptr_add_ref (&firstFrame); - ASSERT (2 == firstFrame.ref_count()); - ASSERT (1 == secondFrame.ref_count()); + CHECK (2 == firstFrame.ref_count()); + CHECK (1 == secondFrame.ref_count()); // can use/navigate the stack top frame stack.top().goRoot(); - ASSERT (!stack.top()); // now indeed at root == no path - ASSERT (secondFrame.getLeaf().isRoot()); - ASSERT (secondFrame == stack.top()); + CHECK (!stack.top()); // now indeed at root == no path + CHECK (secondFrame.getLeaf().isRoot()); + CHECK (secondFrame == stack.top()); // now drop back to the first frame: - ASSERT (1 == secondFrame.ref_count()); + CHECK (1 == secondFrame.ref_count()); intrusive_ptr_release (&secondFrame); - ASSERT (0 == secondFrame.ref_count()); + CHECK (0 == secondFrame.ref_count()); stack.pop_unused(); - ASSERT (1 == stack.size()); - ASSERT (firstFrame == stack.top()); + CHECK (1 == stack.size()); + CHECK (firstFrame == stack.top()); // ...still pointing at the previous location - ASSERT (Scope(startPoint).getParent() == stack.top().getLeaf()); - ASSERT (2 == firstFrame.ref_count()); + CHECK (Scope(startPoint).getParent() == stack.top().getLeaf()); + CHECK (2 == firstFrame.ref_count()); } @@ -137,47 +137,47 @@ namespace test { ScopePath& firstFrame = stack.top(); // remember for later stack.top().navigate(startPoint); - ASSERT (1 == stack.size()); + CHECK (1 == stack.size()); intrusive_ptr_add_ref (&firstFrame); // now open two new frames, but don't add ref-counts on them ScopePath& secondFrame = stack.push(startPoint); ScopePath& thirdFrame = stack.push(startPoint); - ASSERT (3 == stack.size()); - ASSERT (1 == firstFrame.ref_count()); - ASSERT (0 == secondFrame.ref_count()); - ASSERT (0 == thirdFrame.ref_count()); + CHECK (3 == stack.size()); + CHECK (1 == firstFrame.ref_count()); + CHECK (0 == secondFrame.ref_count()); + CHECK (0 == thirdFrame.ref_count()); // any ref to top detects the non-referred-to state (by ref count==0) // and will automatically pop and clean up... ScopePath& newTop = stack.top(); - ASSERT (1 == stack.size()); - ASSERT (firstFrame == stack.top()); - ASSERT (isSameObject(newTop, firstFrame)); - ASSERT (stack.top().getLeaf() == startPoint); + CHECK (1 == stack.size()); + CHECK (firstFrame == stack.top()); + CHECK (isSameObject(newTop, firstFrame)); + CHECK (stack.top().getLeaf() == startPoint); // second exercise: a pop_unused may even completely empty the stack ScopePath& anotherFrame = stack.push(startPoint); - ASSERT (0 == anotherFrame.ref_count()); - ASSERT (1 == firstFrame.ref_count()); + CHECK (0 == anotherFrame.ref_count()); + CHECK (1 == firstFrame.ref_count()); intrusive_ptr_release (&firstFrame); - ASSERT (0 == firstFrame.ref_count()); - ASSERT (firstFrame.getLeaf() == startPoint); + CHECK (0 == firstFrame.ref_count()); + CHECK (firstFrame.getLeaf() == startPoint); stack.pop_unused(); - ASSERT (1 == stack.size()); + CHECK (1 == stack.size()); // Note: don't use previously taken pointers // or references anymore, after the stack // triggered a cleanup! ScopePath& anotherFrame2 = stack.top(); - ASSERT (0 == anotherFrame2.ref_count()); - ASSERT (anotherFrame2.getLeaf().isRoot()); + CHECK (0 == anotherFrame2.ref_count()); + CHECK (anotherFrame2.getLeaf().isRoot()); anotherFrame2.navigate(startPoint); - ASSERT (anotherFrame2.getLeaf() == startPoint); + CHECK (anotherFrame2.getLeaf() == startPoint); stack.top(); - ASSERT (1 == stack.size()); - ASSERT (stack.top().getLeaf().isRoot()); + CHECK (1 == stack.size()); + CHECK (stack.top().getLeaf().isRoot()); } @@ -189,7 +189,7 @@ namespace test { ScopePath& firstFrame = stack.top(); // remember for later stack.top().navigate(startPoint); - ASSERT (1 == stack.size()); + CHECK (1 == stack.size()); intrusive_ptr_add_ref (&firstFrame); ScopePath beforeInvalidNavigation = firstFrame; @@ -197,15 +197,15 @@ namespace test { // try to navigate to an invalid place VERIFY_ERROR (INVALID_SCOPE, stack.top().navigate (unrelatedScope) ); - ASSERT (1 == stack.size()); - ASSERT (1 == firstFrame.ref_count()); - ASSERT (stack.top().getLeaf() == startPoint); + CHECK (1 == stack.size()); + CHECK (1 == firstFrame.ref_count()); + CHECK (stack.top().getLeaf() == startPoint); // try to push an invalid place VERIFY_ERROR (INVALID_SCOPE, stack.push (unrelatedScope) ); - ASSERT (1 == stack.size()); - ASSERT (1 == firstFrame.ref_count()); - ASSERT (stack.top().getLeaf() == startPoint); + CHECK (1 == stack.size()); + CHECK (1 == firstFrame.ref_count()); + CHECK (stack.top().getLeaf() == startPoint); } @@ -215,7 +215,7 @@ namespace test { QueryFocusStack stack; intrusive_ptr_add_ref (&stack.top()); stack.top().moveUp(); - ASSERT (stack.top().empty()); + CHECK (stack.top().empty()); PMO& startPoint = retrieve_startElm(); intrusive_ptr_add_ref ( & stack.push(startPoint) ); @@ -227,16 +227,16 @@ namespace test { intrusive_ptr_add_ref ( & stack.push(startPoint) ); intrusive_ptr_add_ref ( & stack.push(startPoint) ); intrusive_ptr_add_ref ( & stack.push(startPoint) ); - ASSERT (10 == stack.size()); + CHECK (10 == stack.size()); stack.pop_unused(); - ASSERT (10 == stack.size()); - ASSERT (1 == stack.top().ref_count()); + CHECK (10 == stack.size()); + CHECK (1 == stack.top().ref_count()); stack.clear(); - ASSERT (1 == stack.size()); - ASSERT (!stack.top().empty()); - ASSERT (stack.top().getLeaf().isRoot()); - ASSERT (0 == stack.top().ref_count()); + CHECK (1 == stack.size()); + CHECK (!stack.top().empty()); + CHECK (stack.top().getLeaf().isRoot()); + CHECK (0 == stack.top().ref_count()); } }; diff --git a/tests/components/proc/mobject/session/query-focus-test.cpp b/tests/components/proc/mobject/session/query-focus-test.cpp index 946250c37..ae12108b2 100644 --- a/tests/components/proc/mobject/session/query-focus-test.cpp +++ b/tests/components/proc/mobject/session/query-focus-test.cpp @@ -1,23 +1,23 @@ /* QueryFocus(Test) - verify proper management of current scope - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -79,7 +79,7 @@ namespace test { QueryFocus theFocus; theFocus.reset(); - ASSERT (Scope(root) == Scope(theFocus)); + CHECK (Scope(root) == Scope(theFocus)); checkNavigation (theFocus); @@ -87,10 +87,10 @@ namespace test { manipulate_subFocus(); QueryFocus currentFocus; - ASSERT (scopePosition == Scope(currentFocus)); - ASSERT (currentFocus == theFocus); - ASSERT (2 == refs(currentFocus)); - ASSERT (2 == refs(theFocus)); + CHECK (scopePosition == Scope(currentFocus)); + CHECK (currentFocus == theFocus); + CHECK (2 == refs(currentFocus)); + CHECK (2 == refs(theFocus)); } @@ -101,24 +101,24 @@ namespace test { checkNavigation (QueryFocus& focus) { focus.reset(); - ASSERT (Scope(focus).isRoot()); + CHECK (Scope(focus).isRoot()); PMO& someObj = *focus.query<TestSubMO1>(); // by construction of the test fixture, // we know this object is root -> ps2 -> ps3 - ASSERT (Scope(focus).isRoot()); + CHECK (Scope(focus).isRoot()); focus.attach (someObj); - ASSERT (!Scope(focus).isRoot()); + CHECK (!Scope(focus).isRoot()); ScopePath path = focus.currentPath(); - ASSERT (someObj == path.getLeaf()); - ASSERT (Scope(focus).getParent().getParent().isRoot()); + CHECK (someObj == path.getLeaf()); + CHECK (Scope(focus).getParent().getParent().isRoot()); focus.attach (path.getLeaf().getParent()); - ASSERT (Scope(focus) == path.getLeaf().getParent()); - ASSERT (someObj != Scope(focus)); - ASSERT (path.contains (focus.currentPath())); - ASSERT (focus.currentPath().getLeaf().getParent().isRoot()); + CHECK (Scope(focus) == path.getLeaf().getParent()); + CHECK (someObj != Scope(focus)); + CHECK (path.contains (focus.currentPath())); + CHECK (focus.currentPath().getLeaf().getParent().isRoot()); // as the focus now has been moved up one level, // we'll re-discover the original starting point as immediate child @@ -134,19 +134,19 @@ namespace test { { QueryFocus original; // automatically attaches to current stack top uint num_refs = refs (original); - ASSERT (num_refs > 1); // because the run() function also holds a ref + CHECK (num_refs > 1); // because the run() function also holds a ref QueryFocus subF = QueryFocus::push(); cout << string(subF) << endl; - ASSERT (subF == original); + CHECK (subF == original); - ASSERT ( 1 == refs(subF) ); - ASSERT (num_refs == refs(original)); + CHECK ( 1 == refs(subF) ); + CHECK (num_refs == refs(original)); { // temporarily creating an independent focus attached differently QueryFocus subF2 = QueryFocus::push(Scope(subF).getParent()); - ASSERT (subF2 != subF); - ASSERT (subF == original); + CHECK (subF2 != subF); + CHECK (subF == original); cout << string(subF2) << endl; ScopeQuery<TestSubMO21>::iterator ii = subF2.explore<TestSubMO21>(); @@ -160,15 +160,15 @@ namespace test { subF2.pop(); // releasing this focus and re-attaching to what's on stack top cout << string(subF2) << "<<<--after pop()" << endl; - ASSERT (subF2 == subF); - ASSERT (2 == refs(subF2)); // both are now attached to the same path - ASSERT (2 == refs(subF)); + CHECK (subF2 == subF); + CHECK (2 == refs(subF2)); // both are now attached to the same path + CHECK (2 == refs(subF)); } // subF2 went out of scope, but no auto-pop happens (because subF is still there) cout << string(subF) << endl; - ASSERT ( 1 == refs(subF)); - ASSERT (num_refs == refs(original)); + CHECK ( 1 == refs(subF)); + CHECK (num_refs == refs(original)); // when subF goes out of scope now, auto-pop will happen... } diff --git a/tests/components/proc/mobject/session/query-resolver-test.cpp b/tests/components/proc/mobject/session/query-resolver-test.cpp index d3a785b0f..42cfe1045 100644 --- a/tests/components/proc/mobject/session/query-resolver-test.cpp +++ b/tests/components/proc/mobject/session/query-resolver-test.cpp @@ -1,23 +1,23 @@ /* QueryResolver(Test) - issuing typed queries over a generic interface - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/components/proc/mobject/session/rebuildfixturetest.cpp b/tests/components/proc/mobject/session/rebuildfixturetest.cpp index 43a77ef07..170582dd6 100644 --- a/tests/components/proc/mobject/session/rebuildfixturetest.cpp +++ b/tests/components/proc/mobject/session/rebuildfixturetest.cpp @@ -1,23 +1,23 @@ /* RebuildFixture(Test) - (re)building the explicit placements - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -58,7 +58,7 @@ namespace test { PSess sess = Session::current; sess.clear(); buildTestsession1(); - ASSERT (sess->isValid()); + CHECK (sess->isValid()); sess->rebuildFixture(); #if false ////////////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #548 TODO ("check the fixture has been touched. e.g. by hash."); @@ -79,7 +79,7 @@ namespace test { ////TODO do we still support this? can it be replaced by a directly checking predicate on ExplicitPlacement?? // PMO originalPlacement = explicitPlacement->subject->getPlacement(); -// ASSERT (edl.contains(originalPlacement)); +// CHECK (edl.contains(originalPlacement)); #endif ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #548 } }; diff --git a/tests/components/proc/mobject/session/scope-path-test.cpp b/tests/components/proc/mobject/session/scope-path-test.cpp index 156052c9d..80b578c9a 100644 --- a/tests/components/proc/mobject/session/scope-path-test.cpp +++ b/tests/components/proc/mobject/session/scope-path-test.cpp @@ -1,23 +1,23 @@ /* ScopePath(Test) - verify handling of logical access path down from Session root - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -69,7 +69,7 @@ namespace test { // Prepare an (test)Index backing the PlacementRefs PPIdx index = build_testScopes(); PMO& startPlacement = retrieve_startElm(); - ASSERT (startPlacement.isValid()); + CHECK (startPlacement.isValid()); checkInvalidScopeDetection(); ScopePath testPath = buildPath (startPlacement); @@ -91,10 +91,10 @@ namespace test { ScopePath path2 (startScope); ScopePath path3 (path2); - ASSERT (path); - ASSERT (path.contains (startScope)); - ASSERT ( path.getLeaf() == path2.getLeaf()); - ASSERT (path2.getLeaf() == path3.getLeaf()); + CHECK (path); + CHECK (path.contains (startScope)); + CHECK ( path.getLeaf() == path2.getLeaf()); + CHECK (path2.getLeaf() == path3.getLeaf()); return path; } @@ -125,10 +125,10 @@ namespace test { { Scope refScope(refPlacement); ScopePath::iterator ii = path.begin(); - ASSERT (ii); + CHECK (ii); while (++ii) { - ASSERT (*ii == refScope.getParent()); + CHECK (*ii == refScope.getParent()); refScope = *ii; } } @@ -137,86 +137,86 @@ namespace test { void checkRelations (ScopePath path1, PMO& refPlacement) { - ASSERT (path1.contains (refPlacement)); + CHECK (path1.contains (refPlacement)); Scope refScope (refPlacement); - ASSERT (path1.contains (refScope)); - ASSERT (path1.endsAt (refScope)); + CHECK (path1.contains (refScope)); + CHECK (path1.endsAt (refScope)); ScopePath path2 (refScope); - ASSERT (path2.contains (refScope)); - ASSERT (path2.endsAt (refScope)); + CHECK (path2.contains (refScope)); + CHECK (path2.endsAt (refScope)); - ASSERT (path1 == path2); - ASSERT (!isSameObject (path1,path2)); + CHECK (path1 == path2); + CHECK (!isSameObject (path1,path2)); Scope parent = path2.moveUp(); - ASSERT (path2.endsAt (parent)); - ASSERT (path1.endsAt (refScope)); - ASSERT (parent == refScope.getParent()); - ASSERT (path1 != path2); - ASSERT (path2 != path1); - ASSERT (path1.contains (path2)); - ASSERT (!disjoint(path1,path2)); - ASSERT (path2 == commonPrefix(path1,path2)); - ASSERT (path2 == commonPrefix(path2,path1)); - ASSERT (path1 != commonPrefix(path1,path2)); - ASSERT (path1 != commonPrefix(path2,path1)); + CHECK (path2.endsAt (parent)); + CHECK (path1.endsAt (refScope)); + CHECK (parent == refScope.getParent()); + CHECK (path1 != path2); + CHECK (path2 != path1); + CHECK (path1.contains (path2)); + CHECK (!disjoint(path1,path2)); + CHECK (path2 == commonPrefix(path1,path2)); + CHECK (path2 == commonPrefix(path2,path1)); + CHECK (path1 != commonPrefix(path1,path2)); + CHECK (path1 != commonPrefix(path2,path1)); } void rootPath (ScopePath refPath) { - ASSERT ( refPath); + CHECK ( refPath); refPath.goRoot(); - ASSERT (!refPath); - ASSERT (!refPath.empty()); - ASSERT (!refPath.isValid()); - ASSERT (1 == refPath.length()); + CHECK (!refPath); + CHECK (!refPath.empty()); + CHECK (!refPath.isValid()); + CHECK (1 == refPath.length()); ScopePath defaultPath; - ASSERT (!defaultPath); - ASSERT (refPath == defaultPath); + CHECK (!defaultPath); + CHECK (refPath == defaultPath); } void invalidPath (ScopePath refPath, PMO& refPlacement) { - ASSERT (refPath); - ASSERT (!ScopePath::INVALID); - ASSERT (isnil (ScopePath::INVALID)); - ASSERT ("!" == string(ScopePath::INVALID)); + CHECK (refPath); + CHECK (!ScopePath::INVALID); + CHECK (isnil (ScopePath::INVALID)); + CHECK ("!" == string(ScopePath::INVALID)); ScopePath invalidP (ScopePath::INVALID); - ASSERT (isnil (invalidP)); - ASSERT (invalidP == ScopePath::INVALID); - ASSERT (!isSameObject (invalidP, ScopePath::INVALID)); + CHECK (isnil (invalidP)); + CHECK (invalidP == ScopePath::INVALID); + CHECK (!isSameObject (invalidP, ScopePath::INVALID)); - ASSERT (refPath.contains (refPlacement)); - ASSERT (!invalidP.contains (refPlacement)); + CHECK (refPath.contains (refPlacement)); + CHECK (!invalidP.contains (refPlacement)); Scope refScope (refPlacement); - ASSERT (!invalidP.contains (refScope)); + CHECK (!invalidP.contains (refScope)); VERIFY_ERROR (EMPTY_SCOPE_PATH, invalidP.endsAt (refScope) ); // Logic: can't inspect the end of nothing - ASSERT (refPath.contains (invalidP)); // If the moon is made of green cheese, I'll eat my hat! - ASSERT (!invalidP.contains (refPath)); - ASSERT (invalidP == commonPrefix(refPath,invalidP)); - ASSERT (invalidP == commonPrefix(invalidP,refPath)); + CHECK (refPath.contains (invalidP)); // If the moon is made of green cheese, I'll eat my hat! + CHECK (!invalidP.contains (refPath)); + CHECK (invalidP == commonPrefix(refPath,invalidP)); + CHECK (invalidP == commonPrefix(invalidP,refPath)); VERIFY_ERROR (EMPTY_SCOPE_PATH, invalidP.moveUp() ); Scope root = refPath.goRoot(); - ASSERT (1 == refPath.length()); + CHECK (1 == refPath.length()); Scope const& nil = refPath.moveUp(); - ASSERT (refPath.empty()); - ASSERT (!nil.isValid()); - ASSERT (refPath == invalidP); - ASSERT (invalidP.contains (nil)); - ASSERT (invalidP.contains (refPath)); - ASSERT (!invalidP.contains (refScope)); + CHECK (refPath.empty()); + CHECK (!nil.isValid()); + CHECK (refPath == invalidP); + CHECK (invalidP.contains (nil)); + CHECK (invalidP.contains (refPath)); + CHECK (!invalidP.contains (refScope)); VERIFY_ERROR (EMPTY_SCOPE_PATH, refPath.navigate(root) ); @@ -232,31 +232,31 @@ namespace test { ScopePath path2 (startScope); ScopePath path3 (path2); - ASSERT (path1.contains (startScope)); - ASSERT (path2.contains (startScope)); - ASSERT (path3.contains (startScope)); + CHECK (path1.contains (startScope)); + CHECK (path2.contains (startScope)); + CHECK (path3.contains (startScope)); - ASSERT (path1 == path2); - ASSERT (path2 == path3); - ASSERT (path1 == path3); - ASSERT (!isSameObject (path1,path2)); - ASSERT (!isSameObject (path2,path3)); - ASSERT (!isSameObject (path1,path3)); + CHECK (path1 == path2); + CHECK (path2 == path3); + CHECK (path1 == path3); + CHECK (!isSameObject (path1,path2)); + CHECK (!isSameObject (path2,path3)); + CHECK (!isSameObject (path1,path3)); Scope parent = path3.moveUp(); - ASSERT (path1 == path2); - ASSERT (path2 != path3); - ASSERT (path1 != path3); + CHECK (path1 == path2); + CHECK (path2 != path3); + CHECK (path1 != path3); path2 = path3; - ASSERT (path1 != path2); - ASSERT (path2 == path3); - ASSERT (path1 != path3); + CHECK (path1 != path2); + CHECK (path2 == path3); + CHECK (path1 != path3); path2 = ScopePath::INVALID; - ASSERT (path1 != path2); - ASSERT (path2 != path3); - ASSERT (path1 != path3); + CHECK (path1 != path2); + CHECK (path2 != path3); + CHECK (path1 != path3); } @@ -312,28 +312,28 @@ namespace test { #define __SHOWPATH(N) cout << "Step("<<N<<"): "<< string(path) << endl; ScopePath path (refPath); __SHOWPATH(1) - ASSERT (path == refPath); + CHECK (path == refPath); Scope leaf = path.getLeaf(); Scope parent = path.moveUp(); __SHOWPATH(2) - ASSERT (path != refPath); - ASSERT (refPath.contains (path)); - ASSERT (refPath.endsAt (leaf)); - ASSERT (path.endsAt (parent)); - ASSERT (parent == leaf.getParent()); - ASSERT (parent == path.getLeaf()); + CHECK (path != refPath); + CHECK (refPath.contains (path)); + CHECK (refPath.endsAt (leaf)); + CHECK (path.endsAt (parent)); + CHECK (parent == leaf.getParent()); + CHECK (parent == path.getLeaf()); Scope root = path.goRoot(); __SHOWPATH(3) - ASSERT (path != refPath); - ASSERT (path.endsAt (root)); - ASSERT (refPath.contains (path)); - ASSERT (!path.endsAt (parent)); - ASSERT (!path.endsAt (leaf)); + CHECK (path != refPath); + CHECK (path.endsAt (root)); + CHECK (refPath.contains (path)); + CHECK (!path.endsAt (parent)); + CHECK (!path.endsAt (leaf)); path.navigate (parent); __SHOWPATH(4) - ASSERT (path.endsAt (parent)); - ASSERT (!path.endsAt (root)); - ASSERT (!path.endsAt (leaf)); + CHECK (path.endsAt (parent)); + CHECK (!path.endsAt (root)); + CHECK (!path.endsAt (leaf)); TestPlacement<> newNode (*new DummyMO); PMO& parentRefPoint = parent.getTop(); @@ -342,29 +342,29 @@ namespace test { index->insert (newNode, parentRefPoint)); path.navigate (newLocation); __SHOWPATH(5) Scope sibling = path.getLeaf(); - ASSERT (sibling == newLocation); - ASSERT (parent == sibling.getParent()); - ASSERT (path.endsAt (sibling)); - ASSERT (path.contains (parent)); - ASSERT (path.contains (root)); - ASSERT (!refPath.contains (path)); - ASSERT (!path.contains (refPath)); - ASSERT (!disjoint (path,refPath)); - ASSERT (!disjoint (refPath,path)); + CHECK (sibling == newLocation); + CHECK (parent == sibling.getParent()); + CHECK (path.endsAt (sibling)); + CHECK (path.contains (parent)); + CHECK (path.contains (root)); + CHECK (!refPath.contains (path)); + CHECK (!path.contains (refPath)); + CHECK (!disjoint (path,refPath)); + CHECK (!disjoint (refPath,path)); ScopePath prefix = commonPrefix (path,refPath); - ASSERT (prefix == commonPrefix (refPath,path)); - ASSERT (prefix.endsAt (parent)); - ASSERT (!prefix.contains (leaf)); - ASSERT (!prefix.contains (sibling)); + CHECK (prefix == commonPrefix (refPath,path)); + CHECK (prefix.endsAt (parent)); + CHECK (!prefix.contains (leaf)); + CHECK (!prefix.contains (sibling)); path.navigate (prefix.getLeaf()); __SHOWPATH(6) - ASSERT (path == prefix); + CHECK (path == prefix); // try to navigate to an unconnected location... ScopePath beforeInvalidNavigation = path; Scope const& unrelatedScope (fabricate_invalidScope()); VERIFY_ERROR (INVALID_SCOPE, path.navigate (unrelatedScope) ); - ASSERT (path == beforeInvalidNavigation); // not messed up by the incident + CHECK (path == beforeInvalidNavigation); // not messed up by the incident // now explore a completely separate branch.... PMO& separatePlacement = *explore_testScope ( @@ -372,13 +372,13 @@ namespace test { *explore_testScope ( root.getTop()))); path.navigate (separatePlacement); - ASSERT (path); - ASSERT (disjoint (path,refPath)); - ASSERT (path.contains(separatePlacement)); + CHECK (path); + CHECK (disjoint (path,refPath)); + CHECK (path.contains(separatePlacement)); Scope other = path.getLeaf(); - ASSERT (isSameObject (other.getTop(), separatePlacement)); + CHECK (isSameObject (other.getTop(), separatePlacement)); ScopePath rootPrefix = commonPrefix (path,refPath); - ASSERT (rootPrefix.endsAt (root)); + CHECK (rootPrefix.endsAt (root)); } @@ -387,14 +387,14 @@ namespace test { void clear (ScopePath& path, PPIdx index) { - ASSERT (path); + CHECK (path); PMO& rootNode = index->getRoot(); - ASSERT (path.getLeaf() != rootNode); + CHECK (path.getLeaf() != rootNode); path.clear(); - ASSERT (!path); - ASSERT (!isnil (path)); - ASSERT (path.getLeaf() == rootNode); + CHECK (!path); + CHECK (!isnil (path)); + CHECK (path.getLeaf() == rootNode); } }; diff --git a/tests/components/proc/mobject/session/scope-query-test.cpp b/tests/components/proc/mobject/session/scope-query-test.cpp index 994adb8dd..bce023e3d 100644 --- a/tests/components/proc/mobject/session/scope-query-test.cpp +++ b/tests/components/proc/mobject/session/scope-query-test.cpp @@ -1,23 +1,23 @@ /* ScopeQuery(Test) - running queries to discover container contents, filtering (sub)types - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -112,7 +112,7 @@ namespace test { ScopeQuery<TestSubMO21> allM021(scope, CONTENTS); ScopeQuery<TestSubMO21>::iterator specialEl (issue(allM021)); ++specialEl; // step in to second solution found... - ASSERT (specialEl); + CHECK (specialEl); discover (ScopeQuery<MObject> (*specialEl, PARENTS) , "parents of the second TestSubMO2 element found"); discover (ScopeQuery<MObject> (*specialEl, CHILDREN), "children of the this TestSubMO2 element"); diff --git a/tests/components/proc/mobject/session/session-element-query-test.cpp b/tests/components/proc/mobject/session/session-element-query-test.cpp index 9215b97fa..08e742af9 100644 --- a/tests/components/proc/mobject/session/session-element-query-test.cpp +++ b/tests/components/proc/mobject/session/session-element-query-test.cpp @@ -1,23 +1,23 @@ /* SessionElementQuery(Test) - querying and retrieving elements from the session - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/components/proc/mobject/session/session-element-tracker-test.cpp b/tests/components/proc/mobject/session/session-element-tracker-test.cpp index c7e90b96b..207d099a6 100644 --- a/tests/components/proc/mobject/session/session-element-tracker-test.cpp +++ b/tests/components/proc/mobject/session/session-element-tracker-test.cpp @@ -1,23 +1,23 @@ /* SessionElementTracker(Test) - check the facility to track and expose selected model elements - + Copyright (C) Lumiera.org 2008-2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -210,7 +210,7 @@ namespace test { void verify_cleanup (PTimeline aTimeline_in_session) { - REQUIRE (1 < aTimeline_in_session.use_count(), "test object should still be attached to session"); + CHECK (1 < aTimeline_in_session.use_count(), "test object should still be attached to session"); Session::current.reset(); aTimeline_in_session->detach(); // should be a no-op and not cause any invalid access } diff --git a/tests/components/proc/mobject/session/session-modify-parts-test.cpp b/tests/components/proc/mobject/session/session-modify-parts-test.cpp index 120ec4f0f..f7cb3d974 100644 --- a/tests/components/proc/mobject/session/session-modify-parts-test.cpp +++ b/tests/components/proc/mobject/session/session-modify-parts-test.cpp @@ -1,23 +1,23 @@ /* SessionModifyParts(Test) - adding and removing elements, changing structure - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/components/proc/mobject/session/session-service-access-test.cpp b/tests/components/proc/mobject/session/session-service-access-test.cpp index c1d7bc877..0cdd56479 100644 --- a/tests/components/proc/mobject/session/session-service-access-test.cpp +++ b/tests/components/proc/mobject/session/session-service-access-test.cpp @@ -1,23 +1,23 @@ /* SessionServiceAccess(Test) - accessing implementation level session services - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/components/proc/mobject/session/session-structure-test.cpp b/tests/components/proc/mobject/session/session-structure-test.cpp index 5f725c0e5..458633d5c 100644 --- a/tests/components/proc/mobject/session/session-structure-test.cpp +++ b/tests/components/proc/mobject/session/session-structure-test.cpp @@ -1,23 +1,23 @@ /* SessionStructure(Test) - verifying basic Session/Model structure - + Copyright (C) Lumiera.org 2008-2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -64,7 +64,7 @@ namespace test { run (Arg) { Session::current.reset(); - ASSERT (Session::current.isUp()); + CHECK (Session::current.isUp()); verify_defaultStructure(); } @@ -75,7 +75,7 @@ namespace test { { PSess sess = Session::current; - ASSERT (sess->isValid()); + CHECK (sess->isValid()); UNIMPLEMENTED("the real standard structure of the session"); //////////////////////////TICKET #499 @@ -83,53 +83,53 @@ namespace test { /////TODO the following is code from the old session mockup... try to rephrase it into the new (real) session API // - ASSERT (0 <= sess->currEDL().size()); // TODO implement - ASSERT (0 <= sess->getFixture()->size()); // TODO implement - ASSERT (sess->currEDL().getTracks()->isValid()); + CHECK (0 <= sess->currEDL().size()); // TODO implement + CHECK (0 <= sess->getFixture()->size()); // TODO implement + CHECK (sess->currEDL().getTracks()->isValid()); // PAsset track = sess->currEDL().getTracks()[0]; // TODO obsolete // AssetManager& aMang = AssetManager::instance(); -// ASSERT (track == aMang.getAsset (track->getID())); +// CHECK (track == aMang.getAsset (track->getID())); #endif //////////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #546 UNIMPLEMENTED ("how to refer to tracks..."); - ASSERT (0 < sess->timelines.size()); + CHECK (0 < sess->timelines.size()); PTimeline til = sess->timelines[0]; - ASSERT (0 < sess->sequences.size()); + CHECK (0 < sess->sequences.size()); PSequence seq = sess->sequences[0]; #if false //////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #546 - ASSERT (isSameObject (seq, til->getSequence())); + CHECK (isSameObject (seq, til->getSequence())); //verify default timeline Axis& axis = til->getAxis(); - ASSERT (Time(0) == axis.origin()); - ASSERT (Time(0) == til->length()); ////////////////////////TICKET #177 + CHECK (Time(0) == axis.origin()); + CHECK (Time(0) == til->length()); ////////////////////////TICKET #177 //verify global pipes //TODO //verify default sequence RTrack rootTrack = seq->rootTrack(); - ASSERT (rootTrack->isValid()); - ASSERT (Time(0) == rootTrack->length()); - ASSERT (0 == rootTrack->subTracks.size()); - ASSERT (0 == rootTrack->clips.size()); + CHECK (rootTrack->isValid()); + CHECK (Time(0) == rootTrack->length()); + CHECK (0 == rootTrack->subTracks.size()); + CHECK (0 == rootTrack->clips.size()); //TODO verify the output slots of the sequence //TODO now use the generic query API to discover the same structure. - ASSERT (til == *(sess->all<Timeline>())); - ASSERT (seq == *(sess->all<Sequence>())); - ASSERT (rootTrack == *(sess->all<Track>())); - ASSERT (! sess->all<Clip>()); + CHECK (til == *(sess->all<Timeline>())); + CHECK (seq == *(sess->all<Sequence>())); + CHECK (rootTrack == *(sess->all<Track>())); + CHECK (! sess->all<Clip>()); QueryFocus& focus = sess->focus(); - ASSERT (rootTrack == focus.getObject()); + CHECK (rootTrack == focus.getObject()); focus.navigate (til); - ASSERT (til.getBinding() == focus.getObject()); - ASSERT (rootTrack == *(focus.children())); + CHECK (til.getBinding() == focus.getObject()); + CHECK (rootTrack == *(focus.children())); #endif //////////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #546 } }; diff --git a/tests/components/proc/mobject/session/sessionmanagertest.cpp b/tests/components/proc/mobject/session/sessionmanagertest.cpp index eb6162e26..f36e3871c 100644 --- a/tests/components/proc/mobject/session/sessionmanagertest.cpp +++ b/tests/components/proc/mobject/session/sessionmanagertest.cpp @@ -1,23 +1,23 @@ /* SessionManager(Test) - accessing, loading and saving the Session/Model - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -59,7 +59,7 @@ namespace test { string serialized; saveSession (serialized); loadSession (serialized); - ASSERT (checkTestsession1()); + CHECK (checkTestsession1()); } @@ -68,7 +68,7 @@ namespace test { getCurrentSession () { PSess sess = Session::current; - ASSERT (sess->isValid()); + CHECK (sess->isValid()); } diff --git a/tests/components/proc/mobject/session/test-scope-invalid.hpp b/tests/components/proc/mobject/session/test-scope-invalid.hpp index ecfa18f04..23435d144 100644 --- a/tests/components/proc/mobject/session/test-scope-invalid.hpp +++ b/tests/components/proc/mobject/session/test-scope-invalid.hpp @@ -1,23 +1,23 @@ /* TEST-SCOPE-INVALID.hpp - helper for placement scope and scope stack tests - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/tests/components/proc/mobject/session/test-scopes.cpp b/tests/components/proc/mobject/session/test-scopes.cpp index 8edfacc21..04b09ae27 100644 --- a/tests/components/proc/mobject/session/test-scopes.cpp +++ b/tests/components/proc/mobject/session/test-scopes.cpp @@ -1,23 +1,23 @@ /* TEST-SCOPES.cpp - builds a test PlacementIndex containing dummy Placements as nested scopes - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/components/proc/mobject/session/test-scopes.hpp b/tests/components/proc/mobject/session/test-scopes.hpp index c83856791..8b9b3a2fe 100644 --- a/tests/components/proc/mobject/session/test-scopes.hpp +++ b/tests/components/proc/mobject/session/test-scopes.hpp @@ -1,23 +1,23 @@ /* TEST-SCOPES.hpp - builds a test PlacementIndex containing dummy Placements as nested scopes - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/tests/components/proc/mobject/session/testclip.cpp b/tests/components/proc/mobject/session/testclip.cpp index a721d8e1c..c8c916512 100644 --- a/tests/components/proc/mobject/session/testclip.cpp +++ b/tests/components/proc/mobject/session/testclip.cpp @@ -1,23 +1,23 @@ /* TestClip - test clip (stub) for checking Model/Session functionality - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -79,7 +79,7 @@ namespace test { : Clip(testbed_1().clipA_, testbed_1().media_) { - ASSERT (isValid()); + CHECK (isValid()); } diff --git a/tests/components/proc/mobject/session/testclip.hpp b/tests/components/proc/mobject/session/testclip.hpp index fadaf7e58..5907f6750 100644 --- a/tests/components/proc/mobject/session/testclip.hpp +++ b/tests/components/proc/mobject/session/testclip.hpp @@ -1,23 +1,23 @@ /* TESTCLIP.hpp - test clip (stub) for checking Model/Session functionality - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/tests/components/proc/mobject/session/testroot.hpp b/tests/components/proc/mobject/session/testroot.hpp index 0b0585f79..69af08447 100644 --- a/tests/components/proc/mobject/session/testroot.hpp +++ b/tests/components/proc/mobject/session/testroot.hpp @@ -1,23 +1,23 @@ /* TESTROOT.hpp - test dummy model root for checking Model/Session functionality - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/tests/components/proc/mobject/session/testsession1.hpp b/tests/components/proc/mobject/session/testsession1.hpp index 198e796ff..4b67fcd08 100644 --- a/tests/components/proc/mobject/session/testsession1.hpp +++ b/tests/components/proc/mobject/session/testsession1.hpp @@ -1,23 +1,23 @@ /* TESTSESSION1.hpp - complete session configuration used for various tests - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/tests/components/proc/mobject/session/timeline-sequence-handling-test.cpp b/tests/components/proc/mobject/session/timeline-sequence-handling-test.cpp index 7d81c8dbb..c250b6019 100644 --- a/tests/components/proc/mobject/session/timeline-sequence-handling-test.cpp +++ b/tests/components/proc/mobject/session/timeline-sequence-handling-test.cpp @@ -1,23 +1,23 @@ /* TimelineSequenceHandling(Test) - managing the top level session facade objects - + Copyright (C) Lumiera.org 2008-2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/lib/Makefile.am b/tests/lib/Makefile.am index f8661006b..fd9c76ac4 100644 --- a/tests/lib/Makefile.am +++ b/tests/lib/Makefile.am @@ -43,7 +43,7 @@ test_lib_SOURCES = \ $(testlib_srcdir)/advice/advice-index-test.cpp \ $(testlib_srcdir)/advice/advice-multiplicity-test.cpp \ $(testlib_srcdir)/advice/advice-situations-test.cpp \ - $(testlib_srcdir)/allocationclustertest.cpp \ + $(testlib_srcdir)/allocation-cluster-test.cpp \ $(testlib_srcdir)/appconfigtest.cpp \ $(testlib_srcdir)/bool-checkable-test.cpp \ $(testlib_srcdir)/custom-shared-ptr-test.cpp \ @@ -84,10 +84,10 @@ test_lib_SOURCES = \ $(testlib_srcdir)/sanitised-identifier-test.cpp \ $(testlib_srcdir)/scoped-holder-test.cpp \ $(testlib_srcdir)/scoped-ptrvect-test.cpp \ - $(testlib_srcdir)/scopedholdertransfertest.cpp \ + $(testlib_srcdir)/scoped-holder-transfer-test.cpp \ $(testlib_srcdir)/singleton-subclass-test.cpp \ $(testlib_srcdir)/singleton-test.cpp \ - $(testlib_srcdir)/singletontestmocktest.cpp \ + $(testlib_srcdir)/singleton-testmock-test.cpp \ $(testlib_srcdir)/streamtypebasicstest.cpp \ $(testlib_srcdir)/streamtypelifecycletest.cpp \ $(testlib_srcdir)/sub-id-test.cpp \ @@ -106,7 +106,7 @@ test_lib_SOURCES = \ $(testlib_srcdir)/typed-allocation-manager-test.cpp \ $(testlib_srcdir)/typed-counter-test.cpp \ $(testlib_srcdir)/util-foreach-test.cpp \ - $(testlib_srcdir)/vectortransfertest.cpp \ + $(testlib_srcdir)/vector-transfer-test.cpp \ $(testlib_srcdir)/visitingtoolconcept.cpp \ $(testlib_srcdir)/visitingtoolextendedtest.cpp \ $(testlib_srcdir)/visitingtooltest.cpp diff --git a/tests/lib/advice/advice-basics-test.cpp b/tests/lib/advice/advice-basics-test.cpp index dcdde8992..809f53814 100644 --- a/tests/lib/advice/advice-basics-test.cpp +++ b/tests/lib/advice/advice-basics-test.cpp @@ -1,23 +1,23 @@ /* AdviceBasics(Test) - basic behaviour of the Advice collaboration - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/lib/advice/advice-binding-pattern-test.cpp b/tests/lib/advice/advice-binding-pattern-test.cpp index 285b3065e..54c6741d5 100644 --- a/tests/lib/advice/advice-binding-pattern-test.cpp +++ b/tests/lib/advice/advice-binding-pattern-test.cpp @@ -1,23 +1,23 @@ /* AdviceBindingPattern(Test) - cover pattern matching used to dispatch Advice - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/lib/advice/advice-configuration-test.cpp b/tests/lib/advice/advice-configuration-test.cpp index c4448a67a..0ea2be33d 100644 --- a/tests/lib/advice/advice-configuration-test.cpp +++ b/tests/lib/advice/advice-configuration-test.cpp @@ -1,23 +1,23 @@ /* AdviceConfiguration(Test) - cover the various policies to configure Advice - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/lib/advice/advice-index-test.cpp b/tests/lib/advice/advice-index-test.cpp index 1e516c958..a8f382905 100644 --- a/tests/lib/advice/advice-index-test.cpp +++ b/tests/lib/advice/advice-index-test.cpp @@ -1,23 +1,23 @@ /* AdviceIndex(Test) - cover the index datastructure used to implement Advice dispatch - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/lib/advice/advice-multiplicity-test.cpp b/tests/lib/advice/advice-multiplicity-test.cpp index 35cf42e5b..c95da30e3 100644 --- a/tests/lib/advice/advice-multiplicity-test.cpp +++ b/tests/lib/advice/advice-multiplicity-test.cpp @@ -1,23 +1,23 @@ /* AdviceMultiplicity(Test) - verify correctness when dispatching multiple Advices concurrently - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/lib/advice/advice-situations-test.cpp b/tests/lib/advice/advice-situations-test.cpp index 35110156a..88de5debb 100644 --- a/tests/lib/advice/advice-situations-test.cpp +++ b/tests/lib/advice/advice-situations-test.cpp @@ -1,23 +1,23 @@ /* AdviceSituations(Test) - catalogue of standard Advice usage scenarios - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/lib/allocation-cluster-test.cpp b/tests/lib/allocation-cluster-test.cpp new file mode 100644 index 000000000..cf8897bf5 --- /dev/null +++ b/tests/lib/allocation-cluster-test.cpp @@ -0,0 +1,234 @@ +/* + AllocationCluster(Test) - verify bulk (de)allocating a family of objects + + Copyright (C) Lumiera.org + 2008, Hermann Vosseler <Ichthyostega@web.de> + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +* *****************************************************/ + + + +#include "lib/test/run.hpp" +#include "lib/test/test-helper.hpp" +#include "lib/util.hpp" +#include "lib/util-foreach.hpp" + +#include "lib/allocation-cluster.hpp" +#include "lib/scoped-holder.hpp" + +#include <vector> +#include <limits> +#include <boost/lexical_cast.hpp> + +using boost::lexical_cast; +using lib::test::showSizeof; +using util::for_each; +using util::isnil; +using ::Test; + +using std::numeric_limits; +using std::vector; + + + +namespace lib { +namespace test { + + namespace { // a family of test dummy classes + + uint NUM_CLUSTERS = 5; + uint NUM_OBJECTS = 500; + uint NUM_FAMILIES = 5; + + long checksum = 0; // validate proper pairing of ctor/dtor calls + bool randomFailures = false; + + template<uint i> + class Dummy + { + char content[i]; + + public: + Dummy (char id=1) + { + content[0] = id; + checksum += id; + } + Dummy (char i1, char i2, char i3=0) + { + char id = i1 + i2 + i3; + content[0] = id; + checksum += id; + if (randomFailures && 0 == (rand() % 20)) + throw id; + } + + ~Dummy() + { + checksum -= content[0]; + } + + char getID() { return content[0]; } + }; + + typedef ScopedHolder<AllocationCluster> PCluster; + typedef vector<PCluster> ClusterList; + + inline char + truncChar (uint x) + { + return x % numeric_limits<char>::max(); + } + + template<uint i> + void + place_object (AllocationCluster& clu, uint id) + { + clu.create<Dummy<i> > (id); + } + + typedef void (Invoker)(AllocationCluster&, uint); + + Invoker* invoke[20] = { &place_object<1> + , &place_object<2> + , &place_object<3> + , &place_object<5> + , &place_object<10> + , &place_object<13> + , &place_object<14> + , &place_object<15> + , &place_object<16> + , &place_object<17> + , &place_object<18> + , &place_object<19> + , &place_object<20> + , &place_object<25> + , &place_object<30> + , &place_object<35> + , &place_object<40> + , &place_object<50> + , &place_object<100> + , &place_object<200> + }; + + void + fillIt (PCluster& clu) + { + clu.create(); + + if (20<NUM_FAMILIES) + NUM_FAMILIES = 20; + + for (uint i=0; i<NUM_OBJECTS; ++i) + { + char id = truncChar(i); + (*(invoke[rand() % NUM_FAMILIES])) (*clu,id); + } + } + + } + + + + /************************************************************************* + * @test verify the proper workings of our custom allocation scheme + * managing families of interconnected objects for the segments + * of the low-level model. + */ + class AllocationCluster_test : public Test + { + virtual void + run (Arg arg) + { + if (0 < arg.size()) NUM_CLUSTERS = lexical_cast<uint> (arg[0]); + if (1 < arg.size()) NUM_OBJECTS = lexical_cast<uint> (arg[1]); + if (2 < arg.size()) NUM_FAMILIES = lexical_cast<uint> (arg[2]); + + simpleUsage(); + checkAllocation(); + checkErrorHandling(); + } + + + void + simpleUsage() + { + AllocationCluster clu; + + char c1(123), c2(56), c3(3), c4(4), c5(5); + Dummy<44>& ref1 = clu.create<Dummy<44> > (); + Dummy<37>& ref2 = clu.create<Dummy<37> > (c1); + Dummy<37>& ref3 = clu.create<Dummy<37> > (c2); + Dummy<1234>& rX = clu.create<Dummy<1234> > (c3,c4,c5); + + CHECK (&ref1); + CHECK (&ref2); + CHECK (&ref3); + CHECK (&rX); + TRACE (test, "%s", showSizeof(rX).c_str()); + + CHECK (123==ref2.getID()); + CHECK (3+4+5==rX.getID()); + // shows that the returned references actually + // point at the objects we created. Just use them + // and let them go. When clu goes out of scope, + // all created object's dtors will be invoked. + } + + + void + checkAllocation() + { + CHECK (0==checksum); + { + ClusterList clusters (NUM_CLUSTERS); + for_each (clusters, fillIt); + CHECK (0!=checksum); + } + CHECK (0==checksum); + } + + + void + checkErrorHandling() + { + CHECK (0==checksum); + { + randomFailures = true; + + AllocationCluster clu; + for (uint i=0; i<NUM_OBJECTS; ++i) + try + { + char i1 = truncChar(i); + char i2 = truncChar(rand() % 5); + clu.create<Dummy<1> > (i1,i2); + } + catch (char id) + { + checksum -= id; // exception thrown from within constructor, + } // thus dtor won't be called. Repair the checksum! + } + randomFailures = false; + CHECK (0==checksum); + } + }; + + LAUNCHER (AllocationCluster_test, "unit common"); + + +}} // namespace lib::test diff --git a/tests/lib/allocationclustertest.cpp b/tests/lib/allocationclustertest.cpp deleted file mode 100644 index 42ea6fcca..000000000 --- a/tests/lib/allocationclustertest.cpp +++ /dev/null @@ -1,236 +0,0 @@ -/* - AllocationCluster(Test) - verify bulk (de)allocating a family of objects - - Copyright (C) Lumiera.org - 2008, Hermann Vosseler <Ichthyostega@web.de> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -* *****************************************************/ - - - -#include "lib/test/run.hpp" -#include "lib/test/test-helper.hpp" -#include "lib/util.hpp" -#include "lib/util-foreach.hpp" - -#include "lib/allocationcluster.hpp" -#include "lib/scoped-holder.hpp" - -#include <vector> -#include <limits> -#include <boost/lexical_cast.hpp> - -using boost::lexical_cast; -using lib::test::showSizeof; -using util::for_each; -using util::isnil; -using ::Test; - -using std::numeric_limits; -using std::vector; - - - -namespace lib { - namespace test { - - namespace { // a family of test dummy classes - - uint NUM_CLUSTERS = 5; - uint NUM_OBJECTS = 500; - uint NUM_FAMILIES = 5; - - long checksum = 0; // validate proper pairing of ctor/dtor calls - bool randomFailures = false; - - template<uint i> - class Dummy - { - char content[i]; - - public: - Dummy (char id=1) - { - content[0] = id; - checksum += id; - } - Dummy (char i1, char i2, char i3=0) - { - char id = i1 + i2 + i3; - content[0] = id; - checksum += id; - if (randomFailures && 0 == (rand() % 20)) - throw id; - } - - ~Dummy() - { - checksum -= content[0]; - } - - char getID() { return content[0]; } - }; - - typedef ScopedHolder<AllocationCluster> PCluster; - typedef vector<PCluster> ClusterList; - - inline char - truncChar (uint x) - { - return x % numeric_limits<char>::max(); - } - - template<uint i> - void - place_object (AllocationCluster& clu, uint id) - { - clu.create<Dummy<i> > (id); - } - - typedef void (Invoker)(AllocationCluster&, uint); - - Invoker* invoke[20] = { &place_object<1> - , &place_object<2> - , &place_object<3> - , &place_object<5> - , &place_object<10> - , &place_object<13> - , &place_object<14> - , &place_object<15> - , &place_object<16> - , &place_object<17> - , &place_object<18> - , &place_object<19> - , &place_object<20> - , &place_object<25> - , &place_object<30> - , &place_object<35> - , &place_object<40> - , &place_object<50> - , &place_object<100> - , &place_object<200> - }; - - void - fillIt (PCluster& clu) - { - clu.create(); - - if (20<NUM_FAMILIES) - NUM_FAMILIES = 20; - - for (uint i=0; i<NUM_OBJECTS; ++i) - { - char id = truncChar(i); - (*(invoke[rand() % NUM_FAMILIES])) (*clu,id); - } - } - - } - - - - /************************************************************************* - * @test verify the proper workings of our custom allocation scheme - * managing families of interconnected objects for the segments - * of the low-level model. - */ - class AllocationCluster_test : public Test - { - virtual void - run (Arg arg) - { - if (0 < arg.size()) NUM_CLUSTERS = lexical_cast<uint> (arg[0]); - if (1 < arg.size()) NUM_OBJECTS = lexical_cast<uint> (arg[1]); - if (2 < arg.size()) NUM_FAMILIES = lexical_cast<uint> (arg[2]); - - simpleUsage(); - checkAllocation(); - checkErrorHandling(); - } - - - void - simpleUsage() - { - AllocationCluster clu; - - char c1(123), c2(56), c3(3), c4(4), c5(5); - Dummy<44>& ref1 = clu.create<Dummy<44> > (); - Dummy<37>& ref2 = clu.create<Dummy<37> > (c1); - Dummy<37>& ref3 = clu.create<Dummy<37> > (c2); - Dummy<1234>& rX = clu.create<Dummy<1234> > (c3,c4,c5); - - ASSERT (&ref1); - ASSERT (&ref2); - ASSERT (&ref3); - ASSERT (&rX); - TRACE (test, "%s", showSizeof(rX).c_str()); - - ASSERT (123==ref2.getID()); - ASSERT (3+4+5==rX.getID()); - // shows that the returned references actually - // point at the objects we created. Just use them - // and let them go. When clu goes out of scope, - // all created object's dtors will be invoked. - } - - - void - checkAllocation() - { - ASSERT (0==checksum); - { - ClusterList clusters (NUM_CLUSTERS); - for_each (clusters, fillIt); - ASSERT (0!=checksum); - } - ASSERT (0==checksum); - } - - - void - checkErrorHandling() - { - ASSERT (0==checksum); - { - randomFailures = true; - - AllocationCluster clu; - for (uint i=0; i<NUM_OBJECTS; ++i) - try - { - char i1 = truncChar(i); - char i2 = truncChar(rand() % 5); - clu.create<Dummy<1> > (i1,i2); - } - catch (char id) - { - checksum -= id; // exception thrown from within constructor, - } // thus dtor won't be called. Repair the checksum! - } - randomFailures = false; - ASSERT (0==checksum); - } - }; - - LAUNCHER (AllocationCluster_test, "unit common"); - - - }// namespace test - -} // namespace lib diff --git a/tests/lib/appconfigtest.cpp b/tests/lib/appconfigtest.cpp index f3b551492..5a65f25d6 100644 --- a/tests/lib/appconfigtest.cpp +++ b/tests/lib/appconfigtest.cpp @@ -1,23 +1,23 @@ /* Appconfig(Test) - accessing the always-available AppState singleton - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -46,7 +46,7 @@ namespace lumiera { void testAccess (const string& key) { // string ver = lumiera::AppState::get(key); -// ASSERT ( !util::isnil(ver)); +// CHECK ( !util::isnil(ver)); } }; diff --git a/tests/lib/bool-checkable-test.cpp b/tests/lib/bool-checkable-test.cpp index 501bcb622..41175202c 100644 --- a/tests/lib/bool-checkable-test.cpp +++ b/tests/lib/bool-checkable-test.cpp @@ -1,23 +1,23 @@ /* BoolCheckable(Test) - verify the mixin for implicit conversion to bool - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -88,12 +88,12 @@ namespace test{ if (test) cout << i << "\n"; - ASSERT (test.isValid() == bool(test) ); - ASSERT (test.isValid() != !test); + CHECK (test.isValid() == bool(test) ); + CHECK (test.isValid() != !test); } cout << showSizeof<ExampleCustomType123>() <<"\n"; - ASSERT (sizeof (int) == sizeof (ExampleCustomType123)); + CHECK (sizeof (int) == sizeof (ExampleCustomType123)); } }; diff --git a/tests/lib/custom-shared-ptr-test.cpp b/tests/lib/custom-shared-ptr-test.cpp index fe85e5149..c6d9e147d 100644 --- a/tests/lib/custom-shared-ptr-test.cpp +++ b/tests/lib/custom-shared-ptr-test.cpp @@ -1,23 +1,23 @@ /* CustomSharedPtr(Test) - ref counting, equality and comparisons - + Copyright (C) Lumiera.org 2008-2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -42,7 +42,7 @@ namespace test{ using lumiera::error::LUMIERA_ERROR_ASSERTION; - struct X + struct X : boost::totally_ordered<X> { long x_; @@ -73,7 +73,7 @@ namespace test{ class CustomSharedPtr_test : public Test { virtual void - run (Arg) + run (Arg) { check_refcounting (); check_shared_ownership (); @@ -87,29 +87,29 @@ namespace test{ check_refcounting () { P<X> p1 (new X(7)); - ASSERT (p1); - ASSERT (1 == p1.use_count()); - ASSERT (7 == p1->x_); + CHECK (p1); + CHECK (1 == p1.use_count()); + CHECK (7 == p1->x_); { P<X> p2 (new X(9)); - ASSERT (1 == p2.use_count()); + CHECK (1 == p2.use_count()); p2.swap (p1); - ASSERT (1 == p1.use_count()); - ASSERT (1 == p2.use_count()); + CHECK (1 == p1.use_count()); + CHECK (1 == p2.use_count()); p2 = p1; - ASSERT (2 == p1.use_count()); - ASSERT (2 == p2.use_count()); + CHECK (2 == p1.use_count()); + CHECK (2 == p2.use_count()); } - - ASSERT (1 == p1.use_count()); - ASSERT (9 == p1->x_); + + CHECK (1 == p1.use_count()); + CHECK (9 == p1->x_); p1.reset(); - ASSERT (0 == p1.use_count()); - ASSERT (!p1); + CHECK (0 == p1.use_count()); + CHECK (!p1); } @@ -118,53 +118,53 @@ namespace test{ check_shared_ownership () { std::auto_ptr<X> au (new X(22)); - ASSERT (au.get()); + CHECK (au.get()); P<X> pX (au); - ASSERT (!au.get()); - ASSERT (pX); - ASSERT (1 == pX.use_count()); - ASSERT (22 == pX->x_); + CHECK (!au.get()); + CHECK (pX); + CHECK (1 == pX.use_count()); + CHECK (22 == pX->x_); weak_ptr<X> wX (pX); - ASSERT (wX.lock()); - ASSERT (1 == pX.use_count()); + CHECK (wX.lock()); + CHECK (1 == pX.use_count()); shared_ptr<X> sp1 (wX); - shared_ptr<X> sp2 (pX); + shared_ptr<X> sp2 (pX); shared_ptr<X> sp3; sp3 = pX; - ASSERT (22 == sp3->x_); - ASSERT (4 == pX.use_count()); - ASSERT (*pX == *sp1); - ASSERT (*sp1 == *sp2); - ASSERT (*sp2 == *sp3); + CHECK (22 == sp3->x_); + CHECK (4 == pX.use_count()); + CHECK (*pX == *sp1); + CHECK (*sp1 == *sp2); + CHECK (*sp2 == *sp3); P<X> pX2; pX2.swap(pX); - ASSERT (!pX); - ASSERT (0 == pX.use_count()); - ASSERT (4 == pX2.use_count()); + CHECK (!pX); + CHECK (0 == pX.use_count()); + CHECK (4 == pX2.use_count()); P<X, P<X> > pXX (pX2); // a different type, but compatible pointers pX2 = pX; - ASSERT (!pX2); - ASSERT (0 == pX2.use_count()); - ASSERT (4 == pXX.use_count()); + CHECK (!pX2); + CHECK (0 == pX2.use_count()); + CHECK (4 == pXX.use_count()); sp3 = sp2 = sp1 = pX; - ASSERT (22 == pXX->x_); - ASSERT (1 == pXX.use_count()); - ASSERT (!sp1); - ASSERT (!sp2); - ASSERT (!sp3); + CHECK (22 == pXX->x_); + CHECK (1 == pXX.use_count()); + CHECK (!sp1); + CHECK (!sp2); + CHECK (!sp3); - ASSERT (22 == wX.lock()->x_); - ASSERT (1 == pXX.use_count()); + CHECK (22 == wX.lock()->x_); + CHECK (1 == pXX.use_count()); pXX.reset(); - ASSERT (!pXX); - ASSERT (!wX.lock()); + CHECK (!pXX); + CHECK (!wX.lock()); } @@ -180,32 +180,32 @@ namespace test{ P<X,string> pLoL; // Base: std::string P<string> pLoLoL; // Base: shared_ptr<string> - ASSERT (INSTANCEOF (shared_ptr<X>, &pX)); + CHECK (INSTANCEOF (shared_ptr<X>, &pX)); - ASSERT ( INSTANCEOF (shared_ptr<XX>, &pX1)); -// ASSERT (!INSTANCEOF (shared_ptr<X>, &pX1)); // doesn't compile (no RTTI) -- that's correct -// ASSERT (!INSTANCEOF (P<X>, &pX1)); // similar, type mismatch detected by compiler + CHECK ( INSTANCEOF (shared_ptr<XX>, &pX1)); +// CHECK (!INSTANCEOF (shared_ptr<X>, &pX1)); // doesn't compile (no RTTI) -- that's correct +// CHECK (!INSTANCEOF (P<X>, &pX1)); // similar, type mismatch detected by compiler - ASSERT ( INSTANCEOF (shared_ptr<X>, &pX2)); -// ASSERT (!INSTANCEOF (shared_ptr<XX>, &pX2)); - ASSERT ( INSTANCEOF (P<X>, &pX2)); + CHECK ( INSTANCEOF (shared_ptr<X>, &pX2)); +// CHECK (!INSTANCEOF (shared_ptr<XX>, &pX2)); + CHECK ( INSTANCEOF (P<X>, &pX2)); - ASSERT ( INSTANCEOF (shared_ptr<X>, &pX3)); -// ASSERT (!INSTANCEOF (shared_ptr<XX>, &pX3)); -// ASSERT (!INSTANCEOF (P<X>, &pX3)); + CHECK ( INSTANCEOF (shared_ptr<X>, &pX3)); +// CHECK (!INSTANCEOF (shared_ptr<XX>, &pX3)); +// CHECK (!INSTANCEOF (P<X>, &pX3)); - ASSERT ( INSTANCEOF (shared_ptr<long>, &pLo)); -// ASSERT (!INSTANCEOF (shared_ptr<X>, &pLo)); -// ASSERT (!INSTANCEOF (P<X>, &pLo)); + CHECK ( INSTANCEOF (shared_ptr<long>, &pLo)); +// CHECK (!INSTANCEOF (shared_ptr<X>, &pLo)); +// CHECK (!INSTANCEOF (P<X>, &pLo)); -// ASSERT (!INSTANCEOF (shared_ptr<long>, &pLoL)); -// ASSERT (!INSTANCEOF (shared_ptr<X>, &pLoL)); -// ASSERT (!INSTANCEOF (P<X>, &pLoL)); - ASSERT ( INSTANCEOF (string, &pLoL)); +// CHECK (!INSTANCEOF (shared_ptr<long>, &pLoL)); +// CHECK (!INSTANCEOF (shared_ptr<X>, &pLoL)); +// CHECK (!INSTANCEOF (P<X>, &pLoL)); + CHECK ( INSTANCEOF (string, &pLoL)); - ASSERT ( INSTANCEOF (shared_ptr<string>, &pLoLoL)); -// ASSERT (!INSTANCEOF (string, &pLoLoL)); -// ASSERT (!INSTANCEOF (shared_ptr<X>, &pLoLoL)); + CHECK ( INSTANCEOF (shared_ptr<string>, &pLoLoL)); +// CHECK (!INSTANCEOF (string, &pLoLoL)); +// CHECK (!INSTANCEOF (shared_ptr<X>, &pLoLoL)); pX = pX1; // OK: pointee subtype... pX = pX2; // invokes shared_ptr<X>::operator= (shared_ptr<X> const&) @@ -213,22 +213,22 @@ namespace test{ // pX = pLo; // similar, but long* not assignable to X* // pX = pLoL; // similar, but string* not assignable to X* // pX = pLoLoL; // same... - // you won't be able to do much with the "LoLo"-Types, + // you won't be able to do much with the "LoLo"-Types, // as their types and pointee types's relations don't match pX.reset (new XX(5)); - ASSERT (5 == *pX); // implicit conversion from X to long + CHECK (5 == *pX); // implicit conversion from X to long pX2 = pX; // works, because both are implemented in terms of shared_ptr<X> - ASSERT (5 == pX2->x_); - ASSERT (6 == pX2->xx_); // using the XX interface (performing dynamic downcast) + CHECK (5 == pX2->x_); + CHECK (6 == pX2->xx_); // using the XX interface (performing dynamic downcast) pX3.reset (new X(7)); // again works because implemented in terms of shared_ptr<X> pX2 = pX3; // same - ASSERT (pX2); // both contain indeed a valid pointer.... - ASSERT (pX3); - ASSERT (! pX2.get()); // but dynamic cast to XX at access fails - ASSERT (! pX3.get()); + CHECK (pX2); // both contain indeed a valid pointer.... + CHECK (pX3); + CHECK (! pX2.get()); // but dynamic cast to XX at access fails + CHECK (! pX3.get()); } @@ -247,53 +247,53 @@ namespace test{ pX3 = pXX; pX4.reset(new X(*pXX)); - ASSERT ( (pX1 == pX1)); // reflexivity - ASSERT (!(pX1 != pX1)); - ASSERT (!(pX1 < pX1)); - ASSERT (!(pX1 > pX1)); - ASSERT ( (pX1 <= pX1)); - ASSERT ( (pX1 >= pX1)); + CHECK ( (pX1 == pX1)); // reflexivity + CHECK (!(pX1 != pX1)); + CHECK (!(pX1 < pX1)); + CHECK (!(pX1 > pX1)); + CHECK ( (pX1 <= pX1)); + CHECK ( (pX1 >= pX1)); - ASSERT (!(pX1 == pX2)); // compare to same ptr type with larger pointee of subtype - ASSERT ( (pX1 != pX2)); - ASSERT ( (pX1 < pX2)); - ASSERT (!(pX1 > pX2)); - ASSERT ( (pX1 <= pX2)); - ASSERT (!(pX1 >= pX2)); + CHECK (!(pX1 == pX2)); // compare to same ptr type with larger pointee of subtype + CHECK ( (pX1 != pX2)); + CHECK ( (pX1 < pX2)); + CHECK (!(pX1 > pX2)); + CHECK ( (pX1 <= pX2)); + CHECK (!(pX1 >= pX2)); - ASSERT (!(pX2 == pXX)); // compare to ptr subtype with larger pointee of same subtype - ASSERT ( (pX2 != pXX)); - ASSERT ( (pX2 < pXX)); - ASSERT (!(pX2 > pXX)); - ASSERT ( (pX2 <= pXX)); - ASSERT (!(pX2 >= pXX)); + CHECK (!(pX2 == pXX)); // compare to ptr subtype with larger pointee of same subtype + CHECK ( (pX2 != pXX)); + CHECK ( (pX2 < pXX)); + CHECK (!(pX2 > pXX)); + CHECK ( (pX2 <= pXX)); + CHECK (!(pX2 >= pXX)); - ASSERT (!(pX1 == pXX)); // transitively compare to ptr subtype with larger pointee of subtype - ASSERT ( (pX1 != pXX)); - ASSERT ( (pX1 < pXX)); - ASSERT (!(pX1 > pXX)); - ASSERT ( (pX1 <= pXX)); - ASSERT (!(pX1 >= pXX)); + CHECK (!(pX1 == pXX)); // transitively compare to ptr subtype with larger pointee of subtype + CHECK ( (pX1 != pXX)); + CHECK ( (pX1 < pXX)); + CHECK (!(pX1 > pXX)); + CHECK ( (pX1 <= pXX)); + CHECK (!(pX1 >= pXX)); - ASSERT ( (pX3 == pXX)); // compare ptr to subtype ptr both referring to same pointee - ASSERT (!(pX3 != pXX)); - ASSERT (!(pX3 < pXX)); - ASSERT (!(pX3 > pXX)); - ASSERT ( (pX3 <= pXX)); - ASSERT ( (pX3 >= pXX)); + CHECK ( (pX3 == pXX)); // compare ptr to subtype ptr both referring to same pointee + CHECK (!(pX3 != pXX)); + CHECK (!(pX3 < pXX)); + CHECK (!(pX3 > pXX)); + CHECK ( (pX3 <= pXX)); + CHECK ( (pX3 >= pXX)); - ASSERT ( (pX4 == pXX)); // compare ptr to subtype ptr both referring to different but equal pointees - ASSERT (!(pX4 != pXX)); - ASSERT (!(pX4 < pXX)); - ASSERT (!(pX4 > pXX)); - ASSERT ( (pX4 <= pXX)); - ASSERT ( (pX4 >= pXX)); + CHECK ( (pX4 == pXX)); // compare ptr to subtype ptr both referring to different but equal pointees + CHECK (!(pX4 != pXX)); + CHECK (!(pX4 < pXX)); + CHECK (!(pX4 > pXX)); + CHECK ( (pX4 <= pXX)); + CHECK ( (pX4 >= pXX)); - ASSERT (!(pXX == pX5)); // compare subtype ptr to empty ptr: "unequal but not orderable" - ASSERT ( (pXX != pX5)); + CHECK (!(pXX == pX5)); // compare subtype ptr to empty ptr: "unequal but not orderable" + CHECK ( (pXX != pX5)); - ASSERT ( (pX5 == pX6)); // compare two empty ptrs: "equal, equivalent but not orderable" - ASSERT (!(pX5 != pX6)); + CHECK ( (pX5 == pX6)); // compare two empty ptrs: "equal, equivalent but not orderable" + CHECK (!(pX5 != pX6)); // order relations on NIL pointers disallowed diff --git a/tests/lib/del-stash-test.cpp b/tests/lib/del-stash-test.cpp index f09500b98..48c4f9823 100644 --- a/tests/lib/del-stash-test.cpp +++ b/tests/lib/del-stash-test.cpp @@ -1,23 +1,23 @@ /* DelStash(Test) - verify a facility to memorise and trigger deleter functions - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -63,7 +63,7 @@ namespace test{ ~Probe() { - REQUIRE (siz == mySiz_, "using wrong type information for de-allocation"); + CHECK (siz == mySiz_, "using wrong type information for de-allocation"); for (uint i=0; i<siz; ++i) checksum -= myCrap_[i]; } diff --git a/tests/lib/exceptionerrortest.cpp b/tests/lib/exceptionerrortest.cpp index 802b6953f..2fa28bbc8 100644 --- a/tests/lib/exceptionerrortest.cpp +++ b/tests/lib/exceptionerrortest.cpp @@ -1,23 +1,23 @@ /* ExceptionError(Test) - throwing and catching our exception type - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -138,20 +138,20 @@ namespace lumiera { void checkErrorIntegration() { lumiera_error (); - ASSERT (!lumiera_error ()); + CHECK (!lumiera_error ()); Error err1; Error err2("boo",LUMIERA_ERROR_DERIVED); - ASSERT (err1.getID () == lumiera_error ()); // (we didn't clear the first one!) + CHECK (err1.getID () == lumiera_error ()); // (we didn't clear the first one!) Error err3("boooo",LUMIERA_ERROR_DERIVED); - ASSERT (err3.getID () == lumiera_error ()); + CHECK (err3.getID () == lumiera_error ()); SpecificError err4; - ASSERT (err4.getID () == LUMIERA_ERROR_LIFE_AND_UNIVERSE); - ASSERT (err4.getID () == lumiera_error ()); + CHECK (err4.getID () == LUMIERA_ERROR_LIFE_AND_UNIVERSE); + CHECK (err4.getID () == lumiera_error ()); - ASSERT (!lumiera_error ()); + CHECK (!lumiera_error ()); } @@ -165,13 +165,13 @@ namespace lumiera { void checkErrorFlagPropagation() { lumiera_error_set(LUMIERA_ERROR_LIFE_AND_UNIVERSE, "what is the answer?"); - ASSERT (lumiera_error_peek()); + CHECK (lumiera_error_peek()); catcher (&test::detectErrorflag, ""); - ASSERT (LUMIERA_ERROR_LIFE_AND_UNIVERSE == lumiera_error_peek()); + CHECK (LUMIERA_ERROR_LIFE_AND_UNIVERSE == lumiera_error_peek()); catcher (&test::detectErrorflagChained, "the big bang"); - ASSERT (LUMIERA_ERROR_LIFE_AND_UNIVERSE == lumiera_error()); + CHECK (LUMIERA_ERROR_LIFE_AND_UNIVERSE == lumiera_error()); } @@ -189,12 +189,12 @@ namespace lumiera { error::External err5(rerr); Error err6(err5); - ASSERT (err2.rootCause() == err1.what()); - ASSERT (err3.rootCause() == err1.what()); - ASSERT (err4.rootCause() == err1.what()); + CHECK (err2.rootCause() == err1.what()); + CHECK (err3.rootCause() == err1.what()); + CHECK (err4.rootCause() == err1.what()); - ASSERT (err5.rootCause() == rerr.what()); - ASSERT (err6.rootCause() == rerr.what()); + CHECK (err5.rootCause() == rerr.what()); + CHECK (err6.rootCause() == rerr.what()); } diff --git a/tests/lib/factory-special-test.cpp b/tests/lib/factory-special-test.cpp index 9e205b5ff..eaa714422 100644 --- a/tests/lib/factory-special-test.cpp +++ b/tests/lib/factory-special-test.cpp @@ -1,23 +1,23 @@ /* Factory-Special(Test) - testing the more advanced features of factory - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -215,7 +215,7 @@ namespace test{ format msg ("created %d shared_ptrs to Object placed in static buffer.\n"); void* raw (0); P pX; - ASSERT (0 == pX.use_count()); + CHECK (0 == pX.use_count()); { P p1 (placement_fac (cnt)); @@ -228,7 +228,7 @@ namespace test{ raw = p1.get(); // remember raw mem address } - ASSERT (0 == pX.use_count()); + CHECK (0 == pX.use_count()); { P p1 (placement_fac (cnt+1)); @@ -238,10 +238,10 @@ namespace test{ cout << msg % p2.use_count(); - ASSERT (raw == p1.get(), "explicit object placement at fixed buffer doesn't work."); + CHECK (raw == p1.get(), "explicit object placement at fixed buffer doesn't work."); } - ASSERT (0 == pX.use_count()); + CHECK (0 == pX.use_count()); } @@ -258,7 +258,7 @@ namespace test{ format msg ("created %d shared_ptrs to paranoid Object.\n"); P pX; - ASSERT (0 == pX.use_count()); + CHECK (0 == pX.use_count()); { P p1 (paranoid_fac (cnt)); P p2 (p1); @@ -267,7 +267,7 @@ namespace test{ cout << msg % p2.use_count() << string (*pX) << "\n"; } - ASSERT (0 == pX.use_count()); + CHECK (0 == pX.use_count()); } @@ -288,7 +288,7 @@ namespace test{ cout << ("created auto_ptr to malloc-ed Object.\n") << string (*p2) << "\n"; - ASSERT (!p1.get()); + CHECK (!p1.get()); } @@ -309,7 +309,7 @@ namespace test{ cout << ("created auto_ptr to Interface Object.\n"); p2->funky(); // call a Interface function - ASSERT (!p1.get()); + CHECK (!p1.get()); } }; diff --git a/tests/lib/factorytest.cpp b/tests/lib/factorytest.cpp index 1100c489f..8e46771c2 100644 --- a/tests/lib/factorytest.cpp +++ b/tests/lib/factorytest.cpp @@ -1,23 +1,23 @@ /* Factory(Test) - unittest for the object creating factory - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/lib/format-helper-test.cpp b/tests/lib/format-helper-test.cpp index 6e4c82c1c..4c246ff3d 100644 --- a/tests/lib/format-helper-test.cpp +++ b/tests/lib/format-helper-test.cpp @@ -1,23 +1,23 @@ /* FormatHelper(Test) - validate formatting and diagnostics helpers - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/lib/functor-util-test.cpp b/tests/lib/functor-util-test.cpp index 4d7d8ad53..0692158fe 100644 --- a/tests/lib/functor-util-test.cpp +++ b/tests/lib/functor-util-test.cpp @@ -1,23 +1,23 @@ /* FunctorUtil(Test) - verifying function object and signal utilities - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -80,21 +80,21 @@ namespace test { Fvi f1 (fun1); Fvi f2 (fun2); - ASSERT (!rawComparison(f0, f1)); - ASSERT (!rawComparison(f1, f2)); - ASSERT (!rawComparison(f0, f2)); + CHECK (!rawComparison(f0, f1)); + CHECK (!rawComparison(f1, f2)); + CHECK (!rawComparison(f0, f2)); Fvi f22 (f2); - ASSERT ( rawComparison(f2, f22)); + CHECK ( rawComparison(f2, f22)); f1 = f2; - ASSERT ( rawComparison(f1, f2)); + CHECK ( rawComparison(f1, f2)); - ASSERT (!rawComparison(f0, Fvi())); // note: can't detect they are equivalent - ASSERT (!rawComparison(f0, Fiv())); + CHECK (!rawComparison(f0, Fvi())); // note: can't detect they are equivalent + CHECK (!rawComparison(f0, Fiv())); f1 = bind (fun2, _1); - ASSERT (!rawComparison(f1, f2)); + CHECK (!rawComparison(f1, f2)); Dummy dum1, dum2; Fvi fm1 = bind (&Dummy::gummi, dum1, _1); @@ -104,23 +104,23 @@ namespace test { Fvv fm5 = bind (&Dummy::gummi, dum2, 24); Fvv fm6 = bind (&Dummy::gummi, dum2, 24); - ASSERT (!rawComparison(f1, fm1)); + CHECK (!rawComparison(f1, fm1)); - ASSERT (!rawComparison(fm1, fm2)); - ASSERT (!rawComparison(fm1, fm3)); - ASSERT (!rawComparison(fm1, fm4)); - ASSERT (!rawComparison(fm1, fm5)); - ASSERT (!rawComparison(fm1, fm6)); - ASSERT (!rawComparison(fm2, fm3)); - ASSERT (!rawComparison(fm2, fm4)); - ASSERT (!rawComparison(fm2, fm5)); - ASSERT (!rawComparison(fm2, fm6)); - ASSERT (!rawComparison(fm3, fm4)); - ASSERT (!rawComparison(fm3, fm5)); - ASSERT (!rawComparison(fm3, fm6)); - ASSERT (!rawComparison(fm4, fm5)); - ASSERT (!rawComparison(fm4, fm6)); - ASSERT (!rawComparison(fm5, fm6)); // again: can't detect they are equivalent + CHECK (!rawComparison(fm1, fm2)); + CHECK (!rawComparison(fm1, fm3)); + CHECK (!rawComparison(fm1, fm4)); + CHECK (!rawComparison(fm1, fm5)); + CHECK (!rawComparison(fm1, fm6)); + CHECK (!rawComparison(fm2, fm3)); + CHECK (!rawComparison(fm2, fm4)); + CHECK (!rawComparison(fm2, fm5)); + CHECK (!rawComparison(fm2, fm6)); + CHECK (!rawComparison(fm3, fm4)); + CHECK (!rawComparison(fm3, fm5)); + CHECK (!rawComparison(fm3, fm6)); + CHECK (!rawComparison(fm4, fm5)); + CHECK (!rawComparison(fm4, fm6)); + CHECK (!rawComparison(fm5, fm6)); // again: can't detect they are equivalent } }; diff --git a/tests/lib/hash-indexed-test.cpp b/tests/lib/hash-indexed-test.cpp index 82578715a..00281767d 100644 --- a/tests/lib/hash-indexed-test.cpp +++ b/tests/lib/hash-indexed-test.cpp @@ -1,23 +1,23 @@ /* HashIndexed(Test) - proof-of-concept test for a hash based and typed ID - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -94,19 +94,19 @@ namespace test{ TestB::Id<TestDB> idDB1 ; TestB::Id<TestDB> idDB2 (idDB1); - ASSERT (sizeof (idDB1) == sizeof (idDA) ); - ASSERT (sizeof (TestB::ID) == sizeof (hash::LuidH)); - ASSERT (sizeof (TestDA) == sizeof (hash::LuidH) + sizeof (DummyAncestor)); + CHECK (sizeof (idDB1) == sizeof (idDA) ); + CHECK (sizeof (TestB::ID) == sizeof (hash::LuidH)); + CHECK (sizeof (TestDA) == sizeof (hash::LuidH) + sizeof (DummyAncestor)); - ASSERT (idDA == bb.getID() ); - ASSERT (idDB1 == idDB2 ); // equality handled by the hash impl (here LuidH) + CHECK (idDA == bb.getID() ); + CHECK (idDB1 == idDB2 ); // equality handled by the hash impl (here LuidH) TestDA d1; TestDA d2; - ASSERT (d1.getID() != d2.getID()); // should be different because LUIDs are random + CHECK (d1.getID() != d2.getID()); // should be different because LUIDs are random d2 = d1; - ASSERT (d1.getID() == d2.getID()); // default assignment operator works as expected + CHECK (d1.getID() == d2.getID()); // default assignment operator works as expected } @@ -121,7 +121,7 @@ namespace test{ // now, maybe after passing it through a Layer barrier... TestB::ID const& idCopy = reinterpret_cast<TestB::ID & > (plainLUID); - ASSERT (idOrig == idCopy); + CHECK (idOrig == idCopy); } @@ -141,17 +141,17 @@ namespace test{ tab[key2] = o2; tab[key3] = o3; - ASSERT (!isSameObject (o1, tab[key1])); // indeed a copy... - ASSERT (!isSameObject (o2, tab[key2])); - ASSERT (!isSameObject (o3, tab[key3])); + CHECK (!isSameObject (o1, tab[key1])); // indeed a copy... + CHECK (!isSameObject (o2, tab[key2])); + CHECK (!isSameObject (o3, tab[key3])); - ASSERT (o1.getID() == tab[key1].getID()); // but "equal" by ID - ASSERT (o2.getID() == tab[key2].getID()); - ASSERT (o3.getID() == tab[key3].getID()); + CHECK (o1.getID() == tab[key1].getID()); // but "equal" by ID + CHECK (o2.getID() == tab[key2].getID()); + CHECK (o3.getID() == tab[key3].getID()); - ASSERT (o1.getID() != tab[key2].getID()); - ASSERT (o1.getID() != tab[key3].getID()); - ASSERT (o2.getID() != tab[key3].getID()); + CHECK (o1.getID() != tab[key2].getID()); + CHECK (o1.getID() != tab[key3].getID()); + CHECK (o2.getID() != tab[key3].getID()); } }; diff --git a/tests/lib/helloworldtest.cpp b/tests/lib/helloworldtest.cpp index 7e99b06ff..529b536ed 100644 --- a/tests/lib/helloworldtest.cpp +++ b/tests/lib/helloworldtest.cpp @@ -1,23 +1,23 @@ /* HelloWorld(Test) - how to use this test framework... - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/lib/item-wrapper-test.cpp b/tests/lib/item-wrapper-test.cpp index 7eb343bf8..ba0ec5442 100644 --- a/tests/lib/item-wrapper-test.cpp +++ b/tests/lib/item-wrapper-test.cpp @@ -1,23 +1,23 @@ /* ItemWrapper(Test) - wrapping and holding arbitrary values, pointers and references - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -84,8 +84,6 @@ namespace test{ { return std::tr1::bind (pickElement, ref(vec), _1 ); } - - } // (END) Test helpers @@ -98,13 +96,13 @@ namespace test{ * @test use the ItemWrapper to define inline-storage holding values, * pointers and references. Verify correct behaviour in each case, * including (self)assignment, empty check, invalid dereferentiation. - * + * * @see wrapper.hpp */ class ItemWrapper_test : public Test { - - + + virtual void run (Arg) { @@ -141,7 +139,7 @@ namespace test{ verifyWrapper (X val, X otherVal) { const ItemWrapper<X> wrap(val); - ASSERT (wrap); + CHECK (wrap); cout << "ItemWrapper: " << showSizeof(wrap) << endl; @@ -149,52 +147,52 @@ namespace test{ ItemWrapper<X> copy2; ItemWrapper<X> empty; - ASSERT (copy1); - ASSERT (!copy2); - ASSERT (false == bool(empty)); + CHECK (copy1); + CHECK (!copy2); + CHECK (false == bool(empty)); - ASSERT (wrap == copy1); - ASSERT (wrap != copy2); - ASSERT (wrap != empty); + CHECK (wrap == copy1); + CHECK (wrap != copy2); + CHECK (wrap != empty); copy2 = copy1; - ASSERT (copy2); - ASSERT (wrap == copy2); - ASSERT (wrap != empty); + CHECK (copy2); + CHECK (wrap == copy2); + CHECK (wrap != empty); copy2 = otherVal; - ASSERT (copy2); - ASSERT (wrap != copy2); - ASSERT (wrap != empty); + CHECK (copy2); + CHECK (wrap != copy2); + CHECK (wrap != empty); - ASSERT (val == *wrap); - ASSERT (val == *copy1); - ASSERT (val != *copy2); + CHECK (val == *wrap); + CHECK (val == *copy1); + CHECK (val != *copy2); VERIFY_ERROR (BOTTOM_VALUE, *empty ); - ASSERT (otherVal == *copy2); + CHECK (otherVal == *copy2); copy1 = copy2; - ASSERT (otherVal == *copy1); - ASSERT (otherVal == *copy2); - ASSERT (wrap != copy1); - ASSERT (wrap != copy2); + CHECK (otherVal == *copy1); + CHECK (otherVal == *copy2); + CHECK (wrap != copy1); + CHECK (wrap != copy2); copy1 = empty; // assign empty to discard value copy1 = copy1; // self-assign empty value - ASSERT (!copy1); + CHECK (!copy1); copy1 = copy2; - ASSERT (otherVal == *copy1); + CHECK (otherVal == *copy1); copy1 = copy1; // self-assign (will be suppressed) - ASSERT (otherVal == *copy1); + CHECK (otherVal == *copy1); copy1 = *copy1; // self-assign also detected in this case - ASSERT (otherVal == *copy2); + CHECK (otherVal == *copy2); - ASSERT (copy1); + CHECK (copy1); copy1.reset(); - ASSERT (!copy1); - ASSERT (empty == copy1); - ASSERT (copy2 != copy1); + CHECK (!copy1); + CHECK (empty == copy1); + CHECK (copy2 != copy1); VERIFY_ERROR (BOTTOM_VALUE, *copy1 ); }; @@ -213,9 +211,9 @@ namespace test{ verifyWrapper<Tracker> (t1, t2); verifyWrapper<Tracker&> (t1, t2); verifyWrapper<Tracker*> (&t1, &t2); - + } - ASSERT (0 == cntTracker); + CHECK (0 == cntTracker); } @@ -227,21 +225,21 @@ namespace test{ { int x = 5; ItemWrapper<int&> refWrap; - ASSERT (!refWrap); + CHECK (!refWrap); refWrap = x; - ASSERT (refWrap); - ASSERT (5 == *refWrap); - ASSERT (x == *refWrap); + CHECK (refWrap); + CHECK (5 == *refWrap); + CHECK (x == *refWrap); *refWrap += 5; - ASSERT (x == 10); + CHECK (x == 10); ItemWrapper<int*> ptrWrap (& *refWrap); - ASSERT ( isSameObject (**ptrWrap, x)); - ASSERT (!isSameObject ( *ptrWrap, &x)); + CHECK ( isSameObject (**ptrWrap, x)); + CHECK (!isSameObject ( *ptrWrap, &x)); **ptrWrap += 13; - ASSERT (x == 23); + CHECK (x == 23); } @@ -256,21 +254,21 @@ namespace test{ FunctionResult<int(void)> randomVal (std::rand); // function was never invoked, thus the remembered result is NIL - ASSERT (!randomVal); + CHECK (!randomVal); VERIFY_ERROR (BOTTOM_VALUE, *randomVal ); int v1 = randomVal(); - ASSERT (v1 == *randomVal); - ASSERT (v1 == *randomVal); - ASSERT (v1 == *randomVal); - ASSERT (randomVal); + CHECK (v1 == *randomVal); + CHECK (v1 == *randomVal); + CHECK (v1 == *randomVal); + CHECK (randomVal); int v2; do v2 = randomVal(); while (v1 == v2); - ASSERT (v2 == *randomVal); - ASSERT (v2 == *randomVal); - ASSERT (v1 != *randomVal); + CHECK (v2 == *randomVal); + CHECK (v2 == *randomVal); + CHECK (v1 != *randomVal); } @@ -292,28 +290,28 @@ namespace test{ FunctionResult<int&(size_t)> funRes (pickElement_ofVector(testVec)); // function was never invoked, thus the remembered result is NIL - ASSERT (!funRes); + CHECK (!funRes); VERIFY_ERROR (BOTTOM_VALUE, *funRes ); int& r5 = funRes (5); - ASSERT (funRes); // indicates existence of cached result + CHECK (funRes); // indicates existence of cached result - ASSERT (5 == r5); - ASSERT (isSameObject (r5, testVec[5])); + CHECK (5 == r5); + CHECK (isSameObject (r5, testVec[5])); int& r5x = *funRes; - ASSERT (isSameObject (r5, r5x)); + CHECK (isSameObject (r5, r5x)); - ASSERT ( isSameObject (r5, *funRes)); + CHECK ( isSameObject (r5, *funRes)); int& r7 = funRes (7); - ASSERT (!isSameObject (r5, *funRes)); - ASSERT ( isSameObject (r7, *funRes)); + CHECK (!isSameObject (r5, *funRes)); + CHECK ( isSameObject (r7, *funRes)); -- r5x; ++ *funRes; - ASSERT (5-1 == testVec[5]); - ASSERT (7+1 == testVec[7]); - ASSERT (7+1 == r7); + CHECK (5-1 == testVec[5]); + CHECK (7+1 == testVec[7]); + CHECK (7+1 == r7); } }; diff --git a/tests/lib/iter-adapter-stl-test.cpp b/tests/lib/iter-adapter-stl-test.cpp index c72dfbcfb..c4aafff4a 100644 --- a/tests/lib/iter-adapter-stl-test.cpp +++ b/tests/lib/iter-adapter-stl-test.cpp @@ -1,23 +1,23 @@ /* IterAdapterSTL(Test) - building various custom iterators for a given container - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/lib/iter-adapter-test.cpp b/tests/lib/iter-adapter-test.cpp index 123adb426..6376c49bc 100644 --- a/tests/lib/iter-adapter-test.cpp +++ b/tests/lib/iter-adapter-test.cpp @@ -1,23 +1,23 @@ /* IterAdapter(Test) - building various custom iterators for a given container - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -211,15 +211,15 @@ namespace test{ typedef RangeIter<I> Range; Range range (iVec.begin(), iVec.end()); - ASSERT (!isnil (range) || !NUM_ELMS); + CHECK (!isnil (range) || !NUM_ELMS); // now for example the client could.... while ( range ) cout << "::" << *range++; cout << endl; - ASSERT (isnil (range)); - ASSERT (range == Range()); + CHECK (isnil (range)); + CHECK (range == Range()); } @@ -263,11 +263,11 @@ namespace test{ iter; ++iter, ++i ) { - ASSERT (iter); - ASSERT (iter != elms.end()); - ASSERT (**iter == i); + CHECK (iter); + CHECK (iter != elms.end()); + CHECK (**iter == i); --(**iter); - ASSERT (**iter == i-1); + CHECK (**iter == i-1); } i = 0; @@ -275,9 +275,9 @@ namespace test{ iter; ++iter, ++i ) { - ASSERT (iter); - ASSERT (iter != elms.end()); - ASSERT (**iter == i-1); + CHECK (iter); + CHECK (iter != elms.end()); + CHECK (**iter == i-1); // note: the previous run indeed modified // the element within the container. @@ -290,10 +290,10 @@ namespace test{ iter; ++iter, ++i ) { - ASSERT (iter); - ASSERT ((*iter) == i-1); + CHECK (iter); + CHECK ((*iter) == i-1); ++(*iter); - ASSERT ((*iter) == i); + CHECK ((*iter) == i); } i = 0; @@ -301,8 +301,8 @@ namespace test{ iter; ++iter, ++i ) { - ASSERT (iter); - ASSERT ((*iter) == i); + CHECK (iter); + CHECK ((*iter) == i); // *iter = i+1; ///////////TODO this should be const, but it isn't } @@ -316,31 +316,31 @@ namespace test{ { TestContainer::ref_iterator rI (elms.begin_ref()); - ASSERT (0 == *rI ); - ASSERT (0 == *rI++); - ASSERT (1 == *rI ); - ASSERT (2 == *++rI); + CHECK (0 == *rI ); + CHECK (0 == *rI++); + CHECK (1 == *rI ); + CHECK (2 == *++rI); TestContainer const& const_elms (elms); TestContainer::const_ref_iter rI2 (const_elms.begin_ref()); - ASSERT (rI2 != rI); - ASSERT (rI2 == elms.begin_ref()); - ASSERT (rI2 == const_elms.begin_ref()); + CHECK (rI2 != rI); + CHECK (rI2 == elms.begin_ref()); + CHECK (rI2 == const_elms.begin_ref()); ++++rI2; - ASSERT (rI2 == rI); - ASSERT (rI2 != ++rI); - ASSERT (!isnil (rI2)); + CHECK (rI2 == rI); + CHECK (rI2 != ++rI); + CHECK (!isnil (rI2)); - ASSERT (TestContainer::iterator() == elms.end()); - ASSERT (!(TestContainer::iterator())); - ASSERT (!(elms.end())); - ASSERT (isnil (elms.end())); + CHECK (TestContainer::iterator() == elms.end()); + CHECK (!(TestContainer::iterator())); + CHECK (!(elms.end())); + CHECK (isnil (elms.end())); - ASSERT (elms.begin()); - ASSERT (!isnil (elms.begin())); + CHECK (elms.begin()); + CHECK (!isnil (elms.begin())); } diff --git a/tests/lib/iter-source-test.cpp b/tests/lib/iter-source-test.cpp index 0021d80f3..694556be8 100644 --- a/tests/lib/iter-source-test.cpp +++ b/tests/lib/iter-source-test.cpp @@ -1,23 +1,23 @@ /* IterSource(Test) - how to build an opaque iterator-based data source - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -189,17 +189,17 @@ namespace test{ IntIter isi (eachEntry (rawList.begin(), rawList.end())); StrIter cii (IterSource<CStr>::build(dedicatedSource)); - ASSERT (!isnil (iii)); - ASSERT (!isnil (isi)); - ASSERT (!isnil (cii)); + CHECK (!isnil (iii)); + CHECK (!isnil (isi)); + CHECK (!isnil (cii)); pullOut (iii); pullOut (isi); pullOut (cii); - ASSERT (!iii); - ASSERT (!isi); - ASSERT (!cii); + CHECK (!iii); + CHECK (!isi); + CHECK (!cii); } @@ -225,11 +225,11 @@ namespace test{ StringIter sIter = eachMapKey (testMap); TimeIter tIter = eachMapVal (testMap); - ASSERT (sIter && tIter); + CHECK (sIter && tIter); pullOut (sIter); pullOut (tIter); - ASSERT (!sIter && !tIter); + CHECK (!sIter && !tIter); // The each-value-for-given-key-Iterator can be used for a map or multimap. @@ -239,16 +239,16 @@ namespace test{ TimeIter correspondingVal = eachMapVal (testMap); ++justSomeKey; ++correspondingVal; - ASSERT (justSomeKey); + CHECK (justSomeKey); TimeIter value4key = eachValForKey (testMap, "nonexistent key"); - ASSERT (!value4key); + CHECK (!value4key); value4key = eachValForKey (testMap, *justSomeKey); - ASSERT (value4key); - ASSERT (*value4key == *correspondingVal); + CHECK (value4key); + CHECK (*value4key == *correspondingVal); ++value4key; - ASSERT (!value4key); + CHECK (!value4key); } @@ -263,23 +263,23 @@ namespace test{ do testMap.insert (make_pair (i,n)); while (--n); } - ASSERT (NUM_ELMS < testMap.size(), "no repetition in test data??"); + CHECK (NUM_ELMS < testMap.size(), "no repetition in test data??"); IntIter keys = eachDistinctKey (testMap); cout << "distinct_keys"; - ASSERT (keys); + CHECK (keys); pullOut (keys); - ASSERT (!keys); + CHECK (!keys); cout << "values_4_key"; IntIter vals = eachValForKey (testMap, NUM_ELMS); // non-existent key - ASSERT (!vals); + CHECK (!vals); vals = eachValForKey (testMap, 0); - ASSERT (vals); + CHECK (vals); pullOut (vals); // should produce anything between 1 and 100 entries - ASSERT (!vals); + CHECK (!vals); } }; diff --git a/tests/lib/itertools-test.cpp b/tests/lib/itertools-test.cpp index 22aea64e1..6b47a69a7 100644 --- a/tests/lib/itertools-test.cpp +++ b/tests/lib/itertools-test.cpp @@ -1,23 +1,23 @@ /* IterTools(Test) - building combined and filtering iterators based on the Iterator tools - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -50,7 +50,7 @@ namespace test{ namespace { // Test data - + uint NUM_ELMS = 10; struct TestSource @@ -81,9 +81,9 @@ namespace test{ /******************************************************************************* * @test build combined and filtering iterators with the help of lib::IterTool. - * Check correct behaviour of the resulting iterators and + * Check correct behaviour of the resulting iterators and * verify they fulfil the Lumiera Forward Iterator concept - * + * * @todo implement more iterator tools.... see Ticket #347 */ class IterTools_test : public Test @@ -132,7 +132,7 @@ namespace test{ void buildFilterIterator (Iter const& ii) { - pullOut (filterIterator (ii, takeAll)); // note: using the convenient builder function + pullOut (filterIterator (ii, takeAll)); // note: using the convenient builder function pullOut (filterIterator (ii, takeEve)); pullOut (filterIterator (ii, takeOdd)); @@ -142,11 +142,11 @@ namespace test{ verifyComparisons (odd); while (++all && ++odd) - ASSERT (all != odd); + CHECK (all != odd); while (++all) { } - ASSERT (isnil (odd)); - ASSERT (all == odd); + CHECK (isnil (odd)); + CHECK (all == odd); } @@ -164,7 +164,7 @@ namespace test{ do numberz.push_back(i); while (--n); } - ASSERT (NUM_ELMS < numberz.size(), "no repetition in test data??"); + CHECK (NUM_ELMS < numberz.size(), "no repetition in test data??"); typedef vector<uint>::iterator SrcIter; typedef RangeIter<SrcIter> SeqIter; @@ -178,9 +178,9 @@ namespace test{ ++num, ++filtered ) - ASSERT (num == *filtered); + CHECK (num == *filtered); - ASSERT (num == NUM_ELMS && isnil(filtered)); + CHECK (num == NUM_ELMS && isnil(filtered)); } @@ -201,14 +201,14 @@ namespace test{ verifyComparisons (idi); verifyComparisons (neg); - ASSERT (idi); - ASSERT (neg); + CHECK (idi); + CHECK (neg); for ( ;idi&&neg; ++idi,++neg) - ASSERT (idi != neg); + CHECK (idi != neg); - ASSERT (!idi && !neg); - ASSERT (idi == neg); + CHECK (!idi && !neg); + CHECK (idi == neg); } @@ -224,32 +224,32 @@ namespace test{ IT i1(ii); IT i2(ii); IT iN; - ASSERT ( isnil (iN)); - ASSERT (!isnil (i1)); - ASSERT (!isnil (i2)); + CHECK ( isnil (iN)); + CHECK (!isnil (i1)); + CHECK (!isnil (i2)); - ASSERT (i1 == i2); ASSERT (i2 == i1); - ASSERT (i1 != iN); ASSERT (iN != i1); - ASSERT (i2 != iN); ASSERT (iN != i2); + CHECK (i1 == i2); CHECK (i2 == i1); + CHECK (i1 != iN); CHECK (iN != i1); + CHECK (i2 != iN); CHECK (iN != i2); ++i1; - ASSERT (i1 != i2); - ASSERT (i1 != iN); + CHECK (i1 != i2); + CHECK (i1 != iN); ++i2; - ASSERT (i1 == i2); - ASSERT (i1 != iN); - ASSERT (i2 != iN); + CHECK (i1 == i2); + CHECK (i1 != iN); + CHECK (i2 != iN); while (++i1) { } - ASSERT (isnil(i1)); - ASSERT (i1 != i2); - ASSERT (i1 == iN); + CHECK (isnil(i1)); + CHECK (i1 != i2); + CHECK (i1 == iN); while (++i2) { } - ASSERT (isnil(i2)); - ASSERT (i2 == i1); - ASSERT (i2 == iN); + CHECK (isnil(i2)); + CHECK (i2 == i1); + CHECK (i2 == iN); } diff --git a/tests/lib/lifecycletest.cpp b/tests/lib/lifecycletest.cpp index 00b43fd36..c437aa74b 100644 --- a/tests/lib/lifecycletest.cpp +++ b/tests/lib/lifecycletest.cpp @@ -1,23 +1,23 @@ /* LifeCycle(Test) - checking the lifecycle callback hooks provided by AppState - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -58,12 +58,12 @@ namespace test { virtual void run (Arg) { - ASSERT (basicInit, "the basic-init callback hasn't been invoked automatically"); - ASSERT (1 == basicInit, "the basic-init callback has been invoked more than once"); + CHECK (basicInit, "the basic-init callback hasn't been invoked automatically"); + CHECK (1 == basicInit, "the basic-init callback has been invoked more than once"); - ASSERT (!customCallback); + CHECK (!customCallback); LifecycleHook::trigger (MY_DEADLY_EVENT); - ASSERT ( 1 == customCallback); + CHECK ( 1 == customCallback); } }; diff --git a/tests/lib/mainsuite.cpp b/tests/lib/mainsuite.cpp index 4b2429356..882ee78d4 100644 --- a/tests/lib/mainsuite.cpp +++ b/tests/lib/mainsuite.cpp @@ -7,8 +7,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/tests/lib/meta/config-flags-test.cpp b/tests/lib/meta/config-flags-test.cpp index a0ace5922..572bc3adf 100644 --- a/tests/lib/meta/config-flags-test.cpp +++ b/tests/lib/meta/config-flags-test.cpp @@ -1,23 +1,23 @@ /* ConfigFlags(Test) - generating a configuration type defined by flags - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -167,8 +167,8 @@ namespace test { // should denote the same type Flags1::Flags flags1 = Flags2::Tuple(); Flags2::Tuple flags2 = flags1; - ASSERT (1==sizeof(flags1)); // pure marker-type without content - ASSERT (1==sizeof(flags2)); + CHECK (1==sizeof(flags1)); // pure marker-type without content + CHECK (1==sizeof(flags2)); typedef DefineConfigByFlags<Node<Flag<ONE>,NullType> >::Config SimpleConfig_defined_by_Typelist; DISPLAY (SimpleConfig_defined_by_Typelist); diff --git a/tests/lib/meta/duck-detector-test.cpp b/tests/lib/meta/duck-detector-test.cpp index bf0c15f5a..064ed9041 100644 --- a/tests/lib/meta/duck-detector-test.cpp +++ b/tests/lib/meta/duck-detector-test.cpp @@ -1,23 +1,23 @@ /* DuckDetector(Test) - detecting properties of a type at compile time - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/lib/meta/dummy-functions.hpp b/tests/lib/meta/dummy-functions.hpp index 0957cbada..017624a01 100644 --- a/tests/lib/meta/dummy-functions.hpp +++ b/tests/lib/meta/dummy-functions.hpp @@ -1,23 +1,23 @@ /* DUMMY-FUNCTIONS - mock functions for checking functor utils - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/lib/meta/function-closure-test.cpp b/tests/lib/meta/function-closure-test.cpp index faa998fae..e024ff808 100644 --- a/tests/lib/meta/function-closure-test.cpp +++ b/tests/lib/meta/function-closure-test.cpp @@ -1,23 +1,23 @@ /* FunctionClosure(Test) - appending, mixing and filtering typelists - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -133,8 +133,8 @@ namespace test { DISPLAY (List1); DISPLAY (List2); ; - ASSERT (6 == (getNumberz<1,2,3> (Num<1>(), Num<2>(), Num<3>()))); - ASSERT (6 == (getNumberz<1,1,1> (Num<1>(), Num<1>(2), Num<1>(3)))); + CHECK (6 == (getNumberz<1,2,3> (Num<1>(), Num<2>(), Num<3>()))); + CHECK (6 == (getNumberz<1,1,1> (Num<1>(), Num<1>(2), Num<1>(3)))); } @@ -153,7 +153,7 @@ namespace test { NewSig& fun = getNumberz<1,5,9>; //...which is compatible to an existing real function signature! - ASSERT (1+5+9 == fun(Num<1>(), Num<5>(), Num<9>())); + CHECK (1+5+9 == fun(Num<1>(), Num<5>(), Num<9>())); } @@ -171,20 +171,20 @@ namespace test { DUMPVAL (tup2); DUMPVAL (tup3); - ASSERT (-1 == Apply<0>::invoke<int> (fun0, tup0) ); - ASSERT (11 == Apply<1>::invoke<int> (fun1, tup1) ); - ASSERT (11+12 == Apply<2>::invoke<int> (fun2, tup2) ); - ASSERT (11+12+13 == Apply<3>::invoke<int> (fun3, tup3) ); + CHECK (-1 == Apply<0>::invoke<int> (fun0, tup0) ); + CHECK (11 == Apply<1>::invoke<int> (fun1, tup1) ); + CHECK (11+12 == Apply<2>::invoke<int> (fun2, tup2) ); + CHECK (11+12+13 == Apply<3>::invoke<int> (fun3, tup3) ); - ASSERT (-1 == TupleApplicator<int()> (tup0) (fun0) ); - ASSERT (11 == TupleApplicator<int(int)> (tup1) (fun1) ); - ASSERT (11+12 == TupleApplicator<int(int,int)> (tup2) (fun2) ); - ASSERT (11+12+13 == TupleApplicator<int(int,int,int)> (tup3) (fun3) ); + CHECK (-1 == TupleApplicator<int()> (tup0) (fun0) ); + CHECK (11 == TupleApplicator<int(int)> (tup1) (fun1) ); + CHECK (11+12 == TupleApplicator<int(int,int)> (tup2) (fun2) ); + CHECK (11+12+13 == TupleApplicator<int(int,int,int)> (tup3) (fun3) ); - ASSERT (-1 == apply(fun0, tup0) ); - ASSERT (11 == apply(fun1, tup1) ); - ASSERT (11+12 == apply(fun2, tup2) ); - ASSERT (11+12+13 == apply(fun3, tup3) ); + CHECK (-1 == apply(fun0, tup0) ); + CHECK (11 == apply(fun1, tup1) ); + CHECK (11+12 == apply(fun2, tup2) ); + CHECK (11+12+13 == apply(fun3, tup3) ); } @@ -201,20 +201,20 @@ namespace test { function<int(int,int)> functor2 (fun2); function<int(int,int,int)> functor3 (fun3); - ASSERT (-1 == Apply<0>::invoke<int> (functor0, tup0) ); - ASSERT (11 == Apply<1>::invoke<int> (functor1, tup1) ); - ASSERT (11+12 == Apply<2>::invoke<int> (functor2, tup2) ); - ASSERT (11+12+13 == Apply<3>::invoke<int> (functor3, tup3) ); + CHECK (-1 == Apply<0>::invoke<int> (functor0, tup0) ); + CHECK (11 == Apply<1>::invoke<int> (functor1, tup1) ); + CHECK (11+12 == Apply<2>::invoke<int> (functor2, tup2) ); + CHECK (11+12+13 == Apply<3>::invoke<int> (functor3, tup3) ); - ASSERT (-1 == TupleApplicator<int()> (tup0) (functor0) ); - ASSERT (11 == TupleApplicator<int(int)> (tup1) (functor1) ); - ASSERT (11+12 == TupleApplicator<int(int,int)> (tup2) (functor2) ); - ASSERT (11+12+13 == TupleApplicator<int(int,int,int)> (tup3) (functor3) ); + CHECK (-1 == TupleApplicator<int()> (tup0) (functor0) ); + CHECK (11 == TupleApplicator<int(int)> (tup1) (functor1) ); + CHECK (11+12 == TupleApplicator<int(int,int)> (tup2) (functor2) ); + CHECK (11+12+13 == TupleApplicator<int(int,int,int)> (tup3) (functor3) ); - ASSERT (-1 == apply(functor0, tup0) ); - ASSERT (11 == apply(functor1, tup1) ); - ASSERT (11+12 == apply(functor2, tup2) ); - ASSERT (11+12+13 == apply(functor3, tup3) ); + CHECK (-1 == apply(functor0, tup0) ); + CHECK (11 == apply(functor1, tup1) ); + CHECK (11+12 == apply(functor2, tup2) ); + CHECK (11+12+13 == apply(functor3, tup3) ); } @@ -236,20 +236,20 @@ namespace test { BoundFun functor2 = Apply<2>::bind<BoundFun> (fun2, tup3); BoundFun functor3 = Apply<3>::bind<BoundFun> (fun3, tup3); - ASSERT (-1 == functor0() ); - ASSERT (11 == functor1() ); - ASSERT (11+12 == functor2() ); - ASSERT (11+12+13 == functor3() ); + CHECK (-1 == functor0() ); + CHECK (11 == functor1() ); + CHECK (11+12 == functor2() ); + CHECK (11+12+13 == functor3() ); functor0 = TupleApplicator<int()> (tup0).bind (fun0); functor1 = TupleApplicator<int(int)> (tup1).bind (fun1); functor2 = TupleApplicator<int(int,int)> (tup2).bind (fun2); functor3 = TupleApplicator<int(int,int,int)> (tup3).bind (fun3); - ASSERT (-1 == functor0() ); - ASSERT (11 == functor1() ); - ASSERT (11+12 == functor2() ); - ASSERT (11+12+13 == functor3() ); + CHECK (-1 == functor0() ); + CHECK (11 == functor1() ); + CHECK (11+12 == functor2() ); + CHECK (11+12+13 == functor3() ); } @@ -273,20 +273,20 @@ namespace test { BoundFun functor2 = Apply<2>::bind<BoundFun> (unbound_functor2, tup3); BoundFun functor3 = Apply<3>::bind<BoundFun> (unbound_functor3, tup3); - ASSERT (-1 == functor0() ); - ASSERT (11 == functor1() ); - ASSERT (11+12 == functor2() ); - ASSERT (11+12+13 == functor3() ); + CHECK (-1 == functor0() ); + CHECK (11 == functor1() ); + CHECK (11+12 == functor2() ); + CHECK (11+12+13 == functor3() ); functor0 = TupleApplicator<int()> (tup0).bind (unbound_functor0); functor1 = TupleApplicator<int(int)> (tup1).bind (unbound_functor1); functor2 = TupleApplicator<int(int,int)> (tup2).bind (unbound_functor2); functor3 = TupleApplicator<int(int,int,int)> (tup3).bind (unbound_functor3); - ASSERT (-1 == functor0() ); - ASSERT (11 == functor1() ); - ASSERT (11+12 == functor2() ); - ASSERT (11+12+13 == functor3() ); + CHECK (-1 == functor0() ); + CHECK (11 == functor1() ); + CHECK (11+12 == functor2() ); + CHECK (11+12+13 == functor3() ); } @@ -304,10 +304,10 @@ namespace test { FunctionClosure<int(int,int)> clo2 (fun2,tup2); FunctionClosure<int(int,int,int)> clo3 (fun3,tup3); - ASSERT (-1 == clo0() ); - ASSERT (11 == clo1() ); - ASSERT (11+12 == clo2() ); - ASSERT (11+12+13 == clo3() ); + CHECK (-1 == clo0() ); + CHECK (11 == clo1() ); + CHECK (11+12 == clo2() ); + CHECK (11+12+13 == clo3() ); function<int()> unbound_functor0 (fun0); function<int(int)> unbound_functor1 (fun1); @@ -319,20 +319,20 @@ namespace test { clo2 = FunctionClosure<int(int,int)> (unbound_functor2,tup2); clo3 = FunctionClosure<int(int,int,int)> (unbound_functor3,tup3); - ASSERT (-1 == clo0() ); - ASSERT (11 == clo1() ); - ASSERT (11+12 == clo2() ); - ASSERT (11+12+13 == clo3() ); + CHECK (-1 == clo0() ); + CHECK (11 == clo1() ); + CHECK (11+12 == clo2() ); + CHECK (11+12+13 == clo3() ); - ASSERT (-1 == closure(fun0,tup0) () ); - ASSERT (11 == closure(fun1,tup1) () ); - ASSERT (11+12 == closure(fun2,tup2) () ); - ASSERT (11+12+13 == closure(fun3,tup3) () ); + CHECK (-1 == closure(fun0,tup0) () ); + CHECK (11 == closure(fun1,tup1) () ); + CHECK (11+12 == closure(fun2,tup2) () ); + CHECK (11+12+13 == closure(fun3,tup3) () ); - ASSERT (-1 == closure(unbound_functor0,tup0) () ); - ASSERT (11 == closure(unbound_functor1,tup1) () ); - ASSERT (11+12 == closure(unbound_functor2,tup2) () ); - ASSERT (11+12+13 == closure(unbound_functor3,tup3) () ); + CHECK (-1 == closure(unbound_functor0,tup0) () ); + CHECK (11 == closure(unbound_functor1,tup1) () ); + CHECK (11+12 == closure(unbound_functor2,tup2) () ); + CHECK (11+12+13 == closure(unbound_functor3,tup3) () ); // finally combine all techniques.... @@ -342,7 +342,7 @@ namespace test { FunctionClosure<NumberzSig> numClo (getNumberz<5,6,7>, numberzTup ); - ASSERT (22+33+44 == numClo() ); + CHECK (22+33+44 == numClo() ); } }; diff --git a/tests/lib/meta/function-composition-test.cpp b/tests/lib/meta/function-composition-test.cpp index e6cec1f41..9761d87b6 100644 --- a/tests/lib/meta/function-composition-test.cpp +++ b/tests/lib/meta/function-composition-test.cpp @@ -1,23 +1,23 @@ /* FunctionComposition(Test) - functional composition and partial application - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -41,83 +41,83 @@ namespace test { using func::BindToArgument; - namespace { // test functions - - Num<1> _1_; - Num<2> _2_; - Num<3> _3_; - Num<4> _4_; - Num<5> _5_; - Num<6> _6_; - Num<7> _7_; - Num<8> _8_; - Num<9> _9_; - - /** "Function-1" will be used at the front side, accepting a tuple of values */ - template<uint i> - Num<i> - fun11 ( Num<i> val1 - ) - { - return val1; - } - - template<uint i, uint ii> - Num<i> - fun12 ( Num<i> val1 - , Num<ii> val2 - ) - { - val1.o_ += val2.o_; - return val1; - } - - template<uint i, uint ii, uint iii> - Num<i> - fun13 ( Num<i> val1 - , Num<ii> val2 - , Num<iii> val3 - ) - { - val1.o_ += val2.o_ + val3.o_; - return val1; - } - - template<uint i, uint ii, uint iii, uint iv> - Num<i> - fun14 ( Num<i> val1 - , Num<ii> val2 - , Num<iii> val3 - , Num<iv> val4 - ) - { - val1.o_ += val2.o_ + val3.o_ + val4.o_; - return val1; - } - - template<uint i, uint ii, uint iii, uint iv, uint v> - Num<i> - fun15 ( Num<i> val1 - , Num<ii> val2 - , Num<iii> val3 - , Num<iv> val4 - , Num<v> val5 - ) - { - val1.o_ += val2.o_ + val3.o_ + val4.o_ + val5.o_; - return val1; - } - - - /** "Function-2" can be chained behind fun1 */ - template<class II> - int - fun2 (II val) - { - return val.o_; - } - - } // (End) test data + namespace { // test functions + + Num<1> _1_; + Num<2> _2_; + Num<3> _3_; + Num<4> _4_; + Num<5> _5_; + Num<6> _6_; + Num<7> _7_; + Num<8> _8_; + Num<9> _9_; + + /** "Function-1" will be used at the front side, accepting a tuple of values */ + template<uint i> + Num<i> + fun11 ( Num<i> val1 + ) + { + return val1; + } + + template<uint i, uint ii> + Num<i> + fun12 ( Num<i> val1 + , Num<ii> val2 + ) + { + val1.o_ += val2.o_; + return val1; + } + + template<uint i, uint ii, uint iii> + Num<i> + fun13 ( Num<i> val1 + , Num<ii> val2 + , Num<iii> val3 + ) + { + val1.o_ += val2.o_ + val3.o_; + return val1; + } + + template<uint i, uint ii, uint iii, uint iv> + Num<i> + fun14 ( Num<i> val1 + , Num<ii> val2 + , Num<iii> val3 + , Num<iv> val4 + ) + { + val1.o_ += val2.o_ + val3.o_ + val4.o_; + return val1; + } + + template<uint i, uint ii, uint iii, uint iv, uint v> + Num<i> + fun15 ( Num<i> val1 + , Num<ii> val2 + , Num<iii> val3 + , Num<iv> val4 + , Num<v> val5 + ) + { + val1.o_ += val2.o_ + val3.o_ + val4.o_ + val5.o_; + return val1; + } + + + /** "Function-2" can be chained behind fun1 */ + template<class II> + int + fun2 (II val) + { + return val.o_; + } + + } // (End) test data @@ -133,7 +133,7 @@ namespace test { class FunctionComposition_test : public Test { virtual void - run (Arg) + run (Arg) { check_diagnostics (); check_partialApplication (); @@ -149,18 +149,18 @@ namespace test { void check_diagnostics () { - ASSERT (6 == (fun13<1,2,3> (_1_, _2_, _3_)).o_ ); - ASSERT (6 == (fun13<1,1,1> (Num<1>(3), Num<1>(2), Num<1>(1))).o_ ); + CHECK (6 == (fun13<1,2,3> (_1_, _2_, _3_)).o_ ); + CHECK (6 == (fun13<1,1,1> (Num<1>(3), Num<1>(2), Num<1>(1))).o_ ); - ASSERT ( 1 == fun2 (fun11<1> (_1_)) ); - ASSERT ( 3 == fun2 (fun12<1,2> (_1_, _2_)) ); - ASSERT ( 6 == fun2 (fun13<1,2,3> (_1_, _2_, _3_)) ); - ASSERT (10 == fun2 (fun14<1,2,3,4> (_1_, _2_, _3_, _4_)) ); - ASSERT (15 == fun2 (fun15<1,2,3,4,5> (_1_, _2_, _3_, _4_, _5_)) ); + CHECK ( 1 == fun2 (fun11<1> (_1_)) ); + CHECK ( 3 == fun2 (fun12<1,2> (_1_, _2_)) ); + CHECK ( 6 == fun2 (fun13<1,2,3> (_1_, _2_, _3_)) ); + CHECK (10 == fun2 (fun14<1,2,3,4> (_1_, _2_, _3_, _4_)) ); + CHECK (15 == fun2 (fun15<1,2,3,4,5> (_1_, _2_, _3_, _4_, _5_)) ); - ASSERT ( 9 == fun2 (fun13<2,3,4> (_2_, _3_, _4_)) ); - ASSERT (18 == fun2 (fun13<5,6,7> (_5_, _6_, _7_)) ); - ASSERT (24 == fun2 (fun13<9,8,7> (_9_, _8_, _7_)) ); + CHECK ( 9 == fun2 (fun13<2,3,4> (_2_, _3_, _4_)) ); + CHECK (18 == fun2 (fun13<5,6,7> (_5_, _6_, _7_)) ); + CHECK (24 == fun2 (fun13<9,8,7> (_9_, _8_, _7_)) ); } @@ -195,7 +195,7 @@ namespace test { int res = 0; res = fun_23 (_2_,_3_).o_; // and invoke the resulting functor ("closure"), providing the remaining arguments - ASSERT (23 == res); + CHECK (23 == res); @@ -210,7 +210,7 @@ namespace test { ); res = 0; res = fun_23 (_2_,_3_).o_; // and invoke the resulting functor.... - ASSERT (23 == res); + CHECK (23 == res); @@ -224,7 +224,7 @@ namespace test { // "bindFront" will close the parameters starting from left.... res = 0; res = fun_23 (_2_,_3_).o_; // invoke the resulting functor... - ASSERT (23 == res); + CHECK (23 == res); @@ -237,7 +237,7 @@ namespace test { res = 0; res = fun_23 (_2_,_3_).o_; // invoke the resulting functor... - ASSERT (23 == res); + CHECK (23 == res); @@ -245,34 +245,34 @@ namespace test { function<Sig123> func123 (f); // alternatively do it with an tr1::function object fun_23 = func::applyFirst (func123, Num<1>(19)); res = fun_23 (_2_,_3_).o_; - ASSERT (24 == res); + CHECK (24 == res); typedef function<Num<1>(Num<1>, Num<2>)> F12; F12 fun_12 = func::applyLast(f, Num<3>(20)); // close the *last* argument of a function res = fun_12 (_1_,_2_).o_; - ASSERT (23 == res); + CHECK (23 == res); fun_12 = func::applyLast(func123, Num<3>(21)); // alternatively use a function object res = fun_12 (_1_,_2_).o_; - ASSERT (24 == res); + CHECK (24 == res); - Sig123 *fP = &f; // a function pointer works too + Sig123 *fP = &f; // a function pointer works too fun_12 = func::applyLast( fP, Num<3>(22)); res = fun_12 (_1_,_2_).o_; - ASSERT (25 == res); + CHECK (25 == res); // cover more cases.... - ASSERT (1 == (func::applyLast (fun11<1> , _1_) ( ) ).o_); - ASSERT (1+3 == (func::applyLast (fun12<1,3> , _3_) (_1_) ).o_); - ASSERT (1+3+5 == (func::applyLast (fun13<1,3,5> , _5_) (_1_,_3_) ).o_); - ASSERT (1+3+5+7 == (func::applyLast (fun14<1,3,5,7> , _7_) (_1_,_3_,_5_) ).o_); - ASSERT (1+3+5+7+9 == (func::applyLast (fun15<1,3,5,7,9>, _9_) (_1_,_3_,_5_,_7_)).o_); + CHECK (1 == (func::applyLast (fun11<1> , _1_ ) ( ) ).o_); + CHECK (1+3 == (func::applyLast (fun12<1,3> , _3_ ) (_1_) ).o_); + CHECK (1+3+5 == (func::applyLast (fun13<1,3,5> , _5_ ) (_1_,_3_) ).o_); + CHECK (1+3+5+7 == (func::applyLast (fun14<1,3,5,7> , _7_ ) (_1_,_3_,_5_) ).o_); + CHECK (1+3+5+7+9 == (func::applyLast (fun15<1,3,5,7,9>, _9_ ) (_1_,_3_,_5_,_7_)).o_); - ASSERT (9+8+7+6+5 == (func::applyFirst(fun15<9,8,7,6,5>, _9_) (_8_,_7_,_6_,_5_)).o_); - ASSERT ( 8+7+6+5 == (func::applyFirst( fun14<8,7,6,5>, _8_) (_7_,_6_,_5_)).o_); - ASSERT ( 7+6+5 == (func::applyFirst( fun13<7,6,5>, _7_) (_6_,_5_)).o_); - ASSERT ( 6+5 == (func::applyFirst( fun12<6,5>, _6_) (_5_)).o_); - ASSERT ( 5 == (func::applyFirst( fun11<5>, _5_) ( )).o_); + CHECK (9+8+7+6+5 == (func::applyFirst(fun15<9,8,7,6,5>, _9_ ) (_8_,_7_,_6_,_5_)).o_); + CHECK ( 8+7+6+5 == (func::applyFirst( fun14<8,7,6,5>, _8_ ) (_7_,_6_,_5_)).o_); + CHECK ( 7+6+5 == (func::applyFirst( fun13<7,6,5>, _7_ ) (_6_,_5_)).o_); + CHECK ( 6+5 == (func::applyFirst( fun12<6,5>, _6_ ) (_5_)).o_); + CHECK ( 5 == (func::applyFirst( fun11<5>, _5_ ) ( )).o_); @@ -283,13 +283,13 @@ namespace test { typedef Types<Num<3>,Num<2>,Num<1> > Args2Close; // Tuple type to hold the 3 argument values used for the closure // Close the trailing 3 arguments of the 5-argument function... - function<Sig54> fun_54 = PApply<Sig54321, Args2Close>::bindBack(fun15<5,4,3,2,1>, + function<Sig54> fun_54 = PApply<Sig54321, Args2Close>::bindBack(fun15<5,4,3,2,1>, tuple::make(_3_,_2_,_1_) ); // apply the remaining argument values Num<5> resN5 = fun_54 (_5_,_4_); - ASSERT (5+4+3+2+1 == resN5.o_); + CHECK (5+4+3+2+1 == resN5.o_); } @@ -312,18 +312,18 @@ namespace test { Sig14& f4 = fun14<1,2,3,4>; Sig15& f5 = fun15<1,2,3,4,5>; - ASSERT (1 == func::chained(f1, ff) (_1_) ); - ASSERT (1+2 == func::chained(f2, ff) (_1_,_2_) ); - ASSERT (1+2+3 == func::chained(f3, ff) (_1_,_2_,_3_) ); - ASSERT (1+2+3+4 == func::chained(f4, ff) (_1_,_2_,_3_,_4_) ); - ASSERT (1+2+3+4+5 == func::chained(f5, ff) (_1_,_2_,_3_,_4_,_5_) ); + CHECK (1 == func::chained(f1, ff) (_1_) ); + CHECK (1+2 == func::chained(f2, ff) (_1_,_2_) ); + CHECK (1+2+3 == func::chained(f3, ff) (_1_,_2_,_3_) ); + CHECK (1+2+3+4 == func::chained(f4, ff) (_1_,_2_,_3_,_4_) ); + CHECK (1+2+3+4+5 == func::chained(f5, ff) (_1_,_2_,_3_,_4_,_5_) ); function<Sig15> f5_fun = f5; // also works with function objects... function<Sig2> ff_fun = ff; - ASSERT (1+2+3+4+5 == func::chained(f5_fun, ff ) (_1_,_2_,_3_,_4_,_5_) ); - ASSERT (1+2+3+4+5 == func::chained(f5, ff_fun) (_1_,_2_,_3_,_4_,_5_) ); - ASSERT (1+2+3+4+5 == func::chained(f5_fun, ff_fun) (_1_,_2_,_3_,_4_,_5_) ); + CHECK (1+2+3+4+5 == func::chained(f5_fun, ff ) (_1_,_2_,_3_,_4_,_5_) ); + CHECK (1+2+3+4+5 == func::chained(f5, ff_fun) (_1_,_2_,_3_,_4_,_5_) ); + CHECK (1+2+3+4+5 == func::chained(f5_fun, ff_fun) (_1_,_2_,_3_,_4_,_5_) ); } @@ -351,17 +351,17 @@ namespace test { function<SigR4> f_bound_4 = BindToArgument<Sig15,char,3>::reduced (f, argT); function<SigR5> f_bound_5 = BindToArgument<Sig15,char,4>::reduced (f, argT); - ASSERT (55+2+3+4+5 == f_bound_1 ( _2_,_3_,_4_,_5_) ); - ASSERT (1+55+3+4+5 == f_bound_2 (_1_, _3_,_4_,_5_) ); - ASSERT (1+2+55+4+5 == f_bound_3 (_1_,_2_, _4_,_5_) ); - ASSERT (1+2+3+55+5 == f_bound_4 (_1_,_2_,_3_, _5_) ); - ASSERT (1+2+3+4+55 == f_bound_5 (_1_,_2_,_3_,_4_ ) ); + CHECK (55+2+3+4+5 == f_bound_1 ( _2_,_3_,_4_,_5_) ); + CHECK (1+55+3+4+5 == f_bound_2 (_1_, _3_,_4_,_5_) ); + CHECK (1+2+55+4+5 == f_bound_3 (_1_,_2_, _4_,_5_) ); + CHECK (1+2+3+55+5 == f_bound_4 (_1_,_2_,_3_, _5_) ); + CHECK (1+2+3+4+55 == f_bound_5 (_1_,_2_,_3_,_4_ ) ); // degenerate case: specify wrong argument position (behind end of argument list) // causes the argument to be simply ignored and no binding to happen function<Sig15> f_bound_X = BindToArgument<Sig15,char,5>::reduced (f, argT); - ASSERT (1+2+3+4+5 == f_bound_X (_1_,_2_,_3_,_4_,_5_) ); + CHECK (1+2+3+4+5 == f_bound_X (_1_,_2_,_3_,_4_,_5_) ); /* check the convenient function-style API */ @@ -369,14 +369,14 @@ namespace test { using std::tr1::bind; f_bound_5 = bindLast (f, bind(f5, Num<5>(99))); - ASSERT (1+2+3+4+99 == f_bound_5 (_1_,_2_,_3_,_4_ ) ); + CHECK (1+2+3+4+99 == f_bound_5 (_1_,_2_,_3_,_4_ ) ); f_bound_5 = bindLast (f, bind(&f5, Num<5>(99))); // can bind function pointer - ASSERT (1+2+3+4+99 == f_bound_5 (_1_,_2_,_3_,_4_ ) ); + CHECK (1+2+3+4+99 == f_bound_5 (_1_,_2_,_3_,_4_ ) ); function<Sig15> asFunctor(f); f_bound_5 = bindLast (asFunctor, bind(f5, Num<5>(88))); // use functor instead of direct ref - ASSERT (1+2+3+4+88 == f_bound_5 (_1_,_2_,_3_,_4_ ) ); + CHECK (1+2+3+4+88 == f_bound_5 (_1_,_2_,_3_,_4_ ) ); } }; diff --git a/tests/lib/meta/function-erasure-test.cpp b/tests/lib/meta/function-erasure-test.cpp index 1b4fb733e..b4eefad76 100644 --- a/tests/lib/meta/function-erasure-test.cpp +++ b/tests/lib/meta/function-erasure-test.cpp @@ -1,23 +1,23 @@ /* FunctionErasure(Test) - verify the wrapping of functor object with type erasure - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -98,12 +98,12 @@ namespace test { check_Comparisons (Efp(testFunc), Efp(returnIt)); check_Comparisons (Evoid(testFunc), Evoid(returnIt)); - ASSERT ( detect_Clone (Efun(testFunc))); - ASSERT (!detect_Clone (Efun(bindFunc))); //note equality not detected when cloning a bind term - ASSERT (!detect_Clone (Efun(pAplFunc))); //similarly - ASSERT (!detect_Clone (Efun(membFunc))); //analogous for bound member function - ASSERT ( detect_Clone (Efp(testFunc) )); - ASSERT ( detect_Clone (Evoid(testFunc))); + CHECK ( detect_Clone (Efun(testFunc))); + CHECK (!detect_Clone (Efun(bindFunc))); //note equality not detected when cloning a bind term + CHECK (!detect_Clone (Efun(pAplFunc))); //similarly + CHECK (!detect_Clone (Efun(membFunc))); //analogous for bound member function + CHECK ( detect_Clone (Efp(testFunc) )); + CHECK ( detect_Clone (Evoid(testFunc))); detect_unboundFunctor(Efun(testFunc), Efun(getterFunc), Efun(membFunc)); detect_unboundFunctor(Efp(testFunc),Efp(&testFunc), Efp(returnIt)); @@ -127,22 +127,22 @@ namespace test { _sum_ = 0; f1.getFun<Sig1>() (-11,'M'); // invoke stored tr1::function... - ASSERT (_sum_ == 'M'-11); + CHECK (_sum_ == 'M'-11); _sum_ = 0; f2.getFun<Sig1>() (-22,'M'); - ASSERT (_sum_ == 'M'-22); + CHECK (_sum_ == 'M'-22); _sum_ = 0; f3.getFun<Sig2>() (-33); - ASSERT (_sum_ == 'x'-33); + CHECK (_sum_ == 'x'-33); _sum_ = 0; f4.getFun<Sig3>() ('U'); - ASSERT (_sum_ == 'u'); + CHECK (_sum_ == 'u'); - ASSERT ( 'u' == f5.getFun<Sig4>() () ); - ASSERT (INSTANCEOF (function<Sig4>, &f5.getFun<Sig4>())); + CHECK ( 'u' == f5.getFun<Sig4>() () ); + CHECK (INSTANCEOF (function<Sig4>, &f5.getFun<Sig4>())); #if false ///////////////////////////////////////////////////////////////////////////////////////////////TICKET #537 : restore throwing ASSERT @@ -181,15 +181,15 @@ namespace test { _sum_ = 0; (*fun1) (10, 'a'); // invoke retrieved function pointer - ASSERT (_sum_ == 10+'a'); + CHECK (_sum_ == 10+'a'); (*fun2) (20, 'b'); - ASSERT (_sum_ == 10+'a'+20+'b'); + CHECK (_sum_ == 10+'a'+20+'b'); fun2r (30, 'c'); - ASSERT (_sum_ == 10+'a'+20+'b'+30+'c'); + CHECK (_sum_ == 10+'a'+20+'b'+30+'c'); - ASSERT (_sum_ == (f3.getFun<int(void)>()) () ); + CHECK (_sum_ == (f3.getFun<int(void)>()) () ); #if false ////////////////////////////////////////////////////////TODO: restore throwing ASSERT VERIFY_ERROR (ASSERTION, f1.getFun<int(int)>() ); @@ -210,18 +210,18 @@ namespace test { _sum_ = 0; (*fun1) (10, 'a'); - ASSERT (_sum_ == 10+'a'); + CHECK (_sum_ == 10+'a'); (*fun2) (20, 'b'); - ASSERT (_sum_ == 10+'a'+20+'b'); + CHECK (_sum_ == 10+'a'+20+'b'); fun2r (30, 'c'); - ASSERT (_sum_ == 10+'a'+20+'b'+30+'c'); + CHECK (_sum_ == 10+'a'+20+'b'+30+'c'); - ASSERT (_sum_ == (f3.getFun<int(void)>()) () ); + CHECK (_sum_ == (f3.getFun<int(void)>()) () ); FP bad_fun = &f3.getFun<void(int,char)>(); - ASSERT ((void*)bad_fun == &returnIt); // got wrong function! + CHECK ((void*)bad_fun == &returnIt); // got wrong function! //(*bad_fun) (11, 'x'); // The compiler would accept this line! } // likely to result in heap corruption or SEGV @@ -231,11 +231,11 @@ namespace test { void check_Comparisons (HOL h1, HOL h2) { - ASSERT (h1 == h1); ASSERT (!(h1 != h1)); - ASSERT (h2 == h2); ASSERT (!(h2 != h2)); + CHECK (h1 == h1); CHECK (!(h1 != h1)); + CHECK (h2 == h2); CHECK (!(h2 != h2)); - ASSERT (h1 != h2); - ASSERT (h2 != h1); + CHECK (h1 != h2); + CHECK (h2 != h1); } @@ -257,11 +257,11 @@ namespace test { typedef typename BuildEmptyFunctor<HOL>::Type NoFunc; NoFunc noFunction = NoFunc(); HOL emptyHolder (noFunction); - ASSERT (!emptyHolder); + CHECK (!emptyHolder); - ASSERT ( h1 ); - ASSERT ( h2 ); - ASSERT ( h3 ); + CHECK ( h1 ); + CHECK ( h2 ); + CHECK ( h3 ); } diff --git a/tests/lib/meta/generator-test.cpp b/tests/lib/meta/generator-test.cpp index 1726fc8ee..e6fdf1cf8 100644 --- a/tests/lib/meta/generator-test.cpp +++ b/tests/lib/meta/generator-test.cpp @@ -1,35 +1,35 @@ /* Generator(Test) - build an interface + implementation directed by a typelis - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ /** @file generator-test.cpp ** \par what are we doing here?? - ** + ** ** the following test composes both an interface and the corresponding implementation ** by instantiating "building block" templates over a collection of types. The resulting - ** class ends up inheriting a \e virtual function instantiated for each of the types + ** class ends up inheriting a \e virtual function instantiated for each of the types ** in the list. (remember: normally the number and signature of all virtual functions ** need to be absolutely fixed in the class definition) - ** + ** ** @see typelist-test.cpp ** @see generator.hpp ** @see lumiera::query::ConfigRules a real world usage example @@ -50,99 +50,98 @@ using std::cout; namespace lumiera { namespace typelist{ namespace test { - - /** template for generating lots of different test types */ - template<int I> - struct Block + + /** template for generating lots of different test types */ + template<int I> + struct Block + { + static string name; + string talk() { return "__"+name+"__"; } + }; + + + boost::format fmt ("Block<%2i>"); + + template<int I> + string Block<I>::name = str (fmt % I); + + + + /** Use this building block for assembling an abstract interface */ + template<class X> + class TakeIt + { + public: + virtual void eat (X& x) = 0; + virtual ~TakeIt() { } + }; + + /** Use this building block for chaining corresponding implementation classes. */ + template<class X, class BASE> + class DoIt + : public BASE + { + protected: + DoIt () { cout << "ctor DoIt<"<< X::name << " >\n";} + virtual ~DoIt() { cout << "dtor DoIt<"<< X::name << " >\n";} + public: + void eat (X& x) { cout << "devouring" << x.talk() << "\n";} + using BASE::eat; // prevent shadowing + }; + + typedef Types< Block<1> + , Block<2> + , Block<3> + , Block<5> + , Block<8> + , Block<13> + >::List TheTypes; + + typedef InstantiateForEach<TheTypes,TakeIt> TheInterface; + + + struct BaseImpl : public TheInterface + { + void eat() { cout << "gulp!\n"; } + }; + + typedef InstantiateChained<TheTypes,DoIt, BaseImpl> NumberBabbler; + + + /************************************************************************* + * @test check the helpers for dealing with lists-of-types. + * Build an interface and an implementation class + * by inheriting template instantiations + * for a collection of classes</li> + */ + class TypeListGenerator_test : public Test + { + virtual void run(Arg) { - static string name; - string talk() { return "__"+name+"__"; } - }; - - - boost::format fmt ("Block<%2i>"); - - template<int I> - string Block<I>::name = str (fmt % I); - - - - /** Use this building block for assembling an abstract interface */ - template<class X> - class TakeIt - { - public: - virtual void eat (X& x) = 0; - virtual ~TakeIt() { } - }; - - /** Use this building block for chaining corresponding implementation classes. */ - template<class X, class BASE> - class DoIt - : public BASE - { - protected: - DoIt () { cout << "ctor DoIt<"<< X::name << " >\n";} - virtual ~DoIt() { cout << "dtor DoIt<"<< X::name << " >\n";} - public: - void eat (X& x) { cout << "devouring" << x.talk() << "\n";} - using BASE::eat; // prevent shadowing - }; - - typedef Types< Block<1> - , Block<2> - , Block<3> - , Block<5> - , Block<8> - , Block<13> - >::List TheTypes; - - typedef InstantiateForEach<TheTypes,TakeIt> TheInterface; - - - struct BaseImpl : public TheInterface - { - void eat() { cout << "gulp!\n"; } - }; - - typedef InstantiateChained<TheTypes,DoIt, BaseImpl> NumberBabbler; - - - /************************************************************************* - * @test check the helpers for dealing with lists-of-types. - * <ul><li>build an interface and an implementation class - * by inheriting template instantiations - * for a collection of classes</li> - * </ul> - */ - class TypeListGenerator_test : public Test - { - virtual void run(Arg) - { - NumberBabbler me_can_has_more_numberz; - - ASSERT (INSTANCEOF (TheInterface, &me_can_has_more_numberz)); - - TheTypes::Tail::Head b2; // Block<2> - TheTypes::Tail::Tail::Tail::Head b5; // Block<5> - TheTypes::Tail::Tail::Tail::Tail::Tail::Head b13; // Block<13> - - me_can_has_more_numberz.eat (b2); - me_can_has_more_numberz.eat (b5); - - TakeIt<Block<13> >& subInterface = me_can_has_more_numberz; - - subInterface.eat (b13); - me_can_has_more_numberz.eat(); - - INFO (test, "SizeOf = %u", sizeof(me_can_has_more_numberz)); - } - }; - - - /** Register this test class... */ - LAUNCHER (TypeListGenerator_test, "unit common"); - - - + NumberBabbler me_can_has_more_numberz; + + CHECK (INSTANCEOF (TheInterface, &me_can_has_more_numberz)); + + TheTypes::Tail::Head b2; // Block<2> + TheTypes::Tail::Tail::Tail::Head b5; // Block<5> + TheTypes::Tail::Tail::Tail::Tail::Tail::Head b13; // Block<13> + + me_can_has_more_numberz.eat (b2); + me_can_has_more_numberz.eat (b5); + + TakeIt<Block<13> >& subInterface = me_can_has_more_numberz; + + subInterface.eat (b13); + me_can_has_more_numberz.eat(); + + INFO (test, "SizeOf = %u", sizeof(me_can_has_more_numberz)); + } + }; + + + /** Register this test class... */ + LAUNCHER (TypeListGenerator_test, "unit common"); + + + }}} // namespace lumiera::typelist::test diff --git a/tests/lib/meta/iterable-classification-test.cpp b/tests/lib/meta/iterable-classification-test.cpp index b4cc0a684..8c5b8b770 100644 --- a/tests/lib/meta/iterable-classification-test.cpp +++ b/tests/lib/meta/iterable-classification-test.cpp @@ -1,23 +1,23 @@ /* IterableClassification(Test) - detecting iterability of a generic type - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/lib/meta/tuple-diagnostics.hpp b/tests/lib/meta/tuple-diagnostics.hpp index 127b845e1..69a29b6f1 100644 --- a/tests/lib/meta/tuple-diagnostics.hpp +++ b/tests/lib/meta/tuple-diagnostics.hpp @@ -1,23 +1,23 @@ /* TUPLE-DIAGNOSTICS - helper for diagnostics of type tuples - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/lib/meta/type-tuple-test.cpp b/tests/lib/meta/type-tuple-test.cpp index 932f56572..aa773b3a2 100644 --- a/tests/lib/meta/type-tuple-test.cpp +++ b/tests/lib/meta/type-tuple-test.cpp @@ -1,30 +1,30 @@ /* TypeTuple(Test) - checking type tuples and records based on them - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ /** @file type-tuple-test.cpp ** Interplay of typelists, type tuples and simple record ** data types build on top of them. - ** + ** ** @see lumiera::typelist::Tuple ** @see tuple.hpp ** @see function-closure.hpp @@ -48,31 +48,31 @@ using std::endl; namespace lumiera { namespace typelist{ namespace test { - - - - namespace { // test data - - - typedef Types< Num<1> - , Num<3> - , Num<5> - > Types1; - typedef Types< Num<2> - , Num<4> - > Types2; - typedef Types< Num<7> > Types3; - - - - } // (End) test data + + + + namespace { // test data + + + typedef Types< Num<1> + , Num<3> + , Num<5> + > Types1; + typedef Types< Num<2> + , Num<4> + > Types2; + typedef Types< Num<7> > Types3; + + + + } // (End) test data /************************************************************************* - * @test Cover various aspects of the type tuple. - * Check the metaprogramming behaviour... + * @test Cover various aspects of the type tuple. + * Check the metaprogramming behaviour... * - build a tuple type from an existing typelist * - create sub tuple types and types with shifted parameters * Additionally, check the behaviour when creating tuple instances @@ -83,12 +83,12 @@ namespace test { * - creating tuples partially from an existing sub-argument tuple * - copy and copy construct * - access the "head" and access values by numeric index - * - create a tuple with shifted values + * - create a tuple with shifted values */ class TypeTuple_test : public Test { virtual void - run (Arg) + run (Arg) { check_diagnostics(); check_tuple_from_Typelist(); @@ -152,35 +152,35 @@ namespace test { typedef Tuple<Types<> > NulT; // plain-flat empty Tuple typedef Tuple<NullType> NulL; // list-style empty Tuple - ASSERT ( is_Tuple<T1>::value); - ASSERT ( is_TuplePlain<T1>::value); - ASSERT (! is_TupleListType<T1>::value); - ASSERT (! is_NullTuple<T1>::value); + CHECK ( is_Tuple<T1>::value); + CHECK ( is_TuplePlain<T1>::value); + CHECK (! is_TupleListType<T1>::value); + CHECK (! is_NullTuple<T1>::value); - ASSERT ( is_Tuple<T_L1>::value); - ASSERT (! is_TuplePlain<T_L1>::value); - ASSERT ( is_TupleListType<T_L1>::value); - ASSERT (! is_NullTuple<T_L1>::value); + CHECK ( is_Tuple<T_L1>::value); + CHECK (! is_TuplePlain<T_L1>::value); + CHECK ( is_TupleListType<T_L1>::value); + CHECK (! is_NullTuple<T_L1>::value); - ASSERT ( is_Tuple<NulT>::value); - ASSERT ( is_TuplePlain<NulT>::value); - ASSERT (! is_TupleListType<NulT>::value); - ASSERT ( is_NullTuple<NulT>::value); + CHECK ( is_Tuple<NulT>::value); + CHECK ( is_TuplePlain<NulT>::value); + CHECK (! is_TupleListType<NulT>::value); + CHECK ( is_NullTuple<NulT>::value); - ASSERT ( is_Tuple<NulL>::value); - ASSERT (! is_TuplePlain<NulL>::value); - ASSERT ( is_TupleListType<NulL>::value); - ASSERT ( is_NullTuple<NulL>::value); + CHECK ( is_Tuple<NulL>::value); + CHECK (! is_TuplePlain<NulL>::value); + CHECK ( is_TupleListType<NulL>::value); + CHECK ( is_NullTuple<NulL>::value); - ASSERT (! is_Tuple<Type1>::value); - ASSERT (! is_TuplePlain<Type1>::value); - ASSERT (!is_TupleListType<Type1>::value); - ASSERT (! is_NullTuple<Type1>::value); + CHECK (! is_Tuple<Type1>::value); + CHECK (! is_TuplePlain<Type1>::value); + CHECK (!is_TupleListType<Type1>::value); + CHECK (! is_NullTuple<Type1>::value); - ASSERT (! is_Tuple<Types1::List>::value); - ASSERT (! is_TuplePlain<Types1::List>::value); - ASSERT (!is_TupleListType<Types1::List>::value); - ASSERT (! is_NullTuple<Types1::List>::value); + CHECK (! is_Tuple<Types1::List>::value); + CHECK (! is_TuplePlain<Types1::List>::value); + CHECK (!is_TupleListType<Types1::List>::value); + CHECK (! is_NullTuple<Types1::List>::value); } @@ -210,7 +210,7 @@ namespace test { typedef Tuple<NullType> NulL; // list-style empty Tuple DISPLAY (T2::Type); // irrespective of the flavour, - DISPLAY (T2::TailType); // a basic set of typedefs is + DISPLAY (T2::TailType); // a basic set of typedefs is DISPLAY (T2::TupleType); // always available DISPLAY (T2::ThisType); DISPLAY (T2::Tail); @@ -249,11 +249,11 @@ namespace test { typedef Tuple<L3>::Type Ty3; typedef Tuple<Ty3> T3; - typedef Shifted<Ty3,0>::Type Ty_0; DISPLAY (Ty_0); - typedef Shifted<Ty3,1>::Type Ty_1; DISPLAY (Ty_1); - typedef Shifted<Ty3,2>::Type Ty_2; DISPLAY (Ty_2); - typedef Shifted<Ty3,3>::Type Ty_3; DISPLAY (Ty_3); - typedef Shifted<Ty3,4>::Type Ty_4; DISPLAY (Ty_4); + typedef Shifted<Ty3,0>::Type Ty_0; DISPLAY (Ty_0); + typedef Shifted<Ty3,1>::Type Ty_1; DISPLAY (Ty_1); + typedef Shifted<Ty3,2>::Type Ty_2; DISPLAY (Ty_2); + typedef Shifted<Ty3,3>::Type Ty_3; DISPLAY (Ty_3); + typedef Shifted<Ty3,4>::Type Ty_4; DISPLAY (Ty_4); typedef T3::ShiftedTuple<0>::Type T_0; DISPLAY (T_0); typedef T3::ShiftedTuple<1>::Type T_1; DISPLAY (T_1); @@ -360,7 +360,7 @@ namespace test { b_35 = tuple::BuildTuple<T1357T,T35T,4>::create(sub35); DUMPVAL (b_35); - // use an argument tuple beyond the last argument of the target tuple... + // use an argument tuple beyond the last argument of the target tuple... typedef Tuple<Types<Num<7>,Num<8> > > T78T; T78T sub78 (Num<7>(77),Num<8>(88)); DUMPVAL (sub78); diff --git a/tests/lib/meta/typelist-diagnostics.hpp b/tests/lib/meta/typelist-diagnostics.hpp index 98728f3a7..bd924b1d8 100644 --- a/tests/lib/meta/typelist-diagnostics.hpp +++ b/tests/lib/meta/typelist-diagnostics.hpp @@ -1,23 +1,23 @@ /* TYPELIST-DIAGNOSTICS - helper for testing the typelist based utilities - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/lib/meta/typelist-manip-test.cpp b/tests/lib/meta/typelist-manip-test.cpp index 0f28ca961..ce51270a5 100644 --- a/tests/lib/meta/typelist-manip-test.cpp +++ b/tests/lib/meta/typelist-manip-test.cpp @@ -1,23 +1,23 @@ /* TypeListManip(Test) - appending, mixing and filtering typelists - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/lib/meta/typelist-test.cpp b/tests/lib/meta/typelist-test.cpp index c31c4a70d..041f8eaf2 100644 --- a/tests/lib/meta/typelist-test.cpp +++ b/tests/lib/meta/typelist-test.cpp @@ -1,23 +1,23 @@ /* TypeList(Test) - check the typelist metaprogramming facility - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/lib/meta/typeseq-manip-test.cpp b/tests/lib/meta/typeseq-manip-test.cpp index a64e5f02c..1221c610b 100644 --- a/tests/lib/meta/typeseq-manip-test.cpp +++ b/tests/lib/meta/typeseq-manip-test.cpp @@ -1,23 +1,23 @@ /* TypeSeqManip(Test) - simple manipulations on type sequences - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/lib/multifact-argument-test.cpp b/tests/lib/multifact-argument-test.cpp index 14131e887..5edd52e44 100644 --- a/tests/lib/multifact-argument-test.cpp +++ b/tests/lib/multifact-argument-test.cpp @@ -1,23 +1,23 @@ /* MultiFactArgument(Test) - passing additional invocation arguments to registered factory functions - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -103,14 +103,14 @@ namespace test{ theFact.defineProduction (TWO, bind (&fabricateNumberz, 2, _1 )); cout << showSizeof (theFact) << endl; - ASSERT (sizeof(theFact) == sizeof(DispatcherMap)); + CHECK (sizeof(theFact) == sizeof(DispatcherMap)); typedef TestFactory::Product PP; PP p1 = theFact(ONE, 2); PP p2 = theFact(TWO, 3); - ASSERT (1*2 == p1->n_); - ASSERT (2*3 == p2->n_); + CHECK (1*2 == p1->n_); + CHECK (2*3 == p2->n_); } }; diff --git a/tests/lib/multifact-test.cpp b/tests/lib/multifact-test.cpp index 2850c0ea0..89495f0b3 100644 --- a/tests/lib/multifact-test.cpp +++ b/tests/lib/multifact-test.cpp @@ -1,23 +1,23 @@ /* MultiFact(Test) - unittest for the configurable object-family creating factory - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -116,15 +116,15 @@ namespace test{ Interface & o1 = theFact(ONE); Interface & o2 = theFact(ONE); - ASSERT (isSameObject(o1,o2)); + CHECK (isSameObject(o1,o2)); TestFactory anotherFact; - ASSERT (isnil (anotherFact)); + CHECK (isnil (anotherFact)); VERIFY_ERROR (INVALID, anotherFact(ONE) ); TestFactory::Singleton<Implementation<ONE> > anotherSingletonHolder (anotherFact,ONE); Interface & o3 = anotherFact(ONE); - ASSERT (isSameObject(o2,o3)); + CHECK (isSameObject(o2,o3)); } }; diff --git a/tests/lib/null-value-test.cpp b/tests/lib/null-value-test.cpp index eaee31bc3..57eb6085b 100644 --- a/tests/lib/null-value-test.cpp +++ b/tests/lib/null-value-test.cpp @@ -1,23 +1,23 @@ /* NullValue(Test) - verify the singleton holder for NIL or default values - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/lib/opaque-holder-test.cpp b/tests/lib/opaque-holder-test.cpp index 5eae7ebb8..1b95f8471 100644 --- a/tests/lib/opaque-holder-test.cpp +++ b/tests/lib/opaque-holder-test.cpp @@ -1,23 +1,23 @@ /* OpaqueHolder(Test) - check the inline type erasure helper - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -129,7 +129,7 @@ namespace test{ checkHandling (objs); checkSpecialSubclass (); } - ASSERT (0 == _checksum); // all dead + CHECK (0 == _checksum); // all dead } @@ -159,63 +159,63 @@ namespace test{ checkHandling (TestList& objs) { Opaque oo; - ASSERT (!oo); - ASSERT (isnil(oo)); + CHECK (!oo); + CHECK (isnil(oo)); oo = objs[1]; - ASSERT (oo); - ASSERT (!isnil(oo)); + CHECK (oo); + CHECK (!isnil(oo)); typedef DD<3> D3; typedef DD<5> D5; D3 d3 (oo.get<D3>() ); - ASSERT (3 == oo->getIt()); // re-access through Base interface - ASSERT (!isSameObject (d3, *oo)); + CHECK (3 == oo->getIt()); // re-access through Base interface + CHECK (!isSameObject (d3, *oo)); VERIFY_ERROR (WRONG_TYPE, oo.get<D5>() ); // direct assignment of target into Buffer oo = D5(); - ASSERT (oo); - ASSERT (5 == oo->getIt()); + CHECK (oo); + CHECK (5 == oo->getIt()); VERIFY_ERROR (WRONG_TYPE, oo.get<D3>() ); // can get a direct reference to contained object D5 &rd5 (oo.get<D5>()); - ASSERT (isSameObject (rd5, *oo)); + CHECK (isSameObject (rd5, *oo)); - ASSERT (!isnil(oo)); + CHECK (!isnil(oo)); oo = objs[3]; // copy construction also works on non-empty object - ASSERT (7 == oo->getIt()); + CHECK (7 == oo->getIt()); // WARNING: direct ref has been messed up through the backdoor! - ASSERT (7 == rd5.getIt()); - ASSERT (isSameObject (rd5, *oo)); + CHECK (7 == rd5.getIt()); + CHECK (isSameObject (rd5, *oo)); uint cnt_before = _create_count; oo.clear(); - ASSERT (!oo); + CHECK (!oo); oo = D5(); // direct assignment also works on empty object - ASSERT (oo); - ASSERT (5 == oo->getIt()); - ASSERT (_create_count == 2 + cnt_before); + CHECK (oo); + CHECK (5 == oo->getIt()); + CHECK (_create_count == 2 + cnt_before); // one within buff and one for the anonymous temporary D5() // verify that self-assignment is properly detected... cnt_before = _create_count; oo = oo; - ASSERT (oo); - ASSERT (_create_count == cnt_before); + CHECK (oo); + CHECK (_create_count == cnt_before); oo = oo.get<D5>(); - ASSERT (_create_count == cnt_before); + CHECK (_create_count == cnt_before); oo = *oo; - ASSERT (_create_count == cnt_before); - ASSERT (oo); + CHECK (_create_count == cnt_before); + CHECK (oo); oo.clear(); - ASSERT (!oo); - ASSERT (isnil(oo)); + CHECK (!oo); + CHECK (isnil(oo)); VERIFY_ERROR (INVALID, oo.get<D5>() ); #if false ///////////////////////////////////////////////////////////////////////////////////////////////TICKET #537 : restore throwing ASSERT VERIFY_ERROR (ASSERTION, oo->getIt() ); @@ -223,13 +223,13 @@ namespace test{ // can't access empty holder... Opaque o1 (oo); - ASSERT (!o1); + CHECK (!o1); Opaque o2 (d3); - ASSERT (!isSameObject (d3, *o2)); - ASSERT (3 == o2->getIt()); + CHECK (!isSameObject (d3, *o2)); + CHECK (3 == o2->getIt()); - ASSERT (sizeof(Opaque) <= sizeof(Base) + sizeof(void*) + _ALIGN_); + CHECK (sizeof(Opaque) <= sizeof(Base) + sizeof(void*) + _ALIGN_); } @@ -254,40 +254,40 @@ namespace test{ cout << showSizeof<Opaque>() << endl; cout << showSizeof<SpecialOpaque>() << endl; - ASSERT (sizeof(Special) > sizeof(Base)); - ASSERT (sizeof(SpecialOpaque) > sizeof(Opaque)); - ASSERT (sizeof(SpecialOpaque) <= sizeof(Special) + sizeof(void*) + _ALIGN_); + CHECK (sizeof(Special) > sizeof(Base)); + CHECK (sizeof(SpecialOpaque) > sizeof(Opaque)); + CHECK (sizeof(SpecialOpaque) <= sizeof(Special) + sizeof(void*) + _ALIGN_); Special s1 (6); Special s2 (3); - ASSERT (!s1); // even value - ASSERT (s2); // odd value - ASSERT (7 == s1.getIt()); // indeed subclass of DD<7> - ASSERT (7 == s2.getIt()); + CHECK (!s1); // even value + CHECK (s2); // odd value + CHECK (7 == s1.getIt()); // indeed subclass of DD<7> + CHECK (7 == s2.getIt()); SpecialOpaque ospe0; SpecialOpaque ospe1 (s1); SpecialOpaque ospe2 (s2); - ASSERT (!ospe0); // note: bool test (isValid) - ASSERT (!ospe1); // also forwarded to contained object (myVal_==6 is even) - ASSERT ( ospe2); - ASSERT ( isnil(ospe0)); // while isnil just checks the empty state - ASSERT (!isnil(ospe1)); - ASSERT (!isnil(ospe2)); + CHECK (!ospe0); // note: bool test (isValid) + CHECK (!ospe1); // also forwarded to contained object (myVal_==6 is even) + CHECK ( ospe2); + CHECK ( isnil(ospe0)); // while isnil just checks the empty state + CHECK (!isnil(ospe1)); + CHECK (!isnil(ospe2)); - ASSERT (7 == ospe1->getIt()); - ASSERT (6 == ospe1.get<Special>().myVal_); - ASSERT (3 == ospe2.get<Special>().myVal_); + CHECK (7 == ospe1->getIt()); + CHECK (6 == ospe1.get<Special>().myVal_); + CHECK (3 == ospe2.get<Special>().myVal_); ospe1 = DD<5>(); // but can be reassigned like any normal Opaque - ASSERT (ospe1); - ASSERT (5 == ospe1->getIt()); + CHECK (ospe1); + CHECK (5 == ospe1->getIt()); VERIFY_ERROR (WRONG_TYPE, ospe1.get<Special>() ); Opaque normal = DD<5>(); - ASSERT (normal); - ASSERT (5 == normal->getIt()); + CHECK (normal); + CHECK (5 == normal->getIt()); #if false ////////////////////////////////////////////////////////TODO: restore throwing ASSERT // Assertion protects against SEGV VERIFY_ERROR (ASSERTION, normal = s1 ); diff --git a/tests/lib/opaque-unchecked-buffer-test.cpp b/tests/lib/opaque-unchecked-buffer-test.cpp index d905ddfde..50e3de2e0 100644 --- a/tests/lib/opaque-unchecked-buffer-test.cpp +++ b/tests/lib/opaque-unchecked-buffer-test.cpp @@ -1,23 +1,23 @@ /* OpaqueUncheckedBuffer(Test) - passive inline buffer test - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -140,9 +140,9 @@ namespace test{ typedef InPlaceBuffer<Base, sizeof(DD<42>), DD<0> > Buffer; Buffer buff; - ASSERT (sizeof(buff) <= sizeof(DD<42>) + _ALIGN_); - ASSERT (1 == _create_count); - ASSERT (0 == _checksum); + CHECK (sizeof(buff) <= sizeof(DD<42>) + _ALIGN_); + CHECK (1 == _create_count); + CHECK (0 == _checksum); buff->confess(); // one default object of type DD<0> has been created buff.create<DD<5> > (); @@ -153,15 +153,15 @@ namespace test{ VERIFY_ERROR( FATAL, buff.create<Killer> () ); - ASSERT(0 == buff->id_); // default object was created, due to exception... + CHECK(0 == buff->id_); // default object was created, due to exception... buff.create<D42Sub> ("what the f**","is going on here?"); buff->confess(); - ASSERT (6 == _create_count); - ASSERT (42 == _checksum); // No.42 is alive + CHECK (6 == _create_count); + CHECK (42 == _checksum); // No.42 is alive } - ASSERT (0 == _checksum); // all dead + CHECK (0 == _checksum); // all dead } }; diff --git a/tests/lib/optional-ref-test.cpp b/tests/lib/optional-ref-test.cpp index a8e293cfd..5bfb5128a 100644 --- a/tests/lib/optional-ref-test.cpp +++ b/tests/lib/optional-ref-test.cpp @@ -1,23 +1,23 @@ /* OptionalRef(Test) - verify an optional and switchable object link - + Copyright (C) Lumiera.org 2010, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/lib/query/query-utils-test.cpp b/tests/lib/query/query-utils-test.cpp index b631d6f8a..70a9f59ec 100644 --- a/tests/lib/query/query-utils-test.cpp +++ b/tests/lib/query/query-utils-test.cpp @@ -1,23 +1,23 @@ /* QueryUtils(Test) - checking various utils provided for dealing with config queries - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -110,15 +110,15 @@ namespace test{ void check_extractID () { - ASSERT ("tok" == extractID ("pred", "pred(tok)." )); - ASSERT ("tok" == extractID ("pred", " pred( tok )" )); - ASSERT ("tok" == extractID ("pred", "pred(tok), pred(tux)." )); - ASSERT ("tok" == extractID ("pred", "other(xyz) pred(tok) pred(tux)" )); - ASSERT ("tok" == extractID ("pred", "some( pred(tok)" )); + CHECK ("tok" == extractID ("pred", "pred(tok)." )); + CHECK ("tok" == extractID ("pred", " pred( tok )" )); + CHECK ("tok" == extractID ("pred", "pred(tok), pred(tux)." )); + CHECK ("tok" == extractID ("pred", "other(xyz) pred(tok) pred(tux)" )); + CHECK ("tok" == extractID ("pred", "some( pred(tok)" )); - ASSERT (isnil (extractID ("pred", "pred (tok)"))); - ASSERT (isnil (extractID ("pred", "pred tok)" ))); - ASSERT (isnil (extractID ("pred", "pred(tok " ))); + CHECK (isnil (extractID ("pred", "pred (tok)"))); + CHECK (isnil (extractID ("pred", "pred tok)" ))); + CHECK (isnil (extractID ("pred", "pred(tok " ))); } @@ -128,23 +128,23 @@ namespace test{ check_removeTerm () { // successful------Symbol---input-string----------------------extracted------remaining------------- - ASSERT_removeTerm ("pred", "pred(tok).", "pred(tok)", "." ); - ASSERT_removeTerm ("pred", " pred( tok )", "pred(tok)", " " ); - ASSERT_removeTerm ("pred", "pred(tok), pred(tux).", "pred(tok)", "pred(tux)." ); - ASSERT_removeTerm ("pred", "other(xyz) pred(tok) pred(tux)", "pred(tok)", "other(xyz) pred(tux)" ); - ASSERT_removeTerm ("pred", "some( pred(tok)", "pred(tok)", "some( " ); + CHECK_removeTerm ("pred", "pred(tok).", "pred(tok)", "." ); + CHECK_removeTerm ("pred", " pred( tok )", "pred(tok)", " " ); + CHECK_removeTerm ("pred", "pred(tok), pred(tux).", "pred(tok)", "pred(tux)." ); + CHECK_removeTerm ("pred", "other(xyz) pred(tok) pred(tux)", "pred(tok)", "other(xyz) pred(tux)" ); + CHECK_removeTerm ("pred", "some( pred(tok)", "pred(tok)", "some( " ); // not successful - ASSERT_removeTerm ("pred", "pred (tok", "", "pred (tok" ); - ASSERT_removeTerm ("pred", "pred tok)", "", "pred tok)" ); - ASSERT_removeTerm ("pred", "pred(tok", "", "pred(tok" ); + CHECK_removeTerm ("pred", "pred (tok", "", "pred (tok" ); + CHECK_removeTerm ("pred", "pred tok)", "", "pred tok)" ); + CHECK_removeTerm ("pred", "pred(tok", "", "pred(tok" ); } void - ASSERT_removeTerm (Symbol sym, string input, string extracted, string modified) + CHECK_removeTerm (Symbol sym, string input, string extracted, string modified) { - ASSERT (extracted == removeTerm (sym, input)); - ASSERT (modified == input); + CHECK (extracted == removeTerm (sym, input)); + CHECK (modified == input); } @@ -156,7 +156,7 @@ namespace test{ check_countPred () { for (uint i=1; i <= 30; ++i) - ASSERT ( i == countPred (garbage_query (i))); + CHECK ( i == countPred (garbage_query (i))); } }; diff --git a/tests/lib/query/querydiagnostics.hpp b/tests/lib/query/querydiagnostics.hpp index 47d73283f..69214d32d 100644 --- a/tests/lib/query/querydiagnostics.hpp +++ b/tests/lib/query/querydiagnostics.hpp @@ -1,23 +1,23 @@ /* QUERYDIAGNOSTICS.hpp - helpers for writing tests covering config queries - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/tests/lib/removefromsettest.cpp b/tests/lib/removefromsettest.cpp index ce9f825ec..0bc2a0da3 100644 --- a/tests/lib/removefromsettest.cpp +++ b/tests/lib/removefromsettest.cpp @@ -1,23 +1,23 @@ /* RemoveFromSet(Test) - algorithm removing predicated elements from set - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/lib/sanitised-identifier-test.cpp b/tests/lib/sanitised-identifier-test.cpp index 7913795f1..a0b0d59de 100644 --- a/tests/lib/sanitised-identifier-test.cpp +++ b/tests/lib/sanitised-identifier-test.cpp @@ -1,23 +1,23 @@ /* SanitizedIdentifier(Test) - remove non-standard-chars and punctuation - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/lib/scoped-holder-test.cpp b/tests/lib/scoped-holder-test.cpp index 918e7416b..b424ec685 100644 --- a/tests/lib/scoped-holder-test.cpp +++ b/tests/lib/scoped-holder-test.cpp @@ -1,29 +1,31 @@ /* ScopedHolder(Test) - holding and owning noncopyable objects - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include "lib/test/run.hpp" +#include "lib/test/test-helper.hpp" #include "lib/util.hpp" +#include "lib/error.hpp" #include "lib/scoped-holder.hpp" #include "testdummy.hpp" @@ -38,6 +40,7 @@ namespace test{ using ::Test; using util::isnil; + using lumiera::error::LUMIERA_ERROR_LOGIC; using std::map; using std::cout; @@ -47,7 +50,7 @@ namespace test{ /********************************************************************************** - * @test ScopedHolder and ScopedPtrHolder are initially empty and copyable. + * @test ScopedHolder and ScopedPtrHolder are initially empty and copyable. * After taking ownership, they prohibit copy operations, manage the * lifecycle of the contained object and provide smart-ptr like access. * A series of identical tests is conducted both with the ScopedPtrHolder @@ -82,33 +85,33 @@ namespace test{ void checkAllocation() { - ASSERT (0==checksum); + CHECK (0==checksum); { HO holder; - ASSERT (!holder); - ASSERT (0==checksum); + CHECK (!holder); + CHECK (0==checksum); create_contained_object (holder); - ASSERT (holder); - ASSERT (false!=holder); - ASSERT (holder!=false); + CHECK (holder); + CHECK (false!=holder); + CHECK (holder!=false); - ASSERT (0!=checksum); - ASSERT ( &(*holder)); - ASSERT (holder->add(2) == checksum+2); + CHECK (0!=checksum); + CHECK ( &(*holder)); + CHECK (holder->add(2) == checksum+2); Dummy *rawP = holder.get(); - ASSERT (rawP); - ASSERT (holder); - ASSERT (rawP == &(*holder)); - ASSERT (rawP->add(-5) == holder->add(-5)); + CHECK (rawP); + CHECK (holder); + CHECK (rawP == &(*holder)); + CHECK (rawP->add(-5) == holder->add(-5)); TRACE (test, "holder at %p", &holder); TRACE (test, "object at %p", holder.get() ); - TRACE (test, "size(object) = %u", sizeof(*holder)); - TRACE (test, "size(holder) = %u", sizeof(holder)); + TRACE (test, "size(object) = %lu", sizeof(*holder)); + TRACE (test, "size(holder) = %lu", sizeof(holder)); } - ASSERT (0==checksum); + CHECK (0==checksum); } @@ -116,7 +119,7 @@ namespace test{ void checkErrorHandling() { - ASSERT (0==checksum); + CHECK (0==checksum); { HO holder; @@ -128,15 +131,15 @@ namespace test{ } catch (int val) { - ASSERT (0!=checksum); + CHECK (0!=checksum); checksum -= val; - ASSERT (0==checksum); + CHECK (0==checksum); } - ASSERT (!holder); /* because the exception happens in ctor + CHECK (!holder); /* because the exception happens in ctor object doesn't count as "created" */ throw_in_ctor = false; } - ASSERT (0==checksum); + CHECK (0==checksum); } @@ -144,7 +147,7 @@ namespace test{ void checkCopyProtocol() { - ASSERT (0==checksum); + CHECK (0==checksum); { HO holder; HO holder2 (holder); @@ -152,67 +155,41 @@ namespace test{ // copy and assignment of empty holders is tolerated // but after enclosing an object it will be copy protected... - ASSERT (!holder); + CHECK (!holder); create_contained_object (holder); - ASSERT (holder); + CHECK (holder); long currSum = checksum; void* adr = holder.get(); - try - { - holder2 = holder; - NOTREACHED (); - } - catch (lumiera::error::Logic&) - { - ASSERT (holder); - ASSERT (!holder2); - ASSERT (holder.get()==adr); - ASSERT (checksum==currSum); - } - try - { - holder = holder2; - NOTREACHED (); - } - catch (lumiera::error::Logic&) - { - ASSERT (holder); - ASSERT (!holder2); - ASSERT (holder.get()==adr); - ASSERT (checksum==currSum); - } + VERIFY_ERROR(LOGIC, holder2 = holder ); + CHECK (holder); + CHECK (!holder2); + CHECK (holder.get()==adr); + CHECK (checksum==currSum); + + VERIFY_ERROR(LOGIC, holder = holder2 ); + CHECK (holder); + CHECK (!holder2); + CHECK (holder.get()==adr); + CHECK (checksum==currSum); create_contained_object (holder2); - ASSERT (holder2); - ASSERT (checksum != currSum); + CHECK (holder2); + CHECK (checksum != currSum); currSum = checksum; - try - { - holder = holder2; - NOTREACHED (); - } - catch (lumiera::error::Logic&) - { - ASSERT (holder); - ASSERT (holder2); - ASSERT (holder.get()==adr); - ASSERT (checksum==currSum); - } - try - { - HO holder3 (holder2); - NOTREACHED (); - } - catch (lumiera::error::Logic&) - { - ASSERT (holder); - ASSERT (holder2); - ASSERT (checksum==currSum); - } + VERIFY_ERROR(LOGIC, holder = holder2 ); + CHECK (holder); + CHECK (holder2); + CHECK (holder.get()==adr); + CHECK (checksum==currSum); + + VERIFY_ERROR(LOGIC, HO holder3 (holder2) ); + CHECK (holder); + CHECK (holder2); + CHECK (checksum==currSum); } - ASSERT (0==checksum); + CHECK (0==checksum); } @@ -225,44 +202,44 @@ namespace test{ { typedef std::map<int,HO> MapHO; - ASSERT (0==checksum); + CHECK (0==checksum); { MapHO maph; - ASSERT (isnil (maph)); + CHECK (isnil (maph)); for (uint i=0; i<100; ++i) { HO & contained = maph[i]; - ASSERT (!contained); + CHECK (!contained); } // 100 holder objects created by sideeffect - ASSERT (0==checksum); // ..... without creating any contained object! - ASSERT (!isnil (maph)); - ASSERT (100==maph.size()); + CHECK (0==checksum); // ..... without creating any contained object! + CHECK (!isnil (maph)); + CHECK (100==maph.size()); for (uint i=0; i<100; ++i) { create_contained_object (maph[i]); - ASSERT (maph[i]); - ASSERT (0 < maph[i]->add(12)); + CHECK (maph[i]); + CHECK (0 < maph[i]->add(12)); } - ASSERT (100==maph.size()); - ASSERT (0!=checksum); + CHECK (100==maph.size()); + CHECK (0!=checksum); long value55 = maph[55]->add(0); long currSum = checksum; - ASSERT (1 == maph.erase(55)); - ASSERT (checksum == currSum - value55); // proves object#55's dtor has been invoked - ASSERT (maph.size() == 99); + CHECK (1 == maph.erase(55)); + CHECK (checksum == currSum - value55); // proves object#55's dtor has been invoked + CHECK (maph.size() == 99); - maph[55]; // create new empty holder by sideeffect... - ASSERT (&maph[55]); - ASSERT (!maph[55]); - ASSERT (maph.size() == 100); + maph[55]; // create new empty holder by sideeffect... + CHECK (&maph[55]); + CHECK (!maph[55]); + CHECK (maph.size() == 100); } - ASSERT (0==checksum); + CHECK (0==checksum); } @@ -272,4 +249,3 @@ namespace test{ }} // namespace lib::test - diff --git a/tests/lib/scoped-holder-transfer-test.cpp b/tests/lib/scoped-holder-transfer-test.cpp new file mode 100644 index 000000000..0c3773095 --- /dev/null +++ b/tests/lib/scoped-holder-transfer-test.cpp @@ -0,0 +1,237 @@ +/* + ScopedHolderTransfer(Test) - managing noncopyable objects within a growing vector + + Copyright (C) Lumiera.org + 2008, Hermann Vosseler <Ichthyostega@web.de> + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +* *****************************************************/ + + + +#include "lib/test/run.hpp" +#include "lib/util.hpp" + +#include "lib/scoped-holder.hpp" +#include "lib/scoped-holder-transfer.hpp" +#include "testdummy.hpp" + +#include <iostream> +#include <vector> + + +namespace lib { +namespace test { + + using ::Test; + using util::isnil; + + using std::vector; + using std::cout; + + namespace { // extending the Dummy for our special purpose.... + + bool throw_in_transfer = false; + + class FixedDummy + : public Dummy + { + public: + FixedDummy() + { + TRACE (test, "CTOR FixedDummy() --> this=%p val=%d", this, getVal()); + } + + ~FixedDummy() + { + TRACE (test, "DTOR ~FixedDummy() this=%p val=%d", this, getVal()); + } + + friend void + transfer_control (FixedDummy& from, FixedDummy& to) + { + TRACE (test, "TRANSFER target=%p <-- source=%p (%d,%d)", &to,&from, to.getVal(),from.getVal()); + + if (throw_in_transfer) + throw to.getVal(); + + swap (from,to); + from.setVal(0); // remove the old Dummy from accounting (checksum) + } + + }; + + + typedef ScopedHolder<FixedDummy> HolderD; + typedef ScopedPtrHolder<FixedDummy> PtrHolderD; + + template<class HOL> + struct Table + { + typedef Allocator_TransferNoncopyable<HOL> Allo; + typedef typename std::vector<HOL,Allo> Type; + + }; + + }//(End) test helpers + + + + + + /********************************************************************************** + * @test growing a vector containing noncopyable objects wrapped into ScopedHolder + * instances. This requires the use of a custom allocator, invoking a + * \c transfer_control() function to be provided for the concrete + * noncopyable class type, being invoked when the vector + * needs to reallocate. + */ + class ScopedHolderTransfer_test : public Test + { + + virtual void + run (Arg) + { + + cout << "checking ScopedHolder<Dummy>...\n"; + buildVector<HolderD>(); + growVector<HolderD>(); + checkErrorHandling<HolderD>(); + + cout << "checking ScopedPtrHolder<Dummy>...\n"; + buildVector<PtrHolderD>(); + growVector<PtrHolderD>(); + checkErrorHandling<PtrHolderD>(); + } + + void create_contained_object (HolderD& holder) { holder.create(); } + void create_contained_object (PtrHolderD& holder) { holder.reset(new FixedDummy()); } + + + template<class HO> + void + buildVector() + { + CHECK (0==checksum); + { + typedef typename Table<HO>::Type Vect; + + Vect table(50); + CHECK (0==checksum); + + for (uint i=0; i<10; ++i) + create_contained_object (table[i]); + + CHECK (0 < checksum); + CHECK ( table[9]); + CHECK (!table[10]); + + Dummy *rawP = table[5].get(); + CHECK (rawP); + CHECK (table[5]); + CHECK (rawP == &(*table[5])); + CHECK (rawP->add(-555) == table[5]->add(-555)); + } + CHECK (0==checksum); + } + + + template<class HO> + void + growVector() + { + CHECK (0==checksum); + { + typedef typename Table<HO>::Type Vect; + + Vect table; + table.reserve(2); + CHECK (0==checksum); + + cout << ".\n..install one element at index[0]\n"; + table.push_back(HO()); + CHECK (0==checksum); + + create_contained_object (table[0]); // switches into "managed" state + CHECK (0 < checksum); + int theSum = checksum; + + cout << ".\n..*** resize table to 16 elements\n"; + for (uint i=0; i<15; ++i) + table.push_back(HO()); + + CHECK (theSum==checksum); + } + CHECK (0==checksum); + } + + + template<class HO> + void + checkErrorHandling() + { + CHECK (0==checksum); + { + typedef typename Table<HO>::Type Vect; + + Vect table(5); + table.reserve(5); + CHECK (0==checksum); + + create_contained_object (table[2]); + create_contained_object (table[4]); + CHECK (0 < checksum); + int theSum = checksum; + + cout << ".\n.throw some exceptions...\n"; + throw_in_ctor = true; + try + { + create_contained_object (table[3]); + NOTREACHED (); + } + catch (int val) + { + CHECK (theSum < checksum); + checksum -= val; + CHECK (theSum==checksum); + } + CHECK ( table[2]); + CHECK (!table[3]); // not created because of exception + CHECK ( table[4]); + + throw_in_ctor = false; + throw_in_transfer=true; // can do this only when using ScopedHolder + try + { + table.resize(10); + } + catch (int val) + { + CHECK ( table.size() < 10); + } + CHECK (theSum == checksum); + throw_in_transfer=false; + } + CHECK (0==checksum); + } + + }; + + LAUNCHER (ScopedHolderTransfer_test, "unit common"); + + +}} // namespace lib::test diff --git a/tests/lib/scoped-ptrvect-test.cpp b/tests/lib/scoped-ptrvect-test.cpp index ed414aee2..48461e56b 100644 --- a/tests/lib/scoped-ptrvect-test.cpp +++ b/tests/lib/scoped-ptrvect-test.cpp @@ -1,23 +1,23 @@ /* ScopedPtrVect(Test) - holding and owning a collection of noncopyable objects - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -61,25 +61,25 @@ namespace test{ void simpleUsage() { - ASSERT (0==checksum); + CHECK (0==checksum); { VectD holder; - ASSERT (isnil (holder)); - ASSERT (0==checksum); + CHECK (isnil (holder)); + CHECK (0==checksum); Dummy* ptr = new Dummy(); Dummy& ref = holder.manage (ptr); - ASSERT (!isnil (holder)); - ASSERT (0!=checksum); - ASSERT (&ref==ptr); + CHECK (!isnil (holder)); + CHECK (0!=checksum); + CHECK (&ref==ptr); holder.manage (new Dummy); holder.manage (new Dummy); - ASSERT (3 == holder.size()); + CHECK (3 == holder.size()); holder.clear(); - ASSERT (0==checksum); - ASSERT (isnil (holder)); + CHECK (0==checksum); + CHECK (isnil (holder)); holder.manage (new Dummy); holder.manage (new Dummy); @@ -90,17 +90,17 @@ namespace test{ holder.manage (new Dummy); holder.manage (new Dummy); holder.manage (new Dummy); - ASSERT (9 == holder.size()); - ASSERT (0!=checksum); + CHECK (9 == holder.size()); + CHECK (0!=checksum); } - ASSERT (0==checksum); + CHECK (0==checksum); } void iterating() { - ASSERT (0==checksum); + CHECK (0==checksum); { VectD holder; for (int i=0; i<16; ++i) @@ -110,7 +110,7 @@ namespace test{ VectD::iterator ii = holder.begin(); while (ii) { - ASSERT (check == ii->getVal()); + CHECK (check == ii->getVal()); ++check; ++ii; } @@ -121,26 +121,26 @@ namespace test{ VectD::const_iterator cii = holder.begin(); while (cii) { - ASSERT (check == cii->getVal()); + CHECK (check == cii->getVal()); ++check; ++cii; } // Verify correct behaviour of iteration end - ASSERT (! (holder.end())); - ASSERT (isnil (holder.end())); + CHECK (! (holder.end())); + CHECK (isnil (holder.end())); VERIFY_ERROR (ITER_EXHAUST, *holder.end() ); VERIFY_ERROR (ITER_EXHAUST, ++holder.end() ); - ASSERT (ii == holder.end()); - ASSERT (cii == holder.end()); + CHECK (ii == holder.end()); + CHECK (cii == holder.end()); VERIFY_ERROR (ITER_EXHAUST, ++ii ); VERIFY_ERROR (ITER_EXHAUST, ++cii ); } - ASSERT (0==checksum); + CHECK (0==checksum); } }; diff --git a/tests/lib/scopedholdertransfertest.cpp b/tests/lib/scopedholdertransfertest.cpp deleted file mode 100644 index c47cd2a76..000000000 --- a/tests/lib/scopedholdertransfertest.cpp +++ /dev/null @@ -1,238 +0,0 @@ -/* - ScopedHolderTransfer(Test) - managing noncopyable objects within a growing vector - - Copyright (C) Lumiera.org - 2008, Hermann Vosseler <Ichthyostega@web.de> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -* *****************************************************/ - - - -#include "lib/test/run.hpp" -#include "lib/util.hpp" - -#include "lib/scoped-holder.hpp" -#include "lib/scopedholdertransfer.hpp" -#include "testdummy.hpp" - -#include <iostream> -#include <vector> - - -namespace lib { - namespace test { - - using ::Test; - using util::isnil; - - using std::vector; - using std::cout; - - namespace { // extending the Dummy for our special purpose.... - - bool throw_in_transfer = false; - - class FixedDummy - : public Dummy - { - public: - FixedDummy() - { - TRACE (test, "CTOR FixedDummy() --> this=%p val=%d", this, getVal()); - } - - ~FixedDummy() - { - TRACE (test, "DTOR ~FixedDummy() this=%p val=%d", this, getVal()); - } - - friend void - transfer_control (FixedDummy& from, FixedDummy& to) - { - TRACE (test, "TRANSFER target=%p <-- source=%p (%d,%d)", &to,&from, to.getVal(),from.getVal()); - - if (throw_in_transfer) - throw to.getVal(); - - to.setVal (from.getVal()); - from.setVal(0); - } - - }; - - - typedef ScopedHolder<FixedDummy> HolderD; - typedef ScopedPtrHolder<FixedDummy> PtrHolderD; - - template<class HOL> - struct Table - { - typedef Allocator_TransferNoncopyable<HOL> Allo; - typedef typename std::vector<HOL,Allo> Type; - - }; - } - - - - - /********************************************************************************** - * @test growing a vector containing noncopyable objects wrapped into ScopedHolder - * instances. This requires the use of a custom allocator, invoking a - * \c transfer_control() function to be provided for the concrete - * noncopyable class type, being invoked when the vector - * needs to reallocate. - */ - class ScopedHolderTransfer_test : public Test - { - - virtual void - run (Arg) - { - - cout << "checking ScopedHolder<Dummy>...\n"; - buildVector<HolderD>(); - growVector<HolderD>(); - checkErrorHandling<HolderD>(); - - cout << "checking ScopedPtrHolder<Dummy>...\n"; - buildVector<PtrHolderD>(); - growVector<PtrHolderD>(); - checkErrorHandling<PtrHolderD>(); - } - - void create_contained_object (HolderD& holder) { holder.create(); } - void create_contained_object (PtrHolderD& holder) { holder.reset(new FixedDummy()); } - - - template<class HO> - void - buildVector() - { - ASSERT (0==checksum); - { - typedef typename Table<HO>::Type Vect; - - Vect table(50); - ASSERT (0==checksum); - - for (uint i=0; i<10; ++i) - create_contained_object (table[i]); - - ASSERT (0 < checksum); - ASSERT ( table[9]); - ASSERT (!table[10]); - - Dummy *rawP = table[5].get(); - ASSERT (rawP); - ASSERT (table[5]); - ASSERT (rawP == &(*table[5])); - ASSERT (rawP->add(-555) == table[5]->add(-555)); - } - ASSERT (0==checksum); - } - - - template<class HO> - void - growVector() - { - ASSERT (0==checksum); - { - typedef typename Table<HO>::Type Vect; - - Vect table; - table.reserve(2); - ASSERT (0==checksum); - - cout << ".\n..install one element at index[0]\n"; - table.push_back(HO()); - ASSERT (0==checksum); - - create_contained_object (table[0]); // switches into "managed" state - ASSERT (0 < checksum); - int theSum = checksum; - - cout << ".\n..*** resize table to 16 elements\n"; - for (uint i=0; i<15; ++i) - table.push_back(HO()); - - ASSERT (theSum==checksum); - } - ASSERT (0==checksum); - } - - - template<class HO> - void - checkErrorHandling() - { - ASSERT (0==checksum); - { - typedef typename Table<HO>::Type Vect; - - Vect table(5); - table.reserve(5); - ASSERT (0==checksum); - - create_contained_object (table[2]); - create_contained_object (table[4]); - ASSERT (0 < checksum); - int theSum = checksum; - - cout << ".\n.throw some exceptions...\n"; - throw_in_ctor = true; - try - { - create_contained_object (table[3]); - NOTREACHED (); - } - catch (int val) - { - ASSERT (theSum < checksum); - checksum -= val; - ASSERT (theSum==checksum); - } - ASSERT ( table[2]); - ASSERT (!table[3]); // not created because of exception - ASSERT ( table[4]); - - throw_in_ctor = false; - throw_in_transfer=true; // can do this only when using ScopedHolder - try - { - table.resize(10); - } - catch (int val) - { - ASSERT ( table.size() < 10); - } - ASSERT (theSum == checksum); - throw_in_transfer=false; - } - ASSERT (0==checksum); - } - - }; - - LAUNCHER (ScopedHolderTransfer_test, "unit common"); - - - }// namespace test - -} // namespace lib - diff --git a/tests/lib/singleton-subclass-test.cpp b/tests/lib/singleton-subclass-test.cpp index 7fb274784..054883f71 100644 --- a/tests/lib/singleton-subclass-test.cpp +++ b/tests/lib/singleton-subclass-test.cpp @@ -1,23 +1,23 @@ /* SingletonSubclass(Test) - actually creating a subclass of the Singleton Type - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -84,7 +84,7 @@ namespace test{ /******************************************************************* * @test specialised variant of the Singleton Factory, for creating - * subclasses (implementation classes) without coupling the + * subclasses (implementation classes) without coupling the * caller to the concrete class type. * Expected results: an instance of the subclass is created. * @see lib::Singleton @@ -94,7 +94,8 @@ namespace test{ class SingletonSubclass_test : public Test { - virtual void run(Arg arg) + virtual void + run(Arg arg) { uint num= isnil(arg)? 1 : lexical_cast<uint>(arg[1]); @@ -103,7 +104,7 @@ namespace test{ Interface::setCountParam(num); // marker to declare the concrete type to be created - singleton::UseSubclass<Impl> typeinfo; + singleton::UseSubclass<Impl> typeinfo; // define an instance of the Singleton factory, // Specialised to create the concrete Type passed in @@ -114,9 +115,9 @@ namespace test{ Interface& t1 = instance(); Interface& t2 = instance(); - ASSERT ( &t1 == &t2, "not a Singleton, got two different instances." ); + CHECK ( &t1 == &t2, "not a Singleton, got two different instances." ); - cout << "calling a non-static method on the Singleton-" + cout << "calling a non-static method on the Singleton-" << t1.identify() << "\n" << string (t1) << "\n"; @@ -126,11 +127,12 @@ namespace test{ //#ifdef DEBUG // verify_error_detection (); //#endif - } + } - void verify_error_detection () + void + verify_error_detection () { singleton::UseSubclass<Impl_XXX> more_special_type; @@ -143,7 +145,7 @@ namespace test{ // Note: the following won't compile, because the "subclass" isn't a subclass... // - // singleton::UseSubclass<Unrelated> yet_another_type; + // singleton::UseSubclass<Unrelated> yet_another_type; // SingletonSubclassFactory<Interface> instance (yet_another_type); } }; diff --git a/tests/lib/singleton-test.cpp b/tests/lib/singleton-test.cpp index e734ff275..028881865 100644 --- a/tests/lib/singleton-test.cpp +++ b/tests/lib/singleton-test.cpp @@ -1,23 +1,23 @@ /* Singleton(Test) - unittest for our Singleton template - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -120,7 +120,7 @@ namespace test{ TargetObj& t1 = instance(); TargetObj& t2 = instance(); - ASSERT ( &t1 == &t2, "not a Singleton, got two different instances." ); + CHECK ( &t1 == &t2, "not a Singleton, got two different instances." ); cout << "calling a non-static method on the Singleton instance\n" << string (t1) << "\n"; diff --git a/tests/lib/singletontestmocktest.cpp b/tests/lib/singleton-testmock-test.cpp similarity index 93% rename from tests/lib/singletontestmocktest.cpp rename to tests/lib/singleton-testmock-test.cpp index ba4aade39..27a0ce086 100644 --- a/tests/lib/singletontestmocktest.cpp +++ b/tests/lib/singleton-testmock-test.cpp @@ -1,23 +1,23 @@ /* SingletonTestMock(Test) - using Singleton for injecting Test-Mocks - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -143,7 +143,7 @@ namespace test{ TestSingletonO* sing = &instance(); sing->doIt(); sing->doIt(); - ASSERT (sing->getCnt() == 2); + CHECK (sing->getCnt() == 2); instance.injectSubclass (new Mock_1); sing = &instance(); @@ -152,18 +152,18 @@ namespace test{ sing->doIt(); sing->doIt(); sing->doIt(); - ASSERT (sing->getCnt() == 5); + CHECK (sing->getCnt() == 5); instance.injectSubclass (new Mock_2); sing = &instance(); sing->doIt(); - ASSERT (sing->getCnt() == 1); + CHECK (sing->getCnt() == 1); instance.injectSubclass (0); // un-shadowing original instance sing = &instance(); - ASSERT (sing->getCnt() == 2); + CHECK (sing->getCnt() == 2); sing->doIt(); - ASSERT (sing->getCnt() == 3); + CHECK (sing->getCnt() == 3); } @@ -198,12 +198,12 @@ namespace test{ TestSingletonO* sing = &instance(); sing->doIt(); sing->doIt(); - ASSERT (sing->getCnt() == 2); + CHECK (sing->getCnt() == 2); instance.injectSubclass (0); sing = &instance(); sing->doIt(); - ASSERT (sing->getCnt() == 1); + CHECK (sing->getCnt() == 1); } }; diff --git a/tests/lib/streamtypebasicstest.cpp b/tests/lib/streamtypebasicstest.cpp index 3ddea1deb..bf5f191b6 100644 --- a/tests/lib/streamtypebasicstest.cpp +++ b/tests/lib/streamtypebasicstest.cpp @@ -1,23 +1,23 @@ /* StreamTypeBasics(Test) - check the fundamentals of stream type information - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -70,7 +70,7 @@ namespace lumiera { UNIMPLEMENTED ("at least preliminary implementation of the MediaImplLib interface for lib GAVL"); TODO ("how to do a simple consistency check on the returned ImplFacade? can we re-create the GAVL frame type?"); - ASSERT (GAVL==iTy.libraryID); + CHECK (GAVL==iTy.libraryID); return iTy; } @@ -78,11 +78,11 @@ namespace lumiera { basicImplTypeProperties (ImplType refType) { ImplType iTy2 = test_createImplType (); - ASSERT (iTy2==refType); - ASSERT (refType==iTy2); + CHECK (iTy2==refType); + CHECK (refType==iTy2); TODO ("add equality comparable concept to the ImplType class"); - ASSERT (StreamType::VIDEO==refType.getKind()); + CHECK (StreamType::VIDEO==refType.getKind()); UNIMPLEMENTED ("get a lib descriptor"); UNIMPLEMENTED ("check the lib of the type"); UNIMPLEMENTED ("compare two types"); @@ -97,18 +97,18 @@ namespace lumiera { void basicStreamTypeProperties (SType type, ImplType iTy) { - ASSERT (type.implType); - ASSERT (iTy==(*type.implType)); /////////////TODO: really by ptr??? - ASSERT (&iTy==type.implType); // actually using the same object (in the registry) + CHECK (type.implType); + CHECK (iTy==(*type.implType)); /////////////TODO: really by ptr??? + CHECK (&iTy==type.implType); // actually using the same object (in the registry) - ASSERT (!isnil (type.prototype.id)); - ASSERT (StreamType::VIDEO==type.prototype.kind); - ASSERT (StreamType::VIDEO==type.implType->getKind()); + CHECK (!isnil (type.prototype.id)); + CHECK (StreamType::VIDEO==type.prototype.kind); + CHECK (StreamType::VIDEO==type.implType->getKind()); - ASSERT (type.implType->canConvert(iTy)); // of course... they are actually the same - ASSERT (iTy.canConvert(type)); // because it's based on the same impl type + CHECK (type.implType->canConvert(iTy)); // of course... they are actually the same + CHECK (iTy.canConvert(type)); // because it's based on the same impl type - ASSERT (StreamType::RAW==type.intentionTag); + CHECK (StreamType::RAW==type.intentionTag); } }; diff --git a/tests/lib/streamtypelifecycletest.cpp b/tests/lib/streamtypelifecycletest.cpp index 9ef328d3d..1c1466407 100644 --- a/tests/lib/streamtypelifecycletest.cpp +++ b/tests/lib/streamtypelifecycletest.cpp @@ -1,23 +1,23 @@ /* StreamTypeLifecycle(Test) - check lifecycle of the stream type registration - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/lib/sub-id-test.cpp b/tests/lib/sub-id-test.cpp index b52778c21..6794c92d5 100644 --- a/tests/lib/sub-id-test.cpp +++ b/tests/lib/sub-id-test.cpp @@ -1,23 +1,23 @@ /* SubID(Test) - exploring possible properties of an extensible symbolic identifier - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -156,7 +156,7 @@ namespace test{ verify (KEY key) { cout << "verify....." << key << endl; - ASSERT (string(key) == (*this)[key]); + CHECK (string(key) == (*this)[key]); } }; diff --git a/tests/lib/subsystem-runner-test.cpp b/tests/lib/subsystem-runner-test.cpp index 8e1ecb0be..8eebc7d26 100644 --- a/tests/lib/subsystem-runner-test.cpp +++ b/tests/lib/subsystem-runner-test.cpp @@ -1,23 +1,23 @@ /* SubsystemRunner(Test) - validate starting and stopping of dependent subsystems - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -112,19 +112,19 @@ namespace test { bool start (lumiera::Option&, Subsys::SigTerm termination) { - REQUIRE (!(isUp_|started_|didRun_), "attempt to start %s twice!", cStr(*this)); + CHECK (!(isUp_|started_|didRun_), "attempt to start %s twice!", cStr(*this)); string startSpec (extractID ("start",spec_)); - ASSERT (!isnil (startSpec)); + CHECK (!isnil (startSpec)); if ("true"==startSpec) //----simulate successful subsystem start { - REQUIRE (!started_); + CHECK (!started_); Thread (id_, bind (&MockSys::run, this, termination)) .sync(); // run-status handshake - ASSERT (started_); + CHECK (started_); } else if ("fail"==startSpec) //----not starting, incorrectly reporting success @@ -165,7 +165,7 @@ namespace test { run (Subsys::SigTerm termination) { string runSpec (extractID ("run",spec_)); - ASSERT (!isnil (runSpec)); + CHECK (!isnil (runSpec)); // run-status handshake started_ = true; @@ -281,15 +281,15 @@ namespace test { MockSys unit ("one", "start(true), run(true)."); SubsystemRunner runner(dummyOpt); - REQUIRE (!unit.isRunning()); - REQUIRE (!unit.didRun()); + CHECK (!unit.isRunning()); + CHECK (!unit.didRun()); runner.maybeRun (unit); bool emergency = runner.wait(); - ASSERT (!emergency); - ASSERT (!unit.isRunning()); - ASSERT (unit.didRun()); + CHECK (!emergency); + CHECK (!unit.isRunning()); + CHECK (unit.didRun()); } @@ -322,14 +322,14 @@ namespace test { usleep (DELAY_FOR_FLOUNDERING_THRAD_ms * 1000); // preempt to allow unit4 to go away runner.wait(); - ASSERT (!unit1.isRunning()); - ASSERT (!unit2.isRunning()); - ASSERT (!unit3.isRunning()); - ASSERT (!unit4.isRunning()); - ASSERT (!unit1.didRun()); - ASSERT (!unit2.didRun()); - ASSERT (!unit3.didRun()); - ASSERT ( unit4.didRun()); // ...but it failed immediately + CHECK (!unit1.isRunning()); + CHECK (!unit2.isRunning()); + CHECK (!unit3.isRunning()); + CHECK (!unit4.isRunning()); + CHECK (!unit1.didRun()); + CHECK (!unit2.didRun()); + CHECK (!unit3.didRun()); + CHECK ( unit4.didRun()); // ...but it failed immediately } @@ -344,9 +344,9 @@ namespace test { runner.maybeRun (unit); bool emergency = runner.wait(); - ASSERT (emergency); // emergency state got propagated - ASSERT (!unit.isRunning()); - ASSERT (unit.didRun()); + CHECK (emergency); // emergency state got propagated + CHECK (!unit.isRunning()); + CHECK (unit.didRun()); } @@ -366,22 +366,22 @@ namespace test { SubsystemRunner runner(dummyOpt); runner.maybeRun (unit4); - ASSERT (unit1.isRunning()); - ASSERT (unit2.isRunning()); - ASSERT (unit3.isRunning()); - ASSERT (unit4.isRunning()); + CHECK (unit1.isRunning()); + CHECK (unit2.isRunning()); + CHECK (unit3.isRunning()); + CHECK (unit4.isRunning()); bool emergency = runner.wait(); - ASSERT (!emergency); - ASSERT (!unit1.isRunning()); - ASSERT (!unit2.isRunning()); - ASSERT (!unit3.isRunning()); - ASSERT (!unit4.isRunning()); - ASSERT (unit1.didRun()); - ASSERT (unit2.didRun()); - ASSERT (unit3.didRun()); - ASSERT (unit4.didRun()); + CHECK (!emergency); + CHECK (!unit1.isRunning()); + CHECK (!unit2.isRunning()); + CHECK (!unit3.isRunning()); + CHECK (!unit4.isRunning()); + CHECK (unit1.didRun()); + CHECK (unit2.didRun()); + CHECK (unit3.didRun()); + CHECK (unit4.didRun()); } @@ -401,21 +401,21 @@ namespace test { SubsystemRunner runner(dummyOpt); VERIFY_ERROR (LOGIC, runner.maybeRun (unit4) ); // failure to bring up prerequisites is detected - ASSERT ( unit1.isRunning()); - ASSERT ( unit2.isRunning()); - ASSERT (!unit3.isRunning()); + CHECK ( unit1.isRunning()); + CHECK ( unit2.isRunning()); + CHECK (!unit3.isRunning()); // shutdown has been triggered for unit4, but may require some time bool emergency = runner.wait(); - ASSERT (!emergency); // no problems with the subsystems actually running... - ASSERT (!unit1.isRunning()); - ASSERT (!unit2.isRunning()); - ASSERT (!unit3.isRunning()); - ASSERT (!unit4.isRunning()); - ASSERT ( unit1.didRun()); - ASSERT ( unit2.didRun()); - ASSERT (!unit3.didRun()); + CHECK (!emergency); // no problems with the subsystems actually running... + CHECK (!unit1.isRunning()); + CHECK (!unit2.isRunning()); + CHECK (!unit3.isRunning()); + CHECK (!unit4.isRunning()); + CHECK ( unit1.didRun()); + CHECK ( unit2.didRun()); + CHECK (!unit3.didRun()); // can't say for sure if unit4 actually did run } }; diff --git a/tests/lib/symbol-hashtable-test.cpp b/tests/lib/symbol-hashtable-test.cpp index 2e74f7b3c..801e65518 100644 --- a/tests/lib/symbol-hashtable-test.cpp +++ b/tests/lib/symbol-hashtable-test.cpp @@ -1,23 +1,23 @@ /* SymbolHashtable(Test) - building a hashtable with Symbol (id) keys - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -66,38 +66,38 @@ namespace test{ class SymbolHashtable_test : public Test { - void + virtual void run (Arg) { checkHashFunction(); HTable table; - ASSERT (isnil(table)); + CHECK (isnil(table)); table[KEY1] = string (KEY1); table[KEY2] = string (KEY2); table[KEY3] = string (KEY3); table[KEY4] = string (KEY4); - ASSERT (!isnil(table)); - ASSERT (4 == table.size()); - ASSERT (contains (table, KEY1)); - ASSERT (contains (table, KEY2)); - ASSERT (contains (table, KEY3)); - ASSERT (contains (table, KEY4)); - ASSERT (!contains (table, KEY5)); + CHECK (!isnil(table)); + CHECK (4 == table.size()); + CHECK (contains (table, KEY1)); + CHECK (contains (table, KEY2)); + CHECK (contains (table, KEY3)); + CHECK (contains (table, KEY4)); + CHECK (!contains (table, KEY5)); - ASSERT (string (KEY1) == table[KEY1]); - ASSERT (string (KEY2) == table[KEY2]); - ASSERT (string (KEY3) == table[KEY3]); - ASSERT (string (KEY4) == table[KEY4]); + CHECK (string (KEY1) == table[KEY1]); + CHECK (string (KEY2) == table[KEY2]); + CHECK (string (KEY3) == table[KEY3]); + CHECK (string (KEY4) == table[KEY4]); - table[KEY3] += "..."; - ASSERT (string(KEY3) != table[KEY3]); - ASSERT (string(KEY3)+"..." == table[KEY3]); + table[KEY3] += "..."; + CHECK (string(KEY3) != table[KEY3]); + CHECK (string(KEY3)+"..." == table[KEY3]); - ASSERT (isnil (table[KEY5])); // adds a new empty value object as side effect - ASSERT (5 == table.size()); + CHECK (isnil (table[KEY5])); // adds a new empty value object as side effect + CHECK (5 == table.size()); } @@ -109,7 +109,7 @@ namespace test{ string copy1(random); copy1[5] = '\0'; // truncate the c-String to 5 chars - string copy2(random); + string copy2(random); copy2[rand() % STRING_MAX_RELEVANT] = '*'; // modify a random position string copy3(copy2); @@ -123,15 +123,15 @@ namespace test{ Literal l_2 (copy2.c_str()); Literal l_3 (copy3.c_str()); - ASSERT (isnil (l0)); - ASSERT (l0 != l51); - ASSERT (l51 == l52); + CHECK (isnil (l0)); + CHECK (l0 != l51); + CHECK (l51 == l52); - ASSERT (l51 != l_1); - ASSERT (l_1 != l_2); - ASSERT (l_2 == l_3); // difference not detected due to observation limit... - ASSERT (!std::strncmp (l_2, l_3, STRING_MAX_RELEVANT )); - ASSERT ( std::strncmp (l_2, l_3, STRING_MAX_RELEVANT+1)); + CHECK (l51 != l_1); + CHECK (l_1 != l_2); + CHECK (l_2 == l_3); // difference not detected due to observation limit... + CHECK (!std::strncmp (l_2, l_3, STRING_MAX_RELEVANT )); + CHECK ( std::strncmp (l_2, l_3, STRING_MAX_RELEVANT+1)); size_t h0 = hash_value (l0); size_t h51 = hash_value (l51); @@ -140,21 +140,21 @@ namespace test{ size_t h_2 = hash_value (l_2); size_t h_3 = hash_value (l_3); - ASSERT (h0 == 0); - ASSERT (h51 != 0); - ASSERT (h52 != 0); - ASSERT (h_1 != 0); - ASSERT (h_2 != 0); - ASSERT (h_3 != 0); + CHECK (h0 == 0); + CHECK (h51 != 0); + CHECK (h52 != 0); + CHECK (h_1 != 0); + CHECK (h_2 != 0); + CHECK (h_3 != 0); - ASSERT (h51 == h52); // verify the hash function indeed stops at '\0' - ASSERT (h51 != h_1); // share a common prefix, but the hash differs - ASSERT (h_1 != h_2); // the single random modification is detected - ASSERT (h_2 == h_3); // because l_2 and l_3 differ behind the fixed observation limit + CHECK (h51 == h52); // verify the hash function indeed stops at '\0' + CHECK (h51 != h_1); // share a common prefix, but the hash differs + CHECK (h_1 != h_2); // the single random modification is detected + CHECK (h_2 == h_3); // because l_2 and l_3 differ behind the fixed observation limit - ASSERT (h_1 == hash_value (l_1)); //reproducible - ASSERT (h_2 == hash_value (l_2)); - ASSERT (h_3 == hash_value (l_3)); + CHECK (h_1 == hash_value (l_1)); //reproducible + CHECK (h_2 == hash_value (l_2)); + CHECK (h_3 == hash_value (l_3)); } }; @@ -162,4 +162,3 @@ namespace test{ }} // namespace lib::test - diff --git a/tests/lib/symbol-test.cpp b/tests/lib/symbol-test.cpp index 0da7699fa..89d1b4cd1 100644 --- a/tests/lib/symbol-test.cpp +++ b/tests/lib/symbol-test.cpp @@ -1,23 +1,23 @@ /* Symbol(Test) - verify basic properties of a Symbol datatype - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -45,13 +45,13 @@ namespace test{ * @test properties of Symbol data type. Currently this is * just a thin wrapper for a const char * * @todo this test is very much WIP, as the implementation - * of a real symbol type and symbol table remains - * to be done. See Ticket #157 + * of a real symbol type and symbol table remains + * to be done. ///////////////////////////Ticket #157 */ class Symbol_test : public Test { - void + virtual void run (Arg) { checkLiteral(); @@ -68,20 +68,20 @@ namespace test{ cout << li1 << endl; cout << showSizeof(li1) << endl; - ASSERT (sizeof(Literal) == sizeof(char*)); + CHECK (sizeof(Literal) == sizeof(char*)); - ASSERT (li1 == li2); - ASSERT (!isSameObject (li1,li2)); - ASSERT (li1 != li3); - ASSERT (li2 != li3); - ASSERT (li3 != li2); + CHECK (li1 == li2); + CHECK (!isSameObject (li1,li2)); + CHECK (li1 != li3); + CHECK (li2 != li3); + CHECK (li3 != li2); cout << showType(li1 + string("ce")) << endl; cout << showType(string("minus " +li1)) << endl; cout << li2+string("..") << string("..")+li2 << endl; - ASSERT (hash_value(li1) == hash_value(li2)); - ASSERT (hash_value(li2) != hash_value(li3)); + CHECK (hash_value(li1) == hash_value(li2)); + CHECK (hash_value(li2) != hash_value(li3)); } @@ -91,11 +91,11 @@ namespace test{ Literal nn1 (0); Literal nn2 (""); - ASSERT (isnil (nn1)); - ASSERT (isnil (nn2)); + CHECK (isnil (nn1)); + CHECK (isnil (nn2)); Literal nnn (" "); - ASSERT (!isnil (nnn)); + CHECK (!isnil (nnn)); } @@ -106,17 +106,17 @@ namespace test{ Symbol sy1("1"); Symbol sy2(l1); - ASSERT (sy1 == sy2); - ASSERT (!isSameObject (l1,sy1)); - ASSERT (!isSameObject (sy1,sy2)); + CHECK (sy1 == sy2); + CHECK (!isSameObject (l1,sy1)); + CHECK (!isSameObject (sy1,sy2)); Symbol sy3; - ASSERT (isnil(sy3)); - ASSERT (sy1 != sy3); + CHECK (isnil(sy3)); + CHECK (sy1 != sy3); sy3 = l1; - ASSERT (!isnil(sy3)); - ASSERT (sy1 == sy3); + CHECK (!isnil(sy3)); + CHECK (sy1 == sy3); TODO ("real functionality of Symbol data type"); } @@ -126,4 +126,3 @@ namespace test{ }} // namespace lib::test - diff --git a/tests/lib/sync-classlock-test.cpp b/tests/lib/sync-classlock-test.cpp index 585fff8d9..3f8010e12 100644 --- a/tests/lib/sync-classlock-test.cpp +++ b/tests/lib/sync-classlock-test.cpp @@ -1,23 +1,23 @@ /* SyncClasslock(Test) - validate the type-based Monitor locking - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -81,11 +81,11 @@ namespace test { { Probe objs[NUM_INSTANCES]; - ASSERT (1 == objs[0].shared_lock_.use_count()); + CHECK (1 == objs[0].shared_lock_.use_count()); } ClassLock<Probe> get_class_lock; - ASSERT ( 1 == get_class_lock.use_count()); // embedded PerClassMonitor<Probe> got created exactly once + CHECK ( 1 == get_class_lock.use_count()); // embedded PerClassMonitor<Probe> got created exactly once } // and stays alive until static dtors are called.... }; diff --git a/tests/lib/sync-locking-test.cpp b/tests/lib/sync-locking-test.cpp index 9b4de03f9..9fa27cbb9 100644 --- a/tests/lib/sync-locking-test.cpp +++ b/tests/lib/sync-locking-test.cpp @@ -1,23 +1,23 @@ /* SyncLocking(Test) - check the monitor object based locking - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -138,7 +138,7 @@ namespace test{ , bind (&HavocThread::doIt, this) ) { - ASSERT (thread_); + CHECK (thread_); } ~HavocThread () @@ -176,7 +176,7 @@ namespace test{ virtual void run (Arg) { - REQUIRE (ourVictim.checkAllEqual()); + CHECK (ourVictim.checkAllEqual()); { HavocThread threads[NUM_THREADS] SIDEEFFECT; } diff --git a/tests/lib/sync-timedwait-test.cpp b/tests/lib/sync-timedwait-test.cpp index b204689ab..6632a10ad 100644 --- a/tests/lib/sync-timedwait-test.cpp +++ b/tests/lib/sync-timedwait-test.cpp @@ -1,23 +1,23 @@ /* SyncTimedwait(Test) - check the monitor object based timed condition wait - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -61,7 +61,7 @@ namespace test{ * @see sync::Timeout * @see sync.hpp */ - class SyncTimedwait_test + class SyncTimedwait_test : public Test, Sync<RecursiveLock_Waitable> { @@ -77,7 +77,7 @@ namespace test{ Lock block(this, &SyncTimedwait_test::neverHappens); cout << "back from LaLaLand, alive and thriving!\n"; - ASSERT (block.isTimedWait()); + CHECK (block.isTimedWait()); } @@ -88,7 +88,7 @@ namespace test{ if (!currentLock.isTimedWait()) // right from within the condition test: currentLock.setTimeout(WAIT_mSec); // switch waiting mode to timed wait and set timeout - return false; + return false; } @@ -98,30 +98,30 @@ namespace test{ { sync::Timeout tout; - ASSERT (!tout); - ASSERT (0 == tout.tv_sec); - ASSERT (0 == tout.tv_nsec); + CHECK (!tout); + CHECK (0 == tout.tv_sec); + CHECK (0 == tout.tv_nsec); tout.setOffset (0); - ASSERT (!tout); - ASSERT (0 == tout.tv_sec); - ASSERT (0 == tout.tv_nsec); + CHECK (!tout); + CHECK (0 == tout.tv_sec); + CHECK (0 == tout.tv_nsec); timespec ref; clock_gettime(CLOCK_REALTIME, &ref); tout.setOffset (1); - ASSERT (tout); - ASSERT (0 < tout.tv_sec); - ASSERT (ref.tv_sec <= tout.tv_sec); - ASSERT (ref.tv_nsec <= 1000000 + tout.tv_nsec || ref.tv_nsec > 1000000000-100000); + CHECK (tout); + CHECK (0 < tout.tv_sec); + CHECK (ref.tv_sec <= tout.tv_sec); + CHECK (ref.tv_nsec <= 1000000 + tout.tv_nsec || ref.tv_nsec > 1000000000-100000); clock_gettime(CLOCK_REALTIME, &ref); tout.setOffset (1000); - ASSERT (tout); + CHECK (tout); if (ref.tv_nsec!=0) // should have gotten an overflow to the seconds part { - ASSERT (ref.tv_sec <= 2 + tout.tv_sec ); - ASSERT ((ref.tv_nsec + 1000000 * 999) % 1000000000 + CHECK (ref.tv_sec <= 2 + tout.tv_sec ); + CHECK ((ref.tv_nsec + 1000000 * 999) % 1000000000 <= tout.tv_nsec); } } diff --git a/tests/lib/sync-waiting-test.cpp b/tests/lib/sync-waiting-test.cpp index 154b54979..c86306548 100644 --- a/tests/lib/sync-waiting-test.cpp +++ b/tests/lib/sync-waiting-test.cpp @@ -1,23 +1,23 @@ /* SyncWaiting(Test) - check the monitor object based wait/notification - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -157,9 +157,9 @@ namespace test{ Thread ping ("SyncWaiting ping", bind (&Token::getIt, &tok)); Thread pong ("SyncWaiting pong", bind (&Token::getIt, &tok)); - ASSERT (ping); - ASSERT (pong); - ASSERT (0 == tok.result()); + CHECK (ping); + CHECK (pong); + CHECK (0 == tok.result()); usleep (100000); // if the threads don't block correctly, they've missed their chance by now... @@ -171,7 +171,7 @@ namespace test{ pong.join(); ping.join(); - ASSERT (2*val == tok.result()); + CHECK (2*val == tok.result()); } }; diff --git a/tests/lib/test/cmdlinewrappertest.cpp b/tests/lib/test/cmdlinewrappertest.cpp index 00a016d9f..df5a74a57 100644 --- a/tests/lib/test/cmdlinewrappertest.cpp +++ b/tests/lib/test/cmdlinewrappertest.cpp @@ -1,23 +1,23 @@ /* Cmdlinewrapper(Test) - build vector of tokens from cmdline, various conversions - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -71,13 +71,13 @@ namespace test { // consistency checks std::ostringstream output; output << theCmdline; - ENSURE (output.str() == string(theCmdline)); + CHECK (output.str() == string(theCmdline)); i=0; string token; std::istringstream input(theCmdline); while (input >> token) - ENSURE (token == theCmdline[i++]); + CHECK (token == theCmdline[i++]); } /** @test wrapping a (albeit faked) standard commandline diff --git a/tests/lib/test/test-helper-test.cpp b/tests/lib/test/test-helper-test.cpp index 6b782a76d..c8fdb8a4b 100644 --- a/tests/lib/test/test-helper-test.cpp +++ b/tests/lib/test/test-helper-test.cpp @@ -1,23 +1,23 @@ /* TestHelper(Test) - validate the unittest support functions - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -92,9 +92,9 @@ namespace test{ Wrmpf3 rmpf3; Murpf murpf; - ASSERT (1 == sizeof (rmpf1)); - ASSERT (2 == sizeof (rmpf2)); - ASSERT (3 == sizeof (rmpf3)); + CHECK (1 == sizeof (rmpf1)); + CHECK (2 == sizeof (rmpf2)); + CHECK (3 == sizeof (rmpf3)); cout << showSizeof((size_t)42, "theUniverse") << endl; cout << showSizeof<char>("just a char") << endl; @@ -116,7 +116,7 @@ namespace test{ checkGarbageStr() { string garN = randStr(0); - ASSERT (0 == garN.size()); + CHECK (0 == garN.size()); typedef function<bool(string::value_type)> ChPredicate; ChPredicate is_OK (is_lower() || is_digit()); diff --git a/tests/lib/test/testoptiontest.cpp b/tests/lib/test/testoptiontest.cpp index 31dde772d..2fd3761d4 100644 --- a/tests/lib/test/testoptiontest.cpp +++ b/tests/lib/test/testoptiontest.cpp @@ -1,23 +1,23 @@ /* TestOption(Test) - parsing of cmd line options for running Testcases - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/lib/testdummy.hpp b/tests/lib/testdummy.hpp index afa810f79..76dcac652 100644 --- a/tests/lib/testdummy.hpp +++ b/tests/lib/testdummy.hpp @@ -1,28 +1,29 @@ /* TESTDUMMY.hpp - yet another test dummy for tracking ctor/dtor calls - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ #include <boost/noncopyable.hpp> +#include <algorithm> namespace lib { @@ -63,6 +64,12 @@ namespace test{ val_ = newVal; } + friend void + swap (Dummy& dum1, Dummy& dum2) ///< checksum neutral + { + std::swap(dum1.val_, dum2.val_); + } + private: void init() diff --git a/tests/lib/teststreamtypes.hpp b/tests/lib/teststreamtypes.hpp index 22947b50a..fda471b74 100644 --- a/tests/lib/teststreamtypes.hpp +++ b/tests/lib/teststreamtypes.hpp @@ -1,23 +1,23 @@ /* TESTSTREAMTYPES.hpp - create test (stub) stream type information - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/tests/lib/testtargetobj.hpp b/tests/lib/testtargetobj.hpp index c3b1e77ef..01313a891 100644 --- a/tests/lib/testtargetobj.hpp +++ b/tests/lib/testtargetobj.hpp @@ -1,23 +1,23 @@ /* TESTTARGETOBJ.hpp - a test (stub) target object for testing the factories - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + */ diff --git a/tests/lib/thread-wrapper-join-test.cpp b/tests/lib/thread-wrapper-join-test.cpp index 0c207f930..30b655cdd 100644 --- a/tests/lib/thread-wrapper-join-test.cpp +++ b/tests/lib/thread-wrapper-join-test.cpp @@ -1,23 +1,23 @@ /* ThreadWrapperJoin(Test) - wait blocking on termination of a thread - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -126,7 +126,7 @@ namespace test { , bind (&ThreadWrapperJoin_test::theAction, this, DESTRUCTION_CODE) ); - ASSERT (!thread2.join().isValid() ); // can check success without throwing + CHECK (!thread2.join().isValid() ); // can check success without throwing } }; diff --git a/tests/lib/thread-wrapper-test.cpp b/tests/lib/thread-wrapper-test.cpp index 9049fc45c..42d3a2b0e 100644 --- a/tests/lib/thread-wrapper-test.cpp +++ b/tests/lib/thread-wrapper-test.cpp @@ -1,23 +1,23 @@ /* ThreadWrapper(Test) - starting threads and passing context - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -130,7 +130,7 @@ namespace backend { usleep (200000); // pause 200ms for the threads to terminate..... - ASSERT (checksum.verify()); + CHECK (checksum.verify()); } }; diff --git a/tests/lib/time-wrapper-test.cpp b/tests/lib/time-wrapper-test.cpp index cec91bd79..1cd388cbe 100644 --- a/tests/lib/time-wrapper-test.cpp +++ b/tests/lib/time-wrapper-test.cpp @@ -1,23 +1,23 @@ /* TimeWrapper(Test) - working with gavl_time_t values in C++... - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -74,10 +74,10 @@ namespace test { val += Time(2); val *= 2; - ASSERT (zero == (val - 2*(ref + Time(2))) ); + CHECK (zero == (val - 2*(ref + Time(2))) ); val = ref; - ASSERT (zero == (val - ref)); + CHECK (zero == (val - ref)); } @@ -88,40 +88,40 @@ namespace test { Time max (Time::MAX); Time min (Time::MIN); - ASSERT (zero == Time(0)); - ASSERT (min < zero); - ASSERT (max > zero); + CHECK (zero == Time(0)); + CHECK (min < zero); + CHECK (max > zero); Time val (ref); - ASSERT ( (val == ref) ); - ASSERT (!(val != ref) ); - ASSERT ( (val >= ref) ); - ASSERT ( (val <= ref) ); - ASSERT (!(val < ref) ); - ASSERT (!(val > ref) ); + CHECK ( (val == ref) ); + CHECK (!(val != ref) ); + CHECK ( (val >= ref) ); + CHECK ( (val <= ref) ); + CHECK (!(val < ref) ); + CHECK (!(val > ref) ); val += Time(2); - ASSERT (!(val == ref) ); - ASSERT ( (val != ref) ); - ASSERT ( (val >= ref) ); - ASSERT (!(val <= ref) ); - ASSERT (!(val < ref) ); - ASSERT ( (val > ref) ); + CHECK (!(val == ref) ); + CHECK ( (val != ref) ); + CHECK ( (val >= ref) ); + CHECK (!(val <= ref) ); + CHECK (!(val < ref) ); + CHECK ( (val > ref) ); gavl_time_t gat(val); - ASSERT (!(gat == ref) ); - ASSERT ( (gat != ref) ); - ASSERT ( (gat >= ref) ); - ASSERT (!(gat <= ref) ); - ASSERT (!(gat < ref) ); - ASSERT ( (gat > ref) ); + CHECK (!(gat == ref) ); + CHECK ( (gat != ref) ); + CHECK ( (gat >= ref) ); + CHECK (!(gat <= ref) ); + CHECK (!(gat < ref) ); + CHECK ( (gat > ref) ); - ASSERT ( (val == gat) ); - ASSERT (!(val != gat) ); - ASSERT ( (val >= gat) ); - ASSERT ( (val <= gat) ); - ASSERT (!(val < gat) ); - ASSERT (!(val > gat) ); + CHECK ( (val == gat) ); + CHECK (!(val != gat) ); + CHECK ( (val >= gat) ); + CHECK ( (val <= gat) ); + CHECK (!(val < gat) ); + CHECK (!(val > gat) ); } @@ -134,32 +134,32 @@ namespace test { int hours = rand() % 100; Time time(millis,secs,mins,hours); - ASSERT (millis == time.getMillis()); - ASSERT (secs == time.getSecs()); - ASSERT (mins == time.getMins()); - ASSERT (hours == time.getHours()); + CHECK (millis == time.getMillis()); + CHECK (secs == time.getSecs()); + CHECK (mins == time.getMins()); + CHECK (hours == time.getHours()); cout << time << endl; Time t2(2008,0); cout << t2 << endl; - ASSERT ( 8 == t2.getMillis()); - ASSERT ( 2 == t2.getSecs()); - ASSERT ( 0 == t2.getMins()); - ASSERT ( 0 == t2.getHours()); + CHECK ( 8 == t2.getMillis()); + CHECK ( 2 == t2.getSecs()); + CHECK ( 0 == t2.getMins()); + CHECK ( 0 == t2.getHours()); Time t3(2008,88); cout << t3 << endl; - ASSERT ( 8 == t3.getMillis()); - ASSERT (30 == t3.getSecs()); - ASSERT ( 1 == t3.getMins()); - ASSERT ( 0 == t3.getHours()); + CHECK ( 8 == t3.getMillis()); + CHECK (30 == t3.getSecs()); + CHECK ( 1 == t3.getMins()); + CHECK ( 0 == t3.getHours()); Time t4(2008,118,58); cout << t4 << endl; - ASSERT ( 8 == t4.getMillis()); - ASSERT ( 0 == t4.getSecs()); - ASSERT ( 0 == t4.getMins()); - ASSERT ( 1 == t4.getHours()); + CHECK ( 8 == t4.getMillis()); + CHECK ( 0 == t4.getSecs()); + CHECK ( 0 == t4.getMins()); + CHECK ( 1 == t4.getHours()); } }; diff --git a/tests/lib/typed-allocation-manager-test.cpp b/tests/lib/typed-allocation-manager-test.cpp index 10e32b9b7..bd1b2261f 100644 --- a/tests/lib/typed-allocation-manager-test.cpp +++ b/tests/lib/typed-allocation-manager-test.cpp @@ -1,23 +1,23 @@ /* TypedAllocationManager(Test) - check interface to pooled allocations - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -78,7 +78,7 @@ namespace test{ * * @see CommandRegistry * @see command-registry-test.cpp - * @see allocationclustertest.cpp + * @see allocation-cluster-test.cpp */ class TypedAllocationManager_test : public Test { @@ -86,49 +86,49 @@ namespace test{ virtual void run (Arg) { - REQUIRE (0 == checksum_); + CHECK (0 == checksum_); TypedAllocationManager allocator; typedef shared_ptr<DummyObj<1> > PD1; typedef shared_ptr<DummyObj<22> > PD22; - ASSERT (sizeof(DummyObj<1>) != sizeof(DummyObj<22>)); + CHECK (sizeof(DummyObj<1>) != sizeof(DummyObj<22>)); { PD1 pD11 = allocator.create<DummyObj<1> >(); PD1 pD12 = allocator.create<DummyObj<1> >(); PD22 pD21 = allocator.create<DummyObj<22> >(); PD22 pD22 = allocator.create<DummyObj<22> >(); - ASSERT (pD11); - ASSERT (pD12); - ASSERT (pD21); - ASSERT (pD22); - ASSERT (1 == pD11.use_count()); - ASSERT (1 == pD12.use_count()); - ASSERT (1 == pD21.use_count()); - ASSERT (1 == pD22.use_count()); - ASSERT (!isSameObject (*pD11, *pD12)); - ASSERT (!isSameObject (*pD11, *pD21)); - ASSERT (!isSameObject (*pD11, *pD22)); - ASSERT (!isSameObject (*pD12, *pD21)); - ASSERT (!isSameObject (*pD12, *pD22)); - ASSERT (!isSameObject (*pD21, *pD22)); + CHECK (pD11); + CHECK (pD12); + CHECK (pD21); + CHECK (pD22); + CHECK (1 == pD11.use_count()); + CHECK (1 == pD12.use_count()); + CHECK (1 == pD21.use_count()); + CHECK (1 == pD22.use_count()); + CHECK (!isSameObject (*pD11, *pD12)); + CHECK (!isSameObject (*pD11, *pD21)); + CHECK (!isSameObject (*pD11, *pD22)); + CHECK (!isSameObject (*pD12, *pD21)); + CHECK (!isSameObject (*pD12, *pD22)); + CHECK (!isSameObject (*pD21, *pD22)); PD22 pD2x = pD21; - ASSERT (pD2x); - ASSERT (2 == pD21.use_count()); - ASSERT (2 == pD2x.use_count()); - ASSERT (isSameObject (*pD21, *pD2x)); + CHECK (pD2x); + CHECK (2 == pD21.use_count()); + CHECK (2 == pD2x.use_count()); + CHECK (isSameObject (*pD21, *pD2x)); - ASSERT (2 == allocator.numSlots<DummyObj<1> >()); - ASSERT (2 == allocator.numSlots<DummyObj<22> >()); + CHECK (2 == allocator.numSlots<DummyObj<1> >()); + CHECK (2 == allocator.numSlots<DummyObj<22> >()); - ASSERT (0 == allocator.numSlots<long>()); // query just some unrelated type... + CHECK (0 == allocator.numSlots<long>()); // query just some unrelated type... } - ASSERT (0 == allocator.numSlots<DummyObj<1> >()); - ASSERT (0 == allocator.numSlots<DummyObj<22> >()); - ASSERT (0 == checksum_); + CHECK (0 == allocator.numSlots<DummyObj<1> >()); + CHECK (0 == allocator.numSlots<DummyObj<22> >()); + CHECK (0 == checksum_); } }; diff --git a/tests/lib/typed-counter-test.cpp b/tests/lib/typed-counter-test.cpp index 576bce3c3..b012c1f5e 100644 --- a/tests/lib/typed-counter-test.cpp +++ b/tests/lib/typed-counter-test.cpp @@ -1,23 +1,23 @@ /* TypedCounter(Test) - managing a set of type based contexts - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -321,26 +321,26 @@ namespace test{ simpleUsageTest () { TypedCounter myCounter; - ASSERT (isnil (myCounter)); - ASSERT (0==myCounter.size()); + CHECK (isnil (myCounter)); + CHECK (0==myCounter.size()); - ASSERT (0 == myCounter.get<short>()); - ASSERT (1 == myCounter.size()); + CHECK (0 == myCounter.get<short>()); + CHECK (1 == myCounter.size()); - ASSERT (0 == myCounter.get<long>()); - ASSERT (2 == myCounter.size()); + CHECK (0 == myCounter.get<long>()); + CHECK (2 == myCounter.size()); - ASSERT (-1 == myCounter.dec<short>()); - ASSERT (-2 == myCounter.dec<short>()); - ASSERT (+1 == myCounter.inc<long>()); + CHECK (-1 == myCounter.dec<short>()); + CHECK (-2 == myCounter.dec<short>()); + CHECK (+1 == myCounter.inc<long>()); - ASSERT (-2 == myCounter.get<short>()); - ASSERT (+1 == myCounter.get<long>()); + CHECK (-2 == myCounter.get<short>()); + CHECK (+1 == myCounter.get<long>()); - ASSERT (1 == TypedContext<TypedCounter>::ID<short>::get()); - ASSERT (2 == TypedContext<TypedCounter>::ID<long>::get()); - ASSERT (2 == myCounter.size()); + CHECK (1 == TypedContext<TypedCounter>::ID<short>::get()); + CHECK (2 == TypedContext<TypedCounter>::ID<long>::get()); + CHECK (2 == myCounter.size()); } @@ -360,7 +360,7 @@ namespace test{ testFamilies.clear(); // blocks until all threads have terminated for_each (targetCollection, accountInternal); - ASSERT (sum_TypedCounter_ == sum_internal_); + CHECK (sum_TypedCounter_ == sum_internal_); } }; diff --git a/tests/lib/util-foreach-test.cpp b/tests/lib/util-foreach-test.cpp index 44ed644fd..e9eb3f54c 100644 --- a/tests/lib/util-foreach-test.cpp +++ b/tests/lib/util-foreach-test.cpp @@ -1,23 +1,23 @@ /* UtilForeach(Test) - helpers for doing something for each element - + Copyright (C) Lumiera.org 2009, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -150,13 +150,13 @@ namespace test { check_existence_quant (container); check_existence_quant (iterator); - ASSERT (int(NUM_ELMS) ==container[0]); + CHECK (int(NUM_ELMS) ==container[0]); check_ref_argument_bind (container); - ASSERT (int(NUM_ELMS) ==container[0]); + CHECK (int(NUM_ELMS) ==container[0]); check_ref_argument_bind (iterator); - ASSERT (60+int(NUM_ELMS) ==container[0]); + CHECK (60+int(NUM_ELMS) ==container[0]); // changes got propagated through the iterator check_wrapped_container_passing(container); @@ -354,10 +354,10 @@ namespace test { for_each (coll, var(sum) += _1_ ); - ASSERT (sum == (NUM_ELMS+1) * NUM_ELMS/2); + CHECK (sum == (NUM_ELMS+1) * NUM_ELMS/2); - ASSERT (!and_all (coll, _1_ - 1 )); - ASSERT ( has_any (coll, _1_ + 1 )); + CHECK (!and_all (coll, _1_ - 1 )); + CHECK ( has_any (coll, _1_ + 1 )); } @@ -369,12 +369,12 @@ namespace test { { ANNOUNCE (check_existence_quant); - ASSERT ( and_all (coll, 0 < _1_ )); - ASSERT (!and_all (coll, 1 < _1_ )); + CHECK ( and_all (coll, 0 < _1_ )); + CHECK (!and_all (coll, 1 < _1_ )); - ASSERT ( has_any (coll, 0 < _1_ )); - ASSERT ( has_any (coll, _1_ >= NUM_ELMS )); - ASSERT (!has_any (coll, _1_ > NUM_ELMS )); + CHECK ( has_any (coll, 0 < _1_ )); + CHECK ( has_any (coll, _1_ >= NUM_ELMS )); + CHECK (!has_any (coll, _1_ > NUM_ELMS )); } @@ -443,7 +443,7 @@ namespace test { SHOW_CONTAINER // indeed got modifications into the original container! - ASSERT (0 == counter); + CHECK (0 == counter); // passing anonymous temporary for_each (buildTestNumberz(NUM_ELMS), _1_ = var(counter)-- ); @@ -455,8 +455,8 @@ namespace test { // both didn't influence the original container SHOW_CONTAINER - ASSERT (-2*int(NUM_ELMS) == counter); - ASSERT (bySmartPtr->back() == counter+1); + CHECK (-2*int(NUM_ELMS) == counter); + CHECK (bySmartPtr->back() == counter+1); // passing by pointer is also possible const VecI * const passByConstPointer (&coll); diff --git a/tests/lib/vector-transfer-test.cpp b/tests/lib/vector-transfer-test.cpp new file mode 100644 index 000000000..98f8f4021 --- /dev/null +++ b/tests/lib/vector-transfer-test.cpp @@ -0,0 +1,161 @@ +/* + VectorTransfer(Test) - intercept object copying when a STL vector grows + + Copyright (C) Lumiera.org + 2008, Hermann Vosseler <Ichthyostega@web.de> + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +* *****************************************************/ + + + +#include "lib/test/run.hpp" + +#include "lib/scoped-holder-transfer.hpp" +#include "testdummy.hpp" + +#include <iostream> +#include <vector> + + +namespace lib { +namespace test { + + using ::Test; + using std::vector; + using std::cout; + + namespace { // extending the Dummy for our special purpose.... + + class TransDummy + : public Dummy + { + public: + TransDummy() + { + TRACE (test, "CTOR TransDummy() --> this=%p", this); + setVal(0); // we use val_==0 to mark the "empty" state + } + + ~TransDummy() + { + TRACE (test, "DTOR ~TransDummy() this=%p", this); + } + + /* to make Dummy usable within vector, we need to provide + * \em special copy operations, an operator bool() and + * a transfer_control friend function to be used by + * our special allocator. + */ + + TransDummy (const TransDummy& o) + : Dummy() + { + TRACE (test, "COPY-ctor TransDummy( ref=%p ) --> this=%p", &o,this); + CHECK (!o, "protocol violation: real copy operations inhibited"); + } + + TransDummy& + operator= (TransDummy const& ref) + { + TRACE (test, "COPY target=%p <-- source=%p", this,&ref); + CHECK (!(*this)); + CHECK (!ref, "protocol violation: real copy operations inhibited"); + return *this; + } + + void + setup (int x=0) + { + setVal (x? x : (rand() % 10000)); + TRACE (test, "CREATE val=%d ---> this=%p", getVal(),this); + } + + + // define implicit conversion to "bool" the naive way... + operator bool() const + { + return 0!=getVal(); + } + + + friend void transfer_control (TransDummy& from, TransDummy& to); + + }; + + + + void + transfer_control (TransDummy& from, TransDummy& to) + { + TRACE (test, "TRANSFER target=%p <-- source=%p", &to,&from); + CHECK (!to, "protocol violation: target already manages another object"); + to.setVal (from.getVal()); + from.setVal(0); + } + + typedef Allocator_TransferNoncopyable<TransDummy> Allo; + typedef vector<TransDummy, Allo> TransDummyVector; + } + + + + + /********************************************************************************** + * @test growing (re-allocating) a vector with noncopyable objects, with the + * help of a special Allocator and a custom \c transfer_control operation + * provided by the contained objects. The idea is to allow some special + * copy-operations for the purpose of re-allocations within the vector, + * without requiring the object to be really copyable. + */ + class VectorTransfer_test : public Test + { + + virtual void + run (Arg) + { + cout << "\n..setup table space for 2 elements\n"; + TransDummyVector table; + table.reserve(2); + CHECK (0==checksum); + + cout << "\n..install one element at index[0]\n"; + table.push_back(TransDummy()); + CHECK (0==checksum); + + table[0].setup(); // switches into "managed" state + CHECK (0 < checksum); + int theSum = checksum; + + cout << "\n..*** resize table to 5 elements\n"; + table.resize(5); + CHECK (theSum==checksum); + + cout << "\n..install another element\n"; + table[3].setup(375); + CHECK (theSum+375==checksum); + + cout << "\n..kill all elements....\n"; + table.clear(); + CHECK (0==checksum); + } + + }; + + LAUNCHER (VectorTransfer_test, "unit common"); + + +}} // namespace lib::test diff --git a/tests/lib/vectortransfertest.cpp b/tests/lib/vectortransfertest.cpp deleted file mode 100644 index f165f2ece..000000000 --- a/tests/lib/vectortransfertest.cpp +++ /dev/null @@ -1,163 +0,0 @@ -/* - VectorTransfer(Test) - intercept object copying when a STL vector grows - - Copyright (C) Lumiera.org - 2008, Hermann Vosseler <Ichthyostega@web.de> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -* *****************************************************/ - - - -#include "lib/test/run.hpp" - -#include "lib/scopedholdertransfer.hpp" -#include "testdummy.hpp" - -#include <iostream> -#include <vector> - - -namespace lib { - namespace test { - - using ::Test; - using std::vector; - using std::cout; - - namespace { // extending the Dummy for our special purpose.... - - class TransDummy - : public Dummy - { - public: - TransDummy() - { - TRACE (test, "CTOR TransDummy() --> this=%p", this); - setVal(0); // we use val_==0 to mark the "empty" state - } - - ~TransDummy() - { - TRACE (test, "DTOR ~TransDummy() this=%p", this); - } - - /* to make Dummy usable within vector, we need to provide - * \em special copy operations, an operator bool() and - * a transfer_control friend function to be used by - * our special allocator. - */ - - TransDummy (const TransDummy& o) - : Dummy() - { - TRACE (test, "COPY-ctor TransDummy( ref=%p ) --> this=%p", &o,this); - ASSERT (!o, "protocol violation: real copy operations inhibited"); - } - - TransDummy& - operator= (TransDummy const& ref) - { - TRACE (test, "COPY target=%p <-- source=%p", this,&ref); - ASSERT (!(*this)); - ASSERT (!ref, "protocol violation: real copy operations inhibited"); - return *this; - } - - void - setup (int x=0) - { - setVal (x? x : (rand() % 10000)); - TRACE (test, "CREATE val=%d ---> this=%p", getVal(),this); - } - - - // define implicit conversion to "bool" the naive way... - operator bool() const - { - return 0!=getVal(); - } - - - friend void transfer_control (TransDummy& from, TransDummy& to); - - }; - - - void - transfer_control (TransDummy& from, TransDummy& to) - { - TRACE (test, "TRANSFER target=%p <-- source=%p", &to,&from); - ASSERT (!to, "protocol violation: target already manages another object"); - to.setVal (from.getVal()); - from.setVal(0); - } - - typedef Allocator_TransferNoncopyable<TransDummy> Allo; - typedef vector<TransDummy, Allo> TransDummyVector; - } - - - - - /********************************************************************************** - * @test growing (re-allocating) a vector with noncopyable objects, with the - * help of a special Allocator and a custom \c transfer_control operation - * provided by the contained objects. The idea is to allow some special - * copy-operations for the purpose of re-allocations within the vector, - * without requiring the object to be really copyable. - */ - class VectorTransfer_test : public Test - { - - virtual void - run (Arg) - { - cout << "\n..setup table space for 2 elements\n"; - TransDummyVector table; - table.reserve(2); - ASSERT (0==checksum); - - cout << "\n..install one element at index[0]\n"; - table.push_back(TransDummy()); - ASSERT (0==checksum); - - table[0].setup(); // switches into "managed" state - ASSERT (0 < checksum); - int theSum = checksum; - - cout << "\n..*** resize table to 5 elements\n"; - table.resize(5); - ASSERT (theSum==checksum); - - cout << "\n..install another element\n"; - table[3].setup(375); - ASSERT (theSum+375==checksum); - - cout << "\n..kill all elements....\n"; - table.clear(); - ASSERT (0==checksum); - } - - }; - - LAUNCHER (VectorTransfer_test, "unit common"); - - - }// namespace test - -} // namespace lib - diff --git a/tests/lib/visitingtoolconcept.cpp b/tests/lib/visitingtoolconcept.cpp index 21effbf41..676672d7d 100644 --- a/tests/lib/visitingtoolconcept.cpp +++ b/tests/lib/visitingtoolconcept.cpp @@ -1,23 +1,23 @@ /* VisitingTool(Concept) - working out our own Visitor library implementation - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ @@ -175,7 +175,7 @@ namespace lumiera callTrampoline (TAR& obj, TOOL& tool) { // cast down to real implementation type - REQUIRE (INSTANCEOF (TOOLImpl, &tool)); + CHECK (INSTANCEOF (TOOLImpl, &tool)); TOOLImpl& toolObj = static_cast<TOOLImpl&> (tool); // trigger (compile time) overload resolution diff --git a/tests/lib/visitingtoolextendedtest.cpp b/tests/lib/visitingtoolextendedtest.cpp index 3038e9471..8021f0241 100644 --- a/tests/lib/visitingtoolextendedtest.cpp +++ b/tests/lib/visitingtoolextendedtest.cpp @@ -1,23 +1,23 @@ /* VisitingToolExtended(Test) - check obscure corner cases of visitor lib implementation - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/lib/visitingtooltest.cpp b/tests/lib/visitingtooltest.cpp index e27d8b00c..80a8eee5a 100644 --- a/tests/lib/visitingtooltest.cpp +++ b/tests/lib/visitingtooltest.cpp @@ -1,23 +1,23 @@ /* VisitingTool(Test) - check the standard visitor use case - + Copyright (C) Lumiera.org 2008, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/library/test-error.c b/tests/library/test-error.c index 0a2d418a4..40e907f8d 100644 --- a/tests/library/test-error.c +++ b/tests/library/test-error.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/tests/library/test-llist.c b/tests/library/test-llist.c index 144b77412..305ba8d97 100644 --- a/tests/library/test-llist.c +++ b/tests/library/test-llist.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -199,7 +199,7 @@ TEST (relocate) target = source; llist_relocate (&target); - ENSURE (llist_is_head (&target, &something)); + CHECK (llist_is_head (&target, &something)); } diff --git a/tests/library/test-locking.c b/tests/library/test-locking.c index a59a6d920..8a8ad8f61 100644 --- a/tests/library/test-locking.c +++ b/tests/library/test-locking.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/tests/library/test-luid.c b/tests/library/test-luid.c index 72aeb3bca..e04e3f584 100644 --- a/tests/library/test-luid.c +++ b/tests/library/test-luid.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/tests/library/test-mpool.c b/tests/library/test-mpool.c index 18c770b2c..fdd4dba22 100644 --- a/tests/library/test-mpool.c +++ b/tests/library/test-mpool.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/tests/library/test-psplay.c b/tests/library/test-psplay.c index 06659679d..2eb738c9f 100644 --- a/tests/library/test-psplay.c +++ b/tests/library/test-psplay.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -241,22 +241,22 @@ TEST ("insert_find") //TestItem f = (TestItem) psplay_find (&splay_tree, "baz", 100); TestItem f = (TestItem) psplay_find (&splay_tree, "baz", 100); - ENSURE (f); + CHECK (f); printf ("found %p (%.4s)\n", &f->node, f->key); psplay_dump (&splay_tree, stdout); f = (TestItem) psplay_find (&splay_tree, "test", 100); - ENSURE (f); + CHECK (f); printf ("found %p (%.4s)\n", &f->node, f->key); psplay_dump (&splay_tree, stdout); f = (TestItem) psplay_find (&splay_tree, "test", 100); - ENSURE (f); + CHECK (f); printf ("found %p (%.4s)\n", &f->node, f->key); psplay_dump (&splay_tree, stdout); f = (TestItem) psplay_find (&splay_tree, "foo", 100); - ENSURE (f); + CHECK (f); printf ("found %p (%.4s)\n", &f->node, f->key); psplay_dump (&splay_tree, stdout); diff --git a/tests/library/test-safeclib.c b/tests/library/test-safeclib.c index a14a73c33..cbff85479 100644 --- a/tests/library/test-safeclib.c +++ b/tests/library/test-safeclib.c @@ -4,8 +4,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -37,7 +37,7 @@ TEST (allocation1024) for (int i = 0; i < 1024; ++i) { data[i] = lumiera_malloc (1024); - ENSURE (data[i]); + CHECK (data[i]); } for (int i = 0; i < 1024; ++i) { diff --git a/tests/library/test-time.c b/tests/library/test-time.c new file mode 100644 index 000000000..4ce8b63bb --- /dev/null +++ b/tests/library/test-time.c @@ -0,0 +1,63 @@ +/* + * test-time.c - test the time conversion lib + * + * Copyright (C) Lumiera.org + * 2010 Stefan Kangas <skangas@skangas.se> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +typedef unsigned int uint; + +#include "lib/time.h" +#include "tests/test.h" + +#include <nobug.h> + +TESTS_BEGIN + +const int MILLIS = 700; +const int SECONDS = 20; +const int MINUTES = 55; +const int HOURS = 3; + +/* + * 1. Basic functionality + */ + +TEST (basic) { + // Zero + gavl_time_t t = lumiera_build_time(0,0,0,0); + + CHECK ((gavl_time_t) t == 0); + CHECK (lumiera_time_millis(t) == 0); + CHECK (lumiera_time_seconds(t) == 0); + CHECK (lumiera_time_minutes(t) == 0); + CHECK (lumiera_time_hours(t) == 0); + + ECHO ("%s", lumiera_tmpbuf_print_time(t)); + + // Non-zero + t = lumiera_build_time(MILLIS, SECONDS, MINUTES, HOURS); + + CHECK (lumiera_time_millis(t) == MILLIS); + CHECK (lumiera_time_seconds(t) == SECONDS); + CHECK (lumiera_time_minutes(t) == MINUTES); + CHECK (lumiera_time_hours(t) == HOURS); + + ECHO ("%s", lumiera_tmpbuf_print_time(t)); +} + +TESTS_END diff --git a/tests/plugin/examplepluginc/example_plugin.c b/tests/plugin/examplepluginc/example_plugin.c index 60992745d..9751413b0 100644 --- a/tests/plugin/examplepluginc/example_plugin.c +++ b/tests/plugin/examplepluginc/example_plugin.c @@ -1,23 +1,23 @@ /* example_plugin - example plugin for testing the interface/plugin system - + Copyright (C) Lumiera.org 2008, Christian Thaeter <ct@pipapo.org> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/plugin/test-cpp-plugin/example_plugin.cpp b/tests/plugin/test-cpp-plugin/example_plugin.cpp index b99d951d3..a41473f51 100644 --- a/tests/plugin/test-cpp-plugin/example_plugin.cpp +++ b/tests/plugin/test-cpp-plugin/example_plugin.cpp @@ -1,24 +1,24 @@ /* example_plugin.cpp - example plugin (C++) for testing the interface/plugin system - + Copyright (C) Lumiera.org 2008, Christian Thaeter <ct@pipapo.org>, Hermann Vosseler <Ichthyostega@web.de> - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - + * *****************************************************/ diff --git a/tests/test.h b/tests/test.h index 19378d448..1fc00955c 100644 --- a/tests/test.h +++ b/tests/test.h @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/tests/tool/vgsuppression.c b/tests/tool/vgsuppression.c index ffc88298f..852cc3bc4 100644 --- a/tests/tool/vgsuppression.c +++ b/tests/tool/vgsuppression.c @@ -6,8 +6,8 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/uml/lumiera/128901 b/uml/lumiera/128901 index 5a7cdb03b..300f66d4c 100644 --- a/uml/lumiera/128901 +++ b/uml/lumiera/128901 @@ -1,6 +1,6 @@ format 58 "Builder" // ProcessingLayer::MObject::Builder - revision 20 + revision 21 modified_by 5 "hiv" // class settings //class diagram settings @@ -74,7 +74,7 @@ format 58 iterative activityaction 128773 "define segment" opaque_action - pin 128133 "inFixture" explicit_type "" + pin 128133 "inContent" explicit_type "" unordered in end @@ -107,11 +107,11 @@ format 58 end flow 130181 "<flow>" - on pin_ref 128133 // inFixture + on pin_ref 128133 // inContent end flow 131717 "<flow>" - on pin_ref 128133 // inFixture + on pin_ref 128133 // inContent end end @@ -168,6 +168,14 @@ format 58 activitynode 129157 activity_final "" end + + activityobject 129157 "Timeline contents" + explicit_type "" + unordered + flow 133125 "<flow>" + on pin_ref 128133 // inContent + end + end end classdiagram 129285 "Builder Tool (Visitor)" diff --git a/uml/lumiera/129413.diagram b/uml/lumiera/129413.diagram index c8fd505f1..655fa1d29 100644 --- a/uml/lumiera/129413.diagram +++ b/uml/lumiera/129413.diagram @@ -2,76 +2,72 @@ format 58 activitycanvas 130437 activity_ref 128005 // building the Engine show_infonote default drawing_language default show_stereotype_properties default - xyzwh 147 27 2000 581 532 + xyzwh 120 26 2000 468 525 params parametercanvas 130565 parameter_ref 128645 // build Request - xyzwh 541 12 2002 113 31 + xyzwh 401 11 2002 113 31 end end end activityactioncanvas 130693 activityaction_ref 128645 // activity action configure Tools show_infonote default drawing_language default show_stereotype_properties default show_opaque_action_definition default - xyzwh 529 71 2005 136 41 + xyzwh 389 63 2005 136 41 end expansionregioncanvas 130821 expansionregion_ref 128133 // establish partitioning - xyzwh 359 208 2005 205 96 + xyzwh 219 200 2005 205 96 nodes expansionnodecanvas 131077 expansionnode_ref 128005 // segment Tool - xyzwh 458 203 2007 33 11 label_xy 456 183 + xyzwh 318 195 2007 33 11 label_xy 316 175 end expansionnodecanvas 132613 expansionnode_ref 128133 // segments - xyzwh 460 298 2007 33 11 label_xy 459 312 + xyzwh 320 290 2007 33 11 label_xy 319 304 end end end activityactioncanvas 130949 activityaction_ref 128773 // activity action define segment show_infonote default drawing_language default show_stereotype_properties default show_opaque_action_definition default - xyzwh 409 236 2010 135 42 + xyzwh 269 228 2010 135 42 pins - pincanvas 131205 pin_ref 128133 // inFixture - xyzwh 399 249 2012 11 11 label_xy 315 241 + pincanvas 131205 pin_ref 128133 // inContent + xyzwh 259 241 2012 11 11 label_xy 170 250 end end end -activityobjectcanvas 131333 activityobject_ref 128005 // activity object Fixture - show_infonote default drawing_language default show_stereotype_properties default - xyzwh 177 239 2005 49 31 -end activitynodecanvas 133509 activitynode_ref 129029 // fork - horizontal xyz 585 147 2005 + horizontal xyz 445 139 2005 end expansionregioncanvas 133893 expansionregion_ref 128261 // build Processors - xyzwh 359 349 2005 272 152 + xyzwh 219 341 2005 272 152 nodes expansionnodecanvas 134021 expansionnode_ref 128261 // build Tool - xyzwh 581 344 2007 33 11 label_xy 573 324 + xyzwh 441 336 2007 33 11 label_xy 433 316 end expansionnodecanvas 134149 expansionnode_ref 128389 // segments - xyzwh 460 344 2007 33 11 label_xy 460 359 + xyzwh 320 336 2007 33 11 label_xy 320 351 end expansionnodecanvas 136581 expansionnode_ref 128517 // complete Render Engine - xyzwh 460 495 2007 33 11 label_xy 496 500 + xyzwh 320 487 2007 33 11 label_xy 356 492 end end end activityactioncanvas 134277 activityaction_ref 128901 // activity action create ProcNode show_infonote default drawing_language default show_stereotype_properties default show_opaque_action_definition default - xyzwh 419 389 2010 114 42 + xyzwh 279 381 2010 114 42 end activityactioncanvas 134405 activityaction_ref 129029 // activity action connect show_infonote default drawing_language default show_stereotype_properties default show_opaque_action_definition default - xyzwh 420 442 2015 113 42 + xyzwh 280 434 2015 113 42 end activitynodecanvas 134533 activitynode_ref 129157 // activity_final - xyz 543 527 2005 + xyz 403 519 2005 end -simplerelationcanvas 131461 simplerelation_ref 128389 - from ref 131333 z 1999 to point 400 253 - line 131589 z 1999 to ref 130437 +activityobjectcanvas 137093 activityobject_ref 129157 // activity object Timeline contents + show_infonote default drawing_language default show_stereotype_properties default + xyzwh 147 157 2005 99 31 end flowcanvas 132101 flow_ref 130309 // <flow> @@ -92,8 +88,8 @@ end flowcanvas 133765 flow_ref 130949 // <flow> geometry VHV - from ref 133509 z 2004 to point 595 180 - line 134789 z 2004 to point 472 180 + from ref 133509 z 2004 to point 455 172 + line 134789 z 2004 to point 332 172 line 134917 z 2004 to ref 131077 show_infonote default drawing_language default show_stereotype_properties default write_horizontally default end @@ -105,7 +101,7 @@ end flowcanvas 135429 flow_ref 131205 // <flow> geometry HVr - from ref 134021 z 2006 to point 595 407 + from ref 134021 z 2006 to point 455 399 line 135557 z 2006 to ref 134277 show_infonote default drawing_language default show_stereotype_properties default write_horizontally default end @@ -119,11 +115,6 @@ flowcanvas 136197 flow_ref 131461 // <flow> from ref 134277 z 2009 to ref 134405 show_infonote default drawing_language default show_stereotype_properties default write_horizontally default end -flowcanvas 136453 flow_ref 131717 // <flow> - - from ref 131333 z 2004 to ref 131205 - show_infonote default drawing_language default show_stereotype_properties default write_horizontally default -end flowcanvas 136709 flow_ref 131845 // <flow> from ref 134405 z 2006 to ref 136581 @@ -131,9 +122,16 @@ flowcanvas 136709 flow_ref 131845 // <flow> end flowcanvas 136837 flow_ref 131973 // <flow> - from ref 136581 z 2004 to point 487 524 + from ref 136581 z 2004 to point 347 516 line 136965 z 2004 to ref 134533 show_infonote default drawing_language default show_stereotype_properties default write_horizontally default end -preferred_whz 768 616 1 +flowcanvas 137221 flow_ref 133125 // <flow> + geometry VH + + from ref 137093 z 2004 to point 194 244 + line 137349 z 2004 to ref 131205 + show_infonote default drawing_language default show_stereotype_properties default write_horizontally default +end +preferred_whz 627 621 1 end diff --git a/uml/lumiera/5.session b/uml/lumiera/5.session index 87b65616c..5e7b8f6a0 100644 --- a/uml/lumiera/5.session +++ b/uml/lumiera/5.session @@ -1,11 +1,13 @@ -window_sizes 1324 1020 270 1044 872 71 +window_sizes 1615 1020 270 1335 872 71 diagrams classdiagram_ref 136453 // Session backbone 631 352 100 4 0 0 - active objectdiagram_ref 138885 // ModelAssetRelations + objectdiagram_ref 138885 // ModelAssetRelations 730 488 100 4 0 0 classdiagram_ref 128133 // Session structure - 835 697 100 4 0 0 + 835 697 100 4 300 0 + active activitydiagram_ref 129413 // build flow + 627 621 100 4 0 0 end show_stereotypes selected @@ -31,7 +33,7 @@ open class_ref 152453 // PlacementRef classrelation_ref 178437 // <realization> class_ref 153733 // QueryFocusStack - classview_ref 128261 // Builder Workings + expansionregion_ref 128133 // establish partitioning usecaseview_ref 128261 // config examples classview_ref 128133 // Engine Workings class_ref 164485 // Request diff --git a/uml/lumiera/lumiera.prj b/uml/lumiera/lumiera.prj index 35bcc31a2..ae9d839be 100644 --- a/uml/lumiera/lumiera.prj +++ b/uml/lumiera/lumiera.prj @@ -1,6 +1,6 @@ format 58 "lumiera" - revision 64 + revision 65 modified_by 5 "hiv" cpp_root_dir "../../src/" diff --git a/wiki/draw/Fixture1.png b/wiki/draw/Fixture1.png new file mode 100644 index 000000000..d59421731 Binary files /dev/null and b/wiki/draw/Fixture1.png differ diff --git a/wiki/draw/SegmentationSteps1.png b/wiki/draw/SegmentationSteps1.png new file mode 100644 index 000000000..98933cfd0 Binary files /dev/null and b/wiki/draw/SegmentationSteps1.png differ diff --git a/wiki/renderengine.html b/wiki/renderengine.html index 2ab329a32..5837913f4 100644 --- a/wiki/renderengine.html +++ b/wiki/renderengine.html @@ -1077,6 +1077,26 @@ Please note the shortcomings and logical contradictions in the solution currentl * The current design rather places the implementation according to the roles of the involved entities, which causes some ping-pong on the implementation level. Especially the ScopeLocator singleton can be accessed multiple times. This is the usual clarity vs. performance tradeoff. Scope resolution is assumed rather to be //not performance critical.// </pre> </div> +<div title="BuildFixture" modifier="Ichthyostega" modified="201011290504" created="201011282003" tags="Builder spec operational" changecount="32"> +<pre>//Building the fixture is actually at the core of the [[builder's operation|Builder]]// +{{red{WIP as of 11/10}}} &rarr; see also the [[planning page|PlanningBuildFixture]] + +;Resolving the DAG[>img[Steps towards creating a Segmentation|draw/SegmentationSteps1.png]] +Because of the possibility of binding a Sequence multiple times, and maybe even nested as virtual clip, the [[high-level model|HighLevelModel]] actually constitutes a DAG, not a tree. This leds to quite some tricky problems, which we try to resolve by //rectifying the DAG into N virtual trees.// (&rarr; BindingScopeProblem) + +Relying on this transformation, each Timeline spans a sub-tree virtually separated from all other timelines; the BuildProcess is driven by [[visiting|VisitorUse]] all the //tangible// objects within this subtree. In the example shown to the right, Sequence-β is both bound as VirtualClip into Sequence-α, as well as bound independently as top-level sequence into Timeline-2. Thus it will be visited twice, but the QueryFocus mechanism ensures that each visitation »sees« the proper context. + +;Explicit Placements +Each tangible object placement (relevant for rendering), which is encountered during that visitation, gets //resolved// into an [[explicit placement|ExplicitPlacement]]. If we see [[Placement]] as a positioning within a multi dimensional configuration space, then the resolution into an explicit placement is like the creation of an ''orthogonal base'': Within the explicit placement, each LocatingPin corresponds exactly to one degree of freedom and can be considered independently from all other locating pins. This resolution step removes any fancy dynamic behaviour and all scoping and indirect references. Indeed, an explicit placement is a mere //value object;// it isn't part of the session core (PlacementIndex), isn't typed and can't be referred indirectly. + +;Segmentation of Time axis +This simple and explicit positioning thus allows to arrange all objects as time intervals on a single axis. Any change and especially any overlap is likely to create a different wiring configuration. Thus, for each such configuration change, we fork off a new //segment// and //copy over// all partially touched placements. The resulting seamless sequence of non-overlapping time intervals provides the backbone of the datastructure called [[Fixture]]. + +;Building the Network +From this backbone, the actual [[building mechanism|BuilderMechanics]] proceeds as a ongoing visitation and resolution, resulting in the gowth of a network of [[render nodes|ProcNode]] starting out from the source reading nodes and proceeding up through the local pipes, the transitions and the global pipes. When this build process is exhausted, besides the actual network, the result is a //residuum of nodes not connected any further.// Any of these [[exit nodes|ExitNode]] can be associated to a ~Pipe-ID in the high-level model. Within each segment, there should be one exit node per pipe-ID at max. These are the [[model ports|ModelPort]] resulting from the build process, keyed by their corresponding ~Pipe-ID. +&rarr; see [[Structure of the Fixture|Fixture]] +</pre> +</div> <div title="BuildProcess" modifier="Ichthyostega" modified="200906071813" created="200706190658" tags="Builder operational img" changecount="30"> <pre>All decisions on //how // the RenderProcess has to be carried out are concentrated in this rather complicated Builder Subsystem. The benefit of this approach is, besides decoupling of subsystems, to keep the actual performance-intensive video processing code as simple and transparent as possible. The price, in terms of increased complexity &mdash; to pay in the Builder &mdash; can be handled by making the Build Process generic to a large degree. Using a Design By Contract approach we can decompose the various decisions into small decision modules without having to trace the actual workings of the Build Process as a whole. @@ -1708,8 +1728,12 @@ To make the intended use of the classes more clear, consider the following two e <pre>a special ProcNode which is used to pull the finished output of one Render Pipeline (Tree or Graph). This term is already used in the Cinelerra2 codebase. I am unsure at the moment if it is a distinct subclass or rahter a specially configured ProcNode (a general design rule tells us to err in favour of the latter if in doubt). </pre> </div> -<div title="ExplicitPlacement" modifier="MichaelPloujnikov" modified="200706271458" created="200706220304" tags="def" changecount="2"> -<pre>A special kind (subclass) of [[Placement]]. As such it is always linked to a //Subject//, i.e. a MObject. In addition to the properties of a (unspecific) Placement, the ExplicitPlacement specifies a absolute time and track position for locating the Subject +<div title="ExplicitPlacement" modifier="Ichthyostega" modified="201012122052" created="200706220304" tags="def" changecount="6"> +<pre>A special kind (subclass) of [[Placement]]. As such it is always linked to a //Subject//, i.e. a MObject. But contrary to the (standard) placements, which may exhibit all kinds of fancy dynamic and scope dependent behaviour, within an explicit placement all properties are resolved and materialised. While the (standard) placement may contain an arbitrary list of LocatingPin objects, the resolution into an explicit placement performs a kind of »orthogonalisation«: each remaining LocatingPin defines exactly one degree of freedom independent of all others. Most notably, the explicit placement always specifies a absolute time and [[output designation|OutputDesignation]] for for locating the Subject. Explicit placements are ''immutable''. + +!!Implementation considerations +Explicit placements are just created and never mutated, but copying and storage might become a problem. +It would thus be desirable to have a fixed-sized allocation, able to hold the placement body as well as the (fixed) locating pins inline. </pre> </div> <div title="Factories" modifier="Ichthyostega" modified="201003160211" created="200708100401" tags="impl discuss excludeMissing rewrite" changecount="24"> @@ -1766,19 +1790,34 @@ Some further details * a special case of this factory use is the [[Singleton]] factory, which is used a lot within the Proy-Layer code </pre> </div> -<div title="Fixture" modifier="Ichthyostega" modified="201007160052" created="200706220324" tags="def" changecount="10"> -<pre>a specially configured sequence list +<div title="Fixture" modifier="Ichthyostega" modified="201012092320" created="200706220324" tags="def spec Builder Model" changecount="44"> +<pre>a specially configured view -- joining together high-level and low-level model * all MObjects have their position, length and configuration set up ready for rendering. * any nested sequences (or other kinds of indirections) have been resolved. -* every MObject is associated with an ExplicitPlacement, which declares a fixed position (Time, [[Pipe-ID|OutputDesignation]]) -* these ~ExplicitPlacements are contained in a ordered List, sometimes denoted as the //effective timeline.// -* besides, there is a collection of all effective, possibly externally visible [[model ports|ModelPort]] +* every MObject is attached by an ExplicitPlacement, which declares a fixed position (Time, [[Pipe|OutputDesignation]]) +* these ~ExplicitPlacements are contained immediately within the Fixture, ordered by time +* besides, there is a collection of all effective, possibly externally visible [[model ports|ModelPortRegistry]] -As the builder and thus render engine //only consults the fixture,// while all editing operations finally propagate to the fixture as well, we get an isolation layer between the high level part of the Proc layer (editing, object manipulation) and the render engine. Creating the Fixture can be seen as a preprocessing step to simplify the build process. For this reason, the process of [[(re)building the fixture|PlanningBuildFixture]] has been designed together with the [[Builder]] +As the builder and thus render engine //only consults the fixture,// while all editing operations finally propagate to the fixture as well, we get an isolation layer between the high level part of the Proc layer (editing, object manipulation) and the render engine. [[Creating the Fixture|BuildFixture]] is an important sideeffect of running the [[Builder]] when createing the [[render engine network|LowLevelModel]]. !{{red{WIP}}} Structure of the fixture -The fixture is like a grid, where one dimension is given by the [[model ports|ModelPort]], and the other dimension extends in time. The time axis is grouped in segments of constant structure. -A problem yet to be solved is how the fixture relates to the mulitude of top-level timelines, without generating a too fine grained segmentation. +[<img[Structure of the Fixture|draw/Fixture1.png]] + +The fixture is like a grid, where one dimension is given by the [[model ports|ModelPortRegistry]], and the other dimension extends in time. Within the time dimension there is a grouping into [[segments|Segmentation]] of constant structure. + +;Model Ports +:The model ports share a single uniform and global name space: actually they're keyed by ~Pipe-ID +:Model ports are derived as a result of the build process, as the //residuum// of all nodes not connected any further +:Each port belongs to a specific Timeline and is associated with the [[Segmentation]] of that timeline. + +;Segmentation +:The segmentation partitiones the time axis of a single timeline into segments of constant (wiring) configuration +:Together, the segments form a seamless sequence of time intervals. They contain a copy of each (explicit) placement of a visible object touching that time interval. Besides that, segments are the top level grouping device of the render engine node graph; they are always built and discarded at once. +:Segments may be //hot swapped// into an ongoing render. + +;Exit Nodes +:Each segment holds an ExitNode for each relevant ModelPort of the corresponding timeline. +:Thus the exit nodes are keyed by ~Pipe-ID as well (and consequently have a distinct [[stream type|StreamType]]) -- each model port coresponds to {{{<number_of_segments>}}} separate exit nodes, but of course an exit node may be //mute.// </pre> </div> <div title="ForwardIterator" modifier="Ichthyostega" modified="200912190027" created="200910312114" tags="Concepts def spec" changecount="17"> @@ -2784,12 +2823,41 @@ These are used as token for dealing with other objects and have no identity of t </pre> </div> -<div title="ModelPort" modifier="Ichthyostega" created="201011100234" tags="def" changecount="1"> -<pre>Any point where output possibly might be produced. Model port entities are located within the [[Fixture]] &mdash; model port as a concept spans the high-level and low-level view. A model port can be associated both to a pipe in the HighLevelModel and denote a specific ExitNode in the render nodes network. +<div title="ModelPort" modifier="Ichthyostega" modified="201012112233" created="201011100234" tags="def spec" changecount="8"> +<pre>Any point where output possibly might be produced. Model port entities are located within the [[Fixture]] &mdash; model port as a concept spans the high-level and low-level view. A model port can be associated both to a pipe in the HighLevelModel but at the same time denotes a set of corresponding [[exit nodes|ExitNode]] within the [[segments|Segmentation]] of the render nodes network. -A model port is rather derived than configured; it emerges when a pipe [[claims|WiringClaim]] an output desitnation and some other entity actually uses this designation as a target, either directly or indirecly. This match of provision and usage is detected during the build process and produces an entry in the fixture's model port table. These model ports in the fixture are keyed by ~Pipe-ID, thus each model port has an associated StreamType. +A model port is rather derived than configured; it emerges when a pipe [[claims|WiringClaim]] an output destination and some other entity actually uses this designation as a target, either directly or indirectly. This match of provision and usage is detected during the build process and produces an entry in the fixture's model port table. These model ports in the fixture are keyed by ~Pipe-ID, thus each model port has an associated StreamType. -Model ports are the effective, resulting ouputs of each timeline; additional ports result from [[connecting a viewer|ViewerPlayConnection]]. Any render or display process happens at a model port. +Model ports are the effective, resulting outputs of each timeline; additional ports result from [[connecting a viewer|ViewerPlayConnection]]. Any render or display process happens at a model port. + +!formal specification +Model port is a //conceptual entity,// denoting the possibility to pull generated data of a distinct (stream)type from a specific bus within the model -- any possible output produced or provided by Lumiera is bound to appear at a model port. The namespace of model ports is global, each being associated with a ~Pipe-ID. + +Model ports are represented by small non-copyable descriptor objects with distinct identity, which are owned and managed by the [[Fixture]]. Clients are bound to resolve a model port on each usage, as configuration changes within the model might cause ports to appear and decease. To stress this usage pattern, actually {{{ModelPort}}} instances are small copyable value objects (smart handles), which can be used to access data within an opaque registry. Each model port belongs to a specific Timeline and is aware of this association, as is the timeline, allowing to get the collection of all ports of a given timeline. Besides, within the Fixture each model port refers to a specific [[segmentation of the time axis|Segmentation]] (relevant for this special timeline actually). Thus, with the help of this segmentation, a model port can yield an ExitNode to pull frames for a given time. + +</pre> +</div> +<div title="ModelPortRegistry" modifier="Ichthyostega" modified="201012112230" created="201012030314" tags="Model impl" changecount="3"> +<pre>Model ports are conceptual entities, denoting the points where output might possibly be produced &rarr; see [[definition|ModelPort]]. +But there is an actual representation, a collection of small descriptor objects managed by the Fixture and organised within the model port table datastructure. Because model ports are discovered during the build process, we need the ability to (re)build this table dynamically, finally swapping in the modified configuration with a transactional switch. Only the builder is allowed to perform such mutations, while for client code model ports are immutable. + +!supported operations +* get the model port by ~Pipe-ID +* a collection of model ports per timeline +* sub-grouping by media kind, possibly even by StreamType +* possibility to enumerate model ports in distinct //order,// defined within the timeline +* with the additional possibility to filter by media kind or suitable stream type. +* a way to express the fact of //not having a model port.// + +!!!mutating and rebuilding +Model ports are added once and never changed. The corresponding timeline and pipe is known at setup time, but the overall number of model ports is determined only as a result of completing the build process. At that point, the newly built configuration is swapped in transactionally to become the current configuration. + +!Implementation considerations +The transactional switch creates a clear partitioning in the lifespan of the model port table. //Before// that point, entries are just added, but not accessed in any way. //After// that point, no further mutation occurs, but lookup is frequent and happens in a variety of different configurations and transient orderings. + +This observation leads to the idea of using //model port references// as frontend to provide all kinds of access, searching and reordering. These encapsulate the actual access by silently assuming reference to "the" global current model port configuration. This way the actual model port descriptors could be bulk allocated in a similar manner as the processing nodes and wiring descriptors. Access to stale model ports could be detected by the port references, allowing also for a {{{bool}}} checkable "has no port" information. + +A model port registry, maintained by the builder, is responsible for storing the discovered model ports within a model port table, which is then swapped in after completing the build process. The {{{builder::ModelPortRegistry}}} acts as management interface, while client code accesses just the {{{ModelPort}}} frontend. A link to the actual registry instance is hooked into that frontend when bringing up the builder subsystem. </pre> </div> <div title="ModelRootMO" modifier="Ichthyostega" modified="200912110245" created="200912080307" tags="def" changecount="5"> @@ -4611,6 +4679,44 @@ We need to detect attaching and detaching of * root &harr; [[Track]] </pre> </div> +<div title="Segmentation" modifier="Ichthyostega" modified="201012122202" created="201012121901" tags="def spec Builder" changecount="24"> +<pre>//Segmentation of timeline// denotes a data structure and a step in the BuildProcess. +When [[building the fixture|BuildFixture]], ~MObjects -- as handled by their Placements -- are grouped below each timeline using them; Placements are then to be resolved into [[explicit Placements|ExplicitPlacement]], resulting in a single well defined time interval for each object. This allows to cut this effective timeline into slices of constant wiring structure, which are represented through the ''Segmentation Datastructure'', a time axis with segments holding object placements and [[exit nodes|ExitNode]]. &nbsp;&rarr; see [[structure of the Fixture|Fixture]] +* for each Timeline we get a Segmentation +** which in turn is a list of non-overlapping segments +*** each holding +**** an ExplicitPlacement for each covered object +**** an ExitNode for each ModelPort of the corresponding timeline + +!Storage considerations +;(1) build process +:&rarr; a tree walk yields the placements per timeline, which then get //resolved// +:&rarr; after //sorting,// the segmentation can be established, thereby copying placements spanning multiple segments +:&rarr; only //after running the complete build process for each segment,// the list of model ports and exit nodes can be established +;(2) commit stage +: -- after the build process(es) are completed, the new fixture gets ''committed'', thus becoming the officially valid state to be rendered. As render processes might be going on in parallel, some kind of locking or barrier is required. It seems advisable to make the change into a single atomic hot-swap. Meaning we'd get a single access point to be protected. But there is another twist: We need to find out which render processes to cancel an restart, to pick up the changes introduced by this build process, which might include adding and deleting of timelines as a whole, and any changes to the segmentation grid. Because of the highly dynamic nature of the placements, on the other hand it isn't viable to expect the high-level model to provide this information. Thus we need to find out about a ''change coverage'' at this point. We might expand on that idea to //prune any new segments which aren't changed.// This way, only a write barrier would be necessary on switching the actually changed segments, and any render processes touching these would be //tainted.// Old allocations could be released after all tainted processes are known to be terminated. +;(3) rendering use +:Each play/render process employs a ''frame dispatch step'' to get the right exit node for pulling a given frame. From there on, the process proceeds into the [[processing nodes|ProcNodes]], interleaved with backend/scheduler actions due to splitting into individually scheduled jobs. The storage of these processing nodes and accompanying wiring descriptors is hooked up behind the individual segments, by sharing a common {{{AllocationCluster}}}. Yet the calculation of individual frames also depends on ''parameters'' and especially ''automation'' connected with objects in the high-level model. It is likely that there might be some sharing, as the intention was to allow ''live changes'' to automated values. <br/>{{red{WIP 12/2010}}} details need to be worked out. &rarr; [[parameter wiring concept|Wiring]] +!!!observations +* Storage and initialisation for explicit placements is an issue. We should strive at making that inline as much as possible. +* the overall segmentation emerges from a sorting of time points, which are start points of explicit placements +* after the segmentation has been built, the usage pattern changes entirely into a lookup of segment by time +* the individual segments act as umbrella for a lot of further objects hooked up behind. +* we need the ability to exchange or swap-in whole segments +* each segment controls an AllocationCluster +* we need to track processes for tainting +* access happens per ModelPort + +!!!conclusions +The Fixture is mostly comprised of the Segementation datastructure, but some other facilities are involved too +# at top level, we need somehow to organise access per groups of model ports, actually grouped by timeline +# during the build process, there is a collection of placements; this can be discarded afterwards +# the backbone of the segmentation is closely linked to an ordering by time. Initially it should support sorting, access by time interval search later on. +# discarding a segment (or failing to do so) has an high impact on the whole application. We should employ a reliable mechanism for that. +# the frame dispatch and the tracking of processes can be combined; data duplication is a virtue when it comes to parallel processes +# the process of comparing and tainting is broken out into a separate data structure to be used just once +</pre> +</div> <div title="Sequence" modifier="Ichthyostega" modified="201010180156" created="201001252327" tags="def" changecount="17"> <pre>A sequence is a collection of media objects, arranged onto a track tree. Sequences are the building blocks within the session. To be visible and editable, a session needs to be bound into a top-level [[Timeline]]. Alternatively, it may be used as a VirtualClip nested within another sequence.