1 /***************************************************************************
2 * Copyright (C) 2006 by Gerd v. Egidy *
5 * This library is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU Lesser General Public License version *
7 * 2.1 as published by the Free Software Foundation. *
9 * This library is distributed in the hope that it will be useful, *
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
12 * GNU Lesser General Public License for more details. *
14 * You should have received a copy of the GNU Lesser General Public *
15 * License along with this program; if not, write to the *
16 * Free Software Foundation, Inc., *
17 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
18 ***************************************************************************/
19 #ifndef __LIBT2N_COMMAND
20 #define __LIBT2N_COMMAND
24 #include <boost/serialization/serialization.hpp>
25 #include <boost/serialization/tracking.hpp>
30 /** @brief base class for the results that are returned from commands.
35 friend class boost::serialization::access;
36 template<class Archive>
37 void serialize(Archive & /* ar */, const unsigned int /* version */)
45 //BOOST_IS_ABSTRACT(libt2n::result)
46 BOOST_CLASS_TRACKING(libt2n::result, boost::serialization::track_never)
50 /** @brief a command that can be serialized. abstract.
55 friend class boost::serialization::access;
56 template<class Archive>
57 void serialize(Archive & /* ar */, const unsigned int /* version */)
61 /// this calls the wanted target function on the server
62 virtual result* operator()()=0;
66 //BOOST_IS_ABSTRACT(libt2n::command)
67 BOOST_CLASS_TRACKING(libt2n::command, boost::serialization::track_never)