3333namespace qiree
3434{
3535// ---------------------------------------------------------------------------//
36- QireeManager::QireeManager () = default ;
37- QireeManager::~QireeManager () = default ;
36+ QireeManager::QireeManager () throw () = default ;
37+ QireeManager::~QireeManager () throw () = default ;
3838
3939// ---------------------------------------------------------------------------//
4040QireeManager::ReturnCode
@@ -127,6 +127,9 @@ QireeManager::max_result_items(int num_shots, std::size_t& result) const
127127 auto num_registers = attrs.required_num_results ;
128128 result = std::min<std::size_t >(1 << num_registers, num_shots);
129129
130+ // Add one for the "count" record at the beginning
131+ result++;
132+
130133 return ReturnCode::success;
131134}
132135
@@ -202,9 +205,9 @@ QireeManager::setup_executor(std::string_view backend,
202205// ---------------------------------------------------------------------------//
203206QireeManager::ReturnCode QireeManager::execute (int num_shots) throw()
204207{
205- if (execute_)
208+ if (! execute_)
206209 {
207- CQIREE_FAIL (not_ready, " cannot create executor again " );
210+ CQIREE_FAIL (not_ready, " setup_executor was not created " );
208211 }
209212
210213 if (num_shots <= 0 )
@@ -231,17 +234,20 @@ QireeManager::ReturnCode QireeManager::execute(int num_shots) throw()
231234}
232235// ---------------------------------------------------------------------------//
233236QireeManager::ReturnCode
234- QireeManager::save_result_items (std:: size_t num_items ,
235- ResultRecord* encoded ) throw ()
237+ QireeManager::save_result_items (ResultRecord* encoded ,
238+ std:: size_t max_count ) throw ()
236239{
237240 if (!result_)
238241 {
239242 CQIREE_FAIL (not_ready, " execute has not been called" );
240243 }
241244
242- if (num_items < result_->size ())
245+ if (max_count < result_->size () + 1 )
243246 {
244- CQIREE_FAIL (fail_load, " insufficient capacity for result items" );
247+ CQIREE_FAIL (fail_load,
248+ " insufficient capacity " << max_count
249+ << " for result items: need "
250+ << result_->size () + 1 );
245251 }
246252
247253 try
0 commit comments