Вопрос : Вопрос конструкции, дата от /proc

Hi,

This больше для того чтобы получить, что некоторой обратной связи моей конструкции после этого фактическую проблему разрешило. Я думал я даст ему попытку в виду того что вы ванты настолько полезные предыдущие.

Ok здесь она. Я пытаюсь написать программу A.C. ++ идет принять снимок системы файлов /proc. До тех пор я писал парсер для того чтобы parse каждая директива pid. Снимок после этого будет типом заключая структуру proc я пытаюсь конструировать.


[ProcInfo]  |-----1312--
[Dir]  |                   |
  |                   |---smap--
[архива]  |                   |                   |--RSS--
[данных]  |                   |                   |--USS--
[данных]  |                   |                   |--PSS--
[данных]  |                   |---cmdline--
[архива]  |                   |                    |--cmd--
[данных]  |                   |---сеть--
[Dir]  |                                  |---sockstat6--
[архива]  |                                  |                         |--TCP6--
[данных]  |---meminfo--
[архива]                         |---memtotal--Тип =A

[данных] [ProcInfo] представляя proc должно унаследовать фактически тип =A class
снимка [Dir] представляя dir в proc должно унаследовать фактически тип =A class
снимка [архива] представляя архив в proc должно унаследовать фактически тип =A class
снимка [данных] представляющ данные те
снимка парсера returns.

class {свободное пространство
фактически прилагает (Snapshot*) = 0;
};

class Dir : общественное Snapshot
{


……….
приватное:
std: map;
}; архив

class: общественное Snapshot
{


……….
приватное:
std: map;
};


class ProcInfo : общественное Dir
{

…….
};

I после этого хотел было бы использовать это в резьбе бежит каждый sec 10 и принимать снимок proc

ProcHandler /ptoc; *procInfo
ProcInfo = proc.snapshot (); pidSnapshot

Dir = procInfo->getPid (1312); данные по
Data = pidSnapshot.get (ProcInfo:: RSS); rss
int = data.toInt (); sRss
string = data.toString (); memSnapshot

File = procInfo->getSystem (ProcInfo:: MEM); данные по
Data = memSnapshot.get (ProcInfo:: MEMTOTAL); mem
int = data.toInt (); sMem
string = data.toString ();

delete procInfo;комментарии

Any на этой конструкции были бы очень оцененными даже малыми одними, котор мне как раз нужно получить некоторое питание назад. Я вытаращился на этой конструкции к длиной и я думаю что я имею заперто мою собственную личность внутри к этому конструкция. Мне нужно некоторые новые глаза взглянуть на ем и возможно они могут увидеть некоторые проблемы или возможно гораздо лучшее design.


class=

Ответ : Вопрос конструкции, дата от /proc


Кажет одобренн к мне, но в виду того что вы попросили новые идеи, здесь идет --

- По мере того как дело pref/вкус я много довольно держало бы non-members преобразований как, поэтому я не должен pollute поверхность стыка и не препятствую никакому новому преобразованию быть добавленным к системе легк. Но по мере того как я сказал, то будет дело вкуса возможно.

Новообращенный (данные d);
Новообращенный (d);

- С вас поговорил о уменьшая отключениях и ширине полосы частот сервера и сопадающе использовал фразу «снимка», его будет естественн для того чтобы думать также «дифференциальных снимков». Так идея что вы принимаете главным образом снимок.

pidSnapshot Dir = procInfo->getPid (1312);
Разница в = pidSnapshot->difference SnapShot* ();

Снимок:: разница ();
Снимок:: applyDifferential (Snapshot* d)

Так как дорога, только значения которые имеют изменение в виду того что последний захват будет возвращен и которые может причинить огромные сбереженияа оперируя понятиями представления.

- Вы уверенн система файлов proc не имеете символические соединения (я намереваюсь такая же реальность появляясь под множественные крапивницы)? Если да, после этого она одобренная для того чтобы держать 2 экземпляра такого же материала. Я угадываю он не имеет значение очень, покуда предмет значения снимка как раз.

- Довольно чем имеющ вид очень специфически accessors, etc getPid () было бы более стояще если вы smogли иметь в низкопробном типе, то родовой, котор комплект методов находки () как говорит

фактически снимок Snapshot*:: находка (ребенок шнура) {
}

Также как о основании снимка имеет детей

тип SnapshotContainer: общественный снимок
{
фактически снимок Snapshot*:: находка (ребенок шнура) {
}
приватно:
  std: *mpData карты;
};

- Был полезн, если вы также обеспечиваете небольшое но важное изменение для находки (), то вызовите ее обнаружьте местонахождение () то принимает курс (довольно чем имя) и делает пакостную работу делать траверсировать.

курс // находится в этой форме, /root/net/sockstats/tcpip6
Снимок Snapshot*:: размещайте (курс шнура) {
}

- Самое важное изменение я сделал бы должно было бы сделать снимком предмет подсчитанный справкой и после того как оно возвращено франтовскому/refptr к снимку довольно чем сырцовые указатели. То реально дает много силу, специально когда вы хотите мочь fetch дети и сдержать они вокруг (возможно)

снимок типа: общественное RefCounted // видит Poco:: RefCounted для REF.
{
}

typedef RefCountedPtr RefSnapshot;

Понадейтесь эт помощь…
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us