Codemesh Runtime v3 C++ API Reference  3.9.205
xmog_java_array.h
1 //
2 // Copyright (c) 1999-2020 by Codemesh, Inc.. ALL RIGHTS RESERVED.
3 //
4 
5 
6 #ifndef xmog_java_array_inc
7 #define xmog_java_array_inc
8 
9 
10 #include "xmog.h"
11 #include "xmog_base.h"
12 #include "xmog_java_ref.h"
13 #include "xmog_java_dynamic.h"
14 #include "xmog_java_class.h"
15 
16 
17 
19 
20 class xmog_java_array;
21 struct xmog_java_values;
22 class xmog_localenv;
23 class xmog_bool;
24 class xmog_jboolean;
25 class xmog_byte;
26 class xmog_char;
27 class xmog_double;
28 class xmog_float;
29 class xmog_int;
30 class xmog_long;
31 class xmog_short;
32 class xmog_null;
33 
35 
164 
180 class XMOG_DECLSPEC xmog_java_element : public xmog_java_dynamic
181 {
182 public:
183 
188 
193 
198 
207  virtual bool get_bool( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = 0 ) ;
208 
217  virtual jboolean get_jboolean( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = 0 ) ;
218 
227  virtual jbyte get_byte( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = 0 ) ;
228 
237  virtual jchar get_char( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = 0 ) ;
238 
247  virtual jdouble get_double( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = 0 ) ;
248 
257  virtual jfloat get_float( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = 0 ) ;
258 
267  virtual jint get_int( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = 0 ) ;
268 
277  virtual jlong get_long( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = 0 ) ;
278 
287  virtual jshort get_short( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = 0 ) ;
288 
297  virtual jobject get_jobject( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = xmog_base::GLOBAL ) ;
298 
309  virtual void get_void( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = 0 ) ;
310 
318  virtual void set_bool( xmog_base * obj, bool b, xmog_localenv * env = NULL ) ;
319 
327  virtual void set_jboolean( xmog_base * obj, jboolean b, xmog_localenv * env = NULL ) ;
328 
336  virtual void set_byte( xmog_base * obj, jbyte b, xmog_localenv * env = NULL ) ;
337 
345  virtual void set_char( xmog_base * obj, jchar ch, xmog_localenv * env = NULL ) ;
346 
354  virtual void set_double( xmog_base * obj, jdouble d, xmog_localenv * env = NULL ) ;
355 
363  virtual void set_float( xmog_base * obj, jfloat f, xmog_localenv * env = NULL ) ;
364 
372  virtual void set_int( xmog_base * obj, jint i, xmog_localenv * env = NULL ) ;
373 
381  virtual void set_long( xmog_base * obj, jlong l, xmog_localenv * env = NULL ) ;
382 
390  virtual void set_short( xmog_base * obj, jshort sh, xmog_localenv * env = NULL ) ;
391 
399  virtual void set_jobject( xmog_base * obj, jobject o, xmog_localenv * env = NULL ) ;
400 };
401 
402 
410 class XMOG_DECLSPEC xmog_java_array_size
411 {
412 private:
413 
414  xmog_java_array * owner_;
415 
416  XMOG_MUTABLE jint size_;
417 
418 public:
419 
420  friend class xmog_java_array;
421 
429  XMOG_EXPLICIT xmog_java_array_size( xmog_java_array * owner, jint size = -1 );
430 
437  operator jint() const;
438 
447  jint to_jint( xmog_localenv * env ) const;
448 };
449 
450 
456 class XMOG_DECLSPEC xmog_java_array : public xmog_java_ref
457 {
458 public:
459 
463  xmog_java_array();
464 
473  xmog_java_array( jobject array, xmog_flags flags, jint size = -1, xmog_localenv * env = NULL );
474 
481  xmog_java_array( const xmog_null & );
482 
489  xmog_java_array( const xmog_java_array & _rhs, xmog_localenv * env = NULL );
490 
501  xmog_java_array( xmog_java_array * _arr, jint _index );
502 
513  xmog_java_array( xmog_java_class * _clazz, xmog_java_dynamic * _dynamic, xmog_flags _flags );
514 
530  xmog_java_array( xmog_base * _delegate, bool _owns_delegate = true );
531 
542  xmog_java_array( xmog_java_ref * _ref, xmog_java_dynamic * _dynamic, xmog_flags _flags );
543 
547  ~xmog_java_array();
548 
556 
562  jint get_length( xmog_localenv * env ) const;
563 
569  void xmog_invalidate( xmog_localenv * env = NULL );
570 
571 protected:
572 
576  void copy_( const xmog_java_array & _rhs, xmog_localenv * env = NULL );
577 
578 private:
579 
583  void * ptr_;
584 };
585 
586 
594 template< class ArrayType >
596 {
597 private:
598 
600  ArrayType array_;
601 
603  jint index_;
604 
605 public:
606 
608  typedef typename ArrayType::difference_type difference_type;
609 
613  typedef typename ArrayType::value_type value_type;
614 
617  array_(),
618  index_( -1 )
619  {
620  }
621 
625  array_( rhs.array_ ),
626  index_( rhs.index_ )
627  {
628  }
629 
632  xmog_array_iterator< ArrayType >( ArrayType & arr ) :
633  array_( arr ),
634  index_( 0 )
635  {
636  }
637 
641  xmog_array_iterator< ArrayType >( ArrayType & arr, jint ind ) :
642  array_( arr ),
643  index_( ind )
644  {
645  if( index_ == -1 && !array_.is_null_() )
646  index_ = array_.length;
647  }
648 
651  {
652  }
653 
657  {
658  array_ = rhs.array_;
659  index_ = rhs.index_;
660  return *this;
661  }
662 
663  bool operator < ( const xmog_array_iterator< ArrayType > & rhs ) const
664  {
665  return ( index_ != -1 && index_ < rhs.index_ ) || rhs.index_ == -1;
666  }
667 
668  bool operator <= ( const xmog_array_iterator< ArrayType > & rhs ) const
669  {
670  return rhs.index_ == -1 || ( index_ != -1 && index_ <= rhs.index_ );
671  }
672 
673  bool operator > ( const xmog_array_iterator< ArrayType > & rhs ) const
674  {
675  return ( rhs.index_ != -1 && rhs.index_ < index_ ) || index_ == -1;
676  }
677 
678  bool operator >= ( const xmog_array_iterator< ArrayType > & rhs ) const
679  {
680  return index_ == -1 || ( rhs.index_ != -1 && rhs.index_ < index_ );
681  }
682 
683  bool operator == ( const xmog_array_iterator< ArrayType > & rhs ) const
684  {
685  return ( index_ == rhs.index_ );
686  }
687 
688  bool operator != ( const xmog_array_iterator< ArrayType > & rhs ) const
689  {
690  return ( index_ != rhs.index_ );
691  }
692 
694  {
695  return xmog_array_iterator< ArrayType >( array_, index_ + diff );
696  }
697 
702  {
703  index_ = index_ + diff;
704  return *this;
705  }
706 
708  {
709  return xmog_array_iterator< ArrayType >( array_, index_ - diff );
710  }
711 
716  {
717  index_ = index_ - diff;
718  return *this;
719  }
720 
726  {
727  return array_[ index_ + ind ];
728  }
729 
734  {
735  return array_[ index_ ];
736  }
737 
742  {
743  ++index_;
744  return *this;
745  }
746 
751  {
752  return xmog_array_iterator< ArrayType >( array_, index_++ );
753  }
754 
759  {
760  --index_;
761  return *this;
762  }
763 
768  {
769  return xmog_array_iterator< ArrayType >( array_, index_-- );
770  }
771 
772 };
773 
774 
780 class XMOG_DECLSPEC xmog_java_bool_array : public xmog_java_array
781 {
782 private:
783 
784  jarray create( jint size, bool * pData, xmog_flags flags, xmog_localenv * env );
785 
786 public:
787 
792 
797 
801  typedef ptrdiff_t difference_type;
802 
807 
811  xmog_java_bool_array( const xmog_null & );
812 
817 
821  xmog_java_bool_array( xmog_java_array * _ref, jint _index );
822 
826  xmog_java_bool_array( xmog_java_ref * _clazz_ref_array, xmog_java_dynamic * _dynamic, xmog_flags _flags = xmog_base::GLOBAL );
827 
831  xmog_java_bool_array( xmog_base * _delegate, bool _owns_delegate = true );
832 
836  xmog_java_bool_array( jobject _local, xmog_flags _flags );
837 
844  xmog_java_bool_array( jint size, xmog_localenv * env = NULL, xmog_flags = xmog_base::GLOBAL );
845 
853  xmog_java_bool_array( bool * arr, jsize size, xmog_localenv * env = NULL, xmog_flags = xmog_base::GLOBAL );
854 
859  {
860  return iterator( *this, 0 );
861  }
862 
867  {
868  return iterator( *this, length );
869  }
870 
890  static xmog_java_bool_array dyna_cast( const xmog_java_ref & _rhs, xmog_localenv * p_lxenv = NULL, xmog_flags flags = xmog_base::GLOBAL );
891 
900  void from_native( bool * src_arr, jint dest_start, jsize length, xmog_localenv * env = NULL );
901 
910  void to_native( bool * dest_arr, jint src_start, jsize length, xmog_localenv * env = NULL );
911 
916  static xmog_java_dynamic * get_dynamic();
917 
921  static xmog_java_class * get_class();
922 
926  static xmog_java_class * get_element_java_class();
927 
933  xmog_bool operator [] ( jint index );
934 
948  void set( jint index, bool v, xmog_localenv * env = NULL );
949 
955  bool operator [] ( jint index ) const;
956 
967  bool get( jint index, xmog_localenv * env ) const;
968 
972  xmog_java_bool_array & operator = ( const xmog_java_bool_array & );
973 
974 };
975 
976 
982 class XMOG_DECLSPEC xmog_java_jboolean_array : public xmog_java_array
983 {
984 private:
985 
986  jarray create( jint size, jboolean * pData, xmog_flags flags, xmog_localenv * env );
987 
988 public:
989 
994 
999 
1003  typedef ptrdiff_t difference_type;
1004 
1009 
1014 
1019 
1023  xmog_java_jboolean_array( xmog_java_array * _ref, jint _index );
1024 
1028  xmog_java_jboolean_array( xmog_java_ref * _clazz_ref_array, xmog_java_dynamic * _dynamic, xmog_flags _flags = xmog_base::GLOBAL );
1029 
1033  xmog_java_jboolean_array( xmog_base * _delegate, bool _owns_delegate = true );
1034 
1038  xmog_java_jboolean_array( jobject _local, xmog_flags _flags );
1039 
1046  xmog_java_jboolean_array( jint size, xmog_localenv * env = NULL, xmog_flags = xmog_base::GLOBAL );
1047 
1055  xmog_java_jboolean_array( jboolean * arr, jsize size, xmog_localenv * env = NULL, xmog_flags = xmog_base::GLOBAL );
1056 
1061  {
1062  return iterator( *this, 0 );
1063  }
1064 
1069  {
1070  return iterator( *this, length );
1071  }
1072 
1092  static xmog_java_jboolean_array dyna_cast( const xmog_java_ref & _rhs, xmog_localenv * p_lxenv = NULL, xmog_flags flags = xmog_base::GLOBAL );
1093 
1102  void from_native( jboolean * src_arr, jint dest_start, jsize length, xmog_localenv * env = NULL );
1103 
1112  void to_native( jboolean * dest_arr, jint src_start, jsize length, xmog_localenv * env = NULL );
1113 
1118  static xmog_java_dynamic * get_dynamic();
1119 
1123  static xmog_java_class * get_class();
1124 
1128  static xmog_java_class * get_element_java_class();
1129 
1135  xmog_jboolean operator [] ( jint index );
1136 
1150  void set( jint index, jboolean v, xmog_localenv * env = NULL );
1151 
1157  jboolean operator [] ( jint index ) const;
1158 
1169  jboolean get( jint index, xmog_localenv * env ) const;
1170 
1174  xmog_java_jboolean_array & operator = ( const xmog_java_jboolean_array & );
1175 
1176 };
1177 
1178 
1179 
1185 class XMOG_DECLSPEC xmog_java_byte_array : public xmog_java_array
1186 {
1187 private:
1188 
1189  jarray create( jint size, jbyte * pData, xmog_flags flags, bool useNIO, xmog_localenv * env );
1190 
1191  xmog_base buffer;
1192 
1193 public:
1194 
1199 
1204 
1208  typedef ptrdiff_t difference_type;
1209 
1214 
1218  xmog_java_byte_array( const xmog_null & );
1219 
1223  xmog_java_byte_array( const xmog_java_byte_array &, xmog_localenv * env = NULL );
1224 
1228  xmog_java_byte_array( xmog_java_array * _ref, jint _index );
1229 
1233  xmog_java_byte_array( xmog_java_ref * _clazz_ref_array, xmog_java_dynamic * _dynamic, xmog_flags _flags = xmog_base::GLOBAL );
1234 
1238  xmog_java_byte_array( xmog_base * _delegate, bool _owns_delegate = true );
1239 
1243  xmog_java_byte_array( jobject _local, xmog_flags _flags );
1244 
1251  xmog_java_byte_array( jint size, xmog_localenv * env = NULL, xmog_flags = xmog_base::GLOBAL );
1252 
1260  xmog_java_byte_array( jbyte * arr, jsize size, xmog_localenv * env = NULL, xmog_flags = xmog_base::GLOBAL );
1261 
1273  xmog_java_byte_array( jbyte * arr, jsize size, bool useNIO, xmog_localenv * env = NULL, xmog_flags = xmog_base::GLOBAL );
1274 
1279 
1284  {
1285  return iterator( *this, 0 );
1286  }
1287 
1292  {
1293  return iterator( *this, length );
1294  }
1295 
1315  static xmog_java_byte_array dyna_cast( const xmog_java_ref & _rhs, xmog_localenv * p_lxenv = NULL, xmog_flags flags = xmog_base::GLOBAL );
1316 
1325  void from_native( jbyte * src_arr, jint dest_start, jsize length, xmog_localenv * env = NULL );
1326 
1335  void to_native( jbyte * dest_arr, jint src_start, jsize length, xmog_localenv * env = NULL );
1336 
1344  void to_native_nio( jbyte ** dest_arr, jlong * length, xmog_localenv * env = NULL );
1345 
1350  static xmog_java_dynamic * get_dynamic();
1351 
1355  static xmog_java_class * get_class();
1356 
1360  static xmog_java_class * get_element_java_class();
1361 
1367  xmog_byte operator [] ( jint index );
1368 
1382  void set( jint index, jbyte v, xmog_localenv * env = NULL );
1383 
1389  jbyte operator [] ( jint index ) const;
1390 
1401  jbyte get( jint index, xmog_localenv * env ) const;
1402 
1406  xmog_java_byte_array & operator = ( const xmog_java_byte_array & );
1407 
1408 };
1409 
1410 
1416 class XMOG_DECLSPEC xmog_java_char_array : public xmog_java_array
1417 {
1418 private:
1419 
1420  jarray create( jint size, jchar * pData, xmog_flags flags, xmog_localenv * env );
1421 
1422 public:
1423 
1428 
1433 
1437  typedef ptrdiff_t difference_type;
1438 
1443 
1447  xmog_java_char_array( const xmog_null & );
1448 
1452  xmog_java_char_array( const xmog_java_char_array & , xmog_localenv * env = NULL );
1453 
1457  xmog_java_char_array( xmog_java_array * _ref, jint _index );
1458 
1462  xmog_java_char_array( xmog_java_ref * _clazz_ref_array, xmog_java_dynamic * _dynamic, xmog_flags _flags = xmog_base::GLOBAL );
1463 
1467  xmog_java_char_array( xmog_base * _delegate, bool _owns_delegate = true );
1468 
1472  xmog_java_char_array( jobject _local, xmog_flags _flags );
1473 
1480  xmog_java_char_array( jint size, xmog_localenv * env = NULL, xmog_flags = xmog_base::GLOBAL );
1481 
1489  xmog_java_char_array( jchar * arr, jsize size, xmog_localenv * env = NULL, xmog_flags = xmog_base::GLOBAL );
1490 
1495  {
1496  return iterator( *this, 0 );
1497  }
1498 
1503  {
1504  return iterator( *this, length );
1505  }
1506 
1526  static xmog_java_char_array dyna_cast( const xmog_java_ref & _rhs, xmog_localenv * p_lxenv = NULL, xmog_flags flags = xmog_base::GLOBAL );
1527 
1536  void from_native( jchar * src_arr, jint dest_start, jsize length, xmog_localenv * env = NULL );
1537 
1546  void to_native( jchar * dest_arr, jint src_start, jsize length, xmog_localenv * env = NULL );
1547 
1552  static xmog_java_dynamic * get_dynamic();
1553 
1557  static xmog_java_class * get_class();
1558 
1562  static xmog_java_class * get_element_java_class();
1563 
1569  xmog_char operator [] ( jint index );
1570 
1584  void set( jint index, jchar v, xmog_localenv * env = NULL );
1585 
1591  jchar operator [] ( jint index ) const;
1592 
1603  jchar get( jint index, xmog_localenv * env ) const;
1604 
1608  xmog_java_char_array & operator = ( const xmog_java_char_array & );
1609 
1610 };
1611 
1612 
1618 class XMOG_DECLSPEC xmog_java_double_array : public xmog_java_array
1619 {
1620 private:
1621 
1622  jarray create( jint size, jdouble * pData, xmog_flags flags, xmog_localenv * env );
1623 
1624 public:
1625 
1630 
1635 
1639  typedef ptrdiff_t difference_type;
1640 
1645 
1649  xmog_java_double_array( const xmog_null & );
1650 
1655 
1659  xmog_java_double_array( xmog_java_array * _ref, jint _index );
1660 
1664  xmog_java_double_array( xmog_java_ref * _clazz_ref_array, xmog_java_dynamic * _dynamic, xmog_flags _flags = xmog_base::GLOBAL );
1665 
1669  xmog_java_double_array( xmog_base * _delegate, bool _owns_delegate = true );
1670 
1674  xmog_java_double_array( jobject _local, xmog_flags _flags );
1675 
1682  xmog_java_double_array( jint size, xmog_localenv * env = NULL, xmog_flags = xmog_base::GLOBAL );
1683 
1691  xmog_java_double_array( jdouble * arr, jsize size, xmog_localenv * env = NULL, xmog_flags = xmog_base::GLOBAL );
1692 
1697  {
1698  return iterator( *this, 0 );
1699  }
1700 
1705  {
1706  return iterator( *this, length );
1707  }
1708 
1728  static xmog_java_double_array dyna_cast( const xmog_java_ref & _rhs, xmog_localenv * p_lxenv = NULL, xmog_flags flags = xmog_base::GLOBAL );
1729 
1738  void from_native( jdouble * src_arr, jint dest_start, jsize length, xmog_localenv * env = NULL );
1739 
1748  void to_native( jdouble * dest_arr, jint src_start, jsize length, xmog_localenv * env = NULL );
1749 
1754  static xmog_java_dynamic * get_dynamic();
1755 
1759  static xmog_java_class * get_class();
1760 
1764  static xmog_java_class * get_element_java_class();
1765 
1771  xmog_double operator [] ( jint index );
1772 
1786  void set( jint index, jdouble v, xmog_localenv * env = NULL );
1787 
1793  jdouble operator [] ( jint index ) const;
1794 
1805  jdouble get( jint index, xmog_localenv * env ) const;
1806 
1810  xmog_java_double_array & operator = ( const xmog_java_double_array & );
1811 
1812 };
1813 
1814 
1820 class XMOG_DECLSPEC xmog_java_float_array : public xmog_java_array
1821 {
1822 private:
1823 
1824  jarray create( jint size, jfloat * pData, xmog_flags flags, xmog_localenv * env );
1825 
1826 public:
1827 
1832 
1837 
1841  typedef ptrdiff_t difference_type;
1842 
1847 
1851  xmog_java_float_array( const xmog_null & );
1852 
1856  xmog_java_float_array( const xmog_java_float_array & , xmog_localenv * env = NULL );
1857 
1861  xmog_java_float_array( xmog_java_array * _ref, jint _index );
1862 
1866  xmog_java_float_array( xmog_java_ref * _clazz_ref_array, xmog_java_dynamic * _dynamic, xmog_flags _flags = xmog_base::GLOBAL );
1867 
1871  xmog_java_float_array( xmog_base * _delegate, bool _owns_delegate = true );
1872 
1876  xmog_java_float_array( jobject _local, xmog_flags _flags );
1877 
1884  xmog_java_float_array( jint size, xmog_localenv * env = NULL, xmog_flags = xmog_base::GLOBAL );
1885 
1893  xmog_java_float_array( jfloat * arr, jsize size, xmog_localenv * env = NULL, xmog_flags = xmog_base::GLOBAL );
1894 
1899  {
1900  return iterator( *this, 0 );
1901  }
1902 
1907  {
1908  return iterator( *this, length );
1909  }
1910 
1930  static xmog_java_float_array dyna_cast( const xmog_java_ref & _rhs, xmog_localenv * p_lxenv = NULL, xmog_flags flags = xmog_base::GLOBAL );
1931 
1940  void from_native( jfloat * src_arr, jint dest_start, jsize length, xmog_localenv * env = NULL );
1941 
1950  void to_native( jfloat * dest_arr, jint src_start, jsize length, xmog_localenv * env = NULL );
1951 
1956  static xmog_java_dynamic * get_dynamic();
1957 
1961  static xmog_java_class * get_class();
1962 
1966  static xmog_java_class * get_element_java_class();
1967 
1973  xmog_float operator [] ( jint index );
1974 
1988  void set( jint index, jfloat v, xmog_localenv * env = NULL );
1989 
1995  jfloat operator [] ( jint index ) const;
1996 
2007  jfloat get( jint index, xmog_localenv * env ) const;
2008 
2012  xmog_java_float_array & operator = ( const xmog_java_float_array & );
2013 
2014 };
2015 
2016 
2022 class XMOG_DECLSPEC xmog_java_int_array : public xmog_java_array
2023 {
2024 private:
2025 
2026  jarray create( jint size, jint * pData, xmog_flags flags, xmog_localenv * env );
2027 
2028 public:
2029 
2034 
2039 
2043  typedef ptrdiff_t difference_type;
2044 
2049 
2053  xmog_java_int_array( const xmog_null & );
2054 
2058  xmog_java_int_array( const xmog_java_int_array & , xmog_localenv * env = NULL );
2059 
2063  xmog_java_int_array( xmog_java_array * _ref, jint _index );
2064 
2068  xmog_java_int_array( xmog_java_ref * _clazz_ref_array, xmog_java_dynamic * _dynamic, xmog_flags _flags = xmog_base::GLOBAL );
2069 
2073  xmog_java_int_array( xmog_base * _delegate, bool _owns_delegate = true );
2074 
2078  xmog_java_int_array( jobject _local, xmog_flags _flags );
2079 
2086  xmog_java_int_array( jint size, xmog_localenv * env = NULL, xmog_flags = xmog_base::GLOBAL );
2087 
2095  xmog_java_int_array( jint * arr, jsize size, xmog_localenv * env = NULL, xmog_flags = xmog_base::GLOBAL );
2096 
2101  {
2102  return iterator( *this, 0 );
2103  }
2104 
2109  {
2110  return iterator( *this, length );
2111  }
2112 
2132  static xmog_java_int_array dyna_cast( const xmog_java_ref & _rhs, xmog_localenv * p_lxenv = NULL, xmog_flags flags = xmog_base::GLOBAL );
2133 
2142  void from_native( jint * src_arr, jint dest_start, jsize length, xmog_localenv * env = NULL );
2143 
2152  void to_native( jint * dest_arr, jint src_start, jsize length, xmog_localenv * env = NULL );
2153 
2158  static xmog_java_dynamic * get_dynamic();
2159 
2163  static xmog_java_class * get_class();
2164 
2168  static xmog_java_class * get_element_java_class();
2169 
2175  xmog_int operator [] ( jint index );
2176 
2190  void set( jint index, jint v, xmog_localenv * env = NULL );
2191 
2197  jint operator [] ( jint index ) const;
2198 
2209  jint get( jint index, xmog_localenv * env ) const;
2210 
2214  xmog_java_int_array & operator = ( const xmog_java_int_array & );
2215 
2216 };
2217 
2218 
2224 class XMOG_DECLSPEC xmog_java_long_array : public xmog_java_array
2225 {
2226 private:
2227 
2228  jarray create( jint size, jlong * pData, xmog_flags flags, xmog_localenv * env );
2229 
2230 public:
2231 
2236 
2241 
2245  typedef ptrdiff_t difference_type;
2246 
2251 
2255  xmog_java_long_array( const xmog_null & );
2256 
2260  xmog_java_long_array( const xmog_java_long_array & , xmog_localenv * env = NULL );
2261 
2265  xmog_java_long_array( xmog_java_array * _ref, jint _index );
2266 
2270  xmog_java_long_array( xmog_java_ref * _clazz_ref_array, xmog_java_dynamic * _dynamic, xmog_flags _flags = xmog_base::GLOBAL );
2271 
2275  xmog_java_long_array( xmog_base * _delegate, bool _owns_delegate = true );
2276 
2280  xmog_java_long_array( jobject _local, xmog_flags _flags );
2281 
2288  xmog_java_long_array( jint size, xmog_localenv * env = NULL, xmog_flags = xmog_base::GLOBAL );
2289 
2297  xmog_java_long_array( jlong * arr, jsize size, xmog_localenv * env = NULL, xmog_flags = xmog_base::GLOBAL );
2298 
2303  {
2304  return iterator( *this, 0 );
2305  }
2306 
2311  {
2312  return iterator( *this, length );
2313  }
2314 
2334  static xmog_java_long_array dyna_cast( const xmog_java_ref & _rhs, xmog_localenv * p_lxenv = NULL, xmog_flags flags = xmog_base::GLOBAL );
2335 
2344  void from_native( jlong * src_arr, jint dest_start, jsize length, xmog_localenv * env = NULL );
2345 
2354  void to_native( jlong * dest_arr, jint src_start, jsize length, xmog_localenv * env = NULL );
2355 
2360  static xmog_java_dynamic * get_dynamic();
2361 
2365  static xmog_java_class * get_class();
2366 
2370  static xmog_java_class * get_element_java_class();
2371 
2377  xmog_long operator [] ( jint index );
2378 
2392  void set( jint index, jlong v, xmog_localenv * env = NULL );
2393 
2399  jlong operator [] ( jint index ) const;
2400 
2411  jlong get( jint index, xmog_localenv * env ) const;
2412 
2416  xmog_java_long_array & operator = ( const xmog_java_long_array & );
2417 
2418 };
2419 
2420 
2426 class XMOG_DECLSPEC xmog_java_short_array : public xmog_java_array
2427 {
2428 private:
2429 
2430  jarray create( jint size, jshort * pData, xmog_flags flags, xmog_localenv * env );
2431 
2432 public:
2433 
2438 
2443 
2447  typedef ptrdiff_t difference_type;
2448 
2453 
2457  xmog_java_short_array( const xmog_null & );
2458 
2462  xmog_java_short_array( const xmog_java_short_array & , xmog_localenv * env = NULL );
2463 
2467  xmog_java_short_array( xmog_java_array * _ref, jint _index );
2468 
2472  xmog_java_short_array( xmog_java_ref * _clazz_ref_array, xmog_java_dynamic * _dynamic, xmog_flags _flags = xmog_base::GLOBAL );
2473 
2477  xmog_java_short_array( xmog_base * _delegate, bool _owns_delegate = true );
2478 
2482  xmog_java_short_array( jobject _local, xmog_flags _flags );
2483 
2490  xmog_java_short_array( jint size, xmog_localenv * env = NULL, xmog_flags = xmog_base::GLOBAL );
2491 
2499  xmog_java_short_array( jshort * arr, jsize size, xmog_localenv * env = NULL, xmog_flags = xmog_base::GLOBAL );
2500 
2505  {
2506  return iterator( *this, 0 );
2507  }
2508 
2513  {
2514  return iterator( *this, length );
2515  }
2516 
2536  static xmog_java_short_array dyna_cast( const xmog_java_ref & _rhs, xmog_localenv * p_lxenv = NULL, xmog_flags flags = xmog_base::GLOBAL );
2537 
2546  void from_native( jshort * src_arr, jint dest_start, jsize length, xmog_localenv * env = NULL );
2547 
2556  void to_native( jshort * dest_arr, jint src_start, jsize length, xmog_localenv * env = NULL );
2557 
2562  static xmog_java_dynamic * get_dynamic();
2563 
2567  static xmog_java_class * get_class();
2568 
2572  static xmog_java_class * get_element_java_class();
2573 
2579  xmog_short operator [] ( jint index );
2580 
2594  void set( jint index, jshort v, xmog_localenv * env = NULL );
2595 
2601  jshort operator [] ( jint index ) const;
2602 
2613  jshort get( jint index, xmog_localenv * env ) const;
2614 
2618  xmog_java_short_array & operator = ( const xmog_java_short_array & );
2619 
2620 };
2621 
2622 
2635 class XMOG_DECLSPEC xmog_java_object_array : public xmog_java_array
2636 {
2637 protected:
2638 
2647  jarray create( jint size, xmog_java_class * clazz, xmog_flags flags, xmog_localenv * env );
2648 
2649 public:
2650 
2655 
2659  xmog_java_object_array( const xmog_null & );
2660 
2665 
2669  xmog_java_object_array( xmog_java_array * _ref, jint _index );
2670 
2674  xmog_java_object_array( xmog_java_ref * _clazz_ref_array, xmog_java_dynamic * _dynamic, xmog_flags _flags = xmog_base::GLOBAL );
2675 
2679  xmog_java_object_array( xmog_base * _delegate, bool _owns_delegate = true );
2680 
2684  xmog_java_object_array( jobject _local, xmog_flags _flags );
2685 
2694  xmog_java_object_array( jint size, xmog_java_class * clazz, xmog_localenv * env = NULL, xmog_flags flags = xmog_base::GLOBAL );
2695 
2700  static xmog_java_dynamic * get_dynamic();
2701 
2705  static xmog_java_class * get_class();
2706 
2710  static xmog_java_class * get_element_java_class();
2711 
2717  xmog_java_ref operator [] ( jint index );
2718 
2732  void set( jint index, jobject v, xmog_localenv * env = NULL );
2733 
2739  jobject operator [] ( jint index ) const;
2740 
2751  jobject get( jint index, xmog_localenv * env ) const;
2752 
2756  xmog_java_object_array & operator = ( const xmog_java_object_array & );
2757 
2758 };
2759 
2760 
2761 
2762 template < class ElementType > class xmog_holder_template : public ElementType
2763 {
2764 public:
2765 
2770  ElementType( _ref, _index )
2771  {
2772  // explicit type specifier required for g++ 3.4+
2773  this->ElementType::owner_ = _ref;
2774  this->ElementType::index_ = _index;
2775  this->ElementType::flags_ = xmog_base::ARRAY_ELEMENT | xmog_base::CACHE_INVALID;
2776  }
2777 
2782  ElementType()
2783  {
2784  // explicit type specifier required for g++ 3.4+
2785  this->ElementType::owner_ = _rhs.owner_.value();
2786  this->ElementType::index_ = _rhs.index_;
2787  this->ElementType::flags_ = _rhs.flags_;
2788 
2789  // just to make sure, we release the object
2790  ((ElementType&)_rhs).owner_ = 0;
2791  }
2792 
2793  ElementType operator = ( const xmog_holder_template<ElementType> & _rhs )
2794  {
2795  return this->ElementType::operator = ( _rhs );
2796  }
2797 
2798  ElementType operator = ( const ElementType & _rhs )
2799  {
2800  return this->ElementType::operator = ( _rhs );
2801  }
2802 
2803  ElementType & operator * ()
2804  {
2805  return *this;
2806  }
2807 };
2808 
2809 
2815 template < class ElementType > class xmog_java_array_template : public xmog_java_object_array
2816 {
2817 public:
2818 
2823 
2828 
2832  typedef ptrdiff_t difference_type;
2833 
2839  {
2840  }
2841 
2847  {
2848  }
2849 
2855  xmog_java_object_array( _rhs, _env )
2856  {
2857  }
2858 
2862  XMOG_EXPLICIT xmog_java_array_template<ElementType>( xmog_java_array * _ref, jint _index ) :
2863  xmog_java_object_array( _ref, _index )
2864  {
2865  }
2866 
2870  XMOG_EXPLICIT xmog_java_array_template<ElementType>( xmog_java_ref * _clazz_ref_array, xmog_java_dynamic * _dynamic, xmog_flags _flags = xmog_base::GLOBAL ) :
2871  xmog_java_object_array( _clazz_ref_array, _dynamic, _flags )
2872  {
2873  }
2874 
2881  XMOG_EXPLICIT xmog_java_array_template<ElementType>( xmog_base * _delegate, bool bOwnsDelegate ) :
2882  xmog_java_object_array( _delegate, bOwnsDelegate )
2883  {
2884  }
2885 
2889  XMOG_EXPLICIT xmog_java_array_template<ElementType>( jobject _local, xmog_flags _flags ) :
2890  xmog_java_object_array( _local, _flags )
2891  {
2892  }
2893 
2901  XMOG_EXPLICIT xmog_java_array_template<ElementType>( jint size, xmog_localenv * env = NULL, xmog_flags flags = xmog_base::GLOBAL ) :
2902  xmog_java_object_array( size, ElementType::get_class(), env, flags )
2903  {
2904  //owner_ = create( size, ElementType::get_class(), flags, env );
2905  //flags_ = xmog_base::STAND_ALONE | flags;
2906  }
2907 
2909  {
2910  }
2911 
2916  {
2917  return iterator( *this, 0 );
2918  }
2919 
2924  {
2925  return iterator( *this, length );
2926  }
2927 
2947  static xmog_java_array_template<ElementType> dyna_cast( const xmog_java_ref & _rhs, xmog_localenv * p_lxenv = NULL, xmog_flags flags = xmog_base::GLOBAL )
2948  {
2949  if( p_lxenv == NULL )
2950  p_lxenv = xmog_localenv::get_instance( p_lxenv );
2951 
2952  return xmog_java_array_template<ElementType>( get_class()->from( _rhs, flags, p_lxenv ), flags );
2953  }
2954 
2959  {
2960  copy_( _rhs );
2961  return *this;
2962  }
2963 
2969  {
2971  }
2972 
2977  {
2978  return ElementType::get_class()->get_array_class();
2979  }
2980 
2985  {
2986  return ElementType::get_class();
2987  }
2988 
2995  {
2996  return xmog_holder_template<ElementType>( (xmog_java_array*)this, index );
2997  }
2998 
2999 
3004  {
3005  return xmog_holder_template<ElementType>( (xmog_java_array*)this, index );
3006  }
3007 
3008 };
3009 
3010 
3011 #if (XMOG_PRE_3_0_SUPPORT == 1 )
3012 
3021 
3030 
3039 
3048 
3057 
3066 
3075 
3084 
3085 #endif
3086 
3087 #endif /* xmog_java_array_inc */
xmog_array_iterator::operator++
xmog_array_iterator< ArrayType > & operator++()
The pre increment operator.
Definition: xmog_java_array.h:741
xmog_java_bool_array::difference_type
ptrdiff_t difference_type
The type used to represent pointer differences.
Definition: xmog_java_array.h:801
xmog_byte
A wrapper type for byte proxies.
Definition: xmog_java_field.h:598
xmog_base::xmog_invalidate
virtual void xmog_invalidate(xmog_localenv *env=NULL)
Invalidates any cached values in the instance.
xmog_array_iterator::operator*
value_type operator*()
The dereference operator returns the element at the current index.
Definition: xmog_java_array.h:733
xmog_java_dynamic::get_bool
virtual bool get_bool(xmog_base *obj, xmog_java_values *args=NULL, xmog_localenv *env=NULL, xmog_flags flags=0)=0
Returns the bool value of a dynamic proxy.
xmog_java_float_array::iterator
xmog_array_iterator< xmog_java_float_array > iterator
The iterator type for arrays of float type.
Definition: xmog_java_array.h:1831
xmog_java_char_array::begin
iterator begin()
Returns an iterator pointing to the first array element.
Definition: xmog_java_array.h:1494
xmog_java_array_template::operator[]
xmog_holder_template< ElementType > operator[](jint index)
Returns the array element of the given index.
Definition: xmog_java_array.h:2994
xmog_base::flags
flags
The possible flag values.
Definition: xmog_base.h:383
xmog_long
A wrapper type for long proxies. This type wraps the Java long type in a proxy type that uses the JNI...
Definition: xmog_java_field.h:1543
jcpp_char_array
xmog_java_char_array jcpp_char_array
A typedef that allows C++ calling code to use the pre 3.0 type name.
Definition: xmog_java_array.h:3038
xmog_java_jboolean_array::begin
iterator begin()
Returns an iterator pointing to the first array element.
Definition: xmog_java_array.h:1060
xmog_array_iterator::value_type
ArrayType::value_type value_type
The value type used when the iterator is dereferenced.
Definition: xmog_java_array.h:613
xmog_localenv::get_instance
static xmog_localenv * get_instance(xmog_localenv *env)
Returns a local environment.
xmog_java_values
A helper type used to convey Java arguments around inside the framework.
Definition: xmog_java_value.h:105
xmog_array_iterator::operator+=
xmog_array_iterator< ArrayType > & operator+=(difference_type diff)
The additive assignment operator.
Definition: xmog_java_array.h:701
xmog_java_short_array
The wrapper type for the Java short[] type.
Definition: xmog_java_array.h:2426
xmog_java_dynamic::set_jboolean
virtual void set_jboolean(xmog_base *obj, jboolean b, xmog_localenv *env=NULL)=0
Sets a jboolean value of a dynamic instance.
xmog_int
A wrapper type for int proxies. This type wraps the Java int type in a proxy type that uses the JNI j...
Definition: xmog_java_field.h:1321
xmog_java_char_array::end
iterator end()
Returns an iterator pointing to after the last array element.
Definition: xmog_java_array.h:1502
xmog_java_class::get_array_class
xmog_java_class * get_array_class()
Returns the xmog_java_class instance that represents the array type for this instance's represented t...
xmog_java_byte_array::begin
iterator begin()
Returns an iterator pointing to the first array element.
Definition: xmog_java_array.h:1283
xmog_java_array_size
The proxy type representing the length of an array.
Definition: xmog_java_array.h:410
xmog_java_bool_array
The wrapper type for the Java boolean[] type.
Definition: xmog_java_array.h:780
xmog_java_long_array::value_type
xmog_long value_type
The type returned by the dereference operations.
Definition: xmog_java_array.h:2240
xmog_java_array_template
The object array template type to support arrays of proxy types.
Definition: xmog_java_array.h:2815
xmog_java_char_array
The wrapper type for the Java char[] type.
Definition: xmog_java_array.h:1416
xmog_array_iterator::operator--
xmog_array_iterator< ArrayType > & operator--()
The pre decrement operator.
Definition: xmog_java_array.h:758
xmog_array_iterator::difference_type
ArrayType::difference_type difference_type
The difference type used to represent two subtracted iterators.
Definition: xmog_java_array.h:608
xmog_java_dynamic::get_double
virtual jdouble get_double(xmog_base *obj, xmog_java_values *args=NULL, xmog_localenv *env=NULL, xmog_flags flags=0)=0
Returns the double value of a dynamic proxy.
xmog_java_long_array::begin
iterator begin()
Returns an iterator pointing to the first array element.
Definition: xmog_java_array.h:2302
xmog_java_dynamic::get_void
virtual void get_void(xmog_base *obj, xmog_java_values *args=NULL, xmog_localenv *env=NULL, xmog_flags flags=0)=0
Dynamically resolves a reference that evaluates to a void value.
xmog_java_double_array
The wrapper type for the Java double[] type.
Definition: xmog_java_array.h:1618
xmog_java_float_array::end
iterator end()
Returns an iterator pointing to after the last array element.
Definition: xmog_java_array.h:1906
xmog_java_byte_array::end
iterator end()
Returns an iterator pointing to after the last array element.
Definition: xmog_java_array.h:1291
xmog_java_array_template::get_class
static xmog_java_class * get_class()
Returns the proxy wrapper instance for this array type.
Definition: xmog_java_array.h:2976
xmog_java_dynamic::set_long
virtual void set_long(xmog_base *obj, jlong l, xmog_localenv *env=NULL)=0
Sets a long value of a dynamic instance.
xmog_java_float_array::begin
iterator begin()
Returns an iterator pointing to the first array element.
Definition: xmog_java_array.h:1898
xmog_java_dynamic::set_bool
virtual void set_bool(xmog_base *obj, bool b, xmog_localenv *env=NULL)=0
Sets a bool value of a dynamic instance.
xmog_java_dynamic
The baseclass for types that dynamically derive the value of Java proxy items.
Definition: xmog_java_dynamic.h:28
xmog_java_array_template::dyna_cast
static xmog_java_array_template< ElementType > dyna_cast(const xmog_java_ref &_rhs, xmog_localenv *p_lxenv=NULL, xmog_flags flags=xmog_base::GLOBAL)
A framework method which allows a "cast" of the given object to this array type.
Definition: xmog_java_array.h:2947
xmog_java_char_array::iterator
xmog_array_iterator< xmog_java_char_array > iterator
The iterator type for arrays of char type.
Definition: xmog_java_array.h:1427
xmog_java_array_template::get_element_java_class
static xmog_java_class * get_element_java_class()
Returns the proxy wrapper instance for this array's element type.
Definition: xmog_java_array.h:2984
xmog_java_jboolean_array::end
iterator end()
Returns an iterator pointing to after the last array element.
Definition: xmog_java_array.h:1068
jcpp_short_array
xmog_java_short_array jcpp_short_array
A typedef that allows C++ calling code to use the pre 3.0 type name.
Definition: xmog_java_array.h:3083
xmog_java_dynamic::get_byte
virtual jbyte get_byte(xmog_base *obj, xmog_java_values *args=NULL, xmog_localenv *env=NULL, xmog_flags flags=0)=0
Returns the jbyte value of a dynamic proxy.
xmog_java_short_array::begin
iterator begin()
Returns an iterator pointing to the first array element.
Definition: xmog_java_array.h:2504
xmog_java_dynamic::get_long
virtual jlong get_long(xmog_base *obj, xmog_java_values *args=NULL, xmog_localenv *env=NULL, xmog_flags flags=0)=0
Returns the long value of a dynamic proxy.
xmog_java_jboolean_array::iterator
xmog_array_iterator< xmog_java_jboolean_array > iterator
The iterator type for arrays of bool type.
Definition: xmog_java_array.h:993
xmog_java_long_array::iterator
xmog_array_iterator< xmog_java_long_array > iterator
The iterator type for arrays of long type.
Definition: xmog_java_array.h:2235
xmog_java_jboolean_array::value_type
xmog_jboolean value_type
The type returned by the dereference operations.
Definition: xmog_java_array.h:998
xmog_java_byte_array::iterator
xmog_array_iterator< xmog_java_byte_array > iterator
The iterator type for arrays of byte type.
Definition: xmog_java_array.h:1198
xmog_array_iterator::operator-=
xmog_array_iterator< ArrayType > & operator-=(difference_type diff)
The subtractive assignment operator.
Definition: xmog_java_array.h:715
xmog_java_array_template::difference_type
ptrdiff_t difference_type
The type used to represent pointer differences.
Definition: xmog_java_array.h:2832
xmog_java_dynamic::get_jboolean
virtual jboolean get_jboolean(xmog_base *obj, xmog_java_values *args=NULL, xmog_localenv *env=NULL, xmog_flags flags=0)=0
Returns the jboolean value of a dynamic proxy.
xmog_java_double_array::end
iterator end()
Returns an iterator pointing to after the last array element.
Definition: xmog_java_array.h:1704
xmog_java_short_array::iterator
xmog_array_iterator< xmog_java_short_array > iterator
The iterator type for arrays of short type.
Definition: xmog_java_array.h:2437
xmog_array_iterator::operator=
xmog_array_iterator< ArrayType > & operator=(const xmog_array_iterator< ArrayType > &rhs)
The assignment operator (required by iterator contract).
Definition: xmog_java_array.h:656
xmog_java_short_array::value_type
xmog_short value_type
The type returned by the dereference operations.
Definition: xmog_java_array.h:2442
xmog_java_int_array::difference_type
ptrdiff_t difference_type
The type used to represent pointer differences.
Definition: xmog_java_array.h:2043
xmog_java_array_template::get_dynamic
static xmog_java_dynamic * get_dynamic()
Returns an xmog_java_dynamic instance that can be used to access the array elements of this type.
Definition: xmog_java_array.h:2968
xmog_java_array_template::begin
iterator begin()
Returns an iterator pointing to the first array element.
Definition: xmog_java_array.h:2915
xmog_java_element::theElement
static xmog_java_element theElement
The single instance of this type that exists in the framework.
Definition: xmog_java_array.h:187
xmog_java_double_array::value_type
xmog_double value_type
The type returned by the dereference operations.
Definition: xmog_java_array.h:1634
xmog_java_jboolean_array
The wrapper type for the Java boolean[] type.
Definition: xmog_java_array.h:982
xmog_java_long_array
The wrapper type for the Java long[] type.
Definition: xmog_java_array.h:2224
xmog_java_double_array::iterator
xmog_array_iterator< xmog_java_double_array > iterator
The iterator type for arrays of double type.
Definition: xmog_java_array.h:1629
xmog_java_dynamic::get_short
virtual jshort get_short(xmog_base *obj, xmog_java_values *args=NULL, xmog_localenv *env=NULL, xmog_flags flags=0)=0
Returns the short value of a dynamic proxy.
xmog_java_array::copy_
void copy_(const xmog_java_array &_rhs, xmog_localenv *env=NULL)
Updates this instance to reflect the given instance's state.
xmog_java_dynamic::set_int
virtual void set_int(xmog_base *obj, jint i, xmog_localenv *env=NULL)=0
Sets an int value of a dynamic instance.
xmog_java_bool_array::iterator
xmog_array_iterator< xmog_java_bool_array > iterator
The iterator type for arrays of bool type.
Definition: xmog_java_array.h:791
xmog_java_short_array::difference_type
ptrdiff_t difference_type
The type used to represent pointer differences.
Definition: xmog_java_array.h:2447
xmog_java_array::length
xmog_java_array_size length
The array length.
Definition: xmog_java_array.h:555
xmog_java_long_array::end
iterator end()
Returns an iterator pointing to after the last array element.
Definition: xmog_java_array.h:2310
xmog_base
The baseclass for all proxy types in the framework.
Definition: xmog_base.h:29
xmog_java_int_array::iterator
xmog_array_iterator< xmog_java_int_array > iterator
The iterator type for arrays of int type.
Definition: xmog_java_array.h:2033
xmog_float
A wrapper type for float proxies. This type wraps the Java float type in a proxy type that uses the J...
Definition: xmog_java_field.h:1183
xmog_java_int_array::begin
iterator begin()
Returns an iterator pointing to the first array element.
Definition: xmog_java_array.h:2100
xmog_java_char_array::value_type
xmog_char value_type
The type returned by the dereference operations.
Definition: xmog_java_array.h:1432
xmog_java_dynamic::set_jobject
virtual void set_jobject(xmog_base *obj, jobject o, xmog_localenv *env=NULL)=0
Sets an object reference into a dynamic instance.
xmog_java_int_array::end
iterator end()
Returns an iterator pointing to after the last array element.
Definition: xmog_java_array.h:2108
jcpp_long_array
xmog_java_long_array jcpp_long_array
A typedef that allows C++ calling code to use the pre 3.0 type name.
Definition: xmog_java_array.h:3074
xmog_java_int_array
The wrapper type for the Java int[] type.
Definition: xmog_java_array.h:2022
xmog_java_double_array::begin
iterator begin()
Returns an iterator pointing to the first array element.
Definition: xmog_java_array.h:1696
xmog_java_dynamic::get_char
virtual jchar get_char(xmog_base *obj, xmog_java_values *args=NULL, xmog_localenv *env=NULL, xmog_flags flags=0)=0
Returns the jchar value of a dynamic proxy.
xmog_short
A wrapper type for short proxies. This type wraps the Java short type in a proxy type that uses the J...
Definition: xmog_java_field.h:1765
xmog_java_bool_array::end
iterator end()
Returns an iterator pointing to after the last array element.
Definition: xmog_java_array.h:866
xmog_java_byte_array
The wrapper type for the Java byte[] type.
Definition: xmog_java_array.h:1185
xmog_localenv
A class representing per-thread information for the integration runtime.
Definition: xmog_localenv.h:32
xmog_java_dynamic::get_int
virtual jint get_int(xmog_base *obj, xmog_java_values *args=NULL, xmog_localenv *env=NULL, xmog_flags flags=0)=0
Returns the int value of a dynamic proxy.
jcpp_float_array
xmog_java_float_array jcpp_float_array
A typedef that allows C++ calling code to use the pre 3.0 type name.
Definition: xmog_java_array.h:3056
xmog_java_dynamic::set_float
virtual void set_float(xmog_base *obj, jfloat f, xmog_localenv *env=NULL)=0
Sets a float value of a dynamic instance.
xmog_array_iterator
An iterator type for Java array instances.
Definition: xmog_java_array.h:595
xmog_java_ref
The wrapper base type representing C++ proxy instances for Java objects.
Definition: xmog_java_ref.h:19
xmog_java_bool_array::value_type
xmog_bool value_type
The type returned by the dereference operations.
Definition: xmog_java_array.h:796
xmog_jboolean
A wrapper type for boolean proxies.
Definition: xmog_java_field.h:492
xmog_java_float_array
The wrapper type for the Java float[] type.
Definition: xmog_java_array.h:1820
xmog_java_dynamic::set_short
virtual void set_short(xmog_base *obj, jshort sh, xmog_localenv *env=NULL)=0
Sets a short value of a dynamic instance.
xmog_java_float_array::difference_type
ptrdiff_t difference_type
The type used to represent pointer differences.
Definition: xmog_java_array.h:1841
xmog_java_byte_array::difference_type
ptrdiff_t difference_type
The type used to represent pointer differences.
Definition: xmog_java_array.h:1208
xmog_java_element
A class implementing the xmog_java_dynamic interface for accessing Java array elements via JNI or Cod...
Definition: xmog_java_array.h:180
xmog_java_array_template::value_type
xmog_holder_template< ElementType > value_type
The type returned by the dereference operations.
Definition: xmog_java_array.h:2827
xmog_java_array_template::operator=
xmog_java_array_template< ElementType > & operator=(const xmog_java_array_template< ElementType > &_rhs)
Sets the given Java array reference into this instance.
Definition: xmog_java_array.h:2958
xmog_java_bool_array::begin
iterator begin()
Returns an iterator pointing to the first array element.
Definition: xmog_java_array.h:858
xmog_java_object_array
The proxy type for reference arrays.
Definition: xmog_java_array.h:2635
xmog_java_dynamic::get_jobject
virtual jobject get_jobject(xmog_base *obj, xmog_java_values *args=NULL, xmog_localenv *env=NULL, xmog_flags flags=xmog_base::GLOBAL)=0
Returns the jobject value of a dynamic proxy.
xmog_java_jboolean_array::difference_type
ptrdiff_t difference_type
The type used to represent pointer differences.
Definition: xmog_java_array.h:1003
xmog_holder_template
Definition: xmog_java_array.h:2762
xmog_java_byte_array::value_type
xmog_byte value_type
The type returned by the dereference operations.
Definition: xmog_java_array.h:1203
xmog_java_array_template::end
iterator end()
Returns an iterator pointing to after the last array element.
Definition: xmog_java_array.h:2923
jcpp_byte_array
xmog_java_byte_array jcpp_byte_array
A typedef that allows C++ calling code to use the pre 3.0 type name.
Definition: xmog_java_array.h:3029
xmog_char
A wrapper type for character proxies. This type wraps the Java char type in a proxy type that uses th...
Definition: xmog_java_field.h:820
xmog_java_array
The baseclass for all Java proxy array types.
Definition: xmog_java_array.h:456
xmog_java_short_array::end
iterator end()
Returns an iterator pointing to after the last array element.
Definition: xmog_java_array.h:2512
jcpp_bool_array
xmog_java_bool_array jcpp_bool_array
A typedef that allows C++ calling code to use the pre 3.0 type name.
Definition: xmog_java_array.h:3020
xmog_java_array_template::iterator
xmog_array_iterator< xmog_java_array_template< ElementType > > iterator
The iterator type for arrays of object type.
Definition: xmog_java_array.h:2822
xmog_java_dynamic::set_byte
virtual void set_byte(xmog_base *obj, jbyte b, xmog_localenv *env=NULL)=0
Sets a jbyte value of a dynamic instance.
xmog_java_char_array::difference_type
ptrdiff_t difference_type
The type used to represent pointer differences.
Definition: xmog_java_array.h:1437
xmog_java_dynamic::set_double
virtual void set_double(xmog_base *obj, jdouble d, xmog_localenv *env=NULL)=0
Sets a double value of a dynamic instance.
xmog_java_class
A C++ wrapper for Java types.
Definition: xmog_java_class.h:31
xmog_array_iterator::operator[]
value_type operator[](jint ind)
The subscript operator returns the element that is 'ind' away from the current index position.
Definition: xmog_java_array.h:725
xmog_double
A wrapper type for double proxies. This type wraps the Java double type in a proxy type that uses the...
Definition: xmog_java_field.h:1045
xmog_bool
A wrapper type for boolean proxies.
Definition: xmog_java_field.h:386
xmog_null
A type representing null references.
Definition: xmog_null.h:53
xmog_java_float_array::value_type
xmog_float value_type
The type returned by the dereference operations.
Definition: xmog_java_array.h:1836
xmog_java_dynamic::set_char
virtual void set_char(xmog_base *obj, jchar ch, xmog_localenv *env=NULL)=0
Sets a jchar value of a dynamic instance.
xmog_java_int_array::value_type
xmog_int value_type
The type returned by the dereference operations.
Definition: xmog_java_array.h:2038
jcpp_double_array
xmog_java_double_array jcpp_double_array
A typedef that allows C++ calling code to use the pre 3.0 type name.
Definition: xmog_java_array.h:3047
xmog_java_dynamic::get_float
virtual jfloat get_float(xmog_base *obj, xmog_java_values *args=NULL, xmog_localenv *env=NULL, xmog_flags flags=0)=0
Returns the float value of a dynamic proxy.
xmog_java_long_array::difference_type
ptrdiff_t difference_type
The type used to represent pointer differences.
Definition: xmog_java_array.h:2245
xmog_java_double_array::difference_type
ptrdiff_t difference_type
The type used to represent pointer differences.
Definition: xmog_java_array.h:1639
jcpp_int_array
xmog_java_int_array jcpp_int_array
A typedef that allows C++ calling code to use the pre 3.0 type name.
Definition: xmog_java_array.h:3065

Copyright (c) 1999-2020 by Codemesh, Inc., ALL RIGHTS RESERVED.