added ace + vcproj for win
--HG-- branch : trunk
This commit is contained in:
Vendored
+285
@@ -0,0 +1,285 @@
|
||||
// -*- C++ -*-
|
||||
|
||||
//=============================================================================
|
||||
/**
|
||||
* @file OS_TLI.h
|
||||
*
|
||||
* $Id: OS_TLI.h 80826 2008-03-04 14:51:23Z wotte $
|
||||
*
|
||||
* @author Doug Schmidt <[email protected]>
|
||||
*/
|
||||
//=============================================================================
|
||||
|
||||
|
||||
#ifndef ACE_OS_TLI_H
|
||||
# define ACE_OS_TLI_H
|
||||
# include /**/ "ace/pre.h"
|
||||
|
||||
# include "ace/config-all.h"
|
||||
|
||||
# if !defined (ACE_LACKS_PRAGMA_ONCE)
|
||||
# pragma once
|
||||
# endif /* ACE_LACKS_PRAGMA_ONCE */
|
||||
|
||||
# include "ace/OS_Errno.h"
|
||||
# include "ace/ACE_export.h"
|
||||
|
||||
# if defined (ACE_EXPORT_MACRO)
|
||||
# undef ACE_EXPORT_MACRO
|
||||
# endif
|
||||
# define ACE_EXPORT_MACRO ACE_Export
|
||||
|
||||
# if !(defined(ACE_HAS_TLI) || defined(ACE_HAS_XTI))
|
||||
// Dummies to help compilation.
|
||||
struct t_call { };
|
||||
struct t_bind { };
|
||||
struct t_info { };
|
||||
struct t_optmgmt { };
|
||||
struct t_discon { };
|
||||
struct t_unitdata { };
|
||||
struct t_uderr { };
|
||||
struct netbuf { };
|
||||
|
||||
# else /* !(ACE_HAS_TLI || ACE_HAS_XTI) */
|
||||
|
||||
# if defined (ACE_HAS_CONFLICTING_XTI_MACROS)
|
||||
// Make sure tcp.h gets included before sys/xti.h.
|
||||
# include "ace/os_include/netinet/os_tcp.h"
|
||||
# undef TCP_NODELAY
|
||||
# undef TCP_MAXSEG
|
||||
# endif /* ACE_HAS_CONFLICTING_XTI_MACROS */
|
||||
|
||||
# if defined (ACE_HAS_XTI)
|
||||
# if defined (ACE_HAS_SYS_XTI_H) /* Nonstandard header placement */
|
||||
# define class ace_xti_class
|
||||
# include /**/ <sys/xti.h>
|
||||
# undef class
|
||||
# elif defined (ACE_HAS_FORE_ATM_XTI)
|
||||
# include /**/ <fore_xti/xti_user_types.h>
|
||||
# include /**/ <fore_xti/xti.h>
|
||||
# include /**/ <fore_xti/xti_atm.h>
|
||||
# include /**/ <fore_xti/netatm/atm.h>
|
||||
# include /**/ <fore_xti/ans.h>
|
||||
# else
|
||||
# include /**/ <xti.h>
|
||||
# endif /* ACE_HAS_SYS_XTI_H */
|
||||
|
||||
// The XTI API for obtaining local/peer addresses is t_getprotaddr().
|
||||
// The ACE API was developed in TLI days and so uses t_getname().
|
||||
// t_getname() has a type argument that specifies which address is
|
||||
// desired, local or peer, while t_getprotaddr() gets both at once.
|
||||
// t_getname() has values defined for the type, so these aren't defined
|
||||
// for XTI systems. So, define them here for ACE API users to use.
|
||||
// These values were taken from sys/tiuser.h on Solaris.
|
||||
# if !defined (LOCALNAME)
|
||||
# define LOCALNAME 0
|
||||
# endif
|
||||
# if !defined (REMOTENAME)
|
||||
# define REMOTENAME 1
|
||||
# endif
|
||||
|
||||
# else /* !ACE_HAS_XTI, so this is a TLI system */
|
||||
# if !defined (ACE_HAS_TLI_PROTOTYPES)
|
||||
|
||||
// Define ACE_TLI headers for systems that don't prototype them....
|
||||
extern "C"
|
||||
{
|
||||
int t_accept(int fildes, int resfd, struct t_call *call);
|
||||
char *t_alloc(int fildes, int struct_type, int fields);
|
||||
int t_bind(int fildes, struct t_bind *req, struct t_bind *ret);
|
||||
int t_close(int fildes);
|
||||
int t_connect(int fildes, struct t_call *sndcall,
|
||||
struct t_call *rcvcall);
|
||||
void t_error(const char *errmsg);
|
||||
int t_free(char *ptr, int struct_type);
|
||||
int t_getinfo(int fildes, struct t_info *info);
|
||||
int t_getname (int fildes, struct netbuf *namep, int type);
|
||||
int t_getstate(int fildes);
|
||||
int t_listen(int fildes, struct t_call *call);
|
||||
int t_look(int fildes);
|
||||
int t_open(char *path, int oflag, struct t_info *info);
|
||||
int t_optmgmt(int fildes, struct t_optmgmt *req,
|
||||
struct t_optmgmt *ret);
|
||||
int t_rcv(int fildes, char *buf, unsigned int nbytes, int *flags);
|
||||
int t_rcvconnect(int fildes, struct t_call *call);
|
||||
int t_rcvdis(int fildes, struct t_discon *discon);
|
||||
int t_rcvrel(int fildes);
|
||||
int t_rcvudata(int fildes, struct t_unitdata *unitdata, int *flags);
|
||||
int t_rcvuderr(int fildes, struct t_uderr *uderr);
|
||||
int t_snd(int fildes, const char *buf, unsigned int nbytes, int flags);
|
||||
int t_snddis(int fildes, struct t_call *call);
|
||||
int t_sndrel(int fildes);
|
||||
int t_sndudata(int fildes, struct t_unitdata *unitdata);
|
||||
int t_sync(int fildes);
|
||||
int t_unbind(int fildes);
|
||||
}
|
||||
# endif /* !ACE_HAS_TLI_PROTOTYPES */
|
||||
|
||||
# if defined (ACE_HAS_TIUSER_H_BROKEN_EXTERN_C)
|
||||
extern "C" {
|
||||
# endif /* ACE_HAS_TIUSER_H_BROKEN_EXTERN_C */
|
||||
# if defined (ACE_HAS_TIUSER_H)
|
||||
# include /**/ <tiuser.h>
|
||||
# else
|
||||
/* What to do here??? Is there a tli.h? */
|
||||
# endif /* ACE_HAS_TIUSER_H */
|
||||
# if defined (ACE_HAS_TIUSER_H_BROKEN_EXTERN_C)
|
||||
}
|
||||
# endif /* ACE_HAS_TIUSER_H_BROKEN_EXTERN_C */
|
||||
|
||||
# if defined (ACE_HAS_SVR4_TLI)
|
||||
// t_getname is a TLI extension added by some platforms before XTI
|
||||
// was widely available. However, it's not often in the system's
|
||||
// header files. Sun OS, for example, is like this.
|
||||
extern "C" int t_getname (int, struct netbuf *, int);
|
||||
# endif /* ACE_HAS_SVR4_TLI */
|
||||
# endif /* !ACE_HAS_XTI */
|
||||
|
||||
# endif /* ACE_HAS_XTI || ACE_HAS_TLI */
|
||||
|
||||
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
|
||||
|
||||
// This hack is needed to get around an odd and hard-to-reproduce problem
|
||||
// with HP aC++. If struct sigaction is defined extern "C" and the sigaction
|
||||
// function in namespace ACE_OS, the compiler sometimes gets confused.
|
||||
// If we help it with this typedef, it's fine. User code should not use
|
||||
// the ACE typedef - it will be removed without warning as soon as we can
|
||||
// either drop support for the broken compilers or figure out how to reproduce
|
||||
// it so it can be reported to HP and fixed.
|
||||
// There's a similar hack in OS_TLI.h for struct t_optmgmt.
|
||||
// Also see ChangeLog entries:
|
||||
// Mon Jan 23 16:35:40 UTC 2006 Steve Huston <[email protected]>
|
||||
// Mon Jan 23 22:08:56 UTC 2006 Steve Huston <[email protected]>
|
||||
#if defined (__HP_aCC) && (__HP_aCC <= 37300)
|
||||
typedef extern "C" struct t_optmgmt ACE_TOPTMGMT;
|
||||
typedef extern "C" struct t_bind ACE_TBIND;
|
||||
#else
|
||||
typedef struct t_optmgmt ACE_TOPTMGMT;
|
||||
typedef struct t_bind ACE_TBIND;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @namespace ACE_OS
|
||||
*
|
||||
* @brief This class is a wrapper for the XTI/TLI operations
|
||||
*
|
||||
*/
|
||||
namespace ACE_OS
|
||||
{
|
||||
// = A set of wrappers for XTI/TLI.
|
||||
ACE_NAMESPACE_INLINE_FUNCTION
|
||||
int t_accept (ACE_HANDLE fildes,
|
||||
ACE_HANDLE resfd,
|
||||
struct t_call
|
||||
*call);
|
||||
|
||||
ACE_NAMESPACE_INLINE_FUNCTION
|
||||
char *t_alloc (ACE_HANDLE fildes,
|
||||
int struct_type,
|
||||
int
|
||||
fields);
|
||||
|
||||
ACE_NAMESPACE_INLINE_FUNCTION
|
||||
int t_bind (ACE_HANDLE fildes,
|
||||
ACE_TBIND *req,
|
||||
ACE_TBIND *ret);
|
||||
|
||||
ACE_NAMESPACE_INLINE_FUNCTION
|
||||
int t_close (ACE_HANDLE fildes);
|
||||
|
||||
ACE_NAMESPACE_INLINE_FUNCTION
|
||||
int t_connect (ACE_HANDLE fildes,
|
||||
struct t_call *sndcall,
|
||||
struct t_call *rcvcall);
|
||||
|
||||
ACE_NAMESPACE_INLINE_FUNCTION
|
||||
void t_error (const char *errmsg);
|
||||
|
||||
ACE_NAMESPACE_INLINE_FUNCTION
|
||||
int t_free (char *ptr,
|
||||
int struct_type);
|
||||
|
||||
ACE_NAMESPACE_INLINE_FUNCTION
|
||||
int t_getinfo (ACE_HANDLE fildes,
|
||||
struct t_info *info);
|
||||
|
||||
ACE_NAMESPACE_INLINE_FUNCTION
|
||||
int t_getname (ACE_HANDLE fildes,
|
||||
struct netbuf *namep,
|
||||
int type);
|
||||
|
||||
ACE_NAMESPACE_INLINE_FUNCTION
|
||||
int t_getstate (ACE_HANDLE fildes);
|
||||
|
||||
ACE_NAMESPACE_INLINE_FUNCTION
|
||||
int t_listen (ACE_HANDLE fildes,
|
||||
struct t_call *call);
|
||||
|
||||
ACE_NAMESPACE_INLINE_FUNCTION
|
||||
int t_look (ACE_HANDLE fildes);
|
||||
|
||||
ACE_NAMESPACE_INLINE_FUNCTION
|
||||
ACE_HANDLE t_open (char *path,
|
||||
int oflag,
|
||||
struct t_info *info);
|
||||
|
||||
ACE_NAMESPACE_INLINE_FUNCTION
|
||||
int t_optmgmt (ACE_HANDLE handle,
|
||||
ACE_TOPTMGMT *req,
|
||||
ACE_TOPTMGMT *ret);
|
||||
|
||||
ACE_NAMESPACE_INLINE_FUNCTION
|
||||
int t_rcv (ACE_HANDLE fildes,
|
||||
char *buf,
|
||||
unsigned int nbytes,
|
||||
int *flags);
|
||||
|
||||
ACE_NAMESPACE_INLINE_FUNCTION
|
||||
int t_rcvdis (ACE_HANDLE fildes,
|
||||
struct t_discon *discon);
|
||||
|
||||
ACE_NAMESPACE_INLINE_FUNCTION
|
||||
int t_rcvrel (ACE_HANDLE fildes);
|
||||
|
||||
ACE_NAMESPACE_INLINE_FUNCTION
|
||||
int t_rcvudata (ACE_HANDLE fildes,
|
||||
struct t_unitdata *unitdata,
|
||||
int *flags);
|
||||
|
||||
ACE_NAMESPACE_INLINE_FUNCTION
|
||||
int t_rcvuderr (ACE_HANDLE fildes,
|
||||
struct t_uderr *uderr);
|
||||
|
||||
ACE_NAMESPACE_INLINE_FUNCTION
|
||||
int t_snd (ACE_HANDLE fildes,
|
||||
const char *buf,
|
||||
unsigned int nbytes,
|
||||
int flags);
|
||||
|
||||
ACE_NAMESPACE_INLINE_FUNCTION
|
||||
int t_snddis (ACE_HANDLE fildes,
|
||||
struct t_call *call);
|
||||
|
||||
ACE_NAMESPACE_INLINE_FUNCTION
|
||||
int t_sndrel (ACE_HANDLE fildes);
|
||||
|
||||
ACE_NAMESPACE_INLINE_FUNCTION
|
||||
int t_sync (ACE_HANDLE fildes);
|
||||
|
||||
ACE_NAMESPACE_INLINE_FUNCTION
|
||||
int t_unbind (ACE_HANDLE fildes);
|
||||
|
||||
} /* namespace ACE_OS */
|
||||
|
||||
ACE_END_VERSIONED_NAMESPACE_DECL
|
||||
|
||||
# if defined (ACE_HAS_INLINED_OSCALLS)
|
||||
# if defined (ACE_INLINE)
|
||||
# undef ACE_INLINE
|
||||
# endif /* ACE_INLINE */
|
||||
# define ACE_INLINE inline
|
||||
# include "ace/OS_TLI.inl"
|
||||
# endif /* ACE_HAS_INLINED_OSCALLS */
|
||||
|
||||
#include /**/ "ace/post.h"
|
||||
#endif /* ACE_OS_TLI_H */
|
||||
Reference in New Issue
Block a user