LIMA
Libre Multilingual Analyzer — C++ API
Loading...
Searching...
No Matches
FsaAccessIOStreamWrapper.h
Go to the documentation of this file.
1// Copyright 2002-2013 CEA LIST
2// SPDX-FileCopyrightText: 2022 CEA LIST <gael.de-chalendar@cea.fr>
3//
4// SPDX-License-Identifier: MIT
5
6/*****************************************************************************
7 * Copyright (C) 2006 by CEA *
8 * author Olivier MESNARD olivier.mesnard@cea.fr *
9 * *
10 * lexiconCompoundElement.h - description *
11 * common definition to implement lexiconIdGenerator and lexiconIdAccessor *
12 *****************************************************************************/
13#include <iostream>
14
15#ifndef FSA_IO_STREAM_WRAPPER_H
16#define FSA_IO_STREAM_WRAPPER_H
17
18#include "common/LimaCommon.h"
19
20namespace Lima {
21namespace Common {
22namespace FsaAccess {
23
25public:
27 virtual void readData( char *ptr, size_t n ) = 0;
28 static const uint64_t BUFFER_SIZE;
29};
30
32public:
34 virtual void writeData(const char *ptr, size_t n ) = 0;
35 static const uint64_t BUFFER_SIZE;
36};
37
39public:
40 FsaAccessIStreamWrapper(std::istream &is);
42 void readData( char *ptr, size_t n ) override ;
43private:
44 FsaAccessIStreamWrapper& operator=(const FsaAccessIStreamWrapper& ) {return *this;}
45 std::istream &m_is;
46// uint64_t m_pos;
47// uint64_t m_size;
48// char* m_buffer;
49};
50
52public:
53 FsaAccessOStreamWrapper(std::ostream &os);
55 void writeData(const char *ptr, size_t n ) override;
56private:
57 FsaAccessOStreamWrapper& operator=(const FsaAccessOStreamWrapper& ) {return *this;}
58 std::ostream &m_os;
59 uint64_t m_pos;
60 uint64_t m_size;
61 char* m_buffer;
62};
63
65public:
67 virtual void restoreData( char* m_buffer, uint64_t m_size ) = 0;
68private:
69 FsaAccessDataInputHandler& operator=(const FsaAccessDataInputHandler& ) {return *this;}
70};
71
73public:
76 void readData( char *ptr, size_t n ) override;
77private:
78 FsaAccessInputHandlerWrapper& operator=(const FsaAccessInputHandlerWrapper& ) {return *this;}
80 uint64_t m_pos;
81 uint64_t m_size;
82 char* m_buffer;
83};
84
86public:
88 virtual void saveData( const char* m_buffer, uint64_t m_size ) = 0;
89private:
90 FsaAccessDataOutputHandler& operator=(const FsaAccessDataOutputHandler& ) {return *this;}
91};
92
94public:
97 void writeData(const char *ptr, size_t n ) override;
98private:
99 FsaAccessOutputHandlerWrapper& operator=(const FsaAccessOutputHandlerWrapper& ) {return *this;}
101 uint64_t m_pos;
102 uint64_t m_size;
103 char* m_buffer;
104};
105
106
107} // namespace FsaAccess
108} // namespace Common
109} // namespace Lima
110
111#endif //FSA_IO_STREAM_WRAPPER_H
#define LIMA_FSAACCESS_EXPORT
Definition LimaCommon.h:130
virtual void readData(char *ptr, size_t n)=0
virtual void writeData(const char *ptr, size_t n)=0
virtual void restoreData(char *m_buffer, uint64_t m_size)=0
virtual void saveData(const char *m_buffer, uint64_t m_size)=0
NAUTITIA.