3
* Copyright 2006 Free Software Foundation, Inc.
5
* This file is part of GNU Radio
7
* GNU Radio is free software; you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License as published by
9
* the Free Software Foundation; either version 3, or (at your option)
12
* GNU Radio is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU General Public License for more details.
17
* You should have received a copy of the GNU General Public License along
18
* with this program; if not, write to the Free Software Foundation, Inc.,
19
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
31
pmt_write_list_tail(pmt_t obj, std::ostream &port)
33
pmt_write(pmt_car(obj), port); // write the car
34
obj = pmt_cdr(obj); // step to cdr
36
if (pmt_is_null(obj)) // ()
39
else if (pmt_is_pair(obj)){ // normal list
41
pmt_write_list_tail(obj, port);
51
pmt_write(pmt_t obj, std::ostream &port)
53
if (pmt_is_bool(obj)){
59
else if (pmt_is_symbol(obj)){
60
port << pmt_symbol_to_string(obj);
62
else if (pmt_is_number(obj)){
63
if (pmt_is_integer(obj))
64
port << pmt_to_long(obj);
65
else if (pmt_is_real(obj))
66
port << pmt_to_double(obj);
67
else if (pmt_is_complex(obj)){
68
std::complex<double> c = pmt_to_complex(obj);
69
port << c.real() << '+' << c.imag() << 'i';
74
else if (pmt_is_null(obj)){
77
else if (pmt_is_pair(obj)){
79
pmt_write_list_tail(obj, port);
81
else if (pmt_is_dict(obj)){
83
// port << "#<dict " << obj << ">";
86
else if (pmt_is_vector(obj)){
88
// port << "#<vector " << obj << ">";
91
else if (pmt_is_uniform_vector(obj)){
93
// port << "#<uniform-vector " << obj << ">";
94
port << "#<uniform-vector>";
99
// port << "#<" << obj << ">";
100
port << "#<unknown>";
104
std::ostream& operator<<(std::ostream &os, pmt_t obj)
111
pmt_write_string(pmt_t obj)
113
std::ostringstream s;
119
pmt_read(std::istream &port)
121
throw pmt_notimplemented("notimplemented: pmt_read", PMT_NIL);
125
pmt_serialize(pmt_t obj, std::ostream &sink)
127
throw pmt_notimplemented("notimplemented: pmt_serialize", obj);
131
* \brief Create obj from portable byte-serial representation
134
pmt_deserialize(std::istream &source)
136
throw pmt_notimplemented("notimplemented: pmt_deserialize", PMT_NIL);