Convert rtems-record-lttng program to C++

Chris Johns chrisj at rtems.org
Mon Sep 2 05:19:48 UTC 2019


On 2/9/19 3:09 pm, Sebastian Huber wrote:
> On 01/09/2019 04:46, Chris Johns wrote:
>> On 31/8/19 5:29 am, Sebastian Huber wrote:
>>> attached are two patches which convert the rtems-record-lttng client program
>>> from C to C++.
>>
>> Is this a step to a full C++ app?
> 
> Yes, it is a step.

Great.

>>
>> The following are some observations about the C++ piece of code...
>>
>> Why in this code ..
>>
>> +
>> +#include <rtems/recordclient.h>
>> +#include <rtems/recorddata.h>
>> +
>> +#include <assert.h>
>> +#include <fcntl.h>
>> +#include <sys/socket.h>
>> +#include <sys/stat.h>
>> +#include <unistd.h>
>> +
>> +#include <arpa/inet.h>
>> +#include <netinet/in.h>
>> +
>> +#include <csignal>
>> +#include <cstring>
>> +
>> +#ifndef RTEMS_TOOLS_TRACE_RECORD_CLIENT_H_
>> +#define RTEMS_TOOLS_TRACE_RECORD_CLIENT_H_
>> +
>>
>> are the includes not protected as well? 
> 
> Hm, this was not intentional. I hope the formatter didn't cause this. I have to
> check that.

Oh!

>> I think the inlines in Client are too
>> big and would be better in a .cc or .cpp file.
> 
> Is it worth doing this? All the code ends up in a main().
> 

Yes, you need to treat C++ is some respect and this is a common trap. If this
was C you would not inline all the code in headers!

>> Why use an assert when you can
>> throw an exception?
> 
> Yes, this is the next step. The client.h is more or less a copy and paste from
> the record-main-lttng.cc.
> 

Great. I am fine with a progression. Sorry I had to ask, it is difficult to tell
from a patch :)

Chris


More information about the devel mailing list