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);