source: Sophya/trunk/SophyaExt/FitsIOServer/fiosinit.cc@ 3038

Last change on this file since 3038 was 3038, checked in by ansari, 19 years ago

suppression de l initialiseur statique pour FitsIOServer suite plantage vu sur Mac (pb de l ordre d initilisation des shared libs , Reza 19/7/2006

File size: 2.8 KB
Line 
1// Classe d'initialisation du module FitsIOServer
2
3#include "sopnamsp.h"
4#include "machdefs.h"
5#include "fiosinit.h"
6#include "fitsmanager.h"
7#include "fitshdtable.h"
8#include "fitsarrhand.h"
9
10#include "fitsntuple.h"
11#include "fitsspherehealpix.h"
12#include "fitsspherethetaphi.h"
13#include "fitslocalmap.h"
14
15
16#include <iostream>
17
18/*!
19 \class SOPHYA::FitsIOServerInitiator
20 \ingroup FitsIOServer
21 Perform registration of fits handlers.
22 \sa SOPHYA::FitsManager
23 */
24int FitsIOServerInitiator::FgInit = 0;
25
26// Module version number - 2.0 , Jul 2006
27#define MOD_VERS 2.0
28
29FitsIOServerInitiator::FitsIOServerInitiator()
30 : SophyaInitiator()
31{
32 FitsIOServerInitiator::FgInit++;
33 if (FitsIOServerInitiator::FgInit > 1) return;
34
35// Enregistrement des classes FitsHandler
36 //DBG cout << " ---- FitsIOServerInitiator / DEBUG ---- debut RegisterHandler " << endl;
37 FitsManager::RegisterHandler(new FitsArrayHandler<int_2> , 1, "TArray<int_2>");
38 FitsManager::RegisterHandler(new FitsArrayHandler<int_4> , 1, "TArray<int_4> ");
39 FitsManager::RegisterHandler(new FitsArrayHandler<r_4> , 1, "TArray<r_4>");
40 FitsManager::RegisterHandler(new FitsArrayHandler< r_8 > , 1, "TArray<r_8>");
41
42 FitsManager::RegisterHandler(new FitsHandler<BaseDataTable>, 1, "DataTable");
43
44 // Enregistrement des classes heritant de FitsIOHandler
45 FitsManager::RegisterHandler(new FITS_NTuple, 0, "NTuple");
46
47 FitsManager::RegisterHandler(new FITS_SphereHEALPix<r_4> , 0, "SphereHEALPix<r_4>");
48 FitsManager::RegisterHandler(new FITS_SphereHEALPix<r_8> , 0, "SphereHEALPix<r_8>");
49 FitsManager::RegisterHandler(new FITS_SphereHEALPix<int_4> , 0, "SphereHEALPix<int_4>");
50
51 FitsManager::RegisterHandler(new FITS_SphereThetaPhi<r_4> , 0, "SphereThetaPhi<r_4>");
52 FitsManager::RegisterHandler(new FITS_SphereThetaPhi<r_8> , 0, "SphereThetaPhi<r_8>");
53 FitsManager::RegisterHandler(new FITS_SphereThetaPhi<int_4> , 0, "SphereThetaPhi<int_4>");
54
55 FitsManager::RegisterHandler(new FITS_LocalMap<r_4> , 0, "LocalMap<r_4>");
56 FitsManager::RegisterHandler(new FITS_LocalMap<r_8> , 0, "LocalMap<r_8>");
57 FitsManager::RegisterHandler(new FITS_LocalMap<int_4> , 0, "LocalMap<int_4>");
58
59 //DBG cout << " ---- FitsIOServerInitiator / DEBUG ---- ListHandlers() : " << endl;
60 //DBG FitsManager::ListHandlers();
61
62 SophyaInitiator::RegisterModule("FitsIOServer", MOD_VERS); // Module name and version number registration
63}
64
65FitsIOServerInitiator::~FitsIOServerInitiator()
66{
67 FitsIOServerInitiator::FgInit--;
68}
69
70
71// On met un objet initiator en statique, pour les loaders qui savent
72// appeler le constructeur des objets statiques
73// #if !defined(Darwin)
74// Probleme rencontre de nouveau en Juillet 2006 sur MacOS :
75// La presence de l'objet statique fait planter les progs linkes libextsophya.dylib
76// static FitsIOServerInitiator s_fios_init_;
77// #endif
78
Note: See TracBrowser for help on using the repository browser.