You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by al...@apache.org on 2017/08/21 21:03:59 UTC

[12/14] kudu git commit: [iwyu] first pass

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/cfile_reader.h
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/cfile_reader.h b/src/kudu/cfile/cfile_reader.h
index 1517771..e20b8dc 100644
--- a/src/kudu/cfile/cfile_reader.h
+++ b/src/kudu/cfile/cfile_reader.h
@@ -18,42 +18,49 @@
 #ifndef KUDU_CFILE_CFILE_READER_H
 #define KUDU_CFILE_CFILE_READER_H
 
+#include <cstddef>
+#include <cstdint>
 #include <memory>
 #include <string>
 #include <vector>
 
-#include "kudu/common/columnblock.h"
-#include "kudu/common/types.h"
-#include "kudu/cfile/block_cache.h"
+#include <glog/logging.h>
+
 #include "kudu/cfile/block_encodings.h"
 #include "kudu/cfile/block_handle.h"
-#include "kudu/cfile/block_compression.h"
-#include "kudu/cfile/cfile_util.h"
-#include "kudu/cfile/index_btree.h"
-#include "kudu/cfile/type_encodings.h"
+#include "kudu/cfile/block_pointer.h"
+#include "kudu/cfile/cfile.pb.h"
+#include "kudu/common/iterator_stats.h"
+#include "kudu/common/rowid.h"
 #include "kudu/fs/block_id.h"
 #include "kudu/fs/block_manager.h"
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/port.h"
+#include "kudu/util/compression/compression.pb.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/mem_tracker.h"
 #include "kudu/util/object_pool.h"
 #include "kudu/util/once.h"
 #include "kudu/util/rle-encoding.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
