home *** CD-ROM | disk | FTP | other *** search
- #ifndef CPP_DOS_ARGUMENTS_H
- #define CPP_DOS_ARGUMENTS_H
-
- // CLI Argumente Auswertung
- //
- // Autor: Jochen Becher
- //
- // Historie:
- // Version 1.0 am 19. Februar 94
-
- #ifndef DOS_RDARGS_H
- #include <dos/rdargs.h>
- #endif
-
- #ifndef CPP_DOS_DOS_H
- #include <classes/dos/dos.h>
- #endif
-
- #ifndef CPP_EXCEPTIONS_EXCEPTIONS_H
- #include <classes/exceptions/exceptions.h>
- #endif
-
- class RDArgsC : public DosObjectC {
- public:
- RDArgsC(struct TagItem *tags = NULL) throw (DosObjectX, MemoryX)
- : DosObjectC(DOS_RDARGS,tags) { };
- RDArgsC(Tag tag1type, ...) throw (DosObjectX, MemoryX)
- : DosObjectC(DOS_RDARGS,(struct TagItem *) &tag1type) { };
- struct RDArgs *object() const
- { return (struct RDArgs *) DosObjectC::object(); };
- };
-
- class ArgsC {
- friend class ArgsMCursorC;
- public:
- ArgsC(STRPTR argTemplate, struct RDArgs *rdargs = NULL) throw (RDArgsX, MemoryX);
- ArgsC(STRPTR argTemplate, RDArgsC &) throw (RDArgsX, MemoryX);
- ArgsC(const ArgsC &) throw (RDArgsX, MemoryX);
- ~ArgsC();
- ArgsC &operator= (const ArgsC &) throw (RDArgsX, MemoryX);
- STRPTR getStr(LONG i, STRPTR dfault = NULL) const;
- STRPTR getStr(STRPTR keyword, STRPTR dfault = NULL) const;
- LONG getNumber(LONG i, LONG dfault = 0) const;
- LONG getNumber(STRPTR keyword, LONG dfault = 0) const;
- BOOL getSwitch(LONG i) const;
- BOOL getSwitch(STRPTR keyword) const;
- VOID free();
- protected:
- VOID read(STRPTR argTemplate, struct RDArgs *) throw (RDArgsX, MemoryX);
- private:
- struct RDArgs *args;
- STRPTR templ;
- ULONG argcount;
- ULONG *argarray;
- };
-
- class ArgsMCursorC {
- public:
- ArgsMCursorC(ArgsC &, LONG i);
- ArgsMCursorC(ArgsC &, STRPTR keyword);
- ArgsMCursorC(const ArgsMCursorC &);
- ArgsMCursorC &operator = (const ArgsMCursorC &);
- ULONG count() const;
- VOID first();
- BOOL isDone() const;
- VOID next();
- STRPTR itemStr() const;
- LONG itemNumber() const;
- private:
- ULONG *marg;
- ULONG *arg;
- };
-
- #endif
-