PLCnext API Documentation 25.0.2.69
RscStream.hpp
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
8#include "Arp/Base/Rsc/Commons/Rsc.hpp"
9#include "Arp/Base/Commons/Io/Stream.hpp"
10#include "Arp/Base/Rsc/Commons/RscStreamReader.hpp"
11#include "Arp/Base/Rsc/Commons/RscStreamWriter.hpp"
12
13namespace Arp::Base::Rsc::Commons
14{
15
16// Type imports
20
28class ARP_EXPORT RscStream
29{
30public: // construction
31 RscStream(void);
32 RscStream(Stream& stream); // no explicit here, implicit conversion is desired
33 RscStream(const RscStreamReader& rscStreamReader); // no explicit here, implicit conversion is desired
34 RscStream(const RscStreamWriter& rscStreamWriter); // no explicit here, implicit conversion is desired
35
36public: // setter/getter
37 RscStreamReader GetRscStreamReader(void);
38 RscStreamWriter GetRscStreamWriter(void);
39
40public: // operations
41 void Serialize(void);
42 void Deserialize(void);
43 void SerializeTo(RscWriter& writer);
44 void SerializeTo(RscStreamWriter& writer);
45 void DeserializeFrom(RscReader& reader);
46 void DeserializeFrom(RscStreamReader& reader);
47 void ReadFrom(Stream& stream);
48 void WriteTo(Stream& stream);
49 void Skip(void);
50
51private: // fields
52 Stream* pStream = nullptr;
53 RscStreamReader rscStreamReader;
54 RscStreamWriter rscStreamWriter;
55};
56
57} // end of namespace Arp::Base::Rsc::Commons
This abstract class shall be the base class of all stream implementations.
Definition: Stream.hpp:20
Enables Rsc services to marshal large data packets as stream.
Definition: RscStreamReader.hpp:23
Enables Rsc services to marshal large data packets as stream.
Definition: RscStreamWriter.hpp:23
This class might be used to marshal unstructured stream data as bytes.
Definition: RscStream.hpp:29
RscStream(void)
Constructs an empty RscStream instance.
Reads marshaled data of RSC services.
Definition: RscReader.hpp:34
Writes marshalled data of RSC services.
Definition: RscWriter.hpp:34