ZOO-Project
service_json.h
Go to the documentation of this file.
1 /*
2  * Author : GĂ©rald FENOY
3  *
4  * Copyright 2014 GeoLabs SARL. All rights reserved.
5  *
6  * Permission is hereby granted, free of charge, to any person obtaining a copy
7  * of this software and associated documentation files (the "Software"), to deal
8  * in the Software without restriction, including without limitation the rights
9  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10  * copies of the Software, and to permit persons to whom the Software is
11  * furnished to do so, subject to the following conditions:
12  *
13  * The above copyright notice and this permission notice shall be included in
14  * all copies or substantial portions of the Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22  * THE SOFTWARE.
23  */
24 
25 #ifndef ZOO_JSON_H
26 #define ZOO_JSON_H 1
27 
28 #pragma once
29 
30 #include "response_print.h"
31 #include <stdio.h>
32 #include <ctype.h>
33 #include <service.h>
34 #include <json_object.h>
35 
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
39 
42  static const char* jcapabilities[4]={
43  "jobControlOptions","sync-execute async-execute dismiss",
44  "outputTransmission","value reference"
45  };
46 
47  json_object* mapToJson(map*);
48  json_object* mapsToJson(maps*);
49  json_object* serviceToJson(service*);
52  void parseJRequest(maps*,service* s,json_object*,maps**,maps**);
53  json_object* printJResult(maps*,service*,maps*,int);
54  json_object* printJobList(maps*);
55  int createStatusFile(maps*,int);
57  void produceApi(maps*,json_object*);
58  //void printIOTypeJ(maps*, const char*, elements*,json_object*,service*);
59 #ifdef __cplusplus
60 }
61 #endif
62 #endif
json_object * mapsToJson(maps *)
Convert a maps to a json object.
Definition: service_json.c:97
json_object * printJResult(maps *, service *, maps *, int)
Print the result of an execution.
Definition: service_json.c:963
void parseJRequest(maps *, service *s, json_object *, maps **, maps **)
Parse Json Request.
Definition: service_json.c:878
int createStatusFile(maps *, int)
Create the status file.
Definition: service_json.c:1227
json_object * serviceToJson(service *)
Convert an service to a json object.
Definition: service_json.c:160
static const char * jcapabilities[4]
Name and corresponding attributes depending on the WPS version.
Definition: service_json.h:42
linked list of map pointer
Definition: main_conf_read.y:285
void produceApi(maps *, json_object *)
Produce the JSON object for /api.
Definition: service_json.c:1513
KVP linked list.
Definition: service.h:237
Metadata information about a full Service.
Definition: main_conf_read.y:322
void printExceptionReportResponseJ(maps *, map *)
Print an OWS ExceptionReport Document and HTTP headers (when required) depending on the code...
Definition: service_json.c:566
void printGetCapabilitiesForProcessJ(registry *, maps *, void *, void *, service *)
Add all the capabilities properties to a json_object.
Definition: service_json.c:438
Profile registry.
Definition: main_conf_read.y:342
json_object * printJobList(maps *)
Print the jobs list.
Definition: service_json.c:901
int json_getStatusFile(maps *)
Create the status file.
Definition: service_json.c:1299
json_object * mapToJson(map *)
Convert a map to a json object.
Definition: service_json.c:54