00001 // 00002 // plumbing - C++ wrapper facades for Berkeley sockets 00003 // Copyright (C) 2009 Peter Miller 00004 // 00005 // This program is free software; you can redistribute it and/or modify it 00006 // under the terms of the GNU General Public License, version 3, as published 00007 // by the Free Software Foundation. 00008 // 00009 // This program is distributed in the hope that it will be useful, but WITHOUT 00010 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00011 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 00012 // more details. 00013 // 00014 // You should have received a copy of the GNU General Public License along 00015 // with this program. If not, see <http://www.gnu.org/licenses/>. 00016 // 00017 00018 #ifndef LIBPLUMBING_ENDPOINT_FUNCTOR_H 00019 #define LIBPLUMBING_ENDPOINT_FUNCTOR_H 00020 00021 #include <boost/shared_ptr.hpp> 00022 #include <libplumbing/endpoint.h> 00023 00024 namespace plumbing { 00025 00031 class endpoint_functor 00032 { 00033 public: 00037 virtual ~endpoint_functor(); 00038 00042 endpoint_functor(); 00043 00047 endpoint_functor(const endpoint_functor &); 00048 00052 endpoint_functor &operator=(const endpoint_functor &); 00053 00058 virtual void operator()(const endpoint::pointer &sp) = 0; 00059 }; 00060 00061 } 00062 00063 #endif // LIBPLUMBING_ENDPOINT_FUNCTOR_H 00064 // vim: set ts=4 et