cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
irep_serialization.h
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module: binary irep conversions with hashing
4
5
Author: CM Wintersteiger
6
7
Date: May 2007
8
9
\*******************************************************************/
10
13
14
#ifndef CPROVER_UTIL_IREP_SERIALIZATION_H
15
#define CPROVER_UTIL_IREP_SERIALIZATION_H
16
17
#include <map>
18
#include <iosfwd>
19
#include <string>
20
#include <vector>
21
22
#include "
irep_hash_container.h
"
23
#include "
irep.h
"
24
25
void
write_gb_word
(std::ostream &, std::size_t);
26
void
write_gb_string
(std::ostream &,
const
std::string &);
27
28
class
irep_serializationt
29
{
30
public
:
31
class
ireps_containert
32
{
33
public
:
34
typedef
std::vector<std::pair<bool, irept> >
ireps_on_readt
;
35
ireps_on_readt
ireps_on_read
;
36
37
irep_full_hash_containert
irep_full_hash_container
;
38
typedef
std::map<std::size_t, std::size_t>
ireps_on_writet
;
39
ireps_on_writet
ireps_on_write
;
40
41
typedef
std::vector<bool>
string_mapt
;
42
string_mapt
string_map
;
43
44
typedef
std::vector<std::pair<bool, irep_idt> >
string_rev_mapt
;
45
string_rev_mapt
string_rev_map
;
46
47
void
clear
()
48
{
49
irep_full_hash_container
.clear();
50
ireps_on_write
.clear();
51
ireps_on_read
.clear();
52
string_map
.clear();
53
string_rev_map
.clear();
54
}
55
};
56
57
explicit
irep_serializationt
(
ireps_containert
&ic):
58
ireps_container
(ic)
59
{
60
read_buffer
.resize(1, 0);
61
clear
();
62
};
63
64
const
irept
&
reference_convert
(std::istream &);
65
void
reference_convert
(
const
irept
&irep, std::ostream &);
66
67
irep_idt
read_string_ref
(std::istream &);
68
void
write_string_ref
(std::ostream &,
const
irep_idt
&);
69
70
void
clear
() {
ireps_container
.clear(); }
71
72
static
std::size_t
read_gb_word
(std::istream &);
73
irep_idt
read_gb_string
(std::istream &);
74
75
private
:
76
ireps_containert
&
ireps_container
;
77
std::vector<char>
read_buffer
;
78
79
void
write_irep
(std::ostream &,
const
irept
&irep);
80
irept
read_irep
(std::istream &);
81
};
82
83
#endif
// CPROVER_UTIL_IREP_SERIALIZATION_H
irep_full_hash_containert
Definition
irep_hash_container.h:93
irep_serializationt::ireps_containert
Definition
irep_serialization.h:32
irep_serializationt::ireps_containert::ireps_on_read
ireps_on_readt ireps_on_read
Definition
irep_serialization.h:35
irep_serializationt::ireps_containert::string_rev_map
string_rev_mapt string_rev_map
Definition
irep_serialization.h:45
irep_serializationt::ireps_containert::string_mapt
std::vector< bool > string_mapt
Definition
irep_serialization.h:41
irep_serializationt::ireps_containert::ireps_on_write
ireps_on_writet ireps_on_write
Definition
irep_serialization.h:39
irep_serializationt::ireps_containert::irep_full_hash_container
irep_full_hash_containert irep_full_hash_container
Definition
irep_serialization.h:37
irep_serializationt::ireps_containert::string_map
string_mapt string_map
Definition
irep_serialization.h:42
irep_serializationt::ireps_containert::clear
void clear()
Definition
irep_serialization.h:47
irep_serializationt::ireps_containert::ireps_on_writet
std::map< std::size_t, std::size_t > ireps_on_writet
Definition
irep_serialization.h:38
irep_serializationt::ireps_containert::ireps_on_readt
std::vector< std::pair< bool, irept > > ireps_on_readt
Definition
irep_serialization.h:34
irep_serializationt::ireps_containert::string_rev_mapt
std::vector< std::pair< bool, irep_idt > > string_rev_mapt
Definition
irep_serialization.h:44
irep_serializationt::ireps_container
ireps_containert & ireps_container
Definition
irep_serialization.h:76
irep_serializationt::write_string_ref
void write_string_ref(std::ostream &, const irep_idt &)
Output a string and maintain a reference to it.
Definition
irep_serialization.cpp:211
irep_serializationt::read_irep
irept read_irep(std::istream &)
Definition
irep_serialization.cpp:67
irep_serializationt::read_gb_word
static std::size_t read_gb_word(std::istream &)
Interpret a stream of byte as a 7-bit encoded unsigned number.
Definition
irep_serialization.cpp:143
irep_serializationt::write_irep
void write_irep(std::ostream &, const irept &irep)
Definition
irep_serialization.cpp:22
irep_serializationt::irep_serializationt
irep_serializationt(ireps_containert &ic)
Definition
irep_serialization.h:57
irep_serializationt::read_buffer
std::vector< char > read_buffer
Definition
irep_serialization.h:77
irep_serializationt::reference_convert
const irept & reference_convert(std::istream &)
Definition
irep_serialization.cpp:44
irep_serializationt::read_string_ref
irep_idt read_string_ref(std::istream &)
Read a string reference from the stream.
Definition
irep_serialization.cpp:232
irep_serializationt::read_gb_string
irep_idt read_gb_string(std::istream &)
reads a string from the stream
Definition
irep_serialization.cpp:187
irep_serializationt::clear
void clear()
Definition
irep_serialization.h:70
irept
There are a large number of kinds of tree structured or tree-like data in CPROVER.
Definition
irep.h:364
irep.h
irep_hash_container.h
IREP Hash Container.
write_gb_word
void write_gb_word(std::ostream &, std::size_t)
Write 7 bits of u each time, least-significant byte first, until we have zero.
Definition
irep_serialization.cpp:122
write_gb_string
void write_gb_string(std::ostream &, const std::string &)
outputs the string and then a zero byte.
Definition
irep_serialization.cpp:170
irep_idt
dstringt irep_idt
Definition
verification_result.h:16
util
irep_serialization.h
Generated by
1.17.0