112 lines
4.7 KiB
C++
112 lines
4.7 KiB
C++
/**
|
|
* Jungfraujoch
|
|
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms.
|
|
*
|
|
* The version of the OpenAPI document: 1.0.0-rc.91
|
|
* Contact: filip.leonarski@psi.ch
|
|
*
|
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
* https://openapi-generator.tech
|
|
* Do not edit the class manually.
|
|
*/
|
|
/*
|
|
* Instrument_metadata.h
|
|
*
|
|
* Metadata for a measurement instrument
|
|
*/
|
|
|
|
#ifndef Instrument_metadata_H_
|
|
#define Instrument_metadata_H_
|
|
|
|
|
|
#include <string>
|
|
#include <nlohmann/json.hpp>
|
|
|
|
namespace org::openapitools::server::model
|
|
{
|
|
|
|
/// <summary>
|
|
/// Metadata for a measurement instrument
|
|
/// </summary>
|
|
class Instrument_metadata
|
|
{
|
|
public:
|
|
Instrument_metadata();
|
|
virtual ~Instrument_metadata() = default;
|
|
|
|
|
|
/// <summary>
|
|
/// Validate the current data in the model. Throws a ValidationException on failure.
|
|
/// </summary>
|
|
void validate() const;
|
|
|
|
/// <summary>
|
|
/// Validate the current data in the model. Returns false on error and writes an error
|
|
/// message into the given stringstream.
|
|
/// </summary>
|
|
bool validate(std::stringstream& msg) const;
|
|
|
|
/// <summary>
|
|
/// Helper overload for validate. Used when one model stores another model and calls it's validate.
|
|
/// Not meant to be called outside that case.
|
|
/// </summary>
|
|
bool validate(std::stringstream& msg, const std::string& pathPrefix) const;
|
|
|
|
bool operator==(const Instrument_metadata& rhs) const;
|
|
bool operator!=(const Instrument_metadata& rhs) const;
|
|
|
|
/////////////////////////////////////////////
|
|
/// Instrument_metadata members
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
std::string getSourceName() const;
|
|
void setSourceName(std::string const& value);
|
|
/// <summary>
|
|
/// Type of radiation source. NXmx gives a fixed dictionary, though Jungfraujoch is not enforcing compliance. https://manual.nexusformat.org/classes/base_classes/NXsource.html#nxsource NXsource allows the following: Spallation Neutron Source Pulsed Reactor Neutron Source Reactor Neutron Source Synchrotron X-ray Source Pulsed Muon Source Rotating Anode X-ray Fixed Tube X-ray UV Laser Free-Electron Laser Optical Laser Ion Source UV Plasma Source Metal Jet X-ray
|
|
/// </summary>
|
|
std::string getSourceType() const;
|
|
void setSourceType(std::string const& value);
|
|
bool sourceTypeIsSet() const;
|
|
void unsetSource_type();
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
std::string getInstrumentName() const;
|
|
void setInstrumentName(std::string const& value);
|
|
/// <summary>
|
|
/// Settings specific to XFEL (e.g., every image has to come from TTL trigger, save pulse ID and event code)
|
|
/// </summary>
|
|
bool isPulsedSource() const;
|
|
void setPulsedSource(bool const value);
|
|
bool pulsedSourceIsSet() const;
|
|
void unsetPulsed_source();
|
|
/// <summary>
|
|
/// Settings specific to electron source (e.g., wavelength definition)
|
|
/// </summary>
|
|
bool isElectronSource() const;
|
|
void setElectronSource(bool const value);
|
|
bool electronSourceIsSet() const;
|
|
void unsetElectron_source();
|
|
|
|
friend void to_json(nlohmann::json& j, const Instrument_metadata& o);
|
|
friend void from_json(const nlohmann::json& j, Instrument_metadata& o);
|
|
protected:
|
|
std::string m_Source_name;
|
|
|
|
std::string m_Source_type;
|
|
bool m_Source_typeIsSet;
|
|
std::string m_Instrument_name;
|
|
|
|
bool m_Pulsed_source;
|
|
bool m_Pulsed_sourceIsSet;
|
|
bool m_Electron_source;
|
|
bool m_Electron_sourceIsSet;
|
|
|
|
};
|
|
|
|
} // namespace org::openapitools::server::model
|
|
|
|
#endif /* Instrument_metadata_H_ */
|