libMVRgdtf 40bc00a
A library for GDTF and MVR
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
FilingWrapper.h
Go to the documentation of this file.
1#pragma once
2
3#include "FolderSpecifiers.h"
4
5namespace VectorworksMVR
6{
7 namespace Filing
8 {
9
11//General Access
13const StorageAttributes kStorageAttrWrite = 0x00000001 << 1;
14const StorageAttributes kStorageAttrExecute = 0x00000001 << 2;
15//System Attributes
16const StorageAttributes kStorageAttrHidden = 0x00000001 << 3;
17const StorageAttributes kStorageAttrSystem = 0x00000001 << 4;
19//Security Attributes
25//Type Attributes
26const StorageAttributes kStorageAttrArchive = 0x00000001 << 11;
28//Flags
29const StorageAttributes kStorageAttrPermFlagsValid = 0x00000001 << 24; //Permissions flags are valid if set.
30
31
32// ------------------------------------------------------------------------------------
42
43// ------------------------------------------------------------------------------------
45{
46public:
48 virtual ~TXBaseStorageAccess();
49
50 //Storage element activity time specifiers
57
60 eStorageInvalidParameter, //Error in routine parameter list
61 };
62
63 EStorageOperationError GetStorageElementTimeData(const EStorageTimeReference eStorageTimeReference, TDateTimeData& timeData) const;
64};
65
66// ------------------------------------------------------------------------------------
68{
69public:
71 TFolderIdentifier(const TXString& fullPath);
72 virtual ~TFolderIdentifier();
73
74 bool IsSet() const;
75
76 TXString GetFolderPath() const;
77 bool SetByFullPath(const TXString& fullPath);
79
80 bool GetFolderContextAttributes(StorageAttributes& folderAttributes) const;
81 bool IsFolderReadOnly() const;
82
83 bool CreateOnDisk(const TXString& fullPath);
84 bool DeleteOnDisk();
85 bool DuplicateOnDisk(const TFolderIdentifier& newFolder, bool overrideIfNecessary = false, TXString* displayProgressDialog = NULL);
86 bool RevealInOS();
87
93
94 static ExistenceState ExistsOnDisk(const TXString& fullPath);
95
96
97private:
98 TXString fcsPath;
99 bool fbIsSet;
100};
101
102// ------------------------------------------------------------------------------------
104{
105public:
107 TFileIdentifier(const TXString& fullPath);
108 virtual ~TFileIdentifier();
109
110 bool IsSet() const;
111
112 bool SetByFullPath(const TXString& fullPath);
116
117 bool GetFileContextAttributes(StorageAttributes& fileAttributes) const;
118 bool IsFileReadOnly();
119
120 bool ExistsOnDisk();
121 bool DeleteOnDisk();
122 bool RenameOnDisk(const TXString& newName);
123 bool DuplicateOnDisk(const TFileIdentifier& fileToDuplicateTo, bool overwriteIfNecessary = false, bool duplicatePermissions = true) const;
124 bool LaunchInOS();
125 bool RevealInOS();
126
127private:
128 TXString fcsPath;
129 bool fbIsSet;
130};
131
132// ------------------------------------------------------------------------------------
134{
135public:
136 //Implemented in File.X.cpp
137 static TXBaseStorageAccess* CreateStorageAccess(const TFolderIdentifier& baseStorageSpecIdentifier);
138 static TXBaseStorageAccess* CreateStorageAccess(const TFileIdentifier& baseStorageSpecIdentifier);
139
140private:
141 //Private constructor/destructor - enforces static class.
144};
145
146// ------------------------------------------------------------------------------------
147bool GetFolderWithSpecifer(EFolderSpecifier inWhichFolder, TFolderIdentifier& outFolderID, bool inCreateIfMissing = false);
148
149
150bool GetFolderAppDataPath(TXString& outPath);
151 }
152}
EFolderSpecifier
Definition FolderSpecifiers.h:10
uint32_t Uint32
Definition GSTypes.h:27
Definition FilingWrapper.h:104
bool LaunchInOS()
Definition FilingWrapper.cpp:339
TXString GetPosixFilePath() const
Definition FilingWrapper.cpp:266
bool SetByFullPath(const TXString &fullPath)
Definition FilingWrapper.cpp:211
bool IsSet() const
Definition FilingWrapper.cpp:206
virtual ~TFileIdentifier()
Definition FilingWrapper.cpp:202
bool DuplicateOnDisk(const TFileIdentifier &fileToDuplicateTo, bool overwriteIfNecessary=false, bool duplicatePermissions=true) const
Definition FilingWrapper.cpp:303
bool ExistsOnDisk()
Definition FilingWrapper.cpp:284
bool DeleteOnDisk()
Definition FilingWrapper.cpp:297
bool RenameOnDisk(const TXString &newName)
Definition FilingWrapper.cpp:333
bool GetFileContextAttributes(StorageAttributes &fileAttributes) const
Definition FilingWrapper.cpp:272
bool RevealInOS()
Definition FilingWrapper.cpp:345
bool IsFileReadOnly()
Definition FilingWrapper.cpp:278
TFileIdentifier()
Definition FilingWrapper.cpp:191
TXString GetFileExtension()
Definition FilingWrapper.cpp:218
TXString GetFileNameWithoutExtension()
Definition FilingWrapper.cpp:233
Definition FilingWrapper.h:68
bool RevealInOS()
Definition FilingWrapper.cpp:150
bool IsFolderReadOnly() const
Definition FilingWrapper.cpp:96
bool SetByFullPath(const TXString &fullPath)
Definition FilingWrapper.cpp:64
bool DeleteOnDisk()
Definition FilingWrapper.cpp:123
bool DuplicateOnDisk(const TFolderIdentifier &newFolder, bool overrideIfNecessary=false, TXString *displayProgressDialog=NULL)
Definition FilingWrapper.cpp:144
TXString GetFolderPath() const
Definition FilingWrapper.cpp:58
bool IsSet() const
Definition FilingWrapper.cpp:53
bool CreateOnDisk(const TXString &fullPath)
Definition FilingWrapper.cpp:102
TXString GetPosixFolderPath() const
Definition FilingWrapper.cpp:84
bool GetFolderContextAttributes(StorageAttributes &folderAttributes) const
Definition FilingWrapper.cpp:90
TFolderIdentifier()
Definition FilingWrapper.cpp:39
static ExistenceState ExistsOnDisk(const TXString &fullPath)
Definition FilingWrapper.cpp:156
ExistenceState
Definition FilingWrapper.h:89
@ eFolderExists
Definition FilingWrapper.h:90
@ eFolderDoesNotExists
Definition FilingWrapper.h:91
virtual ~TFolderIdentifier()
Definition FilingWrapper.cpp:49
Definition FilingWrapper.h:134
static TXBaseStorageAccess * CreateStorageAccess(const TFolderIdentifier &baseStorageSpecIdentifier)
Definition FilingWrapper.cpp:352
Definition FilingWrapper.h:45
TXBaseStorageAccess()
Definition FilingWrapper.cpp:24
EStorageOperationError
Definition FilingWrapper.h:58
@ eStorageInvalidParameter
Definition FilingWrapper.h:60
@ eStorageSuccess
Definition FilingWrapper.h:59
EStorageOperationError GetStorageElementTimeData(const EStorageTimeReference eStorageTimeReference, TDateTimeData &timeData) const
Definition FilingWrapper.cpp:32
EStorageTimeReference
Definition FilingWrapper.h:51
@ eStorageTimeLastWritten
Definition FilingWrapper.h:54
@ eStorageTimeCreated
Definition FilingWrapper.h:52
@ eStorageTimeLastAccessed
Definition FilingWrapper.h:53
@ eStorageTimeLastBackup
Definition FilingWrapper.h:55
virtual ~TXBaseStorageAccess()
Definition FilingWrapper.cpp:28
Definition GSString.h:134
Uint32 StorageAttributes
Definition FilingWrapper.h:10
const StorageAttributes kStorageAttrRead
Definition FilingWrapper.h:12
const StorageAttributes kStorageAttrHidden
Definition FilingWrapper.h:16
bool GetFolderWithSpecifer(EFolderSpecifier inWhichFolder, TFolderIdentifier &outFolderID, bool inCreateIfMissing=false)
Definition FilingWrapper.cpp:364
const StorageAttributes kStorageAttrEncrypted
Definition FilingWrapper.h:20
const StorageAttributes kStorageAttrPermRead
Definition FilingWrapper.h:21
const StorageAttributes kStorageAttrArchive
Definition FilingWrapper.h:26
const StorageAttributes kStorageAttrTemporary
Definition FilingWrapper.h:18
const StorageAttributes kStorageAttrDirectory
Definition FilingWrapper.h:27
const StorageAttributes kStorageAttrSystem
Definition FilingWrapper.h:17
const StorageAttributes kStorageAttrPermBrowse
Definition FilingWrapper.h:24
const StorageAttributes kStorageAttrExecute
Definition FilingWrapper.h:14
bool GetFolderAppDataPath(TXString &outPath)
Definition FilingWrapper.cpp:386
const StorageAttributes kStorageAttrPermFlagsValid
Definition FilingWrapper.h:29
const StorageAttributes kStorageAttrPermExecute
Definition FilingWrapper.h:23
const StorageAttributes kStorageAttrPermWrite
Definition FilingWrapper.h:22
const StorageAttributes kStorageAttrWrite
Definition FilingWrapper.h:13
Definition CieColor.h:9
Definition FilingWrapper.h:34
Uint32 fSecond
Definition FilingWrapper.h:40
Uint32 fYear
Definition FilingWrapper.h:35
Uint32 fMinute
Definition FilingWrapper.h:39
Uint32 fMonth
Definition FilingWrapper.h:36
Uint32 fDay
Definition FilingWrapper.h:37
Uint32 fHour
Definition FilingWrapper.h:38