source: Sophya/trunk/SophyaPI/PIext/nobjmgr.h@ 3994

Last change on this file since 3994 was 3423, checked in by ansari, 18 years ago

ajout possibilite lecture ppf sequentielle (sans nametag) avec openppf et amelioration texte de help piapp, Reza 08/12/2007

File size: 5.6 KB
Line 
1// This may look like C code, but it is really -*- C++ -*-
2// Classe de gestion d objets nommes pour piapp
3// Reza Aout 97 , Juillet,Aout 98
4// CEA-DAPNIA LAL-IN2P3/CNRS
5
6#ifndef NOBJMGR_H_SEEN
7#define NOBJMGR_H_SEEN
8
9#include "machdefs.h"
10
11#include <fstream>
12#include <string>
13#include <vector>
14
15#include "anydataobj.h"
16#include "ppersist.h"
17#include "dvlist.h"
18#include "dlftypes.h"
19
20
21class NObjMgrAdapter;
22class PIStdImgApp;
23class Services2NObjMgr;
24
25class NamedObjMgr {
26public:
27// Constructeur et destructeur
28 NamedObjMgr(bool fgimgapp=false);
29 virtual ~NamedObjMgr();
30
31 virtual void SetImgApp(PIStdImgApp* app);
32 virtual void SetVerbose(bool fg=false);
33
34// Gestion des variables globales (dans un DVList)
35 virtual bool SetVar(string const & key, string const & val);
36 virtual bool HasVar(string const & key);
37 virtual bool DeleteVar(string const & key);
38 virtual string GetVar(string const & key);
39 virtual DVList& GetVarList();
40
41// Gestion des repertoires (Repertoire d'objets en memoire)
42 virtual bool CreateDir(string & dirname);
43 virtual bool DeleteDir(string & dirname);
44 virtual void LockDir(string & dirname);
45 virtual void UnlockDir(string & dirname);
46 virtual void SetKeepOldDirAtt(string & dirname, bool keepold=false);
47 virtual bool SetCurrentDir(string & dirname);
48 virtual void GetCurrentDir(string & dirname);
49 virtual void ListDirs(string & patt);
50 virtual void GetDirList(string & patt, vector<string>& );
51 virtual void CleanDir(string & dirname);
52
53// Pour ajouter, supprimer et acceder aux objets
54 virtual bool AddObj(AnyDataObj* obj, string & nom, bool crd=false);
55 virtual bool AddObj(AnyDataObj& obj, string & nom, bool crd=false);
56 virtual bool RenameObj(string & nom, string& nomnew);
57 virtual bool DelObj(string & nom, bool fgd=true);
58 virtual void DelObjects(string & patt, bool fgd=true);
59 virtual bool DelObj_Id(int oid);
60 virtual AnyDataObj* GetObj(string & nom);
61// Acces a l'adaptateur
62 virtual NObjMgrAdapter* GetObjAdapter(string & nom);
63// Liste des objets
64 virtual void ListObjs(string & patt);
65 virtual void GetObjList(string & patt, vector<string>& );
66// Methode CopyObj() a virer probablement (Reza 30/8/200 obsolete ?)
67 virtual bool CopyObj(string & nom, string& nomcp);
68
69// Lecture et sauvegarde des objets sur fichier
70 virtual void ReadObj(PInPersist& s, int num=-1);
71 virtual void ReadObj(string const & nomppf, string & nobj);
72 virtual void ReadObj(vector<string> & flnm_objname);
73 virtual void ReadAll(string const & nomppf, bool atnametags=true);
74 virtual void SaveObj(string & nom, POutPersist& s, bool keeppath=false);
75 virtual void SaveObjects(string & patt, string const& nomppf);
76 virtual void SaveListObjects(vector<string> &liste);
77 virtual void SaveAll(string const& nomppf);
78
79// Info sur les objets
80 virtual void PrintObj(string & nom, int lev=0);
81
82// Affichage des objets
83 virtual void DisplayObj(string & nom, string dopt="");
84 virtual void DisplayImage(string & nom, string dopt="", bool fgimagnav=false);
85 virtual void DisplaySurf3D(string & nom, string dopt="");
86 virtual void DisplayNT(string & nom, string& nmx, string& nmy, string& nmz,
87 string& erx, string& ery, string& erz, string& wt,
88 string& label, string& colornm, bool coloridx=false,
89 string dopt="", bool fg3d=false);
90 virtual void DisplayGFD(string & nom, string& numvarx, string& numvary,
91 string& err, string dopt="");
92
93 virtual void DisplayVector(string & nomvx, string& nomvy, string dopt="");
94
95
96// Acces au PIApplication et a la classe de service
97 virtual PIStdImgApp* GetImgApp();
98 virtual Services2NObjMgr* GetServiceObj();
99 virtual string const& GetTmpDir();
100 virtual void SetTmpDir(string const& tmpdir);
101
102// Pour convertir un nom d'objet en identificateur d'objet (OId)
103 virtual int NameToOId(string & nom);
104
105// Ajoute un identificateur d'objet widget/drawer/fenetre pour l'objet nom
106// Ces identificateurs servent lors de la destruction de l'objet nom
107 virtual void AddWRsId(string & nom, int wrsid);
108// Pour utilisation par ObjMgrWind
109 virtual void UpdateObjMgrWindow(int did);
110 virtual void SetObjMgrWindowVisibility(bool fgvis=false);
111
112// Pour completer le nom de l'objet avec le nom du repertoire
113 static void RemoveSpacesFromName(string & nom);
114 static bool CheckDirName(string & nom);
115 static int ParseObjectName(string & nom, string & nomrep, string & nomobj);
116// return true if name is valid
117 static bool CheckName(string const & nom);
118
119protected:
120 // Les methodes _P sont celles SANS ZSync() - pour un usage interne par NamedObjMgr
121 virtual bool CreateDir_P(string & dirname);
122 virtual void CleanDir_P(string & dirname);
123 virtual bool AddObj_P(AnyDataObj* obj, string & nom, bool crd);
124 virtual bool RenameObj_P(string & nom, string& nomnew);
125 virtual bool DelObj_P(string & nom, bool fgd=true);
126 virtual AnyDataObj* GetObj_P(string & nom);
127 virtual NObjMgrAdapter* GetObjAdapter_P(string & nom);
128 virtual void ReadObj_P(PInPersist& s, int num=-1);
129 virtual void SaveObj_P(string & nom, POutPersist& s, bool keeppath=false);
130
131 virtual int NameToOId_P(string & nom);
132 virtual void AddWRsId_P(string & nom, int wrsid);
133 virtual void UpdateObjMgrWindow_P(int did);
134
135 bool _fgimgapp; // true -> cree par PIStdImgApp / pour gestion de thread
136};
137
138
139#endif
Note: See TracBrowser for help on using the repository browser.