/*
 *
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 *
 */


// This file automatically generated by:
//   Apache Etch 1.1.0-incubating (LOCAL-0) / c 1.1.0-incubating (LOCAL-0)
//   Fri Aug 28 15:58:20 CEST 2009
// This file is automatically created and should not be edited!

/*
 * helloworld_server.h
 * helloworld client interface.
 * combines java bindings's helloworldServer and BasehelloworldServer
 */

#ifndef HELLOWORLD_SERVER_H
#define HELLOWORLD_SERVER_H

#include "helloworld_interface.h"
#include "etch_sessionint.h"

#ifdef __cplusplus
extern "C" {
#endif

extern unsigned short CLASSID_HELLOWORLD_SERVER_BASE;

//typedef struct helloworld_server_impl helloworld_server_impl;

/**
 * i_helloworld_server
 * helloworld server base interface
 */
typedef struct i_helloworld_server
{
    etch_object object;

	struct helloworld_server_impl* thisx;
    i_helloworld*  ihelloworld;
    
    
    int session_id;
    unsigned char is_service_interface_owned;
    unsigned char unused[3];

    /* - - - - - - - - - - -
     * objsession
     * - - - - - - - - - - -
     */
    i_objsession* iobjsession;
    etch_session_control _session_control;
    etch_session_notify  _session_notify;
    etch_session_query   _session_query;

    /* - - - - - - - - - - -
     * service virtuals
     * - - - - - - - - - - -
     */
    helloworld_say_hello say_hello;

    helloworld_say_hello async_say_hello;

    /* - - - - - - - - - - -
    * service data
    * - - - - - - - - - - -
    */
    helloworld_user* user;

     /* - - - - - - - - - - -
     * private instance data
     * - - - - - - - - - - -
     */
    int server_id;

} i_helloworld_server;

i_helloworld_server* new_helloworld_server_base (void* implobj, i_helloworld*);
i_helloworld_server* new_helloworld_remote_server_base (void* implobj, i_helloworld*);
int destroy_helloworld_server_base (void*);


#ifdef __cplusplus
} //extern "C"
#endif

#endif /* HELLOWORLD_SERVER_H */
