1 // Copyright (C) 2007-2024 CEA, EDF, OPEN CASCADE
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 // Lesser General Public License for more details.
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
20 #include "ATOMSOLV.hxx"
21 #include "ATOMSOLV_version.h"
22 #include "utilities.h"
29 ATOMSOLV_Abstract::ATOMSOLV_Abstract(CORBA::ORB_ptr orb,
30 PortableServer::POA_ptr poa,
31 PortableServer::ObjectId * contId,
32 const char *instanceName,
33 const char *interfaceName,
35 Engines_Component_i(orb, poa, contId, instanceName, interfaceName, false, withRegistry)
37 MESSAGE("activate object");
39 _id = _poa->activate_object(_thisObj);
40 myData = new ATOMSOLV_ORB::TMoleculeList();
43 ATOMSOLV_Abstract::~ATOMSOLV_Abstract()
47 CORBA::Boolean ATOMSOLV_Abstract::setData( const ATOMSOLV_ORB::TMoleculeList& theData )
49 const int n = theData.length();
50 ATOMSOLV_ORB::TMoleculeList_var data = new ATOMSOLV_ORB::TMoleculeList();
52 for ( int i = 0; i < n; i++ )
53 data[ i ] = theData[ i ];
55 // printf( " -- ATOMSOLV::setData() length = %d\n", data->length() );
56 myData = data._retn();
61 CORBA::Boolean ATOMSOLV_Abstract::getData( ATOMSOLV_ORB::TMoleculeList_out outData )
63 ATOMSOLV_ORB::TMoleculeList* data = myData;
64 // printf( " -- ATOMSOLV_Abstract::getData() length = %d\n", data->length() );
65 const int n = data->length();
66 outData = new ATOMSOLV_ORB::TMoleculeList();
68 for ( int i = 0; i < n; i++ )
69 (*outData)[ i ] = (*data)[ i ];
73 CORBA::Boolean ATOMSOLV_Abstract::processData()
75 ATOMSOLV_ORB::TMoleculeList* data = myData;
76 for ( int i = 0, n = data->length(); i < n; i++ )
77 (*data)[i].temperature = rand();
81 char* ATOMSOLV_Abstract::getVersion()
83 #if defined(ATOMSOLV_DEVELOPMENT)
84 return CORBA::string_dup(ATOMSOLV_VERSION_STR"dev");
86 return CORBA::string_dup(ATOMSOLV_VERSION_STR);
92 PortableServer::ObjectId * ATOMSOLVEngine_factory(
94 PortableServer::POA_ptr poa,
95 PortableServer::ObjectId * contId,
96 const char *instanceName,
97 const char *interfaceName)
99 MESSAGE("PortableServer::ObjectId * ATOMSOLVEngine_factory()");
100 SCRUTE(interfaceName);
101 CORBA::Object_var o = poa->id_to_reference(*contId);
102 Engines::Container_var cont = Engines::Container::_narrow(o);
103 if(cont->is_SSL_mode())
105 ATOMSOLV_No_Session * myATOMSOLV = new ATOMSOLV_No_Session(orb, poa, contId, instanceName, interfaceName);
106 return myATOMSOLV->getId() ;
110 ATOMSOLV_Session * myATOMSOLV = new ATOMSOLV_Session(orb, poa, contId, instanceName, interfaceName);
111 return myATOMSOLV->getId() ;