summaryrefslogtreecommitdiff
path: root/tools/swig/test/Farray.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/swig/test/Farray.h')
-rw-r--r--tools/swig/test/Farray.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/tools/swig/test/Farray.h b/tools/swig/test/Farray.h
new file mode 100644
index 000000000..4199a287c
--- /dev/null
+++ b/tools/swig/test/Farray.h
@@ -0,0 +1,56 @@
+#ifndef FARRAY_H
+#define FARRAY_H
+
+#include <stdexcept>
+#include <string>
+
+class Farray
+{
+public:
+
+ // Size constructor
+ Farray(int nrows, int ncols);
+
+ // Copy constructor
+ Farray(const Farray & source);
+
+ // Destructor
+ ~Farray();
+
+ // Assignment operator
+ Farray & operator=(const Farray & source);
+
+ // Equals operator
+ bool operator==(const Farray & other) const;
+
+ // Length accessors
+ int nrows() const;
+ int ncols() const;
+
+ // Set item accessor
+ long & operator()(int i, int j);
+
+ // Get item accessor
+ const long & operator()(int i, int j) const;
+
+ // String output
+ std::string asString() const;
+
+ // Get view
+ void view(int* nrows, int* ncols, long** data) const;
+
+private:
+ // Members
+ int _nrows;
+ int _ncols;
+ long * _buffer;
+
+ // Default constructor: not implemented
+ Farray();
+
+ // Methods
+ void allocateMemory();
+ int offset(int i, int j) const;
+};
+
+#endif