Minor changes here and there.
[aesalon.git] / include / marshal / Interface.h
blob18a39bd215156df53ca35c5542d2cd8d85a5223e
1 /** Aesalon, a tool to visualize program behaviour in real time.
2 Copyright (C) 2009-2011, Aesalon development team.
4 Aesalon is distributed under the terms of the GNU GPLv3. See
5 the included file LICENSE for more information.
7 @file include/marshal/Interface.h
8 */
10 #ifndef AesalonMarshal_Interface_H
11 #define AesalonMarshal_Interface_H
13 #include "comm/Packet.h"
15 namespace Marshal {
17 class Interface {
18 public:
19 virtual ~Interface() {}
21 virtual Comm::Packet *marshal(Comm::Packet *packet) = 0;
24 } // namespace Marshal
26 #define InstantiateMarshal(type) \
27 extern "C" { Marshal::Interface *AM_Instantiate() { return new type(); } }
29 #endif