bioformats  5.1.3
Channel.h
1 /*
2  * #%L
3  * OME-XML C++ library for working with OME-XML metadata structures.
4  * %%
5  * Copyright © 2006 - 2015 Open Microscopy Environment:
6  * - Massachusetts Institute of Technology
7  * - National Institutes of Health
8  * - University of Dundee
9  * - Board of Regents of the University of Wisconsin-Madison
10  * - Glencoe Software, Inc.
11  * %%
12  * Redistribution and use in source and binary forms, with or without
13  * modification, are permitted provided that the following conditions are met:
14  *
15  * 1. Redistributions of source code must retain the above copyright notice,
16  * this list of conditions and the following disclaimer.
17  * 2. Redistributions in binary form must reproduce the above copyright notice,
18  * this list of conditions and the following disclaimer in the documentation
19  * and/or other materials provided with the distribution.
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
25  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31  * POSSIBILITY OF SUCH DAMAGE.
32  *
33  * The views and conclusions contained in the software and documentation are
34  * those of the authors and should not be interpreted as representing official
35  * policies, either expressed or implied, of any organization.
36  * #L%
37  */
38 
39 /*─────────────────────────────────────────────────────────────────────────────
40  *
41  * THIS IS AUTOMATICALLY GENERATED CODE. DO NOT MODIFY.
42  *
43  *─────────────────────────────────────────────────────────────────────────────
44  */
45 
46 #ifndef OME_XML_MODEL_CHANNEL_H
47 #define OME_XML_MODEL_CHANNEL_H
48 
49 #include <algorithm>
50 #include <list>
51 #include <stdexcept>
52 #include <string>
53 #include <vector>
54 
55 #include <ome/common/log.h>
56 
57 #include <ome/common/xml/dom/Document.h>
58 #include <ome/common/xml/dom/Element.h>
59 #include <ome/common/xml/dom/Node.h>
60 #include <ome/common/xml/dom/NodeList.h>
61 
62 #include <ome/xml/model/DetectorSettings.h>
63 #include <ome/xml/model/FilterSet.h>
64 #include <ome/xml/model/LightPath.h>
65 #include <ome/xml/model/LightSourceSettings.h>
66 #include <ome/xml/model/Pixels.h>
67 #include <ome/xml/model/detail/OMEModelObject.h>
68 #include <ome/xml/model/enums/AcquisitionMode.h>
69 #include <ome/xml/model/enums/ContrastMethod.h>
70 #include <ome/xml/model/enums/IlluminationType.h>
71 #include <ome/xml/model/primitives/Color.h>
72 #include <ome/xml/model/primitives/PositiveInteger.h>
73 
74 namespace ome
75 {
76  namespace xml
77  {
78  namespace model
79  {
80 
81  // Forward declarations.
82  class Annotation;
83  class OMEModel;
84 
89  {
90  private:
92  ome::compat::shared_ptr<double> pinholeSize;
94  ome::compat::shared_ptr<std::string> name;
96  ome::compat::shared_ptr<ome::xml::model::enums::AcquisitionMode> acquisitionMode;
98  ome::compat::shared_ptr<ome::xml::model::primitives::Color> color;
100  ome::compat::shared_ptr<ome::xml::model::enums::ContrastMethod> contrastMethod;
102  ome::compat::shared_ptr<ome::xml::model::primitives::PositiveInteger> excitationWavelength;
104  ome::compat::shared_ptr<ome::xml::model::enums::IlluminationType> illuminationType;
106  ome::compat::shared_ptr<std::string> fluor;
108  ome::compat::shared_ptr<int32_t> pockelCellSetting;
110  ome::compat::shared_ptr<ome::xml::model::primitives::PositiveInteger> emissionWavelength;
112  ome::compat::shared_ptr<double> ndFilter;
114  std::string id;
116  ome::compat::shared_ptr<ome::xml::model::primitives::PositiveInteger> samplesPerPixel;
118  ome::compat::shared_ptr<ome::xml::model::LightSourceSettings> lightSourceSettings;
120  ome::compat::shared_ptr<ome::xml::model::DetectorSettings> detectorSettings;
122  ome::compat::weak_ptr<ome::xml::model::FilterSet> filterSet;
126  ome::compat::shared_ptr<ome::xml::model::LightPath> lightPath;
128  ome::compat::weak_ptr<ome::xml::model::Pixels> pixels;
129 
130  public:
132  Channel ();
133 
139  Channel (const Channel& copy);
140 
142  virtual
143  ~Channel ();
144 
145 
146 
161  static ome::compat::shared_ptr< Channel>
162  create(const common::xml::dom::Element& element,
164 
165  // Documented in superclass.
166  const std::string&
167  elementName() const;
168 
169  // Documented in superclass.
170  bool
171  validElementName(const std::string& name) const;
172 
173 
174  // -- OMEModelObject API methods --
175 
177  virtual void
178  update(const common::xml::dom::Element& element,
180 
181  public:
182  // -- Channel API methods --
183 
185  bool
186  link (ome::compat::shared_ptr<Reference>& reference,
187  ome::compat::shared_ptr< ome::xml::model::OMEModelObject>& object);
188 
194  ome::compat::shared_ptr<double>
195  getPinholeSize ();
196 
202  const ome::compat::shared_ptr<double>
203  getPinholeSize () const;
204 
210  void
211  setPinholeSize (ome::compat::shared_ptr<double>& pinholeSize);
212 
218  ome::compat::shared_ptr<std::string>
219  getName ();
220 
226  const ome::compat::shared_ptr<std::string>
227  getName () const;
228 
234  void
235  setName (ome::compat::shared_ptr<std::string>& name);
236 
242  ome::compat::shared_ptr<ome::xml::model::enums::AcquisitionMode>
244 
250  const ome::compat::shared_ptr<ome::xml::model::enums::AcquisitionMode>
251  getAcquisitionMode () const;
252 
258  void
259  setAcquisitionMode (ome::compat::shared_ptr<ome::xml::model::enums::AcquisitionMode>& acquisitionMode);
260 
266  ome::compat::shared_ptr<ome::xml::model::primitives::Color>
267  getColor ();
268 
274  const ome::compat::shared_ptr<ome::xml::model::primitives::Color>
275  getColor () const;
276 
282  void
283  setColor (ome::compat::shared_ptr<ome::xml::model::primitives::Color>& color);
284 
290  ome::compat::shared_ptr<ome::xml::model::enums::ContrastMethod>
292 
298  const ome::compat::shared_ptr<ome::xml::model::enums::ContrastMethod>
299  getContrastMethod () const;
300 
306  void
307  setContrastMethod (ome::compat::shared_ptr<ome::xml::model::enums::ContrastMethod>& contrastMethod);
308 
314  ome::compat::shared_ptr<ome::xml::model::primitives::PositiveInteger>
316 
322  const ome::compat::shared_ptr<ome::xml::model::primitives::PositiveInteger>
323  getExcitationWavelength () const;
324 
330  void
331  setExcitationWavelength (ome::compat::shared_ptr<ome::xml::model::primitives::PositiveInteger>& excitationWavelength);
332 
338  ome::compat::shared_ptr<ome::xml::model::enums::IlluminationType>
340 
346  const ome::compat::shared_ptr<ome::xml::model::enums::IlluminationType>
347  getIlluminationType () const;
348 
354  void
355  setIlluminationType (ome::compat::shared_ptr<ome::xml::model::enums::IlluminationType>& illuminationType);
356 
362  ome::compat::shared_ptr<std::string>
363  getFluor ();
364 
370  const ome::compat::shared_ptr<std::string>
371  getFluor () const;
372 
378  void
379  setFluor (ome::compat::shared_ptr<std::string>& fluor);
380 
386  ome::compat::shared_ptr<int32_t>
388 
394  const ome::compat::shared_ptr<int32_t>
395  getPockelCellSetting () const;
396 
402  void
403  setPockelCellSetting (ome::compat::shared_ptr<int32_t>& pockelCellSetting);
404 
410  ome::compat::shared_ptr<ome::xml::model::primitives::PositiveInteger>
412 
418  const ome::compat::shared_ptr<ome::xml::model::primitives::PositiveInteger>
419  getEmissionWavelength () const;
420 
426  void
427  setEmissionWavelength (ome::compat::shared_ptr<ome::xml::model::primitives::PositiveInteger>& emissionWavelength);
428 
434  ome::compat::shared_ptr<double>
435  getNDFilter ();
436 
442  const ome::compat::shared_ptr<double>
443  getNDFilter () const;
444 
450  void
451  setNDFilter (ome::compat::shared_ptr<double>& ndFilter);
452 
458  const std::string&
459  getID () const;
460 
466  void
467  setID (const std::string& id);
468 
474  ome::compat::shared_ptr<ome::xml::model::primitives::PositiveInteger>
476 
482  const ome::compat::shared_ptr<ome::xml::model::primitives::PositiveInteger>
483  getSamplesPerPixel () const;
484 
490  void
491  setSamplesPerPixel (ome::compat::shared_ptr<ome::xml::model::primitives::PositiveInteger>& samplesPerPixel);
492 
498  ome::compat::shared_ptr<ome::xml::model::LightSourceSettings>
500 
506  const ome::compat::shared_ptr<ome::xml::model::LightSourceSettings>
507  getLightSourceSettings () const;
508 
514  void
515  setLightSourceSettings (ome::compat::shared_ptr<ome::xml::model::LightSourceSettings>& lightSourceSettings);
516 
522  ome::compat::shared_ptr<ome::xml::model::DetectorSettings>
524 
530  const ome::compat::shared_ptr<ome::xml::model::DetectorSettings>
531  getDetectorSettings () const;
532 
538  void
539  setDetectorSettings (ome::compat::shared_ptr<ome::xml::model::DetectorSettings>& detectorSettings);
540 
547  ome::compat::weak_ptr<ome::xml::model::FilterSet>
549 
556  const ome::compat::weak_ptr<ome::xml::model::FilterSet>
557  getLinkedFilterSet () const;
558 
564  void
565  linkFilterSet (ome::compat::shared_ptr<ome::xml::model::FilterSet>& filterSet);
566 
576  void
577  unlinkFilterSet (ome::compat::shared_ptr<ome::xml::model::FilterSet>& filterSet);
578 
586 
593  getLinkedAnnotationList () const;
594 
602  const ome::compat::weak_ptr<ome::xml::model::Annotation>&
604 
615  const ome::compat::weak_ptr<ome::xml::model::Annotation>&
617  const ome::compat::shared_ptr<ome::xml::model::Annotation>& annotation);
618 
629  bool
630  linkAnnotation (const ome::compat::shared_ptr<ome::xml::model::Annotation>& annotation);
631 
647  bool
648  unlinkAnnotation (const ome::compat::shared_ptr<ome::xml::model::Annotation>& annotation);
649 
655  ome::compat::shared_ptr<ome::xml::model::LightPath>
656  getLightPath ();
657 
663  const ome::compat::shared_ptr<ome::xml::model::LightPath>
664  getLightPath () const;
665 
671  void
672  setLightPath (ome::compat::shared_ptr<ome::xml::model::LightPath>& lightPath);
673 
679  ome::compat::weak_ptr<ome::xml::model::Pixels>
680  getPixels ();
681 
687  const ome::compat::weak_ptr<ome::xml::model::Pixels>
688  getPixels () const;
689 
695  void
696  setPixels (ome::compat::weak_ptr<ome::xml::model::Pixels>& pixels_BackReference);
697 
698 
701  asXMLElement (common::xml::dom::Document& document) const;
702 
703 
704  protected:
705  // Documented in base class.
708  common::xml::dom::Element& element) const;
709 
710  public:
711  // Documented in superclass.
712  const std::string&
713  getXMLNamespace() const;
714  };
715 
716  }
717  }
718 }
719 
720 #endif // OME_XML_MODEL_CHANNEL_H
721 
722 /*
723  * Local Variables:
724  * mode:C++
725  * End:
726  */
OME model interface (abstract top-level container)
Definition: OMEModel.h:62
void setDetectorSettings(ome::compat::shared_ptr< ome::xml::model::DetectorSettings > &detectorSettings)
Set the DetectorSettings property.
Definition: Channel.cpp:799
ome::compat::shared_ptr< std::string > getFluor()
Get the Fluor property.
Definition: Channel.cpp:645
ome::compat::shared_ptr< ome::xml::model::primitives::PositiveInteger > getSamplesPerPixel()
Get the SamplesPerPixel property.
Definition: Channel.cpp:743
void setColor(ome::compat::shared_ptr< ome::xml::model::primitives::Color > &color)
Set the Color property.
Definition: Channel.cpp:575
ome::compat::shared_ptr< ome::xml::model::enums::ContrastMethod > getContrastMethod()
Get the ContrastMethod property.
Definition: Channel.cpp:582
std::string id
ID property.
Definition: Channel.h:114
Channel()
Default constructor.
Definition: Channel.cpp:170
void linkFilterSet(ome::compat::shared_ptr< ome::xml::model::FilterSet > &filterSet)
Link FilterSet.
Definition: Channel.cpp:819
ome::compat::shared_ptr< std::string > getName()
Get the Name property.
Definition: Channel.cpp:519
const std::string & getXMLNamespace() const
Get the XML namespace for this model object.
Definition: Channel.cpp:1179
virtual void update(const common::xml::dom::Element &element, ome::xml::model::OMEModel &model)
Update the object hierarchy recursively from an XML DOM tree.
Definition: Channel.cpp:255
ome::compat::weak_ptr< ome::xml::model::Pixels > getPixels()
Get the Pixels property.
Definition: Channel.cpp:916
void setSamplesPerPixel(ome::compat::shared_ptr< ome::xml::model::primitives::PositiveInteger > &samplesPerPixel)
Set the SamplesPerPixel property.
Definition: Channel.cpp:757
virtual ~Channel()
Destructor.
Definition: Channel.cpp:225
bool validElementName(const std::string &name) const
Check if a given element name is valid for processing by this model object.
Definition: Channel.cpp:246
DOM Document wrapper.
Definition: Document.h:82
DOM Element wrapper.
Definition: Element.h:66
OME model object (concrete implementation).
Definition: OMEModelObject.h:64
OMEModelObject::indexed_container< ome::xml::model::Annotation, ome::compat::weak_ptr >::type getLinkedAnnotationList() const
Get the linked Annotation list.
Definition: Channel.cpp:841
boost::multi_index_container< Ptr< T >, boost::multi_index::indexed_by< boost::multi_index::random_access<>, boost::multi_index::ordered_unique< boost::multi_index::identity< Ptr< T > >, ome::compat::owner_less< Ptr< T > > > > > type
Multi-index container type.
Definition: OMEModelObject.h:94
Channel model object.
Definition: Channel.h:88
ome::compat::shared_ptr< ome::xml::model::primitives::PositiveInteger > excitationWavelength
ExcitationWavelength property.
Definition: Channel.h:102
const ome::compat::weak_ptr< ome::xml::model::Annotation > & getLinkedAnnotation(OMEModelObject::indexed_container< ome::xml::model::Annotation, ome::compat::weak_ptr >::type::size_type index) const
Get linked Annotation.
Definition: Channel.cpp:847
const std::string & getID() const
Get the ID property.
Definition: Channel.cpp:729
ome::compat::shared_ptr< std::string > name
Name property.
Definition: Channel.h:94
void setNDFilter(ome::compat::shared_ptr< double > &ndFilter)
Set the NDFilter property.
Definition: Channel.cpp:722
ome::compat::shared_ptr< double > getPinholeSize()
Get the PinholeSize property.
Definition: Channel.cpp:498
void setFluor(ome::compat::shared_ptr< std::string > &fluor)
Set the Fluor property.
Definition: Channel.cpp:659
ome::compat::shared_ptr< ome::xml::model::enums::IlluminationType > illuminationType
IlluminationType property.
Definition: Channel.h:104
ome::compat::shared_ptr< ome::xml::model::primitives::PositiveInteger > getExcitationWavelength()
Get the ExcitationWavelength property.
Definition: Channel.cpp:603
ome::compat::shared_ptr< double > ndFilter
NDFilter property.
Definition: Channel.h:112
void setContrastMethod(ome::compat::shared_ptr< ome::xml::model::enums::ContrastMethod > &contrastMethod)
Set the ContrastMethod property.
Definition: Channel.cpp:596
ome::compat::shared_ptr< ome::xml::model::LightPath > lightPath
LightPath property.
Definition: Channel.h:126
void setLightPath(ome::compat::shared_ptr< ome::xml::model::LightPath > &lightPath)
Set the LightPath property.
Definition: Channel.cpp:909
ome::compat::shared_ptr< ome::xml::model::enums::AcquisitionMode > acquisitionMode
AcquisitionMode property.
Definition: Channel.h:96
Multi-index container for efficient ordered insertion and deletion of model object references...
Definition: OMEModelObject.h:85
ome::compat::shared_ptr< ome::xml::model::primitives::PositiveInteger > getEmissionWavelength()
Get the EmissionWavelength property.
Definition: Channel.cpp:687
ome::compat::shared_ptr< int32_t > pockelCellSetting
PockelCellSetting property.
Definition: Channel.h:108
bool linkAnnotation(const ome::compat::shared_ptr< ome::xml::model::Annotation > &annotation)
Link Annotation.
Definition: Channel.cpp:863
Open Microscopy Environment C++ implementation.
Definition: CoreMetadata.cpp:40
ome::compat::weak_ptr< ome::xml::model::FilterSet > filterSet
FilterSetRef reference.
Definition: Channel.h:122
ome::compat::shared_ptr< ome::xml::model::primitives::PositiveInteger > emissionWavelength
EmissionWavelength property.
Definition: Channel.h:110
ome::compat::shared_ptr< ome::xml::model::enums::AcquisitionMode > getAcquisitionMode()
Get the AcquisitionMode property.
Definition: Channel.cpp:540
OMEModelObject::indexed_container< ome::xml::model::Annotation, ome::compat::weak_ptr >::type annotationLinks
AnnotationRef reference (occurs more than once)
Definition: Channel.h:124
void setEmissionWavelength(ome::compat::shared_ptr< ome::xml::model::primitives::PositiveInteger > &emissionWavelength)
Set the EmissionWavelength property.
Definition: Channel.cpp:701
ome::compat::shared_ptr< ome::xml::model::LightSourceSettings > getLightSourceSettings()
Get the LightSourceSettings property.
Definition: Channel.cpp:764
ome::compat::shared_ptr< ome::xml::model::LightSourceSettings > lightSourceSettings
LightSourceSettings property.
Definition: Channel.h:118
void setName(ome::compat::shared_ptr< std::string > &name)
Set the Name property.
Definition: Channel.cpp:533
ome::compat::shared_ptr< double > getNDFilter()
Get the NDFilter property.
Definition: Channel.cpp:708
const ome::compat::weak_ptr< ome::xml::model::Annotation > & setLinkedAnnotation(OMEModelObject::indexed_container< ome::xml::model::Annotation, ome::compat::weak_ptr >::type::size_type index, const ome::compat::shared_ptr< ome::xml::model::Annotation > &annotation)
Set linked Annotation.
Definition: Channel.cpp:853
void setExcitationWavelength(ome::compat::shared_ptr< ome::xml::model::primitives::PositiveInteger > &excitationWavelength)
Set the ExcitationWavelength property.
Definition: Channel.cpp:617
ome::compat::shared_ptr< ome::xml::model::enums::IlluminationType > getIlluminationType()
Get the IlluminationType property.
Definition: Channel.cpp:624
ome::compat::shared_ptr< ome::xml::model::DetectorSettings > getDetectorSettings()
Get the DetectorSettings property.
Definition: Channel.cpp:785
void setLightSourceSettings(ome::compat::shared_ptr< ome::xml::model::LightSourceSettings > &lightSourceSettings)
Set the LightSourceSettings property.
Definition: Channel.cpp:778
ome::compat::weak_ptr< ome::xml::model::Pixels > pixels
Pixels_BackReference back reference.
Definition: Channel.h:128
ome::compat::shared_ptr< ome::xml::model::primitives::Color > color
Color property.
Definition: Channel.h:98
virtual common::xml::dom::Element asXMLElement(common::xml::dom::Document &document) const
Transform the object hierarchy rooted at this element to XML.
Definition: Channel.cpp:937
ome::compat::shared_ptr< int32_t > getPockelCellSetting()
Get the PockelCellSetting property.
Definition: Channel.cpp:666
ome::compat::shared_ptr< ome::xml::model::LightPath > getLightPath()
Get the LightPath property.
Definition: Channel.cpp:895
bool link(ome::compat::shared_ptr< Reference > &reference, ome::compat::shared_ptr< ome::xml::model::OMEModelObject > &object)
Link a given OME model object to this model object.
Definition: Channel.cpp:456
OMEModelObject::indexed_container< ome::xml::model::Annotation, ome::compat::weak_ptr >::type::size_type sizeOfLinkedAnnotationList() const
Get size of linked Annotation list.
Definition: Channel.cpp:835
ome::compat::shared_ptr< double > pinholeSize
PinholeSize property.
Definition: Channel.h:92
void setPockelCellSetting(ome::compat::shared_ptr< int32_t > &pockelCellSetting)
Set the PockelCellSetting property.
Definition: Channel.cpp:680
void unlinkFilterSet(ome::compat::shared_ptr< ome::xml::model::FilterSet > &filterSet)
Unlink FilterSet.
Definition: Channel.cpp:825
ome::compat::shared_ptr< std::string > fluor
Fluor property.
Definition: Channel.h:106
void setPixels(ome::compat::weak_ptr< ome::xml::model::Pixels > &pixels_BackReference)
Set the Pixels property.
Definition: Channel.cpp:930
void setID(const std::string &id)
Set the ID property.
Definition: Channel.cpp:736
ome::compat::shared_ptr< ome::xml::model::enums::ContrastMethod > contrastMethod
ContrastMethod property.
Definition: Channel.h:100
void setIlluminationType(ome::compat::shared_ptr< ome::xml::model::enums::IlluminationType > &illuminationType)
Set the IlluminationType property.
Definition: Channel.cpp:638
static ome::compat::shared_ptr< Channel > create(const common::xml::dom::Element &element, ome::xml::model::OMEModel &model)
Create a Channel model object from DOM element.
Definition: Channel.cpp:230
Boost.Log compatibility.
ome::compat::shared_ptr< ome::xml::model::primitives::Color > getColor()
Get the Color property.
Definition: Channel.cpp:561
ome::compat::weak_ptr< ome::xml::model::FilterSet > getLinkedFilterSet()
Get linked FilterSet.
Definition: Channel.cpp:806
bool unlinkAnnotation(const ome::compat::shared_ptr< ome::xml::model::Annotation > &annotation)
Unlink Annotation.
Definition: Channel.cpp:877
virtual common::xml::dom::Element asXMLElementInternal(common::xml::dom::Document &document, common::xml::dom::Element &element) const
Transform the object hierarchy rooted at this element to XML.
Definition: Channel.cpp:944
const std::string & elementName() const
Get the element name of this model object.
Definition: Channel.cpp:239
ome::compat::shared_ptr< ome::xml::model::primitives::PositiveInteger > samplesPerPixel
SamplesPerPixel property.
Definition: Channel.h:116
ome::compat::shared_ptr< ome::xml::model::DetectorSettings > detectorSettings
DetectorSettings property.
Definition: Channel.h:120
void setAcquisitionMode(ome::compat::shared_ptr< ome::xml::model::enums::AcquisitionMode > &acquisitionMode)
Set the AcquisitionMode property.
Definition: Channel.cpp:554
void setPinholeSize(ome::compat::shared_ptr< double > &pinholeSize)
Set the PinholeSize property.
Definition: Channel.cpp:512
Xerces-C modern C++ wrapper.
Definition: Base.h:53