Salome HOME
NRI : Merge from V1_2.
[modules/yacs.git] / src / SALOMEDS / SALOMEDS_Callback_i.hxx
1 //  SALOME SALOMEDS : data structure of SALOME and sources of Salome data server 
2 //
3 //  Copyright (C) 2003  CEA/DEN, EDF R&D
4 //
5 //
6 //
7 //  File   : SALOMEDS_Study_i.hxx
8 //  Author : Yves FRICAUD
9 //  Module : SALOME
10
11 #ifndef __SALOMEDS_CALLBACK_I_H__
12 #define __SALOMEDS_CALLBACK_I_H__
13
14 // IDL headers
15 #include <SALOMEconfig.h>
16 #include CORBA_SERVER_HEADER(SALOMEDS)
17
18 class SALOMEDS_Callback_i: public POA_SALOMEDS::Callback,
19                            public PortableServer::RefCountServantBase {
20
21 private:
22   CORBA::ORB_var _orb;
23   SALOMEDS::UseCaseBuilder_var _builder;
24
25 public:
26
27  SALOMEDS_Callback_i(SALOMEDS::UseCaseBuilder_ptr builder, CORBA::ORB_ptr orb) {
28    _orb = CORBA::ORB::_duplicate(orb);
29    _builder = SALOMEDS::UseCaseBuilder::_duplicate(builder);
30  }
31
32  virtual void OnAddSObject(SALOMEDS::SObject_ptr theObject) {
33    if(!_builder->_is_nil() && !theObject->_is_nil()) _builder->Append(theObject);
34  }
35
36  virtual void OnRemoveSObject(SALOMEDS::SObject_ptr theObject) {
37    if(!_builder->_is_nil() && !theObject->_is_nil()) _builder->Remove(theObject);
38  }
39
40 };
41
42 #endif