acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
DataOutputStream.h
1// Copyright (C) 2009,2010,2011,2012 GlavSoft LLC.
2// All rights reserved.
3//
4//-------------------------------------------------------------------------
5// This file is part of the T i g h t V N C software. Please visit our Web site:
6//
7// http://www.t i g h t v n c.com/
8//
9// This program is free software; you can redistribute it and/or modify
10// it under the terms of the GNU General Public License as published by
11// the Free Software Foundation; either version 2 of the License, or
12// (at your option) any later version.
13//
14// This program is distributed in the hope that it will be useful,
15// but WITHOUT ANY WARRANTY; without even the implied warranty of
16// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17// GNU General Public License for more details.
18//
19// You should have received a copy of the GNU General Public License along
20// with this program; if not, w_rite to the Free Software Foundation, Inc.,
21// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22//-------------------------------------------------------------------------
23//
24
25#pragma once
26
27
29#include "acme/input_output/OutputStream.h"
30#include "acme/exception/io.h"
31//namespace subsystem
32//{
37 class CLASS_DECL_ACME DataOutputStream :
38 virtual public OutputStream
39 {
40 public:
41
42
43 //protected:
44 ::pointer < OutputStream > m_poutputstream;
45
46 DataOutputStream();
51 DataOutputStream(OutputStream * poutputstream);
52 ~DataOutputStream() override;
53
54
55 virtual void _initialize_data_output_stream(OutputStream * poutputstream);
56
61 memsize defer_write(const void *buffer, memsize len) override;
70 virtual void write(const void *buffer, memsize len);
71
73
74 void writeUInt8(::u8 x);
75 void writeUInt16(::u16 x);
76 void writeUInt32(::u32 x);
77 void writeUInt64(::u64 x);
78
79 void writeInt8(::i8 x);
80 void writeInt16(::i16 x);
81 void writeInt32(::i32 x);
82 void writeInt64(::i64 x);
83
84 void writeUTF8(const ::scoped_string & scopedstrString);
85
89 void flush() override;
90
91 };
92//} // namespace subsystem
void writeUInt8(::u8 x)
void writeFully(const void *buffer, memsize len);
Definition DataOutputStream.cpp:78
virtual void write(const void *buffer, memsize len)
Definition DataOutputStream.cpp:66
Definition OutputStream.h:38
virtual void flush()
Definition OutputStream.cpp:34
virtual memsize defer_write(const void *buffer, ::memsize len)=0