spot
2.11.6.dev
Loading...
Searching...
No Matches
spot
ltsmin
spins_interface.hh
1
// -*- coding: utf-8 -*-
2
// Copyright (C) 2017, 2019 Laboratoire de Recherche et Développement de
3
// l'Epita (LRDE)
4
//
5
// This file is part of Spot, a model checking library.
6
//
7
// Spot is free software; you can redistribute it and/or modify it
8
// under the terms of the GNU General Public License as published by
9
// the Free Software Foundation; either version 3 of the License, or
10
// (at your option) any later version.
11
//
12
// Spot is distributed in the hope that it will be useful, but WITHOUT
13
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14
// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
15
// License for more details.
16
//
17
// You should have received a copy of the GNU General Public License
18
// along with this program. If not, see <http://www.gnu.org/licenses/>.
19
20
#pragma once
21
22
#include <memory>
23
#include <spot/misc/common.hh>
24
25
namespace
spot
26
{
28
// spins interface
29
30
typedef
struct
transition_info
31
{
32
int
* labels;
// edge labels, NULL, or pointer to the edge label(s)
33
int
group;
// holds transition group or -1 if unknown
34
}
transition_info_t
;
35
36
typedef
void (*TransitionCB)(
void
*ctx,
37
transition_info_t
*
transition_info
,
38
int
*dst);
39
44
class
SPOT_API
spins_interface
45
{
46
public
:
47
spins_interface
() =
default
;
48
spins_interface
(
const
std::string& file_arg);
49
~spins_interface
();
50
51
// The various functions that can be called once the object
52
// has been instanciated.
53
void (*get_initial_state)(
void
*to);
54
int (*have_property)();
55
int (*get_successors)(
void
* m,
int
*in, TransitionCB,
void
*arg);
56
int (*get_state_size)();
57
const
char
* (*get_state_variable_name)(
int
var);
58
int (*get_state_variable_type)(
int
var);
59
int (*get_type_count)();
60
const
char
* (*get_type_name)(
int
type);
61
int (*get_type_value_count)(
int
type);
62
const
char
* (*get_type_value_name)(
int
type,
int
value);
63
64
private
:
65
// handle to the dynamic library. The variable is of type lt_dlhandle, but
66
// we need this trick since we cannot put ltdl.h in public headers
67
void
* handle;
68
};
69
70
using
spins_interface_ptr = std::shared_ptr<const spins_interface>;
71
}
spot::spins_interface
Implementation of the PINS interface. This class is a wrapper that, given a file, will compile it w....
Definition
spins_interface.hh:45
spot
Definition
automata.hh:27
spot::transition_info
Definition
spins_interface.hh:31
Please direct any
question
,
comment
, or
bug report
to the Spot mailing list at
spot@lrde.epita.fr
.
Generated on Fri Feb 27 2015 10:00:07 for spot by
1.9.8