00001 #ifndef _IT_BUS_ARRAY_COORDINATE_IMPL_H_
00002 #define _IT_BUS_ARRAY_COORDINATE_IMPL_H_
00003
00004
00005
00006
00007 #include <it_bus/soap_enc_array.h>
00008
00009 namespace IT_Bus
00010 {
00011 class IT_AFC_API ArrayCoordinateImpl : public ArrayCoordinate
00012 {
00013 public:
00014
00015 ArrayCoordinateImpl(
00016 const String & coords
00017 );
00018
00019 ArrayCoordinateImpl(
00020 size_t number_dimensions
00021 );
00022
00023 ArrayCoordinateImpl(
00024 const ArrayCoordinate & rhs
00025 );
00026
00027 ArrayCoordinateImpl(
00028 const size_t coords[],
00029 const size_t dimensions
00030 );
00031
00032 virtual ~ArrayCoordinateImpl();
00033
00034 virtual const size_t
00035 get_number_dimensions() const;
00036
00037 virtual const size_t &
00038 operator[] (
00039 size_t idx
00040 ) const;
00041
00042 virtual size_t &
00043 operator[] (
00044 size_t idx
00045 );
00046
00047 virtual bool
00048 increment(
00049 const ArrayCoordinate & extents
00050 );
00051
00052 virtual
00053 ArrayCoordinateImpl &
00054 operator = (
00055 const ArrayCoordinate & rhs
00056 );
00057
00058 virtual ArrayCoordinateImpl &
00059 operator = (
00060 const String & coords
00061 );
00062
00063 protected:
00064 size_t m_number_dimensions;
00065 size_t* m_coords;
00066 };
00067 }
00068
00069 #endif