модульный дизайн приложений на c ++ и общая память shm - PullRequest
0 голосов
/ 09 ноября 2018

Мне нужно провести рефакторинг приложения промышленного процесса, чтобы он был очень легко модульным / настраиваемым.

Это приложение будет использовать модуль / плагины. каждый модуль содержит функцию, доступную для управления устройством (представьте, что это 3D-принтер, у меня есть устройство XY, устройство нагрева головки, устройство подачи проволоки ...). Но мое приложение действительно больше этого ...

Каждый из этих плагинов должен совместно использовать ресурсы данных через общие области памяти в системе (для процессов графического интерфейса)

Мне нужно найти способ обмена данными некоторых классов внутри областей общей памяти системы (данные POD).

Задача состоит в том, чтобы найти способ реализовать это как можно проще. шаблоны, пространства имен ... или другие функции c ++ 17 могут приветствоваться. Это может включать в себя полное мышление / рефакторинг существующего приложения. На данный момент это означает, что у меня есть некоторый класс со структурой, содержащей данные:

typedef struct mydata {
   int data1;
   float data2;
} T_mydata; 


struct{
   // some data ...
   ...
   // ptr to class struct data 
   T_mydata a_ptr;
   // some other data ...
}
*shmptr;

class A {
T_mydata *data_ptr; // will point *shmptr->a_ptr;
... 
};

1 Ответ

0 голосов
/ 09 ноября 2018

Для реализации разделяемой памяти, связи и т. Д. * В библиотеке 1001 * есть утилиты для simpel, а также довольно сложные понятия.

...