00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef ACE_ACE_H
00021 #define ACE_ACE_H
00022
00023 #include "ace/pre.h"
00024
00025 #include "ace/config-lite.h"
00026
00027 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00028 # pragma once
00029 #endif
00030
00031 #include "ace/OS_NS_math.h"
00032 #include "ace/Flag_Manip.h"
00033 #include "ace/Handle_Ops.h"
00034 #include "ace/Lib_Find.h"
00035 #include "ace/Init_ACE.h"
00036 #include "ace/Sock_Connect.h"
00037 #include "ace/Default_Constants.h"
00038
00039 #if defined (ACE_EXPORT_MACRO)
00040 # undef ACE_EXPORT_MACRO
00041 #endif
00042 #define ACE_EXPORT_MACRO ACE_Export
00043
00044
00045 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00046
00047
00048 class ACE_Time_Value;
00049 class ACE_Message_Block;
00050 class ACE_Handle_Set;
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061 namespace ACE
00062 {
00063
00064
00065 extern ACE_Export u_int major_version (void);
00066
00067
00068 extern ACE_Export u_int minor_version (void);
00069
00070
00071
00072 extern ACE_Export u_int beta_version (void);
00073
00074
00075
00076 extern ACE_Export const ACE_TCHAR * compiler_name (void);
00077
00078
00079 extern ACE_Export u_int compiler_major_version (void);
00080
00081
00082 extern ACE_Export u_int compiler_minor_version (void);
00083
00084
00085 extern ACE_Export u_int compiler_beta_version (void);
00086
00087
00088
00089 extern ACE_Export int out_of_handles (int error);
00090
00091
00092
00093 extern ACE_Export bool wild_match(const char* s, const char* pattern, bool case_sensitive = true);
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144 extern ACE_Export ssize_t recv (ACE_HANDLE handle,
00145 void *buf,
00146 size_t len,
00147 int flags,
00148 const ACE_Time_Value *timeout = 0);
00149
00150 #if defined (ACE_HAS_TLI)
00151
00152 extern ACE_Export ssize_t t_rcv (ACE_HANDLE handle,
00153 void *buf,
00154 size_t len,
00155 int *flags,
00156 const ACE_Time_Value *timeout = 0);
00157
00158 #endif
00159
00160 extern ACE_Export ssize_t recv (ACE_HANDLE handle,
00161 void *buf,
00162 size_t len,
00163 const ACE_Time_Value *timeout = 0);
00164
00165 extern ACE_Export ssize_t recvmsg (ACE_HANDLE handle,
00166 struct msghdr *msg,
00167 int flags,
00168 const ACE_Time_Value *timeout = 0);
00169
00170 extern ACE_Export ssize_t recvfrom (ACE_HANDLE handle,
00171 char *buf,
00172 int len,
00173 int flags,
00174 struct sockaddr *addr,
00175 int *addrlen,
00176 const ACE_Time_Value *timeout = 0);
00177
00178 ACE_NAMESPACE_INLINE_FUNCTION
00179 ssize_t recv_n (ACE_HANDLE handle,
00180 void *buf,
00181 size_t len,
00182 int flags,
00183 const ACE_Time_Value *timeout = 0,
00184 size_t *bytes_transferred = 0);
00185
00186 #if defined (ACE_HAS_TLI)
00187
00188 ACE_NAMESPACE_INLINE_FUNCTION
00189 ssize_t t_rcv_n (ACE_HANDLE handle,
00190 void *buf,
00191 size_t len,
00192 int *flags,
00193 const ACE_Time_Value *timeout = 0,
00194 size_t *bytes_transferred = 0);
00195
00196 #endif
00197
00198 ACE_NAMESPACE_INLINE_FUNCTION
00199 ssize_t recv_n (ACE_HANDLE handle,
00200 void *buf,
00201 size_t len,
00202 const ACE_Time_Value *timeout = 0,
00203 size_t *bytes_transferred = 0);
00204
00205
00206
00207
00208
00209
00210
00211
00212
00213
00214
00215 extern ACE_Export ssize_t recv (ACE_HANDLE handle, size_t n, ...);
00216
00217 extern ACE_Export ssize_t recvv (ACE_HANDLE handle,
00218 iovec *iov,
00219 int iovcnt,
00220 const ACE_Time_Value *timeout = 0);
00221
00222 ACE_NAMESPACE_INLINE_FUNCTION
00223 ssize_t recvv_n (ACE_HANDLE handle,
00224 iovec *iov,
00225 int iovcnt,
00226 const ACE_Time_Value *timeout = 0,
00227 size_t *bytes_transferred = 0);
00228
00229 extern ACE_Export ssize_t recv_n (ACE_HANDLE handle,
00230 ACE_Message_Block *message_block,
00231 const ACE_Time_Value *timeout = 0,
00232 size_t *bytes_transferred = 0);
00233
00234 extern ACE_Export ssize_t send (ACE_HANDLE handle,
00235 const void *buf,
00236 size_t len,
00237 int flags,
00238 const ACE_Time_Value *timeout = 0);
00239
00240 #if defined (ACE_HAS_TLI)
00241
00242 extern ACE_Export ssize_t t_snd (ACE_HANDLE handle,
00243 const void *buf,
00244 size_t len,
00245 int flags,
00246 const ACE_Time_Value *timeout = 0);
00247
00248 #endif
00249
00250 extern ACE_Export ssize_t send (ACE_HANDLE handle,
00251 const void *buf,
00252 size_t len,
00253 const ACE_Time_Value *timeout = 0);
00254
00255 extern ACE_Export ssize_t sendmsg (ACE_HANDLE handle,
00256 const struct msghdr *msg,
00257 int flags,
00258 const ACE_Time_Value *timeout = 0);
00259
00260 extern ACE_Export ssize_t sendto (ACE_HANDLE handle,
00261 const char *buf,
00262 int len,
00263 int flags,
00264 const struct sockaddr *addr,
00265 int addrlen,
00266 const ACE_Time_Value *timeout = 0);
00267
00268 ACE_NAMESPACE_INLINE_FUNCTION
00269 ssize_t send_n (ACE_HANDLE handle,
00270 const void *buf,
00271 size_t len,
00272 int flags,
00273 const ACE_Time_Value *timeout = 0,
00274 size_t *bytes_transferred = 0);
00275
00276 #if defined (ACE_HAS_TLI)
00277
00278 ACE_NAMESPACE_INLINE_FUNCTION
00279 ssize_t t_snd_n (ACE_HANDLE handle,
00280 const void *buf,
00281 size_t len,
00282 int flags,
00283 const ACE_Time_Value *timeout = 0,
00284 size_t *bytes_transferred = 0);
00285
00286 #endif
00287
00288 ACE_NAMESPACE_INLINE_FUNCTION
00289 ssize_t send_n (ACE_HANDLE handle,
00290 const void *buf,
00291 size_t len,
00292 const ACE_Time_Value *timeout = 0,
00293 size_t *bytes_transferred = 0);
00294
00295
00296 extern ACE_Export ssize_t send (ACE_HANDLE handle, size_t n, ...);
00297
00298 extern ACE_Export ssize_t sendv (ACE_HANDLE handle,
00299 const iovec *iov,
00300 int iovcnt,
00301 const ACE_Time_Value *timeout = 0);
00302
00303 ACE_NAMESPACE_INLINE_FUNCTION
00304 ssize_t sendv_n (ACE_HANDLE handle,
00305 const iovec *iov,
00306 int iovcnt,
00307 const ACE_Time_Value *timeout = 0,
00308 size_t *bytes_transferred = 0);
00309
00310
00311
00312
00313 extern ACE_Export ssize_t send_n (ACE_HANDLE handle,
00314 const ACE_Message_Block *message_block,
00315 const ACE_Time_Value *timeout = 0,
00316 size_t *bytes_transferred = 0);
00317
00318
00319
00320 ACE_NAMESPACE_INLINE_FUNCTION
00321 ssize_t read_n (ACE_HANDLE handle,
00322 void *buf,
00323 size_t len,
00324 size_t *bytes_transferred = 0);
00325
00326 ACE_NAMESPACE_INLINE_FUNCTION
00327 ssize_t write_n (ACE_HANDLE handle,
00328 const void *buf,
00329 size_t len,
00330 size_t *bytes_transferred = 0);
00331
00332
00333
00334
00335 extern ACE_Export ssize_t write_n (ACE_HANDLE handle,
00336 const ACE_Message_Block *message_block,
00337 size_t *bytes_transferred = 0);
00338
00339 extern ACE_Export ssize_t readv_n (ACE_HANDLE handle,
00340 iovec *iov,
00341 int iovcnt,
00342 size_t *bytes_transferred = 0);
00343
00344 extern ACE_Export ssize_t writev_n (ACE_HANDLE handle,
00345 const iovec *iov,
00346 int iovcnt,
00347 size_t *bytes_transferred = 0);
00348
00349
00350
00351
00352
00353
00354
00355 extern ACE_Export int handle_timed_accept (ACE_HANDLE listener,
00356 ACE_Time_Value *timeout,
00357 int restart);
00358
00359
00360
00361
00362
00363
00364
00365 extern ACE_Export ACE_HANDLE handle_timed_complete (
00366 ACE_HANDLE listener,
00367 const ACE_Time_Value *timeout,
00368 int is_tli = 0);
00369
00370
00371
00372
00373
00374
00375
00376 extern ACE_Export int set_handle_limit (int new_limit = -1,
00377 int increase_limit_only = 0);
00378
00379
00380
00381
00382
00383
00384 extern ACE_Export int max_handles (void);
00385
00386
00387 #if !defined (ACE_HAS_WINCE)
00388
00389
00390
00391
00392
00393
00394 extern ACE_Export ACE_TCHAR *strenvdup (const ACE_TCHAR *str);
00395 #endif
00396
00397
00398
00399 extern ACE_Export const char *strend (const char *s);
00400
00401
00402
00403
00404 extern ACE_Export char *strnew (const char *s);
00405
00406
00407 ACE_NAMESPACE_INLINE_FUNCTION void strdelete (char *s);
00408
00409
00410
00411 extern ACE_Export char *strndup (const char *str, size_t n);
00412
00413
00414
00415 extern ACE_Export char *strnnew (const char *str, size_t n);
00416
00417 #if defined (ACE_HAS_WCHAR)
00418 extern ACE_Export const wchar_t *strend (const wchar_t *s);
00419
00420 extern ACE_Export wchar_t *strnew (const wchar_t *s);
00421
00422 ACE_NAMESPACE_INLINE_FUNCTION void strdelete (wchar_t *s);
00423
00424 extern ACE_Export wchar_t *strndup (const wchar_t *str, size_t n);
00425
00426 extern ACE_Export wchar_t *strnnew (const wchar_t *str, size_t n);
00427
00428 #endif
00429
00430
00431
00432
00433
00434
00435
00436
00437
00438
00439
00440
00441
00442
00443
00444
00445
00446 extern ACE_Export const ACE_TCHAR *execname (const ACE_TCHAR *pathname);
00447
00448
00449
00450
00451
00452
00453 extern ACE_Export const ACE_TCHAR *basename (const ACE_TCHAR *pathname,
00454 ACE_TCHAR delim =
00455 ACE_DIRECTORY_SEPARATOR_CHAR);
00456
00457
00458
00459
00460
00461
00462
00463 extern ACE_Export const ACE_TCHAR *dirname (const ACE_TCHAR *pathname,
00464 ACE_TCHAR delim =
00465 ACE_DIRECTORY_SEPARATOR_CHAR);
00466
00467
00468
00469
00470
00471
00472
00473
00474
00475
00476
00477
00478 extern ACE_Export ACE_TCHAR *timestamp (ACE_TCHAR date_and_time[],
00479 int time_len,
00480 int return_pointer_to_first_digit =
00481 0);
00482
00483
00484
00485
00486
00487
00488
00489
00490
00491
00492 extern ACE_Export pid_t fork (
00493 const ACE_TCHAR *program_name = ACE_TEXT ("<unknown>"),
00494 int avoid_zombies = 0);
00495
00496
00497
00498
00499
00500
00501
00502 extern ACE_Export int daemonize (
00503 const ACE_TCHAR pathname[] = ACE_TEXT ("/"),
00504 bool close_all_handles = ACE_DEFAULT_CLOSE_ALL_HANDLES,
00505 const ACE_TCHAR program_name[] = ACE_TEXT ("<unknown>"));
00506
00507
00508
00509 extern ACE_Export size_t round_to_pagesize (size_t len);
00510
00511
00512 extern ACE_Export size_t round_to_allocation_granularity (size_t len);
00513
00514
00515
00516
00517 extern ACE_Export size_t format_hexdump (const char *buffer, size_t size,
00518 ACE_TCHAR *obuf, size_t obuf_sz);
00519
00520
00521 extern ACE_Export u_long hash_pjw (const char *str);
00522
00523
00524 extern ACE_Export u_long hash_pjw (const char *str, size_t len);
00525
00526 #if defined (ACE_HAS_WCHAR)
00527
00528 extern ACE_Export u_long hash_pjw (const wchar_t *str);
00529
00530
00531 extern ACE_Export u_long hash_pjw (const wchar_t *str, size_t len);
00532 #endif
00533
00534
00535 extern ACE_Export ACE_UINT16 crc_ccitt(const char *str);
00536
00537
00538 extern ACE_Export ACE_UINT16 crc_ccitt(const void *buf, size_t len,
00539 ACE_UINT16 crc = 0);
00540
00541
00542 extern ACE_Export ACE_UINT16 crc_ccitt(const iovec *iov, int len,
00543 ACE_UINT16 crc = 0);
00544
00545
00546 extern ACE_Export ACE_UINT32 crc32 (const char *str);
00547
00548
00549 extern ACE_Export ACE_UINT32 crc32 (const void *buf, size_t len,
00550 ACE_UINT32 crc = 0);
00551
00552
00553
00554 extern ACE_Export ACE_UINT32 crc32 (const iovec *iov, int len,
00555 ACE_UINT32 crc = 0);
00556
00557
00558 extern ACE_Export u_long gcd (u_long x, u_long y);
00559
00560
00561 extern ACE_Export u_long minimum_frame_size (u_long period1, u_long period2);
00562
00563
00564
00565
00566
00567
00568
00569
00570
00571 extern ACE_Export u_long is_prime (const u_long n,
00572 const u_long min_factor,
00573 const u_long max_factor);
00574
00575
00576
00577 extern ACE_Export int map_errno (int error);
00578
00579
00580
00581
00582 extern ACE_Export const ACE_TCHAR * sock_error (int error);
00583
00584
00585
00586
00587 extern ACE_Export bool is_sock_error (int error);
00588
00589
00590
00591
00592
00593
00594 extern ACE_Export int process_active (pid_t pid);
00595
00596
00597
00598
00599
00600
00601
00602
00603
00604 extern ACE_Export int terminate_process (pid_t pid);
00605
00606
00607
00608
00609
00610
00611
00612
00613
00614 ACE_NAMESPACE_INLINE_FUNCTION void unique_name (const void *object,
00615 ACE_TCHAR *name,
00616 size_t length);
00617
00618
00619 ACE_NAMESPACE_INLINE_FUNCTION u_long log2 (u_long num);
00620
00621
00622 ACE_NAMESPACE_INLINE_FUNCTION ACE_TCHAR nibble2hex (u_int n);
00623
00624
00625 ACE_NAMESPACE_INLINE_FUNCTION u_char hex2byte (ACE_TCHAR c);
00626
00627
00628 extern ACE_Export bool debug (void);
00629 extern ACE_Export void debug (bool onoff);
00630
00631
00632 extern ACE_Export int select (int width,
00633 ACE_Handle_Set *readfds,
00634 ACE_Handle_Set *writefds = 0,
00635 ACE_Handle_Set *exceptfds = 0,
00636 const ACE_Time_Value *timeout = 0);
00637
00638
00639
00640 extern ACE_Export int select (int width,
00641 ACE_Handle_Set &readfds,
00642 const ACE_Time_Value *timeout = 0);
00643
00644
00645 ACE_NAMESPACE_INLINE_FUNCTION
00646 int handle_read_ready (ACE_HANDLE handle,
00647 const ACE_Time_Value *timeout);
00648
00649
00650 ACE_NAMESPACE_INLINE_FUNCTION
00651 int handle_write_ready (ACE_HANDLE handle,
00652 const ACE_Time_Value *timeout);
00653
00654
00655 ACE_NAMESPACE_INLINE_FUNCTION
00656 int handle_exception_ready (ACE_HANDLE handle,
00657 const ACE_Time_Value *timeout);
00658
00659
00660 extern ACE_Export int handle_ready (ACE_HANDLE handle,
00661 const ACE_Time_Value *timeout,
00662 int read_ready,
00663 int write_ready,
00664 int exception_ready);
00665
00666
00667
00668
00669 extern ACE_Export int enter_recv_timedwait (ACE_HANDLE handle,
00670 const ACE_Time_Value *timeout,
00671 int &val);
00672
00673
00674
00675
00676 extern ACE_Export int enter_send_timedwait (ACE_HANDLE handle,
00677 const ACE_Time_Value* timeout,
00678 int &val);
00679
00680
00681
00682 extern ACE_Export void record_and_set_non_blocking_mode (ACE_HANDLE handle,
00683 int &val);
00684
00685
00686
00687 extern ACE_Export void restore_non_blocking_mode (ACE_HANDLE handle,
00688 int val);
00689
00690
00691
00692
00693
00694
00695
00696
00697
00698 ACE_NAMESPACE_INLINE_FUNCTION ssize_t recv_i (ACE_HANDLE handle,
00699 void *buf,
00700 size_t len);
00701
00702 extern ACE_Export ssize_t recv_n_i (ACE_HANDLE handle,
00703 void *buf,
00704 size_t len,
00705 int flags,
00706 size_t *bytes_transferred);
00707
00708 extern ACE_Export ssize_t recv_n_i (ACE_HANDLE handle,
00709 void *buf,
00710 size_t len,
00711 int flags,
00712 const ACE_Time_Value *timeout,
00713 size_t *bytes_transferred);
00714
00715 #if defined (ACE_HAS_TLI)
00716
00717 extern ACE_Export ssize_t t_rcv_n_i (ACE_HANDLE handle,
00718 void *buf,
00719 size_t len,
00720 int *flags,
00721 size_t *bytes_transferred);
00722
00723 extern ACE_Export ssize_t t_rcv_n_i (ACE_HANDLE handle,
00724 void *buf,
00725 size_t len,
00726 int *flags,
00727 const ACE_Time_Value *timeout,
00728 size_t *bytes_transferred);
00729
00730 #endif
00731
00732 extern ACE_Export ssize_t recv_n_i (ACE_HANDLE handle,
00733 void *buf,
00734 size_t len,
00735 size_t *bytes_transferred);
00736
00737 extern ACE_Export ssize_t recv_n_i (ACE_HANDLE handle,
00738 void *buf,
00739 size_t len,
00740 const ACE_Time_Value *timeout,
00741 size_t *bytes_transferred);
00742
00743 extern ACE_Export ssize_t recvv_n_i (ACE_HANDLE handle,
00744 iovec *iov,
00745 int iovcnt,
00746 size_t *bytes_transferred);
00747
00748 extern ACE_Export ssize_t recvv_n_i (ACE_HANDLE handle,
00749 iovec *iov,
00750 int iovcnt,
00751 const ACE_Time_Value *timeout,
00752 size_t *bytes_transferred);
00753
00754
00755
00756
00757
00758 ACE_NAMESPACE_INLINE_FUNCTION ssize_t send_i (ACE_HANDLE handle,
00759 const void *buf,
00760 size_t len);
00761
00762 extern ACE_Export ssize_t send_n_i (ACE_HANDLE handle,
00763 const void *buf,
00764 size_t len,
00765 int flags,
00766 size_t *bytes_transferred);
00767
00768 extern ACE_Export ssize_t send_n_i (ACE_HANDLE handle,
00769 const void *buf,
00770 size_t len,
00771 int flags,
00772 const ACE_Time_Value *timeout,
00773 size_t *bytes_transferred);
00774
00775 #if defined (ACE_HAS_TLI)
00776
00777 extern ACE_Export ssize_t t_snd_n_i (ACE_HANDLE handle,
00778 const void *buf,
00779 size_t len,
00780 int flags,
00781 size_t *bytes_transferred);
00782
00783 extern ACE_Export ssize_t t_snd_n_i (ACE_HANDLE handle,
00784 const void *buf,
00785 size_t len,
00786 int flags,
00787 const ACE_Time_Value *timeout,
00788 size_t *bytes_transferred);
00789
00790 #endif
00791
00792 extern ACE_Export ssize_t send_n_i (ACE_HANDLE handle,
00793 const void *buf,
00794 size_t len,
00795 size_t *bytes_transferred);
00796
00797 extern ACE_Export ssize_t send_n_i (ACE_HANDLE handle,
00798 const void *buf,
00799 size_t len,
00800 const ACE_Time_Value *timeout,
00801 size_t *bytes_transferred);
00802
00803 extern ACE_Export ssize_t sendv_n_i (ACE_HANDLE handle,
00804 const iovec *iov,
00805 int iovcnt,
00806 size_t *bytes_transferred);
00807
00808 extern ACE_Export ssize_t sendv_n_i (ACE_HANDLE handle,
00809 const iovec *iov,
00810 int iovcnt,
00811 const ACE_Time_Value *timeout,
00812 size_t *bytes_transferred);
00813
00814 }
00815
00816
00817 ACE_END_VERSIONED_NAMESPACE_DECL
00818
00819 #if defined (__ACE_INLINE__)
00820 #include "ace/ACE.inl"
00821 #endif
00822
00823 #include "ace/post.h"
00824
00825 #endif