Skip to content

Commit b6ba7fb

Browse files
committed
Updating links to the comms documentation.
1 parent 093c7d4 commit b6ba7fb

File tree

20 files changed

+73
-73
lines changed

20 files changed

+73
-73
lines changed

howtos/howto10/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ consequence the limitations of the latter.
3737
The [tutorial5](../../tutorials/tutorial5) explains that the
3838
[COMMS Library](https://github.com/commschamp/comms) implements framing
3939
by they "layer" classes wrapping one another, while the
40-
[comms::frame::ChecksumLayer](https://commschamp.github.io/comms_doc/classcomms_1_1protocol_1_1ChecksumLayer.html)
40+
[comms::frame::ChecksumLayer](https://commschamp.github.io/comms_doc/classcomms_1_1frame_1_1ChecksumLayer.html)
4141
(defined using [<checksum>](https://commschamp.github.io/commsdsl_spec/#frames-checksum) in the schema)
4242
wraps all the layers, checksum on which needs to be implemented. In this particular case it is only the
4343
`PAYLOAD`. So the wrapping looks something like that:
@@ -46,15 +46,15 @@ SYNC( SIZE( FLAGS( ID( CHECKSUM( PAYLOAD ) ) ) ) )
4646
```
4747
Now, let's take a closer look at the `FLAGS` layer. The [<value>](https://commschamp.github.io/commsdsl_spec/#frames-value)
4848
definition is implemented using
49-
[comms::frame::TransportValueLayer](https://commschamp.github.io/comms_doc/classcomms_1_1protocol_1_1TransportValueLayer.html)
49+
[comms::frame::TransportValueLayer](https://commschamp.github.io/comms_doc/classcomms_1_1frame_1_1TransportValueLayer.html)
5050
class, which is expected to re-assign the read field's value to the message object. However, in this particular scenario
5151
the message object hasn't been created yet, because the `ID` information hasn't been processed yet. To help with
5252
such cases the [COMMS Library](https://github.com/commschamp/comms) has compile-time
5353
meta-programming logic to recognize the scenario and automatically forces splitting its read operation to "until the payload" and
5454
"from the payload". When such split occurs, the relevant flags field is re-assigned to message object right before the read
5555
operation is forwarded to process the message payload.
5656

57-
The [comms::frame::ChecksumLayer](https://commschamp.github.io/comms_doc/classcomms_1_1protocol_1_1ChecksumLayer.html)
57+
The [comms::frame::ChecksumLayer](https://commschamp.github.io/comms_doc/classcomms_1_1frame_1_1ChecksumLayer.html)
5858
(implements [<checksum>](https://commschamp.github.io/commsdsl_spec/#frames-checksum)) on the other hand
5959
disallows such split of read operation to "until" and "from" payload, because in order to finalize its read operation the
6060
payload processing needs to be complete.
@@ -98,7 +98,7 @@ The **real** `Flags` field needs to be customized beyond the current capabilitie
9898
```
9999
The actual code, defined in [dsl_src/include/howto10/frame/layer/Flags.h](dsl_src/include/howto10/frame/layer/Flags.h) and
100100
copied to [include/howto10/frame/layer/Flags.h](include/howto10/frame/layer/Flags.h) by the code generator, extends the
101-
[comms::frame::TransportValueLayer](https://commschamp.github.io/comms_doc/classcomms_1_1protocol_1_1TransportValueLayer.html).
101+
[comms::frame::TransportValueLayer](https://commschamp.github.io/comms_doc/classcomms_1_1frame_1_1TransportValueLayer.html).
102102
```cpp
103103
template<typename TField, typename TNextLayer, typename... TOptions>
104104
class Flags : public

howtos/howto2/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ The [dsl_src/include/howto2/frame/layer/IdWithSize.h](dsl_src/include/howto2/fra
3131
in the generated code) implements the required functionality.
3232

3333
Due to the fact of this class is a replacement to the `<id>` layer it must extend
34-
the [comms::frame::MsgIdLayer](https://commschamp.github.io/comms_doc/classcomms_1_1protocol_1_1MsgIdLayer.html)
34+
the [comms::frame::MsgIdLayer](https://commschamp.github.io/comms_doc/classcomms_1_1frame_1_1MsgIdLayer.html)
3535
and implement its member functions that allow set / get of the message ID value out of the
3636
field object
3737
```cpp
@@ -67,7 +67,7 @@ public:
6767
Note that the remaining size information is also updated inside the `prepareFieldForWrite()` member function.
6868
6969
Now comes the tricky part. Every default layer implementation class (including
70-
[comms::frame::MsgIdLayer](https://commschamp.github.io/comms_doc/classcomms_1_1protocol_1_1MsgIdLayer.html))
70+
[comms::frame::MsgIdLayer](https://commschamp.github.io/comms_doc/classcomms_1_1frame_1_1MsgIdLayer.html))
7171
defines `doRead()` member function which is invoked by the `read()` and `readFieldsCached()` ones, which are used
7272
to drive the framing read functionality. The `doRead()` function is expected to read the field's value
7373
(ID of the message), do relevant operation(s) (allocate message object) and forward the read operation to the
@@ -127,7 +127,7 @@ public:
127127
};
128128
```
129129
Once the actual remaining length (`remLen`) is known, the default `doRead()` of the base class
130-
([comms::frame::MsgIdLayer](https://commschamp.github.io/comms_doc/classcomms_1_1protocol_1_1MsgIdLayer.html))
130+
([comms::frame::MsgIdLayer](https://commschamp.github.io/comms_doc/classcomms_1_1frame_1_1MsgIdLayer.html))
131131
is invoked to properly handle the message creation, but with new length value.
132132

133133
In order to properly test the message separation this tutorial defines `Msg1` and `Msg3` to be bound only

howtos/howto5/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ The mismatch between having a single field in the `<frame>` and two separate
8989
fields in the `<interface>` prevents us from using standard `<value>`
9090
layer in the frame definition. There is a need to inject a custom
9191
layer code, which can still use
92-
[comms::frame::TransportLayer](https://commschamp.github.io/comms_doc/classcomms_1_1protocol_1_1TransportValueLayer.html) (used to implement
92+
[comms::frame::TransportLayer](https://commschamp.github.io/comms_doc/classcomms_1_1frame_1_1TransportValueLayer.html) (used to implement
9393
standard `value` layer), but with extra customization (see
9494
[dsl_src/include/howto5/frame/layer/VersionWithFlags.h](dsl_src/include/howto5/frame/layer/VersionWithFlags.h)).
9595
```cpp
@@ -126,7 +126,7 @@ public:
126126
**NOTE**, that the code above uses
127127
[Curiously Recurring Template Pattern](https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern)
128128
to provide the base
129-
[comms::frame::TransportLayer](https://commschamp.github.io/comms_doc/classcomms_1_1protocol_1_1TransportValueLayer.html) class with the
129+
[comms::frame::TransportLayer](https://commschamp.github.io/comms_doc/classcomms_1_1frame_1_1TransportValueLayer.html) class with the
130130
actual extending layer type using **comms::option::def::ExtendingClass** option.
131131

132132
In addition it overrides the default implementation of the **reassignFieldValueToMsg()**

howtos/howto6/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ copied to the protocol definition
7878
by the code generator.
7979

8080
The `Checksum` layer is implemented by extending the
81-
[comms::frame::ChecksumLayer](https://commschamp.github.io/comms_doc/classcomms_1_1protocol_1_1ChecksumLayer.html)
81+
[comms::frame::ChecksumLayer](https://commschamp.github.io/comms_doc/classcomms_1_1frame_1_1ChecksumLayer.html)
8282
class provided by the [COMMS Library](https://github.com/commschamp/comms), and
8383
customizing various operations.
8484
```cpp
@@ -99,7 +99,7 @@ class Checksum : public
9999
**NOTE**, that the code above uses
100100
[Curiously Recurring Template Pattern](https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern)
101101
to provide the base
102-
[comms::frame::ChecksumLayer](https://commschamp.github.io/comms_doc/classcomms_1_1protocol_1_1ChecksumLayer.html) class with the
102+
[comms::frame::ChecksumLayer](https://commschamp.github.io/comms_doc/classcomms_1_1frame_1_1ChecksumLayer.html) class with the
103103
actual extending layer type using **comms::option::def::ExtendingClass** option. It makes the customization
104104
of the default operations possible.
105105

howtos/howto7/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ by the code generator.
3636

3737
The [AlternatingSync](dsl_src/include/howto7/frame/layer/AlternatingSync.h) layer
3838
is implemented by extending
39-
[comms::frame::SyncPrefixLayer](https://commschamp.github.io/comms_doc/classcomms_1_1protocol_1_1SyncPrefixLayer.html).
39+
[comms::frame::SyncPrefixLayer](https://commschamp.github.io/comms_doc/classcomms_1_1frame_1_1SyncPrefixLayer.html).
4040
```cpp
4141
template<typename TField, typename TNextLayer, typename... TOptions>
4242
class AlternatingSync : public
@@ -55,7 +55,7 @@ class AlternatingSync : public
5555
**NOTE**, that the code above uses
5656
[Curiously Recurring Template Pattern](https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern)
5757
to provide the base
58-
[comms::frame::SyncPrefixLayer](https://commschamp.github.io/comms_doc/classcomms_1_1protocol_1_1SyncPrefixLayer.html) class with the
58+
[comms::frame::SyncPrefixLayer](https://commschamp.github.io/comms_doc/classcomms_1_1frame_1_1SyncPrefixLayer.html) class with the
5959
actual extending layer type using **comms::option::def::ExtendingClass** option. It makes the customization
6060
of the default operations possible.
6161

howtos/howto8/README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ and the `Flags` layer is implemented inside
6363
(copied by the code generator to [include/howto8/frame/layer/Flags.h](include/howto8/frame/layer/Flags.h))
6464

6565
The [Id](dsl_src/include/howto8/frame/layer/Id.h) is implemented by extending
66-
and customizing [comms::frame::MsgIdLayer](https://commschamp.github.io/comms_doc/classcomms_1_1protocol_1_1MsgIdLayer.html).
66+
and customizing [comms::frame::MsgIdLayer](https://commschamp.github.io/comms_doc/classcomms_1_1frame_1_1MsgIdLayer.html).
6767
```cpp
6868
template<typename TField, typename TMessage, typename TAllMessages, typename TNextLayer, typename... TOptions>
6969
class Id : public
@@ -112,22 +112,22 @@ public:
112112
};
113113
```
114114
**NOTE** that the inner (wrapped) layers like `Flags` can be accessed using a
115-
sequence of [nextLayer()](https://commschamp.github.io/comms_doc/classcomms_1_1protocol_1_1MsgIdLayer.html)
115+
sequence of [nextLayer()](https://commschamp.github.io/comms_doc/classcomms_1_1frame_1_1MsgIdLayer.html)
116116
member functions invocations (`Base::nextLayer().nextLayer().nextLayer()....`).
117117
In this case the `Flags` is actually the next one and only single invocation needs to be used.
118118

119119
The `Flags` layer class is also expected to provide `setFieldPreset()` and
120120
`isFieldPresent()` member functions.
121121

122122
For more details on available customization of the
123-
[comms::frame::MsgIdLayer](https://commschamp.github.io/comms_doc/classcomms_1_1protocol_1_1MsgIdLayer.html)
123+
[comms::frame::MsgIdLayer](https://commschamp.github.io/comms_doc/classcomms_1_1frame_1_1MsgIdLayer.html)
124124
please refer to
125125
[Defining Custom Message ID Frame Layer](https://commschamp.github.io/comms_doc/page_custom_id_layer.html)
126126
COMMS library tutorial page.
127127

128128
The [Flags](dsl_src/include/howto8/frame/layer/Flags.h) is implemented by extending
129129
and customizing
130-
[comms::frame::TransportValueLayer](https://commschamp.github.io/comms_doc/classcomms_1_1protocol_1_1TransportValueLayer.html).
130+
[comms::frame::TransportValueLayer](https://commschamp.github.io/comms_doc/classcomms_1_1frame_1_1TransportValueLayer.html).
131131
```cpp
132132
template<typename TField, typename TNextLayer, typename... TOptions>
133133
class Flags : public
@@ -211,7 +211,7 @@ The write operation is performed normally due to the mode preparation is done in
211211
the `prepareFieldForWrite()`.
212212
213213
For more details on available customization of the
214-
[comms::frame::TransportValueLayer](https://commschamp.github.io/comms_doc/classcomms_1_1protocol_1_1TransportValueLayer.html)
214+
[comms::frame::TransportValueLayer](https://commschamp.github.io/comms_doc/classcomms_1_1frame_1_1TransportValueLayer.html)
215215
please refer to
216216
[Defining Custom Transport Value Frame Layer](https://commschamp.github.io/comms_doc/page_custom_transport_value_layer.html)
217217
COMMS library tutorial page.

howtos/howto9/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ and copied to the protocol definition
3838
([include/howto9/frame/layer/Checksum.h](include/howto9/frame/layer/Checksum.h))
3939
by the code generator.
4040

41-
It extends [comms::frame::ChecksumPrefixLayer](https://commschamp.github.io/comms_doc/classcomms_1_1protocol_1_1ChecksumPrefixLayer.html)
41+
It extends [comms::frame::ChecksumPrefixLayer](https://commschamp.github.io/comms_doc/classcomms_1_1frame_1_1ChecksumPrefixLayer.html)
4242
because the checksum field is located before the message payload.
4343

4444
Also note the usage of
@@ -62,10 +62,10 @@ class Checksum : public
6262
```
6363

6464
The default implementation of the checksum calculation functionality inside the
65-
[comms::frame::ChecksumPrefixLayer](https://commschamp.github.io/comms_doc/classcomms_1_1protocol_1_1ChecksumPrefixLayer.html)
65+
[comms::frame::ChecksumPrefixLayer](https://commschamp.github.io/comms_doc/classcomms_1_1frame_1_1ChecksumPrefixLayer.html)
6666
proceeds forward to the payload calculation. However, the protocol specification demands calculation of the checksum on
6767
the preceding framing header instead. The customization of the default behaviour is possible by overriding the
68-
[comms::frame::ChecksumPrefixLayer::calculateChecksum()](https://commschamp.github.io/comms_doc/classcomms_1_1protocol_1_1ChecksumPrefixLayer.html) member function.
68+
[comms::frame::ChecksumPrefixLayer::calculateChecksum()](https://commschamp.github.io/comms_doc/classcomms_1_1frame_1_1ChecksumPrefixLayer.html) member function.
6969
```cpp
7070
template<typename TField, typename TNextLayer, typename... TOptions>
7171
class Checksum : public comms::frame::ChecksumPrefixLayer<...>

tutorials/tutorial11/README.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,22 +50,22 @@ may be created. To avoid that there is a need to request "static-binary-search"
5050
process as well. In order to understand how to do it there is a need to dive a little bit into the
5151
[COMMS Library](https://github.com/commschamp/comms) internals.
5252
53-
The framing uses [comms::frame::MsgIdLayer](https://commschamp.github.io/comms_doc/classcomms_1_1protocol_1_1MsgIdLayer.html)
53+
The framing uses [comms::frame::MsgIdLayer](https://commschamp.github.io/comms_doc/classcomms_1_1frame_1_1MsgIdLayer.html)
5454
which is responsible to read received numeric message ID and create appropriate message object.
5555
In order to create such object the
56-
[comms::frame::MsgIdLayer](https://commschamp.github.io/comms_doc/classcomms_1_1protocol_1_1MsgIdLayer.html)
56+
[comms::frame::MsgIdLayer](https://commschamp.github.io/comms_doc/classcomms_1_1frame_1_1MsgIdLayer.html)
5757
contains [comms::MsgFactory](https://commschamp.github.io/comms_doc/classcomms_1_1MsgFactory.html) in its
5858
private data members. The
5959
contained [comms::MsgFactory](https://commschamp.github.io/comms_doc/classcomms_1_1MsgFactory.html)
6060
can be configured to use appropriate dispatch logic via its options. The relevant options are:
6161
`comms::option::app::ForceDispatchPolymorphic`, `comms::option::app::ForceDispatchStaticBinSearch`, or
6262
`comms::option::app::ForceDispatchLinearSwitch`. The
63-
[comms::frame::MsgIdLayer](https://commschamp.github.io/comms_doc/classcomms_1_1protocol_1_1MsgIdLayer.html)
63+
[comms::frame::MsgIdLayer](https://commschamp.github.io/comms_doc/classcomms_1_1frame_1_1MsgIdLayer.html)
6464
has its own supported options which it processes. The ones it doesn't expect are passed to the
6565
[comms::MsgFactory](https://commschamp.github.io/comms_doc/classcomms_1_1MsgFactory.html).
6666
It means in order to avoid creation of virtual functions inside
6767
[comms::MsgFactory](https://commschamp.github.io/comms_doc/classcomms_1_1MsgFactory.html) the
68-
[comms::frame::MsgIdLayer](https://commschamp.github.io/comms_doc/classcomms_1_1protocol_1_1MsgIdLayer.html)
68+
[comms::frame::MsgIdLayer](https://commschamp.github.io/comms_doc/classcomms_1_1frame_1_1MsgIdLayer.html)
6969
needs to receive `comms::option::app::ForceDispatchStaticBinSearch` option.
7070
7171
The used `Frame` inside the [include/tutorial11/frame/Frame.h](include/tutorial11/frame/Frame.h) is defined
@@ -192,7 +192,7 @@ private:
192192
Another curious thing to notice is a lack of virtual destructor for the common message interface
193193
class (due to the lack of any polymorphic behaviour). During the `read()` operation the frame
194194
dynamically allocates proper message object and holds it by the `std::unique_ptr` to the
195-
**common message interface** class (see [Frame::MsgPtr](https://commschamp.github.io/comms_doc/classcomms_1_1protocol_1_1ProtocolLayerBase.html)).
195+
**common message interface** class (see [Frame::MsgPtr](https://commschamp.github.io/comms_doc/classcomms_1_1frame_1_1ProtocolLayerBase.html)).
196196
After reading these statements any experienced C++ developer should scream about
197197
incorrect message destruction and potential memory leaks. **HOWEVER**, this is not the case
198198
with the [COMMS Library](https://github.com/commschamp/comms). It
@@ -319,11 +319,11 @@ std::size_t ClientSession::processInputImpl(const std::uint8_t* buf, std::size_t
319319
to the common message interface class, but with a custom deleter which insures
320320
correct destruction and de-allocation of the object.
321321
- The framing layer responsible for allocation of the message object is
322-
[comms::frame::MsgIdLayer](https://commschamp.github.io/comms_doc/classcomms_1_1protocol_1_1MsgIdLayer.html), which
322+
[comms::frame::MsgIdLayer](https://commschamp.github.io/comms_doc/classcomms_1_1frame_1_1MsgIdLayer.html), which
323323
uses [comms::MsgFactory](https://commschamp.github.io/comms_doc/classcomms_1_1MsgFactory.html) in its
324324
private data members to allocate appropriate message object when the ID value is known.
325325
- The message allocation options passed to the
326-
[comms::frame::MsgIdLayer](https://commschamp.github.io/comms_doc/classcomms_1_1protocol_1_1MsgIdLayer.html) are
326+
[comms::frame::MsgIdLayer](https://commschamp.github.io/comms_doc/classcomms_1_1frame_1_1MsgIdLayer.html) are
327327
also forwarded to [comms::MsgFactory](https://commschamp.github.io/comms_doc/classcomms_1_1MsgFactory.html). They
328328
can be used to force a particular dispatch policy for mapping numeric message ID into the message type.
329329
- In order to forcefully avoid generation on polymorphic dispatch table inside

0 commit comments

Comments
 (0)