From 358b9050e990e306eea7a3295cbe351e7d8999a9 Mon Sep 17 00:00:00 2001 From: Ichthyostega Date: Tue, 14 Aug 2007 08:14:21 +0200 Subject: [PATCH] static Application init, NoBug integration, started a basic Exception hierarchy. --- .gitignore | 1 + SConstruct | 38 +++-- src/.gitignore | 2 + src/DIR_INFO | 2 +- src/bin/DIR_INFO | 1 + src/cinelerra.h | 2 + src/common/appconfig.cpp | 87 +++++++++++ src/common/appconfig.hpp | 100 ++++++++++++ src/common/error.cpp | 53 +++++++ src/common/error.hpp | 100 ++++++++++++ src/test/DIR_INFO | 1 + src/test/helper/suite.cpp | 12 +- uml/cinelerra3/128517 | 282 +++++++++++++++++++++++++++++++++- uml/cinelerra3/129413 | 87 ++++++++++- uml/cinelerra3/130181.diagram | 74 +++++++++ uml/cinelerra3/130821 | 33 ++++ uml/cinelerra3/5.session | 21 ++- 17 files changed, 876 insertions(+), 20 deletions(-) create mode 100644 src/.gitignore create mode 100644 src/bin/DIR_INFO create mode 100644 src/common/appconfig.cpp create mode 100644 src/common/appconfig.hpp create mode 100644 src/common/error.cpp create mode 100644 src/common/error.hpp create mode 100644 src/test/DIR_INFO create mode 100644 uml/cinelerra3/130181.diagram create mode 100644 uml/cinelerra3/130821 diff --git a/.gitignore b/.gitignore index 653bd410b..1a693c969 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,5 @@ .sconsign.dblite Buildhelper.pyc optcache +.[^.]* diff --git a/SConstruct b/SConstruct index 4409b9a9b..67232f01e 100644 --- a/SConstruct +++ b/SConstruct @@ -58,32 +58,47 @@ def setupBasicEnvironment(): env.Replace( VERSION=VERSION , SRCDIR=SRCDIR , BINDIR=BINDIR - , CPPPATH="#"+SRCDIR # used to find includes, "#" means always absolute to build-root + , 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') diff --git a/src/.gitignore b/src/.gitignore new file mode 100644 index 000000000..fa4c89bdf --- /dev/null +++ b/src/.gitignore @@ -0,0 +1,2 @@ +bin/* +plugin/*.os diff --git a/src/DIR_INFO b/src/DIR_INFO index fbe280987..b6c7308d3 100644 --- a/src/DIR_INFO +++ b/src/DIR_INFO @@ -1 +1 @@ -every components source in a own subdir here +root of sourcecode tree diff --git a/src/bin/DIR_INFO b/src/bin/DIR_INFO new file mode 100644 index 000000000..c9048f8c1 --- /dev/null +++ b/src/bin/DIR_INFO @@ -0,0 +1 @@ +cinelerra executable(s) and libraries will be built here diff --git a/src/cinelerra.h b/src/cinelerra.h index d9a813952..92496e74b 100644 --- a/src/cinelerra.h +++ b/src/cinelerra.h @@ -25,6 +25,7 @@ #ifndef CINELERRA_H #define CINELERRA_H +#include #ifdef __cplusplus @@ -47,6 +48,7 @@ extern "C" { /* common types frequently used... */ #include "common/time.hpp" +#include "common/appconfig.hpp" namespace cinelerra diff --git a/src/common/appconfig.cpp b/src/common/appconfig.cpp new file mode 100644 index 000000000..b4b3dfe96 --- /dev/null +++ b/src/common/appconfig.cpp @@ -0,0 +1,87 @@ +/* + Appconfig - for global initialization and configuration + + Copyright (C) CinelerraCV + 2007, Christian Thaeter + + This program is free software; you can redistribute it and/or + modify it under the terms of the 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::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 diff --git a/src/common/appconfig.hpp b/src/common/appconfig.hpp new file mode 100644 index 000000000..3dd578100 --- /dev/null +++ b/src/common/appconfig.hpp @@ -0,0 +1,100 @@ +/* + APPCONFIG.hpp - for global initialization and configuration + + Copyright (C) CinelerraCV + 2007, Christian Thaeter + + This program is free software; you can redistribute it and/or + modify it under the terms of the 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 +#include +#include + + +using std::string; +using std::auto_ptr; + + + +#include +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 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 Configmap; + typedef auto_ptr PConfig; + + /** the following is just placeholder code! + * Appconfig could do such things if necessary. + */ + PConfig configParam_; + + }; + + + + + namespace + { + /** generate "magic code" causing early static initialization */ + Appconfig* init (&Appconfig::instance ()); + } + +} // namespace cinelerra +#endif diff --git a/src/common/error.cpp b/src/common/error.cpp new file mode 100644 index 000000000..0e869fe93 --- /dev/null +++ b/src/common/error.cpp @@ -0,0 +1,53 @@ +/* + Error - Cinelerra Exception Interface + + Copyright (C) CinelerraCV + 2007, Christian Thaeter + + This program is free software; you can redistribute it and/or + modify it under the terms of the 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 diff --git a/src/common/error.hpp b/src/common/error.hpp new file mode 100644 index 000000000..b851630ef --- /dev/null +++ b/src/common/error.hpp @@ -0,0 +1,100 @@ +/* + ERROR.hpp - Cinelerra Exception Interface + + Copyright (C) CinelerraCV + 2007, Christian Thaeter + + This program is free software; you can redistribute it and/or + modify it under the terms of the 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 + + +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 diff --git a/src/test/DIR_INFO b/src/test/DIR_INFO new file mode 100644 index 000000000..55fe55def --- /dev/null +++ b/src/test/DIR_INFO @@ -0,0 +1 @@ +Testsuite sourcecode tree diff --git a/src/test/helper/suite.cpp b/src/test/helper/suite.cpp index 84fb7148c..f90a149ac 100644 --- a/src/test/helper/suite.cpp +++ b/src/test/helper/suite.cpp @@ -28,7 +28,8 @@ #include "test/helper/suite.hpp" #include "test/helper/run.hpp" -#include /////////////////////////TODO: Debug +#include +#include #include 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 << "[" ; diff --git a/uml/cinelerra3/128517 b/uml/cinelerra3/128517 index 7bb6667f7..60ea7208b 100644 --- a/uml/cinelerra3/128517 +++ b/uml/cinelerra3/128517 @@ -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 // + relation 137989 ---|> + a public + cpp default "${type}" + classrelation_ref 139781 // + 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 // + relation 137605 ---|> + a public + cpp default "${type}" + classrelation_ref 139397 // + 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 // + relation 137477 ---|> + a public + cpp default "${type}" + classrelation_ref 139269 // + 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 // + relation 137349 ---|> + a public + cpp default "${type}" + classrelation_ref 139141 // + 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 // + relation 137733 ---|> + a public + cpp default "${type}" + classrelation_ref 139525 // + 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 // + relation 137861 ---|> + a public + cpp default "${type}" + classrelation_ref 139653 // + 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} " diff --git a/uml/cinelerra3/129413 b/uml/cinelerra3/129413 index e8dca4ded..fa3bd529e 100644 --- a/uml/cinelerra3/129413 +++ b/uml/cinelerra3/129413 @@ -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 diff --git a/uml/cinelerra3/130181.diagram b/uml/cinelerra3/130181.diagram new file mode 100644 index 000000000..68704453b --- /dev/null +++ b/uml/cinelerra3/130181.diagram @@ -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 // + 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 // + 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 // + 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 // + 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 // + 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 // + 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 diff --git a/uml/cinelerra3/130821 b/uml/cinelerra3/130821 new file mode 100644 index 000000000..2823b3193 --- /dev/null +++ b/uml/cinelerra3/130821 @@ -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 diff --git a/uml/cinelerra3/5.session b/uml/cinelerra3/5.session index e8231ca4c..431e0a5d0 100644 --- a/uml/cinelerra3/5.session +++ b/uml/cinelerra3/5.session @@ -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