Semble correct à moi, mais puisque vous avez demandé de nouvelles idées, va ici --
- Car une question de de préférence/goût je beaucoup plutôt garderait les non éléments de circuit de conversions comme, ainsi je ne dois pas polluer l'interface et ne laisse aucune nouvelle conversion être ajoutée au système facilement. Mais comme j'ai dit, c'est une question de goût peut-être.
Converti (données d) ;
Converti (d) ;
- Depuis vous a parlé des voyages et de la largeur de bande de minimisation de serveur et a coïncidemment employé l'expression de « instantané », il est normal de penser également « à des instantanés différentiels ». Ainsi l'idée est que vous prenez un instantané primaire.
pidSnapshot de Dir = procInfo->getPid (1312) ;
Différence = pidSnapshot->difference de SnapShot* () ;
Instantané : : différence () ;
Instantané : : applyDifferential (Snapshot* d)
De sorte que manière, seulement valeurs qui ont le changement puisque la dernière capture sera retournée et qui peuvent causer l'épargne énorme en termes d'exécution.
- Êtes-vous sûr le système de fichiers de proc n'a-t-vous pas des liens symboliques est-ce que (je veux dire la même entité apparaissant sous les ruches multiples) ? Si oui, est alors elle correcte pour garder deux copies des mêmes informations. Je devine qu'elle n'importe pas beaucoup, tant que un objet de la valeur de l'instantané juste.
- Plutôt qu'ayant le genre du getPid () etc. d'accédants très spécifiques, il serait plus valable si vous pourriez avoir dans la classe basse qu'un ensemble générique de méthodes de trouvaille () comme indiquent
instantané virtuel de Snapshot* : : trouvaille (enfant de corde) {
}
Également que diriez-vous de la base d'instantané qui a des enfants
classe SnapshotContainer : instantané public
{
instantané virtuel de Snapshot* : : trouvaille (enfant de corde) {
}
privé :
DST : *mpData de carte ;
} ;
- Être utile, si vous fournissez également une légère mais importante variation pour la trouvaille (), l'appellent localisent () le ce prend un chemin (plutôt qu'un nom) et réalise le travail sale de faire la traversée.
le chemin de // est sous cette forme, /root/net/sockstats/tcpip6
Instantané de Snapshot* : : placer (chemin de corde) {
}
- La modification la plus importante que j'apporterais serait de faire à l'instantané un objet compté par référence et retourné un futé/refptr à l'instantané plutôt que les indicateurs crus. Cela donnent vraiment beaucoup de puissance, particulièrement quand vous voulez pouvoir chercher des enfants et les garder autour de (peut-être)
instantané de classe : RefCounted public // voient Poco : : RefCounted pour le réf.
{
}
typedef RefCountedPtr RefSnapshot ;
Espérer ces l'aide…