static Application init, NoBug integration, started a basic Exception hierarchy.
This commit is contained in:
parent
45c2167700
commit
358b9050e9
17 changed files with 876 additions and 20 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -7,4 +7,5 @@
|
|||
.sconsign.dblite
|
||||
Buildhelper.pyc
|
||||
optcache
|
||||
.[^.]*
|
||||
|
||||
|
|
|
|||
38
SConstruct
38
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')
|
||||
|
||||
|
|
|
|||
2
src/.gitignore
vendored
Normal file
2
src/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
bin/*
|
||||
plugin/*.os
|
||||
|
|
@ -1 +1 @@
|
|||
every components source in a own subdir here
|
||||
root of sourcecode tree
|
||||
|
|
|
|||
1
src/bin/DIR_INFO
Normal file
1
src/bin/DIR_INFO
Normal file
|
|
@ -0,0 +1 @@
|
|||
cinelerra executable(s) and libraries will be built here
|
||||
|
|
@ -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
87
src/common/appconfig.cpp
Normal 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
100
src/common/appconfig.hpp
Normal 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
53
src/common/error.cpp
Normal 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
100
src/common/error.hpp
Normal 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
1
src/test/DIR_INFO
Normal file
|
|
@ -0,0 +1 @@
|
|||
Testsuite sourcecode tree
|
||||
|
|
@ -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 << "[" ;
|
||||
|
|
|
|||
|
|
@ -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}
|
||||
"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
74
uml/cinelerra3/130181.diagram
Normal file
74
uml/cinelerra3/130181.diagram
Normal 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
33
uml/cinelerra3/130821
Normal 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
|
||||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue