15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Copyright (c) 2011 The Chromium Authors. All rights reserved.
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Use of this source code is governed by a BSD-style license that can be
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * found in the LICENSE file.
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* From test_cgen/interface.idl modified Wed Nov 21 14:22:50 2012. */
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PPAPI_C_TEST_CGEN_INTERFACE_H_
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPAPI_C_TEST_CGEN_INTERFACE_H_
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_macros.h"
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/test_cgen/stdint.h"
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define IFACEFOO_INTERFACE_1_0 "ifaceFoo;1.0"
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define IFACEFOO_INTERFACE IFACEFOO_INTERFACE_1_0
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define IFACEBAR_INTERFACE_1_0 "ifaceBar;1.0"
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define IFACEBAR_INTERFACE IFACEBAR_INTERFACE_1_0
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @file
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This file will test that the IDL snippet matches the comment.
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @addtogroup Structs
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @{
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* struct ist { void* X; }; */
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct ist {
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void* X;
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @}
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @addtogroup Interfaces
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @{
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * struct ifaceFoo_1_0 {
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * int8_t (*mem1)(int16_t x, int32_t y);
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * int32_t (*mem2)(const struct ist* a);
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * int32_t (*mem3)(struct ist* b);
482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * int32_t (*mem4)(const void** ptr);
492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * int32_t (*mem5)(void** ptr);
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * };
512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * typedef struct ifaceFoo_1_0 ifaceFoo;
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct ifaceFoo_1_0 {
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int8_t (*mem1)(int16_t x, int32_t y);
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32_t (*mem2)(const struct ist* a);
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32_t (*mem3)(struct ist* b);
572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int32_t (*mem4)(const void** ptr);
582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int32_t (*mem5)(void** ptr);
592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)typedef struct ifaceFoo_1_0 ifaceFoo;
622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct ifaceBar_1_0 {
642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int8_t (*testIface)(const struct ifaceFoo_1_0* foo, int32_t y);
652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  struct ifaceFoo_1_0* (*createIface)(const char* name);
662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)typedef struct ifaceBar_1_0 ifaceBar;
69cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
70cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)struct ifaceNoString_1_0 {
71cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  void (*mem)(void);
72cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)};
73cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
74cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)typedef struct ifaceNoString_1_0 ifaceNoString;
752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/**
762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @}
772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/**
802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @addtogroup Structs
812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @{
822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct struct2 {
842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  struct ifaceBar_1_0* bar;
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @}
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  /* PPAPI_C_TEST_CGEN_INTERFACE_H_ */
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
92