Remote protocol working.
[wrappi.git] / generator / wrappi_enums.ml
index 3b33ec5..0e2c32c 100644 (file)
@@ -86,7 +86,25 @@ let extend_api api =
         ep_includes = []
       } in
 
-      eps := StringMap.add fname ep !eps
+      eps := StringMap.add fname ep !eps;
+
+      (* Add an entry point wrap_<name>_enum_nr. *)
+      let fname = sprintf "%s_enum_nr" name in
+      let code = sprintf "  return %d;\n" (Array.length en.en_identifiers) in
+      let c_code = {
+        cc_loc = Loc.ghost;
+        cc_code = code;
+      } in
+      let ep = {
+        ep_loc = Loc.ghost;
+        ep_local = true;
+        ep_name = fname;
+        ep_ftype = Return TInt, [], [];
+        ep_code = Some c_code;
+        ep_includes = []
+      } in
+
+      eps := StringMap.add fname ep !eps;
   );
 
   { api with api_entry_points = !eps }