summaryrefslogtreecommitdiff
path: root/emacs.h
blob: 628152203a92eb2bea95f19ce38548ca624d1491 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#ifndef _EMACS_H
#define _EMACS_H

#include "journal.h"
#include "format.h"

namespace ledger {

class format_emacs_xacts : public item_handler<xact_t>
{
  format_emacs_xacts();

protected:
  std::ostream& out;
  entry_t *     last_entry;

public:
  format_emacs_xacts(std::ostream& _out)
    : out(_out), last_entry(NULL) {
    TRACE_CTOR(format_emacs_xacts, "std::ostream&");
  }
  ~format_emacs_xacts() {
    TRACE_DTOR(format_emacs_xacts);
  }

  virtual void write_entry(entry_t& entry);
  virtual void flush() {
    if (last_entry)
      out << "))\n";
    out.flush();
  }
  virtual void operator()(xact_t& xact);
};

} // namespace ledger

#endif // _REPORT_H