00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef PORT_H
00012 #define PORT_H
00013
00014 #include "io.h"
00015 #include "portimplt.h"
00016 #include "id.h"
00017
00018 template<class T>
00019 class InPort : public InPortImplT<T>, public In<T>
00020 {
00021 public:
00022 InPort(const Id& n, In<T>& i);
00023
00024 void read(T& t);
00025 void read(T* p, unsigned int n);
00026
00027
00028 Connector* connector();
00029 };
00030
00031 template<class T>
00032 class OutPort : public OutPortImplT<T>, public Out<T>
00033 {
00034 public:
00035 OutPort(const Id& n, Out<T>& i);
00036
00037 void write(const T& t);
00038 void write(const T* p, unsigned int n);
00039
00040
00041 Connector* connector();
00042 };
00043
00044
00046
00047 template<class T>
00048 void read(InPort<T>& s, T& t);
00049
00050 template<class T>
00051 void read(InPort<T>& s, T* p, unsigned int n);
00052
00053 template<class T>
00054 void write(OutPort<T>& s, const T& t);
00055
00056 template<class T>
00057 void write(OutPort<T>& s, const T* p, unsigned int n);
00058
00059
00061 #ifndef SELECT_H
00062 #include "select.h"
00063 #endif
00064
00065
00066 #include "port.cc"
00067
00068 #endif