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