Lumiera  0.pre.03
»edit your freedom«
explicitplacement.hpp
Go to the documentation of this file.
1 /*
2  EXPLICITPLACEMENT.hpp - special Placement yielding an absolute location (Time,Output) for a MObject
3 
4  Copyright (C)
5  2008, Hermann Vosseler <Ichthyostega@web.de>
6 
7   **Lumiera** is free software; you can redistribute it and/or modify it
8   under the terms of the GNU General Public License as published by the
9   Free Software Foundation; either version 2 of the License, or (at your
10   option) any later version. See the file COPYING for further details.
11 
12 */
13 
14 
30 #ifndef STEAM_MOBJECT_EXPLICITPLACEMENT_H
31 #define STEAM_MOBJECT_EXPLICITPLACEMENT_H
32 
34 
35 
36 
37 namespace steam {
38 namespace mobject {
39 
40 
41 
54  class ExplicitPlacement : public Placement<MObject>
55  {
56  public:
57  const Time time;
58  const Pipe pipe;
59 
60  typedef std::pair<Time,Pipe> SolutionData; //TODO (ichthyo considers better passing of solution by subclass)
61 
66  virtual
68  {
69  return *this;
70  }
71 
72 
73  protected:
74  /* @todo ichthyo considers a much more elegant implementation utilising a subclass
75  * of FixedLocation, which would serve as Placement::LocatingSolution, and
76  * would be used as LocatingPin::chain subobject as well, so that it could
77  * be initialised directly here in the ExplicitPlacement ctor.
78  * (ichthyo: see Trac #100)
79  */
80  ExplicitPlacement (const Placement<MObject>& base, const SolutionData found)
81  : Placement<MObject>(base),
82  time(found.first), pipe(found.second)
83  { };
84 
86 
87  private:
90  };
91 
92 
93 
94 }} // namespace steam::mobject
95 #endif /*STEAM_MOBJECT_EXPLICITPLACEMENT_H*/
A refcounting Handle to an MObject of type MO, used to constrain or explicitly specify the location w...
Definition: trait.hpp:82
Core abstraction: placement of a media object into session context.
Special kind of Placement, where the location of the MObject has been nailed down to a fixed position...
Steam-Layer implementation namespace root.
virtual ExplicitPlacement resolve() const
no need to resolve any further, as this ExplicitPlacement already is the result of a resolve()-call...
ExplicitPlacement & operator=(const ExplicitPlacement &)
copying prohibited, ExplicitPlacement is effectively const!
string resolve(fsys::path iniSpec)
use the general mechanism for resolving a search path to get the absolute path of the setup...
Definition: basic-setup.cpp:56