Skip to main content

Common Fluids Format 2024 R1

ProjectStoragePolicy

Last update: 16.07.2025
1#ifndef CFFSDK_PROJECT_PROJECTSTORAGEPOLICY_H
2#define CFFSDK_PROJECT_PROJECTSTORAGEPOLICY_H
3
4#include "Project/LibraryType.hpp"
5#include "Project/Error.hpp"
6#include "Project/URL.hpp"
7#include <map>
8#include <string>
9
10namespace ansys {
11namespace Project {
12
13class MetadataHoof;
14
15class ANSYS_PROJECT_DLL ProjectStoragePolicy {
16public:
17 ProjectStoragePolicy(const std::string pName);
18
19 // Persistent - Stored in project policy
20 void setProjectSubfolderEnabled(bool pFlag);
21 bool isProjectSubfolderEnabled() const;
22
23 void setSubProjectMode(const std::string& pSubprojectMode);
24 std::string getSubProjectMode() const;
25
26 void setSimFolderName(const std::string& pName);
27 std::string getSimFolderName() const;
28
29 void setProjectSubfolderSuffix(const std::string& pSuffix);
30 std::string getProjectSubfolderSuffix() const;
31
32 void setProjectSubfolderCustomName(const std::string& pCustomFolder);
33 std::string getProjectSubfolderCustomName() const;
34
35 void setAttr(const std::string& pKey,const std::string& pValue);
36 std::string getAttr(const std::string& pKey) const;
37
38 void saveToMeta(MetadataHoof& pMeta);
39 void loadFromMeta(const MetadataHoof& pMeta);
40
41 // Runtime - Not stored in project file policy
42 void setReadOnly(bool pFlag);
43 bool isReadOnly() const;
44
45 void setApplicationName(const std::string& pName);
46 std::string getApplicationName() const;
47
48 URL getLockInfoFilename(const URL& pProjectLocation) const;
49 void setUseLockInfo(bool pUseFeature,bool pUseInReadOnly=false);
50 bool isLockInfoEnabled() const;
51 bool isLockInfoOnReadOnlyEnabled() const;
52
53 void setAutoUpgradeEnabled(bool pFlag);
54 bool getAutoUpgradeEnabled() const;
55
56private:
57 bool aReadOnly;
58 std::string aAppName;
59
60 bool aLockInfoEnabled;
61 bool aLockInfoOnReadOnlyEnabled;
62
63 bool aAutoUpgradeEnabled;
64
65 std::map<std::string,std::string> aAttr;
66};
67
68}
69}
70
71#endif // CFFSDK_PROJECT_PROJECTSTORAGEPOLICY_H
Project storage settings, control folder management, folder names, etc.
Definition: ProjectStoragePolicy.hpp:15
The address of a local or remote file, using the URI format.
Definition: URL.hpp:12
Definition: API.dox:1

Connect with Ansys