Remove copy ctor and operator= from BlazeStartupOptions

--
MOS_MIGRATED_REVID=104688018
diff --git a/src/main/cpp/BUILD b/src/main/cpp/BUILD
index 7954a67..6ea2bb3 100644
--- a/src/main/cpp/BUILD
+++ b/src/main/cpp/BUILD
@@ -50,6 +50,7 @@
         "blaze_startup_options.h",
         "blaze_startup_options_common.cc",
         "blaze_util_platform.h",
+        "extra_startup_options.h",
         "option_processor.cc",
         "option_processor.h",
     ],
diff --git a/src/main/cpp/blaze_startup_options.cc b/src/main/cpp/blaze_startup_options.cc
index 7e0a158..b5aa5ce 100644
--- a/src/main/cpp/blaze_startup_options.cc
+++ b/src/main/cpp/blaze_startup_options.cc
@@ -32,41 +32,6 @@
 
 struct StartupOptions {};
 
-BlazeStartupOptions::BlazeStartupOptions() {
-  Init();
-}
-
-BlazeStartupOptions::BlazeStartupOptions(const BlazeStartupOptions &rhs)
-    : output_base(rhs.output_base),
-      install_base(rhs.install_base),
-      output_root(rhs.output_root),
-      output_user_root(rhs.output_user_root),
-      block_for_lock(rhs.block_for_lock),
-      host_jvm_debug(rhs.host_jvm_debug),
-      host_jvm_profile(rhs.host_jvm_profile),
-      host_jvm_args(rhs.host_jvm_args),
-      batch(rhs.batch),
-      batch_cpu_scheduling(rhs.batch_cpu_scheduling),
-      io_nice_level(rhs.io_nice_level),
-      max_idle_secs(rhs.max_idle_secs),
-      skyframe(rhs.skyframe),
-      blaze_cpu(rhs.blaze_cpu),
-      watchfs(rhs.watchfs),
-      allow_configurable_attributes(rhs.allow_configurable_attributes),
-      option_sources(rhs.option_sources),
-      webstatus_port(rhs.webstatus_port),
-      invocation_policy(rhs.invocation_policy),
-      host_javabase(rhs.host_javabase) {}
-
-BlazeStartupOptions::~BlazeStartupOptions() {
-}
-
-BlazeStartupOptions& BlazeStartupOptions::operator=(
-    const BlazeStartupOptions &rhs) {
-  Copy(rhs, this);
-  return *this;
-}
-
 string BlazeStartupOptions::GetProductName() {
   return "Bazel";
 }
diff --git a/src/main/cpp/blaze_startup_options.h b/src/main/cpp/blaze_startup_options.h
index f29ab3f..f1ea545 100644
--- a/src/main/cpp/blaze_startup_options.h
+++ b/src/main/cpp/blaze_startup_options.h
@@ -15,18 +15,16 @@
 #define BAZEL_SRC_MAIN_CPP_BLAZE_STARTUP_OPTIONS_H_
 
 #include <map>
-#include <memory>
 #include <string>
 #include <vector>
 
