15d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao/*
25d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * Copyright 2006 The Android Open Source Project
35d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao *
45d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * Generate a big pile of interface classes.
55d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao */
65d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao#include <stdio.h>
75d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao
85d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao/*
95d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * Create N interface files.
105d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao */
115d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhaostatic int createFiles(int count)
125d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao{
135d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao    FILE* fp;
145d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao    int i;
155d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao
165d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao    for (i = 0; i < count; i++) {
175d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        char nameBuf[32];
185d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao
19748474146da0c6484fa3dca0a700f612d47550c3Elliott Hughes        snprintf(nameBuf, sizeof(nameBuf), "src/Interface%03d.java", i);
205d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        fp = fopen(nameBuf, "w");
215d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        if (fp == NULL) {
225d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao            fprintf(stderr, "ERROR: unable to open %s\n", nameBuf);
235d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao            return -1;
245d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        }
255d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao
265d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        fprintf(fp, "interface Interface%03d {\n", i);
275d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        if ((i & 0x01) != 0)
285d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao            fprintf(fp, "    int func%03d();\n", i);
295d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        fprintf(fp, "}\n");
305d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        fclose(fp);
315d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao    }
325d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao
335d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao    fp = fopen("func-decl", "w");
345d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao    fprintf(fp, "    implements\n");
355d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao    for (i = 0; i < count; i++) {
365d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        fprintf(fp, "        Interface%03d%s\n", i, (i == count-1) ? "" : ",");
375d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao    }
385d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao    fprintf(fp, "\n");
395d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao    for (i = 1; i < count; i += 2) {
405d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        fprintf(fp, "    public int func%03d() { return %d; }\n", i, i);
415d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao    }
425d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao    fclose(fp);
435d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao
445d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao    return 0;
455d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao}
465d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao
475d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhaoint main()
485d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao{
495d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao    int result;
505d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao
515d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao    result = createFiles(100);
525d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao
535d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao    return (result != 0);
545d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao}
55