OpenCores
URL https://opencores.org/ocsvn/riscv_vhdl/riscv_vhdl/trunk

Subversion Repositories riscv_vhdl

[/] [riscv_vhdl/] [trunk/] [debugger/] [src/] [common/] [autobuffer.h] - Blame information for rev 2

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 sergeykhbr
/**
2
 * @file
3
 * @copyright  Copyright 2016 GNSS Sensor Ltd. All right reserved.
4
 * @author     Sergey Khabarov - sergeykhbr@gmail.com
5
 * @brief      Dynamically allocated buffer declaration.
6
 */
7
 
8
#ifndef __DEBUGGER_AUTOBUFFER_H__
9
#define __DEBUGGER_AUTOBUFFER_H__
10
 
11
#include <stdint.h>
12
#include <string.h>
13
 
14
namespace debugger {
15
 
16
/**
17
 * @brief String buffer declaration.
18
 * @details This buffer is used to form configuration string of the kernel.
19
 */
20
class AutoBuffer {
21
  public:
22
    /** Create empty string buffer. */
23
    AutoBuffer();
24
    ~AutoBuffer();
25
 
26
    /**
27
     * @brief Write input data of the specified size into buffer's memory.
28
     * @param[in] p Pointer on input data.
29
     * @param[in] sz Input buffer size in bytes.
30
     */
31
    void write_bin(const char *p, int sz);
32
    /**
33
     * @brief Write single symbol into buffer's memory.
34
     * @param[in] s Input character value.
35
     */
36
    void write_string(const char s);
37
    /**
38
     * @brief Write input string into buffer's memory.
39
     * @param[in] s Pointer on string buffer.
40
     */
41
    void write_string(const char *s);
42
    /**
43
     * @brief Write integer value as a hex string into buffer's memory.
44
     * @param[in] s Input integer value.
45
     */
46
    void write_uint64(uint64_t v);
47
    /**
48
     * @brief Write a single byte into buffer's memory.
49
     * @details This method is very usefull to write special characters, like
50
     *          '\0', '\n' etc.
51
     * @param[in] s Input byte value.
52
     */
53
    void write_byte(uint8_t v);
54
 
55
    /**
56
     * @brief Get allocated memory pointer.
57
     * @return Pointer on allocated memory region.
58
     */
59
    char *getBuffer() { return buf_; }
60
 
61
    /** Get total number of written symbols. */
62
    int size() { return buf_len_; }
63
    /** Reset buffer's value. */
64
    void clear() {
65
        buf_len_ = 0;
66
        if (buf_) {
67
            buf_[buf_len_] = 0;
68
        }
69
    }
70
 
71
  private:
72
    char *buf_;
73
    int buf_len_;
74
    int buf_size_;
75
};
76
 
77
}  // namespace debugger
78
 
79
#endif  // __DEBUGGER_AUTOBUFFER_H__

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.