@@ -191,6 +191,7 @@ namespace manapi {
191191 */
192192 class exception final : public std::exception {
193193 public:
194+ explicit exception (messages msg);
194195 /* *
195196 * initialize exception
196197 * @param errnum error code
@@ -236,8 +237,14 @@ namespace manapi {
236237
237238 virtual ~status ();
238239
240+ status (messages msg);
241+
242+ status (err_num code, const char *msg);
243+
239244 status (err_num code, std::string_view msg);
240245
246+ status (err_num code, std::string msg);
247+
241248 status (status &&n) MANAPIHTTP_NOEXCEPT;
242249
243250 status& operator = (status &&n) MANAPIHTTP_NOEXCEPT;
@@ -270,7 +277,7 @@ namespace manapi {
270277 /* *
271278 * do log using the status
272279 */
273- virtual void log () const ;
280+ void log () const ;
274281
275282 /* *
276283 * get the error code as a string
@@ -284,11 +291,19 @@ namespace manapi {
284291 *
285292 * @throws manapi::exception with the error code from the status
286293 */
287- virtual void unwrap () const ;
294+ void unwrap () const ;
295+
296+ MANAPIHTTP_NODISCARD virtual std::string fullmsg () const ;
288297
289298 void stacktrace () const MANAPIHTTP_NOEXCEPT;
290299
291300 MANAPIHTTP_NODISCARD operator bool () const MANAPIHTTP_NOEXCEPT;
301+
302+ void data (messages data);
303+
304+ messages data ();
305+
306+ messages copy_data ();
292307 protected:
293308 messages m_data;
294309 };
@@ -375,26 +390,132 @@ namespace manapi {
375390 };
376391
377392 status status_ok ();
378- status status_unknown (std::string_view msg);
393+
394+ status status_unknown ();
395+
379396 status status_cancelled ();
397+
398+ status status_invalid_argument ();
399+
400+ status status_deadline_exceeded ();
401+
402+ status status_not_found ();
403+
404+ status status_already_exists ();
405+
406+ status status_permission_denied ();
407+
408+ status status_resource_exhausted ();
409+
410+ status status_failed_precondition ();
411+
412+ status status_aborted ();
413+
414+ status status_unavailable ();
415+
416+ status status_out_of_range ();
417+
418+ status status_unimplemented ();
419+
420+ status status_internal ();
421+
422+ status status_data_loss ();
423+
424+ status status_data_loss (std::string msg);
425+
426+ status status_unknown (std::string msg);
427+
428+ status status_cancelled (std::string msg);
429+
430+ status status_invalid_argument (std::string msg);
431+
432+ status status_deadline_exceeded (std::string msg);
433+
434+ status status_not_found (std::string msg);
435+
436+ status status_already_exists (std::string msg);
437+
438+ status status_permission_denied (std::string msg);
439+
440+ status status_unauthenticated (std::string msg);
441+
442+ status status_resource_exhausted (std::string msg);
443+
444+ status status_failed_precondition (std::string msg);
445+
446+ status status_aborted (std::string msg);
447+
448+ status status_unavailable (std::string msg);
449+
450+ status status_out_of_range (std::string msg);
451+
452+ status status_unimplemented (std::string msg);
453+
454+ status status_internal (std::string msg);
455+
456+ status status_data_loss (const char * msg);
457+
458+ status status_unknown (const char * msg);
459+
460+ status status_cancelled (const char * msg);
461+
462+ status status_invalid_argument (const char * msg);
463+
464+ status status_deadline_exceeded (const char * msg);
465+
466+ status status_not_found (const char * msg);
467+
468+ status status_already_exists (const char * msg);
469+
470+ status status_permission_denied (const char * msg);
471+
472+ status status_unauthenticated (const char * msg);
473+
474+ status status_resource_exhausted (const char * msg);
475+
476+ status status_failed_precondition (const char * msg);
477+
478+ status status_aborted (const char * msg);
479+
480+ status status_unavailable (const char * msg);
481+
482+ status status_out_of_range (const char * msg);
483+
484+ status status_unimplemented (const char * msg);
485+
486+ status status_internal (const char * msg);
487+
488+ status status_data_loss (std::string_view msg);
489+
490+ status status_unknown (std::string_view msg);
491+
380492 status status_cancelled (std::string_view msg);
493+
381494 status status_invalid_argument (std::string_view msg);
495+
382496 status status_deadline_exceeded (std::string_view msg);
497+
383498 status status_not_found (std::string_view msg);
499+
384500 status status_already_exists (std::string_view msg);
385- status status_already_exists ();
501+
386502 status status_permission_denied (std::string_view msg);
503+
387504 status status_unauthenticated (std::string_view msg);
388- status status_resource_exhausted ();
505+
389506 status status_resource_exhausted (std::string_view msg);
507+
390508 status status_failed_precondition (std::string_view msg);
509+
391510 status status_aborted (std::string_view msg);
511+
392512 status status_unavailable (std::string_view msg);
513+
393514 status status_out_of_range (std::string_view msg);
515+
394516 status status_unimplemented (std::string_view msg);
517+
395518 status status_internal (std::string_view msg);
396- status status_internal ();
397- status status_data_loss (std::string_view msg);
398519
399520 template <typename T>
400521 auto unwrap (T status) {
0 commit comments