static Application init, NoBug integration, started a basic Exception hierarchy.

This commit is contained in:
Fischlurch 2007-08-14 08:14:21 +02:00
parent 45c2167700
commit 358b9050e9
17 changed files with 876 additions and 20 deletions

1
.gitignore vendored
View file

@ -7,4 +7,5 @@
.sconsign.dblite
Buildhelper.pyc
optcache
.[^.]*

View file

@ -59,31 +59,46 @@ def setupBasicEnvironment():
, SRCDIR=SRCDIR
, BINDIR=BINDIR
, CPPPATH="#"+SRCDIR # used to find includes, "#" means always absolute to build-root
, CPPDEFINES=[] # flags will be appended to this list
)
appendCppDefine(env,'DEBUG','DEBUG')
handleNoBugSwitches(env)
appendCppDefine(env,'DEBUG','DEBUG', 'NDEBUG')
appendCppDefine(env,'OPENGL','USE_OPENGL')
appendCppDefine(env,'VERSION','VERSION')
appendVal(env,'ARCHFLAGS', 'CPPFLAGS') # for both C and C++
appendVal(env,'OPTIMIZE', 'CPPFLAGS', val=' -O3')
if env['BUILDLEVEL'] in ['ALPHA', 'BETA']:
env.Append(CPPFLAGS = ' -DEBUG_'+env['BUILDLEVEL'])
if env['BUILDLEVEL'] == 'RELEASE':
env.Append(CPPFLAGS = ' -DNDEBUG')
appendVal(env,'DEBUG', 'CPPFLAGS', val=' -g')
prepareOptionsHelp(opts,env)
opts.Save(OPTIONSCACHEFILE, env)
return env
def appendCppDefine(env,var,cppVar):
def appendCppDefine(env,var,cppVar, elseVal=''):
if env[var]:
env.Append(CPPDEFINES = {cppVar: env[var]})
env.Append(CPPDEFINES = cppVar )
elif elseVal:
env.Append(CPPDEFINES = elseVal)
def appendVal(env,var,targetVar,val=None):
if env[var]:
env.Append( **{targetVar: val or env[var]})
def handleNoBugSwitches(env):
""" set the build level for NoBug.
Release builds imply no DEBUG
"""
level = env['BUILDLEVEL']
if level in ['ALPHA', 'BETA']:
env.Replace( DEBUG = 1 )
env.Append(CPPDEFINES = 'EBUG_'+level)
elif level == 'RELEASE':
env.Replace( DEBUG = 0 )
def defineCmdlineOptions():
""" current options will be persisted in a options cache file.
@ -147,6 +162,11 @@ def configurePlatform(env):
print 'Did not find NoBug [http://www.pipapo.org/pipawiki/NoBug], exiting.'
Exit(1)
if not conf.CheckLibWithHeader('pthread', 'pthread.h', 'C'):
print 'Did not find the pthread lib or pthread.h, exiting.'
else:
conf.env.Append(CPPFLAGS = ' -DHAVE_PTHREAD_H')
if conf.CheckCHeader('execinfo.h'):
conf.env.Append(CPPFLAGS = ' -DHAS_EXECINFO_H')

2
src/.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
bin/*
plugin/*.os

View file

@ -1 +1 @@
every components source in a own subdir here
root of sourcecode tree

1
src/bin/DIR_INFO Normal file
View file

@ -0,0 +1 @@
cinelerra executable(s) and libraries will be built here

View file

@ -25,6 +25,7 @@
#ifndef CINELERRA_H
#define CINELERRA_H
#include <nobug.h>
#ifdef __cplusplus
@ -47,6 +48,7 @@ extern "C" {
/* common types frequently used... */
#include "common/time.hpp"
#include "common/appconfig.hpp"
namespace cinelerra

87
src/common/appconfig.cpp Normal file
View file

@ -0,0 +1,87 @@
/*
Appconfig - for global initialization and configuration
Copyright (C) CinelerraCV
2007, 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.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the 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 "common/appconfig.hpp"
NOBUG_CPP_DEFINE_FLAG(config);
namespace cinelerra
{
/** holds the single instance and triggers initialization */
auto_ptr<Appconfig> Appconfig::theApp_ (0);
#ifndef VERSION
#define VERSION 3++devel
#endif
/** perform initialization on first access.
* A call is placed in static initialization code
* included in cinelerra.h; thus it will happen
* probably very early.
*/
Appconfig::Appconfig()
: configParam_ (new Configmap)
{
//////////
NOBUG_INIT;
//////////
(*configParam_)["version"] = "VERSION";
}
////////////////////////////TODO: ein richtiges utility draus machen....
bool isnil(string val)
{
return 0 == val.length();
};
////////////////////////////TODO
/** access the configuation value for a given key.
* @return empty string for unknown keys, else the corresponding configuration value
*/
string
Appconfig::get (const string & key) throw()
{
try
{
string& val = (*instance().configParam_)[key];
WARN_IF( isnil(val), config, "undefined config parameter \"%s\" requested.", key.c_str());
}
catch (...)
{
ERROR(config, "error while accessing configuration parameter \"%s\".", key.c_str());
}
}
} // namespace cinelerra

100
src/common/appconfig.hpp Normal file
View file

@ -0,0 +1,100 @@
/*
APPCONFIG.hpp - for global initialization and configuration
Copyright (C) CinelerraCV
2007, 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.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the 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 CINELERRA_APPCONFIG_H
#define CINELERRA_APPCONFIG_H
#include <map>
#include <string>
#include <memory>
using std::string;
using std::auto_ptr;
#include <nobug.h>
NOBUG_DECLARE_FLAG(config);
namespace cinelerra
{
/**
* Singleton to hold inevitable global flags and constants
* and for performing erarly (static) global initialization tasks.
*/
class Appconfig
{
private:
/** holds the single instance and triggers initialization */
static auto_ptr<Appconfig> theApp_;
/** perform initialization on first access.
* A call is placed in static initialization code
* included in cinelerra.h; thus it will happen
* ubiquitous very early.
*/
Appconfig () ;
public:
static Appconfig& instance()
{
if (!theApp_.get()) theApp_.reset (new Appconfig ());
return *theApp_;
}
/** access the configuation value for a given key.
* @return empty string for unknown keys, else the corresponding configuration value
*/
static string get (const string & key) throw();
private:
typedef std::map<string,string> Configmap;
typedef auto_ptr<Configmap> PConfig;
/** <b>the following is just placeholder code!</b>
* Appconfig <i>could</i> do such things if necessary.
*/
PConfig configParam_;
};
namespace
{
/** generate "magic code" causing early static initialization */
Appconfig* init (&Appconfig::instance ());
}
} // namespace cinelerra
#endif

53
src/common/error.cpp Normal file
View file

@ -0,0 +1,53 @@
/*
Error - Cinelerra Exception Interface
Copyright (C) CinelerraCV
2007, 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.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the 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 "common/error.hpp"
namespace cinelerra
{
/** Description of the problem, including the internal char constant
* in accordance to cinelerras error identification scheme.
* If a ::rootCause() can be obtained, this will be included in the
* generated output as well.
*/
const char*
Error::what () const throw()
{
}
/** If this exception was caused by a chain of further exceptions,
* return the first one registered in this throw sequence.
* This works only, if every exceptions thrown as a consequence
* of another exception is propperly constructed by passing
* the original exception to the constructor
*/
std::exception
Error::rootCause() const throw()
{
}
} // namespace cinelerra

100
src/common/error.hpp Normal file
View file

@ -0,0 +1,100 @@
/*
ERROR.hpp - Cinelerra Exception Interface
Copyright (C) CinelerraCV
2007, 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.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the 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 CINELERRA_ERROR_H
#define CINELERRA_ERROR_H
#include <exception>
namespace cinelerra
{
/**
* Interface and Baseclass of all Exceptions thrown
* from within cinelerra (C++) code. Common operations
* for getting an diagnostic message and for obtaining
* the root cause, i.e. the frist exception encountered
* in a chain of exceptions.
*/
class Error : public std::exception
{
public:
/** yield a diagnostig message characterizing the problem */
virtual const char* what () const throw();
/** If this exception was caused by a chain of further exceptions,
* return the first one registered in this throw sequence.
* This works only, if every exceptions thrown as a consequence
* of another exception is propperly constructed by passing
* the original exception to the constructor
*/
std::exception rootCause () const throw();
private:
/** a copy of the first exception encountered in this exception chain */
std::exception cause;
};
/* === Exception Subcategories === */
namespace error
{
class Logic : public Error
{
};
class Config : public Error
{
};
class State : public Error
{
};
class Invalid : public Error
{
};
class External : public Error
{
};
} // namespace error
} // namespace cinelerra
#endif

1
src/test/DIR_INFO Normal file
View file

@ -0,0 +1 @@
Testsuite sourcecode tree

View file

@ -28,7 +28,8 @@
#include "test/helper/suite.hpp"
#include "test/helper/run.hpp"
#include <iostream> /////////////////////////TODO: Debug
#include <nobug.h>
#include <iostream>
#include <sstream>
namespace test
@ -61,7 +62,8 @@ namespace test
void add2group (Launcher* test, string testID, string groupID);
};
void Registry::add2group (Launcher* test, string testID, string groupID)
void
Registry::add2group (Launcher* test, string testID, string groupID)
{
// TODO: ASSERT test!=null, testID.length > 0 ...
PTestMap& group = getGroup(groupID);
@ -81,7 +83,8 @@ namespace test
* #ALLGROUP
* @param groups List of group-IDs selected by whitespace
*/
void Suite::enroll (Launcher* test, string testID, string groups)
void
Suite::enroll (Launcher* test, string testID, string groups)
{
// TODO learn to use NoBug for logging
std::cerr << "enroll( testID=" << testID << ")\n";
@ -119,7 +122,8 @@ namespace test
* The first argument in the commandline, if present, will select
* one single testcase with a matching ID.
*/
void Suite::run (int argc, char* argv[])
void
Suite::run (int argc, char* argv[])
{
/////////////////////////////////////////////////////TODO:DEBUG
std::cerr << "Suite::run( (" << argc << "[" ;

View file

@ -1,6 +1,6 @@
format 40
"CommonLib" // CommonLib
revision 7
revision 9
modified_by 5 "hiv"
// class settings
//class diagram settings
@ -26,6 +26,216 @@ format 40
package_name_in_tab default show_context default show_opaque_action_definition default auto_label_position default write_flow_label_horizontally default draw_all_relations default shadow default
show_infonote default drawing_language default
classview 128773 "error"
//class diagram settings
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
//collaboration diagram settings
show_full_operations_definition default show_hierarchical_rank default write_horizontally default drawing_language default package_name_in_tab default show_context default draw_all_relations default shadow default
//object diagram settings
write_horizontally default package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default
//sequence diagram settings
show_full_operations_definition default write_horizontally default class_drawing_mode default drawing_language default draw_all_relations default shadow default
//state diagram settings
package_name_in_tab default show_context default auto_label_position default write_trans_label_horizontally default show_trans_definition default draw_all_relations default shadow default
show_activities default region_horizontally default drawing_language default
//class settings
//activity diagram settings
package_name_in_tab default show_context default show_opaque_action_definition default auto_label_position default write_flow_label_horizontally default draw_all_relations default shadow default
show_infonote default drawing_language default
classdiagram 130181 "Hierarchy"
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
comment "Cinelerra Exception hierarchy"
size A4
end
class 135557 "Error"
visibility package
cpp_decl "${comment}${template}class ${name}${inherit}
{
${members} };
${inlines}
"
java_decl ""
idl_decl ""
explicit_switch_type ""
classrelation 139781 // <generalisation>
relation 137989 ---|>
a public
cpp default "${type}"
classrelation_ref 139781 // <generalisation>
b multiplicity "" parent class_ref 136325 // std::exception
end
operation 131845 "what"
const cpp_virtual public explicit_return_type "const char*"
nparams 0
cpp_decl " ${comment}${friend}${static}${inline}${virtual}${type} ${name} ${(}${)}${const}${volatile} ${throw}${abstract};"
cpp_def "${comment}${inline}${type}
${class}::${name} ${(}${)}${const}${volatile} ${throw}${staticnl}
{
${body}
}
"
end
operation 131973 "rootCause"
public explicit_return_type "std::exception"
nparams 0
cpp_decl " ${comment}${friend}${static}${inline}${virtual}${type} ${name} ${(}${)}${const}${volatile} ${throw}${abstract};"
cpp_def "${comment}${inline}${type}
${class}::${name} ${(}${)}${const}${volatile} ${throw}${staticnl}
{
${body}
}
"
comment "If this exception was caused by a chain of further exceptions,
return the first one registered in this throw sequence.
This works only, if every exceptions thrown as a consequence
of another exception is propperly constructed by passing
the original exception to the constructor"
end
attribute 130309 "cause"
private type class_ref 136325 // std::exception
stereotype "auto_ptr"
cpp_decl " ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
java_decl ""
idl_decl ""
comment "a copy of the first exception encountered in this exception chain"
end
end
class 135685 "Logic"
visibility package
cpp_decl "${comment}${template}class ${name}${inherit}
{
${members} };
${inlines}
"
java_decl ""
idl_decl ""
explicit_switch_type ""
classrelation 139397 // <generalisation>
relation 137605 ---|>
a public
cpp default "${type}"
classrelation_ref 139397 // <generalisation>
b multiplicity "" parent class_ref 135557 // Error
end
end
class 135813 "Config"
visibility package
cpp_decl "${comment}${template}class ${name}${inherit}
{
${members} };
${inlines}
"
java_decl ""
idl_decl ""
explicit_switch_type ""
classrelation 139269 // <generalisation>
relation 137477 ---|>
a public
cpp default "${type}"
classrelation_ref 139269 // <generalisation>
b multiplicity "" parent class_ref 135557 // Error
end
end
class 135941 "State"
visibility package
cpp_decl "${comment}${template}class ${name}${inherit}
{
${members} };
${inlines}
"
java_decl ""
idl_decl ""
explicit_switch_type ""
classrelation 139141 // <generalisation>
relation 137349 ---|>
a public
cpp default "${type}"
classrelation_ref 139141 // <generalisation>
b multiplicity "" parent class_ref 135557 // Error
end
end
class 136069 "Invalid"
visibility package
cpp_decl "${comment}${template}class ${name}${inherit}
{
${members} };
${inlines}
"
java_decl ""
idl_decl ""
explicit_switch_type ""
classrelation 139525 // <generalisation>
relation 137733 ---|>
a public
cpp default "${type}"
classrelation_ref 139525 // <generalisation>
b multiplicity "" parent class_ref 135557 // Error
end
end
class 136197 "External"
visibility package
cpp_decl "${comment}${template}class ${name}${inherit}
{
${members} };
${inlines}
"
java_decl ""
idl_decl ""
explicit_switch_type ""
classrelation 139653 // <generalisation>
relation 137861 ---|>
a public
cpp default "${type}"
classrelation_ref 139653 // <generalisation>
b multiplicity "" parent class_ref 135557 // Error
end
end
class 136325 "std::exception"
visibility public stereotype "auxiliary"
cpp_external cpp_decl "${comment}${template}class ${name}${inherit}
{
${members} };
${inlines}
"
java_decl ""
idl_decl ""
explicit_switch_type ""
operation 131717 "what"
const cpp_virtual public explicit_return_type "const char*"
nparams 0
cpp_decl " ${comment}${friend}${static}${inline}${virtual}${type} ${name} ${(}${)}${const}${volatile} ${throw}${abstract};"
comment "the base class of all exceptions thrown by the standard library"
end
end
end
classview 128645 "Service Components"
//class diagram settings
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
@ -75,6 +285,74 @@ ${inlines}
comment "a template for generating functor-like Factory objects, used to encapsulate object creation and providing access via smart-pointers only."
end
class 135429 "Appconfig"
visibility public stereotype "singleton"
cpp_decl "${comment}${template}class ${name}${inherit}
{
${members} };
${inlines}
"
java_decl ""
idl_decl ""
explicit_switch_type ""
comment "Singleton to hold inevitable global flags and constants and for performing erarly (static) global initialization tasks."
attribute 130181 "theApp_"
class_attribute private type class_ref 135429 // Appconfig
init_value "=0"
cpp_decl " ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
java_decl ""
idl_decl ""
comment "holds the single instance and triggers initialization"
end
operation 131333 "Appconfig"
private explicit_return_type ""
nparams 0
cpp_decl " ${comment}${inline}${name} ${(}${)}${volatile} ${throw};"
cpp_def "${comment}${inline}
${class}::${name} ${(}${)}${volatile} ${throw}
{
${body}
}
"
comment "perform initialization on first access.
A call is placed in static initialization code
included in cinelerra.h; thus it will happen
ubiquitous very early."
end
operation 131461 "instance"
class_operation private explicit_return_type "Appconfig*"
nparams 0
cpp_decl " ${comment}${friend}${static}${inline}${virtual}${type} ${name} ${(}${)}${const}${volatile} ${throw}${abstract};"
end
operation 131589 "get"
class_operation public explicit_return_type "string"
nparams 1
param inout name "key" explicit_type "string"
cpp_decl " ${comment}${friend}${static}${inline}${virtual}${type} ${name} ${(}${t0} & ${p0}${)}${const}${volatile} ${throw}${abstract};"
cpp_def "${comment}${inline}${type}
${class}::${name} ${(}${t0} & ${p0}${)}${const}${volatile} ${throw}${staticnl}
{
${body}
}
"
comment "access the configuation value for a given key.
@return empty string for unknown keys, else the corresponding configuration value"
end
end
end
classview 128138 "Posix Threads Abstraction"
@ -176,7 +454,7 @@ ${inlines}
class 128906 "SmartPointer"
abstract visibility package stereotype "auxiliary"
cpp_decl "${comment}${template}class ${name}${inherit} {
cpp_external cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"

View file

@ -1,6 +1,6 @@
format 40
"common" // design::codegen::common
revision 11
revision 13
modified_by 5 "hiv"
// class settings
//class diagram settings
@ -39,6 +39,89 @@ Common library and helper classes"
package_name_in_tab default show_context default write_horizontally default auto_label_position default draw_all_relations default shadow default
draw_component_as_icon default show_component_req_prov default show_component_rea default
comment "defines source files to be generated by BOUML"
artifact 135813 "error"
stereotype "source"
cpp_h "/*
${NAME}.hpp - ${description}
@{CopyrightClaim}@{GPLHeader}
*/
#ifndef ${NAMESPACE}_${NAME}_H
#define ${NAMESPACE}_${NAME}_H
${includes}
${declarations}
${namespace_start}
${definition}
${namespace_end}
#endif
"
cpp_src "/*
${Name} - ${description}
@{CopyrightClaim}@{GPLHeader}
* *****************************************************/
${includes}
${namespace_start}
${members}
${namespace_end}"
associated_classes
class_ref 135557 // Error
class_ref 135685 // Logic
class_ref 135813 // Config
class_ref 135941 // State
class_ref 136069 // Invalid
class_ref 136197 // External
end
comment "Cinelerra Exception Interface"
end
artifact 135173 "appconfig"
stereotype "source"
cpp_h "/*
${NAME}.hpp - ${description}
@{CopyrightClaim}@{GPLHeader}
*/
#ifndef ${NAMESPACE}_${NAME}_H
#define ${NAMESPACE}_${NAME}_H
${includes}
${declarations}
${namespace_start}
${definition}
${namespace_end}
#endif
"
cpp_src "/*
${Name} - ${description}
@{CopyrightClaim}@{GPLHeader}
* *****************************************************/
${includes}
${namespace_start}
${members}
${namespace_end}"
associated_classes
class_ref 135429 // Appconfig
end
comment "for global initialization and configuration "
end
artifact 134789 "time"
stereotype "source"
cpp_h "/*
@ -78,4 +161,6 @@ ${namespace_end}"
comment "unified representation of a time point, including conversion functions"
end
end
package_ref 130821 // error
end

View file

@ -0,0 +1,74 @@
format 40
classcanvas 128005 class_ref 135557 // Error
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
xyz 254 162 2000
end
classcanvas 128133 class_ref 135685 // Logic
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
xyz 87 361 2000
end
classcanvas 128261 class_ref 135813 // Config
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
xyz 175 361 2000
end
classcanvas 128389 class_ref 135941 // State
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
xyz 267 361 2000
end
classcanvas 128517 class_ref 136069 // Invalid
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
xyz 355 361 2000
end
classcanvas 128645 class_ref 136197 // External
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
xyz 444 361 2000
end
packagecanvas 130821
package_ref 130821 // error
show_context_mode namespace xyzwh 55 258 1994 472 162
classcanvas 130949 class_ref 136325 // std::exception
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
xyz 409 43 2000
end
relationcanvas 128773 relation_ref 137349 // <generalisation>
geometry VHV
from ref 128389 z 1999 to point 287 304
line 130565 z 1999 to point 287 304
line 130693 z 1999 to ref 128005
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
relationcanvas 128901 relation_ref 137477 // <generalisation>
geometry VHV
from ref 128261 z 1999 to point 197 304
line 130053 z 1999 to point 287 304
line 130181 z 1999 to ref 128005
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
relationcanvas 129029 relation_ref 137605 // <generalisation>
geometry VHV
from ref 128133 z 1999 to point 107 304
line 130309 z 1999 to point 287 304
line 130437 z 1999 to ref 128005
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
relationcanvas 129157 relation_ref 137733 // <generalisation>
geometry VHV
from ref 128517 z 1999 to point 376 304
line 129797 z 1999 to point 287 304
line 129925 z 1999 to ref 128005
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
relationcanvas 129285 relation_ref 137861 // <generalisation>
geometry VHV
from ref 128645 z 1999 to point 469 304
line 129541 z 1999 to point 287 304
line 129669 z 1999 to ref 128005
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
relationcanvas 131077 relation_ref 137989 // <generalisation>
from ref 128005 z 1999 to point 450 181
line 131205 z 1999 to ref 130949
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
end

33
uml/cinelerra3/130821 Normal file
View file

@ -0,0 +1,33 @@
format 40
"error" // design::codegen::common::error
revision 1
modified_by 5 "hiv"
// class settings
//class diagram settings
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
//use case diagram settings
package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default
//sequence diagram settings
show_full_operations_definition default write_horizontally default class_drawing_mode default drawing_language default draw_all_relations default shadow default
//collaboration diagram settings
show_full_operations_definition default show_hierarchical_rank default write_horizontally default drawing_language default package_name_in_tab default show_context default draw_all_relations default shadow default
//object diagram settings
write_horizontally default package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default
//component diagram settings
package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default
draw_component_as_icon default show_component_req_prov default show_component_rea default
//deployment diagram settings
package_name_in_tab default show_context default write_horizontally default auto_label_position default draw_all_relations default shadow default
draw_component_as_icon default show_component_req_prov default show_component_rea default
//state diagram settings
package_name_in_tab default show_context default auto_label_position default write_trans_label_horizontally default show_trans_definition default draw_all_relations default shadow default
show_activities default region_horizontally default drawing_language default
//activity diagram settings
package_name_in_tab default show_context default show_opaque_action_definition default auto_label_position default write_flow_label_horizontally default draw_all_relations default shadow default
show_infonote default drawing_language default
cpp_h_dir "common"
cpp_src_dir "common"
cpp_namespace "cinelerra::error"
comment "Namespace for Exception Kinds"
end

View file

@ -1,9 +1,24 @@
window_sizes 1104 756 270 824 557 120
diagrams
active classdiagram_ref 130181 // Hierarchy
762 514 100 4 0 0
end
show_stereotypes
selected
package_ref 129 // cinelerra3
selected artifact_ref 135813 // error
open
deploymentview_ref 128261 // gen
deploymentview_ref 128773 // gen
package_ref 129669 // proc
package_ref 129797 // gui
package_ref 129285 // ProcessingLayer
class_ref 135685 // Logic
class_ref 135813 // Config
class_ref 135941 // State
class_ref 136069 // Invalid
class_ref 136197 // External
class_ref 136325 // std::exception
class_ref 135429 // Appconfig
classview_ref 128266 // SmartPointers
end
end