#include "atomic.h"
#include "atomicqueue.h"
+#include "dcp/dcp-types.h"
#include <climits>
#include <iterator>
class Consumer;
class EventuallyPersistentEngine;
-typedef SingleThreadedRCPtr<ConnHandler> connection_t;
-
/**
* Connection notifier type.
*/
#define SRC_DCP_BACKFILL_MANAGER_H_ 1
#include "config.h"
-#include "connmap.h"
#include "dcp/backfill.h"
-#include "dcp/producer.h"
-#include "dcp/stream.h"
#include <list>
#include "dcp/consumer.h"
+#include "dcp/dcpconnmap.h"
+#include "dcp/stream.h"
#include "ep_engine.h"
#include "failover-table.h"
#include "replicationthrottle.h"
-#include "dcp/dcpconnmap.h"
-#include "dcp/stream.h"
-#include "dcp/response.h"
-#include <platform/make_unique.h>
#include <climits>
#include <phosphor/phosphor.h>
#include "config.h"
-#include <relaxed_atomic.h>
-
-#include "connmap.h"
-#include "dcp/dcp-types.h"
+#include "atomic_unordered_map.h"
#include "dcp/flow-control.h"
-#include "dcp/stream.h"
#include "tapconnection.h"
+#include <relaxed_atomic.h>
+
class DcpResponse;
class StreamEndResponse;
class PassiveStream;
typedef RCPtr<PassiveStream> passive_stream_t;
+class ConnHandler;
+typedef SingleThreadedRCPtr<ConnHandler> connection_t;
+
+enum process_items_error_t { all_processed, more_to_process, cannot_process };
+
/**
* DcpReadyQueue is a std::queue wrapper for managing a
* queue of vbuckets that are ready for a DCP producer/consumer to process.
#include "config.h"
-#include <algorithm>
-#include <limits>
-#include <string>
-#include <vector>
-
-#include "connmap.h"
-#include "executorthread.h"
-#include "dcp/backfill-manager.h"
+#include "configuration.h"
#include "dcp/consumer.h"
-#include "dcp/dcpconnmap.h"
#include "dcp/producer.h"
+#include "dcpconnmap.h"
+#include "ep_engine.h"
const uint32_t DcpConnMap::dbFileMem = 10 * 1024;
const uint16_t DcpConnMap::numBackfillsThreshold = 4096;
const uint8_t DcpConnMap::numBackfillsMemThreshold = 1;
+class DcpConnMap::DcpConfigChangeListener : public ValueChangedListener {
+public:
+ DcpConfigChangeListener(DcpConnMap& connMap);
+ virtual ~DcpConfigChangeListener() {
+ }
+ virtual void sizeValueChanged(const std::string& key, size_t value);
+
+private:
+ DcpConnMap& myConnMap;
+};
+
DcpConnMap::DcpConnMap(EventuallyPersistentEngine &e)
: ConnMap(e),
aggrDcpConsumerBufferSize(0) {
#include "config.h"
+#include "connmap.h"
+
#include <atomic>
-#include <climits>
#include <list>
#include <string>
-#include "ep_engine.h"
-#include "locks.h"
-#include "syncobject.h"
-#include "atomicqueue.h"
-#include "connmap.h"
-#include "dcp/consumer.h"
-#include "dcp/producer.h"
+class DcpProducer;
+class DcpConsumer;
class DcpConnMap : public ConnMap {
/* Total memory used by all DCP consumer buffers */
std::atomic<size_t> aggrDcpConsumerBufferSize;
- class DcpConfigChangeListener : public ValueChangedListener {
- public:
- DcpConfigChangeListener(DcpConnMap& connMap);
- virtual ~DcpConfigChangeListener() { }
- virtual void sizeValueChanged(const std::string &key, size_t value);
- private:
- DcpConnMap& myConnMap;
- };
+ class DcpConfigChangeListener;
};
* limitations under the License.
*/
-#include <vector>
-#include <memcached/server_api.h>
-
#include "dcp/producer.h"
#include "backfill.h"
#include "failover-table.h"
#include "dcp/backfill-manager.h"
#include "dcp/dcpconnmap.h"
-#include "dcp/response.h"
-#include "dcp/stream.h"
+
+#include <memcached/server_api.h>
+#include <vector>
const std::chrono::seconds DcpProducer::defaultDcpNoopTxInterval(20);
END_STREAM_BACKFILL_FAIL
};
-enum process_items_error_t {
- all_processed,
- more_to_process,
- cannot_process
-};
-
enum backfill_source_t {
BACKFILL_FROM_MEMORY,
BACKFILL_FROM_DISK
*/
#include "dcp/dcpconnmap.h"
+#include "dcp/producer.h"
+#include "dcp/stream.h"
#include "evp_store_single_threaded_test.h"
#include "evp_store_test.h"
#include "failover-table.h"