-#include "kudu/common/iterator_stats.h"
-#include "kudu/common/key_encoder.h"
 
 namespace kudu {
+
+class ColumnMaterializationContext;
+class CompressionCodec;
+class EncodedKey;
+class SelectionVector;
+class TypeInfo;
+
 namespace cfile {
 
-class BlockCache;
-class BlockDecoder;
-class BlockPointer;
-class CFileHeaderPB;
-class CFileFooterPB;
-class CFileIterator;
 class BinaryPlainBlockDecoder;
+class CFileIterator;
+class IndexTreeIterator;
+class TypeEncodingInfo;
+struct ReaderOptions;
 
 class CFileReader {
  public:

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/cfile_util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/cfile_util.cc b/src/kudu/cfile/cfile_util.cc
index 06c7813..2995407 100644
--- a/src/kudu/cfile/cfile_util.cc
+++ b/src/kudu/cfile/cfile_util.cc
@@ -17,14 +17,21 @@
 
 #include "kudu/cfile/cfile_util.h"
 
-#include <glog/logging.h>
 #include <algorithm>
+#include <cstdint>
 #include <string>
 
+#include <glog/logging.h>
+
 #include "kudu/cfile/cfile_reader.h"
 #include "kudu/common/column_materialization_context.h"
-#include "kudu/util/env.h"
+#include "kudu/common/columnblock.h"
+#include "kudu/common/rowblock.h"
+#include "kudu/common/types.h"
+#include "kudu/gutil/port.h"
+#include "kudu/util/bitmap.h"
 #include "kudu/util/mem_tracker.h"
+#include "kudu/util/memory/arena.h"
 
 namespace kudu {
 namespace cfile {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/cfile_util.h
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/cfile_util.h b/src/kudu/cfile/cfile_util.h
index 640ea9c..56f03ee 100644
--- a/src/kudu/cfile/cfile_util.h
+++ b/src/kudu/cfile/cfile_util.h
@@ -17,19 +17,18 @@
 #ifndef CFILE_UTIL_H_
 #define CFILE_UTIL_H_
 
-#include <algorithm>
+#include <cstddef>
 #include <iostream>
-
-#include "kudu/cfile/cfile.pb.h"
+#include <memory>
 
 #include "kudu/common/schema.h"
-#include "kudu/common/row.h"
-#include "kudu/common/encoded_key.h"
-#include "kudu/util/bloom_filter.h"
 #include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
+
+class MemTracker;
+
 namespace cfile {
 
 class CFileReader;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/cfile_writer.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/cfile_writer.cc b/src/kudu/cfile/cfile_writer.cc
index cfc934a..9ddcbfb 100644
--- a/src/kudu/cfile/cfile_writer.cc
+++ b/src/kudu/cfile/cfile_writer.cc
@@ -17,19 +17,28 @@
 
 #include "kudu/cfile/cfile_writer.h"
 
-#include <glog/logging.h>
 #include <numeric>
 #include <string>
+#include <ostream>
 #include <utility>
 
+#include <gflags/gflags.h>
+#include <glog/logging.h>
+
+#include "kudu/cfile/block_compression.h"
+#include "kudu/cfile/block_encodings.h"
 #include "kudu/cfile/block_pointer.h"
+#include "kudu/cfile/cfile.pb.h"
 #include "kudu/cfile/cfile_util.h"
-#include "kudu/cfile/index_block.h"
 #include "kudu/cfile/index_btree.h"
 #include "kudu/cfile/type_encodings.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/key_encoder.h"
-#include "kudu/gutil/endian.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/types.h"
+#include "kudu/gutil/port.h"
 #include "kudu/util/coding.h"
+#include "kudu/util/coding-inl.h"
 #include "kudu/util/compression/compression_codec.h"
 #include "kudu/util/crc.h"
 #include "kudu/util/debug/trace_event.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/cfile_writer.h
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/cfile_writer.h b/src/kudu/cfile/cfile_writer.h
index 8b6ac57..b3461b2 100644
--- a/src/kudu/cfile/cfile_writer.h
+++ b/src/kudu/cfile/cfile_writer.h
@@ -18,37 +18,47 @@
 #ifndef KUDU_CFILE_CFILE_WRITER_H
 #define KUDU_CFILE_CFILE_WRITER_H
 
-#include <stdint.h>
-
+#include <cstddef>
+#include <cstdint>
 #include <memory>
 #include <string>
 #include <utility>
 #include <vector>
 
-#include "kudu/cfile/block_encodings.h"
-#include "kudu/cfile/block_compression.h"
-#include "kudu/cfile/cfile.pb.h"
 #include "kudu/cfile/cfile_util.h"
-#include "kudu/cfile/type_encodings.h"
-#include "kudu/common/key_encoder.h"
-#include "kudu/common/types.h"
+#include "kudu/common/rowid.h"
 #include "kudu/fs/block_id.h"
 #include "kudu/fs/block_manager.h"
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
-#include "kudu/gutil/strings/stringpiece.h"
-#include "kudu/util/env.h"
+#include "kudu/util/bitmap.h"
+#include "kudu/util/compression/compression.pb.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/rle-encoding.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 
+namespace google {
+namespace protobuf {
+template <typename Element>
+class RepeatedPtrField; // IWYU pragma: keep
+}
+}
+
 namespace kudu {
-class Arena;
+
+class TypeInfo;
+template <typename Buffer>
+class KeyEncoder;
 
 namespace cfile {
 
+class BlockBuilder;
 class BlockPointer;
-class BTreeInfoPB;
+class CompressedBlockBuilder;
+class FileMetadataPairPB;
 class IndexTreeBuilder;
+class TypeEncodingInfo;
 
 // Magic used in header/footer
 extern const char kMagicStringV1[];

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/encoding-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/encoding-test.cc b/src/kudu/cfile/encoding-test.cc
index 8dfd602..ba10ed4 100644
--- a/src/kudu/cfile/encoding-test.cc
+++ b/src/kudu/cfile/encoding-test.cc
@@ -15,29 +15,46 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <glog/logging.h>
-#include <gtest/gtest.h>
-#include <memory>
+#include <sys/types.h>
+
+#include <algorithm>
+#include <climits>
+#include <cstdint>
+#include <cstdio>
+#include <cstdlib>
 #include <limits>
-#include <stdlib.h>
+#include <memory>
+#include <ostream>
+#include <string>
 #include <vector>
 
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
+#include "kudu/cfile/binary_plain_block.h"
+#include "kudu/cfile/binary_prefix_block.h"
 #include "kudu/cfile/block_encodings.h"
 #include "kudu/cfile/bshuf_block.h"
-#include "kudu/cfile/cfile_writer.h"
+#include "kudu/cfile/cfile_util.h"
 #include "kudu/cfile/plain_bitmap_block.h"
 #include "kudu/cfile/plain_block.h"
 #include "kudu/cfile/rle_block.h"
-#include "kudu/cfile/binary_plain_block.h"
-#include "kudu/cfile/binary_prefix_block.h"
 #include "kudu/common/columnblock.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/types.h"
 #include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/stringprintf.h"
+#include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/group_varint-inl.h"
 #include "kudu/util/hexdump.h"
 #include "kudu/util/memory/arena.h"
 #include "kudu/util/random.h"
 #include "kudu/util/random_util.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 #include "kudu/util/stopwatch.h"
 #include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
@@ -47,7 +64,6 @@ using std::unique_ptr;
 using std::vector;
 
 namespace kudu {
-
 namespace cfile {
 
 class TestEncoding : public KuduTest {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/index-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/index-test.cc b/src/kudu/cfile/index-test.cc
index f0d457c..98b3a05 100644
--- a/src/kudu/cfile/index-test.cc
+++ b/src/kudu/cfile/index-test.cc
@@ -15,14 +15,24 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstdint>
+#include <cstdio>
+#include <cstring>
 #include <string>
 
+#include <glog/logging.h>
 #include <gtest/gtest.h>
 
-#include "kudu/cfile/cfile_writer.h"
-#include "kudu/cfile/index_btree.h"
+#include "kudu/cfile/block_pointer.h"
+#include "kudu/cfile/cfile_util.h"
+#include "kudu/cfile/index_block.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/key_encoder.h"
 #include "kudu/gutil/endian.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/hexdump.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 #include "kudu/util/test_macros.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/index_block.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/index_block.cc b/src/kudu/cfile/index_block.cc
index efe4b82..79cb608 100644
--- a/src/kudu/cfile/index_block.cc
+++ b/src/kudu/cfile/index_block.cc
@@ -17,10 +17,16 @@
 
 #include "kudu/cfile/index_block.h"
 
+#include <cstdint>
+#include <ostream>
 #include <string>
 
-#include "kudu/cfile/cfile_writer.h"
+#include <glog/logging.h>
+
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/coding-inl.h"
+#include "kudu/util/coding.h"
 #include "kudu/util/pb_util.h"
 #include "kudu/util/protobuf_util.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/index_block.h
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/index_block.h b/src/kudu/cfile/index_block.h
index 1817b66..cb51bcd 100644
--- a/src/kudu/cfile/index_block.h
+++ b/src/kudu/cfile/index_block.h
@@ -18,15 +18,16 @@
 #ifndef KUDU_CFILE_INDEX_BLOCK_H
 #define KUDU_CFILE_INDEX_BLOCK_H
 
-#include <glog/logging.h>
+#include <cstddef>
+#include <cstdint>
 #include <vector>
 
-#include "kudu/common/types.h"
 #include "kudu/cfile/block_pointer.h"
-#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/cfile/cfile.pb.h"
 #include "kudu/gutil/macros.h"
-#include "kudu/gutil/port.h"
-#include "kudu/util/coding-inl.h"
+#include "kudu/util/faststring.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 namespace cfile {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/index_btree.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/index_btree.cc b/src/kudu/cfile/index_btree.cc
index 54d8739..d83932f 100644
--- a/src/kudu/cfile/index_btree.cc
+++ b/src/kudu/cfile/index_btree.cc
@@ -15,14 +15,19 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <string>
 #include <vector>
+#include <ostream>
 
-#include "kudu/cfile/block_cache.h"
+#include <glog/logging.h>
+
+#include "kudu/cfile/cfile.pb.h"
 #include "kudu/cfile/cfile_reader.h"
 #include "kudu/cfile/cfile_writer.h"
+#include "kudu/cfile/cfile_util.h"
 #include "kudu/cfile/index_btree.h"
-#include "kudu/common/key_encoder.h"
 #include "kudu/util/debug-util.h"
+#include "kudu/util/make_shared.h"
 
 using std::vector;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/index_btree.h
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/index_btree.h b/src/kudu/cfile/index_btree.h
index c0d0f62..edfbaad 100644
--- a/src/kudu/cfile/index_btree.h
+++ b/src/kudu/cfile/index_btree.h
@@ -18,19 +18,24 @@
 #ifndef KUDU_CFILE_INDEX_BTREE_H
 #define KUDU_CFILE_INDEX_BTREE_H
 
+#include <cstddef>
 #include <memory>
 #include <vector>
 
 #include "kudu/cfile/block_handle.h"
-#include "kudu/cfile/cfile.pb.h"
+#include "kudu/cfile/block_pointer.h"
 #include "kudu/cfile/index_block.h"
 #include "kudu/gutil/macros.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 namespace cfile {
 
+class BTreeInfoPB;
 class CFileReader;
 class CFileWriter;
+struct WriterOptions;
 
 class IndexTreeBuilder {
  public:

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/mt-bloomfile-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/mt-bloomfile-test.cc b/src/kudu/cfile/mt-bloomfile-test.cc
index ac0bd98..f0288b1 100644
--- a/src/kudu/cfile/mt-bloomfile-test.cc
+++ b/src/kudu/cfile/mt-bloomfile-test.cc
@@ -17,9 +17,9 @@
 
 #include "kudu/cfile/bloomfile-test-base.h"
 
-#include <boost/bind.hpp>
-
-#include "kudu/util/thread.h"
+#include <boost/bind.hpp> // IWYU pragma: keep
+#include <gflags/gflags.h>
+#include <glog/logging.h>
 
 DEFINE_int32(benchmark_num_threads, 8, "Number of threads to use for the benchmark");
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/type_encodings.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/type_encodings.cc b/src/kudu/cfile/type_encodings.cc
index 85035c6..3485192 100644
--- a/src/kudu/cfile/type_encodings.cc
+++ b/src/kudu/cfile/type_encodings.cc
@@ -16,12 +16,11 @@
 // under the License.
 #include "kudu/cfile/type_encodings.h"
 
-#include <unordered_map>
+#include <cstddef>
 #include <memory>
+#include <unordered_map>
 #include <utility>
 
-#include <glog/logging.h>
-
 #include "kudu/cfile/bshuf_block.h"
 #include "kudu/cfile/plain_bitmap_block.h"
 #include "kudu/cfile/plain_block.h"
@@ -30,7 +29,11 @@
 #include "kudu/cfile/binary_plain_block.h"
 #include "kudu/cfile/binary_prefix_block.h"
 #include "kudu/common/types.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/singleton.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/slice.h"
+
 
 using std::make_pair;
 using std::pair;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/type_encodings.h
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/type_encodings.h b/src/kudu/cfile/type_encodings.h
index c9b8a4b..bbcaf87 100644
--- a/src/kudu/cfile/type_encodings.h
+++ b/src/kudu/cfile/type_encodings.h
@@ -18,16 +18,17 @@
 #define KUDU_CFILE_TYPE_ENCODINGS_H_
 
 #include "kudu/common/common.pb.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/util/make_shared.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
+class Slice;
 class TypeInfo;
 
 namespace cfile {
 class BlockBuilder;
 class BlockDecoder;
-class CFileReader;
 class CFileIterator;
 struct WriterOptions;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/batcher.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/batcher.cc b/src/kudu/client/batcher.cc
index 4a0fc8c..0acd43a 100644
--- a/src/kudu/client/batcher.cc
+++ b/src/kudu/client/batcher.cc
@@ -18,15 +18,17 @@
 #include "kudu/client/batcher.h"
 
 #include <algorithm>
+#include <cstddef>
 #include <memory>
 #include <mutex>
+#include <ostream>
 #include <set>
 #include <string>
+#include <type_traits>
 #include <unordered_map>
 #include <utility>
 #include <vector>
 
-#include <boost/bind.hpp>
 #include <glog/logging.h>
 
 #include "kudu/client/callbacks.h"
@@ -34,25 +36,32 @@
 #include "kudu/client/client.h"
 #include "kudu/client/error_collector.h"
 #include "kudu/client/meta_cache.h"
+#include "kudu/client/schema.h"
 #include "kudu/client/session-internal.h"
+#include "kudu/client/shared_ptr.h"
 #include "kudu/client/write_op-internal.h"
 #include "kudu/client/write_op.h"
-#include "kudu/common/encoded_key.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/partition.h"
 #include "kudu/common/row_operations.h"
 #include "kudu/common/wire_protocol.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/gutil/atomic_refcount.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/move.h"
 #include "kudu/gutil/stl_util.h"
-#include "kudu/gutil/strings/human_readable.h"
-#include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/rpc/messenger.h"
-#include "kudu/rpc/request_tracker.h"
+#include "kudu/rpc/connection.h"
+#include "kudu/rpc/response_callback.h"
 #include "kudu/rpc/retriable_rpc.h"
 #include "kudu/rpc/rpc.h"
 #include "kudu/rpc/rpc_controller.h"
 #include "kudu/rpc/rpc_header.pb.h"
+#include "kudu/tserver/tserver.pb.h"
 #include "kudu/tserver/tserver_service.proxy.h"
-#include "kudu/util/debug-util.h"
 #include "kudu/util/logging.h"
 #include "kudu/util/pb_util.h"
 
@@ -67,6 +76,14 @@ using strings::Substitute;
 
 namespace kudu {
 
+class KuduPartialRow;
+class Schema;
+
+namespace rpc {
+class Messenger;
+class RequestTracker;
+}
+
 using pb_util::SecureDebugString;
 using pb_util::SecureShortDebugString;
 using rpc::CredentialsPolicy;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/batcher.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/batcher.h b/src/kudu/client/batcher.h
index f98cf0d..b244b28 100644
--- a/src/kudu/client/batcher.h
+++ b/src/kudu/client/batcher.h
@@ -17,27 +17,28 @@
 #ifndef KUDU_CLIENT_BATCHER_H
 #define KUDU_CLIENT_BATCHER_H
 
+#include <cstdint>
+#include <mutex>
 #include <unordered_map>
 #include <unordered_set>
 #include <vector>
 
 #include "kudu/client/client.h"
-#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/client/write_op.h"
+#include "kudu/gutil/atomicops.h"
 #include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/ref_counted.h"
-#include "kudu/util/async_util.h"
 #include "kudu/util/atomic.h"
-#include "kudu/util/debug-util.h"
 #include "kudu/util/locks.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
 namespace client {
 
-class KuduClient;
-class KuduSession;
 class KuduStatusCallback;
-class KuduWriteOperation;
 
 namespace internal {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/client-internal.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/client-internal.cc b/src/kudu/client/client-internal.cc
index da16fcf..5e84eca 100644
--- a/src/kudu/client/client-internal.cc
+++ b/src/kudu/client/client-internal.cc
@@ -18,37 +18,48 @@
 #include "kudu/client/client-internal.h"
 
 #include <algorithm>
+#include <cstdint>
 #include <functional>
 #include <limits>
 #include <memory>
 #include <mutex>
+#include <ostream>
 #include <string>
 #include <vector>
 
+#include <boost/bind.hpp> // IWYU pragma: keep
+#include <boost/function.hpp>
+#include <glog/logging.h>
+
 #include "kudu/client/master_rpc.h"
 #include "kudu/client/meta_cache.h"
+#include "kudu/client/schema.h"
+#include "kudu/common/partition.h"
 #include "kudu/common/schema.h"
 #include "kudu/common/wire_protocol.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/human_readable.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/gutil/sysinfo.h"
 #include "kudu/master/master.h"
 #include "kudu/master/master.pb.h"
 #include "kudu/master/master.proxy.h"
 #include "kudu/rpc/messenger.h"
 #include "kudu/rpc/request_tracker.h"
-#include "kudu/rpc/rpc.h"
 #include "kudu/rpc/rpc_controller.h"
 #include "kudu/rpc/rpc_header.pb.h"
 #include "kudu/security/cert.h"
+#include "kudu/security/openssl_util.h"
 #include "kudu/security/tls_context.h"
+#include "kudu/util/async_util.h"
 #include "kudu/util/logging.h"
 #include "kudu/util/net/dns_resolver.h"
 #include "kudu/util/net/net_util.h"
+#include "kudu/util/net/sockaddr.h"
 #include "kudu/util/pb_util.h"
 #include "kudu/util/thread_restrictions.h"
+#include "kudu/rpc/connection.h"
 
 using std::set;
 using std::shared_ptr;
@@ -58,7 +69,6 @@ using std::vector;
 
 namespace kudu {
 
-using consensus::RaftPeerPB;
 using master::AlterTableRequestPB;
 using master::AlterTableResponsePB;
 using master::CreateTableRequestPB;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/client-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/client-internal.h b/src/kudu/client/client-internal.h
index a7a1434..d19d579 100644
--- a/src/kudu/client/client-internal.h
+++ b/src/kudu/client/client-internal.h
@@ -19,25 +19,36 @@
 
 #include <algorithm>
 #include <cmath>
+#include <cstdint>
+#include <cstdlib>
+#include <memory>
 #include <set>
 #include <string>
 #include <unordered_set>
 #include <vector>
 
-#include <boost/function.hpp>
-
 #include "kudu/client/client.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/rpc/rpc_controller.h"
-#include "kudu/security/token.pb.h"
 #include "kudu/util/atomic.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/net/net_util.h"
+#include "kudu/util/status.h"
+#include "kudu/util/status_callback.h"
+
+namespace boost {
+template <typename Signature>
+class function;
+} // namespace boost
 
 namespace kudu {
 
 class DnsResolver;
-class HostPort;
+class PartitionSchema;
+class Sockaddr;
 
 namespace master {
 class AlterTableRequestPB;
@@ -53,8 +64,13 @@ class RequestTracker;
 
 namespace client {
 
+class KuduSchema;
+
 namespace internal {
 class ConnectToClusterRpc;
+class MetaCache;
+class RemoteTablet;
+class RemoteTabletServer;
 } // namespace internal
 
 class KuduClient::Data {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/client-test-util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/client-test-util.cc b/src/kudu/client/client-test-util.cc
index c44e813..e1b0333 100644
--- a/src/kudu/client/client-test-util.cc
+++ b/src/kudu/client/client-test-util.cc
@@ -18,14 +18,19 @@
 #include "kudu/client/client-test-util.h"
 
 #include <string>
+#include <ostream>
 #include <vector>
 
 #include <glog/logging.h>
+#include <gtest/gtest.h>
 
+#include "kudu/client/row_result.h"
+#include "kudu/client/scan_batch.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/write_op.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/util/status.h"
 #include "kudu/util/test_macros.h"
-#include "kudu/util/test_util.h"
 
 using std::string;
 using std::vector;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/client-test-util.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/client-test-util.h b/src/kudu/client/client-test-util.h
index f3ff1f6..244235a 100644
--- a/src/kudu/client/client-test-util.h
+++ b/src/kudu/client/client-test-util.h
@@ -17,11 +17,14 @@
 
 #pragma once
 
+#include <cstddef>
+#include <cstdint>
 #include <string>
 #include <vector>
 
+#include "kudu/gutil/port.h"
 #include "kudu/client/client.h"
-#include "kudu/gutil/macros.h"
+#include "kudu/client/shared_ptr.h"
 #include "kudu/util/status.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/client-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/client-test.cc b/src/kudu/client/client-test.cc
index 337f78d..cb1ab12 100644
--- a/src/kudu/client/client-test.cc
+++ b/src/kudu/client/client-test.cc
@@ -17,16 +17,26 @@
 
 #include <algorithm>
 #include <atomic>
+#include <cstdint>
+#include <cstdlib>
 #include <functional>
+#include <iterator>
 #include <map>
 #include <memory>
+#include <mutex>
+#include <ostream>
 #include <set>
 #include <string>
 #include <thread>
 #include <utility>
 #include <vector>
 
+#include <boost/bind.hpp>
+#include <boost/function.hpp>
+#include <boost/optional/optional.hpp>
 #include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
 #include <glog/stl_logging.h>
 #include <gtest/gtest.h>
 
@@ -36,39 +46,67 @@
 #include "kudu/client/client.h"
 #include "kudu/client/error_collector.h"
 #include "kudu/client/meta_cache.h"
+#include "kudu/client/resource_metrics.h"
 #include "kudu/client/row_result.h"
+#include "kudu/client/scan_batch.h"
+#include "kudu/client/scan_configuration.h"
+#include "kudu/client/scan_predicate.h"
 #include "kudu/client/scanner-internal.h"
+#include "kudu/client/schema.h"
 #include "kudu/client/session-internal.h"
+#include "kudu/client/shared_ptr.h"
 #include "kudu/client/value.h"
 #include "kudu/client/write_op.h"
+#include "kudu/clock/clock.h"
 #include "kudu/clock/hybrid_clock.h"
 #include "kudu/common/partial_row.h"
-#include "kudu/common/wire_protocol.h"
+#include "kudu/common/row.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/common/wire_protocol.pb.h"
 #include "kudu/gutil/atomicops.h"
+#include "kudu/gutil/casts.h"
+#include "kudu/gutil/integral_types.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/mathlimits.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/stl_util.h"
+#include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/integration-tests/internal_mini_cluster.h"
 #include "kudu/master/catalog_manager.h"
-#include "kudu/master/master-test-util.h"
-#include "kudu/master/master.proxy.h"
+#include "kudu/master/master.h"
+#include "kudu/master/master.pb.h"
 #include "kudu/master/mini_master.h"
-#include "kudu/master/ts_descriptor.h"
 #include "kudu/rpc/messenger.h"
+#include "kudu/rpc/service_pool.h"
 #include "kudu/security/tls_context.h"
+#include "kudu/security/token.pb.h"
+#include "kudu/server/rpc_server.h"
+#include "kudu/tablet/tablet.h"
+#include "kudu/tablet/tablet_metadata.h"
 #include "kudu/tablet/tablet_replica.h"
-#include "kudu/tablet/transactions/write_transaction.h"
 #include "kudu/tserver/mini_tablet_server.h"
 #include "kudu/tserver/scanners.h"
 #include "kudu/tserver/tablet_server.h"
+#include "kudu/tserver/tablet_server_options.h"
 #include "kudu/tserver/ts_tablet_manager.h"
+#include "kudu/tserver/tserver.pb.h"
+#include "kudu/util/async_util.h"
+#include "kudu/util/countdown_latch.h"
+#include "kudu/util/locks.h"  // IWYU pragma: keep
 #include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/net/sockaddr.h"
-#include "kudu/util/scoped_cleanup.h"
+#include "kudu/util/semaphore.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 #include "kudu/util/stopwatch.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 #include "kudu/util/thread.h"
+#include "kudu/util/thread_restrictions.h"
 
 DECLARE_bool(allow_unsafe_replication_factor);
 DECLARE_bool(fail_dns_resolution);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/client-unittest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/client-unittest.cc b/src/kudu/client/client-unittest.cc
index ae2c623..92c3cae 100644
--- a/src/kudu/client/client-unittest.cc
+++ b/src/kudu/client/client-unittest.cc
@@ -17,16 +17,22 @@
 //
 // Tests for the client which are true unit tests and don't require a cluster, etc.
 
+#include <cstddef>
 #include <string>
 #include <vector>
 
 #include <boost/bind.hpp>
+#include <boost/function.hpp>
 #include <gtest/gtest.h>
 
 #include "kudu/client/client.h"
 #include "kudu/client/client-internal.h"
 #include "kudu/client/error_collector.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/value.h"
 #include "kudu/gutil/ref_counted.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
 #include "kudu/util/test_macros.h"
 
 using std::string;
@@ -217,4 +223,3 @@ TEST(ClientUnitTest, TestErrorCollector) {
 
 } // namespace client
 } // namespace kudu
-

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/client.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/client.cc b/src/kudu/client/client.cc
index 3006f2f..f44cbb4 100644
--- a/src/kudu/client/client.cc
+++ b/src/kudu/client/client.cc
@@ -20,18 +20,19 @@
 #include <algorithm>
 #include <cstdlib>
 #include <memory>
+#include <ostream>
 #include <set>
 #include <string>
-#include <unordered_map>
 #include <utility>
 #include <vector>
 
 #include <boost/bind.hpp>
-#include <boost/optional.hpp>
+#include <boost/optional/optional.hpp>
+#include <glog/logging.h>
 
-#include "kudu/client/batcher.h"
 #include "kudu/client/callbacks.h"
 #include "kudu/client/client-internal.h"
+#include "kudu/client/client.pb.h"
 #include "kudu/client/client_builder-internal.h"
 #include "kudu/client/error-internal.h"
 #include "kudu/client/error_collector.h"
@@ -39,22 +40,36 @@
 #include "kudu/client/partitioner-internal.h"
 #include "kudu/client/replica-internal.h"
 #include "kudu/client/row_result.h"
+#include "kudu/client/scan_batch.h"
+#include "kudu/client/scan_configuration.h"
 #include "kudu/client/scan_predicate-internal.h"
 #include "kudu/client/scan_token-internal.h"
 #include "kudu/client/scanner-internal.h"
-#include "kudu/client/schema-internal.h"
 #include "kudu/client/session-internal.h"
 #include "kudu/client/table-internal.h"
 #include "kudu/client/table_alterer-internal.h"
 #include "kudu/client/table_creator-internal.h"
 #include "kudu/client/tablet-internal.h"
 #include "kudu/client/tablet_server-internal.h"
+#include "kudu/client/value.h"
 #include "kudu/client/write_op.h"
 #include "kudu/common/common.pb.h"
+#include "kudu/common/partial_row.h"
 #include "kudu/common/partition.h"
+#include "kudu/common/partition_pruner.h"
 #include "kudu/common/row_operations.h"
+#include "kudu/common/scan_spec.h"
+#include "kudu/common/schema.h"
 #include "kudu/common/wire_protocol.h"
-#include "kudu/gutil/map-util.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/consensus/metadata.pb.h"
+#include "kudu/gutil/basictypes.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
+#include "kudu/gutil/casts.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/numbers.h"
 #include "kudu/gutil/strings/substitute.h"
@@ -62,13 +77,21 @@
 #include "kudu/master/master.proxy.h"
 #include "kudu/rpc/messenger.h"
 #include "kudu/rpc/request_tracker.h"
+#include "kudu/rpc/rpc_controller.h"
 #include "kudu/rpc/sasl_common.h"
 #include "kudu/security/cert.h"
 #include "kudu/security/openssl_util.h"
 #include "kudu/security/tls_context.h"
+#include "kudu/security/token.pb.h"
+#include "kudu/tserver/tserver.pb.h"
+#include "kudu/tserver/tserver_service.proxy.h"
+#include "kudu/util/debug-util.h"
 #include "kudu/util/init.h"
 #include "kudu/util/logging.h"
+#include "kudu/util/logging_callback.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/net/dns_resolver.h"
+#include "kudu/util/net/net_util.h"
 #include "kudu/util/oid_generator.h"
 #include "kudu/util/scoped_cleanup.h"
 #include "kudu/util/version_info.h"
@@ -119,11 +142,13 @@ MAKE_ENUM_LIMITS(kudu::client::KuduScanner::OrderMode,
                  kudu::client::KuduScanner::UNORDERED,
                  kudu::client::KuduScanner::ORDERED);
 
+struct tm;
+
 namespace kudu {
 namespace client {
 
-using internal::Batcher;
-using internal::ErrorCollector;
+class ResourceMetrics;
+
 using internal::MetaCache;
 using sp::shared_ptr;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/client.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/client.h b/src/kudu/client/client.h
index 130b97d..29456e0 100644
--- a/src/kudu/client/client.h
+++ b/src/kudu/client/client.h
@@ -26,15 +26,15 @@
 #define KUDU_CLIENT_CLIENT_H
 
 #include <stdint.h>
+
+#include <cstddef>
 #include <string>
 #include <vector>
 
-#include "kudu/client/resource_metrics.h"
 #include "kudu/client/row_result.h"
-#include "kudu/client/scan_batch.h"
 #include "kudu/client/scan_predicate.h"
 #include "kudu/client/schema.h"
-#include "kudu/client/shared_ptr.h"
+#include "kudu/client/shared_ptr.h" // IWYU pragma: keep
 #ifdef KUDU_HEADERS_NO_STUBS
 #include <gtest/gtest_prod.h>
 #include "kudu/gutil/macros.h"
@@ -42,15 +42,15 @@
 #else
 #include "kudu/client/stubs.h"
 #endif
-#include "kudu/client/write_op.h"
 #include "kudu/util/kudu_export.h"
-#include "kudu/util/monotime.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
 
 class ClientStressTest_TestUniqueClientIds_Test;
-class LinkedListTester;
+class KuduPartialRow;
+class MonoDelta;
 class PartitionSchema;
 class SecurityUnknownTskTest;
 
@@ -60,9 +60,12 @@ class LeaderMasterProxy;
 
 namespace client {
 
+class KuduClient;
+class KuduDelete;
+class KuduInsert;
 class KuduLoggingCallback;
 class KuduPartitioner;
-class KuduScanToken;
+class KuduScanBatch;
 class KuduSession;
 class KuduStatusCallback;
 class KuduTable;
@@ -70,8 +73,11 @@ class KuduTableAlterer;
 class KuduTableCreator;
 class KuduTablet;
 class KuduTabletServer;
+class KuduUpdate;
+class KuduUpsert;
 class KuduValue;
 class KuduWriteOperation;
+class ResourceMetrics;
 
 namespace internal {
 class Batcher;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/client_builder-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/client_builder-internal.h b/src/kudu/client/client_builder-internal.h
index 070c244..9b9c02b 100644
--- a/src/kudu/client/client_builder-internal.h
+++ b/src/kudu/client/client_builder-internal.h
@@ -21,6 +21,8 @@
 #include <vector>
 
 #include "kudu/client/client.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/util/monotime.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/error-internal.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/error-internal.cc b/src/kudu/client/error-internal.cc
index 75f30dd..74abc6b 100644
--- a/src/kudu/client/error-internal.cc
+++ b/src/kudu/client/error-internal.cc
@@ -17,10 +17,15 @@
 
 #include "kudu/client/error-internal.h"
 
+#include <type_traits>
 #include <utility>
 
-namespace kudu {
+#include "kudu/client/write_op.h"   // IWYU pragma: keep
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/move.h"
+#include "kudu/util/status.h"
 
+namespace kudu {
 namespace client {
 
 KuduError::Data::Data(gscoped_ptr<KuduWriteOperation> failed_op,

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/error-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/error-internal.h b/src/kudu/client/error-internal.h
index 71715f6..11f3720 100644
--- a/src/kudu/client/error-internal.h
+++ b/src/kudu/client/error-internal.h
@@ -19,11 +19,15 @@
 
 #include "kudu/client/client.h"
 #include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 
 namespace client {
 
+class KuduWriteOperation;
+
 class KuduError::Data {
  public:
   Data(gscoped_ptr<KuduWriteOperation> failed_op, Status error);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/error_collector.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/error_collector.cc b/src/kudu/client/error_collector.cc
index 932a0d4..3455cbb 100644
--- a/src/kudu/client/error_collector.cc
+++ b/src/kudu/client/error_collector.cc
@@ -23,6 +23,8 @@
 
 #include "kudu/client/client.h"
 #include "kudu/client/error-internal.h"
+#include "kudu/client/write_op.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/status.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/error_collector.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/error_collector.h b/src/kudu/client/error_collector.h
index f6f474f..bb3bf27 100644
--- a/src/kudu/client/error_collector.h
+++ b/src/kudu/client/error_collector.h
@@ -16,20 +16,22 @@
 // under the License.
 #pragma once
 
+#include <cstddef>
 #include <memory>
 #include <vector>
 
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/util/locks.h"
-#include "kudu/util/status.h"
 
 namespace kudu {
+
+class Status;
+
 namespace client {
 
 class ClientUnitTest_TestErrorCollector_Test;
 class KuduError;
-class KuduInsert;
 
 namespace internal {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/master_rpc.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/master_rpc.cc b/src/kudu/client/master_rpc.cc
index 93fde48..be597ae 100644
--- a/src/kudu/client/master_rpc.cc
+++ b/src/kudu/client/master_rpc.cc
@@ -21,19 +21,24 @@
 
 #include <algorithm>
 #include <mutex>
+#include <ostream>
 
 #include <boost/bind.hpp>
+#include <glog/logging.h>
 
 #include "kudu/common/wire_protocol.h"
-#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/consensus/metadata.pb.h"
+#include "kudu/gutil/basictypes.h"
 #include "kudu/gutil/bind.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/master/master.proxy.h"
 #include "kudu/rpc/rpc_controller.h"
-#include "kudu/util/net/net_util.h"
+#include "kudu/rpc/rpc_header.pb.h"
 #include "kudu/util/scoped_cleanup.h"
-
+#include "kudu/util/status.h"
+#include "kudu/util/status_callback.h"
 
 using std::shared_ptr;
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/master_rpc.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/master_rpc.h b/src/kudu/client/master_rpc.h
index b57d137..39cec99 100644
--- a/src/kudu/client/master_rpc.h
+++ b/src/kudu/client/master_rpc.h
@@ -19,23 +19,26 @@
 #pragma once
 
 #include <functional>
+#include <memory>
 #include <vector>
 #include <string>
 
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/master/master.pb.h"
 #include "kudu/rpc/rpc.h"
 #include "kudu/rpc/rpc_controller.h"
 #include "kudu/util/locks.h"
-#include "kudu/util/net/net_util.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/net/sockaddr.h"
 
 namespace kudu {
 
-namespace master {
-class ConnectToMasterResponsePB;
-} // namespace master
-class HostPort;
+class Status;
+
+namespace rpc {
+class Messenger;
+}
 
 namespace client {
 namespace internal {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/meta_cache.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/meta_cache.cc b/src/kudu/client/meta_cache.cc
index f54e2c1..c77b335 100644
--- a/src/kudu/client/meta_cache.cc
+++ b/src/kudu/client/meta_cache.cc
@@ -18,25 +18,34 @@
 #include "kudu/client/meta_cache.h"
 
 #include <algorithm>
-#include <map>
+#include <cstddef>
 #include <mutex>
+#include <ostream>
 #include <set>
 #include <string>
 #include <vector>
+#include <utility>
 
-#include <boost/bind.hpp>
+#include <boost/bind.hpp> // IWYU pragma: keep
 #include <glog/logging.h>
+#include <google/protobuf/repeated_field.h> // IWYU pragma: keep
 
-#include "kudu/client/client.h"
 #include "kudu/client/client-internal.h"
-#include "kudu/common/schema.h"
+#include "kudu/client/client.h"
+#include "kudu/client/schema.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/wire_protocol.h"
+#include "kudu/gutil/basictypes.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
+#include "kudu/gutil/callback.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/master/master.pb.h"
 #include "kudu/master/master.proxy.h"
-#include "kudu/rpc/messenger.h"
 #include "kudu/rpc/rpc.h"
 #include "kudu/rpc/rpc_controller.h"
 #include "kudu/rpc/rpc_header.pb.h"
@@ -44,6 +53,7 @@
 #include "kudu/util/logging.h"
 #include "kudu/util/net/dns_resolver.h"
 #include "kudu/util/net/net_util.h"
+#include "kudu/util/net/sockaddr.h"
 #include "kudu/util/pb_util.h"
 
 using std::map;
@@ -55,6 +65,10 @@ using strings::Substitute;
 
 namespace kudu {
 
+namespace rpc {
+class Messenger;
+}
+
 using consensus::RaftPeerPB;
 using master::GetTableLocationsRequestPB;
 using master::GetTableLocationsResponsePB;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/meta_cache.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/meta_cache.h b/src/kudu/client/meta_cache.h
index 2e68f6c..ddb956e 100644
--- a/src/kudu/client/meta_cache.h
+++ b/src/kudu/client/meta_cache.h
@@ -19,37 +19,38 @@
 #ifndef KUDU_CLIENT_META_CACHE_H
 #define KUDU_CLIENT_META_CACHE_H
 
-#include <boost/function.hpp>
+#include <algorithm>
 #include <map>
+#include <memory>
 #include <set>
 #include <string>
-#include <memory>
 #include <unordered_map>
 #include <vector>
 
+#include <glog/logging.h>
+#include <gtest/gtest_prod.h>
+
 #include "kudu/common/partition.h"
 #include "kudu/consensus/metadata.pb.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/rpc/rpc.h"
-#include "kudu/util/async_util.h"
 #include "kudu/util/locks.h"
-#include "kudu/util/memory/arena.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/net/net_util.h"
 #include "kudu/util/semaphore.h"
 #include "kudu/util/status.h"
+#include "kudu/util/status_callback.h"
 
 namespace kudu {
 
-class KuduPartialRow;
+class Sockaddr;
 
 namespace tserver {
 class TabletServerServiceProxy;
 } // namespace tserver
 
 namespace master {
-class MasterServiceProxy;
 class TabletLocationsPB_ReplicaPB;
 class TSInfoPB;
 } // namespace master

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/partitioner-internal.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/partitioner-internal.cc b/src/kudu/client/partitioner-internal.cc
index c3b80c8..0f4458f 100644
--- a/src/kudu/client/partitioner-internal.cc
+++ b/src/kudu/client/partitioner-internal.cc
@@ -17,7 +17,6 @@
 
 #include "kudu/client/partitioner-internal.h"
 
-#include <glog/logging.h>
 #include <map>
 #include <memory>
 #include <string>
@@ -26,8 +25,10 @@
 #include "kudu/client/client.h"
 #include "kudu/client/meta_cache.h"
 #include "kudu/client/table-internal.h"
+#include "kudu/common/partition.h"
 #include "kudu/gutil/map-util.h"
-#include "kudu/gutil/strings/util.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/util/async_util.h"
 #include "kudu/util/status.h"
 
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/partitioner-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/partitioner-internal.h b/src/kudu/client/partitioner-internal.h
index 13f7291..861a7b9 100644
--- a/src/kudu/client/partitioner-internal.h
+++ b/src/kudu/client/partitioner-internal.h
@@ -16,14 +16,19 @@
 // under the License.
 #pragma once
 
-#include "kudu/client/client.h"
-#include "kudu/common/partition.h"
-#include "kudu/util/status.h"
-
+#include <algorithm>
 #include <map>
 #include <string>
 
+#include "kudu/client/client.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
+
 namespace kudu {
+
+class KuduPartialRow;
+
 namespace client {
 
 class KuduPartitionerBuilder::Data {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/predicate-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/predicate-test.cc b/src/kudu/client/predicate-test.cc
index da99faa..29e717c 100644
--- a/src/kudu/client/predicate-test.cc
+++ b/src/kudu/client/predicate-test.cc
@@ -16,20 +16,29 @@
 // under the License.
 
 #include <algorithm>
-#include <cmath>
+#include <cstdint>
 #include <limits>
 #include <memory>
 #include <string>
 #include <vector>
 
+#include <glog/logging.h>
 #include <gtest/gtest.h>
 
 #include "kudu/client/client.h"
-#include "kudu/gutil/stringprintf.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/client/scan_batch.h"
+#include "kudu/client/scan_predicate.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/value.h"
+#include "kudu/client/write_op.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/strings/escaping.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/integration-tests/cluster_verifier.h"
 #include "kudu/integration-tests/internal_mini_cluster.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 using std::count_if;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/replica-internal.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/replica-internal.cc b/src/kudu/client/replica-internal.cc
index 0fac695..23079fd 100644
--- a/src/kudu/client/replica-internal.cc
+++ b/src/kudu/client/replica-internal.cc
@@ -17,6 +17,7 @@
 
 #include "kudu/client/replica-internal.h"
 
+#include <algorithm>
 #include <memory>
 
 #include "kudu/client/client.h"
@@ -31,8 +32,5 @@ KuduReplica::Data::Data(bool is_leader, unique_ptr<KuduTabletServer> ts)
       ts_(std::move(ts)) {
 }
 
-KuduReplica::Data::~Data() {
-}
-
 } // namespace client
 } // namespace kudu

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/replica-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/replica-internal.h b/src/kudu/client/replica-internal.h
index 9f0674d..5603dea 100644
--- a/src/kudu/client/replica-internal.h
+++ b/src/kudu/client/replica-internal.h
@@ -21,20 +21,18 @@
 #include "kudu/client/client.h"
 #include "kudu/gutil/macros.h"
 
-
 namespace kudu {
 namespace client {
 
-class KuduTabletServer;
-
 class KuduReplica::Data {
  public:
   Data(bool is_leader, std::unique_ptr<KuduTabletServer> ts);
-  ~Data();
+  ~Data() = default;
 
   const bool is_leader_;
   const std::unique_ptr<KuduTabletServer> ts_;
 
+ private:
   DISALLOW_COPY_AND_ASSIGN(Data);
 };
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/resource_metrics.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/resource_metrics.cc b/src/kudu/client/resource_metrics.cc
index f8ccc2a..c340fe6 100644
--- a/src/kudu/client/resource_metrics.cc
+++ b/src/kudu/client/resource_metrics.cc
@@ -20,13 +20,14 @@
 
 #include <map>
 #include <mutex>
-#include <stdint.h>
 #include <string>
 
 #include "kudu/gutil/map-util.h"
 
 namespace kudu {
 
+class simple_spinlock;
+
 namespace client {
 
 ResourceMetrics::ResourceMetrics() :

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/resource_metrics.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/resource_metrics.h b/src/kudu/client/resource_metrics.h
index feab053..4f31ac4 100644
--- a/src/kudu/client/resource_metrics.h
+++ b/src/kudu/client/resource_metrics.h
@@ -17,8 +17,11 @@
 #ifndef KUDU_CLIENT_RESOURCE_METRICS_H
 #define KUDU_CLIENT_RESOURCE_METRICS_H
 
-#include <map>
+// NOTE: using stdint.h instead of cstdint because this file is supposed
+//       to be processed by a compiler lacking C++11 support.
 #include <stdint.h>
+
+#include <map>
 #include <string>
 
 #include "kudu/util/kudu_export.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/samples/sample.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/samples/sample.cc b/src/kudu/client/samples/sample.cc
index b021fce..9b5d65e 100644
--- a/src/kudu/client/samples/sample.cc
+++ b/src/kudu/client/samples/sample.cc
@@ -24,7 +24,9 @@
 #include "kudu/client/row_result.h"
 #include "kudu/client/stubs.h"
 #include "kudu/client/value.h"
+#include "kudu/client/write_op.h"
 #include "kudu/common/partial_row.h"
+#include "kudu/util/monotime.h"
 
 using kudu::client::KuduClient;
 using kudu::client::KuduClientBuilder;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/scan_batch.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/scan_batch.cc b/src/kudu/client/scan_batch.cc
index 4f048b3..cacf76b 100644
--- a/src/kudu/client/scan_batch.cc
+++ b/src/kudu/client/scan_batch.cc
@@ -15,16 +15,22 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "kudu/client/row_result.h"
 #include "kudu/client/scan_batch.h"
-#include "kudu/client/scanner-internal.h"
-#include "kudu/client/schema.h"
 
+#include <cstring>
 #include <string>
 
+#include <glog/logging.h>
+
+#include "kudu/client/row_result.h"
+#include "kudu/client/scanner-internal.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/schema.h"
+#include "kudu/common/types.h"
+#include "kudu/gutil/strings/stringpiece.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/bitmap.h"
+#include "kudu/util/logging.h"
 
 using std::string;
 using strings::Substitute;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/scan_batch.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/scan_batch.h b/src/kudu/client/scan_batch.h
index 987bbf2..15b458e 100644
--- a/src/kudu/client/scan_batch.h
+++ b/src/kudu/client/scan_batch.h
@@ -17,6 +17,12 @@
 #ifndef KUDU_CLIENT_SCAN_BATCH_H
 #define KUDU_CLIENT_SCAN_BATCH_H
 
+// NOTE: using stdint.h instead of cstdint because this file is supposed
+//       to be processed by a compiler lacking C++11 support.
+#include <stdint.h>
+
+#include <cstddef>
+#include <iterator>
 #include <string>
 
 #ifdef KUDU_HEADERS_NO_STUBS
@@ -28,6 +34,7 @@
 
 #include "kudu/util/kudu_export.h"
 #include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 class Schema;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/scan_configuration.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/scan_configuration.cc b/src/kudu/client/scan_configuration.cc
index 26fb605..f320ab2 100644
--- a/src/kudu/client/scan_configuration.cc
+++ b/src/kudu/client/scan_configuration.cc
@@ -17,13 +17,20 @@
 
 #include "kudu/client/scan_configuration.h"
 
+#include <algorithm>
 #include <memory>
 #include <string>
 #include <vector>
 
 #include "kudu/client/client.h"
-#include "kudu/client/scan_predicate.h"
 #include "kudu/client/scan_predicate-internal.h"
+#include "kudu/client/scan_predicate.h"
+#include "kudu/common/column_predicate.h"
+#include "kudu/common/encoded_key.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/common/schema.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/strings/substitute.h"
 
 using std::unique_ptr;
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/scan_configuration.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/scan_configuration.h b/src/kudu/client/scan_configuration.h
index cae083f..168c87f 100644
--- a/src/kudu/client/scan_configuration.h
+++ b/src/kudu/client/scan_configuration.h
@@ -17,19 +17,33 @@
 
 #pragma once
 
-#include <memory>
+#include <cstdint>
 #include <string>
 #include <vector>
 
+#include <glog/logging.h>
+
 #include "kudu/client/client.h"
-#include "kudu/common/column_predicate.h"
+#include "kudu/client/schema.h"
 #include "kudu/common/scan_spec.h"
+#include "kudu/gutil/integral_types.h"
+#include "kudu/gutil/port.h"
 #include "kudu/util/auto_release_pool.h"
 #include "kudu/util/memory/arena.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
+
+class ColumnPredicate;
+class KuduPartialRow;
+class Schema;
+
 namespace client {
 
+class KuduPredicate;
+
 // A configuration object which holds Kudu scan options.
 //
 // Unless otherwise specified, the method documentation matches the

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/scan_predicate.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/scan_predicate.cc b/src/kudu/client/scan_predicate.cc
index 06ba70b..c58490c 100644
--- a/src/kudu/client/scan_predicate.cc
+++ b/src/kudu/client/scan_predicate.cc
@@ -17,24 +17,31 @@
 
 #include "kudu/client/scan_predicate.h"
 
-#include <boost/optional.hpp>
 #include <utility>
 #include <vector>
 
+#include <boost/optional/optional.hpp>
+
 #include "kudu/client/scan_predicate-internal.h"
 #include "kudu/client/value-internal.h"
 #include "kudu/client/value.h"
+#include "kudu/common/column_predicate.h"
 #include "kudu/common/scan_spec.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/types.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/status.h"
 
+using boost::optional;
 using std::move;
 using std::vector;
-using boost::optional;
+using strings::Substitute;
 
 namespace kudu {
 
-using strings::Substitute;
+class Arena;
 
 namespace client {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/scan_predicate.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/scan_predicate.h b/src/kudu/client/scan_predicate.h
index 16fd118..70be74c 100644
--- a/src/kudu/client/scan_predicate.h
+++ b/src/kudu/client/scan_predicate.h
@@ -19,12 +19,10 @@
 
 #ifdef KUDU_HEADERS_NO_STUBS
 #include "kudu/gutil/macros.h"
-#include "kudu/gutil/port.h"
 #else
 #include "kudu/client/stubs.h"
 #endif
 
-#include "kudu/client/schema.h"
 #include "kudu/util/kudu_export.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/scan_token-internal.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/scan_token-internal.cc b/src/kudu/client/scan_token-internal.cc
index 8a157b0..7990e37 100644
--- a/src/kudu/client/scan_token-internal.cc
+++ b/src/kudu/client/scan_token-internal.cc
@@ -17,22 +17,42 @@
 
 #include "kudu/client/scan_token-internal.h"
 
-#include <boost/optional.hpp>
-#include <vector>
-#include <string>
+#include <cstdint>
 #include <memory>
+#include <ostream>
+#include <string>
+#include <utility>
+#include <vector>
+
+#include <boost/optional/optional.hpp>
+#include <glog/logging.h>
 
 #include "kudu/client/client-internal.h"
 #include "kudu/client/client.h"
 #include "kudu/client/meta_cache.h"
 #include "kudu/client/replica-internal.h"
 #include "kudu/client/scanner-internal.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
 #include "kudu/client/tablet-internal.h"
 #include "kudu/client/tablet_server-internal.h"
+#include "kudu/common/column_predicate.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/encoded_key.h"
+#include "kudu/common/partition.h"
+#include "kudu/common/partition_pruner.h"
+#include "kudu/common/scan_spec.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/types.h"
 #include "kudu/common/wire_protocol.h"
+#include "kudu/consensus/metadata.pb.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/util/pb_util.h"
+#include "kudu/util/async_util.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/net/net_util.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/scan_token-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/scan_token-internal.h b/src/kudu/client/scan_token-internal.h
index dd26517..84b7778 100644
--- a/src/kudu/client/scan_token-internal.h
+++ b/src/kudu/client/scan_token-internal.h
@@ -24,6 +24,7 @@
 #include "kudu/client/client.h"
 #include "kudu/client/client.pb.h"
 #include "kudu/client/scan_configuration.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 namespace client {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/scan_token-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/scan_token-test.cc b/src/kudu/client/scan_token-test.cc
index 6599daf..9c879e2 100644
--- a/src/kudu/client/scan_token-test.cc
+++ b/src/kudu/client/scan_token-test.cc
@@ -15,19 +15,37 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <algorithm>
 #include <atomic>
+#include <cstdint>
 #include <memory>
 #include <string>
 #include <thread>
 #include <unordered_set>
 #include <vector>
 
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
 #include "kudu/client/client.h"
 #include "kudu/client/client.pb.h"
+#include "kudu/client/scan_batch.h"
+#include "kudu/client/scan_predicate.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/client/value.h"
+#include "kudu/client/write_op.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/integration-tests/internal_mini_cluster.h"
 #include "kudu/tserver/mini_tablet_server.h"
 #include "kudu/tserver/tablet_server.h"
+#include "kudu/util/net/sockaddr.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/scanner-internal.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/scanner-internal.cc b/src/kudu/client/scanner-internal.cc
index 8dfb9f0..aec1cfc 100644
--- a/src/kudu/client/scanner-internal.cc
+++ b/src/kudu/client/scanner-internal.cc
@@ -18,20 +18,35 @@
 #include "kudu/client/scanner-internal.h"
 
 #include <algorithm>
-#include <cmath>
+#include <cstdint>
+#include <ostream>
 #include <string>
+#include <unordered_map>
+#include <utility>
 #include <vector>
 
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/message.h>
+
 #include "kudu/client/client-internal.h"
 #include "kudu/client/meta_cache.h"
-#include "kudu/client/row_result.h"
-#include "kudu/client/table-internal.h"
 #include "kudu/common/common.pb.h"
+#include "kudu/common/encoded_key.h"
+#include "kudu/common/partition.h"
+#include "kudu/common/scan_spec.h"
+#include "kudu/common/schema.h"
 #include "kudu/common/wire_protocol.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/rpc/messenger.h"
+#include "kudu/rpc/connection.h"
 #include "kudu/rpc/rpc_controller.h"
+#include "kudu/rpc/rpc_header.pb.h"
+#include "kudu/tserver/tserver_service.proxy.h"
+#include "kudu/util/async_util.h"
+#include "kudu/util/bitmap.h"
 #include "kudu/util/hexdump.h"
+#include "kudu/util/logging.h"
+#include "kudu/util/monotime.h"
 
 using google::protobuf::FieldDescriptor;
 using google::protobuf::Reflection;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/scanner-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/scanner-internal.h b/src/kudu/client/scanner-internal.h
index 1100408..9117fc0 100644
--- a/src/kudu/client/scanner-internal.h
+++ b/src/kudu/client/scanner-internal.h
@@ -17,24 +17,51 @@
 #ifndef KUDU_CLIENT_SCANNER_INTERNAL_H
 #define KUDU_CLIENT_SCANNER_INTERNAL_H
 
+#include <cstddef>
+#include <cstdint>
+#include <memory>
+#include <ostream>
 #include <set>
 #include <string>
 #include <vector>
 
+#include <glog/logging.h>
+
 #include "kudu/client/client.h"
 #include "kudu/client/resource_metrics.h"
 #include "kudu/client/row_result.h"
+#include "kudu/client/scan_batch.h"
 #include "kudu/client/scan_configuration.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/client/schema.h"
 #include "kudu/common/partition_pruner.h"
 #include "kudu/common/scan_spec.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
-#include "kudu/tserver/tserver_service.proxy.h"
-#include "kudu/util/auto_release_pool.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/gutil/strings/substitute.h"
+#include "kudu/rpc/rpc_controller.h"
+#include "kudu/tserver/tserver.pb.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 
+class MonoTime;
+
+namespace tserver {
+class TabletServerServiceProxy;
+}
+
 namespace client {
 
+namespace internal {
+class RemoteTablet;
+class RemoteTabletServer;
+} // namespace internal
+
 // The result of KuduScanner::Data::AnalyzeResponse.
 //
 // This provides a more specific enum for handling the possible error conditions in a Scan

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/schema-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/schema-internal.h b/src/kudu/client/schema-internal.h
index 873519c..c5a9e44 100644
--- a/src/kudu/client/schema-internal.h
+++ b/src/kudu/client/schema-internal.h
@@ -20,6 +20,7 @@
 #include <string>
 
 #include "kudu/client/schema.h"
+#include "kudu/client/value.h"
 #include "kudu/common/common.pb.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/schema.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/schema.cc b/src/kudu/client/schema.cc
index 9ffb1a4..a694c72 100644
--- a/src/kudu/client/schema.cc
+++ b/src/kudu/client/schema.cc
@@ -17,16 +17,29 @@
 
 #include "kudu/client/schema.h"
 
-#include <boost/optional.hpp>
-#include <glog/logging.h>
+#include <algorithm>
+#include <cstdint>
+#include <memory>
+#include <ostream>
 #include <unordered_map>
 
+#include <boost/optional/optional.hpp>
+#include <glog/logging.h>
+
 #include "kudu/client/schema-internal.h"
 #include "kudu/client/value-internal.h"
+#include "kudu/client/value.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/partial_row.h"
 #include "kudu/common/schema.h"
+#include "kudu/common/types.h"
+#include "kudu/gutil/casts.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/compression/compression.pb.h"
+#include "kudu/util/slice.h"
 
 MAKE_ENUM_LIMITS(kudu::client::KuduColumnStorageAttributes::EncodingType,
                  kudu::client::KuduColumnStorageAttributes::AUTO_ENCODING,

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/schema.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/schema.h b/src/kudu/client/schema.h
index d9c1ee3..5358e15 100644
--- a/src/kudu/client/schema.h
+++ b/src/kudu/client/schema.h
@@ -18,11 +18,22 @@
 #ifndef KUDU_CLIENT_SCHEMA_H
 #define KUDU_CLIENT_SCHEMA_H
 
+// NOTE: using stdint.h instead of cstdint because this file is supposed
+//       to be processed by a compiler lacking C++11 support.
+#include <stdint.h>
+
+#include <cstddef>
 #include <string>
 #include <vector>
 
-#include "kudu/client/value.h"
+#ifdef KUDU_HEADERS_NO_STUBS
+#include "kudu/gutil/port.h"
+#else
+#include "kudu/client/stubs.h"
+#endif
+
 #include "kudu/util/kudu_export.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 
@@ -30,7 +41,7 @@ class ColumnSchema;
 struct ColumnSchemaDelta;
 class KuduPartialRow;
 class Schema;
-class TestWorkload;
+class Slice;
 
 namespace tools {
 class RemoteKsckMaster;
@@ -38,7 +49,6 @@ class ReplicaDumper;
 }
 
 namespace client {
-class ClientTest;
 
 namespace internal {
 class GetTableSchemaRpc;
@@ -47,10 +57,8 @@ class MetaCacheEntry;
 class WriteRpc;
 } // namespace internal
 
-class KuduClient;
 class KuduSchema;
-class KuduSchemaBuilder;
-class KuduWriteOperation;
+class KuduValue;
 
 /// @brief Representation of column storage attributes.
 class KUDU_EXPORT KuduColumnStorageAttributes {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/session-internal.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/session-internal.cc b/src/kudu/client/session-internal.cc
index 6ba6640..fe22655 100644
--- a/src/kudu/client/session-internal.cc
+++ b/src/kudu/client/session-internal.cc
@@ -17,13 +17,21 @@
 
 #include "kudu/client/session-internal.h"
 
+#include <algorithm>
 #include <memory>
 #include <mutex>
 
+#include <boost/bind.hpp> // IWYU pragma: keep
+#include <boost/function.hpp>
+#include <glog/logging.h>
+
 #include "kudu/client/batcher.h"
 #include "kudu/client/callbacks.h"
 #include "kudu/client/error_collector.h"
-#include "kudu/client/shared_ptr.h"
+#include "kudu/client/shared_ptr.h" // IWYU pragma: keep
+#include "kudu/client/write_op.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/rpc/messenger.h"
 #include "kudu/util/logging.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/session-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/session-internal.h b/src/kudu/client/session-internal.h
index 787eb95..c5a4669 100644
--- a/src/kudu/client/session-internal.h
+++ b/src/kudu/client/session-internal.h
@@ -17,12 +17,22 @@
 #ifndef KUDU_CLIENT_SESSION_INTERNAL_H
 #define KUDU_CLIENT_SESSION_INTERNAL_H
 
+#include <cstddef>
+#include <cstdint>
 #include <memory>
 
+#include <gtest/gtest_prod.h>
+
+#include "kudu/client/batcher.h"
 #include "kudu/client/client.h"
+#include "kudu/client/error_collector.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/util/condition_variable.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/mutex.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 
@@ -32,10 +42,8 @@ class Messenger;
 
 namespace client {
 
-namespace internal {
-class Batcher;
-class ErrorCollector;
-} // internal
+class KuduStatusCallback;
+class KuduWriteOperation;
 
 // This class contains the code to do the heavy-lifting for the
 // kudu::KuduSession-related operations. Its interface does not assume

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/shared_ptr.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/shared_ptr.h b/src/kudu/client/shared_ptr.h
index ea01131..fa759f9 100644
--- a/src/kudu/client/shared_ptr.h
+++ b/src/kudu/client/shared_ptr.h
@@ -39,7 +39,7 @@
 
 #if defined(_LIBCPP_VERSION)
 
-#include <memory>
+#include <memory> // IWYU pragma: export
 
 namespace kudu {
 namespace client {
@@ -52,7 +52,7 @@ namespace sp {
 }
 
 #else
-#include <tr1/memory>
+#include <tr1/memory> // IWYU pragma: export
 
 namespace kudu {
 namespace client {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/table-internal.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/table-internal.cc b/src/kudu/client/table-internal.cc
index ebed838..a4640bd 100644
--- a/src/kudu/client/table-internal.cc
+++ b/src/kudu/client/table-internal.cc
@@ -17,6 +17,7 @@
 
 #include "kudu/client/table-internal.h"
 
+#include <algorithm>
 #include <string>
 
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/table-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/table-internal.h b/src/kudu/client/table-internal.h
index b9d78df..f1d9cfd 100644
--- a/src/kudu/client/table-internal.h
+++ b/src/kudu/client/table-internal.h
@@ -19,9 +19,17 @@
 
 #include <string>
 
-#include "kudu/common/partition.h"
 #include "kudu/client/client.h"
+#include "kudu/client/scan_predicate.h"
 #include "kudu/client/scan_predicate-internal.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/common/partition.h"
+#include "kudu/common/schema.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/strings/stringpiece.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 
@@ -65,6 +73,7 @@ class KuduTable::Data {
   const KuduSchema schema_;
   const PartitionSchema partition_schema_;
 
+ private:
   DISALLOW_COPY_AND_ASSIGN(Data);
 };
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/table_alterer-internal.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/table_alterer-internal.cc b/src/kudu/client/table_alterer-internal.cc
index d5dfdcf..244c3b4 100644
--- a/src/kudu/client/table_alterer-internal.cc
+++ b/src/kudu/client/table_alterer-internal.cc
@@ -17,12 +17,18 @@
 
 #include "kudu/client/table_alterer-internal.h"
 
+#include <algorithm>
+#include <ostream>
 #include <string>
 
-#include "kudu/client/schema.h"
+#include <glog/logging.h>
+
 #include "kudu/client/schema-internal.h"
+#include "kudu/client/schema.h"
 #include "kudu/common/row_operations.h"
+#include "kudu/common/schema.h"
 #include "kudu/common/wire_protocol.h"
+#include "kudu/common/wire_protocol.pb.h"
 #include "kudu/master/master.pb.h"
 
 using std::string;
@@ -31,7 +37,6 @@ namespace kudu {
 namespace client {
 
 using master::AlterTableRequestPB;
-using master::AlterTableRequestPB_AlterColumn;
 
 KuduTableAlterer::Data::Data(KuduClient* client, string name)
     : client_(client),

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/table_alterer-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/table_alterer-internal.h b/src/kudu/client/table_alterer-internal.h
index bf7cdc6..f847ace 100644
--- a/src/kudu/client/table_alterer-internal.h
+++ b/src/kudu/client/table_alterer-internal.h
@@ -17,20 +17,23 @@
 #ifndef KUDU_CLIENT_TABLE_ALTERER_INTERNAL_H
 #define KUDU_CLIENT_TABLE_ALTERER_INTERNAL_H
 
-#include <boost/optional.hpp>
 #include <memory>
 #include <string>
 #include <vector>
 
+#include <boost/optional/optional.hpp>
+
 #include "kudu/client/client.h"
-#include "kudu/common/schema.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/master/master.pb.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
-namespace master {
-class AlterTableRequestPB_AlterColumn;
-} // namespace master
+
+class Schema;
+
 namespace client {
 
 class KuduColumnSpec;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/table_creator-internal.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/table_creator-internal.cc b/src/kudu/client/table_creator-internal.cc
index 118919c..995fb34 100644
--- a/src/kudu/client/table_creator-internal.cc
+++ b/src/kudu/client/table_creator-internal.cc
@@ -17,9 +17,6 @@
 
 #include "kudu/client/table_creator-internal.h"
 
-
-#include "kudu/gutil/stl_util.h"
-
 namespace kudu {
 
 namespace client {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/table_creator-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/table_creator-internal.h b/src/kudu/client/table_creator-internal.h
index 57f46dc..4923051 100644
--- a/src/kudu/client/table_creator-internal.h
+++ b/src/kudu/client/table_creator-internal.h
@@ -17,19 +17,24 @@
 #ifndef KUDU_CLIENT_TABLE_CREATOR_INTERNAL_H
 #define KUDU_CLIENT_TABLE_CREATOR_INTERNAL_H
 
-#include <boost/optional.hpp>
 #include <memory>
 #include <string>
-#include <utility>
 #include <vector>
 
+#include <boost/optional/optional.hpp>
+
 #include "kudu/client/client.h"
 #include "kudu/common/common.pb.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/util/monotime.h"
 
 namespace kudu {
 
 namespace client {
 
+class KuduSchema;
+
 class KuduTableCreator::Data {
  public:
   explicit Data(KuduClient* client);
@@ -60,6 +65,7 @@ class KuduTableCreator::Data {
 
   bool wait_;
 
+ private:
   DISALLOW_COPY_AND_ASSIGN(Data);
 };
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/tablet-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/tablet-internal.h b/src/kudu/client/tablet-internal.h
index 401c725..08a3e77 100644
--- a/src/kudu/client/tablet-internal.h
+++ b/src/kudu/client/tablet-internal.h
@@ -25,8 +25,6 @@
 namespace kudu {
 namespace client {
 
-class KuduReplica;
-
 class KuduTablet::Data {
  public:
   Data(std::string id, std::vector<const KuduReplica*> replicas);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/tablet_server-internal.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/tablet_server-internal.cc b/src/kudu/client/tablet_server-internal.cc
index 057fd2d..c46392b 100644
--- a/src/kudu/client/tablet_server-internal.cc
+++ b/src/kudu/client/tablet_server-internal.cc
@@ -17,6 +17,7 @@
 
 #include "kudu/client/tablet_server-internal.h"
 
+#include <algorithm>
 #include <string>
 
 #include "kudu/util/net/net_util.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/tablet_server-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/tablet_server-internal.h b/src/kudu/client/tablet_server-internal.h
index 0e57ac4..d0ad3ba 100644
--- a/src/kudu/client/tablet_server-internal.h
+++ b/src/kudu/client/tablet_server-internal.h
@@ -34,6 +34,7 @@ class KuduTabletServer::Data {
   const std::string uuid_;
   const HostPort hp_;
 
+ private:
   DISALLOW_COPY_AND_ASSIGN(Data);
 };
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/value-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/value-internal.h b/src/kudu/client/value-internal.h
index 590a75c..33aeeb8 100644
--- a/src/kudu/client/value-internal.h
+++ b/src/kudu/client/value-internal.h
@@ -19,6 +19,7 @@
 
 #include <string>
 
+#include "kudu/client/value.h"
 #include "kudu/common/types.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/util/slice.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/value.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/value.cc b/src/kudu/client/value.cc
index 3eb2993..ea5bd6f 100644
--- a/src/kudu/client/value.cc
+++ b/src/kudu/client/value.cc
@@ -15,10 +15,19 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "kudu/client/value.h"
+#include <cstring>
+#include <ostream>
+#include <string>
+
+#include <glog/logging.h>
+
 #include "kudu/client/value-internal.h"
+#include "kudu/client/value.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/types.h"
+#include "kudu/gutil/mathlimits.h"
 #include "kudu/gutil/strings/substitute.h"
-#include <string>
+#include "kudu/util/status.h"
 
 using std::string;
 using strings::Substitute;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/value.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/value.h b/src/kudu/client/value.h
index 2e3fb73..e7c9ebd 100644
--- a/src/kudu/client/value.h
+++ b/src/kudu/client/value.h
@@ -17,9 +17,10 @@
 #ifndef KUDU_CLIENT_VALUE_H
 #define KUDU_CLIENT_VALUE_H
 
+#include <stdint.h>
+
 #ifdef KUDU_HEADERS_NO_STUBS
 #include "kudu/gutil/macros.h"
-#include "kudu/gutil/port.h"
 #else
 #include "kudu/client/stubs.h"
 #endif
@@ -69,6 +70,7 @@ class KUDU_EXPORT KuduValue {
   // Owned.
   Data* data_;
 
+ private:
   DISALLOW_COPY_AND_ASSIGN(KuduValue);
 };
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/write_op.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/write_op.cc b/src/kudu/client/write_op.cc
index 686da98..b159b87 100644
--- a/src/kudu/client/write_op.cc
+++ b/src/kudu/client/write_op.cc
@@ -17,10 +17,21 @@
 
 #include "kudu/client/write_op.h"
 
+#include <ostream>
+
+#include <glog/logging.h>
+
 #include "kudu/client/client.h"
+#include "kudu/client/schema.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/encoded_key.h"
 #include "kudu/common/row.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/types.h"
 #include "kudu/common/wire_protocol.pb.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/util/bitmap.h"
+#include "kudu/util/slice.h"
 
 namespace kudu {
 namespace client {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/write_op.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/write_op.h b/src/kudu/client/write_op.h
index 734ec31..0d6a9e6 100644
--- a/src/kudu/client/write_op.h
+++ b/src/kudu/client/write_op.h
@@ -17,12 +17,21 @@
 #ifndef KUDU_CLIENT_WRITE_OP_H
 #define KUDU_CLIENT_WRITE_OP_H
 
+#include <stdint.h>
+
 #include <string>
 
-#include "kudu/client/shared_ptr.h"
+#include "kudu/client/shared_ptr.h" // IWYU pragma: keep
 #include "kudu/common/partial_row.h"
 #include "kudu/util/kudu_export.h"
 
+#ifdef KUDU_HEADERS_NO_STUBS
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
+#else
+#include "kudu/client/stubs.h"
+#endif
+
 namespace kudu {
 
 class EncodedKey;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/clock/clock.h
----------------------------------------------------------------------
diff --git a/src/kudu/clock/clock.h b/src/kudu/clock/clock.h
index 20ba6d8..77b0cca 100644
--- a/src/kudu/clock/clock.h
+++ b/src/kudu/clock/clock.h
@@ -18,6 +18,8 @@
 
 #include <string>
 
+#include <glog/logging.h>
+
 #include "kudu/common/common.pb.h"
 #include "kudu/common/timestamp.h"
 #include "kudu/gutil/ref_counted.h"
@@ -25,10 +27,10 @@
 #include "kudu/util/status.h"
 
 namespace kudu {
-class faststring;
+
 class MetricEntity;
-class Slice;
 class Status;
+
 namespace clock {
 
 // An interface for a clock that can be used to assign timestamps to

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/clock/hybrid_clock-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/clock/hybrid_clock-test.cc b/src/kudu/clock/hybrid_clock-test.cc
index baed9d8..dc29c7c 100644
--- a/src/kudu/clock/hybrid_clock-test.cc
+++ b/src/kudu/clock/hybrid_clock-test.cc
@@ -16,17 +16,28 @@
 // under the License.
 
 #include <algorithm>
+#include <cstdint>
+#include <string>
 #include <vector>
 
+#include <gflags/gflags_declare.h>
 #include <glog/logging.h>
 #include <gtest/gtest.h>
 
 #include "kudu/clock/hybrid_clock.h"
 #include "kudu/clock/mock_ntp.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/gutil/map-util.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/util/atomic.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/random.h"
 #include "kudu/util/random_util.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
+#include "kudu/util/thread.h"
 
 DECLARE_string(time_source);
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/clock/hybrid_clock.cc
----------------------------------------------------------------------
diff --git a/src/kudu/clock/hybrid_clock.cc b/src/kudu/clock/hybrid_clock.cc
index 4841814..6ee7129 100644
--- a/src/kudu/clock/hybrid_clock.cc
+++ b/src/kudu/clock/hybrid_clock.cc
@@ -18,25 +18,30 @@
 #include "kudu/clock/hybrid_clock.h"
 
 #include <algorithm>
-#include <boost/algorithm/string/predicate.hpp>
-#include <glog/logging.h>
 #include <mutex>
+#include <ostream>
 #include <string>
 
+#include <boost/algorithm/string/predicate.hpp>
+#include <gflags/gflags.h>
+#include <glog/logging.h>
+
 #include "kudu/clock/mock_ntp.h"
 #include "kudu/clock/system_ntp.h"
-#include "kudu/clock/system_unsync_time.h"
 #include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/gutil/walltime.h"
 #include "kudu/util/debug/trace_event.h"
-#include "kudu/util/errno.h"
 #include "kudu/util/flag_tags.h"
-#include "kudu/util/locks.h"
-#include "kudu/util/logging.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/status.h"
 
+#ifdef __APPLE__
+#include "kudu/clock/system_unsync_time.h"
+#endif
+
 using kudu::Status;
 using std::string;
 using strings::Substitute;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/clock/hybrid_clock.h
----------------------------------------------------------------------
diff --git a/src/kudu/clock/hybrid_clock.h b/src/kudu/clock/hybrid_clock.h
index c0516e6..1e0f83f 100644
--- a/src/kudu/clock/hybrid_clock.h
+++ b/src/kudu/clock/hybrid_clock.h
@@ -16,17 +16,26 @@
 // under the License.
 #pragma once
 
+#include <cstdint>
+#include <memory>
 #include <string>
 
-#include "kudu/gutil/ref_counted.h"
 #include "kudu/clock/clock.h"
+#include "kudu/clock/time_service.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/metrics.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
+
+class MonoDelta;
+class MonoTime;
+
 namespace clock {
-class TimeService;
 
 // The HybridTime clock.
 //

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/clock/logical_clock-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/clock/logical_clock-test.cc b/src/kudu/clock/logical_clock-test.cc
index 5b352a3..78d2b13 100644
--- a/src/kudu/clock/logical_clock-test.cc
+++ b/src/kudu/clock/logical_clock-test.cc
@@ -15,11 +15,17 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <glog/logging.h>
+#include <string>
+
 #include <gtest/gtest.h>
 
 #include "kudu/clock/logical_clock.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/gutil/map-util.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/clock/logical_clock.cc
----------------------------------------------------------------------
diff --git a/src/kudu/clock/logical_clock.cc b/src/kudu/clock/logical_clock.cc
index dc6c6ef..30c74aa 100644
--- a/src/kudu/clock/logical_clock.cc
+++ b/src/kudu/clock/logical_clock.cc
@@ -17,11 +17,16 @@
 
 #include "kudu/clock/logical_clock.h"
 
+#include <ostream>
+#include <string>
+
+#include <glog/logging.h>
+
 #include "kudu/gutil/atomicops.h"
 #include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/metrics.h"
-#include "kudu/util/monotime.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
@@ -65,13 +70,13 @@ Status LogicalClock::Update(const Timestamp& to_update) {
 }
 
 Status LogicalClock::WaitUntilAfter(const Timestamp& then,
-                                    const MonoTime& deadline) {
+                                    const MonoTime& /* deadline */) {
   return Status::ServiceUnavailable(
       "Logical clock does not support WaitUntilAfter()");
 }
 
 Status LogicalClock::WaitUntilAfterLocally(const Timestamp& then,
-                                           const MonoTime& deadline) {
+                                           const MonoTime& /* deadline */) {
   if (IsAfter(then)) return Status::OK();
   return Status::ServiceUnavailable(
       "Logical clock does not support WaitUntilAfterLocally()");

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/clock/logical_clock.h
----------------------------------------------------------------------
diff --git a/src/kudu/clock/logical_clock.h b/src/kudu/clock/logical_clock.h
index 3d91448..8d087a1 100644
--- a/src/kudu/clock/logical_clock.h
+++ b/src/kudu/clock/logical_clock.h
@@ -16,15 +16,22 @@
 // under the License.
 #pragma once
 
+#include <cstdint>
 #include <string>
 
 #include "kudu/clock/clock.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/gutil/atomicops.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/util/metrics.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
-class MonoDelta;
+
 class MonoTime;
+
 namespace clock {
 
 // An implementation of Clock that behaves as a plain Lamport Clock.

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/clock/mock_ntp.cc
----------------------------------------------------------------------
diff --git a/src/kudu/clock/mock_ntp.cc b/src/kudu/clock/mock_ntp.cc
index 991fa2b..5d7aa8a 100644
--- a/src/kudu/clock/mock_ntp.cc
+++ b/src/kudu/clock/mock_ntp.cc
@@ -17,7 +17,11 @@
 
 #include "kudu/clock/mock_ntp.h"
 
-#include "kudu/util/locks.h"
+#include <mutex>
+#include <ostream>
+
+#include <glog/logging.h>
+
 #include "kudu/util/status.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/clock/mock_ntp.h
----------------------------------------------------------------------
diff --git a/src/kudu/clock/mock_ntp.h b/src/kudu/clock/mock_ntp.h
index 9056efe..0878c5d 100644
--- a/src/kudu/clock/mock_ntp.h
+++ b/src/kudu/clock/mock_ntp.h
@@ -16,6 +16,8 @@
 // under the License.
 #pragma once
 
+#include <cstdint>
+
 #include "kudu/clock/time_service.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/util/locks.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/clock/system_ntp.cc
----------------------------------------------------------------------
diff --git a/src/kudu/clock/system_ntp.cc b/src/kudu/clock/system_ntp.cc
index b687c6a..9cdac05 100644
--- a/src/kudu/clock/system_ntp.cc
+++ b/src/kudu/clock/system_ntp.cc
@@ -17,8 +17,16 @@
 
 #include "kudu/clock/system_ntp.h"
 
+#include <sys/time.h>
 #include <sys/timex.h>
 
+#include <cerrno>
+#include <ostream>
+#include <string>
+
+#include <glog/logging.h>
+
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/errno.h"
 #include "kudu/util/logging.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/clock/system_ntp.h
----------------------------------------------------------------------
diff --git a/src/kudu/clock/system_ntp.h b/src/kudu/clock/system_ntp.h
index e62c03e..546b2c2 100644
--- a/src/kudu/clock/system_ntp.h
+++ b/src/kudu/clock/system_ntp.h
@@ -16,6 +16,8 @@
 // under the License.
 #pragma once
 
+#include <cstdint>
+
 #include "kudu/clock/time_service.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/util/status.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/clock/system_unsync_time.cc
----------------------------------------------------------------------
diff --git a/src/kudu/clock/system_unsync_time.cc b/src/kudu/clock/system_unsync_time.cc
index 5c2e39f..453a2b2 100644
--- a/src/kudu/clock/system_unsync_time.cc
+++ b/src/kudu/clock/system_unsync_time.cc
@@ -17,6 +17,10 @@
 
 #include "kudu/clock/system_unsync_time.h"
 
+#include <ostream>
+
+#include <glog/logging.h>
+
 #include "kudu/gutil/walltime.h"
 
 namespace kudu {