1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/*
2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Copyright 2006 The Android Open Source Project
3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Generate a big pile of interface classes.
5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project#include <stdio.h>
7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/*
9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Create N interface files.
10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectstatic int createFiles(int count)
12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project{
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    FILE* fp;
14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    int i;
15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    for (i = 0; i < count; i++) {
17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        char nameBuf[32];
18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        sprintf(nameBuf, "src/Interface%03d.java", i);
20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        fp = fopen(nameBuf, "w");
21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        if (fp == NULL) {
22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fprintf(stderr, "ERROR: unable to open %s\n", nameBuf);
23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            return -1;
24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        fprintf(fp, "interface Interface%03d {\n", i);
27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        if ((i & 0x01) != 0)
28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fprintf(fp, "    int func%03d();\n", i);
29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        fprintf(fp, "}\n");
30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        fclose(fp);
31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    fp = fopen("func-decl", "w");
34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    fprintf(fp, "    implements\n");
35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    for (i = 0; i < count; i++) {
36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        fprintf(fp, "        Interface%03d%s\n", i, (i == count-1) ? "" : ",");
37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    fprintf(fp, "\n");
39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    for (i = 1; i < count; i += 2) {
40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        fprintf(fp, "    public int func%03d() { return %d; }\n", i, i);
41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    fclose(fp);
43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    return 0;
45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectint main()
48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project{
49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    int result;
50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    result = createFiles(100);
52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    return (result != 0);
54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
56