Free Electron
Public Member Functions | Protected Types | Protected Member Functions | Private Attributes | List of all members
fe::Initialized Class Reference

Base class providing collective initialization (post-constructor) More...

#include <Initialized.h>

Inherits fe::Castable.

Inherited by fe::Component [virtual], fe::Initialize< T > [virtual], fe::Initialize< AffineSpace > [virtual], fe::Initialize< Annotate > [virtual], fe::Initialize< AppDebugWindow > [virtual], fe::Initialize< AsAccumulate > [virtual], fe::Initialize< AsActuator > [virtual], fe::Initialize< AsAttributeLabel > [virtual], fe::Initialize< AsBarycentricPoint > [virtual], fe::Initialize< AsBend > [virtual], fe::Initialize< AsBinding > [virtual], fe::Initialize< AsBodyFrame > [virtual], fe::Initialize< AsBodyPoint > [virtual], fe::Initialize< AsBooleanFilter > [virtual], fe::Initialize< AsBounded > [virtual], fe::Initialize< AsCallback > [virtual], fe::Initialize< AsChainOp > [virtual], fe::Initialize< AsChannelBinding > [virtual], fe::Initialize< AsChild > [virtual], fe::Initialize< AsChildFrame > [virtual], fe::Initialize< AsClear > [virtual], fe::Initialize< AsColor > [virtual], fe::Initialize< AsColored > [virtual], fe::Initialize< AsComponent > [virtual], fe::Initialize< AsDifferential > [virtual], fe::Initialize< AsDotElement > [virtual], fe::Initialize< AsDrawScreenTriangle > [virtual], fe::Initialize< AsDrivenHinge > [virtual], fe::Initialize< AsElastic > [virtual], fe::Initialize< AsExplicitPointType > [virtual], fe::Initialize< AsFace > [virtual], fe::Initialize< AsFacePressure > [virtual], fe::Initialize< AsFaceStrain > [virtual], fe::Initialize< AsFlora > [virtual], fe::Initialize< AsForceFilter > [virtual], fe::Initialize< AsForcePoint > [virtual], fe::Initialize< AsForcePoint1D > [virtual], fe::Initialize< AsFrame > [virtual], fe::Initialize< AsFrameConstraint > [virtual], fe::Initialize< AsGeneric > [virtual], fe::Initialize< AsGenericInt > [virtual], fe::Initialize< AsGotoOp > [virtual], fe::Initialize< AsGroup > [virtual], fe::Initialize< AsHasChannel > [virtual], fe::Initialize< AsHinge > [virtual], fe::Initialize< AsInit > [virtual], fe::Initialize< AsLabeled > [virtual], fe::Initialize< AsLife > [virtual], fe::Initialize< AsLinearBend > [virtual], fe::Initialize< AsLinearSpring > [virtual], fe::Initialize< AsLinearSpringDelta > [virtual], fe::Initialize< AsLinearSpringDeltaData > [virtual], fe::Initialize< AsLinearSpringExtended > [virtual], fe::Initialize< AsLinearSpringForceReturn > [virtual], fe::Initialize< AsLinearStrand > [virtual], fe::Initialize< AsLinearStrandTwist > [virtual], fe::Initialize< AsLineConstrained > [virtual], fe::Initialize< AsLiquidSand > [virtual], fe::Initialize< AsLocatedFrame > [virtual], fe::Initialize< AsManipulatable > [virtual], fe::Initialize< AsManipulator > [virtual], fe::Initialize< AsMark > [virtual], fe::Initialize< AsMaterial > [virtual], fe::Initialize< AsMobile > [virtual], fe::Initialize< AsNamed > [virtual], fe::Initialize< AsNav > [virtual], fe::Initialize< AsNavable > [virtual], fe::Initialize< AsNavDebug > [virtual], fe::Initialize< AsNode > [virtual], fe::Initialize< AsOperator > [virtual], fe::Initialize< AsOrtho > [virtual], fe::Initialize< AsPair > [virtual], fe::Initialize< AsPane > [virtual], fe::Initialize< AsParticle > [virtual], fe::Initialize< AsParticle1D > [virtual], fe::Initialize< AsPerspective > [virtual], fe::Initialize< AsPhysicalFrame > [virtual], fe::Initialize< AsPick > [virtual], fe::Initialize< AsPlan > [virtual], fe::Initialize< AsPlaneConstrained > [virtual], fe::Initialize< AsPlanet > [virtual], fe::Initialize< AsPoint > [virtual], fe::Initialize< AsPoint1D > [virtual], fe::Initialize< AsPointThrust > [virtual], fe::Initialize< AsProjected > [virtual], fe::Initialize< AsProximity > [virtual], fe::Initialize< AsQuad > [virtual], fe::Initialize< AsRadialFake > [virtual], fe::Initialize< AsRectButton > [virtual], fe::Initialize< AsReferenceFrame > [virtual], fe::Initialize< AsRelativeFrame > [virtual], fe::Initialize< AsRelocate > [virtual], fe::Initialize< AsRK2 > [virtual], fe::Initialize< AsRod > [virtual], fe::Initialize< AsRouted > [virtual], fe::Initialize< AsRouter > [virtual], fe::Initialize< AsScalarField > [virtual], fe::Initialize< AsSelect > [virtual], fe::Initialize< AsSelectable > [virtual], fe::Initialize< AsSelection > [virtual], fe::Initialize< AsSelParent > [virtual], fe::Initialize< AsSelScreenTriangle > [virtual], fe::Initialize< AsSelWorldSphere > [virtual], fe::Initialize< AsSelWorldTriangle > [virtual], fe::Initialize< AsSequenceSignal > [virtual], fe::Initialize< Assign > [virtual], fe::Initialize< AsSignal > [virtual], fe::Initialize< AsSmooth > [virtual], fe::Initialize< AsSmoothedParticle > [virtual], fe::Initialize< AsSolverParticle > [virtual], fe::Initialize< AsSolverParticle1D > [virtual], fe::Initialize< AsStrand > [virtual], fe::Initialize< AsStrandTwist > [virtual], fe::Initialize< AsString > [virtual], fe::Initialize< AsStringEntry > [virtual], fe::Initialize< AsSystem > [virtual], fe::Initialize< AsTemporal > [virtual], fe::Initialize< AsTransform > [virtual], fe::Initialize< AsUpdate > [virtual], fe::Initialize< AsValidate > [virtual], fe::Initialize< AsValueButton > [virtual], fe::Initialize< AsVariable > [virtual], fe::Initialize< AsVelocityPoint > [virtual], fe::Initialize< AsVelocityPoint1D > [virtual], fe::Initialize< AsViewer > [virtual], fe::Initialize< AsWaypoint > [virtual], fe::Initialize< AsWeightedPoint > [virtual], fe::Initialize< AsWidget > [virtual], fe::Initialize< AsWindata > [virtual], fe::Initialize< AsZYXTFrame > [virtual], fe::Initialize< AttachOp > [virtual], fe::Initialize< AttributeController > [virtual], fe::Initialize< BallCollideCLOp > [virtual], fe::Initialize< BenderOp > [virtual], fe::Initialize< BindEditOp > [virtual], fe::Initialize< BladeOp > [virtual], fe::Initialize< BloatOp > [virtual], fe::Initialize< BroydenInertial > [virtual], fe::Initialize< BrushTestOp > [virtual], fe::Initialize< ButtonController > [virtual], fe::Initialize< CacheCLOp > [virtual], fe::Initialize< CacheOp > [virtual], fe::Initialize< CatalogDebug > [virtual], fe::Initialize< ChainOp > [virtual], fe::Initialize< ChainOpController > [virtual], fe::Initialize< ChannelBinder > [virtual], fe::Initialize< ChannelController > [virtual], fe::Initialize< ChannelFilter > [virtual], fe::Initialize< ClaspOp > [virtual], fe::Initialize< ClientPipeline > [virtual], fe::Initialize< ClumpCLOp > [virtual], fe::Initialize< ClumpOp > [virtual], fe::Initialize< ColorShade > [virtual], fe::Initialize< ConfiguredApplication > [virtual], fe::Initialize< ConnectedCatalog > [virtual], fe::Initialize< ConnectOp > [virtual], fe::Initialize< ConsoleKeys > [virtual], fe::Initialize< ContractCLOp > [virtual], fe::Initialize< ContractOp > [virtual], fe::Initialize< CreatePlanetHandler > [virtual], fe::Initialize< CurlCLOp > [virtual], fe::Initialize< CurlOp > [virtual], fe::Initialize< CurvaceousOp > [virtual], fe::Initialize< CurveCombineOp > [virtual], fe::Initialize< CurveCreateOp > [virtual], fe::Initialize< CurveFollowOp > [virtual], fe::Initialize< CurveSampleOp > [virtual], fe::Initialize< CurveSeparateOp > [virtual], fe::Initialize< DataIOController > [virtual], fe::Initialize< DebugController > [virtual], fe::Initialize< DebugWindow > [virtual], fe::Initialize< DensitySink > [virtual], fe::Initialize< DodgeOp > [virtual], fe::Initialize< DrawAtoms > [virtual], fe::Initialize< DrawAttributeLabels > [virtual], fe::Initialize< DrawButtons > [virtual], fe::Initialize< DrawCached > [virtual], fe::Initialize< DrawChainOps > [virtual], fe::Initialize< DrawCommon > [virtual], fe::Initialize< DrawHydra > [virtual], fe::Initialize< DrawNodes > [virtual], fe::Initialize< DrawOpenGL > [virtual], fe::Initialize< DrawPairs > [virtual], fe::Initialize< DrawPoints > [virtual], fe::Initialize< DrawRayTrace > [virtual], fe::Initialize< DrawRouter > [virtual], fe::Initialize< DrawScalarField > [virtual], fe::Initialize< DrawSelection > [virtual], fe::Initialize< DrawStringEntry > [virtual], fe::Initialize< DrawTestOp > [virtual], fe::Initialize< DrawThreaded > [virtual], fe::Initialize< DrawTransform > [virtual], fe::Initialize< DrawVectorField > [virtual], fe::Initialize< EnetCatalog > [virtual], fe::Initialize< Evaluator > [virtual], fe::Initialize< EventMap > [virtual], fe::Initialize< ExcarnateOp > [virtual], fe::Initialize< ExistController > [virtual], fe::Initialize< ExplicitInertial > [virtual], fe::Initialize< ExportOp > [virtual], fe::Initialize< FlatnessCLOp > [virtual], fe::Initialize< FlatnessOp > [virtual], fe::Initialize< Flatten > [virtual], fe::Initialize< FloraHandler > [virtual], fe::Initialize< FollicleOp > [virtual], fe::Initialize< FontFreeTypeGL > [virtual], fe::Initialize< FontHoudini > [virtual], fe::Initialize< FontOpenGL > [virtual], fe::Initialize< Fork > [virtual], fe::Initialize< FormDrag > [virtual], fe::Initialize< FuseOp > [virtual], fe::Initialize< FusionOp > [virtual], fe::Initialize< GenerateNav > [virtual], fe::Initialize< GotoOrigin > [virtual], fe::Initialize< GraphDot > [virtual], fe::Initialize< Gravity > [virtual], fe::Initialize< GridScalarField > [virtual], fe::Initialize< GridVectorField > [virtual], fe::Initialize< GridWrapOp > [virtual], fe::Initialize< GroupExtract > [virtual], fe::Initialize< GroupOp > [virtual], fe::Initialize< HammerOp > [virtual], fe::Initialize< HingeOp > [virtual], fe::Initialize< HobbleOp > [virtual], fe::Initialize< IdleSpinOp > [virtual], fe::Initialize< ImageSDL > [virtual], fe::Initialize< ImguiHandlerCatalog > [virtual], fe::Initialize< ImguiHandlerRecord > [virtual], fe::Initialize< ImportOp > [virtual], fe::Initialize< InfluenceOp > [virtual], fe::Initialize< Jitter > [virtual], fe::Initialize< JointCombineOp > [virtual], fe::Initialize< JointSeparateOp > [virtual], fe::Initialize< JoySDL > [virtual], fe::Initialize< JunkOp > [virtual], fe::Initialize< KinkCLOp > [virtual], fe::Initialize< KinkOp > [virtual], fe::Initialize< LayoutAV > [virtual], fe::Initialize< LayoutSB > [virtual], fe::Initialize< LengthCorrectOp > [virtual], fe::Initialize< LimberOp > [virtual], fe::Initialize< LinearReaction > [virtual], fe::Initialize< ListenerAL > [virtual], fe::Initialize< LuaBind > [virtual], fe::Initialize< LuaExec > [virtual], fe::Initialize< LuaHandler > [virtual], fe::Initialize< LuaIterate > [virtual], fe::Initialize< Manipulator > [virtual], fe::Initialize< ManipulatorCommon > [virtual], fe::Initialize< MapOp > [virtual], fe::Initialize< MaskMapDebug > [virtual], fe::Initialize< MeshSeparateOp > [virtual], fe::Initialize< MessageSignaler > [virtual], fe::Initialize< Metabolism > [virtual], fe::Initialize< MimicOp > [virtual], fe::Initialize< MirrorOp > [virtual], fe::Initialize< Mitosis > [virtual], fe::Initialize< MultiGroupReader > [virtual], fe::Initialize< MultiGroupWriter > [virtual], fe::Initialize< MultiModOp > [virtual], fe::Initialize< NativeEventContext > [virtual], fe::Initialize< NativeKeyboard > [virtual], fe::Initialize< NativeWindow > [virtual], fe::Initialize< NetworkCatalog > [virtual], fe::Initialize< NetworkOp > [virtual], fe::Initialize< NexusOp > [virtual], fe::Initialize< NoiseOp > [virtual], fe::Initialize< NoiseShade > [virtual], fe::Initialize< NullOp > [virtual], fe::Initialize< NullViewer > [virtual], fe::Initialize< ObjectViewer > [virtual], fe::Initialize< OffsetOp > [virtual], fe::Initialize< OpenCLOp > [virtual], fe::Initialize< OpenSubdivOp > [virtual], fe::Initialize< OperatorState > [virtual], fe::Initialize< OperatorThreaded > [virtual], fe::Initialize< OrthoViewer > [virtual], fe::Initialize< PartitionOp > [virtual], fe::Initialize< PerspectiveViewer > [virtual], fe::Initialize< PlanHandler > [virtual], fe::Initialize< PlantSketch > [virtual], fe::Initialize< PlayerPipeline > [virtual], fe::Initialize< PoisonOp > [virtual], fe::Initialize< PortalOp > [virtual], fe::Initialize< PostGuideCLOp > [virtual], fe::Initialize< PotentialNav > [virtual], fe::Initialize< PreviewOp > [virtual], fe::Initialize< ProjectPoint > [virtual], fe::Initialize< ProxHash > [virtual], fe::Initialize< Proximity > [virtual], fe::Initialize< ProxMultiGrid > [virtual], fe::Initialize< ProxSweep > [virtual], fe::Initialize< PuppetOp > [virtual], fe::Initialize< QuickViewer > [virtual], fe::Initialize< QuiltOp > [virtual], fe::Initialize< RasterOp > [virtual], fe::Initialize< Reactor > [virtual], fe::Initialize< RealFunction > [virtual], fe::Initialize< RecordCookbook > [virtual], fe::Initialize< RecordGroupDebug > [virtual], fe::Initialize< RegionalDebug > [virtual], fe::Initialize< RouteController > [virtual], fe::Initialize< RouteHandler > [virtual], fe::Initialize< RulerOp > [virtual], fe::Initialize< ScatterOp > [virtual], fe::Initialize< Scope > [virtual], fe::Initialize< ScopeDebug > [virtual], fe::Initialize< SelectController > [virtual], fe::Initialize< SemiImplicitInertial > [virtual], fe::Initialize< SignalSender > [virtual], fe::Initialize< SimpleDiffusion > [virtual], fe::Initialize< SimulationPipeline > [virtual], fe::Initialize< Smooth > [virtual], fe::Initialize< SpineFitOp > [virtual], fe::Initialize< SpreadsheetOp > [virtual], fe::Initialize< StashOp > [virtual], fe::Initialize< StratumDrawPoly > [virtual], fe::Initialize< StringEntryController > [virtual], fe::Initialize< SubdivideOp > [virtual], fe::Initialize< SurfaceAttrConformOp > [virtual], fe::Initialize< SurfaceAttrCopyOp > [virtual], fe::Initialize< SurfaceAttrCreateOp > [virtual], fe::Initialize< SurfaceAttrLabOp > [virtual], fe::Initialize< SurfaceAttrRampOp > [virtual], fe::Initialize< SurfaceBindOp > [virtual], fe::Initialize< SurfaceCopyOp > [virtual], fe::Initialize< SurfaceDrawOp > [virtual], fe::Initialize< SurfaceMetricOp > [virtual], fe::Initialize< SurfaceNormalOp > [virtual], fe::Initialize< SurfaceOBJ > [virtual], fe::Initialize< SurfaceOSG > [virtual], fe::Initialize< SurfaceProxyOp > [virtual], fe::Initialize< SurfaceSampleOp > [virtual], fe::Initialize< SurfaceStrata > [virtual], fe::Initialize< SurfaceSummaryOp > [virtual], fe::Initialize< SurfaceViewerOp > [virtual], fe::Initialize< SurfaceWalkOp > [virtual], fe::Initialize< SurfaceWaveOp > [virtual], fe::Initialize< SurfaceWrapCLOp > [virtual], fe::Initialize< SurfaceWrapOp > [virtual], fe::Initialize< SwayCLOp > [virtual], fe::Initialize< Terminal > [virtual], fe::Initialize< TransformCLOp > [virtual], fe::Initialize< TransformManipulator > [virtual], fe::Initialize< Tree > [virtual], fe::Initialize< TreeOp > [virtual], fe::Initialize< TubeOp > [virtual], fe::Initialize< TwistBindOp > [virtual], fe::Initialize< TwistWrapOp > [virtual], fe::Initialize< TypeNative > [virtual], fe::Initialize< UnitRepulse > [virtual], fe::Initialize< UnitThrust > [virtual], fe::Initialize< UnveilOp > [virtual], fe::Initialize< ValidateOp > [virtual], fe::Initialize< ValueManipulator > [virtual], fe::Initialize< VeilOp > [virtual], fe::Initialize< VideoRecorder > [virtual], fe::Initialize< VoiceAL > [virtual], fe::Initialize< WayPathOp > [virtual], fe::Initialize< WayPointOp > [virtual], fe::Initialize< WayRestraintOp > [virtual], fe::Initialize< WindowController > [virtual], fe::Initialize< WindowPipeline > [virtual], fe::Initialize< WorkGang > [virtual], fe::Initialize< WorkOmp > [virtual], fe::Initialize< WorkTbb > [virtual], fe::Initialize< World > [virtual], fe::Initialize< WorldPipeline > [virtual], fe::Initialize< WorldWindow > [virtual], fe::Initialize< XRayOp > [virtual], fe::Initialize< ZeroCatalog > [virtual], and fe::Initialize< ZeroConnection > [virtual].

