aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorFritz Elfert <felfert@to.com>2001-02-01 02:03:25 +0000
committerFritz Elfert <felfert@to.com>2001-02-01 02:03:25 +0000
commit6c9647c1866b49d61ea3ce7d9201450fa0497b52 (patch)
treed240f512fb1a5d72f5b0fe3ad4b60c937cfd8274 /lib
parent320ed6edbbde5936ac07247896fbc2f51505a469 (diff)
downloadplptools-6c9647c1866b49d61ea3ce7d9201450fa0497b52.tar.gz
plptools-6c9647c1866b49d61ea3ce7d9201450fa0497b52.tar.bz2
plptools-6c9647c1866b49d61ea3ce7d9201450fa0497b52.zip
More cleanup:
- Removed bool.h and references to it everywhere. This is checked now in ./configure and the stuff went into acconfig.h - Replaced ugly bufferStore-based method of returning directory entries from rfsv::readdir() by a cleaner way. (A new, separate class PlpDirent is returned now.) With the old implementation, the caller has to know about the layout of the entries. Also, the old implementation was not 64bit aware. - Similar replacement done for rfsv::dir(). This now returns the entries in a standard STL container (deque) instead of a bufferArray. - Started renaming #include statements for standard library headers from the old <xxx.h> form to the new recommended <xxx> form.
Diffstat (limited to 'lib')
-rw-r--r--lib/Makefile.am6
-rw-r--r--lib/bool.h20
-rw-r--r--lib/bufferarray.h4
-rw-r--r--lib/bufferstore.h3
-rw-r--r--lib/iowatch.cc1
-rw-r--r--lib/iowatch.h2
-rw-r--r--lib/plpdirent.h110
-rw-r--r--lib/ppsocket.cc1
-rw-r--r--lib/ppsocket.h1
-rw-r--r--lib/psitime.cc17
-rw-r--r--lib/psitime.h10
-rw-r--r--lib/rfsv.h51
-rw-r--r--lib/rfsv16.cc33
-rw-r--r--lib/rfsv16.h4
-rw-r--r--lib/rfsv32.cc99
-rw-r--r--lib/rfsv32.h8
-rw-r--r--lib/rfsvfactory.cc1
-rw-r--r--lib/rpcs.cc1
-rw-r--r--lib/rpcs16.cc1
-rw-r--r--lib/rpcs32.cc1
-rw-r--r--lib/rpcsfactory.cc1
21 files changed, 212 insertions, 163 deletions
diff --git a/lib/Makefile.am b/lib/Makefile.am
index af983e3..367fbb7 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -5,10 +5,10 @@ lib_LTLIBRARIES = libplp.la
libplp_la_LDFLAGS = --debug -version-info 1:1:0
libplp_la_SOURCES = bufferarray.cc bufferstore.cc iowatch.cc ppsocket.cc \
rfsv16.cc rfsv32.cc rfsvfactory.cc log.cc rfsv.cc rpcs32.cc rpcs16.cc \
- rpcs.cc rpcsfactory.cc psitime.cc Enum.cc
-pkginclude_HEADERS = bool.h bufferarray.h bufferstore.h iowatch.h ppsocket.h \
+ rpcs.cc rpcsfactory.cc psitime.cc Enum.cc plpdirent.cc
+pkginclude_HEADERS = bufferarray.h bufferstore.h iowatch.h ppsocket.h \
rfsv.h rfsv16.h rfsv32.h rfsvfactory.h log.h rpcs32.h rpcs16.h rpcs.h \
- rpcsfactory.h psitime.h Enum.h
+ rpcsfactory.h psitime.h Enum.h plpdirent.h
maintainer-clean-local:
rm -f Makefile.in
diff --git a/lib/bool.h b/lib/bool.h
deleted file mode 100644
index 7525d6c..0000000
--- a/lib/bool.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef _bool_h_
-#define _bool_h_
-
-#ifndef __GNUC__
-
-#ifndef bool
-#define bool int
-#endif
-
-#ifndef true
-#define true 1
-#endif
-
-#ifndef false
-#define false 0
-#endif
-
-#endif
-
-#endif
diff --git a/lib/bufferarray.h b/lib/bufferarray.h
index b43dcbd..358d428 100644
--- a/lib/bufferarray.h
+++ b/lib/bufferarray.h
@@ -1,7 +1,9 @@
#ifndef _bufferarray_h
#define _bufferarray_h
-#include "bool.h"
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
class bufferStore;
/**
diff --git a/lib/bufferstore.h b/lib/bufferstore.h
index 494d0af..65f6607 100644
--- a/lib/bufferstore.h
+++ b/lib/bufferstore.h
@@ -1,7 +1,6 @@
#ifndef _bufferstore_h
#define _bufferstore_h
-#include "bool.h"
class ostream;
/**
@@ -210,7 +209,7 @@ private:
};
inline bool bufferStore::empty() const {
- return (len-start) == 0;
+ return (len - start) == 0;
}
#endif
diff --git a/lib/iowatch.cc b/lib/iowatch.cc
index df7be8e..e3c86fc 100644
--- a/lib/iowatch.cc
+++ b/lib/iowatch.cc
@@ -26,7 +26,6 @@
#include <stream.h>
#include <memory.h>
-#include "bool.h"
#include "iowatch.h"
IOWatch::IOWatch() {
diff --git a/lib/iowatch.h b/lib/iowatch.h
index a578e05..12abb1f 100644
--- a/lib/iowatch.h
+++ b/lib/iowatch.h
@@ -1,8 +1,6 @@
#ifndef _iowatch_h
#define _iowatch_h
-#include "bool.h"
-
/**
* A simple wrapper for select()
*
diff --git a/lib/plpdirent.h b/lib/plpdirent.h
new file mode 100644
index 0000000..f29cc74
--- /dev/null
+++ b/lib/plpdirent.h
@@ -0,0 +1,110 @@
+#ifndef _PLP_DIRENT_H_
+#define _PLP_DIRENT_H_
+
+#include <string>
+#include <psitime.h>
+#include <rfsv.h>
+
+/**
+ * A class, representing a directory entry of the Psion.
+ * Objects of this type are used by @ref rfsv::readdir and
+ * @ref rfsv::dir for returning the entries of a directory.
+ */
+class PlpDirent {
+ friend class rfsv32;
+ friend class rfsv16;
+
+public:
+ /**
+ * Default constructor
+ */
+ PlpDirent() : size(0), attr(0), name(""), time(0L), attrstr("") { };
+
+ /**
+ * A copy constructor.
+ * Mainly used by STL container classes.
+ *
+ * @param d The object to be used as initializer.
+ */
+ PlpDirent(const PlpDirent &d);
+
+ /**
+ * Default destructor.
+ */
+ ~PlpDirent() {};
+
+ /**
+ * Retrieves the file size of a directory entry.
+ *
+ * @returns The file size in bytes.
+ */
+ long getSize();
+
+ /**
+ * Retrieves the file attributes of a directory entry.
+ *
+ * @returns The generic attributes ( @ref rfsv:file_attribs ).
+ */
+ long getAttr();
+
+ /**
+ * Retrieves the UIDs of a directory entry.
+ * This method returns always 0 with a Series3.
+ *
+ * @param uididx The index of the UID to retrieve (0 .. 2).
+ *
+ * @returns The selected UID or 0 if the index is out of range.
+ */
+ long getUID(int uididx);
+
+ /**
+ * Retrieve the file name of a directory entry.
+ *
+ * @returns The name of the file.
+ */
+ const char *getName();
+
+ /**
+ * Retrieve the modification time of a directory entry.
+ *
+ * @returns A @ref PsiTime object, representing the time.
+ */
+ PsiTime getPsiTime();
+
+ /**
+ * Set the file name of a directory entry.
+ * This is currently used in plpbackup only for
+ * changing the name to the full path. It does NOT
+ * change the name of the corresponding file on
+ * the Psion.
+ *
+ * @param str The new name of the file.
+ */
+ void setName(const char *str);
+
+ /**
+ * Assignment opreator
+ * Mainly used by STL container classes.
+ *
+ * @param e The new value to assign.
+ *
+ * @returns The modified object.
+ */
+ PlpDirent &operator=(const PlpDirent &e);
+
+ /**
+ * Prints the object contents.
+ * The output is in human readable similar to the
+ * output of a "ls" command.
+ */
+ friend ostream &operator<<(ostream &o, const PlpDirent &e);
+
+private:
+ long size;
+ long attr;
+ long uid[3];
+ PsiTime time;
+ string attrstr;
+ string name;
+};
+#endif
diff --git a/lib/ppsocket.cc b/lib/ppsocket.cc
index 2140cf8..cfaa429 100644
--- a/lib/ppsocket.cc
+++ b/lib/ppsocket.cc
@@ -35,7 +35,6 @@
#include <netinet/in.h>
#include <arpa/inet.h>
-#include "bool.h"
#include "bufferstore.h"
#include "ppsocket.h"
diff --git a/lib/ppsocket.h b/lib/ppsocket.h
index 3cd288a..f36344c 100644
--- a/lib/ppsocket.h
+++ b/lib/ppsocket.h
@@ -26,7 +26,6 @@
extern int errno;
-#include "bool.h"
class bufferStore;
class ppsocket
diff --git a/lib/psitime.cc b/lib/psitime.cc
index 11e16e0..bb4ea78 100644
--- a/lib/psitime.cc
+++ b/lib/psitime.cc
@@ -43,6 +43,14 @@ PsiTime::PsiTime(struct timeval *_utv = 0L, struct timezone *_utz = 0L) {
unix2psi();
}
+PsiTime::PsiTime(const PsiTime &t) {
+ utv = t.utv;
+ utz = t.utz;
+ ptv = t.ptv;
+ ptz = t.ptz;
+ ptzValid = t.ptzValid;
+}
+
PsiTime::~PsiTime() {
}
@@ -104,6 +112,15 @@ const unsigned long PsiTime::getPsiTimeHi(void) {
return ptv.tv_high;
}
+PsiTime &PsiTime::operator=(const PsiTime &t) {
+ utv = t.utv;
+ utz = t.utz;
+ ptv = t.ptv;
+ ptz = t.ptz;
+ ptzValid = t.ptzValid;
+ return *this;
+}
+
ostream &operator<<(ostream &s, const PsiTime &t) {
const char *fmt = "%c";
char buf[100];
diff --git a/lib/psitime.h b/lib/psitime.h
index 9755473..7072711 100644
--- a/lib/psitime.h
+++ b/lib/psitime.h
@@ -133,6 +133,11 @@ public:
PsiTime(void);
/**
+ * A copy-constructor
+ */
+ PsiTime(const PsiTime &t);
+
+ /**
* Destroys the instance.
*/
~PsiTime();
@@ -231,6 +236,11 @@ public:
*/
friend ostream &operator<<(ostream &s, const PsiTime &t);
+ /**
+ * Assignment operator
+ */
+ PsiTime &operator=(const PsiTime &t);
+
enum zone {
PSI_TZ_NONE = 0,
PSI_TZ_EUROPEAN = 1,
diff --git a/lib/rfsv.h b/lib/rfsv.h
index c6dafb5..b9279d4 100644
--- a/lib/rfsv.h
+++ b/lib/rfsv.h
@@ -1,12 +1,14 @@
#ifndef _rfsv_h_
#define _rfsv_h_
+#include <deque>
#include "Enum.h"
-#include "psitime.h"
+#include "plpdirent.h"
#include "bufferstore.h"
+typedef deque<class PlpDirent> PlpDir;
+
class ppsocket;
-class bufferArray;
const long RFSV_SENDLEN = 2000;
@@ -190,8 +192,8 @@ class rfsv {
* @param attr The open mode. Use @ref opMode to convert a combination of @ref open_flags
* and @ref open_mode to the machine-specific representation.
* @param name The name of the file to open.
- * @param handle The handle for usage with @ref fread,
- * @ref frwrite, @ref fseek @ref fclose is returned here.
+ * @param handle The handle for usage with @ref fread ,
+ * @ref frwrite , @ref fseek or @ref fclose is returned here.
*
* @returns A Psion error code (One of enum @ref #errs ).
*/
@@ -201,8 +203,8 @@ class rfsv {
* Creates a unique temporary file.
* The file is opened for reading and writing.
*
- * @param handle The handle for usage with @ref fread,
- * @ref frwrite, @ref fseek @ref fclose is returned here.
+ * @param handle The handle for usage with @ref fread ,
+ * @ref frwrite , @ref fseek or @ref fclose is returned here.
* @param name The name of the temporary file is returned here.
*
* @returns A Psion error code (One of enum @ref #errs ).
@@ -215,8 +217,8 @@ class rfsv {
* @param attr The open mode. Use @ref opMode to convert a combination of @ref open_flags
* and @ref open_mode to the machine-specific representation.
* @param name The name of the file to create.
- * @param handle The handle for usage with @ref fread,
- * @ref frwrite, @ref fseek @ref fclose is returned here.
+ * @param handle The handle for usage with @ref fread ,
+ * @ref frwrite , @ref fseek or @ref fclose is returned here.
*
* @returns A Psion error code (One of enum @ref #errs ).
*/
@@ -228,8 +230,8 @@ class rfsv {
* @param attr The open mode. Use @ref opMode to convert a combination of @ref open_flags
* and @ref open_mode to the machine-specific representation.
* @param name The name of the file to create.
- * @param handle The handle for usage with @ref fread,
- * @ref frwrite, @ref fseek @ref fclose is returned here.
+ * @param handle The handle for usage with @ref fread ,
+ * @ref frwrite , @ref fseek or @ref fclose is returned here.
*
* @returns A Psion error code (One of enum @ref #errs ).
*/
@@ -237,7 +239,7 @@ class rfsv {
/**
* Close a file on the Psion whih was previously opened/created by using
- * @ref fopen, @ref fcreatefile, @ref freplacefile or @ref mktemp.
+ * @ref fopen , @ref fcreatefile , @ref freplacefile or @ref mktemp .
*
* @param handle A valid file handle.
*/
@@ -247,14 +249,14 @@ class rfsv {
* Reads a directory on the Psion.
* The returned array of @ref bufferArray contains one @ref bufferStore element
* for each directory entry. For a description of the layout of the elements
- * in each directory entry, see @ref readdir.
+ * in each directory entry, see @ref readdir .
*
* @param name The name of the directory
- * @param ret Array of @ref bufferStore containing information for directory entries.
+ * @param ret An STL deque of @ref PlpDirent entries.
*
* @returns A Psion error code (One of enum @ref #errs ).
*/
- virtual Enum<errs> dir(const char * const name, bufferArray &ret) = 0;
+ virtual Enum<errs> dir(const char * const name, PlpDir &ret) = 0;
/**
* Retrieves the modification time of a file on the Psion.
@@ -473,9 +475,9 @@ class rfsv {
* Open a directory for reading with readdir.
*
* @param attr A combination of PSI_A_.. flags, representing the desired types
- * of entries to be returned when calling @ref readdir.
+ * of entries to be returned when calling @ref readdir .
* @param name The name of the directory
- * @param handle A handle to be used with @ref readdir and @ref closedir.
+ * @param handle A handle to be used with @ref readdir and @ref closedir .
*
* @returns A Psion error code (One of enum @ref #errs ).
*/
@@ -484,23 +486,14 @@ class rfsv {
/**
* Read directory entries.
* This method reads entries of a directory, previously
- * opened with @ref opendir.
+ * opened with @ref opendir .
*
- * The entry is returned in the buff parameter as follows:
- * <pre>
- * offset size value
- * 0 4 Pointer to a PsiTime object, representing the file's modification.
- * 4 4 Size in bytes.
- * 8 4 Attributes.
- * 12 ? Zero terminated file name.
- * </pre>
- *
- * @param handle A handle, obtained by calling @see opendir.
- * @param buff The entry information is returned here.
+ * @param handle A handle, obtained by calling @ref opendir .
+ * @param entry The entry information is returned here.
*
* @returns A Psion error code (One of enum @ref #errs ).
*/
- virtual Enum<errs> readdir(rfsvDirhandle &handle, bufferStore &buff) = 0;
+ virtual Enum<errs> readdir(rfsvDirhandle &handle, PlpDirent &entry) = 0;
/**
* Close a directory, previously opened with @ref opendir.
diff --git a/lib/rfsv16.cc b/lib/rfsv16.cc
index fdec2e7..26a153b 100644
--- a/lib/rfsv16.cc
+++ b/lib/rfsv16.cc
@@ -34,7 +34,6 @@
#include <time.h>
#include <string>
-#include "bool.h"
#include "rfsv16.h"
#include "bufferstore.h"
#include "ppsocket.h"
@@ -181,7 +180,7 @@ closedir(rfsvDirhandle &dH) {
}
Enum<rfsv::errs> rfsv16::
-readdir(rfsvDirhandle &dH, bufferStore &s) {
+readdir(rfsvDirhandle &dH, PlpDirent &e) {
Enum<rfsv::errs> res = E_PSI_GEN_NONE;
if (dH.b.getLen() < 17) {
@@ -198,32 +197,30 @@ readdir(rfsvDirhandle &dH, bufferStore &s) {
cerr << "dir: not version 2" << endl;
return E_PSI_GEN_FAIL;
}
- long attr = attr2std((long)dH.b.getWord(2));
- long size = dH.b.getDWord(4);
- PsiTime *date = new PsiTime((time_t)dH.b.getDWord(8));
- const char *name = dH.b.getString(16);
-
- dH.b.discardFirstBytes(17+strlen(name));
-
- s.init();
- s.addDWord((unsigned long)date);
- s.addDWord(size);
- s.addDWord(attr);
- s.addStringT(name);
+ e.attr = attr2std((long)dH.b.getWord(2));
+ e.size = dH.b.getDWord(4);
+ e.time = PsiTime((time_t)dH.b.getDWord(8));
+ e.name = dH.b.getString(16);
+ e.uid[0] = e.uid[1] = e.uid[2] = 0;
+ e.attrstr = attr2String(e.attr);
+
+ dH.b.discardFirstBytes(17 + e.name.length());
+
}
return res;
}
Enum<rfsv::errs> rfsv16::
-dir(const char *name, bufferArray &files)
+dir(const char *name, PlpDir &files)
{
rfsvDirhandle h;
+ files.clear();
Enum<rfsv::errs> res = opendir(PSI_A_HIDDEN | PSI_A_SYSTEM | PSI_A_DIR, name, h);
while (res == E_PSI_GEN_NONE) {
- bufferStore b;
- res = readdir(h, b);
+ PlpDirent e;
+ res = readdir(h, e);
if (res == E_PSI_GEN_NONE)
- files += b;
+ files.push_back(e);
}
closedir(h);
if (res == E_PSI_FILE_EOF)
diff --git a/lib/rfsv16.h b/lib/rfsv16.h
index 852d816..d0eda32 100644
--- a/lib/rfsv16.h
+++ b/lib/rfsv16.h
@@ -12,7 +12,7 @@ public:
Enum<rfsv::errs> fcreatefile(const long, const char * const, long &);
Enum<rfsv::errs> freplacefile(const long, const char * const, long &);
Enum<rfsv::errs> fclose(const long);
- Enum<rfsv::errs> dir(const char * const, bufferArray &);
+ Enum<rfsv::errs> dir(const char * const, PlpDir &);
Enum<rfsv::errs> fgetmtime(const char * const, PsiTime &);
Enum<rfsv::errs> fsetmtime(const char * const, const PsiTime);
Enum<rfsv::errs> fgetattr(const char * const, long &);
@@ -33,7 +33,7 @@ public:
Enum<rfsv::errs> rename(const char * const, const char * const);
Enum<rfsv::errs> remove(const char * const);
Enum<rfsv::errs> opendir(const long, const char * const, rfsvDirhandle &);
- Enum<rfsv::errs> readdir(rfsvDirhandle &, bufferStore &);
+ Enum<rfsv::errs> readdir(rfsvDirhandle &, PlpDirent &);
Enum<rfsv::errs> closedir(rfsvDirhandle &);
Enum<rfsv::errs> setVolumeName(const char, const char * const);
diff --git a/lib/rfsv32.cc b/lib/rfsv32.cc
index 5a23c08..8808879 100644
--- a/lib/rfsv32.cc
+++ b/lib/rfsv32.cc
@@ -25,16 +25,16 @@
#include <stream.h>
#include <stdlib.h>
-#include <fstream.h>
-#include <iomanip.h>
+#include <fstream>
+#include <iomanip>
#include <time.h>
-#include <string.h>
+#include <string>
-#include "bool.h"
#include "rfsv32.h"
#include "bufferstore.h"
#include "ppsocket.h"
#include "bufferarray.h"
+#include "plpdirent.h"
rfsv32::rfsv32(ppsocket * _skt)
{
@@ -126,7 +126,7 @@ fopendir(const long attr, const char * const name, long &handle)
{
bufferStore a;
char *n = convertSlash(name);
- a.addDWord(attr);
+ a.addDWord(attr | EPOC_ATTR_GETUID);
a.addWord(strlen(n));
a.addString(n);
free(n);
@@ -163,7 +163,7 @@ closedir(rfsvDirhandle &dH) {
}
Enum<rfsv::errs> rfsv32::
-readdir(rfsvDirhandle &dH, bufferStore &s) {
+readdir(rfsvDirhandle &dH, PlpDirent &e) {
Enum<rfsv::errs> res = E_PSI_GEN_NONE;
if (dH.b.getLen() < 17) {
@@ -174,23 +174,21 @@ readdir(rfsvDirhandle &dH, bufferStore &s) {
res = getResponse(dH.b);
}
if ((res == E_PSI_GEN_NONE) && (dH.b.getLen() > 16)) {
- long shortLen = dH.b.getDWord(0);
- long attributes = attr2std(dH.b.getDWord(4));
- long size = dH.b.getDWord(8);
- // long uid1 = dH.b.getDWord(20);
- // long uid2 = dH.b.getDWord(24);
- // long uid3 = dH.b.getDWord(28);
- long longLen = dH.b.getDWord(32);
- PsiTime *date = new PsiTime(dH.b.getDWord(16), dH.b.getDWord(12));
-
- s.init();
- s.addDWord((unsigned long)date);
- s.addDWord(size);
- s.addDWord(attributes);
+ long shortLen = dH.b.getDWord(0);
+ long longLen = dH.b.getDWord(32);
+
+ e.attr = attr2std(dH.b.getDWord(4));
+ e.size = dH.b.getDWord(8);
+ e.uid[0] = dH.b.getDWord(20);
+ e.uid[1] = dH.b.getDWord(24);
+ e.uid[2] = dH.b.getDWord(28);
+ e.time = PsiTime(dH.b.getDWord(16), dH.b.getDWord(12));
+ e.name = "";
+ e.attrstr = string(attr2String(e.attr));
+
int d = 36;
for (int i = 0; i < longLen; i++, d++)
- s.addByte(dH.b.getByte(d));
- s.addByte(0);
+ e.name += dH.b.getByte(d);
while (d % 4)
d++;
d += shortLen;
@@ -202,70 +200,21 @@ readdir(rfsvDirhandle &dH, bufferStore &s) {
}
Enum<rfsv::errs> rfsv32::
-dir(const char *name, bufferArray &files)
+dir(const char *name, PlpDir &files)
{
rfsvDirhandle h;
+ files.clear();
Enum<rfsv::errs> res = opendir(PSI_A_HIDDEN | PSI_A_SYSTEM | PSI_A_DIR, name, h);
while (res == E_PSI_GEN_NONE) {
- bufferStore b;
- res = readdir(h, b);
+ PlpDirent e;
+ res = readdir(h, e);
if (res == E_PSI_GEN_NONE)
- files += b;
+ files.push_back(e);
}
closedir(h);
if (res == E_PSI_FILE_EOF)
res = E_PSI_GEN_NONE;
return res;
-#if 0
- long handle;
- Enum<rfsv::errs> res = fopendir(EPOC_ATTR_HIDDEN | EPOC_ATTR_SYSTEM | EPOC_ATTR_DIRECTORY, name, handle);
- if (res != E_PSI_GEN_NONE)
- return res;
-
- while (1) {
- bufferStore a;
- a.addDWord(handle);
- if (!sendCommand(READ_DIR, a))
- return E_PSI_FILE_DISC;
- res = getResponse(a);
- if (res != E_PSI_GEN_NONE)
- break;
- while (a.getLen() > 16) {
- long shortLen = a.getDWord(0);
- long attributes = attr2std(a.getDWord(4));
- long size = a.getDWord(8);
- //unsigned long modLow = a.getDWord(12);
- //unsigned long modHi = a.getDWord(16);
- // long uid1 = a.getDWord(20);
- // long uid2 = a.getDWord(24);
- // long uid3 = a.getDWord(28);
- long longLen = a.getDWord(32);
-
- //long date = micro2time(modHi, modLow);
- PsiTime *date = new PsiTime(a.getDWord(16), a.getDWord(12));
-
- bufferStore s;
- s.addDWord((unsigned long)date);
- s.addDWord(size);
- s.addDWord(attributes);
- int d = 36;
- for (int i = 0; i < longLen; i++, d++)
- s.addByte(a.getByte(d));
- s.addByte(0);
- while (d % 4)
- d++;
- files += s;
- d += shortLen;
- while (d % 4)
- d++;
- a.discardFirstBytes(d);
- }
- }
- if (res == E_PSI_FILE_EOF)
- res = E_PSI_GEN_NONE;
- fclose(handle);
- return res;
-#endif
}
long rfsv32::
diff --git a/lib/rfsv32.h b/lib/rfsv32.h
index fb4c624..2ef584b 100644
--- a/lib/rfsv32.h
+++ b/lib/rfsv32.h
@@ -2,13 +2,14 @@
#define _rfsv32_h_
#include "rfsv.h"
+#include "plpdirent.h"
class rfsv32 : public rfsv {
public:
rfsv32(ppsocket *);
- Enum<rfsv::errs> dir(const char * const, bufferArray &);
+ Enum<rfsv::errs> dir(const char * const, PlpDir &);
Enum<rfsv::errs> dircount(const char * const, long &);
Enum<rfsv::errs> copyFromPsion(const char * const, const char * const, void *, cpCallback_t);
Enum<rfsv::errs> copyToPsion(const char * const, const char * const, void *, cpCallback_t);
@@ -35,7 +36,7 @@ public:
Enum<rfsv::errs> devlist(long &);
Enum<rfsv::errs> devinfo(const int, long &, long &, long &, long &, char * const);
Enum<rfsv::errs> opendir(const long, const char * const, rfsvDirhandle &);
- Enum<rfsv::errs> readdir(rfsvDirhandle &, bufferStore &);
+ Enum<rfsv::errs> readdir(rfsvDirhandle &, PlpDirent &);
Enum<rfsv::errs> closedir(rfsvDirhandle &);
Enum<rfsv::errs> setVolumeName(const char, const char * const);
long opMode(const long);
@@ -52,7 +53,8 @@ private:
EPOC_ATTR_NORMAL = 0x0080,
EPOC_ATTR_TEMPORARY = 0x0100,
EPOC_ATTR_COMPRESSED = 0x0800,
- EPOC_ATTR_MASK = 0x09f7 /* All of the above */
+ EPOC_ATTR_MASK = 0x09f7, /* All of the above */
+ EPOC_ATTR_GETUID = 0x10000000 /* Deliver UIDs on dir listing */
};
enum open_mode {
diff --git a/lib/rfsvfactory.cc b/lib/rfsvfactory.cc
index a0d8480..12bd623 100644
--- a/lib/rfsvfactory.cc
+++ b/lib/rfsvfactory.cc
@@ -29,7 +29,6 @@
#include <time.h>
#include <string.h>
-#include "bool.h"
#include "rfsv.h"
#include "rfsv16.h"
#include "rfsv32.h"
diff --git a/lib/rpcs.cc b/lib/rpcs.cc
index d93fad0..837f235 100644
--- a/lib/rpcs.cc
+++ b/lib/rpcs.cc
@@ -25,7 +25,6 @@
#include <time.h>
#include <string.h>
-#include "bool.h"
#include "rpcs.h"
#include "bufferstore.h"
#include "ppsocket.h"
diff --git a/lib/rpcs16.cc b/lib/rpcs16.cc
index 6e196fc..0a3121b 100644
--- a/lib/rpcs16.cc
+++ b/lib/rpcs16.cc
@@ -25,7 +25,6 @@
#include <time.h>
#include <string.h>
-#include "bool.h"
#include "rpcs16.h"
#include "bufferstore.h"
#include "ppsocket.h"
diff --git a/lib/rpcs32.cc b/lib/rpcs32.cc
index 2175ef0..7a7982f 100644
--- a/lib/rpcs32.cc
+++ b/lib/rpcs32.cc
@@ -26,7 +26,6 @@
#include <time.h>
#include <string.h>
-#include "bool.h"
#include "rpcs32.h"
#include "bufferstore.h"
#include "bufferarray.h"
diff --git a/lib/rpcsfactory.cc b/lib/rpcsfactory.cc
index 869c6c5..091f12a 100644
--- a/lib/rpcsfactory.cc
+++ b/lib/rpcsfactory.cc
@@ -30,7 +30,6 @@
#include <time.h>
#include <string.h>
-#include "bool.h"
#include "rpcs16.h"
#include "rpcs32.h"
#include "rpcsfactory.h"