source: branches/PublicaMundi_David-devel/zoo-project/zoo-kernel/service_internal_ruby.h @ 806

Last change on this file since 806 was 453, checked in by djay, 11 years ago

Add the optional Ruby Language Support to the ZOO-Kernel with an API similar to the Python ZOO-API. Small rewrite of Python support. Fix issue #86 and #87. Add usid in [lenv] section, this value is used to generate an unique identifier based on time and the process identifier. This usid is now used to name the stored result or the mapfile generated. Remove *some* warning messages displayed at compilation time.

File size: 2.1 KB
Line 
1/**
2 * Author : Gérald FENOY
3 *
4 * Copyright (c) 2014 GeoLabs SARL
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_SERVICE_INTERNAL_RUBY_H
26#define ZOO_SERVICE_INTERNAL_RUBY_H 1
27
28#pragma once
29
30#define RUBY_GLOBAL_SETUP
31#undef NEED_STRLCAT
32#undef NEED_STRLCPY
33#include "service.h"
34#include "service_internal.h"
35#undef RUBY_EXPORT
36#undef STRCASECMP
37#undef STRNCASECMP
38#undef _
39#include <ruby.h>
40#if ZRUBY_VERSION < 2
41#include <version.h>
42#else
43#include <ruby/version.h>
44#endif
45#if RUBY_VERSION_MINOR==8
46#include <st.h>
47#else
48#include <ruby/st.h>
49#endif
50
51#define MAX_ARGS 3
52struct my_callback {
53  VALUE obj;
54  ID method_id;
55  int nargs;
56  VALUE args[MAX_ARGS];
57};
58
59void ruby_trace_error(maps*);
60VALUE FunCallWrap(VALUE);
61VALUE LoadWrap(VALUE);
62
63VALUE RubyHash_FromMaps(maps*);
64VALUE RubyHash_FromMap(map*);
65
66maps* mapsFromRubyHash(VALUE);
67void createMapsFromRubyHash(maps**,VALUE);
68map* mapFromRubyHash(VALUE);
69
70int zoo_ruby_support(maps**,map*,service*,maps**,maps**);
71
72VALUE RubyTranslate(int,VALUE*,VALUE);
73VALUE RubyUpdateStatus(int,VALUE*,VALUE);
74
75#endif
Note: See TracBrowser for help on using the repository browser.

Search

Context Navigation

ZOO Sponsors

http://www.zoo-project.org/trac/chrome/site/img/geolabs-logo.pnghttp://www.zoo-project.org/trac/chrome/site/img/neogeo-logo.png http://www.zoo-project.org/trac/chrome/site/img/apptech-logo.png http://www.zoo-project.org/trac/chrome/site/img/3liz-logo.png http://www.zoo-project.org/trac/chrome/site/img/gateway-logo.png

Become a sponsor !

Knowledge partners

http://www.zoo-project.org/trac/chrome/site/img/ocu-logo.png http://www.zoo-project.org/trac/chrome/site/img/gucas-logo.png http://www.zoo-project.org/trac/chrome/site/img/polimi-logo.png http://www.zoo-project.org/trac/chrome/site/img/fem-logo.png http://www.zoo-project.org/trac/chrome/site/img/supsi-logo.png http://www.zoo-project.org/trac/chrome/site/img/cumtb-logo.png

Become a knowledge partner

Related links

http://zoo-project.org/img/ogclogo.png http://zoo-project.org/img/osgeologo.png