Public Member Functions

void initializeAll (void)
 
void setActive (bool a_active)
 

Protected Types

typedef void(* InitializeFunction) (Initialized *)
 

Protected Member Functions

void addInitializer (InitializeFunction function)
 

Private Attributes

Array< InitializeFunction > m_initializers
 
bool m_active
 

Detailed Description

Base class providing collective initialization (post-constructor)

This mechanism allows you to supply multiple initialization functions in a class hierarchy, all of which are called. This operation is similar to construction and is intended to supply objects with the ability to do initialization that is not safe or possible during construction.

This mechanism works for multiple inheritance and virtual inheritance. In order to follow the same call order as the constructors, any base classes that may contain initialize functions should precede the Initialize template in the inheritance specification.

To participate, any derived class T supplying an initialize method needs to also derive from Initialize <T>.

class A: public Initialize<A>
{
public:
virtual ~A(void) {}
void initialize(void) { feLog("initialize A\n");
};
class B: public A, public Initialize<B>
{
public:
virtual ~B(void) {}
void initialize(void) { feLog("initialize B\n");
};
int main(int argc,char** argv,char** env)
{
B b;
b.initialize(); // just calls B::initialize
b.initializeAll(); // calls A::initialize and B::initialize
}

The documentation for this class was generated from the following file: