diff options
87 files changed, 230 insertions, 266 deletions
diff --git a/documentapi/src/vespa/documentapi/messagebus/iroutablefactory.h b/documentapi/src/vespa/documentapi/messagebus/iroutablefactory.h index 0ca3bc10531..5f6e39c2a6d 100644 --- a/documentapi/src/vespa/documentapi/messagebus/iroutablefactory.h +++ b/documentapi/src/vespa/documentapi/messagebus/iroutablefactory.h @@ -1,7 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/shared_ptr.hpp> #include <vespa/document/util/bytebuffer.h> #include <vespa/messagebus/routable.h> #include <vespa/vespalib/component/version.h> @@ -22,7 +21,9 @@ class LoadTypeSet; * factory across multiple routable types. To share serialization logic between factory use a common * superclass or composition with a common serialization utility. */ -class IRoutableFactory : public boost::noncopyable { +class IRoutableFactory { +protected: + IRoutableFactory() = default; public: /** * Convenience typedefs. @@ -30,6 +31,8 @@ public: typedef std::unique_ptr<IRoutableFactory> UP; typedef std::shared_ptr<IRoutableFactory> SP; + IRoutableFactory(const IRoutableFactory &) = delete; + IRoutableFactory & operator = (const IRoutableFactory &) = delete; /** * Virtual destructor required for inheritance. */ diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/errorpolicy.h b/documentapi/src/vespa/documentapi/messagebus/policies/errorpolicy.h index 2790adcc774..75c697331d3 100644 --- a/documentapi/src/vespa/documentapi/messagebus/policies/errorpolicy.h +++ b/documentapi/src/vespa/documentapi/messagebus/policies/errorpolicy.h @@ -1,7 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/utility.hpp> #include <vespa/messagebus/routing/iroutingpolicy.h> namespace documentapi { @@ -11,7 +10,7 @@ namespace documentapi { * #select(RoutingContext)} is invoked. This is useful for returning error states to the client instead of * those auto-generated by mbus when a routing policy can not be created. */ -class ErrorPolicy : public boost::noncopyable, public mbus::IRoutingPolicy { +class ErrorPolicy : public mbus::IRoutingPolicy { private: string _msg; diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/externpolicy.h b/documentapi/src/vespa/documentapi/messagebus/policies/externpolicy.h index 83b9a64b79e..f4a9157f8e3 100644 --- a/documentapi/src/vespa/documentapi/messagebus/policies/externpolicy.h +++ b/documentapi/src/vespa/documentapi/messagebus/policies/externpolicy.h @@ -1,7 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/utility.hpp> #include <vespa/fnet/frt/frt.h> #include <vespa/messagebus/routing/hop.h> #include <vespa/messagebus/routing/iroutingpolicy.h> @@ -16,7 +15,7 @@ namespace documentapi { * This policy implements the necessary logic to communicate with an external Vespa application and resolve its list of * recipients using that other application's slobrok servers. */ -class ExternPolicy : public boost::noncopyable, public mbus::IRoutingPolicy { +class ExternPolicy : public mbus::IRoutingPolicy { private: vespalib::Lock _lock; FRT_Supervisor _orb; diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/loadbalancerpolicy.h b/documentapi/src/vespa/documentapi/messagebus/policies/loadbalancerpolicy.h index 8d0eca83ac9..b782abbef27 100644 --- a/documentapi/src/vespa/documentapi/messagebus/policies/loadbalancerpolicy.h +++ b/documentapi/src/vespa/documentapi/messagebus/policies/loadbalancerpolicy.h @@ -1,14 +1,12 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/noncopyable.hpp> #include <vespa/documentapi/messagebus/policies/loadbalancer.h> #include <vespa/documentapi/messagebus/policies/externslobrokpolicy.h> namespace documentapi { -class LoadBalancerPolicy : public boost::noncopyable, - public ExternSlobrokPolicy +class LoadBalancerPolicy : public ExternSlobrokPolicy { public: LoadBalancerPolicy(const string& param); diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/localservicepolicy.h b/documentapi/src/vespa/documentapi/messagebus/policies/localservicepolicy.h index 85c26794b97..ccdc67c9291 100644 --- a/documentapi/src/vespa/documentapi/messagebus/policies/localservicepolicy.h +++ b/documentapi/src/vespa/documentapi/messagebus/policies/localservicepolicy.h @@ -1,7 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/utility.hpp> #include <vespa/messagebus/routing/hop.h> #include <vespa/messagebus/routing/iroutingpolicy.h> #include <string> @@ -16,7 +15,7 @@ namespace documentapi { * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a> * @version $Id$ */ -class LocalServicePolicy : public boost::noncopyable, public mbus::IRoutingPolicy { +class LocalServicePolicy : public mbus::IRoutingPolicy { private: struct CacheEntry { uint32_t _offset; diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/roundrobinpolicy.h b/documentapi/src/vespa/documentapi/messagebus/policies/roundrobinpolicy.h index e65763a114d..7bd839f762c 100644 --- a/documentapi/src/vespa/documentapi/messagebus/policies/roundrobinpolicy.h +++ b/documentapi/src/vespa/documentapi/messagebus/policies/roundrobinpolicy.h @@ -1,7 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/utility.hpp> #include <vespa/messagebus/routing/hop.h> #include <vespa/messagebus/routing/iroutingpolicy.h> #include <string> @@ -16,7 +15,7 @@ namespace documentapi { * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a> * @version $Id$ */ -class RoundRobinPolicy : public boost::noncopyable, public mbus::IRoutingPolicy { +class RoundRobinPolicy : public mbus::IRoutingPolicy { private: struct CacheEntry { uint32_t _offset; diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/searchcolumnpolicy.h b/documentapi/src/vespa/documentapi/messagebus/policies/searchcolumnpolicy.h index a7420acf8ef..2b7e03dc014 100644 --- a/documentapi/src/vespa/documentapi/messagebus/policies/searchcolumnpolicy.h +++ b/documentapi/src/vespa/documentapi/messagebus/policies/searchcolumnpolicy.h @@ -1,7 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/utility.hpp> #include <vespa/document/bucket/bucketidfactory.h> #include <vespa/messagebus/routing/iroutingpolicy.h> #include <vespa/vdslib/bucketdistribution.h> @@ -15,7 +14,7 @@ namespace documentapi { * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a> * @version $Id$ */ -class SearchColumnPolicy : public boost::noncopyable, public mbus::IRoutingPolicy { +class SearchColumnPolicy : public mbus::IRoutingPolicy { private: typedef std::map<uint32_t, vdslib::BucketDistribution> DistributionCache; diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/storagepolicy.h b/documentapi/src/vespa/documentapi/messagebus/policies/storagepolicy.h index 096dec568ec..1f80b36c109 100644 --- a/documentapi/src/vespa/documentapi/messagebus/policies/storagepolicy.h +++ b/documentapi/src/vespa/documentapi/messagebus/policies/storagepolicy.h @@ -10,8 +10,7 @@ namespace documentapi { -class StoragePolicy : public boost::noncopyable, - public ExternSlobrokPolicy, +class StoragePolicy : public ExternSlobrokPolicy, public config::IFetcherCallback<vespa::config::content::StorDistributionConfig> { private: @@ -41,8 +40,7 @@ public: * @return a pointer to the system state registered with this policy. If * we haven't received a system state yet, returns NULL. */ - const storage::lib::ClusterState* getSystemState() const - { return _state.get(); } + const storage::lib::ClusterState* getSystemState() const { return _state.get(); } void configure(std::unique_ptr<vespa::config::content::StorDistributionConfig> config); diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/subsetservicepolicy.h b/documentapi/src/vespa/documentapi/messagebus/policies/subsetservicepolicy.h index 367aae183ff..5103904df65 100644 --- a/documentapi/src/vespa/documentapi/messagebus/policies/subsetservicepolicy.h +++ b/documentapi/src/vespa/documentapi/messagebus/policies/subsetservicepolicy.h @@ -1,7 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/utility.hpp> #include <vespa/messagebus/routing/hop.h> #include <vespa/messagebus/routing/iroutingpolicy.h> #include <string> @@ -15,7 +14,7 @@ namespace documentapi { * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a> * @version $Id$ */ -class SubsetServicePolicy : public boost::noncopyable, public mbus::IRoutingPolicy { +class SubsetServicePolicy : public mbus::IRoutingPolicy { private: struct CacheEntry { uint32_t _offset; diff --git a/documentapi/src/vespa/documentapi/messagebus/routablerepository.h b/documentapi/src/vespa/documentapi/messagebus/routablerepository.h index e39eab89507..977a8b5268a 100644 --- a/documentapi/src/vespa/documentapi/messagebus/routablerepository.h +++ b/documentapi/src/vespa/documentapi/messagebus/routablerepository.h @@ -17,7 +17,7 @@ class LoadTypeSet; * factory cache to reduce the latency of matching version specifications to actual versions when resolving * factories. */ -class RoutableRepository : public boost::noncopyable { +class RoutableRepository { private: /** * Internal helper class that implements a map from {@link VersionSpecification} to {@link @@ -43,6 +43,8 @@ private: const LoadTypeSet& _loadTypes; public: + RoutableRepository(const RoutableRepository &) = delete; + RoutableRepository & operator = (const RoutableRepository &) = delete; /** * Constructs a new routable repository. */ diff --git a/documentapi/src/vespa/documentapi/messagebus/routingpolicyrepository.h b/documentapi/src/vespa/documentapi/messagebus/routingpolicyrepository.h index cd19d5f0676..c0dab2d710b 100644 --- a/documentapi/src/vespa/documentapi/messagebus/routingpolicyrepository.h +++ b/documentapi/src/vespa/documentapi/messagebus/routingpolicyrepository.h @@ -1,7 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/utility.hpp> #include <map> #include <string> #include <vespa/vespalib/util/sync.h> @@ -9,7 +8,7 @@ namespace documentapi { -class RoutingPolicyRepository : public boost::noncopyable { +class RoutingPolicyRepository { private: typedef std::map<string, IRoutingPolicyFactory::SP> FactoryMap; @@ -17,6 +16,8 @@ private: FactoryMap _factories; public: + RoutingPolicyRepository(const RoutingPolicyRepository &) = delete; + RoutingPolicyRepository & operator = (const RoutingPolicyRepository &) = delete; /** * Constructs a new routing policy repository. */ diff --git a/documentapi/src/vespa/documentapi/messagebus/systemstate/systemstate.h b/documentapi/src/vespa/documentapi/messagebus/systemstate/systemstate.h index 544a1b6716e..8254dc29c30 100644 --- a/documentapi/src/vespa/documentapi/messagebus/systemstate/systemstate.h +++ b/documentapi/src/vespa/documentapi/messagebus/systemstate/systemstate.h @@ -1,7 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/utility.hpp> #include <string> #include <vespa/vespalib/util/sync.h> #include "nodestate.h" @@ -13,7 +12,7 @@ namespace documentapi { * string. The naming of this class is intended to capture the fact that this annotated service tree actually * contains the state of each service in the system. */ -class SystemState : public boost::noncopyable { +class SystemState { private: static vespalib::Lock _parseLock; @@ -31,6 +30,8 @@ private: SystemState(NodeState::UP root); public: + SystemState(const SystemState &) = delete; + SystemState & operator = (const SystemState &) = delete; /** * Convenience typedefs. */ diff --git a/fastos/src/vespa/fastos/thread.h b/fastos/src/vespa/fastos/thread.h index 6eba3470176..31a5fce32fa 100644 --- a/fastos/src/vespa/fastos/thread.h +++ b/fastos/src/vespa/fastos/thread.h @@ -461,15 +461,13 @@ public: */ class FastOS_Runnable { -private: - FastOS_Runnable(const FastOS_Runnable&); - FastOS_Runnable& operator=(const FastOS_Runnable&); - protected: friend class FastOS_ThreadInterface; FastOS_ThreadInterface *_thread; public: + FastOS_Runnable(const FastOS_Runnable&) = delete; + FastOS_Runnable& operator=(const FastOS_Runnable&) = delete; FastOS_Runnable(); virtual ~FastOS_Runnable(); diff --git a/fnet/src/vespa/fnet/task.h b/fnet/src/vespa/fnet/task.h index b482a936e55..321c94d6770 100644 --- a/fnet/src/vespa/fnet/task.h +++ b/fnet/src/vespa/fnet/task.h @@ -20,10 +20,9 @@ private: FNET_Task *_task_prev; bool _killed; - FNET_Task(const FNET_Task &); - FNET_Task &operator=(const FNET_Task &); - public: + FNET_Task(const FNET_Task &) = delete; + FNET_Task &operator=(const FNET_Task &) = delete; /** * Construct a task that may be scheduled by the given scheduler. diff --git a/messagebus/src/vespa/messagebus/callstack.h b/messagebus/src/vespa/messagebus/callstack.h index 80e673ee550..d82c27966b9 100644 --- a/messagebus/src/vespa/messagebus/callstack.h +++ b/messagebus/src/vespa/messagebus/callstack.h @@ -2,7 +2,6 @@ #pragma once -#include <boost/utility.hpp> #include <vector> #include "context.h" @@ -21,7 +20,7 @@ class Reply; * copied when copying a Routable, as it is not part of the object * value. This class is intended for internal messagebus use only. **/ -class CallStack : public boost::noncopyable +class CallStack { private: struct Frame { @@ -35,6 +34,8 @@ private: Stack _stack; public: + CallStack(const CallStack &) = delete; + CallStack & operator = (const CallStack &) = delete; /** * Create a new empty CallStack. **/ diff --git a/messagebus/src/vespa/messagebus/destinationsession.h b/messagebus/src/vespa/messagebus/destinationsession.h index f381a5cd7b7..c69a1a71084 100644 --- a/messagebus/src/vespa/messagebus/destinationsession.h +++ b/messagebus/src/vespa/messagebus/destinationsession.h @@ -1,7 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/utility.hpp> #include <memory> #include <string> #include "destinationsessionparams.h" @@ -16,12 +15,12 @@ class MessageBus; * A DestinationSession is used to receive Message objects and reply * with Reply objects. */ -class DestinationSession : public boost::noncopyable, public IMessageHandler { +class DestinationSession : public IMessageHandler { private: friend class MessageBus; MessageBus &_mbus; - string _name; + string _name; IMessageHandler &_msgHandler; /** diff --git a/messagebus/src/vespa/messagebus/imessagehandler.h b/messagebus/src/vespa/messagebus/imessagehandler.h index d21936bb0bc..b8c50172b6c 100644 --- a/messagebus/src/vespa/messagebus/imessagehandler.h +++ b/messagebus/src/vespa/messagebus/imessagehandler.h @@ -14,7 +14,11 @@ namespace mbus { **/ class IMessageHandler { +protected: + IMessageHandler() = default; public: + IMessageHandler(const IMessageHandler &) = delete; + IMessageHandler & operator = (const IMessageHandler &) = delete; virtual ~IMessageHandler() {} /** diff --git a/messagebus/src/vespa/messagebus/intermediatesession.h b/messagebus/src/vespa/messagebus/intermediatesession.h index 7f190c2ea4a..4876e30f516 100644 --- a/messagebus/src/vespa/messagebus/intermediatesession.h +++ b/messagebus/src/vespa/messagebus/intermediatesession.h @@ -1,7 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/utility.hpp> #include <memory> #include <string> #include "reply.h" @@ -17,15 +16,14 @@ class ReplyGate; * An IntermediateSession is used to process Message and Reply objects * on the way along a route. **/ -class IntermediateSession : public boost::noncopyable, - public IMessageHandler, +class IntermediateSession : public IMessageHandler, public IReplyHandler { private: friend class MessageBus; MessageBus &_mbus; - string _name; + string _name; IMessageHandler &_msgHandler; IReplyHandler &_replyHandler; ReplyGate *_gate; diff --git a/messagebus/src/vespa/messagebus/iprotocol.h b/messagebus/src/vespa/messagebus/iprotocol.h index c0af967f33b..18d45d9560d 100644 --- a/messagebus/src/vespa/messagebus/iprotocol.h +++ b/messagebus/src/vespa/messagebus/iprotocol.h @@ -18,7 +18,11 @@ namespace mbus { * also have support for the same set of routing policies. */ class IProtocol { +protected: + IProtocol() = default; public: + IProtocol(const IProtocol &) = delete; + IProtocol & operator = (const IProtocol &) = delete; virtual ~IProtocol() {} /** diff --git a/messagebus/src/vespa/messagebus/ireplyhandler.h b/messagebus/src/vespa/messagebus/ireplyhandler.h index c30ca63c519..c29717cd748 100644 --- a/messagebus/src/vespa/messagebus/ireplyhandler.h +++ b/messagebus/src/vespa/messagebus/ireplyhandler.h @@ -13,7 +13,11 @@ namespace mbus { **/ class IReplyHandler { +protected: + IReplyHandler() = default; public: + IReplyHandler(const IReplyHandler &) = delete; + IReplyHandler & operator = (const IReplyHandler &) = delete; virtual ~IReplyHandler() {} /** diff --git a/messagebus/src/vespa/messagebus/messagebus.h b/messagebus/src/vespa/messagebus/messagebus.h index 5bcfdef20a1..483915eee25 100644 --- a/messagebus/src/vespa/messagebus/messagebus.h +++ b/messagebus/src/vespa/messagebus/messagebus.h @@ -1,7 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/utility.hpp> #include <map> #include <vespa/messagebus/network/inetworkowner.h> #include <vespa/messagebus/routing/resender.h> diff --git a/messagebus/src/vespa/messagebus/messenger.h b/messagebus/src/vespa/messagebus/messenger.h index 34c02ed1cad..6dfe0636583 100644 --- a/messagebus/src/vespa/messagebus/messenger.h +++ b/messagebus/src/vespa/messagebus/messenger.h @@ -17,15 +17,17 @@ namespace mbus { * tasks. Tasks are enqueued using the synchronized {@link #enqueue(Task)} * method, and are run in the order they were enqueued. */ -class Messenger : public boost::noncopyable, - public FastOS_Runnable { +class Messenger : public FastOS_Runnable { public: /** * Defines the required interface for tasks to be posted to this worker. */ - class ITask : public boost::noncopyable, - public vespalib::Executor::Task { + class ITask : public vespalib::Executor::Task { + protected: + ITask() = default; public: + ITask(const ITask &) = delete; + ITask & operator = (const ITask &) = delete; /** * Convenience typedefs. */ diff --git a/messagebus/src/vespa/messagebus/network/inetwork.h b/messagebus/src/vespa/messagebus/network/inetwork.h index cf98711bacd..9ca024d77a0 100644 --- a/messagebus/src/vespa/messagebus/network/inetwork.h +++ b/messagebus/src/vespa/messagebus/network/inetwork.h @@ -17,7 +17,11 @@ namespace mbus { * sure it outlives the MessageBus object. */ class INetwork { +protected: + INetwork() = default; public: + INetwork(const INetwork &) = delete; + INetwork & operator = (const INetwork &) = delete; /** * Destructor. Frees any allocated resources. */ diff --git a/messagebus/src/vespa/messagebus/network/oosmanager.h b/messagebus/src/vespa/messagebus/network/oosmanager.h index 15a6fc48623..8ae28f30424 100644 --- a/messagebus/src/vespa/messagebus/network/oosmanager.h +++ b/messagebus/src/vespa/messagebus/network/oosmanager.h @@ -1,7 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/utility.hpp> #include <vespa/fnet/fnet.h> #include <set> #include <vespa/slobrok/sbmirror.h> @@ -18,7 +17,7 @@ class RPCNetwork; * service pattern in the slobrok. These servers are then polled for information. The information is compiled into a * local repository for fast lookup. */ -class OOSManager : public boost::noncopyable, public FNET_Task { +class OOSManager : public FNET_Task { public: /** * Convenience typedefs. diff --git a/messagebus/src/vespa/messagebus/network/rpcnetwork.h b/messagebus/src/vespa/messagebus/network/rpcnetwork.h index 5585ff06cec..4f96b426abb 100644 --- a/messagebus/src/vespa/messagebus/network/rpcnetwork.h +++ b/messagebus/src/vespa/messagebus/network/rpcnetwork.h @@ -21,8 +21,7 @@ namespace mbus { * Network implementation based on RPC. This class is responsible for * keeping track of services and for sending messages to services. **/ -class RPCNetwork : public boost::noncopyable, - public INetwork, +class RPCNetwork : public INetwork, public FRT_Invokable { private: struct SendContext : public RPCTarget::IVersionHandler { diff --git a/messagebus/src/vespa/messagebus/network/rpcsendadapter.h b/messagebus/src/vespa/messagebus/network/rpcsendadapter.h index 91ba5de24b7..136f2a0f23c 100644 --- a/messagebus/src/vespa/messagebus/network/rpcsendadapter.h +++ b/messagebus/src/vespa/messagebus/network/rpcsendadapter.h @@ -1,7 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/utility.hpp> #include <memory> #include <vespa/vespalib/util/referencecounter.h> @@ -15,9 +14,13 @@ class RPCNetwork; * outgoing RPC sends. The {@link RPCNetwork} maintains a list of supported RPC * signatures, and dispatches sends to the corresponding adapter. */ -class RPCSendAdapter : public boost::noncopyable +class RPCSendAdapter { +protected: + RPCSendAdapter() = default; public: + RPCSendAdapter(const RPCSendAdapter &) = delete; + RPCSendAdapter & operator = (const RPCSendAdapter &) = delete; /** * Required for inheritance. */ diff --git a/messagebus/src/vespa/messagebus/network/rpcsendv1.cpp b/messagebus/src/vespa/messagebus/network/rpcsendv1.cpp index 642e8c64089..ce41df12a7c 100644 --- a/messagebus/src/vespa/messagebus/network/rpcsendv1.cpp +++ b/messagebus/src/vespa/messagebus/network/rpcsendv1.cpp @@ -19,7 +19,7 @@ namespace { * Implements a helper class to hold the necessary context to create a reply from * an rpc return value. This object is held as the context of an FRT_RPCRequest. */ -class SendContext : public boost::noncopyable { +class SendContext { private: mbus::RoutingNode &_recipient; mbus::Trace _trace; @@ -27,7 +27,8 @@ private: public: typedef std::unique_ptr<SendContext> UP; - + SendContext(const SendContext &) = delete; + SendContext & operator = (const SendContext &) = delete; SendContext(mbus::RoutingNode &recipient, uint64_t timeRemaining) : _recipient(recipient), _trace(recipient.getTrace().getLevel()), @@ -41,13 +42,15 @@ public: * Implements a helper class to hold the necessary context to send a reply as an * rpc return value. This object is held in the callstack of the reply. */ -class ReplyContext : public boost::noncopyable { +class ReplyContext { private: FRT_RPCRequest &_request; vespalib::Version _version; public: typedef std::unique_ptr<ReplyContext> UP; + ReplyContext(const ReplyContext &) = delete; + ReplyContext & operator = (const ReplyContext &) = delete; ReplyContext(FRT_RPCRequest &request, const vespalib::Version &version) : _request(request), _version(version) { } diff --git a/messagebus/src/vespa/messagebus/network/rpcservice.h b/messagebus/src/vespa/messagebus/network/rpcservice.h index 95e2bfaa377..f4f660e7e09 100644 --- a/messagebus/src/vespa/messagebus/network/rpcservice.h +++ b/messagebus/src/vespa/messagebus/network/rpcservice.h @@ -1,7 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/utility.hpp> #include <vespa/slobrok/sbmirror.h> #include <vespa/slobrok/sbregister.h> #include <vespa/vespalib/util/linkedptr.h> @@ -16,7 +15,7 @@ class RPCNetwork; * The sessions are monitored using the slobrok. If multiple sessions are * available, round robin is used to balance load between them. */ -class RPCService : public boost::noncopyable { +class RPCService { private: typedef slobrok::api::IMirrorAPI Mirror; typedef slobrok::api::MirrorAPI::SpecList AddressList; @@ -29,6 +28,8 @@ private: public: typedef vespalib::LinkedPtr<RPCService> LP; + RPCService(const RPCService &) = delete; + RPCService & operator = (const RPCService &) = delete; /** * Create a new RPCService backed by the given network and using * the given service pattern. diff --git a/messagebus/src/vespa/messagebus/network/rpcservicepool.h b/messagebus/src/vespa/messagebus/network/rpcservicepool.h index e25cfbb4903..55fac7da577 100644 --- a/messagebus/src/vespa/messagebus/network/rpcservicepool.h +++ b/messagebus/src/vespa/messagebus/network/rpcservicepool.h @@ -1,7 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/utility.hpp> #include "rpcservice.h" #include <vespa/vespalib/stllike/lrucache_map.h> @@ -13,7 +12,7 @@ class RPCNetwork; * Class used to reuse services for the same pattern when sending messages over * the rpc network. */ -class RPCServicePool : public boost::noncopyable { +class RPCServicePool { private: typedef vespalib::lrucache_map< vespalib::LruParam<string, RPCService::LP> > ServiceCache; @@ -21,6 +20,8 @@ private: ServiceCache _lru; public: + RPCServicePool(const RPCServicePool &) = delete; + RPCServicePool & operator = (const RPCServicePool &) = delete; /** * Create a new service pool for the given network. * diff --git a/messagebus/src/vespa/messagebus/network/rpctargetpool.h b/messagebus/src/vespa/messagebus/network/rpctargetpool.h index 3e4fa953bb5..11f90272175 100644 --- a/messagebus/src/vespa/messagebus/network/rpctargetpool.h +++ b/messagebus/src/vespa/messagebus/network/rpctargetpool.h @@ -1,7 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/utility.hpp> #include <map> #include <vespa/messagebus/itimer.h> #include <vespa/vespalib/util/sync.h> @@ -16,7 +15,7 @@ namespace mbus { * Class used to reuse targets for the same address when sending messages over * the rpc network. */ -class RPCTargetPool : public boost::noncopyable { +class RPCTargetPool { private: /** * Implements a helper class holds the necessary reference and token counter @@ -37,6 +36,8 @@ private: uint64_t _expireMillis; public: + RPCTargetPool(const RPCTargetPool &) = delete; + RPCTargetPool & operator = (const RPCTargetPool &) = delete; /** * Constructs a new instance of this class, and registers the {@link * SystemTimer} for detecting and closing connections that have expired diff --git a/messagebus/src/vespa/messagebus/protocolrepository.h b/messagebus/src/vespa/messagebus/protocolrepository.h index 05917a8d5c0..2a09e28bdc7 100644 --- a/messagebus/src/vespa/messagebus/protocolrepository.h +++ b/messagebus/src/vespa/messagebus/protocolrepository.h @@ -11,7 +11,7 @@ namespace mbus { * Implements a thread-safe repository for protocols and their routing policies. This manages an internal cache of * routing policies so that similarly referenced policy directives share the same instance of a policy. */ -class ProtocolRepository : public boost::noncopyable { +class ProtocolRepository { private: typedef std::map<string, IProtocol::SP> ProtocolMap; typedef std::map<string, IRoutingPolicy::SP> RoutingPolicyCache; @@ -21,7 +21,9 @@ private: RoutingPolicyCache _routingPolicyCache; public: - + ProtocolRepository(const ProtocolRepository &) = delete; + ProtocolRepository & operator = (const ProtocolRepository &) = delete; + ProtocolRepository() = default; /** * Registers a protocol with this repository. This will overwrite any protocol that was registered earlier * that has the same name. If this method detects a protocol replacement, it will clear its internal diff --git a/messagebus/src/vespa/messagebus/replygate.h b/messagebus/src/vespa/messagebus/replygate.h index 121a66edd3f..add66544e02 100644 --- a/messagebus/src/vespa/messagebus/replygate.h +++ b/messagebus/src/vespa/messagebus/replygate.h @@ -2,7 +2,6 @@ #pragma once -#include <boost/utility.hpp> #include <vespa/vespalib/util/referencecounter.h> #include "idiscardhandler.h" #include "imessagehandler.h" @@ -21,8 +20,7 @@ namespace mbus { * is handled outside this class. Note that this class is only intended for * internal use. */ -class ReplyGate : public boost::noncopyable, - public vespalib::ReferenceCounter, +class ReplyGate : public vespalib::ReferenceCounter, public IDiscardHandler, public IMessageHandler, public IReplyHandler diff --git a/messagebus/src/vespa/messagebus/routable.h b/messagebus/src/vespa/messagebus/routable.h index d40c80a736b..8bb5db297a2 100644 --- a/messagebus/src/vespa/messagebus/routable.h +++ b/messagebus/src/vespa/messagebus/routable.h @@ -2,7 +2,6 @@ #pragma once #include <memory> -#include <boost/utility.hpp> #include <vespa/messagebus/blob.h> #include <vespa/messagebus/callstack.h> #include <vespa/messagebus/context.h> @@ -25,7 +24,7 @@ namespace mbus { * transfer the state from a message to the corresponding reply, or to a * different message if the application decides to replace it. */ -class Routable : public boost::noncopyable { +class Routable { private: Context _context; CallStack _stack; @@ -36,6 +35,8 @@ public: * Convenience typedef for an auto pointer to a Routable object. */ typedef std::unique_ptr<Routable> UP; + Routable(const Routable &) = delete; + Routable & operator = (const Routable &) = delete; /** * Constructs a new instance of this class. diff --git a/messagebus/src/vespa/messagebus/routing/iroutingpolicy.h b/messagebus/src/vespa/messagebus/routing/iroutingpolicy.h index 8fabd5210c3..55072577310 100644 --- a/messagebus/src/vespa/messagebus/routing/iroutingpolicy.h +++ b/messagebus/src/vespa/messagebus/routing/iroutingpolicy.h @@ -22,13 +22,13 @@ public: typedef std::unique_ptr<IRoutingPolicy> UP; typedef std::shared_ptr<IRoutingPolicy> SP; -public: + IRoutingPolicy(const IRoutingPolicy &) = delete; + IRoutingPolicy & operator = (const IRoutingPolicy &) = delete; + /** * Destructor. Frees any allocated resources. */ - virtual ~IRoutingPolicy() { - // empty - } + virtual ~IRoutingPolicy() { } /** * This function must choose a set of services that is to receive the given message from a list of possible @@ -47,6 +47,9 @@ public: * @param context The complete context for the invokation of this policy. Contains all available data. */ virtual void merge(RoutingContext &context) = 0; + +protected: + IRoutingPolicy() = default; }; } // namespace mbus diff --git a/messagebus/src/vespa/messagebus/routing/resender.h b/messagebus/src/vespa/messagebus/routing/resender.h index 43f195dae09..be013ddfe97 100644 --- a/messagebus/src/vespa/messagebus/routing/resender.h +++ b/messagebus/src/vespa/messagebus/routing/resender.h @@ -1,7 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/utility.hpp> #include <vespa/messagebus/queue.h> #include <vespa/messagebus/reply.h> #include <queue> @@ -20,7 +19,7 @@ class RoutingNode; * internal thread, it depends on message bus to keep polling it whenever it has * time. */ -class Resender : public boost::noncopyable +class Resender { private: typedef std::pair<uint64_t, RoutingNode*> Entry; @@ -40,6 +39,8 @@ public: * Convenience typedefs. */ typedef std::unique_ptr<Resender> UP; + Resender(const Resender &) = delete; + Resender & operator = (const Resender &) = delete; /** * Constructs a new resender. diff --git a/messagebus/src/vespa/messagebus/routing/routingtable.h b/messagebus/src/vespa/messagebus/routing/routingtable.h index 84b371ea229..9d398c313bd 100644 --- a/messagebus/src/vespa/messagebus/routing/routingtable.h +++ b/messagebus/src/vespa/messagebus/routing/routingtable.h @@ -1,7 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/utility.hpp> #include <map> #include <string> #include "hopblueprint.h" @@ -22,7 +21,7 @@ class Message; * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a> * @version $Id$ */ -class RoutingTable : public boost::noncopyable { +class RoutingTable { private: string _name; std::map<string, HopBlueprint> _hops; @@ -65,6 +64,8 @@ public: * Convenience typedef for a shared pointer to a RoutingTable object. */ typedef std::shared_ptr<RoutingTable> SP; + RoutingTable(const RoutingTable &) = delete; + RoutingTable & operator = (const RoutingTable &) = delete; /** * Creates a new routing table based on a given specification. This also verifies the integrity of the table. diff --git a/messagebus/src/vespa/messagebus/rpcmessagebus.h b/messagebus/src/vespa/messagebus/rpcmessagebus.h index 022a5825110..de120b55e62 100644 --- a/messagebus/src/vespa/messagebus/rpcmessagebus.h +++ b/messagebus/src/vespa/messagebus/rpcmessagebus.h @@ -1,7 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/utility.hpp> #include <vespa/messagebus/network/rpcnetwork.h> #include <string> #include <vespa/config/helper/legacysubscriber.h> @@ -18,7 +17,7 @@ namespace mbus { * note that according to the object delete order, you must delete all sessions * before deleting the underlying MessageBus object. */ -class RPCMessageBus : public boost::noncopyable { +class RPCMessageBus { private: RPCNetwork _net; MessageBus _bus; @@ -31,6 +30,8 @@ public: */ typedef std::unique_ptr<RPCMessageBus> UP; typedef std::shared_ptr<RPCMessageBus> SP; + RPCMessageBus(const RPCMessageBus &) = delete; + RPCMessageBus & operator = (const RPCMessageBus &) = delete; /** * Constructs a new instance of this class. diff --git a/messagebus/src/vespa/messagebus/sendproxy.h b/messagebus/src/vespa/messagebus/sendproxy.h index 36de3ab8aff..1bd880947c1 100644 --- a/messagebus/src/vespa/messagebus/sendproxy.h +++ b/messagebus/src/vespa/messagebus/sendproxy.h @@ -1,7 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/utility.hpp> #include <vespa/messagebus/routing/routingtable.h> #include <vespa/messagebus/routing/routingnode.h> @@ -14,8 +13,7 @@ class MessageBus; * attached to it and returned to the application. After the reply has been propagated upwards, this object * deletes itself. This also implements the discard policy of {@link RoutingNode}. */ -class SendProxy : public boost::noncopyable, - public IDiscardHandler, +class SendProxy : public IDiscardHandler, public IMessageHandler, public IReplyHandler { private: diff --git a/messagebus/src/vespa/messagebus/sequencer.h b/messagebus/src/vespa/messagebus/sequencer.h index aee26c0a9ca..4551ee032a2 100644 --- a/messagebus/src/vespa/messagebus/sequencer.h +++ b/messagebus/src/vespa/messagebus/sequencer.h @@ -2,7 +2,6 @@ #pragma once -#include <boost/utility.hpp> #include <map> #include <vespa/vespalib/util/sync.h> #include "imessagehandler.h" @@ -18,8 +17,7 @@ namespace mbus { * object implementing the IMessageHandler API to use for sending messages. This class is used by the * SourceSession class and is not intended for external use. */ -class Sequencer : public boost::noncopyable, - public IMessageHandler, +class Sequencer : public IMessageHandler, public IReplyHandler { private: diff --git a/messagebus/src/vespa/messagebus/sourcesession.h b/messagebus/src/vespa/messagebus/sourcesession.h index af2c4ff6c92..c40b5418ec1 100644 --- a/messagebus/src/vespa/messagebus/sourcesession.h +++ b/messagebus/src/vespa/messagebus/sourcesession.h @@ -1,7 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/utility.hpp> #include <vespa/vespalib/util/sync.h> #include "ireplyhandler.h" #include "result.h" @@ -18,7 +17,7 @@ class ReplyGate; * objects back. A source session does not have a service name and can only receive replies to the messages * sent on it. **/ -class SourceSession : public boost::noncopyable, public IReplyHandler { +class SourceSession : public IReplyHandler { private: friend class MessageBus; diff --git a/messagebus/src/vespa/messagebus/testlib/custompolicy.h b/messagebus/src/vespa/messagebus/testlib/custompolicy.h index d054706312b..83d6cf73eb6 100644 --- a/messagebus/src/vespa/messagebus/testlib/custompolicy.h +++ b/messagebus/src/vespa/messagebus/testlib/custompolicy.h @@ -1,13 +1,12 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/utility.hpp> #include <vespa/messagebus/routing/iroutingpolicy.h> #include "simpleprotocol.h" namespace mbus { -class CustomPolicy : public boost::noncopyable, public IRoutingPolicy { +class CustomPolicy : public IRoutingPolicy { private: bool _selectOnRetry; std::vector<uint32_t> _consumableErrors; diff --git a/messagebus/src/vespa/messagebus/testlib/simpleprotocol.h b/messagebus/src/vespa/messagebus/testlib/simpleprotocol.h index 4a57d86f4a7..0a0dee5085a 100644 --- a/messagebus/src/vespa/messagebus/testlib/simpleprotocol.h +++ b/messagebus/src/vespa/messagebus/testlib/simpleprotocol.h @@ -2,14 +2,13 @@ #pragma once -#include <boost/utility.hpp> #include <map> #include <string> #include <vespa/messagebus/iprotocol.h> namespace mbus { -class SimpleProtocol : public boost::noncopyable, public IProtocol { +class SimpleProtocol : public IProtocol { public: /** * Defines a policy factory interface that tests can use to register arbitrary policies with this protocol. diff --git a/messagebus/src/vespa/messagebus/testlib/testserver.h b/messagebus/src/vespa/messagebus/testlib/testserver.h index ed0720eef1a..8070b499d99 100644 --- a/messagebus/src/vespa/messagebus/testlib/testserver.h +++ b/messagebus/src/vespa/messagebus/testlib/testserver.h @@ -2,7 +2,6 @@ #pragma once -#include <boost/utility.hpp> #include <memory> #include <vespa/messagebus/messagebus.h> #include <vespa/messagebus/network/rpcnetwork.h> @@ -27,9 +26,11 @@ public: void setVersion(const vespalib::Version &version); }; -class TestServer : public boost::noncopyable { +class TestServer { public: typedef std::unique_ptr<TestServer> UP; + TestServer(const TestServer &) = delete; + TestServer & operator = (const TestServer &) = delete; VersionedRPCNetwork net; MessageBus mb; diff --git a/metrics/src/vespa/metrics/metricmanager.h b/metrics/src/vespa/metrics/metricmanager.h index 467e97469c1..594fa5c43f5 100644 --- a/metrics/src/vespa/metrics/metricmanager.h +++ b/metrics/src/vespa/metrics/metricmanager.h @@ -44,7 +44,6 @@ #pragma once #include <string> -#include <boost/weak_ptr.hpp> #include <vespa/vespalib/util/document_runnable.h> #include <vespa/metrics/config-metricsmanager.h> #include <vespa/metrics/metricset.h> diff --git a/metrics/src/vespa/metrics/metricset.h b/metrics/src/vespa/metrics/metricset.h index 257bb699690..444d7491e7c 100644 --- a/metrics/src/vespa/metrics/metricset.h +++ b/metrics/src/vespa/metrics/metricset.h @@ -10,7 +10,6 @@ */ #pragma once -#include <boost/weak_ptr.hpp> #include <map> #include <vespa/metrics/metric.h> diff --git a/metrics/src/vespa/metrics/metricsnapshot.h b/metrics/src/vespa/metrics/metricsnapshot.h index 910d97906de..ba4cfe9df53 100644 --- a/metrics/src/vespa/metrics/metricsnapshot.h +++ b/metrics/src/vespa/metrics/metricsnapshot.h @@ -8,7 +8,6 @@ */ #pragma once -#include <boost/weak_ptr.hpp> #include <map> #include <vespa/metrics/metric.h> #include <vespa/metrics/metricset.h> diff --git a/persistence/src/vespa/persistence/spi/bucketinfo.h b/persistence/src/vespa/persistence/spi/bucketinfo.h index 2bc74f8204f..fe6a95661fc 100644 --- a/persistence/src/vespa/persistence/spi/bucketinfo.h +++ b/persistence/src/vespa/persistence/spi/bucketinfo.h @@ -6,7 +6,6 @@ #pragma once -#include <boost/utility.hpp> #include <persistence/spi/types.h> namespace storage { diff --git a/searchcore/src/vespa/searchcore/proton/attribute/attributemanager.cpp b/searchcore/src/vespa/searchcore/proton/attribute/attributemanager.cpp index 35541176a57..f126ab245c1 100644 --- a/searchcore/src/vespa/searchcore/proton/attribute/attributemanager.cpp +++ b/searchcore/src/vespa/searchcore/proton/attribute/attributemanager.cpp @@ -178,8 +178,7 @@ AttributeManager::AttributeManager(const vespalib::string &baseDir, const FileHeaderContext &fileHeaderContext, search::ISequencedTaskExecutor & attributeFieldWriter) - : boost::noncopyable(), - proton::IAttributeManager(), + : proton::IAttributeManager(), _attributes(), _flushables(), _writableAttributes(), @@ -202,8 +201,7 @@ AttributeManager::AttributeManager(const vespalib::string &baseDir, search::ISequencedTaskExecutor & attributeFieldWriter, const IAttributeFactory::SP &factory) - : boost::noncopyable(), - proton::IAttributeManager(), + : proton::IAttributeManager(), _attributes(), _flushables(), _writableAttributes(), @@ -221,8 +219,7 @@ AttributeManager::AttributeManager(const vespalib::string &baseDir, AttributeManager::AttributeManager(const AttributeManager &currMgr, const Spec &newSpec, IAttributeInitializerRegistry &initializerRegistry) - : boost::noncopyable(), - proton::IAttributeManager(), + : proton::IAttributeManager(), _attributes(), _flushables(), _writableAttributes(), diff --git a/searchcore/src/vespa/searchcore/proton/attribute/attributemanager.h b/searchcore/src/vespa/searchcore/proton/attribute/attributemanager.h index 1a31ee3e7f1..15d1c25bbc0 100644 --- a/searchcore/src/vespa/searchcore/proton/attribute/attributemanager.h +++ b/searchcore/src/vespa/searchcore/proton/attribute/attributemanager.h @@ -7,7 +7,6 @@ #include "i_attribute_manager.h" #include "i_attribute_initializer_registry.h" #include <set> -#include <boost/utility.hpp> #include <vespa/searchlib/common/tunefileinfo.h> #include <vespa/searchcore/proton/attribute/flushableattribute.h> #include <vespa/searchlib/attribute/attributevector.h> @@ -32,8 +31,7 @@ namespace proton /** * Specialized attribute manager for proton. */ -class AttributeManager : public boost::noncopyable, - public proton::IAttributeManager +class AttributeManager : public proton::IAttributeManager { private: typedef search::attribute::Config Config; diff --git a/searchcore/src/vespa/searchcore/proton/common/feedtoken.h b/searchcore/src/vespa/searchcore/proton/common/feedtoken.h index eb932c22fe6..fee84d53ce5 100644 --- a/searchcore/src/vespa/searchcore/proton/common/feedtoken.h +++ b/searchcore/src/vespa/searchcore/proton/common/feedtoken.h @@ -32,18 +32,18 @@ public: }; private: - class State : public boost::noncopyable { + class State { public: + State(const State &) = delete; + State & operator = (const State &) = delete; State(ITransport & transport, mbus::Reply::UP reply, uint32_t numAcksRequired); ~State(); void setNumAcksRequired(uint32_t numAcksRequired) { _unAckedCount = numAcksRequired; } void ack(); - void - ack(const FeedOperation::Type opType, PerDocTypeFeedMetrics &metrics); + void ack(const FeedOperation::Type opType, PerDocTypeFeedMetrics &metrics); - void - incNeededAcks(void); + void incNeededAcks(void); void fail(uint32_t errNum, const vespalib::string &errMsg); void trace(uint32_t traceLevel, const vespalib::string &traceMsg); diff --git a/searchcore/src/vespa/searchcore/proton/docsummary/docsumcontext.h b/searchcore/src/vespa/searchcore/proton/docsummary/docsumcontext.h index d0ea8e089d1..ebfab9dd7e0 100644 --- a/searchcore/src/vespa/searchcore/proton/docsummary/docsumcontext.h +++ b/searchcore/src/vespa/searchcore/proton/docsummary/docsumcontext.h @@ -14,8 +14,7 @@ namespace proton { * The DocsumContext class is responsible for performing a docsum request and * creating a docsum reply. **/ -class DocsumContext : public boost::noncopyable, - public search::docsummary::GetDocsumsStateCallback { +class DocsumContext : public search::docsummary::GetDocsumsStateCallback { private: const search::engine::DocsumRequest & _request; search::docsummary::IDocsumWriter & _docsumWriter; diff --git a/searchcore/src/vespa/searchcore/proton/docsummary/isummarymanager.h b/searchcore/src/vespa/searchcore/proton/docsummary/isummarymanager.h index b9f105291fc..4ac3a6e9876 100644 --- a/searchcore/src/vespa/searchcore/proton/docsummary/isummarymanager.h +++ b/searchcore/src/vespa/searchcore/proton/docsummary/isummarymanager.h @@ -17,9 +17,11 @@ namespace proton { /** * Interface for a summary manager. */ -class ISummaryManager : public boost::noncopyable +class ISummaryManager { public: + ISummaryManager(const ISummaryManager &) = delete; + ISummaryManager & operator = (const ISummaryManager &) = delete; /** * Interface for a summary setup. */ @@ -53,7 +55,8 @@ public: const std::shared_ptr<search::IAttributeManager> &attributeMgr) = 0; virtual search::IDocumentStore &getBackingStore() = 0; - +protected: + ISummaryManager() = default; }; } // namespace proton diff --git a/searchcore/src/vespa/searchcore/proton/docsummary/summarymanager.h b/searchcore/src/vespa/searchcore/proton/docsummary/summarymanager.h index 5ade573887f..85eed282ea0 100644 --- a/searchcore/src/vespa/searchcore/proton/docsummary/summarymanager.h +++ b/searchcore/src/vespa/searchcore/proton/docsummary/summarymanager.h @@ -1,7 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/utility.hpp> #include <vespa/document/document.h> #include <vespa/document/repo/documenttyperepo.h> #include <vespa/searchcore/config/config-proton.h> diff --git a/searchcore/src/vespa/searchcore/proton/flushengine/flush_all_strategy.h b/searchcore/src/vespa/searchcore/proton/flushengine/flush_all_strategy.h index 8a0b2fa43dc..4c0076c738c 100644 --- a/searchcore/src/vespa/searchcore/proton/flushengine/flush_all_strategy.h +++ b/searchcore/src/vespa/searchcore/proton/flushengine/flush_all_strategy.h @@ -1,7 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/utility.hpp> #include <vespa/searchcore/proton/flushengine/iflushstrategy.h> #include <vespa/vespalib/util/sync.h> #include <vespa/vespalib/stllike/string.h> @@ -13,14 +12,12 @@ namespace proton { * Class implementing "flush" everything strategy. Targets are just * sorted on age. */ -class FlushAllStrategy : public boost::noncopyable, - public IFlushStrategy +class FlushAllStrategy : public IFlushStrategy { public: FlushAllStrategy(); - // Implements IFlushStrategy - virtual FlushContext::List + FlushContext::List getFlushTargets(const FlushContext::List &targetList, const flushengine::TlsStatsMap &) const override; }; diff --git a/searchcore/src/vespa/searchcore/proton/flushengine/flushcontext.h b/searchcore/src/vespa/searchcore/proton/flushengine/flushcontext.h index 837a99f153e..0795876a04e 100644 --- a/searchcore/src/vespa/searchcore/proton/flushengine/flushcontext.h +++ b/searchcore/src/vespa/searchcore/proton/flushengine/flushcontext.h @@ -1,7 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/utility.hpp> #include <vespa/searchcore/proton/flushengine/iflushhandler.h> #include <vespa/vespalib/util/executor.h> @@ -13,7 +12,7 @@ using searchcorespi::IFlushTarget; * This class is used by FlushEngine to hold the necessary context for flushing * a single IFlushTarget. */ -class FlushContext : public boost::noncopyable { +class FlushContext { private: vespalib::string _name; IFlushHandler::SP _handler; @@ -24,6 +23,8 @@ private: public: typedef std::shared_ptr<FlushContext> SP; typedef std::vector<SP> List; + FlushContext(const FlushContext &) = delete; + FlushContext & operator = (const FlushContext &) = delete; /** * Create a name of the handler and the target. diff --git a/searchcore/src/vespa/searchcore/proton/flushengine/flushengine.h b/searchcore/src/vespa/searchcore/proton/flushengine/flushengine.h index d8d77c11b8f..e76ec5e7e0c 100644 --- a/searchcore/src/vespa/searchcore/proton/flushengine/flushengine.h +++ b/searchcore/src/vespa/searchcore/proton/flushengine/flushengine.h @@ -13,8 +13,7 @@ namespace proton { namespace flushengine { class ITlsStatsFactory; } -class FlushEngine : public boost::noncopyable, - public FastOS_Runnable +class FlushEngine : public FastOS_Runnable { public: class FlushMeta { diff --git a/searchcore/src/vespa/searchcore/proton/flushengine/flushtask.h b/searchcore/src/vespa/searchcore/proton/flushengine/flushtask.h index c10fb740410..33b4c8647f7 100644 --- a/searchcore/src/vespa/searchcore/proton/flushengine/flushtask.h +++ b/searchcore/src/vespa/searchcore/proton/flushengine/flushtask.h @@ -9,8 +9,7 @@ namespace proton { * This class decorates a task returned by initFlush() in IFlushTarget so that * the appropriate callback is invoked on the running FlushEngine. */ -class FlushTask : public boost::noncopyable, - public vespalib::Executor::Task +class FlushTask : public vespalib::Executor::Task { private: uint32_t _taskId; @@ -19,6 +18,8 @@ private: search::SerialNum _serial; public: + FlushTask(const FlushTask &) = delete; + FlushTask & operator = (const FlushTask &) = delete; /** * Constructs a new instance of this class. * @@ -26,9 +27,7 @@ public: * @param engine The running flush engine. * @param ctx The context of the flush to perform. */ - FlushTask(uint32_t taskId, - FlushEngine &engine, - const FlushContext::SP &ctx); + FlushTask(uint32_t taskId, FlushEngine &engine, const FlushContext::SP &ctx); /** * Destructor. Notifies the engine that the flush is done to prevent the diff --git a/searchcore/src/vespa/searchcore/proton/flushengine/iflushhandler.h b/searchcore/src/vespa/searchcore/proton/flushengine/iflushhandler.h index 2d3eddf7af9..9f7f3e37188 100644 --- a/searchcore/src/vespa/searchcore/proton/flushengine/iflushhandler.h +++ b/searchcore/src/vespa/searchcore/proton/flushengine/iflushhandler.h @@ -23,7 +23,8 @@ public: * Convenience typedefs. */ typedef std::shared_ptr<IFlushHandler> SP; - + IFlushHandler(const IFlushHandler &) = delete; + IFlushHandler & operator = (const IFlushHandler &) = delete; /** * Constructs a new instance of this class. * @@ -38,21 +39,14 @@ public: /** * Virtual destructor required for inheritance. */ - virtual ~IFlushHandler() - { - // empty - } + virtual ~IFlushHandler() { } /** * Returns the unique name of this handler. * * @return The name of this. */ - const vespalib::string & - getName() const - { - return _name; - } + const vespalib::string & getName() const { return _name; } /** * Returns a list of the flush targets that belong to this handler. This @@ -60,8 +54,7 @@ public: * * @return The list of targets. */ - virtual std::vector<IFlushTarget::SP> - getFlushTargets() = 0; + virtual std::vector<IFlushTarget::SP> getFlushTargets() = 0; /** * Returns the current serial number of this handler. This is the head of @@ -88,8 +81,7 @@ public: * @param syncTo The last serial number that has to be persisted to stable * media. */ - virtual void - syncTls(SerialNum syncTo) = 0; + virtual void syncTls(SerialNum syncTo) = 0; }; } // namespace proton diff --git a/searchcore/src/vespa/searchcore/proton/flushengine/iflushstrategy.h b/searchcore/src/vespa/searchcore/proton/flushengine/iflushstrategy.h index 7139c69a778..c905f4486a1 100644 --- a/searchcore/src/vespa/searchcore/proton/flushengine/iflushstrategy.h +++ b/searchcore/src/vespa/searchcore/proton/flushengine/iflushstrategy.h @@ -19,6 +19,8 @@ public: */ typedef std::shared_ptr<IFlushStrategy> SP; + IFlushStrategy(const IFlushStrategy &) = delete; + IFlushStrategy & operator = (const IFlushStrategy &) = delete; /** * Virtual destructor required for inheritance. */ @@ -34,6 +36,8 @@ public: virtual FlushContext::List getFlushTargets(const FlushContext::List & targetList, const flushengine::TlsStatsMap & tlsStatsMap) const = 0; +protected: + IFlushStrategy() = default; }; } // namespace proton diff --git a/searchcore/src/vespa/searchcore/proton/matchengine/imatchhandler.h b/searchcore/src/vespa/searchcore/proton/matchengine/imatchhandler.h index 17bfc2fa958..14375313906 100644 --- a/searchcore/src/vespa/searchcore/proton/matchengine/imatchhandler.h +++ b/searchcore/src/vespa/searchcore/proton/matchengine/imatchhandler.h @@ -1,7 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/utility.hpp> #include <vespa/searchcore/proton/matching/isearchcontext.h> #include <vespa/searchcore/proton/summaryengine/isearchhandler.h> #include <vespa/searchlib/engine/searchreply.h> @@ -16,7 +15,11 @@ namespace proton { * operations to the appropriate db. */ class IMatchHandler { +protected: + IMatchHandler() = default; public: + IMatchHandler(const IMatchHandler &) = delete; + IMatchHandler & operator = (const IMatchHandler &) = delete; /** * Convenience typedefs. */ diff --git a/searchcore/src/vespa/searchcore/proton/matchengine/matchengine.h b/searchcore/src/vespa/searchcore/proton/matchengine/matchengine.h index 33f35ace94d..0c026dd602d 100644 --- a/searchcore/src/vespa/searchcore/proton/matchengine/matchengine.h +++ b/searchcore/src/vespa/searchcore/proton/matchengine/matchengine.h @@ -12,8 +12,7 @@ namespace proton { -class MatchEngine : public boost::noncopyable, - public search::engine::SearchServer, +class MatchEngine : public search::engine::SearchServer, public vespalib::StateExplorer { private: @@ -33,6 +32,8 @@ public: */ typedef std::unique_ptr<MatchEngine> UP; typedef std::shared_ptr<MatchEngine> SP; + MatchEngine(const MatchEngine &) = delete; + MatchEngine & operator = (const MatchEngine &) = delete; /** * Constructs a new match engine. This does the necessary setup of the diff --git a/searchcore/src/vespa/searchcore/proton/matching/isearchcontext.h b/searchcore/src/vespa/searchcore/proton/matching/isearchcontext.h index 5d018cd5f41..65744e628b5 100644 --- a/searchcore/src/vespa/searchcore/proton/matching/isearchcontext.h +++ b/searchcore/src/vespa/searchcore/proton/matching/isearchcontext.h @@ -21,11 +21,15 @@ namespace matching { **/ class ISearchContext { +protected: + ISearchContext() = default; public: /** * Convenience typedef for an auto pointer to this interface. **/ typedef std::unique_ptr<ISearchContext> UP; + ISearchContext(const ISearchContext &) = delete; + ISearchContext & operator = (const ISearchContext &) = delete; typedef search::queryeval::Searchable Searchable; diff --git a/searchcore/src/vespa/searchcore/proton/persistenceengine/ipersistencehandler.h b/searchcore/src/vespa/searchcore/proton/persistenceengine/ipersistencehandler.h index 38e7f85fda4..515c41bbafe 100644 --- a/searchcore/src/vespa/searchcore/proton/persistenceengine/ipersistencehandler.h +++ b/searchcore/src/vespa/searchcore/proton/persistenceengine/ipersistencehandler.h @@ -17,14 +17,17 @@ namespace proton { * operations to the appropriate db. */ class IPersistenceHandler { +protected: + IPersistenceHandler() = default; public: /** * Convenience typedefs. */ typedef std::unique_ptr<IPersistenceHandler> UP; typedef std::shared_ptr<IPersistenceHandler> SP; - typedef std::shared_ptr< - std::vector<IDocumentRetriever::SP> > RetrieversSP; + typedef std::shared_ptr<std::vector<IDocumentRetriever::SP> > RetrieversSP; + IPersistenceHandler(const IPersistenceHandler &) = delete; + IPersistenceHandler & operator = (const IPersistenceHandler &) = delete; /** * Virtual destructor to allow inheritance. diff --git a/searchcore/src/vespa/searchcore/proton/server/emptysearchview.cpp b/searchcore/src/vespa/searchcore/proton/server/emptysearchview.cpp index 4fd9726f686..dc25233f8c2 100644 --- a/searchcore/src/vespa/searchcore/proton/server/emptysearchview.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/emptysearchview.cpp @@ -14,9 +14,8 @@ using search::engine::SearchRequest; namespace proton { -EmptySearchView::EmptySearchView(void) - : boost::noncopyable(), - ISearchHandler() +EmptySearchView::EmptySearchView() + : ISearchHandler() { } diff --git a/searchcore/src/vespa/searchcore/proton/server/emptysearchview.h b/searchcore/src/vespa/searchcore/proton/server/emptysearchview.h index 3b22ecf43a5..c503302db46 100644 --- a/searchcore/src/vespa/searchcore/proton/server/emptysearchview.h +++ b/searchcore/src/vespa/searchcore/proton/server/emptysearchview.h @@ -6,8 +6,7 @@ namespace proton { -class EmptySearchView : public boost::noncopyable, - public ISearchHandler +class EmptySearchView : public ISearchHandler { public: typedef std::shared_ptr<EmptySearchView> SP; diff --git a/searchcore/src/vespa/searchcore/proton/server/feedhandler.cpp b/searchcore/src/vespa/searchcore/proton/server/feedhandler.cpp index 6b7eadb2cb8..c5cf0ee34b8 100644 --- a/searchcore/src/vespa/searchcore/proton/server/feedhandler.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/feedhandler.cpp @@ -515,8 +515,7 @@ FeedHandler::FeedHandler(IThreadingService &writeService, IReplayConfig &replayConfig, search::transactionlog::Writer *tlsDirectWriter, TlsWriter *tls_writer) - : boost::noncopyable(), - search::transactionlog::TransLogClient::Session::Callback(), + : search::transactionlog::TransLogClient::Session::Callback(), IDocumentMoveHandler(), IPruneRemovedDocumentsHandler(), IHeartBeatHandler(), diff --git a/searchcore/src/vespa/searchcore/proton/server/feedhandler.h b/searchcore/src/vespa/searchcore/proton/server/feedhandler.h index a1bf80181db..4c6e9966052 100644 --- a/searchcore/src/vespa/searchcore/proton/server/feedhandler.h +++ b/searchcore/src/vespa/searchcore/proton/server/feedhandler.h @@ -37,9 +37,7 @@ class IBucketDBHandler; * Class handling all aspects of feeding for a document database. * In addition to regular feeding this also includes handling the transaction log. */ -class FeedHandler: public boost::noncopyable, - private search::transactionlog:: - TransLogClient::Session::Callback, +class FeedHandler: private search::transactionlog::TransLogClient::Session::Callback, public IDocumentMoveHandler, public IPruneRemovedDocumentsHandler, public IHeartBeatHandler, @@ -138,48 +136,39 @@ private: void performDeleteBucket(FeedToken::UP token, DeleteBucketOperation &op); void performSplit(FeedToken::UP token, SplitBucketOperation &op); void performJoin(FeedToken::UP token, JoinBucketsOperation &op); - void performSync(void); + void performSync(); /** * Used during callback from transaction log. */ - void - handleTransactionLogEntry(const Packet::Entry &entry); - - void - performEof(void); + void handleTransactionLogEntry(const Packet::Entry &entry); + void performEof(); /** * Used when flushing is done */ - void - performFlushDone(SerialNum flushedSerial); - - void - performPrune(SerialNum flushedSerial); + void performFlushDone(SerialNum flushedSerial); + void performPrune(SerialNum flushedSerial); public: - void - considerDelayedPrune(void); + void considerDelayedPrune(); private: /** * Returns the current feed state of this feed handler. */ - FeedState::SP - getFeedState() const; + FeedState::SP getFeedState() const; /** * Used to handle feed state transitions. */ - void - changeFeedState(FeedState::SP newState); + void changeFeedState(FeedState::SP newState); - void - changeFeedState(FeedState::SP newState, - const vespalib::LockGuard &feedGuard); + void changeFeedState(FeedState::SP newState, const vespalib::LockGuard &feedGuard); public: + FeedHandler(const FeedHandler &) = delete; + FeedHandler & operator = (const FeedHandler &) = delete; /** * Create a new feed handler. * diff --git a/searchcore/src/vespa/searchcore/proton/server/flushhandlerproxy.h b/searchcore/src/vespa/searchcore/proton/server/flushhandlerproxy.h index 9f27c29c2bb..7e8837c92b0 100644 --- a/searchcore/src/vespa/searchcore/proton/server/flushhandlerproxy.h +++ b/searchcore/src/vespa/searchcore/proton/server/flushhandlerproxy.h @@ -7,31 +7,22 @@ namespace proton { -class FlushHandlerProxy : public boost::noncopyable, - public IFlushHandler +class FlushHandlerProxy : public IFlushHandler { private: DocumentDB::SP _documentDB; public: FlushHandlerProxy(const DocumentDB::SP &documentDB); - virtual - ~FlushHandlerProxy(void); + virtual ~FlushHandlerProxy(); /** * Implements IFlushHandler. */ - virtual std::vector<IFlushTarget::SP> - getFlushTargets(void); - - virtual SerialNum - getCurrentSerialNumber(void) const; - - virtual void - flushDone(SerialNum flushedSerial); - - virtual void - syncTls(SerialNum syncTo); + std::vector<IFlushTarget::SP> getFlushTargets() override; + SerialNum getCurrentSerialNumber() const override; + void flushDone(SerialNum flushedSerial) override; + void syncTls(SerialNum syncTo) override; }; } // namespace proton diff --git a/searchcore/src/vespa/searchcore/proton/server/ifeedview.h b/searchcore/src/vespa/searchcore/proton/server/ifeedview.h index eda592ec0e4..10b86b57885 100644 --- a/searchcore/src/vespa/searchcore/proton/server/ifeedview.h +++ b/searchcore/src/vespa/searchcore/proton/server/ifeedview.h @@ -23,14 +23,17 @@ class MoveOperation; /** * Interface for a feed view as seen from a feed handler. */ -class IFeedView : public boost::noncopyable +class IFeedView { protected: typedef search::transactionlog::Packet Packet; + IFeedView() = default; public: typedef std::shared_ptr<IFeedView> SP; - virtual~IFeedView() { } + IFeedView(const IFeedView &) = delete; + IFeedView & operator = (const IFeedView &) = delete; + virtual ~IFeedView() { } virtual const document::DocumentTypeRepo::SP &getDocumentTypeRepo() const = 0; diff --git a/searchcore/src/vespa/searchcore/proton/server/matchhandlerproxy.h b/searchcore/src/vespa/searchcore/proton/server/matchhandlerproxy.h index cde2ded80aa..b9d9017a691 100644 --- a/searchcore/src/vespa/searchcore/proton/server/matchhandlerproxy.h +++ b/searchcore/src/vespa/searchcore/proton/server/matchhandlerproxy.h @@ -7,8 +7,7 @@ namespace proton { -class MatchHandlerProxy : public boost::noncopyable, - public IMatchHandler +class MatchHandlerProxy : public IMatchHandler { private: DocumentDB::SP _documentDB; diff --git a/searchcore/src/vespa/searchcore/proton/server/matchview.cpp b/searchcore/src/vespa/searchcore/proton/server/matchview.cpp index 7873a54cc0c..19577ea4917 100644 --- a/searchcore/src/vespa/searchcore/proton/server/matchview.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/matchview.cpp @@ -37,8 +37,7 @@ MatchView::MatchView(const Matchers::SP &matchers, const SessionManager::SP &sessionMgr, const IDocumentMetaStoreContext::SP &metaStore, DocIdLimit &docIdLimit) - : boost::noncopyable(), - _matchers(matchers), + : _matchers(matchers), _indexSearchable(indexSearchable), _attrMgr(attrMgr), _sessionMgr(sessionMgr), diff --git a/searchcore/src/vespa/searchcore/proton/server/matchview.h b/searchcore/src/vespa/searchcore/proton/server/matchview.h index 45a809dfe14..018290aea14 100644 --- a/searchcore/src/vespa/searchcore/proton/server/matchview.h +++ b/searchcore/src/vespa/searchcore/proton/server/matchview.h @@ -14,7 +14,7 @@ namespace proton { -class MatchView : public boost::noncopyable { +class MatchView { Matchers::SP _matchers; searchcorespi::IndexSearchable::SP _indexSearchable; IAttributeManager::SP _attrMgr; @@ -28,6 +28,8 @@ class MatchView : public boost::noncopyable { public: typedef std::shared_ptr<MatchView> SP; + MatchView(const MatchView &) = delete; + MatchView & operator = (const MatchView &) = delete; MatchView(const Matchers::SP &matchers, const searchcorespi::IndexSearchable::SP &indexSearchable, @@ -36,49 +38,18 @@ public: const IDocumentMetaStoreContext::SP &metaStore, DocIdLimit &docIdLimit); - const Matchers::SP & - getMatchers() const - { - return _matchers; - } - - const searchcorespi::IndexSearchable::SP & - getIndexSearchable() const - { - return _indexSearchable; - } - - const IAttributeManager::SP & - getAttributeManager() const - { - return _attrMgr; - } - - const matching::SessionManager::SP & - getSessionManager() const - { - return _sessionMgr; - } - - const IDocumentMetaStoreContext::SP & - getDocumentMetaStore() const - { - return _metaStore; - } - - DocIdLimit & - getDocIdLimit(void) const - { - return _docIdLimit; - } + const Matchers::SP & getMatchers() const { return _matchers; } + const searchcorespi::IndexSearchable::SP & getIndexSearchable() const { return _indexSearchable; } + const IAttributeManager::SP & getAttributeManager() const { return _attrMgr; } + const matching::SessionManager::SP & getSessionManager() const { return _sessionMgr; } + const IDocumentMetaStoreContext::SP & getDocumentMetaStore() const { return _metaStore; } + DocIdLimit & getDocIdLimit(void) const { return _docIdLimit; } // Throws on error. - matching::Matcher::SP - getMatcher(const vespalib::string & rankProfile) const; + matching::Matcher::SP getMatcher(const vespalib::string & rankProfile) const; matching::MatchingStats - getMatcherStats(const vespalib::string &rankProfile) const - { + getMatcherStats(const vespalib::string &rankProfile) const { return _matchers->getStats(rankProfile); } diff --git a/searchcore/src/vespa/searchcore/proton/server/memoryflush.h b/searchcore/src/vespa/searchcore/proton/server/memoryflush.h index b8a05403feb..71af7bf6375 100644 --- a/searchcore/src/vespa/searchcore/proton/server/memoryflush.h +++ b/searchcore/src/vespa/searchcore/proton/server/memoryflush.h @@ -1,7 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/utility.hpp> #include <vespa/searchcore/proton/flushengine/iflushstrategy.h> #include <vespa/vespalib/util/sync.h> #include <vespa/vespalib/stllike/string.h> @@ -9,8 +8,7 @@ namespace proton { -class MemoryFlush : public boost::noncopyable, - public IFlushStrategy +class MemoryFlush : public IFlushStrategy { public: struct Config diff --git a/searchcore/src/vespa/searchcore/proton/server/persistencehandlerproxy.h b/searchcore/src/vespa/searchcore/proton/server/persistencehandlerproxy.h index 3ec92e96439..4e1af1ce1d0 100644 --- a/searchcore/src/vespa/searchcore/proton/server/persistencehandlerproxy.h +++ b/searchcore/src/vespa/searchcore/proton/server/persistencehandlerproxy.h @@ -7,8 +7,7 @@ namespace proton { -class PersistenceHandlerProxy : public boost::noncopyable, - public IPersistenceHandler +class PersistenceHandlerProxy : public IPersistenceHandler { private: DocumentDB::SP _documentDB; diff --git a/searchcore/src/vespa/searchcore/proton/server/searchable_doc_subdb_configurer.h b/searchcore/src/vespa/searchcore/proton/server/searchable_doc_subdb_configurer.h index 8d8d22c1c54..2e1110dd07d 100644 --- a/searchcore/src/vespa/searchcore/proton/server/searchable_doc_subdb_configurer.h +++ b/searchcore/src/vespa/searchcore/proton/server/searchable_doc_subdb_configurer.h @@ -29,7 +29,7 @@ namespace proton { /** * Class used to reconfig the feed view and search view used in a searchable sub database. */ -class SearchableDocSubDBConfigurer : public boost::noncopyable +class SearchableDocSubDBConfigurer { private: typedef vespalib::VarHolder<SearchView::SP> SearchViewHolder; @@ -70,6 +70,8 @@ private: const MatchView::SP &matchView); public: + SearchableDocSubDBConfigurer(const SearchableDocSubDBConfigurer &) = delete; + SearchableDocSubDBConfigurer & operator = (const SearchableDocSubDBConfigurer &) = delete; SearchableDocSubDBConfigurer(const ISummaryManager::SP &summaryMgr, SearchViewHolder &searchView, FeedViewHolder &feedView, diff --git a/searchcore/src/vespa/searchcore/proton/server/searchcontext.h b/searchcore/src/vespa/searchcore/proton/server/searchcontext.h index 058390d7c64..ab98814a437 100644 --- a/searchcore/src/vespa/searchcore/proton/server/searchcontext.h +++ b/searchcore/src/vespa/searchcore/proton/server/searchcontext.h @@ -1,7 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/noncopyable.hpp> #include <vespa/searchlib/attribute/attribute_blueprint_factory.h> #include <vespa/searchcore/proton/matching/isearchcontext.h> @@ -13,12 +12,11 @@ namespace proton { * the documenttype. First create, search and rank, then group/sort, * collect hits. */ -class SearchContext : public boost::noncopyable, - public matching::ISearchContext +class SearchContext : public matching::ISearchContext { private: /// Snapshot of the indexes used. - Searchable::SP _indexSearchable; + Searchable::SP _indexSearchable; search::AttributeBlueprintFactory _attributeBlueprintFactory; uint32_t _docIdLimit; diff --git a/searchcore/src/vespa/searchcore/proton/server/searchhandlerproxy.h b/searchcore/src/vespa/searchcore/proton/server/searchhandlerproxy.h index 59bf6cdac32..1fb25c37f45 100644 --- a/searchcore/src/vespa/searchcore/proton/server/searchhandlerproxy.h +++ b/searchcore/src/vespa/searchcore/proton/server/searchhandlerproxy.h @@ -7,8 +7,7 @@ namespace proton { -class SearchHandlerProxy : public boost::noncopyable, - public ISearchHandler +class SearchHandlerProxy : public ISearchHandler { private: DocumentDB::SP _documentDB; diff --git a/searchcore/src/vespa/searchcore/proton/server/searchview.cpp b/searchcore/src/vespa/searchcore/proton/server/searchview.cpp index 692be5fe183..e73ef2549df 100644 --- a/searchcore/src/vespa/searchcore/proton/server/searchview.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/searchview.cpp @@ -91,8 +91,7 @@ createEmptyReply(const DocsumRequest & request) SearchView::SearchView(const ISummaryManager::ISummarySetup::SP & summarySetup, const MatchView::SP & matchView) - : boost::noncopyable(), - ISearchHandler(), + : ISearchHandler(), _summarySetup(summarySetup), _matchView(matchView) { diff --git a/searchcore/src/vespa/searchcore/proton/server/searchview.h b/searchcore/src/vespa/searchcore/proton/server/searchview.h index d5e09489231..b638b34779f 100644 --- a/searchcore/src/vespa/searchcore/proton/server/searchview.h +++ b/searchcore/src/vespa/searchcore/proton/server/searchview.h @@ -8,8 +8,7 @@ namespace proton { -class SearchView : public boost::noncopyable, - public ISearchHandler +class SearchView : public ISearchHandler { private: ISummaryManager::ISummarySetup::SP _summarySetup; diff --git a/searchcore/src/vespa/searchcore/proton/server/simpleflush.h b/searchcore/src/vespa/searchcore/proton/server/simpleflush.h index dcec3e1f283..82e379a345a 100644 --- a/searchcore/src/vespa/searchcore/proton/server/simpleflush.h +++ b/searchcore/src/vespa/searchcore/proton/server/simpleflush.h @@ -1,14 +1,12 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/utility.hpp> #include <vespa/searchcore/proton/flushengine/iflushstrategy.h> #include <vespa/vespalib/util/sync.h> namespace proton { -class SimpleFlush : public boost::noncopyable, - public IFlushStrategy +class SimpleFlush : public IFlushStrategy { private: class CompareTarget { diff --git a/searchcore/src/vespa/searchcore/proton/server/transactionlogmanagerbase.h b/searchcore/src/vespa/searchcore/proton/server/transactionlogmanagerbase.h index 4a140f0caed..8c1de1fb14f 100644 --- a/searchcore/src/vespa/searchcore/proton/server/transactionlogmanagerbase.h +++ b/searchcore/src/vespa/searchcore/proton/server/transactionlogmanagerbase.h @@ -3,14 +3,13 @@ #pragma once #include <vespa/searchlib/transactionlog/translogclient.h> -#include <boost/noncopyable.hpp> namespace proton { /** * Base class managing the initialization and replay of a transaction log. **/ -class TransactionLogManagerBase : public boost::noncopyable { +class TransactionLogManagerBase { search::transactionlog::TransLogClient _tlc; search::transactionlog::TransLogClient::Session::UP _tlcSession; @@ -38,6 +37,8 @@ protected: int64_t elapsedTime) const = 0; public: + TransactionLogManagerBase(const TransactionLogManagerBase &) = delete; + TransactionLogManagerBase & operator = (const TransactionLogManagerBase &) = delete; /** * Create a new manager. * diff --git a/searchcore/src/vespa/searchcore/proton/summaryengine/isearchhandler.h b/searchcore/src/vespa/searchcore/proton/summaryengine/isearchhandler.h index b8fe2b658ff..866b89c2276 100644 --- a/searchcore/src/vespa/searchcore/proton/summaryengine/isearchhandler.h +++ b/searchcore/src/vespa/searchcore/proton/summaryengine/isearchhandler.h @@ -1,7 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/utility.hpp> #include <vespa/searchlib/engine/docsumreply.h> #include <vespa/searchlib/engine/docsumrequest.h> #include <vespa/searchlib/engine/searchreply.h> @@ -23,6 +22,8 @@ public: typedef std::unique_ptr<ISearchHandler> UP; typedef std::shared_ptr<ISearchHandler> SP; + ISearchHandler(const ISearchHandler &) = delete; + ISearchHandler & operator = (const ISearchHandler &) = delete; /** * Virtual destructor to allow inheritance. */ @@ -37,6 +38,8 @@ public: const ISearchHandler::SP &self, const search::engine::SearchRequest &req, vespalib::ThreadBundle &threadBundle) const = 0; +protected: + ISearchHandler() = default; }; } // namespace proton diff --git a/searchcore/src/vespa/searchcore/proton/summaryengine/summaryengine.h b/searchcore/src/vespa/searchcore/proton/summaryengine/summaryengine.h index 888fbc82ec8..54c25254de4 100644 --- a/searchcore/src/vespa/searchcore/proton/summaryengine/summaryengine.h +++ b/searchcore/src/vespa/searchcore/proton/summaryengine/summaryengine.h @@ -9,8 +9,7 @@ namespace proton { -class SummaryEngine : public boost::noncopyable, - public search::engine::DocsumServer +class SummaryEngine : public search::engine::DocsumServer { private: using DocsumReply = search::engine::DocsumReply; @@ -28,6 +27,8 @@ public: */ typedef std::unique_ptr<SummaryEngine> UP; typedef std::shared_ptr<SummaryEngine> SP; + SummaryEngine(const SummaryEngine &) = delete; + SummaryEngine & operator = (const SummaryEngine &) = delete; /** * Constructs a new summary engine. This does the necessary setup of the diff --git a/searchlib/src/vespa/searchlib/attribute/iattributemanager.h b/searchlib/src/vespa/searchlib/attribute/iattributemanager.h index 7e3ab9c164c..0b50bf39203 100644 --- a/searchlib/src/vespa/searchlib/attribute/iattributemanager.h +++ b/searchlib/src/vespa/searchlib/attribute/iattributemanager.h @@ -13,6 +13,8 @@ namespace search { **/ class IAttributeManager { public: + IAttributeManager(const IAttributeManager &) = delete; + IAttributeManager & operator = (const IAttributeManager &) = delete; typedef std::shared_ptr<IAttributeManager> SP; typedef vespalib::string string; @@ -51,6 +53,8 @@ public: * Virtual destructor to allow safe subclassing. **/ virtual ~IAttributeManager() {} +protected: + IAttributeManager() = default; }; } // namespace search diff --git a/searchlib/src/vespa/searchlib/queryeval/nearsearch.h b/searchlib/src/vespa/searchlib/queryeval/nearsearch.h index 48a3af91a4d..2cf737d41b0 100644 --- a/searchlib/src/vespa/searchlib/queryeval/nearsearch.h +++ b/searchlib/src/vespa/searchlib/queryeval/nearsearch.h @@ -1,7 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <boost/utility.hpp> #include <vespa/searchlib/fef/termfieldmatchdata.h> #include <vespa/searchlib/fef/termfieldmatchdataarray.h> #include "andsearch.h" diff --git a/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.h b/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.h index 48ba84fb1e4..391ed14bba2 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.h +++ b/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.h @@ -28,6 +28,10 @@ public: virtual void FillRankFeatures(GetDocsumsState * state, IDocsumEnvironment * env) = 0; virtual void ParseLocation(GetDocsumsState * state) = 0; virtual ~GetDocsumsStateCallback(void) { } + GetDocsumsStateCallback(const GetDocsumsStateCallback &) = delete; + GetDocsumsStateCallback & operator = (const GetDocsumsStateCallback &) = delete; +protected: + GetDocsumsStateCallback() = default; }; /** diff --git a/storage/src/vespa/storage/common/visitorfactory.h b/storage/src/vespa/storage/common/visitorfactory.h index ac03057d466..f8911c27e4b 100644 --- a/storage/src/vespa/storage/common/visitorfactory.h +++ b/storage/src/vespa/storage/common/visitorfactory.h @@ -8,7 +8,6 @@ */ #pragma once -#include <boost/shared_ptr.hpp> #include <vespa/vdslib/container/parameters.h> namespace storage { |