From: Diego Barrios Romero Date: Mon, 21 Dec 2009 23:49:21 +0000 (+0100) Subject: Added documentation for Factory and Book typedefs. X-Git-Url: https://git.pterodactylus.net/?a=commitdiff_plain;h=5dcab4f32891574b830e5919a71e72b80a506641;p=synfig.git Added documentation for Factory and Book typedefs. --- diff --git a/synfig-core/src/synfig/layer.h b/synfig-core/src/synfig/layer.h index f729c40..1e321b0 100644 --- a/synfig-core/src/synfig/layer.h +++ b/synfig-core/src/synfig/layer.h @@ -162,7 +162,9 @@ class Layer : public Node public: - //! Type that represents a pointer to a layer's constructor + //! Type that represents a pointer to a Layer's constructor. + /*! As a pointer to the constructor, it represents a "factory" of layers. + */ typedef Layer* (*Factory)(); struct BookEntry @@ -188,6 +190,13 @@ public: version(version) { } }; + //! Book of types of layers indexed by layer type name. + /*! While the sifz file is read, each time a new layer entry is found, + ** the factory constructor that the "factory" pointer member of the + ** "BookEntry" struct points to, is called, and a new layer of that type + ** is created. + ** \sa Layer::Factory + */ typedef std::map Book; static void register_in_book(const BookEntry &); diff --git a/synfig-core/src/synfig/target.cpp b/synfig-core/src/synfig/target.cpp index 6a73822..92153b4 100644 --- a/synfig-core/src/synfig/target.cpp +++ b/synfig-core/src/synfig/target.cpp @@ -54,6 +54,7 @@ Target::subsys_init() default_gamma_=new synfig::Gamma(1.0/2.2); //default_gamma_->set_black_level(0.05); // Default to 5% black level. + // At least one target must be available. book()["null"]=std::pair(Target_Null::create,"null"); ext_book()["null"]="null"; book()["null-tile"]=std::pair(Target_Null_Tile::create,"null-tile"); diff --git a/synfig-core/src/synfig/target.h b/synfig-core/src/synfig/target.h index 9f6e304..2f3c038 100644 --- a/synfig-core/src/synfig/target.h +++ b/synfig-core/src/synfig/target.h @@ -102,9 +102,16 @@ public: */ public: + //! Type that represents a pointer to a Target's constructor. + /*! As a pointer to the constructor, it represents a "factory" of targets. + ** Receives the output filename (including path). + */ typedef Target* (*Factory)(const char *filename); - //! A type for a map of targets, indexed by the name of the Target + //! Book of types of targets indexed by the name of the Target. + /*! Each entry contains the Target constructor pointer and the output + ** filename string (including path). + */ typedef std::map > Book; typedef std::map ExtBook; diff --git a/synfig-core/src/synfig/valuenode.h b/synfig-core/src/synfig/valuenode.h index 38e5c56..9b838b7 100644 --- a/synfig-core/src/synfig/valuenode.h +++ b/synfig-core/src/synfig/valuenode.h @@ -305,6 +305,9 @@ public: //! Type that represents a pointer to a ValueNode's constructor + /*! As a pointer to the constructor, it represents a "factory" of + ** objects of this class. + */ typedef LinkableValueNode* (*Factory)(const ValueBase&); typedef bool (*CheckType)(ValueBase::Type); @@ -317,6 +320,13 @@ public: ReleaseVersion release_version; // which version of synfig introduced this valuenode type }; + //! Book of types of linkable value nodes indexed by type name. + /*! While the sifz file is read, each time a new LinkableValueNode entry + ** is found, the factory constructor that the "factory" pointer member + ** of the "BookEntry" struct points to, is called, and a new object of + ** that type is created. + ** \sa LinkableValueNode::Factory + */ typedef std::map Book; static Book& book();