JsonData.h
Go to the documentation of this file.
1 /*
2 * This file is part of ArmarX.
3 *
4 * ArmarX is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 *
8 * ArmarX is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * @author Simon Ottenhaus (simon dot ottenhaus at kit dot edu)
17 * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
18 * GNU General Public License
19 */
20 
21 #pragma once
22 
23 #include "JsonWriter.h"
24 #include "LexerInfo.h"
25 
26 #include <memory>
27 
28 namespace armarx
29 {
30  class JsonData;
31  using JsonDataPtr = std::shared_ptr<JsonData>;
32 
33  class JsonData
34  {
35  public:
36  JsonData();
37  virtual void writeJson(const JsonWriterPtr& writer) = 0;
38  std::string toJsonString(int indenting = 0, const std::string indentChars = " ", bool jsStyleKeys = false);
39 
40  void setLexerStartOffset(LexerInfo lexerStartOffset);
41  void setLexerEndOffset(LexerInfo lexerEndOffset);
44  virtual JsonDataPtr clone() = 0;
45 
46  virtual ~JsonData() = default;
47 
48  private:
49  LexerInfo lexerStartOffset;
50  LexerInfo lexerEndOffset;
51  };
52 }
armarx::JsonData::setLexerEndOffset
void setLexerEndOffset(LexerInfo lexerEndOffset)
Definition: JsonData.cpp:42
armarx::JsonData::getLexerEndOffset
LexerInfo getLexerEndOffset()
Definition: JsonData.cpp:52
armarx::JsonData::~JsonData
virtual ~JsonData()=default
armarx::JsonData::setLexerStartOffset
void setLexerStartOffset(LexerInfo lexerStartOffset)
Definition: JsonData.cpp:37
armarx::JsonWriterPtr
std::shared_ptr< JsonWriter > JsonWriterPtr
Definition: JsonWriter.h:30
armarx::JsonData::writeJson
virtual void writeJson(const JsonWriterPtr &writer)=0
armarx::JsonData::clone
virtual JsonDataPtr clone()=0
armarx::JsonData::JsonData
JsonData()
Definition: JsonData.cpp:25
LexerInfo.h
armarx::JsonData::getLexerStartOffset
LexerInfo getLexerStartOffset()
Definition: JsonData.cpp:47
armarx::JsonData
Definition: JsonData.h:33
armarx::LexerInfo
Definition: LexerInfo.h:30
armarx::JsonDataPtr
std::shared_ptr< JsonData > JsonDataPtr
Definition: JsonData.h:31
armarx::JsonData::toJsonString
std::string toJsonString(int indenting=0, const std::string indentChars=" ", bool jsStyleKeys=false)
Definition: JsonData.cpp:30
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition: ArmarXTimeserver.cpp:28
JsonWriter.h