LCOV - code coverage report
Current view: top level - shared - stream.h (source / functions) Coverage Total Hit
Test: Libprimis Test Coverage Lines: 23.8 % 21 5
Test Date: 2026-03-24 05:50:27 Functions: 33.3 % 12 4

            Line data    Source code
       1              : 
       2              : #ifndef STREAM_H_
       3              : #define STREAM_H_
       4              : 
       5              : template<class T>
       6              : struct streambuf
       7              : {
       8              :     stream *s;
       9              : 
      10            0 :     streambuf(stream *in) : s(in) {}
      11              : 
      12            0 :     T get()
      13              :     {
      14            0 :         return s->get<T>();
      15              :     }
      16              : 
      17            0 :     size_t get(T *vals, size_t numvals)
      18              :     {
      19            0 :         return s->get(vals, numvals);
      20              :     }
      21              : 
      22            0 :     void put(const T &val)
      23              :     {
      24            0 :         s->put(&val, 1);
      25            0 :     }
      26              : 
      27              :     void put(const T *vals, size_t numvals)
      28              :     {
      29              :         s->put(vals, numvals);
      30              :     }
      31              : 
      32            0 :     void push_back(const T &val)
      33              :     {
      34            0 :         put(val);
      35            0 :     }
      36              : 
      37              :     size_t length()
      38              :     {
      39              :         return s->size();
      40              :     }
      41              : };
      42              : 
      43              : enum
      44              : {
      45              :     CubeType_Print   = 1 << 0,
      46              :     CubeType_Space   = 1 << 1,
      47              :     CubeType_Digit   = 1 << 2,
      48              :     CubeType_Alpha   = 1 << 3,
      49              :     CubeType_Lower   = 1 << 4,
      50              :     CubeType_Upper   = 1 << 5,
      51              :     CubeType_Unicode = 1 << 6
      52              : };
      53              : 
      54              : extern const uchar cubectype[256];
      55           30 : inline int iscubeprint(uchar c) { return cubectype[c] & CubeType_Print; }
      56           23 : inline int iscubespace(uchar c) { return cubectype[c] & CubeType_Space; }
      57              : inline int iscubealpha(uchar c) { return cubectype[c] & CubeType_Alpha; }
      58            1 : inline int iscubealnum(uchar c) { return cubectype[c]&(CubeType_Alpha | CubeType_Digit); }
      59            0 : inline int iscubepunct(uchar c) { return cubectype[c] == CubeType_Print; }
      60        13134 : inline int cube2uni(uchar c)
      61              : {
      62        13134 :     return c;
      63              : }
      64              : 
      65            0 : inline uchar cubelower(uchar c)
      66              : {
      67            0 :     return c;
      68              : }
      69            0 : inline uchar cubeupper(uchar c)
      70              : {
      71            0 :     return c;
      72              : }
      73              : extern size_t encodeutf8(uchar *dstbuf, size_t dstlen, const uchar *srcbuf, size_t srclen, size_t *carry = nullptr);
      74              : 
      75              : extern char *loadfile(const char *fn, size_t *size, bool utf8 = true);
      76              : extern int listfiles(const char *dir, const char *ext, std::vector<char *> &files);
      77              : extern int listzipfiles(const char *dir, const char *ext, std::vector<char *> &files);
      78              : extern bool findzipfile(const char *filename);
      79              : extern const char *addpackagedir(const char *dir);
      80              : extern const char *parentdir(const char *directory);
      81              : extern bool fileexists(const char *path, const char *mode);
      82              : extern bool createdir(const char *path);
      83              : extern size_t fixpackagedir(char *dir);
      84              : extern char *makerelpath(const char *dir, const char *file, const char *prefix = nullptr, const char *cmd = nullptr);
      85              : 
      86              : extern void sendstring(const char *t, std::vector<uchar> &p);
      87              : 
      88              : extern void putint(std::vector<uchar> &p, int n);
      89              : extern int getint(std::vector<uchar> &p);
      90              : extern void putfloat(std::vector<uchar> &p, float n);
      91              : extern float getfloat(std::vector<uchar> &p);
      92              : #endif
        

Generated by: LCOV version 2.0-1