1/*************************************************************************
2 * libjson-rpc-cpp
3 *************************************************************************
4 * @file specificationwriter.h
5 * @date 30.04.2013
6 * @author Peter Spiess-Knafl <dev@spiessknafl.at>
7 * @license See attached LICENSE.txt
8 ************************************************************************/
9
10#ifndef JSONRPC_CPP_SPECIFICATIONWRITER_H
11#define JSONRPC_CPP_SPECIFICATIONWRITER_H
12
13#include "procedure.h"
14#include "specification.h"
15
16namespace jsonrpc {
17 class SpecificationWriter {
18 public:
19 static Json::Value toJsonValue(const std::vector<Procedure> &procedures);
20 static std::string toString(const std::vector<Procedure> &procedures);
21 static bool toFile(const std::string &filename, const std::vector<Procedure> &procedures);
22
23 private:
24 static Json::Value toJsonLiteral(jsontype_t type);
25 static void procedureToJsonValue(const Procedure &procedure, Json::Value &target);
26 };
27} // namespace jsonrpc
28
29#endif // JSONRPC_CPP_SPECIFICATIONWRITER_H
30