00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef INCLUDED_IO_SIGNATURE_H
00024 #define INCLUDED_IO_SIGNATURE_H
00025
00026 #include <gr_runtime_types.h>
00027
00035 gr_io_signature_sptr
00036 gr_make_io_signature(int min_streams, int max_streams,
00037 int sizeof_stream_item);
00038
00047 gr_io_signature_sptr
00048 gr_make_io_signature2(int min_streams, int max_streams,
00049 int sizeof_stream_item1,
00050 int sizeof_stream_item2
00051 );
00052
00062 gr_io_signature_sptr
00063 gr_make_io_signature3(int min_streams, int max_streams,
00064 int sizeof_stream_item1,
00065 int sizeof_stream_item2,
00066 int sizeof_stream_item3
00067 );
00068
00080 gr_io_signature_sptr
00081 gr_make_io_signaturev(int min_streams, int max_streams,
00082 const std::vector<int> &sizeof_stream_items);
00083
00084
00088 class gr_io_signature {
00089 int d_min_streams;
00090 int d_max_streams;
00091 std::vector<int> d_sizeof_stream_item;
00092
00093 gr_io_signature(int min_streams, int max_streams,
00094 const std::vector<int> &sizeof_stream_items);
00095
00096 friend gr_io_signature_sptr
00097 gr_make_io_signaturev(int min_streams,
00098 int max_streams,
00099 const std::vector<int> &sizeof_stream_item);
00100
00101 public:
00102
00103 static const int IO_INFINITE = -1;
00104
00105 ~gr_io_signature ();
00106
00107 int min_streams () const { return d_min_streams; }
00108 int max_streams () const { return d_max_streams; }
00109 int sizeof_stream_item (int index) const;
00110 std::vector<int> sizeof_stream_items() const;
00111 };
00112
00113
00114 #endif