- _num_local_encoding_threads = f.number_child<int> ("NumLocalEncodingThreads");
- _default_directory = f.string_child ("DefaultDirectory");
+ if (f.optional_number_child<int>("NumLocalEncodingThreads")) {
+ _master_encoding_threads = _server_encoding_threads = f.optional_number_child<int>("NumLocalEncodingThreads").get();
+ } else {
+ _master_encoding_threads = f.number_child<int>("MasterEncodingThreads");
+ _server_encoding_threads = f.number_child<int>("ServerEncodingThreads");
+ }
+
+ _default_directory = f.optional_string_child ("DefaultDirectory");
+ if (_default_directory && _default_directory->empty ()) {
+ /* We used to store an empty value for this to mean "none set" */
+ _default_directory = boost::optional<boost::filesystem::path> ();
+ }