Keyple Card Calypso C++ Library 2.1.0
Reference Terminal Reader API for C++
ElementaryFileAdapter.h
Go to the documentation of this file.
1/**************************************************************************************************
2 * Copyright (c) 2022 Calypso Networks Association https://calypsonet.org/ *
3 * *
4 * See the NOTICE file(s) distributed with this work for additional information regarding *
5 * copyright ownership. *
6 * *
7 * This program and the accompanying materials are made available under the terms of the Eclipse *
8 * Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0 *
9 * *
10 * SPDX-License-Identifier: EPL-2.0 *
11 **************************************************************************************************/
12
13#pragma once
14
15#include <cstdint>
16#include <memory>
17#include <ostream>
18
19/* Calpsonet Terminal Calypso */
20#include "ElementaryFile.h"
21
22/* Keyple Card Calypso */
23#include "FileDataAdapter.h"
24#include "FileHeaderAdapter.h"
25
26namespace keyple {
27namespace card {
28namespace calypso {
29
30using namespace calypsonet::terminal::calypso::card;
31
38class ElementaryFileAdapter final : public ElementaryFile {
39public:
47 ElementaryFileAdapter(const uint8_t sfi);
48
56 ElementaryFileAdapter(const std::shared_ptr<ElementaryFile> source);
57
66 ElementaryFile& setHeader(const std::shared_ptr<FileHeaderAdapter> header);
67
73 uint8_t getSfi() const override;
74
82 const std::shared_ptr<FileHeader> getHeader() const override;
83
91 const std::shared_ptr<FileData> getData() const override;
92
100 bool operator==(const ElementaryFileAdapter& o) const;
101
109 bool operator==(const std::shared_ptr<ElementaryFileAdapter> o) const;
110
114 friend std::ostream& operator<<(std::ostream& os, const ElementaryFileAdapter& efa);
115
119 friend std::ostream& operator<<(std::ostream& os,
120 const std::shared_ptr<ElementaryFileAdapter> efa);
121
122private:
126 const uint8_t mSfi;
127
131 std::shared_ptr<FileHeaderAdapter> mHeader;
132
136 const std::shared_ptr<FileDataAdapter> mData;
137};
138
139}
140}
141}
const std::shared_ptr< FileHeader > getHeader() const override
friend std::ostream & operator<<(std::ostream &os, const ElementaryFileAdapter &efa)
const std::shared_ptr< FileData > getData() const override
bool operator==(const ElementaryFileAdapter &o) const
ElementaryFile & setHeader(const std::shared_ptr< FileHeaderAdapter > header)