コード例 #1
0
ファイル: pipeline.cpp プロジェクト: Tyilo/tpie
any_noncopyable & pipeline_base_base::fetch_any(std::string key) {
	node_map::ptr map = m_nodeMap->find_authority();
	runtime rt(map);
	std::vector<node *> sinks;
	rt.get_item_sinks(sinks);
	for (size_t j = 0; j < sinks.size(); ++j) {
		if (sinks[j]->can_fetch(key)) return sinks[j]->fetch_any(key);
	}

	std::stringstream ss;
	ss << "Tried to fetch nonexistent key '" << key << '\'';
	throw invalid_argument_exception(ss.str());
}
コード例 #2
0
		/// \brief TODOCUMENT
		hrc_duration view_cache_index_entry_test_suite_fixture::time_comparison(const vcie_vcie_vec_pair &arg_vcies_pair ///< TODOCUMENT
		                                                                        ) {
			const auto &vcies_1 = arg_vcies_pair.first;
			const auto &vcies_2 = arg_vcies_pair.second;

			if ( vcies_1.size() != vcies_2.size() ) {
				BOOST_THROW_EXCEPTION(invalid_argument_exception(""));
			}

			const hrc_time_point before_time_point = high_resolution_clock::now();
			compare( vcies_1, vcies_2, make_default_vcie_match_criteria() );
			return high_resolution_clock::now() - before_time_point;
		}
コード例 #3
0
		/// \brief TODOCUMENT
		hrc_duration_vec view_cache_index_entry_test_suite_fixture::time_comparisons(const vcie_vcie_vec_pair &arg_vcies_pair, ///< TODOCUMENT
		                                                                             const size_t             &arg_num_repeats ///< TODOCUMENT
		                                                                             ) {
			const auto vcies_1 = arg_vcies_pair.first;
			const auto vcies_2 = arg_vcies_pair.second;

			if ( vcies_1.size() != vcies_1.size() ) {
				BOOST_THROW_EXCEPTION(invalid_argument_exception(""));
			}
			return generate_n_build<hrc_duration_vec>(
				arg_num_repeats,
				[&] () { return time_comparison( arg_vcies_pair ); }
			);
		}
コード例 #4
0
			/// Return the indices (offset 0) of the first and last trues in the list of bools
			///
			/// \pre The deque<bool> must contain at least one true value
			///
			/// \returns A pair<size_t, size_t> containing the indices of the first and last true values respectively
			static size_size_pair get_indices_of_first_and_last_trues(const bool_deq &arg_entry ///< The list of bools to query
			                                                          ) {
				if ( ! contains( arg_entry, true) ) {
					BOOST_THROW_EXCEPTION(invalid_argument_exception("Cannot find indices of first and last true values because there are no true values"));
				}
				const size_t first_true_idx = numeric_cast<size_t>( distance( common::cbegin ( arg_entry ), find( arg_entry,            true ) ) );
				const size_t last_true_ridx = numeric_cast<size_t>( distance( common::crbegin( arg_entry ), find( common::crbegin( arg_entry ), common::crend( arg_entry), true ) ) );
				const size_t last_true_idx  = arg_entry.size() - last_true_ridx - 1;
		//		cerr << "First and last indices for ";
		//		for (const bool &value : arg_entry) {
		//			cerr << " " << boolalpha << value;
		//		}
		//		cerr << " are " << first_true_idx << " and " << last_true_idx << endl;
				return make_pair(first_true_idx, last_true_idx);
			}
コード例 #5
0
		/// \brief TODOCUMENT
		view_cache_index_entry_vec view_cache_index_entry_test_suite_fixture::build_random_vcies(const size_t  &arg_num_entries, ///< TODOCUMENT
		                                                                                         const protein &arg_protein,     ///< TODOCUMENT
		                                                                                         mt19937       &arg_rng          ///< TODOCUMENT
		                                                                                         ) {
			if ( arg_protein.get_length() < 2 ) {
				BOOST_THROW_EXCEPTION(invalid_argument_exception("Cannot build random vcies if the protein has fewer than two residues"));
			}
			const auto &length = arg_protein.get_length();
			return generate_n_build<view_cache_index_entry_vec>(
				arg_num_entries,
				[&] () {
					const auto index_pair = pick_random_pair( 0_z, length - 1, arg_rng );
					return make_view_cache_index_entry(
						arg_protein,
						index_pair.first,
						index_pair.second
					);
				}
			);
		}