+#include "src/main/cpp/extra_startup_options.h"
 #include "src/main/cpp/util/exit_code.h"
 
 namespace blaze {
 
 using std::string;
 
-struct StartupOptions;
-
 // This class holds the parsed startup options for Blaze.
 // These options and their defaults must be kept in sync with those
 // in java/com/google/devtools/build/lib/blaze/BlazeServerStartupOptions.
@@ -40,9 +38,6 @@
 class BlazeStartupOptions {
  public:
   BlazeStartupOptions();
-  BlazeStartupOptions(const BlazeStartupOptions &rhs);
-  ~BlazeStartupOptions();
-  BlazeStartupOptions& operator=(const BlazeStartupOptions &rhs);
 
   // Returns the capitalized name of this binary.
   string GetProductName();
@@ -163,9 +158,8 @@
   std::map<string, string> option_sources;
 
   // This can be used for site-specific startup options. For Bazel, this is
-  // stubbed
-  // out.
-  std::unique_ptr<StartupOptions> extra_options;
+  // stubbed out.
+  ExtraStartupOptions extra_options;
 
   // Given the working directory, returns the nearest enclosing directory with a
   // WORKSPACE file in it.  If there is no such enclosing directory, returns "".
@@ -204,14 +198,6 @@
  private:
   string host_javabase;
 
-  // Sets default values for members.
-  void Init();
-
-  // Copies member variables from rhs to lhs. This cannot use the compiler-
-  // generated copy constructor because extra_options is a unique_ptr and
-  // unique_ptr deletes its copy constructor.
-  void Copy(const BlazeStartupOptions &rhs, BlazeStartupOptions *lhs);
-
   // Returns the directory to use for storing outputs.
   string GetOutputRoot();
 };
diff --git a/src/main/cpp/blaze_startup_options_common.cc b/src/main/cpp/blaze_startup_options_common.cc
index 914f7ab..c151c7e 100644
--- a/src/main/cpp/blaze_startup_options_common.cc
+++ b/src/main/cpp/blaze_startup_options_common.cc
@@ -26,7 +26,7 @@
 
 namespace blaze {
 
-void BlazeStartupOptions::Init() {
+BlazeStartupOptions::BlazeStartupOptions() {
   bool testing = getenv("TEST_TMPDIR") != NULL;
   if (testing) {
     output_root = MakeAbsolute(getenv("TEST_TMPDIR"));
@@ -61,33 +61,6 @@
   return host_javabase;
 }
 
-void BlazeStartupOptions::Copy(
-    const BlazeStartupOptions &rhs, BlazeStartupOptions *lhs) {
-  assert(lhs);
-
-  lhs->output_base = rhs.output_base;
-  lhs->install_base = rhs.install_base;
-  lhs->output_root = rhs.output_root;
-  lhs->output_user_root = rhs.output_user_root;
-  lhs->block_for_lock = rhs.block_for_lock;
-  lhs->host_jvm_debug = rhs.host_jvm_debug;
-  lhs->host_jvm_profile = rhs.host_jvm_profile;
-  lhs->host_javabase = rhs.host_javabase;
-  lhs->host_jvm_args = rhs.host_jvm_args;
-  lhs->batch = rhs.batch;
-  lhs->batch_cpu_scheduling = rhs.batch_cpu_scheduling;
-  lhs->io_nice_level = rhs.io_nice_level;
-  lhs->max_idle_secs = rhs.max_idle_secs;
-  lhs->skyframe = rhs.skyframe;
-  lhs->blaze_cpu = rhs.blaze_cpu;
-  lhs->webstatus_port = rhs.webstatus_port;
-  lhs->watchfs = rhs.watchfs;
-  lhs->allow_configurable_attributes = rhs.allow_configurable_attributes;
-  lhs->fatal_event_bus_exceptions = rhs.fatal_event_bus_exceptions;
-  lhs->option_sources = rhs.option_sources;
-  lhs->invocation_policy = rhs.invocation_policy;
-}
-
 blaze_exit_code::ExitCode BlazeStartupOptions::ProcessArg(
       const string &argstr, const string &next_argstr, const string &rcfile,
       bool *is_space_separated, string *error) {
diff --git a/src/main/cpp/extra_startup_options.h b/src/main/cpp/extra_startup_options.h
new file mode 100644
index 0000000..b4394a1
--- /dev/null
+++ b/src/main/cpp/extra_startup_options.h
@@ -0,0 +1,24 @@
+// Copyright 2015 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//    http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+#ifndef BAZEL_SRC_MAIN_CPP_BLAZE_EXTRA_STARTUP_OPTIONS_H_
+#define BAZEL_SRC_MAIN_CPP_BLAZE_EXTRA_STARTUP_OPTIONS_H_
+
+namespace blaze {
+
+struct ExtraStartupOptions {
+};
+
+}
+
+#endif  // BAZEL_SRC_MAIN_CPP_BLAZE_EXTRA_STARTUP_OPTIONS_H_