[Xorp-cvs] SF.net SVN: xorp:[11662] trunk/xorp
bms_fbsd at users.sourceforge.net
bms_fbsd at users.sourceforge.net
Thu Dec 3 14:10:52 PST 2009
Revision: 11662
http://xorp.svn.sourceforge.net/xorp/?rev=11662&view=rev
Author: bms_fbsd
Date: 2009-12-03 22:10:51 +0000 (Thu, 03 Dec 2009)
Log Message:
-----------
First Boost refactoring pass.
Use boost::noncopyable across the tree, instead of
declaring copy and assignment operations as private.
No functional changes.
Modified Paths:
--------------
trunk/xorp/bgp/bgp_varrw.hh
trunk/xorp/bgp/path_attribute.hh
trunk/xorp/bgp/subnet_route.hh
trunk/xorp/fea/data_plane/control_socket/click_socket.hh
trunk/xorp/fea/data_plane/control_socket/netlink_socket.hh
trunk/xorp/fea/data_plane/control_socket/routing_socket.hh
trunk/xorp/fea/iftree.hh
trunk/xorp/fea/io_ip_manager.hh
trunk/xorp/fea/io_link_manager.hh
trunk/xorp/fea/io_tcpudp_manager.hh
trunk/xorp/libxipc/finder.hh
trunk/xorp/libxipc/finder_client.cc
trunk/xorp/libxipc/finder_tcp.hh
trunk/xorp/libxipc/xrl_cmd_map.hh
trunk/xorp/libxipc/xrl_pf.hh
trunk/xorp/libxipc/xrl_pf_stcp.cc
trunk/xorp/libxorp/asyncio.hh
trunk/xorp/libxorp/buffered_asyncio.hh
trunk/xorp/libxorp/eventloop.hh
trunk/xorp/libxorp/safe_callback_obj.hh
trunk/xorp/libxorp/selector.hh
trunk/xorp/libxorp/task.hh
trunk/xorp/libxorp/timer.hh
trunk/xorp/policy/backend/instruction.hh
trunk/xorp/policy/backend/iv_exec.hh
trunk/xorp/policy/backend/policy_filter.hh
trunk/xorp/policy/backend/policy_filters.hh
trunk/xorp/policy/backend/policy_instr.hh
trunk/xorp/policy/backend/policy_redist_map.hh
trunk/xorp/policy/backend/set_manager.hh
trunk/xorp/policy/backend/single_varrw.hh
trunk/xorp/policy/backend/term_instr.hh
trunk/xorp/policy/code_list.hh
trunk/xorp/policy/common/element.hh
trunk/xorp/policy/configuration.hh
trunk/xorp/policy/dependency.hh
trunk/xorp/policy/node.hh
trunk/xorp/policy/policy_list.hh
trunk/xorp/policy/policy_statement.hh
trunk/xorp/policy/protocol_map.hh
trunk/xorp/policy/semantic_varrw.hh
trunk/xorp/policy/source_match_code_generator.hh
trunk/xorp/policy/term.hh
trunk/xorp/policy/var_map.hh
trunk/xorp/policy/visitor_semantic.hh
trunk/xorp/rib/redist_policy.hh
trunk/xorp/rib/rib.hh
trunk/xorp/rib/rt_tab_redist.hh
trunk/xorp/rip/output.hh
trunk/xorp/rip/output_table.hh
trunk/xorp/rip/output_updates.hh
trunk/xorp/rip/redist.hh
trunk/xorp/rip/route_db.hh
trunk/xorp/rip/route_entry.hh
trunk/xorp/rip/system.hh
trunk/xorp/rip/tools/common.hh
trunk/xorp/rip/xrl_port_manager.hh
trunk/xorp/rtrmgr/op_commands.hh
Modified: trunk/xorp/bgp/bgp_varrw.hh
===================================================================
--- trunk/xorp/bgp/bgp_varrw.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/bgp/bgp_varrw.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -35,9 +35,13 @@
*
* If the route is modified, the user is responsible for retrieving the
* filtered message and deleting it.
+ *
+ * Non-copyable due to inheritance from VarRW<A>.
*/
template <class A>
-class BGPVarRW : public SingleVarRW {
+class BGPVarRW :
+ public SingleVarRW
+{
public:
enum {
VAR_NETWORK4 = VAR_PROTOCOL,
Modified: trunk/xorp/bgp/path_attribute.hh
===================================================================
--- trunk/xorp/bgp/path_attribute.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/bgp/path_attribute.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -33,6 +33,8 @@
#include <set>
#include <vector>
+#include <boost/noncopyable.hpp>
+
#include <openssl/md5.h>
#include "exceptions.hh" // for CorruptMessage exception
@@ -96,7 +98,9 @@
// MAX_ATTRIBUTE must contain the largest attribute number from the enum above
#define MAX_ATTRIBUTE 20
-class PathAttribute {
+class PathAttribute :
+ public boost::noncopyable
+{
public:
enum Flags {
Optional = 0x80,
@@ -253,9 +257,7 @@
uint8_t _type;
private:
- PathAttribute(); // forbidden
- PathAttribute(const PathAttribute &); // forbidden
- PathAttribute& operator=(const PathAttribute &); // forbidden
+ PathAttribute(); // Not directly constructible.
};
@@ -283,8 +285,6 @@
bool encode(uint8_t* buf, size_t &wire_size, const BGPPeerData* peerdata) const;
-
-protected:
private:
OriginType _origin;
};
@@ -312,8 +312,6 @@
bool encode(uint8_t* buf, size_t &wire_size, const BGPPeerData* peerdata) const;
-
-protected:
private:
ASPath *_as_path;
};
@@ -340,7 +338,6 @@
bool encode(uint8_t* buf, size_t &wire_size, const BGPPeerData* peerdata) const;
-protected:
private:
AS4Path *_as_path;
};
@@ -366,7 +363,6 @@
bool encode(uint8_t* buf, size_t &wire_size, const BGPPeerData* peerdata) const;
-protected:
private:
A _next_hop;
};
@@ -391,7 +387,6 @@
bool encode(uint8_t* buf, size_t &wire_size, const BGPPeerData* peerdata) const;
-protected:
private:
uint32_t _med; // XXX stored in host format!
};
@@ -418,7 +413,6 @@
bool encode(uint8_t* buf, size_t &wire_size, const BGPPeerData* peerdata) const;
-protected:
private:
uint32_t _localpref;
@@ -437,7 +431,6 @@
bool encode(uint8_t* buf, size_t &wire_size, const BGPPeerData* peerdata) const;
-protected:
private:
};
@@ -455,7 +448,6 @@
bool encode(uint8_t* buf, size_t &wire_size, const BGPPeerData* peerdata) const;
-protected:
private:
IPv4 _speaker;
AsNum _as;
@@ -475,7 +467,6 @@
bool encode(uint8_t* buf, size_t &wire_size, const BGPPeerData* peerdata) const;
-protected:
private:
IPv4 _speaker;
AsNum _as;
@@ -501,7 +492,6 @@
bool encode(uint8_t* buf, size_t &wire_size, const BGPPeerData* peerdata) const;
-protected:
private:
set <uint32_t> _communities;
};
@@ -522,7 +512,6 @@
bool encode(uint8_t* buf, size_t &wire_size, const BGPPeerData* peerdata) const;
-protected:
private:
IPv4 _originator_id;
};
@@ -543,7 +532,6 @@
bool encode(uint8_t* buf, size_t &wire_size, const BGPPeerData* peerdata) const;
-protected:
private:
list <IPv4> _cluster_list;
};
@@ -581,7 +569,6 @@
bool encode(uint8_t* buf, size_t &wire_size,
const BGPPeerData* peerdata) const;
-protected:
private:
Afi _afi; // Address Family Identifier.
@@ -617,7 +604,6 @@
bool encode(uint8_t* buf, size_t &wire_size,
const BGPPeerData* peerdata) const;
-protected:
private:
Afi _afi; // Address Family Identifier.
@@ -638,7 +624,6 @@
bool encode(uint8_t* buf, size_t &wire_size,
const BGPPeerData* peerdata) const;
-protected:
private:
// storage for information in the attribute.
Modified: trunk/xorp/bgp/subnet_route.hh
===================================================================
--- trunk/xorp/bgp/subnet_route.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/bgp/subnet_route.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -625,10 +625,10 @@
if (_metadata.bump_refcount(delta))
delete this;
}
- //prevent accidental use of default assignment operator
+
+ // Copyable, but not assignable.
const SubnetRoute<A>& operator=(const SubnetRoute<A>&);
-
/**
* _net is the subnet (address and prefix) for this route.
*/
Modified: trunk/xorp/fea/data_plane/control_socket/click_socket.hh
===================================================================
--- trunk/xorp/fea/data_plane/control_socket/click_socket.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/fea/data_plane/control_socket/click_socket.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -28,6 +28,8 @@
#include "libxorp/exceptions.hh"
#include "libxorp/ipvx.hh"
+#include <boost/noncopyable.hpp>
+
class ClickSocketObserver;
struct ClickSocketPlumber;
class RunCommand;
@@ -37,7 +39,9 @@
* on the socket to ClickSocketObservers. The ClickSocket hooks itself
* into the EventLoop and activity usually happens asynchronously.
*/
-class ClickSocket {
+class ClickSocket :
+ public boost::noncopyable
+{
public:
ClickSocket(EventLoop& eventloop);
~ClickSocket();
@@ -490,9 +494,6 @@
void user_click_command_done_cb(RunCommand* run_command, bool success,
const string& error_msg);
- ClickSocket& operator=(const ClickSocket&); // Not implemented
- ClickSocket(const ClickSocket&); // Not implemented
-
private:
static const size_t CLSOCK_BYTES = 8*1024; // Initial guess at msg size
Modified: trunk/xorp/fea/data_plane/control_socket/netlink_socket.hh
===================================================================
--- trunk/xorp/fea/data_plane/control_socket/netlink_socket.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/fea/data_plane/control_socket/netlink_socket.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -27,6 +27,8 @@
#include "libxorp/eventloop.hh"
#include "libxorp/exceptions.hh"
+#include <boost/noncopyable.hpp>
+
class NetlinkSocketObserver;
struct NetlinkSocketPlumber;
@@ -35,7 +37,9 @@
* on the socket to NetlinkSocketObservers. The NetlinkSocket hooks itself
* into the EventLoop and activity usually happens asynchronously.
*/
-class NetlinkSocket {
+class NetlinkSocket :
+ public boost::noncopyable
+{
public:
NetlinkSocket(EventLoop& eventloop);
~NetlinkSocket();
@@ -190,9 +194,6 @@
*/
void io_event(XorpFd fd, IoEventType sm);
- NetlinkSocket& operator=(const NetlinkSocket&); // Not implemented
- NetlinkSocket(const NetlinkSocket&); // Not implemented
-
static const size_t NETLINK_SOCKET_BYTES = 8*1024; // Initial guess at msg size
EventLoop& _eventloop;
Modified: trunk/xorp/fea/data_plane/control_socket/routing_socket.hh
===================================================================
--- trunk/xorp/fea/data_plane/control_socket/routing_socket.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/fea/data_plane/control_socket/routing_socket.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -27,6 +27,8 @@
#include "libxorp/eventloop.hh"
#include "libxorp/exceptions.hh"
+#include <boost/noncopyable.hpp>
+
class RoutingSocketObserver;
struct RoutingSocketPlumber;
@@ -35,7 +37,9 @@
* on the socket to RoutingSocketObservers. The RoutingSocket hooks itself
* into the EventLoop and activity usually happens asynchronously.
*/
-class RoutingSocket {
+class RoutingSocket :
+ public boost::noncopyable
+{
public:
RoutingSocket(EventLoop& eventloop);
~RoutingSocket();
@@ -125,9 +129,6 @@
*/
void io_event(XorpFd fd, IoEventType type);
- RoutingSocket& operator=(const RoutingSocket&); // Not implemented
- RoutingSocket(const RoutingSocket&); // Not implemented
-
private:
static const size_t ROUTING_SOCKET_BYTES = 8*1024; // Initial guess at msg size
Modified: trunk/xorp/fea/iftree.hh
===================================================================
--- trunk/xorp/fea/iftree.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/fea/iftree.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -27,19 +27,22 @@
#include <string>
#include <set>
+#include <boost/noncopyable.hpp>
+
#include "libxorp/ipv4.hh"
#include "libxorp/ipv6.hh"
#include "libxorp/mac.hh"
class IPvX;
-
/**
* Base class for FEA configurable items where the modifications need
* to be held over and propagated later, ie changes happen during a
* transaction but are propagated during the commit.
*/
-class IfTreeItem {
+class IfTreeItem :
+ public boost::noncopyable
+{
public:
IfTreeItem() : _st(CREATED), _soft(false) {}
virtual ~IfTreeItem() {}
@@ -534,7 +537,9 @@
/**
* FEA class for holding physical interface state.
*/
-class IfTreeInterface : public IfTreeItem {
+class IfTreeInterface :
+ public IfTreeItem
+{
public:
typedef map<const string, IfTreeVif*> VifMap;
typedef set<Mac> MacSet;
@@ -765,9 +770,6 @@
string str() const;
private:
- IfTreeInterface(const IfTreeInterface&); // Not implemented
- IfTreeInterface& operator=(const IfTreeInterface&); // Not implemented
-
IfTree& _iftree;
const string _ifname;
uint32_t _pif_index;
@@ -789,7 +791,9 @@
/**
* FEA class for virtual (logical) interface state.
*/
-class IfTreeVif : public IfTreeItem {
+class IfTreeVif :
+ public IfTreeItem
+{
public:
typedef map<const IPv4, IfTreeAddr4*> IPv4Map;
typedef map<const IPv6, IfTreeAddr6*> IPv6Map;
@@ -999,9 +1003,6 @@
string str() const;
private:
- IfTreeVif(const IfTreeVif&); // Not implemented
- IfTreeVif& operator=(const IfTreeVif&); // Not implemented
-
IfTreeInterface& _iface;
const string _vifname;
@@ -1025,7 +1026,9 @@
/**
* Class for holding an IPv4 interface address and address related items.
*/
-class IfTreeAddr4 : public IfTreeItem {
+class IfTreeAddr4 :
+ public IfTreeItem
+{
public:
IfTreeAddr4(const IPv4& addr)
: IfTreeItem(),
@@ -1129,9 +1132,6 @@
string str() const;
private:
- IfTreeAddr4(const IfTreeAddr4&); // Not implemented
- IfTreeAddr4& operator=(const IfTreeAddr4&); // Not implemented
-
IPv4 _addr;
bool _enabled;
@@ -1148,7 +1148,8 @@
/**
* Class for holding an IPv6 interface address and address related items.
*/
-class IfTreeAddr6 : public IfTreeItem
+class IfTreeAddr6 :
+ public IfTreeItem
{
public:
IfTreeAddr6(const IPv6& addr)
@@ -1222,9 +1223,6 @@
string str() const;
private:
- IfTreeAddr6(const IfTreeAddr6&); // Not implemented
- IfTreeAddr6& operator=(const IfTreeAddr6&); // Not implemented
-
IPv6 _addr;
bool _enabled;
Modified: trunk/xorp/fea/io_ip_manager.hh
===================================================================
--- trunk/xorp/fea/io_ip_manager.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/fea/io_ip_manager.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -26,6 +26,7 @@
#include <vector>
#include <set>
#include <map>
+#include <boost/noncopyable.hpp>
#include "libxorp/callback.hh"
#include "libxorp/ipvx.hh"
@@ -62,7 +63,10 @@
* It also allows arbitrary filters to receive the raw IP data for that
* protocol.
*/
-class IoIpComm : public IoIpReceiver {
+class IoIpComm :
+ public boost::noncopyable,
+ public IoIpReceiver
+{
public:
/**
* Filter class.
Modified: trunk/xorp/fea/io_link_manager.hh
===================================================================
--- trunk/xorp/fea/io_link_manager.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/fea/io_link_manager.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -27,6 +27,7 @@
#include <vector>
#include <set>
#include <map>
+#include <boost/noncopyable.hpp>
#include "libxorp/callback.hh"
#include "libxorp/mac.hh"
@@ -56,7 +57,10 @@
* It also allows arbitrary filters to receive the raw link-level data for that
* protocol.
*/
-class IoLinkComm : public IoLinkReceiver {
+class IoLinkComm :
+ public boost::noncopyable,
+ public IoLinkReceiver
+{
public:
/**
* Filter class.
Modified: trunk/xorp/fea/io_tcpudp_manager.hh
===================================================================
--- trunk/xorp/fea/io_tcpudp_manager.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/fea/io_tcpudp_manager.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -24,6 +24,7 @@
#include <map>
#include <set>
+#include <boost/noncopyable.hpp>
#include "libxorp/ipvx.hh"
@@ -37,7 +38,10 @@
/**
* A class that handles I/O TCP/UDP communication.
*/
-class IoTcpUdpComm : public IoTcpUdpReceiver {
+class IoTcpUdpComm :
+ public boost::noncopyable,
+ public IoTcpUdpReceiver
+{
public:
/**
* Joined multicast group class.
Modified: trunk/xorp/libxipc/finder.hh
===================================================================
--- trunk/xorp/libxipc/finder.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/libxipc/finder.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -34,12 +34,15 @@
#include "finder_messenger.hh"
#include "finder_xrl_queue.hh"
+#include <boost/noncopyable.hpp>
class FinderTarget;
class FinderClass;
class FinderEvent;
-class Finder : public FinderMessengerManager
+class Finder :
+ public boost::noncopyable,
+ public FinderMessengerManager
{
public:
typedef list<FinderMessengerBase*> FinderMessengerList;
@@ -154,9 +157,6 @@
EventLoop& eventloop() const { return _e; }
- Finder(const Finder&); // Not implemented
- Finder& operator=(const Finder&); // Not implemented
-
protected:
EventLoop& _e;
XrlCmdMap _cmds;
Modified: trunk/xorp/libxipc/finder_client.cc
===================================================================
--- trunk/xorp/libxipc/finder_client.cc 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/libxipc/finder_client.cc 2009-12-03 22:10:51 UTC (rev 11662)
@@ -19,11 +19,11 @@
// XORP, Inc, 2953 Bunker Hill Lane, Suite 204, Santa Clara, CA 95054, USA;
// http://xorp.net
-
-
#include <functional>
#include <algorithm>
+#include <boost/noncopyable.hpp>
+
#include "finder_module.h"
#include "libxorp/callback.hh"
@@ -192,16 +192,16 @@
* Class that handles resolutions for FinderClient, and puts results
* into FinderClient's resolved table and notifies the client.
*/
-class FinderClientQuery : public FinderClientOneOffOp
+class FinderClientQuery :
+ public boost::noncopyable,
+ public FinderClientOneOffOp
{
public:
typedef FinderClient::QueryCallback QueryCallback;
typedef FinderClient::ResolvedTable ResolvedTable;
private:
- FinderClientQuery(); // Not Impl.
- FinderClientQuery(const FinderClientQuery&); // Not Impl.
- FinderClientQuery& operator=(const FinderClientQuery&); // Not Impl.
+ FinderClientQuery(); // Not directly constructible.
public:
FinderClientQuery(EventLoop& eventloop,
Modified: trunk/xorp/libxipc/finder_tcp.hh
===================================================================
--- trunk/xorp/libxipc/finder_tcp.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/libxipc/finder_tcp.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -34,6 +34,8 @@
#include <vector>
+#include <boost/noncopyable.hpp>
+
#ifdef HAVE_SYS_UIO_H
#include <sys/uio.h>
#endif
@@ -42,7 +44,9 @@
#define MAX_XRL_INPUT_SIZE 65536 // maximum total XRL input buffer
// size on the network.
-class FinderTcpBase {
+class FinderTcpBase :
+ public boost::noncopyable
+{
public:
FinderTcpBase(EventLoop& e, XorpFd fd);
@@ -111,9 +115,6 @@
bool closed() const;
protected:
- FinderTcpBase(const FinderTcpBase&); // Not implemented
- FinderTcpBase& operator=(const FinderTcpBase&); // Not implemented
-
void read_callback(AsyncFileOperator::Event,
const uint8_t*, size_t, size_t);
void write_callback(AsyncFileOperator::Event,
@@ -130,7 +131,9 @@
uint32_t _osize; // output buffer size as advertised.
};
-class FinderTcpListenerBase {
+class FinderTcpListenerBase :
+ public boost::noncopyable
+{
public:
typedef vector<IPv4> AddrList;
typedef vector<IPv4Net> NetList;
@@ -182,9 +185,6 @@
*/
void connect_hook(XorpFd fd, IoEventType type);
- FinderTcpListenerBase(const FinderTcpListenerBase&); // Not impl
- FinderTcpListenerBase& operator=(const FinderTcpListenerBase&); // Not impl
-
EventLoop& eventloop() const { return _e; }
protected:
Modified: trunk/xorp/libxipc/xrl_cmd_map.hh
===================================================================
--- trunk/xorp/libxipc/xrl_cmd_map.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/libxipc/xrl_cmd_map.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -27,6 +27,8 @@
#include <map>
#include <string>
+#include <boost/noncopyable.hpp>
+
#include "libxorp/callback.hh"
#include "xrl.hh"
#include "xrl_error.hh"
@@ -49,7 +51,9 @@
XrlRecvCallback _cb;
};
-class XrlCmdMap {
+class XrlCmdMap :
+ public boost::noncopyable
+{
public:
typedef map<string, XrlCmdEntry> CmdMap;
@@ -79,9 +83,6 @@
protected:
bool add_handler (const XrlCmdEntry& c);
- XrlCmdMap(const XrlCmdMap&); // not implemented
- XrlCmdMap& operator=(const XrlCmdMap&); // not implemented
-
protected:
const string _name;
Modified: trunk/xorp/libxipc/xrl_pf.hh
===================================================================
--- trunk/xorp/libxipc/xrl_pf.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/libxipc/xrl_pf.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -32,6 +32,8 @@
#include "libxorp/timer.hh"
#include "libxorp/exceptions.hh"
+#include <boost/noncopyable.hpp>
+
class Xrl;
class XrlError;
class XrlArgs;
@@ -72,6 +74,7 @@
// XrlPFSender
class XrlPFSender
+ : public boost::noncopyable
{
public:
typedef
@@ -109,10 +112,6 @@
const string& address() const { return _address; }
EventLoop& eventloop() const { return _eventloop; }
-private:
- XrlPFSender(const XrlPFSender&); // Not implemented
- XrlPFSender& operator=(const XrlPFSender&); // Not implemented
-
protected:
EventLoop& _eventloop;
string _address;
Modified: trunk/xorp/libxipc/xrl_pf_stcp.cc
===================================================================
--- trunk/xorp/libxipc/xrl_pf_stcp.cc 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/libxipc/xrl_pf_stcp.cc 2009-12-03 22:10:51 UTC (rev 11662)
@@ -40,6 +40,8 @@
#include <map>
#include <algorithm>
+#include <boost/noncopyable.hpp>
+
#include "libxorp/debug.h"
#include "libxipc/xrl_module.h"
#include "libxorp/xlog.h"
@@ -517,7 +519,9 @@
* in wire format rather than as an Xrl since the existing scheme
* requires additional copy operations.
*/
-class RequestState {
+class RequestState :
+ public boost::noncopyable
+{
public:
typedef XrlPFSender::SendCallback Callback;
@@ -594,10 +598,6 @@
}
private:
- RequestState(const RequestState&); // Not implemented
- RequestState& operator=(const RequestState&); // Not implemented
-
-private:
XrlPFSTCPSender* _p; // parent
uint32_t _sn; // sequence number
uint8_t* _b;
Modified: trunk/xorp/libxorp/asyncio.hh
===================================================================
--- trunk/xorp/libxorp/asyncio.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/libxorp/asyncio.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -33,6 +33,8 @@
#include <fcntl.h>
#endif
+#include <boost/noncopyable.hpp>
+
#include "libxorp/xorpfd.hh"
#include "libxorp/callback.hh"
#include "libxorp/eventloop.hh"
@@ -211,7 +213,9 @@
void flush_buffers();
protected:
- class BufferInfo {
+ class BufferInfo :
+ public boost::noncopyable
+ {
public:
BufferInfo(uint8_t* b, size_t bb, Callback cb)
: _buffer(b), _buffer_bytes(bb), _offset(0), _cb(cb) {}
@@ -228,9 +232,7 @@
void incr_offset(size_t done) { _offset += done; }
private:
- BufferInfo(); // Not implemented
- BufferInfo(const BufferInfo&); // Not implemented
- BufferInfo& operator=(const BufferInfo&); // Not implemented
+ BufferInfo(); // Not directly constructible
uint8_t* _buffer;
size_t _buffer_bytes;
@@ -248,7 +250,10 @@
/**
* @short Write asynchronously to non-blocking file.
*/
-class AsyncFileWriter : public AsyncFileOperator {
+class AsyncFileWriter :
+ public boost::noncopyable,
+ public AsyncFileOperator
+{
public:
/**
* @param e EventLoop that object should associate itself with.
@@ -358,12 +363,12 @@
void flush_buffers();
private:
- AsyncFileWriter(); // Not implemented
- AsyncFileWriter(const AsyncFileWriter&); // Not implemented
- AsyncFileWriter& operator=(const AsyncFileWriter&); // Not implemented
+ AsyncFileWriter(); // Not directly constructible
protected:
- class BufferInfo {
+ class BufferInfo :
+ public boost::noncopyable
+ {
public:
BufferInfo(const uint8_t* b, size_t bb, const Callback& cb)
: _buffer(b), _buffer_bytes(bb), _offset(0), _dst_port(0),
@@ -398,9 +403,7 @@
bool is_sendto() const { return (_is_sendto); }
private:
- BufferInfo(); // Not implemented
- BufferInfo(const BufferInfo&); // Not implemented
- BufferInfo& operator=(const BufferInfo&); // Not implemented
+ BufferInfo(); // Not directly constructible
const vector<uint8_t> _data; // Local copy of the data
const uint8_t* _buffer;
Modified: trunk/xorp/libxorp/buffered_asyncio.hh
===================================================================
--- trunk/xorp/libxorp/buffered_asyncio.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/libxorp/buffered_asyncio.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -32,10 +32,14 @@
#include <fcntl.h>
#endif
+#include <boost/noncopyable.hpp>
+
#include "libxorp/callback.hh"
#include "libxorp/eventloop.hh"
-class BufferedAsyncReader {
+class BufferedAsyncReader :
+ public boost::noncopyable
+{
public:
enum Event {
DATA = 1,
@@ -144,9 +148,7 @@
void stop();
private:
- BufferedAsyncReader(); // Not implemented
- BufferedAsyncReader(const BufferedAsyncReader&); // Not implemented
- BufferedAsyncReader& operator=(const BufferedAsyncReader&); // Not implemented
+ BufferedAsyncReader(); // Not directly constructible
private:
void io_event(XorpFd fd, IoEventType type);
Modified: trunk/xorp/libxorp/eventloop.hh
===================================================================
--- trunk/xorp/libxorp/eventloop.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/libxorp/eventloop.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -37,6 +37,8 @@
#include "selector.hh"
+#include <boost/noncopyable.hpp>
+
/**
* @short Event Loop.
*
@@ -44,7 +46,9 @@
* for Xorp processes. All XorpTimer and select operations should be
* co-ordinated through this interface.
*/
-class EventLoop {
+class EventLoop :
+ public boost::noncopyable
+{
public:
/**
* Constructor
@@ -341,9 +345,6 @@
void set_aggressiveness(int num);
private:
- EventLoop(const EventLoop&); // not implemented
- EventLoop& operator=(const EventLoop&); // not implemented
-
bool do_work(bool can_block);
private:
Modified: trunk/xorp/libxorp/safe_callback_obj.hh
===================================================================
--- trunk/xorp/libxorp/safe_callback_obj.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/libxorp/safe_callback_obj.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -26,6 +26,7 @@
#include <algorithm>
#include <vector>
+#include <boost/noncopyable.hpp>
struct SafeCallbackBase;
@@ -38,8 +39,14 @@
* a CallbackSafeObject is destructed it informs all the callbacks that
* refer to it that this is the case and invalidates (sets to null)
* the object they point to.
+ *
+ * Copy operations are not supported. It's hard to know what the
+ * correct thing to do on assignment or copy, so best bet is not
+ * to do anything.
*/
-class CallbackSafeObject {
+class CallbackSafeObject :
+ public boost::noncopyable
+{
public:
CallbackSafeObject() {}
virtual ~CallbackSafeObject();
@@ -48,13 +55,6 @@
void unref_cb(SafeCallbackBase* scb);
protected:
- // Copy operations are not supported. It's hard to know what the
- // correct thing to do on assignment or copy, so best bet is not
- // to do anything.
- CallbackSafeObject(const CallbackSafeObject&); // Not implemented
- CallbackSafeObject& operator=(const CallbackSafeObject&); // Not implemented
-
-protected:
std::vector<SafeCallbackBase*> _cbs;
};
@@ -64,7 +64,9 @@
* These are object callbacks that are only dispatched if target of
* callback is non-null.
*/
-class SafeCallbackBase {
+class SafeCallbackBase :
+ public boost::noncopyable
+{
public:
/**
* Constructor.
@@ -86,10 +88,9 @@
bool valid() const;
protected:
- SafeCallbackBase(); // Not implemented
- SafeCallbackBase(const SafeCallbackBase&); // Not implemented
- SafeCallbackBase& operator=(const SafeCallbackBase&); // Not implemented
+ SafeCallbackBase(); // Not directly constructible
+protected:
CallbackSafeObject* _cso;
};
Modified: trunk/xorp/libxorp/selector.hh
===================================================================
--- trunk/xorp/libxorp/selector.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/libxorp/selector.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -36,6 +36,8 @@
#include <vector>
+#include <boost/noncopyable.hpp>
+
#include "callback.hh"
#include "ioevents.hh"
#include "task.hh"
@@ -97,7 +99,9 @@
* are invoked when one of the @ref wait_and_dispatch methods is called
* and I/O is pending on the particular descriptors.
*/
-class SelectorList {
+class SelectorList :
+ public boost::noncopyable
+{
public:
/**
@@ -229,9 +233,6 @@
private:
int do_select(struct timeval* to, bool force);
- SelectorList(const SelectorList&); // not implemented
- SelectorList& operator=(const SelectorList&); // not implemented
-
private:
enum {
// correspond to SelectorMask; correspondence checked with
Modified: trunk/xorp/libxorp/task.hh
===================================================================
--- trunk/xorp/libxorp/task.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/libxorp/task.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -30,6 +30,7 @@
#include "round_robin.hh"
#include "callback.hh"
+#include <boost/noncopyable.hpp>
class TaskList;
class TaskNode;
@@ -40,7 +41,10 @@
typedef XorpCallback1<void, XorpTask&>::RefPtr BasicTaskCallback;
-class TaskNode : public RoundRobinObjBase {
+class TaskNode :
+ public boost::noncopyable,
+ public RoundRobinObjBase
+{
public:
TaskNode(TaskList* task_list, BasicTaskCallback cb);
virtual ~TaskNode();
@@ -58,9 +62,6 @@
virtual void run(XorpTask &) {}; // Implemented by children
private:
- TaskNode(const TaskNode&); // not implemented
- TaskNode& operator=(const TaskNode&); // not implemented
-
TaskList* _task_list; // TaskList this node is associated with
BasicTaskCallback _cb;
int _ref_cnt; // Number of referring XorpTask objects
Modified: trunk/xorp/libxorp/timer.hh
===================================================================
--- trunk/xorp/libxorp/timer.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/libxorp/timer.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -33,6 +33,8 @@
#include <sys/time.h>
#endif
+#include <boost/noncopyable.hpp>
+
#include "timeval.hh"
#include "heap.hh"
#include "callback.hh"
@@ -420,8 +422,9 @@
bool expire_one(int worst_priority);
private:
- TimerList(const TimerList&); // not implemented
- TimerList& operator=(const TimerList&); // not implemented
+ // The following is not a noncopyable candidate.
+ TimerList(const TimerList&); // Not copyable.
+ TimerList& operator=(const TimerList&); // Assignable only by self.
private:
// we need one heap for each priority level
@@ -434,8 +437,10 @@
friend class TimerListObserverBase;
};
-
-class TimerNode : public HeapBase {
+class TimerNode :
+ public boost::noncopyable,
+ public HeapBase
+{
protected:
TimerNode(TimerList*, BasicTimerCallback);
virtual ~TimerNode();
Modified: trunk/xorp/policy/backend/instruction.hh
===================================================================
--- trunk/xorp/policy/backend/instruction.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/policy/backend/instruction.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -46,7 +46,10 @@
*
* The Push instruction owns the element.
*/
-class Push : public Instruction {
+class Push :
+ public boost::noncopyable,
+ public Instruction
+{
public:
/**
* Element is owned by Push.
@@ -67,10 +70,6 @@
private:
Element* _elem;
-
- // not implemented
- Push(const Push&);
- Push& operator=(const Push&);
};
/**
@@ -214,7 +213,10 @@
*
* Operation will pop N elements from the stack.
*/
-class NaryInstr : public Instruction {
+class NaryInstr :
+ public boost::noncopyable,
+ public Instruction
+{
public:
/**
* Caller must not delete / modify operation.
@@ -234,10 +236,6 @@
private:
Oper* _op;
-
- // not impl
- NaryInstr(const NaryInstr&);
- NaryInstr& operator=(const NaryInstr&);
};
#endif // __POLICY_BACKEND_INSTRUCTION_HH__
Modified: trunk/xorp/policy/backend/iv_exec.hh
===================================================================
--- trunk/xorp/policy/backend/iv_exec.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/policy/backend/iv_exec.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -25,11 +25,15 @@
#include <stack>
+#include <boost/noncopyable.hpp>
+
#include "libxorp/xorp.h"
+
#include "policy/common/dispatcher.hh"
#include "policy/common/varrw.hh"
#include "policy/common/policy_exception.hh"
#include "policy_profiler.hh"
+
#include "instruction.hh"
#include "set_manager.hh"
#include "term_instr.hh"
@@ -42,7 +46,10 @@
* The execution process may be optimized by not using visitors. Having
* instructions implement a method that returns a flow action directly.
*/
-class IvExec : public InstrVisitor {
+class IvExec :
+ public boost::noncopyable,
+ public InstrVisitor
+{
public:
/**
* A FlowAction is what has to be done with the route. DEFAULT is the
@@ -170,10 +177,6 @@
bool _did_trace;
Next::Flow _ctr_flow;
SUBR* _subr;
-
- // not impelmented
- IvExec(const IvExec&);
- IvExec& operator=(const IvExec&);
};
#endif // __POLICY_BACKEND_IV_EXEC_HH__
Modified: trunk/xorp/policy/backend/policy_filter.hh
===================================================================
--- trunk/xorp/policy/backend/policy_filter.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/policy/backend/policy_filter.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -26,6 +26,8 @@
#include <string>
#include <map>
+#include <boost/noncopyable.hpp>
+
#include "policy/common/varrw.hh"
#include "policy/common/policy_exception.hh"
#include "policy_instr.hh"
@@ -39,7 +41,10 @@
*
* It may accept/reject/modify any route which supports VarRW.
*/
-class PolicyFilter : public FilterBase {
+class PolicyFilter :
+ public boost::noncopyable,
+ public FilterBase
+{
public:
/**
* @short Exception thrown on configuration error.
@@ -85,10 +90,6 @@
IvExec _exec;
PolicyProfiler* _profiler_exec;
SUBR* _subr;
-
- // not impl
- PolicyFilter(const PolicyFilter&);
- PolicyFilter& operator=(const PolicyFilter&);
};
typedef ref_ptr<PolicyFilter> RefPf;
Modified: trunk/xorp/policy/backend/policy_filters.hh
===================================================================
--- trunk/xorp/policy/backend/policy_filters.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/policy/backend/policy_filters.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -23,6 +23,8 @@
#ifndef __POLICY_BACKEND_POLICY_FILTERS_HH__
#define __POLICY_BACKEND_POLICY_FILTERS_HH__
+#include <boost/noncopyable.hpp>
+
#include "policy_filter.hh"
#include "policy/common/filter.hh"
#include "policy/common/varrw.hh"
@@ -35,7 +37,9 @@
* future an option to disable a filter should be added. Although, not running a
* filter is harmless for now [if configured however, state consumes memory].
*/
-class PolicyFilters {
+class PolicyFilters :
+ public boost::noncopyable
+{
public:
class PolicyFiltersErr : public PolicyException {
public:
@@ -87,13 +91,10 @@
*/
FilterBase& whichFilter(const uint32_t& ftype);
+private:
FilterBase* _import_filter;
FilterBase* _export_sm_filter;
FilterBase* _export_filter;
-
- // not impl
- PolicyFilters(const PolicyFilters&);
- PolicyFilters& operator=(const PolicyFilters&);
};
#endif // __POLICY_BACKEND_POLICY_FILTERS_HH__
Modified: trunk/xorp/policy/backend/policy_instr.hh
===================================================================
--- trunk/xorp/policy/backend/policy_instr.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/policy/backend/policy_instr.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -23,17 +23,21 @@
#ifndef __POLICY_BACKEND_POLICY_INSTR_HH__
#define __POLICY_BACKEND_POLICY_INSTR_HH__
-#include "term_instr.hh"
#include <vector>
#include <string>
+#include <boost/noncopyable.hpp>
+#include "term_instr.hh"
+
/**
* @short Container for terms instructions.
*
* A policy instruction is a list of term instructions.
*/
-class PolicyInstr {
+class PolicyInstr :
+ public boost::noncopyable
+{
public:
/**
* @param name name of the policy.
@@ -83,10 +87,6 @@
TermInstr** _terms;
int _termc;
bool _trace;
-
- // not impl
- PolicyInstr(const PolicyInstr&);
- PolicyInstr& operator=(const PolicyInstr&);
};
#endif // __POLICY_BACKEND_POLICY_INSTR_HH__
Modified: trunk/xorp/policy/backend/policy_redist_map.hh
===================================================================
--- trunk/xorp/policy/backend/policy_redist_map.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/policy/backend/policy_redist_map.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -23,10 +23,13 @@
#ifndef __POLICY_BACKEND_POLICY_REDIST_MAP_HH__
#define __POLICY_BACKEND_POLICY_REDIST_MAP_HH__
-#include "policytags.hh"
#include <map>
#include <string>
+#include <boost/noncopyable.hpp>
+
+#include "policytags.hh"
+
/**
* @short A Map between policytags and where the route should be redistributed.
*
@@ -34,7 +37,9 @@
* policytags need to be analyzed. According to these tags, the route must be
* sent to various routing protocols to enable export policies.
*/
-class PolicyRedistMap {
+class PolicyRedistMap :
+ public boost::noncopyable
+{
public:
PolicyRedistMap();
~PolicyRedistMap();
@@ -63,13 +68,7 @@
private:
// XXX: this should be the other way around for faster lookups
typedef map<string,PolicyTags*> Map;
-
Map _map;
-
-
- // not impl
- PolicyRedistMap(const PolicyRedistMap&);
- PolicyRedistMap& operator=(const PolicyRedistMap&);
};
#endif // __POLICY_BACKEND_POLICY_REDIST_MAP_HH__
Modified: trunk/xorp/policy/backend/set_manager.hh
===================================================================
--- trunk/xorp/policy/backend/set_manager.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/policy/backend/set_manager.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -23,12 +23,14 @@
#ifndef __POLICY_BACKEND_SET_MANAGER_HH__
#define __POLICY_BACKEND_SET_MANAGER_HH__
-#include "policy/common/element_base.hh"
-#include "policy/common/policy_exception.hh"
#include <string>
#include <map>
+#include <boost/noncopyable.hpp>
+#include "policy/common/element_base.hh"
+#include "policy/common/policy_exception.hh"
+
/**
* @short Class that owns all sets. It resolves set names to ElemSet's.
*
@@ -36,7 +38,9 @@
* reconfigured, but only the sets. This is currently not the case, but there is
* enough structure to allow it.
*/
-class SetManager {
+class SetManager :
+ public boost::noncopyable
+{
public:
typedef map<string,Element*> SetMap;
@@ -72,13 +76,9 @@
* Zap all sets.
*/
void clear();
+
private:
-
SetMap* _sets;
-
- // not impl
- SetManager(const SetManager&);
- SetManager& operator=(const SetManager&);
};
#endif // __POLICY_BACKEND_SET_MANAGER_HH__
Modified: trunk/xorp/policy/backend/single_varrw.hh
===================================================================
--- trunk/xorp/policy/backend/single_varrw.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/policy/backend/single_varrw.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -25,6 +25,8 @@
#include <list>
+#include <boost/noncopyable.hpp>
+
#include "policy/common/varrw.hh"
#include "policy/common/policy_utils.hh"
#include "policy/common/element_base.hh"
@@ -39,7 +41,10 @@
* Because of this caching, the SingleVarRW is usuable only once. After it has
* done its work once, it has to be re-created.
*/
-class SingleVarRW : public VarRW {
+class SingleVarRW :
+ public boost::noncopyable,
+ public VarRW
+{
public:
/**
* @short Exception thrown on error, such as reading unsupported variable.
@@ -141,10 +146,6 @@
bool _modified[VAR_MAX]; // variable id's that changed
bool _did_first_read;
PolicyTags* _pt;
-
- // not impl
- SingleVarRW(const SingleVarRW&);
- SingleVarRW& operator=(const SingleVarRW&);
};
#endif // __POLICY_BACKEND_SINGLE_VARRW_HH__
Modified: trunk/xorp/policy/backend/term_instr.hh
===================================================================
--- trunk/xorp/policy/backend/term_instr.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/policy/backend/term_instr.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -25,16 +25,20 @@
#include <vector>
#include <string>
+
+#include <boost/noncopyable.hpp>
+
#include "instruction.hh"
#include "policy/common/policy_utils.hh"
-
/**
* @short Container of instructions.
*
* A term is an atomic policy unit which may be executed.
*/
-class TermInstr {
+class TermInstr :
+ public boost::noncopyable
+{
public:
/**
* @param name term name.
@@ -79,10 +83,6 @@
string _name;
Instruction** _instructions;
int _instrc;
-
- // not impl
- TermInstr(const TermInstr&);
- TermInstr& operator=(const TermInstr&);
};
#endif // __POLICY_BACKEND_TERM_INSTR_HH__
Modified: trunk/xorp/policy/code_list.hh
===================================================================
--- trunk/xorp/policy/code_list.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/policy/code_list.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -23,17 +23,19 @@
#ifndef __POLICY_CODE_LIST_HH__
#define __POLICY_CODE_LIST_HH__
-
#include <string>
#include <list>
+#include <boost/noncopyable.hpp>
+
#include "code.hh"
-
/**
* @short A collection of code fragments.
*/
-class CodeList {
+class CodeList :
+ public boost::noncopyable
+{
public:
/**
* Initialize codelist.
@@ -98,10 +100,6 @@
typedef list<Code*> ListCode;
ListCode _codes;
-
- // not impl
- CodeList(const CodeList&);
- CodeList& operator=(const CodeList&);
};
#endif // __POLICY_CODE_LIST_HH__
Modified: trunk/xorp/policy/common/element.hh
===================================================================
--- trunk/xorp/policy/common/element.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/policy/common/element.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -451,7 +451,7 @@
ElemNet();
ElemNet(const char*);
ElemNet(const A&);
- ElemNet(const ElemNet<A>&);
+ ElemNet(const ElemNet<A>&); // copyable
~ElemNet();
string str() const;
@@ -465,8 +465,7 @@
bool operator==(const ElemNet<A>& rhs) const;
private:
- // not implemented
- ElemNet& operator=(const ElemNet<A>&);
+ ElemNet& operator=(const ElemNet<A>&); // not assignable
const A* _net;
Mod _mod;
Modified: trunk/xorp/policy/configuration.hh
===================================================================
--- trunk/xorp/policy/configuration.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/policy/configuration.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -23,7 +23,10 @@
#ifndef __POLICY_CONFIGURATION_HH__
#define __POLICY_CONFIGURATION_HH__
+#include <boost/noncopyable.hpp>
+
#include "policy/common/policy_exception.hh"
+
#include "process_watch_base.hh"
#include "set_map.hh"
#include "policy_map.hh"
@@ -81,7 +84,9 @@
* checking by (dis)allowing the user to do certain actions [such as delete sets
* which are referenced in policies].
*/
-class Configuration {
+class Configuration :
+ public boost::noncopyable
+{
public:
typedef map<string,Code*> CodeMap;
typedef map<string,TagSet*> TagMap;
@@ -397,10 +402,6 @@
TagMap _tagmap;
VarMap _varmap;
FilterManagerBase* _filter_manager; // do not delete
-
- // not impl
- Configuration(const Configuration&);
- Configuration& operator=(const Configuration&);
};
#endif // __POLICY_CONFIGURATION_HH__
Modified: trunk/xorp/policy/dependency.hh
===================================================================
--- trunk/xorp/policy/dependency.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/policy/dependency.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -29,6 +29,8 @@
#include <sstream>
#include <set>
+#include <boost/noncopyable.hpp>
+
#include "policy/common/policy_exception.hh"
/**
@@ -46,7 +48,9 @@
* Having a consistent dependency list allows objects to be deleted correctly.
*/
template <class T>
-class Dependency {
+class Dependency :
+ public boost::noncopyable
+{
public:
// things that depend on object
typedef list<string> DependencyList;
@@ -204,10 +208,6 @@
Map _map;
Pair* findDepend(const string& objectname) const;
-
- // not impl
- Dependency(const Dependency&);
- Dependency& operator=(const Dependency&);
};
#endif // __POLICY_DEPENDENCY_HH__
Modified: trunk/xorp/policy/node.hh
===================================================================
--- trunk/xorp/policy/node.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/policy/node.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -23,17 +23,23 @@
#ifndef __POLICY_NODE_HH__
#define __POLICY_NODE_HH__
+#include <string>
+
+#include <boost/noncopyable.hpp>
+
#include "policy/common/operator_base.hh"
#include "policy/common/varrw.hh"
+
#include "node_base.hh"
#include "visitor.hh"
-#include <string>
/**
* @short A generic node wrapper.
*/
template<class T>
-class NodeAny : public Node {
+class NodeAny :
+ public Node
+{
public:
/**
* @param val the value of the node.
@@ -63,7 +69,10 @@
*
* Such as an IP address.
*/
-class NodeElem : public Node {
+class NodeElem :
+ public boost::noncopyable,
+ public Node
+{
public:
/**
* The node owns the element. Caller must not modify / delete.
@@ -83,10 +92,6 @@
private:
Element* _elem;
-
- // not impl
- NodeElem(const NodeElem&);
- NodeElem& operator=(const NodeElem&);
};
/**
@@ -119,7 +124,10 @@
* The node will thus have two children. It owns both of them.
*
*/
-class NodeBin : public Node {
+class NodeBin :
+ public boost::noncopyable,
+ public Node
+{
public:
/**
* Caller must not delete / modify pointers.
@@ -158,10 +166,6 @@
BinOper* _op;
Node *_left;
Node *_right;
-
- // not impl
- NodeBin(const NodeBin&);
- NodeBin& operator=(const NodeBin&);
};
/**
@@ -169,7 +173,10 @@
*
* The node will have one child. It owns it.
*/
-class NodeUn : public Node {
+class NodeUn :
+ public boost::noncopyable,
+ public Node
+{
public:
/**
* Caller must not delete / modify pointers.
@@ -199,17 +206,16 @@
private:
UnOper* _op;
Node* _node;
-
- // not impl
- NodeUn(const NodeUn&);
- NodeUn& operator=(const NodeUn&);
};
/**
* @short An assignment operation.
*/
-class NodeAssign : public Node {
+class NodeAssign :
+ public boost::noncopyable,
+ public Node
+{
public:
/**
* Caller must not delete / modify pointer.
@@ -241,10 +247,6 @@
string _varid;
BinOper* _mod;
Node* _rvalue;
-
- // not impl
- NodeAssign(const NodeAssign&);
- NodeAssign& operator=(const NodeAssign&);
};
/**
Modified: trunk/xorp/policy/policy_list.hh
===================================================================
--- trunk/xorp/policy/policy_list.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/policy/policy_list.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -23,6 +23,8 @@
#ifndef __POLICY_POLICY_LIST_HH__
#define __POLICY_POLICY_LIST_HH__
+#include <boost/noncopyable.hpp>
+
#include "code_list.hh"
#include "set_map.hh"
#include "var_map.hh"
@@ -40,7 +42,9 @@
* Each policy list is an instantiation of a policy, and thus it hold the
* specific code for this instantiation.
*/
-class PolicyList {
+class PolicyList :
+ public boost::noncopyable
+{
public:
typedef set<uint32_t> TagSet;
typedef map<string,TagSet*> TagMap;
@@ -175,10 +179,6 @@
Term* _mod_term_export;
static uint32_t _pe;
POLICIES _pe_policies;
-
- // not impl
- PolicyList(const PolicyList&);
- PolicyList& operator=(const PolicyList&);
};
#endif // __POLICY_POLICY_LIST_HH__
Modified: trunk/xorp/policy/policy_statement.hh
===================================================================
--- trunk/xorp/policy/policy_statement.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/policy/policy_statement.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -27,20 +27,24 @@
#include <set>
#include <string>
+#include <boost/noncopyable.hpp>
+
#include "libproto/config_node_id.hh"
+
#include "policy/common/policy_exception.hh"
+
#include "set_map.hh"
#include "term.hh"
class PolicyMap;
-
typedef set<string> DEPS;
/**
* @short A policy statement is a collection of terms.
*/
-class PolicyStatement {
-
+class PolicyStatement :
+ public boost::noncopyable
+{
public:
/**
* @short Exception thrown on error such as when no term is found.
@@ -167,10 +171,6 @@
DEPS _policies;
SetMap& _smap;
PolicyMap& _pmap;
-
- // not impl
- PolicyStatement(const PolicyStatement&);
- PolicyStatement& operator=(const PolicyStatement&);
};
#endif // __POLICY_POLICY_STATEMENT_HH__
Modified: trunk/xorp/policy/protocol_map.hh
===================================================================
--- trunk/xorp/policy/protocol_map.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/policy/protocol_map.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -26,6 +26,8 @@
#include <string>
#include <map>
+#include <boost/noncopyable.hpp>
+
/**
* @short Maps protocols to the XORP process name.
*
@@ -33,7 +35,9 @@
* explicitly added. This class is used to map user configuration directives
* regarding protocols to the actual name of the XORP process for that protocol.
*/
-class ProtocolMap {
+class ProtocolMap :
+ public boost::noncopyable
+{
public:
ProtocolMap();
@@ -64,9 +68,6 @@
private:
typedef map<string, string> Map;
- ProtocolMap(const ProtocolMap&); // not impl
- ProtocolMap& operator=(const ProtocolMap&); // not impl
-
Map _map;
};
Modified: trunk/xorp/policy/semantic_varrw.hh
===================================================================
--- trunk/xorp/policy/semantic_varrw.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/policy/semantic_varrw.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -23,12 +23,16 @@
#ifndef __POLICY_SEMANTIC_VARRW_HH__
#define __POLICY_SEMANTIC_VARRW_HH__
+#include <string>
+
+#include <boost/noncopyable.hpp>
+
#include "policy/common/varrw.hh"
#include "policy/common/element_base.hh"
#include "policy/common/element_factory.hh"
#include "policy/common/policy_exception.hh"
+
#include "var_map.hh"
-#include <string>
/**
* @short A VarRW used for semantic checking.
@@ -41,7 +45,10 @@
* The SemanticVarRW will create dummy elements which are initialized to a
* default value. This may not be optimal for semantic checking.
*/
-class SemanticVarRW : public VarRW {
+class SemanticVarRW :
+ public boost::noncopyable,
+ public VarRW
+{
public:
/**
* @short Exception thrown on illegal variable use.
@@ -103,10 +110,6 @@
ElementFactory _ef;
set<Element*> _trash;
-
- // not implemented.
- SemanticVarRW(const SemanticVarRW&);
- SemanticVarRW& operator=(const SemanticVarRW&);
};
#endif // __POLICY_SEMANTIC_VARRW_HH__
Modified: trunk/xorp/policy/source_match_code_generator.hh
===================================================================
--- trunk/xorp/policy/source_match_code_generator.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/policy/source_match_code_generator.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -26,7 +26,10 @@
#include <vector>
#include <string>
+#include <boost/noncopyable.hpp>
+
#include "policy/common/policy_exception.hh"
+
#include "code_generator.hh"
/**
@@ -37,7 +40,10 @@
* It skips dest and action blocks in policies.
* The action block is replaced with the actual policy tagging.
*/
-class SourceMatchCodeGenerator : public CodeGenerator {
+class SourceMatchCodeGenerator :
+ public boost::noncopyable,
+ public CodeGenerator
+{
public:
// bool == tag used
// uint32_t actual tag
@@ -119,10 +125,6 @@
map<string, set<uint32_t> > _protocol_tags;
bool _protocol_statement;
string _policy;
-
- // not impl
- SourceMatchCodeGenerator(const SourceMatchCodeGenerator&);
- SourceMatchCodeGenerator& operator=(const SourceMatchCodeGenerator&);
};
#endif // __POLICY_SOURCE_MATCH_CODE_GENERATOR_HH__
Modified: trunk/xorp/policy/term.hh
===================================================================
--- trunk/xorp/policy/term.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/policy/term.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -23,21 +23,26 @@
#ifndef __POLICY_TERM_HH__
#define __POLICY_TERM_HH__
+#include <map>
+#include <string>
+
+#include <boost/noncopyable.hpp>
+
#include "libproto/config_node_id.hh"
+
#include "policy/common/policy_exception.hh"
-#include <map>
-#include <string>
#include "node_base.hh"
-
/**
* @short A term is an atomic policy unit.
*
* It is a complete specification of how a route needs to be matched, and what
* actions must be taken.
*/
-class Term {
+class Term :
+ public boost::noncopyable
+{
public:
enum BLOCKS {
SOURCE = 0,
@@ -165,10 +170,6 @@
Nodes*& _action_nodes;
string _from_protocol; // The protocol (in the "from" block)
-
- // not impl
- Term(const Term&);
- Term& operator=(const Term&);
};
#endif // __POLICY_TERM_HH__
Modified: trunk/xorp/policy/var_map.hh
===================================================================
--- trunk/xorp/policy/var_map.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/policy/var_map.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -23,11 +23,15 @@
#ifndef __POLICY_VAR_MAP_HH__
#define __POLICY_VAR_MAP_HH__
+#include <string>
+#include <map>
+
+#include <boost/noncopyable.hpp>
+
#include "policy/common/policy_exception.hh"
#include "policy/common/varrw.hh"
+
#include "process_watch.hh"
-#include <string>
-#include <map>
/**
* @short A VarMap contains all information for legal protocol variables.
@@ -38,7 +42,9 @@
*
* This is crutial for semantic checking.
*/
-class VarMap {
+class VarMap :
+ public boost::noncopyable
+{
public:
/**
* @short Exception thrown on VarMap errors such as on unknown variables.
@@ -177,10 +183,6 @@
typedef VariableMap MetaVarContainer;
MetaVarContainer _metavars;
-
- // not impl
- VarMap(const VarMap&);
- VarMap& operator=(const VarMap&);
};
#endif // __POLICY_VAR_MAP_HH__
Modified: trunk/xorp/policy/visitor_semantic.hh
===================================================================
--- trunk/xorp/policy/visitor_semantic.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/policy/visitor_semantic.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -23,9 +23,13 @@
#ifndef __POLICY_VISITOR_SEMANTIC_HH__
#define __POLICY_VISITOR_SEMANTIC_HH__
+#include <boost/noncopyable.hpp>
+
#include "libxorp/xorp.h"
+
#include "policy/common/varrw.hh"
#include "policy/common/dispatcher.hh"
+
#include "visitor.hh"
#include "semantic_varrw.hh"
#include "set_map.hh"
@@ -39,7 +43,10 @@
* checking must be performed realtive to the instantiation. [Generic semantic
* checking may be accomplished too, but it is not done.]
*/
-class VisitorSemantic : public Visitor {
+class VisitorSemantic :
+ public boost::noncopyable,
+ public Visitor
+{
public:
enum PolicyType {
IMPORT,
@@ -107,10 +114,6 @@
PolicyType _ptype;
set<Element*> _trash;
bool _reject;
-
- // not impl
- VisitorSemantic(const VisitorSemantic&);
- VisitorSemantic& operator=(const VisitorSemantic&);
};
#endif // __POLICY_VISITOR_SEMANTIC_HH__
Modified: trunk/xorp/rib/redist_policy.hh
===================================================================
--- trunk/xorp/rib/redist_policy.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/rib/redist_policy.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -22,6 +22,8 @@
#ifndef __RIB_REDIST_POLICY_HH__
#define __RIB_REDIST_POLICY_HH__
+#include <boost/noncopyable.hpp>
+
/**
* @short Base class for Redistribution Policy objects.
*
@@ -48,7 +50,9 @@
* @short Base class for Unary Redistribution Policy objects.
*/
template <typename A>
-class RedistUnaryOp {
+class RedistUnaryOp :
+ public boost::noncopyable
+{
public:
/**
* Constructor.
@@ -61,8 +65,6 @@
private:
// The following are not implemented
RedistUnaryOp();
- RedistUnaryOp(const RedistUnaryOp<A>&);
- RedistUnaryOp<A>& operator=(const RedistUnaryOp<A>&);
protected:
const RedistPolicy<A>* _p1;
@@ -72,7 +74,10 @@
* @short Base class for Binary Redistribution Policy objects.
*/
template <typename A>
-class RedistBinaryOp : public RedistPolicy<A> {
+class RedistBinaryOp :
+ public boost::noncopyable,
+ public RedistPolicy<A>
+{
public:
/**
* Constructor.
@@ -89,8 +94,6 @@
private:
// The following are not implemented
RedistBinaryOp();
- RedistBinaryOp(const RedistBinaryOp<A>&);
- RedistBinaryOp<A>& operator=(const RedistBinaryOp<A>&);
protected:
const RedistPolicy<A>* _p1;
Modified: trunk/xorp/rib/rib.hh
===================================================================
--- trunk/xorp/rib/rib.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/rib/rib.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -25,6 +25,8 @@
#include <string>
+#include <boost/noncopyable.hpp>
+
#include "libxorp/xorp.h"
#include "libxorp/ipv4.hh"
#include "libxorp/ipv6.hh"
@@ -73,7 +75,9 @@
* taken place to route to command to the right RIB.
*/
template<class A>
-class RIB {
+class RIB :
+ public boost::noncopyable
+{
public:
/**
* RIB Constructor.
@@ -696,21 +700,10 @@
IPPeerNextHop<A>* find_or_create_peer_nexthop(const A& addr);
/**
- * not implemented - force use of default copy constuctor to fail.
- */
- RIB(const RIB& );
-
- /**
- * not implemented - force use of default assignment operator to fail.
- */
- RIB& operator=(const RIB& );
-
- /**
* Flush out routing table changes to other processes.
*/
void flush();
-
protected:
RibManager& _rib_manager;
EventLoop& _eventloop;
Modified: trunk/xorp/rib/rt_tab_redist.hh
===================================================================
--- trunk/xorp/rib/rt_tab_redist.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/rib/rt_tab_redist.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -22,6 +22,8 @@
#ifndef __RIB_RT_TAB_REDIST_HH__
#define __RIB_RT_TAB_REDIST_HH__
+#include <boost/noncopyable.hpp>
+
#include "rt_tab_base.hh"
template <typename A>
@@ -141,7 +143,8 @@
* associated with it.
*/
template <typename A>
-class Redistributor
+class Redistributor :
+ public boost::noncopyable
{
public:
class RedistEventInterface {
@@ -249,10 +252,6 @@
RedistOutput<A>* output() { return _output; }
private:
- // The following are not implemented
- Redistributor(const Redistributor<A>&);
- Redistributor<A>& operator=(const Redistributor<A>&);
-
// These are nested classes and need to be friends to invoke methods in
// enclosing class.
friend class RedistEventInterface;
@@ -282,7 +281,8 @@
* Base class for propagaing output of route add and delete messages.
*/
template <typename A>
-class RedistOutput
+class RedistOutput :
+ public boost::noncopyable
{
public:
RedistOutput(Redistributor<A>* r);
@@ -311,11 +311,6 @@
void announce_fatal_error() { _r->output_event().fatal_error(); }
private:
- // The following are not implemented
- RedistOutput(const RedistOutput<A>&);
- RedistOutput<A>& operator=(const RedistOutput<A>&);
-
-private:
Redistributor<A>* _r;
};
Modified: trunk/xorp/rip/output.hh
===================================================================
--- trunk/xorp/rip/output.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/rip/output.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -30,6 +30,8 @@
#include "libxorp/debug.h"
#include "libxorp/eventloop.hh"
+#include <boost/noncopyable.hpp>
+
#include "policy/backend/policy_filters.hh"
#include "port.hh"
@@ -49,7 +51,9 @@
* packets. Timers elsewhere schedule the start of each packet train.
*/
template <typename A>
-class OutputBase {
+class OutputBase :
+ public boost::noncopyable
+{
public:
typedef A Addr;
typedef IPNet<A> Net;
@@ -133,10 +137,6 @@
*/
bool do_filtering(RouteEntry<A>* r);
-private:
- OutputBase(const OutputBase<A>& o); // Not implemented
- OutputBase<A>& operator=(const OutputBase<A>& o); // Not implemented
-
protected:
EventLoop& _e;
Port<A>& _port; // Port associated with output
Modified: trunk/xorp/rip/output_table.hh
===================================================================
--- trunk/xorp/rip/output_table.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/rip/output_table.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -35,9 +35,11 @@
* intended use is for solicited and unsolicited routing table.
*
* Specialized implementations exist for IPv4 and IPv6.
+ * Non-copyable due to inheritance from OutputBase<A>.
*/
template <typename A>
-class OutputTable : public OutputBase<A>
+class OutputTable :
+ public OutputBase<A>
{
public:
OutputTable(EventLoop& e,
@@ -52,16 +54,10 @@
protected:
void output_packet();
-
void start_output_processing();
-
void stop_output_processing();
private:
- OutputTable(const OutputTable<A>& o); // Not implemented
- OutputTable<A>& operator=(const OutputTable<A>& o); // Not implemented
-
-private:
RouteWalker<A> _rw; // RouteWalker
bool _rw_valid; // RouteWalker is valid (no reset req).
};
Modified: trunk/xorp/rip/output_updates.hh
===================================================================
--- trunk/xorp/rip/output_updates.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/rip/output_updates.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -36,9 +36,11 @@
* triggered update packets.
*
* Specialized implementations exist for IPv4 and IPv6.
+ * Non-copyable due to inheritance from OutputBase<A>.
*/
template <typename A>
-class OutputUpdates : public OutputBase<A>
+class OutputUpdates :
+ public OutputBase<A>
{
public:
OutputUpdates(EventLoop& e,
@@ -68,10 +70,6 @@
void stop_output_processing();
private:
- OutputUpdates(const OutputUpdates<A>& o); // Not implemented
- OutputUpdates<A>& operator=(const OutputUpdates<A>& o); // Not implemented
-
-private:
UpdateQueue<A>& _uq;
typename UpdateQueue<A>::ReadIterator _uq_iter;
};
Modified: trunk/xorp/rip/redist.hh
===================================================================
--- trunk/xorp/rip/redist.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/rip/redist.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -41,9 +41,12 @@
* associated with them. set_allow_timers() is called when the
* RedistTable is going to be withdrawn. This allows routes to be
* advertised as unreachable via host before they are deleted.
+ *
+ * Non-copyable due to inheritance from RouteEntryOrigin<A>.
*/
template <typename A>
-class RedistRouteOrigin : public RouteEntryOrigin<A>
+class RedistRouteOrigin :
+ public RouteEntryOrigin<A>
{
public:
RedistRouteOrigin() : RouteEntryOrigin<A>(true) {}
@@ -61,10 +64,6 @@
* expiry.
*/
uint32_t deletion_secs() const;
-
-private:
- RedistRouteOrigin(const RedistRouteOrigin&); // not impl
- RedistRouteOrigin& operator=(const RedistRouteOrigin&); // not impl
};
@@ -72,7 +71,9 @@
* @short Store for redistributed routes.
*/
template <typename A>
-class RouteRedistributor {
+class RouteRedistributor :
+ public boost::noncopyable
+{
public:
typedef A Addr;
typedef IPNet<A> Net;
@@ -137,9 +138,6 @@
bool withdrawing_routes() const;
private:
- RouteRedistributor(const RouteRedistributor& ); // not impl
- RouteRedistributor& operator=(const RouteRedistributor& ); // not impl
-
/**
* Periodic timer callback for withdrawing a batch of routes. The timer
* is triggered by @ref withdraw_routes().
Modified: trunk/xorp/rip/route_db.hh
===================================================================
--- trunk/xorp/rip/route_db.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/rip/route_db.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -27,6 +27,7 @@
#include "libxorp/ref_ptr.hh"
#include <map>
+#include <boost/noncopyable.hpp>
#include "policy/backend/policy_filters.hh"
@@ -69,7 +70,9 @@
* The @ref RouteWalker class provides a way to walk the routes held.
*/
template <typename A>
-class RouteDB {
+class RouteDB :
+ public boost::noncopyable
+{
public:
typedef A Addr;
typedef IPNet<A> Net;
@@ -215,9 +218,6 @@
Trace& trace() { return _trace; }
protected:
- RouteDB(const RouteDB&); // not implemented
- RouteDB& operator=(const RouteDB&); // not implemented
-
void expire_route(Route* r);
void set_expiry_timer(Route* r);
@@ -262,7 +262,8 @@
* expensive.
*/
template <typename A>
-class RouteWalker
+class RouteWalker :
+ public boost::noncopyable
{
public:
typedef A Addr;
@@ -326,10 +327,6 @@
*/
void reset();
-protected:
- RouteWalker(const RouteWalker&); // Not impl
- RouteWalker& operator=(const RouteWalker&); // Not impl
-
private:
static const Net NO_NET;
Modified: trunk/xorp/rip/route_entry.hh
===================================================================
--- trunk/xorp/rip/route_entry.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/rip/route_entry.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -27,11 +27,11 @@
#include "libxorp/ipnet.hh"
#include "libxorp/timer.hh"
+#include <boost/noncopyable.hpp>
+
#include "policy/backend/policytags.hh"
-
template<typename A> class RouteEntryOrigin;
-
template<typename A> class RouteEntryRef;
/**
@@ -42,7 +42,9 @@
* Only IPv4 and IPv6 types may be supplied.
*/
template<typename A>
-class RouteEntry {
+class RouteEntry :
+ public boost::noncopyable
+{
public:
typedef A Addr;
typedef IPNet<A> Net;
@@ -231,13 +233,9 @@
uint16_t ref_cnt() const { return _ref_cnt; }
protected:
- RouteEntry(const RouteEntry&); // Not implemented.
- RouteEntry& operator=(const RouteEntry&); // Not implemented.
-
void dissociate();
void associate(Origin* o);
-
protected:
Net _net;
Addr _nh;
@@ -308,7 +306,9 @@
* Only IPv4 and IPv6 types may be supplied.
*/
template <typename A>
-class RouteEntryOrigin {
+class RouteEntryOrigin :
+ public boost::noncopyable
+{
public:
typedef RouteEntry<A> Route;
typedef IPNet<A> Net;
@@ -374,10 +374,6 @@
*/
virtual uint32_t deletion_secs() const = 0;
-private:
- RouteEntryOrigin(const RouteEntryOrigin& reo); // Not impl
- RouteEntryOrigin& operator=(const RouteEntryOrigin&); // Not impl
-
protected:
struct RouteEntryStore* _rtstore;
Modified: trunk/xorp/rip/system.hh
===================================================================
--- trunk/xorp/rip/system.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/rip/system.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -24,6 +24,8 @@
#define __RIP_SYSTEM_HH__
#include <map>
+#include <boost/noncopyable.hpp>
+
#include "trace.hh"
#include "route_db.hh"
#include "port_manager.hh"
@@ -34,7 +36,9 @@
* @short Top Level container for XORP RIP implementation.
*/
template <typename A>
-class System {
+class System :
+ public boost::noncopyable
+{
public:
typedef RouteDB<A> RouteDatabase;
typedef PortManagerBase<A> PortManager;
@@ -121,10 +125,6 @@
Trace& route_trace() { return _rtdb.trace(); }
protected:
- System(const System&); // Not implemented
- System& operator=(const System&); // Not implemented
-
-protected:
EventLoop& _e;
//
Modified: trunk/xorp/rip/tools/common.hh
===================================================================
--- trunk/xorp/rip/tools/common.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/rip/tools/common.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -114,8 +114,11 @@
/**
* Base class for Xrl Jobs that are invoked by classes derived
* from XrlJobQueue.
+ * Non-copyable due to inheriting from CallbackSafeObject.
*/
-class XrlJobBase : public CallbackSafeObject {
+class XrlJobBase :
+ public CallbackSafeObject
+{
public:
XrlJobBase(XrlJobQueue& q) : _q(q) {}
@@ -126,10 +129,6 @@
XrlJobQueue& queue() { return _q; }
private:
- XrlJobBase(const XrlJobBase&); // Not implemented
- XrlJobBase& operator=(const XrlJobBase&); // Not implemented
-
-private:
XrlJobQueue& _q;
};
Modified: trunk/xorp/rip/xrl_port_manager.hh
===================================================================
--- trunk/xorp/rip/xrl_port_manager.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/rip/xrl_port_manager.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -22,6 +22,8 @@
#ifndef __RIP_XRL_PORT_MANAGER_HH__
#define __RIP_XRL_PORT_MANAGER_HH__
+#include <boost/noncopyable.hpp>
+
#include "libxorp/service.hh"
#include "libfeaclient/ifmgr_xrl_mirror.hh"
#include "port_manager.hh"
@@ -43,11 +45,12 @@
* appropriate @ref XrlPortIO object.
*/
template <typename A>
-class XrlPortManager
- : public PortManagerBase<A>,
- public IfMgrHintObserver,
- public ServiceBase,
- public ServiceChangeObserverBase
+class XrlPortManager :
+ public boost::noncopyable,
+ public PortManagerBase<A>,
+ public IfMgrHintObserver,
+ public ServiceBase,
+ public ServiceChangeObserverBase
{
public:
XrlPortManager(System<A>& system,
@@ -196,10 +199,6 @@
//
void try_start_next_io_handler();
-private:
- XrlPortManager(const XrlPortManager&); // not implemented
- XrlPortManager& operator=(const XrlPortManager&); // not implemented
-
protected:
XrlRouter& _xr; // XrlRouter
IfMgrXrlMirror& _ifm; // Interface Mirror
Modified: trunk/xorp/rtrmgr/op_commands.hh
===================================================================
--- trunk/xorp/rtrmgr/op_commands.hh 2009-12-03 21:58:20 UTC (rev 11661)
+++ trunk/xorp/rtrmgr/op_commands.hh 2009-12-03 22:10:51 UTC (rev 11662)
@@ -31,6 +31,7 @@
#include "cli.hh"
#include "rtrmgr_error.hh"
+#include <boost/noncopyable.hpp>
class ConfigTree;
class OpCommand;
@@ -38,7 +39,9 @@
class TemplateTree;
class SlaveModuleManager;
-class OpInstance {
+class OpInstance :
+ public boost::noncopyable
+{
public:
OpInstance(EventLoop& eventloop,
OpCommand& op_command,
@@ -59,9 +62,6 @@
void terminate_with_prejudice();
private:
- OpInstance(const OpInstance&); // Not implemented
- OpInstance& operator=(const OpInstance&); // Not implemented
-
void stdout_cb(RunCommand* run_command, const string& output);
void stderr_cb(RunCommand* run_command, const string& output);
void done_cb(RunCommand* run_command, bool success,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Xorp-cvs
mailing list