Changeset 3548


Ignore:
Timestamp:
Aug 26, 2007, 12:06:53 AM (18 years ago)
Author:
bird
Message:

kRdrBuf - a buffered kRdr wrapper.

Location:
trunk/kStuff
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/kStuff/include/k/kErrors.h

    r3544 r3548  
    7474/** The specified file was not found. */
    7575#define KERR_FILE_NOT_FOUND                             (KERR_FILE_SYSTEM_AND_IO_BASE + 0)
     76/** End of file. */
     77#define KERR_EOF                                        (KERR_FILE_SYSTEM_AND_IO_BASE + 1)
    7678/** @} */
    7779
     
    8082 * @{ */
    8183/** The base of the kDbg specific status codes. */
    82 #define KDBG_ERR_BASE                                   (KERR_FILE_SYSTEM_AND_IO_BASE + 1)
     84#define KDBG_ERR_BASE                                   (KERR_FILE_SYSTEM_AND_IO_BASE + 2)
    8385/** The (module) format isn't known to use. */
    8486#define KDBG_ERR_UNKOWN_FORMAT                          (KDBG_ERR_BASE + 0)
     
    9698#define KRDR_ERR_BASE                                   (KDBG_ERR_BASE + 4)
    9799/** The file reader can't take more concurrent mappings. */
    98 #define KRDR_ERR_TOO_MANY_MAPPINGS                      (KRDR_ERR_BASE + 59)
     100#define KRDR_ERR_TOO_MANY_MAPPINGS                      (KRDR_ERR_BASE + 0)
     101/** The pRdr instance passed to a kRdrBuf* API isn't a buffered instance. */
     102#define KRDR_ERR_NOT_BUFFERED_RDR                       (KRDR_ERR_BASE + 1)
     103/** The line is too long to fit in the buffer passed to kRdrBufLine or kRdrBufLineEx. */
     104#define KRDR_ERR_LINE_TOO_LONG                          (KRDR_ERR_BASE + 2)
    99105/** @} */
    100106
  • trunk/kStuff/include/k/kRdr.h

    r3546 r3548  
    3434 * @{ */
    3535
     36/** @def KRDR_DECL
     37 * Declares a kRdr function according to build context.
     38 * @param type          The return type.
     39 */
     40#if defined(KRDR_BUILDING_DYNAMIC)
     41# define KRDR_DECL(type)    K_DECL_EXPORT(type)
     42#elif defined(KRDR_BUILT_DYNAMIC)
     43# define KRDR_DECL(type)    K_DECL_IMPORT(type)
     44#else
     45# define KRDR_DECL(type)    type
     46#endif
     47
    3648/** Pointer to a file provider instance. */
    3749typedef struct KRDR *PKRDR;
     
    4355#endif
    4456
    45 int     kRdrOpen(PPKRDR ppRdr, const char *pszFilename);
    46 int     kRdrOpenBuffered(PPKRDR ppRdr, const char *pszFilename);
    47 int     kRdrClose(   PKRDR pRdr);
    48 int     kRdrRead(    PKRDR pRdr, void *pvBuf, KSIZE cb, KFOFF off);
    49 int     kRdrAllMap(  PKRDR pRdr, const void **ppvBits);
    50 int     kRdrAllUnmap(PKRDR pRdr, const void *pvBits);
    51 KFOFF   kRdrSize(    PKRDR pRdr);
    52 KFOFF   kRdrTell(    PKRDR pRdr);
    53 const char *kRdrName(PKRDR pRdr);
    54 KIPTR   kRdrNativeFH(PKRDR pRdr);
    55 KSIZE   kRdrPageSize(PKRDR pRdr);
     57KRDR_DECL(int)      kRdrOpen(   PPKRDR ppRdr, const char *pszFilename);
     58KRDR_DECL(int)      kRdrClose(    PKRDR pRdr);
     59KRDR_DECL(int)      kRdrRead(     PKRDR pRdr, void *pvBuf, KSIZE cb, KFOFF off);
     60KRDR_DECL(int)      kRdrAllMap(   PKRDR pRdr, const void **ppvBits);
     61KRDR_DECL(int)      kRdrAllUnmap( PKRDR pRdr, const void *pvBits);
     62KRDR_DECL(KFOFF)    kRdrSize(     PKRDR pRdr);
     63KRDR_DECL(KFOFF)    kRdrTell(     PKRDR pRdr);
     64KRDR_DECL(const char *) kRdrName( PKRDR pRdr);
     65KRDR_DECL(KIPTR)    kRdrNativeFH( PKRDR pRdr);
     66KRDR_DECL(KSIZE)    kRdrPageSize( PKRDR pRdr);
    5667#ifndef ___k_kLdr___
    57 int     kRdrMap(     PKRDR pRdr, void **ppvBase, KU32 cSegments, PCKLDRSEG paSegments, KBOOL fFixed);
    58 int     kRdrRefresh( PKRDR pRdr, void *pvBase, KU32 cSegments, PCKLDRSEG paSegments);
    59 int     kRdrProtect( PKRDR pRdr, void *pvBase, KU32 cSegments, PCKLDRSEG paSegments, KBOOL fUnprotectOrProtect);
    60 int     kRdrUnmap(   PKRDR pRdr, void *pvBase, KU32 cSegments, PCKLDRSEG paSegments);
     68KRDR_DECL(int)      kRdrMap(      PKRDR pRdr, void **ppvBase, KU32 cSegments, PCKLDRSEG paSegments, KBOOL fFixed);
     69KRDR_DECL(int)      kRdrRefresh( PKRDR pRdr, void *pvBase, KU32 cSegments, PCKLDRSEG paSegments);
     70KRDR_DECL(int)      kRdrProtect( PKRDR pRdr, void *pvBase, KU32 cSegments, PCKLDRSEG paSegments, KBOOL fUnprotectOrProtect);
     71KRDR_DECL(int)      kRdrUnmap(    PKRDR pRdr, void *pvBase, KU32 cSegments, PCKLDRSEG paSegments);
    6172#endif /* !___k_kLdr___ */
    62 void    kRdrDone(    PKRDR pRdr);
     73KRDR_DECL(void)     kRdrDone(PKRDR pRdr);
     74
     75KRDR_DECL(int)      kRdrBufOpen(PPKRDR ppRdr, const char *pszFilename);
     76KRDR_DECL(int)      kRdrBufWrap(PPKRDR ppRdr, PKRDR pRdr);
     77KRDR_DECL(int)      kRdrBufLine(  PKRDR pRdr, char *pszLine, KSIZE cbLine);
     78KRDR_DECL(int)      kRdrBufLineEx(PKRDR pRdr, char *pszLine, KSIZE *pcbLine);
     79KRDR_DECL(const char *) kRdrBufLineQ(PKRDR pRdr);
    6380
    6481#ifdef __cplusplus
  • trunk/kStuff/kRdr/Makefile.kmk

    r3546 r3548  
    3737kRdrStatic_SOURCES = \
    3838        kRdr.cpp \
    39         kRdrFile.cpp
     39        kRdrFile.cpp \
     40        kRdrBuffered.cpp
    4041
    4142# Generate the rules
  • trunk/kStuff/kRdr/kRdrInternal.h

    r3544 r3548  
    9393#define KRDR_VALIDATE_VOID(pRdr) \
    9494    do  { \
    95         if (    (pRdr)->u32Magic != KRDR_MAGIC \
     95        if (    !K_VALID_PTR(pRdr) \
     96            ||  (pRdr)->u32Magic != KRDR_MAGIC \
    9697            ||  (pRdr)->pOps == NULL \
    9798           )\
Note: See TracChangeset for help on using the changeset viewer.