ZOO-Project
service_json.h
Go to the documentation of this file.
1 /*
2  * Author : GĂ©rald FENOY
3  *
4  * Copyright 2014-2020 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*,json_object*,map*,maps**,maps**);
53  json_object* printJResult(maps*,service*,maps*,int);
54  json_object* printJobStatus(maps*,char*);
55  json_object* printJobList(maps*);
56  int createStatusFile(maps*,int);
57  json_object* createStatus(maps*,int);
59  json_object* parseJson(maps*,char*);
60  json_object* json_readFile(maps*,char*);
61  char* getResultPath(maps*,char*);
63  void produceApi(maps*,json_object*);
64  //void printIOTypeJ(maps*, const char*, elements*,json_object*,service*);
65 #ifdef __cplusplus
66 }
67 #endif
68 #endif
char * json_getStatusFilePath(maps *)
Get the status file path.
Definition: service_json.c:1296
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:1077
int createStatusFile(maps *, int)
Create the status file.
Definition: service_json.c:1490
json_object * serviceToJson(service *)
Convert an service to a json object.
Definition: service_json.c:160
char * getResultPath(maps *, char *)
Definition: service_json.c:1314
void parseJRequest(maps *, service *, json_object *, map *, maps **, maps **)
Parse Json Request.
Definition: service_json.c:958
static const char * jcapabilities[4]
Name and corresponding attributes depending on the WPS version.
Definition: service_json.h:42
json_object * printJobStatus(maps *, char *)
Print the jobs status info cf.
Definition: service_json.c:1013
linked list of map pointer
Definition: main_conf_read.y:292
void produceApi(maps *, json_object *)
Produce the JSON object for /api.
Definition: service_json.c:1725
json_object * json_readFile(maps *, char *)
Definition: service_json.c:1343
KVP linked list.
Definition: service.h:244
Metadata information about a full Service.
Definition: main_conf_read.y:329
void printExceptionReportResponseJ(maps *, map *)
Print an OWS ExceptionReport Document and HTTP headers (when required) depending on the code...
Definition: service_json.c:598
void printGetCapabilitiesForProcessJ(registry *, maps *, void *, void *, service *)
Add all the capabilities properties to a json_object.
Definition: service_json.c:446
Profile registry.
Definition: main_conf_read.y:349
json_object * parseJson(maps *, char *)
Definition: service_json.c:1322
json_object * createStatus(maps *, int)
Definition: service_json.c:1364
json_object * printJobList(maps *)
Print the jobs list.
Definition: service_json.c:1048
int json_getStatusFile(maps *)
Create the status file.
Definition: service_json.c:1514
json_object * mapToJson(map *)
Convert a map to a json object.
Definition: service_json.c:54