nlib
総合概要
諸情報
モジュール
名前空間
クラス
ファイル
各種例
ファイル一覧
ファイルメンバ
CsvReader.h
[詳解]
1
2
#pragma once
3
#ifndef INCLUDE_NN_NLIB_MSGPACK_CSVREADER_H_
4
#define INCLUDE_NN_NLIB_MSGPACK_CSVREADER_H_
5
6
#include "
nn/nlib/msgpack/MpObject.h
"
7
#include "
nn/nlib/InputStream.h
"
8
#include "
nn/nlib/TextReader.h
"
9
10
#if defined(_MSC_VER) && defined(nx_msgpack_EXPORTS)
11
#undef NLIB_VIS_PUBLIC
12
#define NLIB_VIS_PUBLIC NLIB_WINEXPORT
13
#endif
14
15
NLIB_NAMESPACE_BEGIN
16
namespace
msgpack {
17
18
class
NLIB_VIS_PUBLIC
CsvReader
NLIB_FINAL
{
19
public
:
20
// In Conformance with RFC4180(https://www.ietf.org/rfc/rfc4180.txt).
21
// except that
22
// pass UTF-8, the UTF-8 string is checked validity.
23
// pass CR, LF, CRLF as a new line.
24
CsvReader
()
NLIB_NOEXCEPT
: m_ErrorValue(0) {}
25
~CsvReader
()
NLIB_NOEXCEPT
{ m_Reader.Close(); }
26
bool
Init(
InputStream
* stream)
NLIB_NOEXCEPT
NLIB_NONNULL
;
27
bool
Close
()
NLIB_NOEXCEPT
{
return
m_Reader.Close(); }
28
errno_t
GetErrorValue
() const
NLIB_NOEXCEPT
{
return
m_ErrorValue; }
29
30
public
:
31
static
bool
Read
(
MpObject
* obj,
const
char
* csvtext)
NLIB_NOEXCEPT
NLIB_NONNULL
;
32
bool
Read
(
MpObject
* obj)
NLIB_NOEXCEPT
NLIB_NONNULL
;
33
InputStream
*
GetStream
()
NLIB_NOEXCEPT
{
return
m_Reader.GetStream(); }
34
NLIB_SAFE_BOOL
(
CsvReader
, GetErrorValue() == 0)
35
36
private:
37
void
SetError(
errno_t
e)
NLIB_NOEXCEPT
{
38
if
(m_ErrorValue == 0) m_ErrorValue = e;
39
}
40
41
private
:
42
errno_t
m_ErrorValue;
43
TextReader
m_Reader;
44
NLIB_DISALLOW_COPY_AND_ASSIGN
(CsvReader);
45
};
46
47
}
// namespace msgpack
48
NLIB_NAMESPACE_END
49
50
#if defined(_MSC_VER) && defined(nx_msgpack_EXPORTS)
51
#undef NLIB_VIS_PUBLIC
52
#define NLIB_VIS_PUBLIC NLIB_WINIMPORT
53
#endif
54
55
#endif // INCLUDE_NN_NLIB_MSGPACK_CSVREADER_H_
NLIB_NOEXCEPT
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
Definition:
Platform.h:2151
nn::nlib::msgpack::CsvReader
CSVパーサーです。ストリームからCSV文字列を読み込んでパースします。
Definition:
CsvReader.h:18
NLIB_FINAL
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。
NLIB_NONNULL
#define NLIB_NONNULL
全ての引数にNULLを指定することができないことを示します。
Definition:
Platform_unix.h:66
NLIB_DISALLOW_COPY_AND_ASSIGN
#define NLIB_DISALLOW_COPY_AND_ASSIGN(TypeName)
TypeName で指定されたクラスのコピーコンストラクタと代入演算子を禁止します。
Definition:
Config.h:126
NLIB_SAFE_BOOL
#define NLIB_SAFE_BOOL(class_name, exp)
クラス内に安全なoperator bool()を定義します。 可能であればC++11のexplicit boolを利用します。 ...
Definition:
Config.h:141
InputStream.h
入力ストリームの基底クラスを定義しています。
nn::nlib::msgpack::MpObject
MessagePack又はJSONを読み込むことで作成されるオブジェクトです。
Definition:
MpObject.h:83
nn::nlib::msgpack::CsvReader::GetErrorValue
errno_t GetErrorValue() const noexcept
発生したエラーを取得します。
Definition:
CsvReader.h:28
nn::nlib::msgpack::CsvReader::GetStream
InputStream * GetStream() noexcept
Init()で設定したベースストリームを取得します。
Definition:
CsvReader.h:33
TextReader.h
ストリームからテキストを読み込むクラスを定義しています。
nn::nlib::TextReader
ストリームからテキストを読み込むクラスです。
Definition:
TextReader.h:20
MpObject.h
MessagePack, JSON及びCSVを読み込むと作成されるオブジェクトです。
nn::nlib::InputStream
入力ストリームの基底クラスです。このクラスを実体化することはできません。
Definition:
InputStream.h:15
nn::nlib::msgpack::CsvReader::~CsvReader
~CsvReader() noexcept
デストラクタです。
Definition:
CsvReader.h:25
nn::nlib::msgpack::CsvReader::CsvReader
CsvReader() noexcept
デフォルトコンストラクタです。
Definition:
CsvReader.h:24
NLIB_VIS_PUBLIC
#define NLIB_VIS_PUBLIC
関数やクラス等のシンボルをライブラリの外部に公開します。
Definition:
Platform_unix.h:51
nn::nlib::binary_reader::Read
bool Read(BinaryReader *r, T *x)
この関数テンプレートを特殊化することで、ユーザー定義クラスに読み込むことができます。 ...
Definition:
BinaryReader.h:158
nn::nlib::msgpack::CsvReader::Close
bool Close() noexcept
CsvReader をクローズします。
Definition:
CsvReader.h:27
errno_t
int errno_t
intのtypedefで、戻り値としてPOSIXのエラー値を返すことを示します。
Definition:
NMalloc.h:24
© 2013, 2014, 2015 Nintendo Co., Ltd. All rights reserved.