@@ -502,6 +502,20 @@ SharedAsyncContext CosAPI::AsyncPutObject(const AsyncPutObjectReq& req) {
502502  return  context;
503503}
504504
505+ SharedAsyncContext CosAPI::AsyncPutObject (const  AsyncPutObjectReq& req, Poco::TaskManager*& taskManager) {
506+   SharedTransferHandler handler (new  TransferHandler ());
507+   handler->SetRequest (reinterpret_cast <const  void *>(&req));
508+   handler->SetTotalSize (req.GetLocalFileSize ());
509+   TaskFunc fn = [=]() {
510+     PutObjectByFileResp resp;
511+     m_object_op.PutObject (req, &resp, handler);
512+   };
513+   taskManager = &GetGlobalTaskManager ();
514+   (*taskManager).start (new  AsyncTask (std::move (fn)));
515+   SharedAsyncContext context (new  AsyncContext (handler));
516+   return  context;
517+ }
518+ 
505519SharedAsyncContext CosAPI::AsyncPutObject (const  AsyncPutObjectByStreamReq& req) {
506520  SharedTransferHandler handler (new  TransferHandler ());
507521  handler->SetRequest (reinterpret_cast <const  void *>(&req));
@@ -518,6 +532,23 @@ SharedAsyncContext CosAPI::AsyncPutObject(const AsyncPutObjectByStreamReq& req)
518532  return  context;
519533}
520534
535+ SharedAsyncContext CosAPI::AsyncPutObject (const  AsyncPutObjectByStreamReq& req, Poco::TaskManager*& taskManager) {
536+   SharedTransferHandler handler (new  TransferHandler ());
537+   handler->SetRequest (reinterpret_cast <const  void *>(&req));
538+   auto & is = req.GetStream ();
539+   is.seekg (0 , std::ios::end);
540+   handler->SetTotalSize (is.tellg ());
541+   is.seekg (0 , std::ios::beg);
542+   TaskFunc fn = [=]() {
543+     PutObjectByStreamResp resp;
544+     m_object_op.PutObject (req, &resp, handler);
545+   };
546+   taskManager = &GetGlobalTaskManager ();
547+   (*taskManager).start (new  AsyncTask (std::move (fn)));
548+   SharedAsyncContext context (new  AsyncContext (handler));
549+   return  context;
550+ }
551+ 
521552
522553SharedAsyncContext CosAPI::AsyncMultiPutObject (const  AsyncMultiPutObjectReq& req) {
523554  SharedTransferHandler handler (new  TransferHandler ());
@@ -532,6 +563,20 @@ SharedAsyncContext CosAPI::AsyncMultiPutObject(const AsyncMultiPutObjectReq& req
532563  return  context;
533564}
534565
566+ SharedAsyncContext CosAPI::AsyncMultiPutObject (const  AsyncMultiPutObjectReq& req, Poco::TaskManager*& taskManager) {
567+   SharedTransferHandler handler (new  TransferHandler ());
568+   handler->SetRequest (reinterpret_cast <const  void *>(&req));
569+   handler->SetTotalSize (req.GetLocalFileSize ());
570+   TaskFunc fn = [=]() {
571+     MultiPutObjectResp resp;
572+     m_object_op.MultiUploadObject (req, &resp, handler);
573+   };
574+   taskManager = &GetGlobalTaskManager ();
575+   (*taskManager).start (new  AsyncTask (std::move (fn)));
576+   SharedAsyncContext context (new  AsyncContext (handler));
577+   return  context;
578+ }
579+ 
535580SharedAsyncContext CosAPI::AsyncGetObject (const  AsyncGetObjectReq& req) {
536581  SharedTransferHandler handler (new  TransferHandler ());
537582  handler->SetRequest (reinterpret_cast <const  void *>(&req));
@@ -544,6 +589,19 @@ SharedAsyncContext CosAPI::AsyncGetObject(const AsyncGetObjectReq& req) {
544589  return  context;
545590}
546591
592+ SharedAsyncContext CosAPI::AsyncGetObject (const  AsyncGetObjectReq& req, Poco::TaskManager*& taskManager) {
593+   SharedTransferHandler handler (new  TransferHandler ());
594+   handler->SetRequest (reinterpret_cast <const  void *>(&req));
595+   TaskFunc fn = [=]() {
596+     GetObjectByFileResp resp;
597+     m_object_op.GetObject (req, &resp, handler);
598+   };
599+   taskManager = &GetGlobalTaskManager ();
600+   (*taskManager).start (new  AsyncTask (std::move (fn)));
601+   SharedAsyncContext context (new  AsyncContext (handler));
602+   return  context;
603+ }
604+ 
547605SharedAsyncContext CosAPI::AsyncMultiGetObject (const  AsyncMultiGetObjectReq& req) {
548606  SharedTransferHandler handler (new  TransferHandler ());
549607  handler->SetRequest (reinterpret_cast <const  void *>(&req));
@@ -556,6 +614,19 @@ SharedAsyncContext CosAPI::AsyncMultiGetObject(const AsyncMultiGetObjectReq& req
556614  return  context;
557615}
558616
617+ SharedAsyncContext CosAPI::AsyncMultiGetObject (const  AsyncMultiGetObjectReq& req, Poco::TaskManager*& taskManager) {
618+   SharedTransferHandler handler (new  TransferHandler ());
619+   handler->SetRequest (reinterpret_cast <const  void *>(&req));
620+   TaskFunc fn = [=]() {
621+     GetObjectByFileResp resp;
622+     m_object_op.MultiThreadDownload (req, &resp, handler);
623+   };
624+   taskManager = &GetGlobalTaskManager ();
625+   (*taskManager).start (new  AsyncTask (std::move (fn)));
626+   SharedAsyncContext context (new  AsyncContext (handler));
627+   return  context;
628+ }
629+ 
559630CosResult CosAPI::PutObjects (const  PutObjectsByDirectoryReq& req,
560631                             PutObjectsByDirectoryResp* resp) {
561632  return  m_object_op.PutObjects (req, resp);
0 commit comments