VariantJsonCompressor.h
Go to the documentation of this file.
1/*
2 * This file is part of ArmarX.
3 *
4 * Copyright (C) 2012-2016, High Performance Humanoid Technologies (H2T),
5 * Karlsruhe Institute of Technology (KIT), all rights reserved.
6 *
7 * ArmarX is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 *
11 * ArmarX is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 *
19 * @author Simon Ottenhaus (simon dot ottenhaus at kit dot edu)
20 * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
21 * GNU General Public License
22 */
23
24#pragma once
25
26#include <memory>
27
31
34
35#include "ParseResult.h"
36
37namespace armarx
38{
40 using VariantJsonCompressorPtr = std::shared_ptr<VariantJsonCompressor>;
41
43 {
44 public:
46 static ParseResult CheckUserInput(const std::string& json,
47 const std::string& variantBaseTypeName,
48 const Ice::CommunicatorPtr& communicator);
49 static ParseResult FormatUserInput(std::string& json, int indenting = 2);
50 static std::string Compress(const std::string& json,
51 const std::string& variantBaseTypeName,
52 int indenting = 2);
53 static JsonDataPtr CompressToJson(const std::string& json,
54 const std::string& variantBaseTypeName);
55 static std::string Decompress(const std::string& json,
56 const std::string& variantBaseTypeName);
57 static std::string DecompressBasicVariant(const std::string& value,
58 const std::string& variantBaseTypeName);
59
60 private:
62 const ContainerTypePtr& containerInfo);
63 static JsonDataPtr Decompress(const JsonDataPtr& json,
64 const ContainerTypePtr& containerInfo);
65 static ParseResult CheckUserInput(const JsonDataPtr& json,
66 const ContainerTypePtr& containerInfo,
67 const Ice::CommunicatorPtr& communicator);
68 };
69} // namespace armarx
static std::string Compress(const std::string &json, const std::string &variantBaseTypeName, int indenting=2)
static std::string Decompress(const std::string &json, const std::string &variantBaseTypeName)
static JsonDataPtr CompressToJson(const std::string &json, const std::string &variantBaseTypeName)
static ParseResult CheckUserInput(const std::string &json, const std::string &variantBaseTypeName, const Ice::CommunicatorPtr &communicator)
static ParseResult FormatUserInput(std::string &json, int indenting=2)
static std::string DecompressBasicVariant(const std::string &value, const std::string &variantBaseTypeName)
::IceInternal::Handle<::Ice::Communicator > CommunicatorPtr
Definition IceManager.h:49
This file offers overloads of toIce() and fromIce() functions for STL container types.
std::shared_ptr< JsonData > JsonDataPtr
Definition JsonData.h:31
std::shared_ptr< VariantJsonCompressor > VariantJsonCompressorPtr