001/*******************************************************************************
002 * Copyright (C) 2009-2011 FuseSource Corp.
003 * Copyright (c) 2004, 2008 IBM Corporation and others.
004 * 
005 * All rights reserved. This program and the accompanying materials
006 * are made available under the terms of the Eclipse Public License v1.0
007 * which accompanies this distribution, and is available at
008 * http://www.eclipse.org/legal/epl-v10.html
009 *******************************************************************************/
010package org.fusesource.hawtjni.runtime;
011
012/**
013 * 
014 * @author <a href="http://hiramchirino.com">Hiram Chirino</a>
015 */
016public enum ClassFlag {
017    /** 
018     * Indicate that the item should not be generated. For example, 
019     * custom natives are coded by hand. 
020     */
021    CLASS_SKIP,
022    
023    /**
024     * Indicate that the platform source is in C++
025     */
026    CPP,
027    
028    /**
029     * Indicate that this class will define a structure
030     */
031    STRUCT,
032    
033    /**
034     * Indicate that structure name is a typedef (It should 
035     * not be prefixed with 'struct' to reference it.)
036     */
037    TYPEDEF,
038
039    /**
040     * Indicate that the struct should get zeroed out before
041     * setting any of it's fields.  Comes in handy when 
042     * you don't map all the struct fields to java fields but
043     * still want the fields that are not mapped initialized. 
044     */
045    ZERO_OUT,
046}