ledger 3.3.2
Home
Features
Docs
Download
Contribute
Wiki
Loading...
Searching...
No Matches
emacs.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2003-2023, John Wiegley. All rights reserved.
3
*
4
* Redistribution and use in source and binary forms, with or without
5
* modification, are permitted provided that the following conditions are
6
* met:
7
*
8
* - Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
*
11
* - Redistributions in binary form must reproduce the above copyright
12
* notice, this list of conditions and the following disclaimer in the
13
* documentation and/or other materials provided with the distribution.
14
*
15
* - Neither the name of New Artisans LLC nor the names of its
16
* contributors may be used to endorse or promote products derived from
17
* this software without specific prior written permission.
18
*
19
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
*/
31
42
#pragma once
43
44
#include "
chain.h
"
45
46
namespace
ledger
{
47
48
class
xact_t;
49
50
class
format_emacs_posts
:
public
item_handler
<post_t>
51
{
52
format_emacs_posts
();
53
54
protected
:
55
std::ostream&
out
;
56
xact_t
*
last_xact
;
57
58
public
:
59
format_emacs_posts
(std::ostream&
_out
)
60
:
out
(
_out
),
last_xact
(
NULL
) {
61
TRACE_CTOR
(
format_emacs_posts
,
"std::ostream&"
);
62
}
63
~format_emacs_posts
() {
64
TRACE_DTOR
(
format_emacs_posts
);
65
}
66
67
virtual
void
write_xact
(
xact_t
& xact);
68
virtual
void
flush
() {
69
if
(
last_xact
)
70
out
<<
"))\n"
;
71
out
.flush();
72
}
73
virtual
void
operator()
(
post_t
&
post
);
74
virtual
string
escape_string
(
string
raw
);
75
};
76
77
}
// namespace ledger
TRACE_DTOR
#define TRACE_DTOR(cls)
Definition
utils.h:144
TRACE_CTOR
#define TRACE_CTOR(cls, args)
Definition
utils.h:143
chain.h
ledger
Definition
account.h:46
ledger::downcast
T & downcast(U &object)
Definition
utils.h:468
ledger::item_handler
Definition
chain.h:53
ledger::format_emacs_posts
Definition
emacs.h:51
ledger::format_emacs_posts::format_emacs_posts
format_emacs_posts(std::ostream &_out)
Definition
emacs.h:59
ledger::format_emacs_posts::flush
virtual void flush()
Definition
emacs.h:68
ledger::format_emacs_posts::out
std::ostream & out
Definition
emacs.h:55
ledger::format_emacs_posts::operator()
virtual void operator()(post_t &post)
ledger::format_emacs_posts::last_xact
xact_t * last_xact
Definition
emacs.h:56
ledger::format_emacs_posts::escape_string
virtual string escape_string(string raw)
ledger::format_emacs_posts::~format_emacs_posts
~format_emacs_posts()
Definition
emacs.h:63
ledger::format_emacs_posts::write_xact
virtual void write_xact(xact_t &xact)
ledger::post_t
Definition
post.h:52
ledger::xact_t
Definition
xact.h:92
src
emacs.h
Generated on Wed Dec 11 2024 01:48:13 for ledger by
1.10.0