Conscience Core
Csc3dElementModelsLibraryService.h
Go to the documentation of this file.
1 #ifndef Csc3dElementModelsLibraryService_h
2 #define Csc3dElementModelsLibraryService_h
3 
6 #include "CscCommon.h"
7 
9 
11  CscWorldElementModelFormat format;
12  string filename;
13  unsigned long long lastModificationTimeUTCMillis;
14  string fileMd5;
15 };
16 
18 public:
20  const string &id,
21  const string &name,
22  const optional<string> &type,
24  const map<CscWorldElementModelFormat, const CscLibrary3dElementModelSourceData *> &modelSources);
26 
28  const string id;
29  const string name;
32 
33  map<CscWorldElementModelFormat, const CscLibrary3dElementModelSourceData *> modelSources;
34 };
35 
40  unsigned long long byteLength;
41  string md5Hash;
42  static Csc3dElementModelPhysicsFileFootprint fromFile(const fs::path &filePath);
43 };
44 
46 public:
48 
49  bool ping() const;
50 
54  vector<CscLibrary3dElementModel *> list(Csc3dElementType elementType, optional<CscWorldElementModelFormat> requestedFormat = {}) const;
55 
56  vector<string> listIds(Csc3dElementType elementType) const;
57 
58  CscLibrary3dElementModel *getById(Csc3dElementType elementType, string id) const;
59 
60 
61  void downloadLogo(Csc3dElementType elementType, const string &id, const fs::path &outFilePath) const;
62 
68  optional<bool> hasPhysicsSpecsFileChanged(Csc3dElementType elementType, const string &id, CscWorldElementModelFormat format, const Csc3dElementModelPhysicsFileFootprint &fileFootprint) const;
69  void downloadPhysicsSpecsFile(Csc3dElementType elementType, const string &id, const fs::path &outFilePath, CscWorldElementModelFormat format, optional<function<void(float progressRatio)>> onProgress = {}) const;
70 
71  void setTimeoutSeconds(optional<unsigned> timeoutSeconds);
72  void setPingTimeoutSeconds(optional<unsigned> timeoutSeconds);
73  void setDownloadTimeoutSeconds(optional<unsigned> timeoutSeconds);
74 
75 private:
76  unique_ptr<CscLogger> logger = CscLogger::getForCategory("Csc3dElementModelsLibraryService");
77  optional<unsigned> timeoutSeconds = {};
78  optional<unsigned> downloadTimeoutSeconds = {};
79  optional<unsigned> pingTimeoutSeconds = {};
80 };
81 }
82 
83 #endif
conscience_core::core_objects::element_3d::Csc3dElementModelPhysicsFileFootprint::byteLength
unsigned long long byteLength
Definition: Csc3dElementModelsLibraryService.h:40
conscience_core::core_objects::element_3d::Csc3dElementModelsLibraryService::setPingTimeoutSeconds
void setPingTimeoutSeconds(optional< unsigned > timeoutSeconds)
Definition: Csc3dElementModelsLibraryService.cpp:204
CscResourceSpec.h
conscience_core::core_objects::element_3d::CscLibrary3dElementModel::name
const string name
Definition: Csc3dElementModelsLibraryService.h:29
conscience_core::core_objects::element_3d::CscLibrary3dElementModel::type
const optional< string > type
Definition: Csc3dElementModelsLibraryService.h:30
conscience_core::core_objects::element_3d::Csc3dElementModelPhysicsFileFootprint
Definition: Csc3dElementModelsLibraryService.h:39
conscience_core::core_objects::element_3d::CscLibrary3dElementModel::modelSources
map< CscWorldElementModelFormat, const CscLibrary3dElementModelSourceData * > modelSources
Definition: Csc3dElementModelsLibraryService.h:33
Csc3dElementModelResolver.h
conscience_core::core_objects::element_3d::CscLibrary3dElementModel
Definition: Csc3dElementModelsLibraryService.h:17
conscience_core::core_objects::element_3d::Csc3dElementModelsLibraryService::setTimeoutSeconds
void setTimeoutSeconds(optional< unsigned > timeoutSeconds)
Definition: Csc3dElementModelsLibraryService.cpp:201
conscience_core::core_objects::element_3d::Csc3dElementType
Csc3dElementType
Definition: Csc3dElementModelResolver.h:14
conscience_core::core_objects::element_3d
Definition: CommandParseContext.h:19
conscience_core::core_objects::element_3d::CscLibrary3dElementModelSourceData::lastModificationTimeUTCMillis
unsigned long long lastModificationTimeUTCMillis
Definition: Csc3dElementModelsLibraryService.h:13
conscience_core::core_objects::element_3d::Csc3dElementModelsLibraryService::ping
bool ping() const
Definition: Csc3dElementModelsLibraryService.cpp:211
conscience_core::core_objects::element_3d::Csc3dElementModelsLibraryService::downloadLogo
void downloadLogo(Csc3dElementType elementType, const string &id, const fs::path &outFilePath) const
Definition: Csc3dElementModelsLibraryService.cpp:144
conscience_core::core_objects::element_3d::Csc3dElementModelsLibraryService
Definition: Csc3dElementModelsLibraryService.h:45
conscience_core::core_objects::element_3d::CscLibrary3dElementModelSourceData::filename
string filename
Definition: Csc3dElementModelsLibraryService.h:12
conscience_core::core_objects::element_3d::CscLibrary3dElementModel::CscLibrary3dElementModel
CscLibrary3dElementModel(const Csc3dElementType &elementType, const string &id, const string &name, const optional< string > &type, const optional< string > &provider, const map< CscWorldElementModelFormat, const CscLibrary3dElementModelSourceData * > &modelSources)
Definition: Csc3dElementModelsLibraryService.cpp:19
conscience_core::core_objects::element_3d::Csc3dElementModelPhysicsFileFootprint::fromFile
static Csc3dElementModelPhysicsFileFootprint fromFile(const fs::path &filePath)
Definition: Csc3dElementModelsLibraryService.cpp:221
conscience_core::core_objects::element_3d::Csc3dElementModelsLibraryService::setDownloadTimeoutSeconds
void setDownloadTimeoutSeconds(optional< unsigned > timeoutSeconds)
Definition: Csc3dElementModelsLibraryService.cpp:207
conscience_core::core_objects::element_3d::CscLibrary3dElementModel::id
const string id
Definition: Csc3dElementModelsLibraryService.h:28
conscience_core::core_objects::element_3d::CscLibrary3dElementModelSourceData
Definition: Csc3dElementModelsLibraryService.h:10
CscCommon.h
conscience_core::core_objects::element_3d::Csc3dElementModelsLibraryService::hasPhysicsSpecsFileChanged
optional< bool > hasPhysicsSpecsFileChanged(Csc3dElementType elementType, const string &id, CscWorldElementModelFormat format, const Csc3dElementModelPhysicsFileFootprint &fileFootprint) const
Definition: Csc3dElementModelsLibraryService.cpp:150
conscience_core::core_objects::element_3d::Csc3dElementModelsLibraryService::list
vector< CscLibrary3dElementModel * > list(Csc3dElementType elementType, optional< CscWorldElementModelFormat > requestedFormat={}) const
Definition: Csc3dElementModelsLibraryService.cpp:95
conscience_core::core_objects::element_3d::Csc3dElementModelPhysicsFileFootprint::md5Hash
string md5Hash
Definition: Csc3dElementModelsLibraryService.h:41
conscience_core::core_objects::element_3d::Csc3dElementModelsLibraryService::getById
CscLibrary3dElementModel * getById(Csc3dElementType elementType, string id) const
Definition: Csc3dElementModelsLibraryService.cpp:129
conscience_core::core_objects::element_3d::CscLibrary3dElementModelSourceData::fileMd5
string fileMd5
Definition: Csc3dElementModelsLibraryService.h:14
conscience_core::core_objects::element_3d::Csc3dElementModelsLibraryService::Csc3dElementModelsLibraryService
Csc3dElementModelsLibraryService()
Definition: Csc3dElementModelsLibraryService.cpp:78
conscience_core::core_objects::element_3d::CscLibrary3dElementModel::~CscLibrary3dElementModel
~CscLibrary3dElementModel()
Definition: Csc3dElementModelsLibraryService.cpp:35
conscience_core::core_objects::element_3d::Csc3dElementModelsLibraryService::downloadPhysicsSpecsFile
void downloadPhysicsSpecsFile(Csc3dElementType elementType, const string &id, const fs::path &outFilePath, CscWorldElementModelFormat format, optional< function< void(float progressRatio)>> onProgress={}) const
Definition: Csc3dElementModelsLibraryService.cpp:171
conscience_core::core_objects::element_3d::CscLibrary3dElementModel::provider
const optional< string > provider
Definition: Csc3dElementModelsLibraryService.h:31
onProgress
optional< function< void(float progressRatio)> > onProgress
Definition: CscHttpClient.cpp:77
conscience_core::bridging::commands::environment_objects::optional< string >
const ptr< CscObjectModel > const string const CscPoint3d const CscPoint3d optional< string >
Definition: environmentObjectsCommands.h:373
conscience_core::core_objects::element_3d::CscLibrary3dElementModel::elementType
const Csc3dElementType elementType
Definition: Csc3dElementModelsLibraryService.h:27
conscience_core::core_objects::element_3d::CscLibrary3dElementModelSourceData::format
CscWorldElementModelFormat format
Definition: Csc3dElementModelsLibraryService.h:11
conscience_core::core_objects::element_3d::Csc3dElementModelsLibraryService::listIds
vector< string > listIds(Csc3dElementType elementType) const
Definition: Csc3dElementModelsLibraryService.cpp:114