30 #ifndef _CORBA_TYPE_MANIPULATION_HXX_
31 #define _CORBA_TYPE_MANIPULATION_HXX_
35 #include <omniORB4/CORBA.h>
65 template <
typename T >
92 return new T (* data);
124 template <
typename T>
190 std::cerr <<
"[atom_manipulation] Data : " << data << std::endl;
197 template <
typename seq_T,
typename elem_T>
210 CORBA::Long len = data.length();
211 CORBA::Long max = data.maximum();
233 std::cout <<
"----seq_u_manipulation::get_data(..)-- MARK 1 ------------------" << std::endl;
235 if ( data.release() ) {
236 InnerType * p_data =
const_cast<seq_T &
>(data).get_buffer(
true);
242 std::cout <<
"----seq_u_manipulation::get_data(..)-- MARK 1(0 copy) bis ------"<< p_data <<
"------------" << std::endl;
245 return new seq_T (max, len, p_data,
true);
248 std::cout <<
"----seq_u_manipulation::get_data(..)-- MARK 1(recopie) bis ------"<< &data <<
"------------" << std::endl;
251 return new seq_T(data);
256 return data->length();
270 return new seq_T (*data) ;
273 return new seq_T (data);
286 p_data = data->get_buffer(
true);
289 p_data = data->get_buffer(
false);
296 seq_T::freebuf(dataPtr);
301 return seq_T::allocbuf(size);
310 bool giveOwnerShip =
false ) {
316 tmp =
new seq_T(size,size,data,giveOwnerShip);
323 template <
typename T >
324 static inline void copy(
Type data, T *
const idata,
size_t isize ) {
328 for (
int i = 0; i< isize; ++i)
349 static inline void copy(
Type data,
char* *
const idata,
size_t isize ) {
355 for (
int i = 0; i< isize; ++i)
356 strcpy(idata[i],dataPtr[i]);
362 std::cerr <<
"[seq_u_manipulation] Data length: " << data.length() << std::endl;
364 std::cerr <<
"[seq_u_manipulation] Data max: " << data.maximum() << std::endl;
377 template <
typename seq_T,
typename elem_T>
392 CORBA::Long len = data.length();
396 if ( data.release() ) {
397 InnerType * p_data =
const_cast<seq_T &
>(data).get_buffer(
true);
403 std::cout <<
"----seq_u_manipulation::get_data(..)-- MARK 1bis Pas de Duplication -----------" << std::endl;
405 return new seq_T (len, p_data,
true);
408 std::cout <<
"----seq_u_manipulation::get_data(..)-- MARK 1bis Duplication pour en devenir propriétaire -----------" << std::endl;
411 return new seq_T(data);
416 return data->length();
422 return new seq_T (* data);
425 return new seq_T (data);
443 p_data = data->get_buffer(
true);
446 p_data = data->get_buffer(
false);
454 seq_T::freebuf(dataPtr);
459 return seq_T::allocbuf(size);
468 bool giveOwnerShip =
false ) {
474 tmp =
new seq_T(size,data,giveOwnerShip);
483 std::cerr <<
"[seq_b_manipulation] Data length: " << data.length() << std::endl;