aboutsummaryrefslogtreecommitdiff
path: root/SrcShared/EmDirRef.h
diff options
context:
space:
mode:
Diffstat (limited to 'SrcShared/EmDirRef.h')
-rw-r--r--SrcShared/EmDirRef.h91
1 files changed, 91 insertions, 0 deletions
diff --git a/SrcShared/EmDirRef.h b/SrcShared/EmDirRef.h
new file mode 100644
index 0000000..0cba877
--- /dev/null
+++ b/SrcShared/EmDirRef.h
@@ -0,0 +1,91 @@
+/* -*- mode: C++; tab-width: 4 -*- */
+/* ===================================================================== *\
+ Copyright (c) 2000-2001 Palm, Inc. or its subsidiaries.
+ All rights reserved.
+
+ This file is part of the Palm OS Emulator.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+\* ===================================================================== */
+
+#ifndef EmDirRef_h
+#define EmDirRef_h
+
+#include <string>
+#include <vector>
+
+class EmFileRef;
+class EmDirRef;
+
+typedef vector<EmFileRef> EmFileRefList;
+typedef vector<EmDirRef> EmDirRefList;
+
+class EmDirRef
+{
+ public:
+ EmDirRef (void);
+ EmDirRef (const EmDirRef&);
+ EmDirRef (const char*);
+ EmDirRef (const string&);
+ EmDirRef (const EmDirRef&, const char*);
+ EmDirRef (const EmDirRef&, const string&);
+#if PLATFORM_MAC
+ EmDirRef (const unsigned char*);
+ EmDirRef (const FSSpec&);
+ EmDirRef (AliasHandle);
+#endif
+ ~EmDirRef (void);
+
+ EmDirRef& operator= (const EmDirRef&);
+
+ Bool IsSpecified (void) const;
+ Bool Exists (void) const;
+ void Create (void) const;
+
+ string GetName (void) const;
+ EmDirRef GetParent (void) const;
+ string GetFullPath (void) const;
+
+ void GetChildren (EmFileRefList*, EmDirRefList*) const;
+
+ bool operator== (const EmDirRef&) const;
+ bool operator!= (const EmDirRef&) const;
+ bool operator< (const EmDirRef&) const;
+ bool operator> (const EmDirRef&) const;
+
+ bool FromPrefString (const string&);
+ string ToPrefString (void) const;
+
+ static EmDirRef GetEmulatorDirectory (void);
+ static EmDirRef GetPrefsDirectory (void);
+
+#if PLATFORM_MAC
+ public:
+ // Needed in order to convert an EmDirRef into something
+ // that PowerPlant or Mac OS can deal with.
+
+ FSSpec GetFSSpec (void) const;
+ AliasHandle GetAlias (void) const;
+
+ private:
+ void UpdateAlias (void);
+ void UpdateSpec (void);
+
+ AliasHandle fDirAlias;
+ FSSpec fDirSpec;
+#endif
+
+#if PLATFORM_WINDOWS || PLATFORM_UNIX
+ private:
+ void MaybeAppendSlash (void);
+ void MaybeResolveLink (void);
+
+ private:
+ string fDirPath;
+#endif
+};
+
+#endif /* EmDirRef_h */