11
11
#define _EMBEDDED_RPC__CLIENTSERVERCOMMON_H_
12
12
13
13
#include " erpc_config_internal.h"
14
+ #include " erpc_codec.h"
14
15
#if ERPC_MESSAGE_LOGGING
15
16
#include " erpc_message_loggers.h"
16
17
#endif
@@ -65,7 +66,7 @@ class ClientServerCommon
65
66
#endif
66
67
#if ERPC_MESSAGE_LOGGING
67
68
#ifdef ERPC_OTHER_INHERITANCE
68
- ,
69
+ ,
69
70
#else
70
71
#define ERPC_OTHER_INHERITANCE 1
71
72
:
@@ -74,19 +75,70 @@ class ClientServerCommon
74
75
#endif
75
76
#if ERPC_PRE_POST_ACTION
76
77
#ifdef ERPC_OTHER_INHERITANCE
77
- ,
78
+ ,
78
79
#else
79
80
#define ERPC_OTHER_INHERITANCE 1
80
81
:
81
82
#endif
82
83
PrePostAction ()
83
84
#endif
85
+ #ifdef ERPC_OTHER_INHERITANCE
86
+ ,
87
+ #else
88
+ #define ERPC_OTHER_INHERITANCE 1
89
+ :
90
+ #endif
91
+ m_messageFactory (NULL )
92
+ , m_codecFactory(NULL )
93
+ , m_transport(NULL )
84
94
{};
85
95
86
96
/* !
87
97
* @brief ClientServerCommon destructor
88
98
*/
89
99
~ClientServerCommon (void ){};
100
+
101
+ /* !
102
+ * @brief This function sets message buffer factory to use.
103
+ *
104
+ * @param[in] factory Message buffer factory to use.
105
+ */
106
+ void setMessageBufferFactory (MessageBufferFactory *factory) { m_messageFactory = factory; }
107
+
108
+ /* !
109
+ * @brief This function sets codec factory to use.
110
+ *
111
+ * @param[in] factory Codec factory to use.
112
+ */
113
+ void setCodecFactory (CodecFactory *factory) { m_codecFactory = factory; }
114
+
115
+ /* !
116
+ * @brief This function sets codec factory to use.
117
+ *
118
+ * @return CodecFactory * Codec factory to use.
119
+ */
120
+ CodecFactory * getCodecFactory (void ) { return m_codecFactory; }
121
+
122
+ /* !
123
+ * @brief This function sets transport layer to use.
124
+ *
125
+ * It also set messageBufferFactory to the same as in transport layer.
126
+ *
127
+ * @param[in] transport Transport layer to use.
128
+ */
129
+ void setTransport (Transport *transport) { m_transport = transport; }
130
+
131
+ /* !
132
+ * @brief This function gets transport instance.
133
+ *
134
+ * @return Transport * Pointer to transport instance.
135
+ */
136
+ Transport * getTransport (void ) { return m_transport; }
137
+
138
+ protected:
139
+ MessageBufferFactory *m_messageFactory; // !< Message buffer factory to use.
140
+ CodecFactory *m_codecFactory; // !< Codec to use.
141
+ Transport *m_transport; // !< Transport layer to use.
90
142
};
91
143
92
144
} // namespace erpc
0 commit comments