summaryrefslogtreecommitdiff
path: root/libs/fsScan/include/File.h
diff options
context:
space:
mode:
authorgeronimo <geronimo013@gmx.de>2012-07-25 06:38:28 +0200
committergeronimo <geronimo013@gmx.de>2012-07-25 06:38:28 +0200
commit774e09eef2d7761814e6f19fb462eb0fdc74f2d7 (patch)
treeca0c4e06afdb99139c7953a8dd5576a3bcd15e23 /libs/fsScan/include/File.h
parentab7186c6c116629983dc506c4b53794026518455 (diff)
downloadcmp-774e09eef2d7761814e6f19fb462eb0fdc74f2d7.tar.gz
cmp-774e09eef2d7761814e6f19fb462eb0fdc74f2d7.tar.bz2
worked out different file class and improved media handling
Diffstat (limited to 'libs/fsScan/include/File.h')
-rw-r--r--libs/fsScan/include/File.h32
1 files changed, 17 insertions, 15 deletions
diff --git a/libs/fsScan/include/File.h b/libs/fsScan/include/File.h
index 4883cdd..587d99c 100644
--- a/libs/fsScan/include/File.h
+++ b/libs/fsScan/include/File.h
@@ -1,42 +1,44 @@
/**
* ======================== legal notice ======================
- *
+ *
* File: File.h
- * Created: 21. Juli 2012, 12:41
+ * Created: 21. Juli 2012, 12
* Author: <a href="mailto:geronimo013@gmx.de">Geronimo</a>
* Project: libfsScan: mediatypes and filesystem scanning
- *
+ *
* CMP - compound media player
- *
+ *
* is a client/server mediaplayer intended to play any media from any workstation
* without the need to export or mount shares. cmps is an easy to use backend
* with a (ready to use) HTML-interface. Additionally the backend supports
* authentication via HTTP-digest authorization.
* cmpc is a client with vdr-like osd-menues.
- *
+ *
* Copyright (c) 2012 Reinhard Mantey, some rights reserved!
* published under Creative Commons by-sa
* For details see http://creativecommons.org/licenses/by-sa/3.0/
- *
+ *
* The cmp project's homepage is at http://projects.vdr-developer.org/projects/cmp
- *
+ *
* --------------------------------------------------------------
*/
#ifndef FILE_H
#define FILE_H
+#include <stddef.h>
#include <sys/types.h>
class cFileSystem;
class cFileRepresentation;
class cStringBuilder;
-class cFile
-{
+class cFile {
public:
- cFile(const char *Path);
+ cFile(const char *Path = NULL);
+ cFile(const cFile &other);
cFile(const cFile &Parent, const char *RelativePath);
virtual ~cFile();
+ cFile &operator =(const cFile &other);
bool CanRead(void) const;
bool CanWrite(void) const;
bool CanExecute(void) const;
@@ -47,11 +49,11 @@ public:
off64_t Size(void) const;
ulong LastModified(void) const;
const char *Name(void) const;
-
- char *AbsolutePath(void) const;
- cFile *Parent(void) const;
- void VisitFiles(int (*cb)(cFile *, const char *));
-
+ void SetVirtualRoot(bool isRoot = true);
+ const char *AbsolutePath(void) const; ///< returns an allocated string
+ char *toURI(void) const; ///< returns an allocated string
+ cFile *Parent(void) const; ///< allocates a new file instance!
+ void VisitFiles(int (*cb)(void *, cFile *, const char *), void *opaque);
static void Cleanup(void);
private: