Simple support for reflecting rsForEach().

BUG=4203264

Change-Id: Idf722ee3fb07c8e46ac0c4628e753ff2fa6840cf
diff --git a/slang_rs_reflection.h b/slang_rs_reflection.h
index 2f9e18c..c26f82f 100644
--- a/slang_rs_reflection.h
+++ b/slang_rs_reflection.h
@@ -33,6 +33,7 @@
   class RSContext;
   class RSExportVar;
   class RSExportFunc;
+  class RSExportForEach;
 
 class RSReflection {
  private:
@@ -68,6 +69,7 @@
 
     int mNextExportVarSlot;
     int mNextExportFuncSlot;
+    int mNextExportForEachSlot;
 
     // A mapping from a field in a record type to its index in the rsType
     // instance. Only used when generates TypeClass (ScriptField_*).
@@ -83,6 +85,7 @@
       mPaddingFieldIndex = 1;
       mNextExportVarSlot = 0;
       mNextExportFuncSlot = 0;
+      mNextExportForEachSlot = 0;
       return;
     }
 
@@ -143,6 +146,7 @@
     inline int getNextExportVarSlot() { return mNextExportVarSlot++; }
 
     inline int getNextExportFuncSlot() { return mNextExportFuncSlot++; }
+    inline int getNextExportForEachSlot() { return mNextExportForEachSlot++; }
 
     // Will remove later due to field name information is not necessary for
     // C-reflect-to-Java
@@ -234,6 +238,9 @@
   void genExportFunction(Context &C,
                          const RSExportFunc *EF);
 
+  void genExportForEach(Context &C,
+                        const RSExportForEach *EF);
+
   bool genTypeClass(Context &C,
                     const RSExportRecordType *ERT,
                     std::string &ErrorMsg);