00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 #ifndef MARSHALLERADAPTOR_HPP
00039 #define MARSHALLERADAPTOR_HPP
00040
00041
00042 namespace RTT
00043 {
00044
00048 template< class InputStream, class DeMarshaller, class marsh::MarshallInterface, class OutputStream>
00049 class MarshallerAdaptor
00050 {
00051 public:
00052 };
00053
00054
00055 template< class marsh::MarshallInterface, class OutputStream>
00056 class PropertyAdaptor
00057 {
00058 public:
00059 };
00060
00061
00065 template< class HeaderMarshaller,
00066 class BodyMarshaller >
00067 class MarshallConfiguration
00068 {
00069 typedef typename BodyMarshaller::OutputStream OutputStream;
00070 public:
00074 MarshallConfiguration( OutputStream& o_stream )
00075 : header_marshaller(o_stream), body_marshaller(o_stream), output(o_stream)
00076 {}
00077
00078 HeaderMarshaller& header() { return header_marshaller; }
00079 BodyMarshaller& body() { return body_marshaller; }
00080 OutputStream& stream() { return output; }
00081
00082 protected:
00083 HeaderMarshaller header_marshaller;
00084 BodyMarshaller body_marshaller;
00085
00086 OutputStream& output;
00087 };
00088
00092 template< class InputStream, class HeaderDemarshaller, class BodyDemarshaller>
00093 class DemarshallConfiguration
00094 {
00095 public:
00096 DemarshallConfiguration( InputStream& i_stream )
00097 : header_demarshaller(i_stream), body_demarshaller(i_stream), input(i_stream)
00098 {}
00099
00100 HeaderDemarshaller& header() { return header_demarshaller; }
00101 BodyDemarshaller& body() { return body_demarshaller; }
00102 InputStream& stream() { return input; }
00103
00104 protected:
00105 HeaderDemarshaller header_demarshaller;
00106 BodyDemarshaller body_demarshaller;
00107
00108 InputStream& input;
00109 };
00110
00111
00112 }
00113
00114 #endif