PulseScenario.h
1/* Distributed under the Apache License, Version 2.0.
2 See accompanying NOTICE file for details.*/
3
4#pragma once
5
6#include "engine/CommonDefs.h"
7#include "engine/PulseConfiguration.h"
8#include "cdm/scenario/SEScenario.h"
9
10class PBScenario;
14class PULSE_DECL PulseScenario : public SEScenario
15{
16 friend PBScenario;//friend the serialization class
17public:
18
19 PulseScenario(std::string const& dataDir = "./");
20 PulseScenario(Logger* logger, std::string const& dataDir = "./");
21 virtual ~PulseScenario();
22
23 void Clear() override;
24 using SEScenario::Copy;
25 void Copy(const PulseScenario& src);
26
27 bool SerializeToString(std::string& output, eSerializationFormat m) const;
28 bool SerializeToFile(const std::string& filename) const;
29 bool SerializeFromString(const std::string& src, eSerializationFormat m);
30 bool SerializeFromFile(const std::string& filename);
31
32 virtual PulseConfiguration& GetConfiguration();
33 virtual const PulseConfiguration* GetConfiguration() const;
34 virtual bool HasConfiguration() const;
35 virtual void InvalidateConfiguration();
36
37protected:
39};
Definition: Logger.h:71
Definition: PBScenario.h:10
Pulse specific configuration parameters for all systems/equipment
Definition: PulseConfiguration.h:20
A Pulse specific scenario (i.e. holds a Pulse configuration object)
Definition: PulseScenario.h:15
friend PBScenario
Definition: PulseScenario.h:16
PulseConfiguration * m_Configuration
Definition: PulseScenario.h:38
Definition: SEScenario.h:12
bool SerializeToString(std::string &output, eSerializationFormat m) const
Definition: SEScenario.cpp:51
bool SerializeFromString(const std::string &src, eSerializationFormat m)
Definition: SEScenario.cpp:59
virtual void Clear()
Definition: SEScenario.cpp:34
virtual void Copy(const SEScenario &src)
Definition: SEScenario.cpp:46
bool SerializeToFile(const std::string &filename) const
Definition: SEScenario.cpp:55
bool SerializeFromFile(const std::string &filename)
Definition: SEScenario.cpp:63

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.