Page Menu
Home
HEPForge
Search
Configure Global Search
Log In
Files
F11221789
streamcharsource.h
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
1 KB
Subscribers
None
streamcharsource.h
View Options
#pragma once
#ifndef STREAMCHARSOURCE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#define STREAMCHARSOURCE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#include
"noncopyable.h"
#include
<cstddef>
namespace
YAML
{
class
StreamCharSource
{
public
:
StreamCharSource
(
const
Stream
&
stream
)
:
m_offset
(
0
),
m_stream
(
stream
)
{}
StreamCharSource
(
const
StreamCharSource
&
source
)
:
m_offset
(
source
.
m_offset
),
m_stream
(
source
.
m_stream
)
{}
~
StreamCharSource
()
{}
operator
bool
()
const
;
char
operator
[]
(
std
::
size_t
i
)
const
{
return
m_stream
.
CharAt
(
m_offset
+
i
);
}
bool
operator
!
()
const
{
return
!
static_cast
<
bool
>
(
*
this
);
}
const
StreamCharSource
operator
+
(
int
i
)
const
;
private
:
std
::
size_t
m_offset
;
const
Stream
&
m_stream
;
StreamCharSource
&
operator
=
(
const
StreamCharSource
&
);
// non-assignable
};
inline
StreamCharSource
::
operator
bool
()
const
{
return
m_stream
.
ReadAheadTo
(
m_offset
);
}
inline
const
StreamCharSource
StreamCharSource
::
operator
+
(
int
i
)
const
{
StreamCharSource
source
(
*
this
);
if
(
static_cast
<
int
>
(
source
.
m_offset
)
+
i
>=
0
)
source
.
m_offset
+=
i
;
else
source
.
m_offset
=
0
;
return
source
;
}
}
#endif
// STREAMCHARSOURCE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
File Metadata
Details
Attached
Mime Type
text/x-c
Expires
Wed, May 14, 10:54 AM (1 d, 2 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5111290
Default Alt Text
streamcharsource.h (1 KB)
Attached To
rCEDARSVN cedarsvn
Event Timeline
Log In to Comment