fileoperation.cpp
Go to the documentation of this file.
1 /*
2 ** Copyright (C) 2012 Aldebaran Robotics
3 ** See COPYING for the license
4 */
5 
6 #include <qicore/file.hpp>
7 #include <qi/anymodule.hpp>
8 
9 namespace qi
10 {
11  template<class FileOpType, class... Args >
12  auto launchStandalone(Args&&... args)->decltype(std::declval<FileOpType>().start())
13  {
14  FileOpType fileOp{ std::forward<Args>(args)... };
15  fileOp.start();
16  return fileOp.detach();
17  }
18 
19  FutureSync<void> copyToLocal(FilePtr file, Path localPath)
20  {
21  return launchStandalone<FileCopyToLocal>(std::move(file), std::move(localPath));
22  }
23 
24  FileOperationPtr prepareCopyToLocal(FilePtr file, Path localPath)
25  {
26  return boost::make_shared<FileCopyToLocal>(std::move(file), std::move(localPath));
27  }
28 
30  {
31  ::qi::ObjectTypeBuilder<FileOperation> builder;
32  QI_OBJECT_BUILDER_ADVERTISE(builder, FileOperation, start);
33  QI_OBJECT_BUILDER_ADVERTISE(builder, FileOperation, detach);
34  QI_OBJECT_BUILDER_ADVERTISE(builder, FileOperation, notifier);
35  QI_OBJECT_BUILDER_ADVERTISE(builder, FileOperation, isValid);
36 
37  builder.registerType();
38  }
39 
40  void registerFileOperations(qi::ModuleBuilder& mb)
41  {
42  mb.advertiseMethod("copyToLocal", &copyToLocal);
43  mb.advertiseMethod("FileCopyToLocal", &prepareCopyToLocal);
44  }
45 
46 }
qi::launchStandalone
auto launchStandalone(Args &&... args) -> decltype(std::declval< FileOpType >().start())
Definition: fileoperation.cpp:12
qi::_qiregisterFileOperation
void _qiregisterFileOperation()
Definition: fileoperation.cpp:29
file.hpp
qi::copyToLocal
FutureSync< void > copyToLocal(FilePtr file, Path localPath)
Definition: fileoperation.cpp:19
qi::registerFileOperations
void registerFileOperations(qi::ModuleBuilder &mb)
Definition: fileoperation.cpp:40
qi::prepareCopyToLocal
FileOperationPtr prepareCopyToLocal(FilePtr file, Path localPath)
Definition: fileoperation.cpp:24
qi
Definition: file.hpp:21
qi::FilePtr
qi::Object< File > FilePtr
Pointer to a file with shared/remote semantic.
Definition: file.hpp:213


naoqi_libqicore
Author(s): Aldebaran
autogenerated on Wed Sep 14 2022 02:22:41