File: socket_ext.h

package info (click to toggle)
falconpl 0.9.6.9-git20120606-2
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 46,176 kB
  • sloc: cpp: 181,389; ansic: 109,025; yacc: 2,310; xml: 1,218; sh: 403; objc: 245; makefile: 82; sql: 20
file content (125 lines) | stat: -rw-r--r-- 4,211 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
/*
   FALCON - The Falcon Programming Language.
   FILE: socket_ext.cpp

   Falcon VM interface to socket module -- header.
   -------------------------------------------------------------------
   Author: Giancarlo Niccolai
   Begin: 2006-05-09 15:50

   -------------------------------------------------------------------
   (C) Copyright 2004: the FALCON developers (see list in AUTHORS file)

   See LICENSE file for licensing details.
*/

/** \file
   Falcon VM interface to socket module -- header.
*/


#ifndef FLC_SOCKET_EXT_H
#define FLC_SOCKET_EXT_H

#include <falcon/setup.h>
#include <falcon/module.h>
#include <falcon/error.h>
#include <falcon/error_base.h>

#ifndef FALCON_SOCKET_ERROR_BASE
   #define FALCON_SOCKET_ERROR_BASE        1170
#endif

#define FALSOCK_ERR_GENERIC  (FALCON_SOCKET_ERROR_BASE + 0)
#define FALSOCK_ERR_RESOLV  (FALCON_SOCKET_ERROR_BASE + 1)
#define FALSOCK_ERR_CREATE  (FALCON_SOCKET_ERROR_BASE + 2)
#define FALSOCK_ERR_CONNECT  (FALCON_SOCKET_ERROR_BASE + 3)
#define FALSOCK_ERR_SEND  (FALCON_SOCKET_ERROR_BASE + 4)
#define FALSOCK_ERR_RECV  (FALCON_SOCKET_ERROR_BASE + 5)
#define FALSOCK_ERR_CLOSE  (FALCON_SOCKET_ERROR_BASE + 6)
#define FALSOCK_ERR_BIND  (FALCON_SOCKET_ERROR_BASE + 7)
#define FALSOCK_ERR_ACCEPT  (FALCON_SOCKET_ERROR_BASE + 8)

#if WITH_OPENSSL
#define FALSOCK_ERR_SSLCONFIG (FALCON_SOCKET_ERROR_BASE + 10)
#define FALSOCK_ERR_SSLCONNECT (FALCON_SOCKET_ERROR_BASE + 11)
#endif

namespace Falcon {
namespace Ext {

// =============================================
// Generic Functions
// ==============================================
FALCON_FUNC  falcon_getHostName( ::Falcon::VMachine *vm );
FALCON_FUNC  resolveAddress( ::Falcon::VMachine *vm );
FALCON_FUNC  socketErrorDesc( ::Falcon::VMachine *vm );
FALCON_FUNC  falcon_haveSSL( ::Falcon::VMachine *vm );

// ==============================================
// Class Socket
// ==============================================
FALCON_FUNC  Socket_init( ::Falcon::VMachine *vm );
FALCON_FUNC  Socket_setTimeout( ::Falcon::VMachine *vm );
FALCON_FUNC  Socket_getTimeout( ::Falcon::VMachine *vm );
FALCON_FUNC  Socket_dispose( ::Falcon::VMachine *vm );
FALCON_FUNC  Socket_readAvailable( ::Falcon::VMachine *vm );
FALCON_FUNC  Socket_writeAvailable( ::Falcon::VMachine *vm );
FALCON_FUNC  Socket_getHost( ::Falcon::VMachine *vm );
FALCON_FUNC  Socket_getService( ::Falcon::VMachine *vm );
FALCON_FUNC  Socket_getPort( ::Falcon::VMachine *vm );

// ==============================================
// Class TCPSocket
// ==============================================
FALCON_FUNC  TCPSocket_init( ::Falcon::VMachine *vm );
FALCON_FUNC  TCPSocket_connect( ::Falcon::VMachine *vm );
FALCON_FUNC  TCPSocket_isConnected( ::Falcon::VMachine *vm );
FALCON_FUNC  TCPSocket_send( ::Falcon::VMachine *vm );
FALCON_FUNC  TCPSocket_recv( ::Falcon::VMachine *vm );
FALCON_FUNC  TCPSocket_closeRead( ::Falcon::VMachine *vm );
FALCON_FUNC  TCPSocket_closeWrite( ::Falcon::VMachine *vm );
FALCON_FUNC  TCPSocket_close( ::Falcon::VMachine *vm );
#if WITH_OPENSSL
FALCON_FUNC  TCPSocket_sslConfig( ::Falcon::VMachine *vm );
FALCON_FUNC  TCPSocket_sslClear( ::Falcon::VMachine *vm );
FALCON_FUNC  TCPSocket_sslConnect( ::Falcon::VMachine *vm );
#endif

// ==============================================
// Class UDPSocket
// ==============================================
FALCON_FUNC  UDPSocket_init( ::Falcon::VMachine *vm );
FALCON_FUNC  UDPSocket_broadcast( ::Falcon::VMachine *vm );
FALCON_FUNC  UDPSocket_sendTo( ::Falcon::VMachine *vm );
FALCON_FUNC  UDPSocket_recv( ::Falcon::VMachine *vm );

// ==============================================
// Class TCPServer
// ==============================================

FALCON_FUNC  TCPServer_init( ::Falcon::VMachine *vm );
FALCON_FUNC  TCPServer_dispose( ::Falcon::VMachine *vm );
FALCON_FUNC  TCPServer_bind( ::Falcon::VMachine *vm );
FALCON_FUNC  TCPServer_accept( ::Falcon::VMachine *vm );

class NetError: public ::Falcon::Error
{
public:
   NetError():
      Error( "NetError" )
   {}

   NetError( const ErrorParam &params  ):
      Error( "NetError", params )
      {}
};

FALCON_FUNC  NetError_init ( ::Falcon::VMachine *vm );

}
}

#endif

/* end of socket_ext.h */