--- /dev/null
+package jp.nyatla.util;\r
+\r
+public class ShortPointer {\r
+ private short[] array_ref; //配列\r
+ private int array_offset; //配列に対する基準値\r
+ private int position; //array_offsetに対する現在位置\r
+ public static ShortPointer wrap(short[] i_array_ref,int i_offset)\r
+ {\r
+ return new ShortPointer(i_array_ref,i_offset);\r
+ }\r
+ public static ShortPointer wrap(ShortPointer i_inst,int i_offset)\r
+ {\r
+ return new ShortPointer(i_inst.array_ref,i_inst.array_offset+i_inst.position+i_offset);\r
+ }\r
+ public void set(short i_value)\r
+ {\r
+ array_ref[array_offset+position]=i_value; \r
+ }\r
+ public void set(int i_rel_positon,short i_value)\r
+ {\r
+ array_ref[array_offset+position+i_rel_positon]=i_value;\r
+ }\r
+ /**\r
+ * カレント位置の値を取得する\r
+ * @return\r
+ */\r
+ public short get()\r
+ {\r
+ return array_ref[array_offset+position];\r
+ }\r
+ /**\r
+ * カレント位置から+i_slideの位置にある値を取得する。\r
+ * @param i_step\r
+ * @return\r
+ */\r
+ public short get(int i_slide)\r
+ {\r
+ return array_ref[array_offset+position+i_slide];\r
+ }\r
+ public void incPtr()\r
+ {\r
+ position++;\r
+ }\r
+ public void addPtr(int v)\r
+ {\r
+ position+=v;\r
+ }\r
+ private ShortPointer(short[] i_array_ref,int i_base_point)\r
+ {\r
+ array_offset =i_base_point;\r
+ array_ref =i_array_ref;\r
+ position =0;\r
+ }\r
+// public BytePointer()\r
+// {\r
+// array_offset =0;\r
+// array_ref =new int[1];\r
+// position =0;\r
+// }\r
+}\r