home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / tolkit45.zip / os2tk45 / som / include / somssock.xh < prev    next >
Text File  |  1999-02-22  |  44KB  |  1,633 lines

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: somssock.xh.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: 2.29.1.17
  7.  *     SOM Emitter emitxh: 2.47
  8.  */
  9.  
  10. /*
  11.  *    COMPONENT_NAME: somu
  12.  * 
  13.  *    ORIGINS: 27
  14.  * 
  15.  * 
  16.  *    10H9767, 10H9769  (C) COPYRIGHT International Business Machines Corp. 1992,1994
  17.  *    All Rights Reserved
  18.  *    Licensed Materials - Property of IBM
  19.  *    US Government Users Restricted Rights - Use, duplication or
  20.  *    disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  21.  * 
  22.  */
  23.  
  24.  
  25. #ifndef SOM_Sockets_xh
  26. #define SOM_Sockets_xh
  27.  
  28. class Sockets;
  29.  
  30. #define Sockets_MajorVersion 2
  31. #define Sockets_MinorVersion 1
  32.  
  33. /* C++ SOM defs */
  34. #include <somcls.xh>
  35. #include <somcm.xh>
  36.  
  37. /* C++ parent defs */
  38. #ifndef SOM_SOMObject_xh
  39. #include <somobj.xh>
  40. #endif
  41.  
  42. /*
  43.  * C++ metaclass def
  44.  */
  45. #include <snglicls.xh>
  46.  
  47. #ifndef Sockets_API
  48. #define Sockets_API
  49. /*
  50.  * -- The Class API
  51.  */
  52.  
  53. /*
  54.  * Start of bindings for IDL types
  55.  */
  56.  
  57. class SOMClass;
  58. class SOMObject;
  59.  
  60. #ifndef SOM_DONT_USE_SHORT_NAMES
  61. #ifndef SOMTGD_Sockets_sockaddr
  62.     #ifdef Sockets_sockaddr
  63.         #undef Sockets_sockaddr
  64.         #define SOMTGD_Sockets_sockaddr 1
  65.     #else
  66.         #define Sockets_sockaddr sockaddr
  67.     #endif /* Sockets_sockaddr */
  68. #endif /* SOMTGD_Sockets_sockaddr */
  69. #endif /* SOM_DONT_USE_SHORT_NAMES */
  70.  
  71. #ifndef SOM_DONT_USE_SHORT_NAMES
  72. #ifndef SOMTGD_Sockets_iovec
  73.     #ifdef Sockets_iovec
  74.         #undef Sockets_iovec
  75.         #define SOMTGD_Sockets_iovec 1
  76.     #else
  77.         #define Sockets_iovec iovec
  78.     #endif /* Sockets_iovec */
  79. #endif /* SOMTGD_Sockets_iovec */
  80. #endif /* SOM_DONT_USE_SHORT_NAMES */
  81.  
  82. #ifndef SOM_DONT_USE_SHORT_NAMES
  83. #ifndef SOMTGD_Sockets_msghdr
  84.     #ifdef Sockets_msghdr
  85.         #undef Sockets_msghdr
  86.         #define SOMTGD_Sockets_msghdr 1
  87.     #else
  88.         #define Sockets_msghdr msghdr
  89.     #endif /* Sockets_msghdr */
  90. #endif /* SOMTGD_Sockets_msghdr */
  91. #endif /* SOM_DONT_USE_SHORT_NAMES */
  92.  
  93. #ifndef SOM_DONT_USE_SHORT_NAMES
  94. #ifndef SOMTGD_Sockets_fd_set
  95.     #ifdef Sockets_fd_set
  96.         #undef Sockets_fd_set
  97.         #define SOMTGD_Sockets_fd_set 1
  98.     #else
  99.         #define Sockets_fd_set fd_set
  100.     #endif /* Sockets_fd_set */
  101. #endif /* SOMTGD_Sockets_fd_set */
  102. #endif /* SOM_DONT_USE_SHORT_NAMES */
  103.  
  104. #ifndef SOM_DONT_USE_SHORT_NAMES
  105. #ifndef SOMTGD_Sockets_timeval
  106.     #ifdef Sockets_timeval
  107.         #undef Sockets_timeval
  108.         #define SOMTGD_Sockets_timeval 1
  109.     #else
  110.         #define Sockets_timeval timeval
  111.     #endif /* Sockets_timeval */
  112. #endif /* SOMTGD_Sockets_timeval */
  113. #endif /* SOM_DONT_USE_SHORT_NAMES */
  114.  
  115. #ifndef SOM_DONT_USE_SHORT_NAMES
  116. #ifndef SOMTGD_Sockets_hostent
  117.     #ifdef Sockets_hostent
  118.         #undef Sockets_hostent
  119.         #define SOMTGD_Sockets_hostent 1
  120.     #else
  121.         #define Sockets_hostent hostent
  122.     #endif /* Sockets_hostent */
  123. #endif /* SOMTGD_Sockets_hostent */
  124. #endif /* SOM_DONT_USE_SHORT_NAMES */
  125.  
  126. #ifndef SOM_DONT_USE_SHORT_NAMES
  127. #ifndef SOMTGD_Sockets_servent
  128.     #ifdef Sockets_servent
  129.         #undef Sockets_servent
  130.         #define SOMTGD_Sockets_servent 1
  131.     #else
  132.         #define Sockets_servent servent
  133.     #endif /* Sockets_servent */
  134. #endif /* SOMTGD_Sockets_servent */
  135. #endif /* SOM_DONT_USE_SHORT_NAMES */
  136.  
  137. #ifndef SOM_DONT_USE_SHORT_NAMES
  138. #ifndef SOMTGD_Sockets_in_addr
  139.     #ifdef Sockets_in_addr
  140.         #undef Sockets_in_addr
  141.         #define SOMTGD_Sockets_in_addr 1
  142.     #else
  143.         #define Sockets_in_addr in_addr
  144.     #endif /* Sockets_in_addr */
  145. #endif /* SOMTGD_Sockets_in_addr */
  146. #endif /* SOM_DONT_USE_SHORT_NAMES */
  147.  
  148. /*
  149.  * End of bindings for IDL types.
  150.  */
  151.  
  152. /* A procedure to create the Sockets Class */
  153. class SOMMSingleInstance;
  154. SOMEXTERN SOMMSingleInstance * SOMLINK SocketsNewClass(
  155.         integer4 majorVersion,
  156.         integer4 minorVersion);
  157.  
  158. /* The API to the Sockets class object, and the methods it introduces. */
  159. SOMEXTERN struct SocketsClassDataStructure {
  160.     SOMMSingleInstance *classObject;
  161.     somMToken somsAccept;
  162.     somMToken somsBind;
  163.     somMToken somsConnect;
  164.     somMToken somsGethostbyaddr;
  165.     somMToken somsGethostbyname;
  166.     somMToken somsGethostent;
  167.     somMToken somsGethostid;
  168.     somMToken somsGethostname;
  169.     somMToken somsGetpeername;
  170.     somMToken somsGetsockname;
  171.     somMToken somsGetsockopt;
  172.     somMToken somsHtonl;
  173.     somMToken somsHtons;
  174.     somMToken somsIoctl;
  175.     somMToken somsInet_addr;
  176.     somMToken somsInet_lnaof;
  177.     somMToken somsInet_makeaddr;
  178.     somMToken somsInet_netof;
  179.     somMToken somsInet_network;
  180.     somMToken somsInet_ntoa;
  181.     somMToken somsListen;
  182.     somMToken somsNtohl;
  183.     somMToken somsNtohs;
  184.     somMToken somsReadv;
  185.     somMToken somsRecv;
  186.     somMToken somsRecvfrom;
  187.     somMToken somsRecvmsg;
  188.     somMToken somsSelect;
  189.     somMToken somsSend;
  190.     somMToken somsSendmsg;
  191.     somMToken somsSendto;
  192.     somMToken somsSetsockopt;
  193.     somMToken somsShutdown;
  194.     somMToken somsSocket;
  195.     somMToken somsSoclose;
  196.     somMToken somsWritev;
  197.     somMToken _set_serrno;
  198.     somMToken _get_serrno;
  199.     somMToken somsGetservbyname;
  200. } SOMDLINK SocketsClassData;
  201. #define _Sockets SocketsClassData.classObject
  202.  
  203. /* The API to parentMtabs for Sockets, and the instance data it introduces. */
  204. SOMEXTERN struct SocketsCClassDataStructure {
  205.     somMethodTabs parentMtab;
  206.     somDToken              instanceDataToken;
  207. } SOMDLINK SocketsCClassData;
  208.  
  209. /*
  210.  * -- Typedefs for Sockets Method Procedures
  211.  */
  212. SOMEXTERN {
  213. typedef long   SOMLINK somTP_Sockets_somsAccept(Sockets *somSelf, Environment *ev, 
  214.         long s, 
  215.         sockaddr* name, 
  216.         long* namelen);
  217. typedef somTP_Sockets_somsAccept *somTD_Sockets_somsAccept;
  218. typedef long   SOMLINK somTP_Sockets_somsBind(Sockets *somSelf, Environment *ev, 
  219.         long s, 
  220.         sockaddr* name, 
  221.         long namelen);
  222. typedef somTP_Sockets_somsBind *somTD_Sockets_somsBind;
  223. typedef long   SOMLINK somTP_Sockets_somsConnect(Sockets *somSelf, Environment *ev, 
  224.         long s, 
  225.         sockaddr* name, 
  226.         long namelen);
  227. typedef somTP_Sockets_somsConnect *somTD_Sockets_somsConnect;
  228. typedef hostent*   SOMLINK somTP_Sockets_somsGethostbyaddr(Sockets *somSelf, Environment *ev, 
  229.         char* addr, 
  230.         long addrlen, 
  231.         long domain);
  232. typedef somTP_Sockets_somsGethostbyaddr *somTD_Sockets_somsGethostbyaddr;
  233. typedef hostent*   SOMLINK somTP_Sockets_somsGethostbyname(Sockets *somSelf, Environment *ev, 
  234.         string name);
  235. typedef somTP_Sockets_somsGethostbyname *somTD_Sockets_somsGethostbyname;
  236. typedef hostent*   SOMLINK somTP_Sockets_somsGethostent(Sockets *somSelf, Environment *ev);
  237. typedef somTP_Sockets_somsGethostent *somTD_Sockets_somsGethostent;
  238. typedef unsigned long   SOMLINK somTP_Sockets_somsGethostid(Sockets *somSelf, Environment *ev);
  239. typedef somTP_Sockets_somsGethostid *somTD_Sockets_somsGethostid;
  240. typedef long   SOMLINK somTP_Sockets_somsGethostname(Sockets *somSelf, Environment *ev, 
  241.         string name, 
  242.         long namelength);
  243. typedef somTP_Sockets_somsGethostname *somTD_Sockets_somsGethostname;
  244. typedef long   SOMLINK somTP_Sockets_somsGetpeername(Sockets *somSelf, Environment *ev, 
  245.         long s, 
  246.         sockaddr* name, 
  247.         long* namelen);
  248. typedef somTP_Sockets_somsGetpeername *somTD_Sockets_somsGetpeername;
  249. typedef servent*   SOMLINK somTP_Sockets_somsGetservbyname(Sockets *somSelf, Environment *ev, 
  250.         string name, 
  251.         string protocol);
  252. typedef somTP_Sockets_somsGetservbyname *somTD_Sockets_somsGetservbyname;
  253. typedef long   SOMLINK somTP_Sockets_somsGetsockname(Sockets *somSelf, Environment *ev, 
  254.         long s, 
  255.         sockaddr* name, 
  256.         long* namelen);
  257. typedef somTP_Sockets_somsGetsockname *somTD_Sockets_somsGetsockname;
  258. typedef long   SOMLINK somTP_Sockets_somsGetsockopt(Sockets *somSelf, Environment *ev, 
  259.         long s, 
  260.         long level, 
  261.         long optname, 
  262.         char* optval, 
  263.         long* option);
  264. typedef somTP_Sockets_somsGetsockopt *somTD_Sockets_somsGetsockopt;
  265. typedef unsigned long   SOMLINK somTP_Sockets_somsHtonl(Sockets *somSelf, Environment *ev, 
  266.         unsigned long a);
  267. typedef somTP_Sockets_somsHtonl *somTD_Sockets_somsHtonl;
  268. typedef unsigned short   SOMLINK somTP_Sockets_somsHtons(Sockets *somSelf, Environment *ev, 
  269.         unsigned short a);
  270. typedef somTP_Sockets_somsHtons *somTD_Sockets_somsHtons;
  271. typedef long   SOMLINK somTP_Sockets_somsIoctl(Sockets *somSelf, Environment *ev, 
  272.         long s, 
  273.         long cmd, 
  274.         char* data, 
  275.         long length);
  276. typedef somTP_Sockets_somsIoctl *somTD_Sockets_somsIoctl;
  277. typedef unsigned long   SOMLINK somTP_Sockets_somsInet_addr(Sockets *somSelf, Environment *ev, 
  278.         string cp);
  279. typedef somTP_Sockets_somsInet_addr *somTD_Sockets_somsInet_addr;
  280. typedef unsigned long   SOMLINK somTP_Sockets_somsInet_lnaof(Sockets *somSelf, Environment *ev, 
  281.         in_addr* addr);
  282. typedef somTP_Sockets_somsInet_lnaof *somTD_Sockets_somsInet_lnaof;
  283. typedef in_addr   SOMLINK somTP_Sockets_somsInet_makeaddr(Sockets *somSelf, Environment *ev, 
  284.         unsigned long net, 
  285.         unsigned long lna);
  286. typedef somTP_Sockets_somsInet_makeaddr *somTD_Sockets_somsInet_makeaddr;
  287. typedef unsigned long   SOMLINK somTP_Sockets_somsInet_netof(Sockets *somSelf, Environment *ev, 
  288.         in_addr* addr);
  289. typedef somTP_Sockets_somsInet_netof *somTD_Sockets_somsInet_netof;
  290. typedef unsigned long   SOMLINK somTP_Sockets_somsInet_network(Sockets *somSelf, Environment *ev, 
  291.         string cp);
  292. typedef somTP_Sockets_somsInet_network *somTD_Sockets_somsInet_network;
  293. typedef string   SOMLINK somTP_Sockets_somsInet_ntoa(Sockets *somSelf, Environment *ev, 
  294.         in_addr* addr);
  295. typedef somTP_Sockets_somsInet_ntoa *somTD_Sockets_somsInet_ntoa;
  296. typedef long   SOMLINK somTP_Sockets_somsListen(Sockets *somSelf, Environment *ev, 
  297.         long s, 
  298.         long backlog);
  299. typedef somTP_Sockets_somsListen *somTD_Sockets_somsListen;
  300. typedef unsigned long   SOMLINK somTP_Sockets_somsNtohl(Sockets *somSelf, Environment *ev, 
  301.         unsigned long a);
  302. typedef somTP_Sockets_somsNtohl *somTD_Sockets_somsNtohl;
  303. typedef unsigned short   SOMLINK somTP_Sockets_somsNtohs(Sockets *somSelf, Environment *ev, 
  304.         unsigned short a);
  305. typedef somTP_Sockets_somsNtohs *somTD_Sockets_somsNtohs;
  306. typedef long   SOMLINK somTP_Sockets_somsReadv(Sockets *somSelf, Environment *ev, 
  307.         long s, 
  308.         iovec* iov, 
  309.         long iovcnt);
  310. typedef somTP_Sockets_somsReadv *somTD_Sockets_somsReadv;
  311. typedef long   SOMLINK somTP_Sockets_somsRecv(Sockets *somSelf, Environment *ev, 
  312.         long s, 
  313.         char* buf, 
  314.         long len, 
  315.         long flags);
  316. typedef somTP_Sockets_somsRecv *somTD_Sockets_somsRecv;
  317. typedef long   SOMLINK somTP_Sockets_somsRecvfrom(Sockets *somSelf, Environment *ev, 
  318.         long s, 
  319.         char* buf, 
  320.         long len, 
  321.         long flags, 
  322.         sockaddr* name, 
  323.         long* namelen);
  324. typedef somTP_Sockets_somsRecvfrom *somTD_Sockets_somsRecvfrom;
  325. typedef long   SOMLINK somTP_Sockets_somsRecvmsg(Sockets *somSelf, Environment *ev, 
  326.         long s, 
  327.         msghdr* msg, 
  328.         long flags);
  329. typedef somTP_Sockets_somsRecvmsg *somTD_Sockets_somsRecvmsg;
  330. typedef long   SOMLINK somTP_Sockets_somsSelect(Sockets *somSelf, Environment *ev, 
  331.         long nfds, 
  332.         fd_set* readfds, 
  333.         fd_set* writefds, 
  334.         fd_set* exceptfds, 
  335.         timeval* timeout);
  336. typedef somTP_Sockets_somsSelect *somTD_Sockets_somsSelect;
  337. typedef long   SOMLINK somTP_Sockets_somsSend(Sockets *somSelf, Environment *ev, 
  338.         long s, 
  339.         char* msg, 
  340.         long len, 
  341.         long flags);
  342. typedef somTP_Sockets_somsSend *somTD_Sockets_somsSend;
  343. typedef long   SOMLINK somTP_Sockets_somsSendmsg(Sockets *somSelf, Environment *ev, 
  344.         long s, 
  345.         msghdr* msg, 
  346.         long flags);
  347. typedef somTP_Sockets_somsSendmsg *somTD_Sockets_somsSendmsg;
  348. typedef long   SOMLINK somTP_Sockets_somsSendto(Sockets *somSelf, Environment *ev, 
  349.         long s, 
  350.         char* msg, 
  351.         long len, 
  352.         long flags, 
  353.         sockaddr* to, 
  354.         long tolen);
  355. typedef somTP_Sockets_somsSendto *somTD_Sockets_somsSendto;
  356. typedef long   SOMLINK somTP_Sockets_somsSetsockopt(Sockets *somSelf, Environment *ev, 
  357.         long s, 
  358.         long level, 
  359.         long optname, 
  360.         char* optval, 
  361.         long optlen);
  362. typedef somTP_Sockets_somsSetsockopt *somTD_Sockets_somsSetsockopt;
  363. typedef long   SOMLINK somTP_Sockets_somsShutdown(Sockets *somSelf, Environment *ev, 
  364.         long s, 
  365.         long how);
  366. typedef somTP_Sockets_somsShutdown *somTD_Sockets_somsShutdown;
  367. typedef long   SOMLINK somTP_Sockets_somsSocket(Sockets *somSelf, Environment *ev, 
  368.         long domain, 
  369.         long type, 
  370.         long protocol);
  371. typedef somTP_Sockets_somsSocket *somTD_Sockets_somsSocket;
  372. typedef long   SOMLINK somTP_Sockets_somsSoclose(Sockets *somSelf, Environment *ev, 
  373.         long s);
  374. typedef somTP_Sockets_somsSoclose *somTD_Sockets_somsSoclose;
  375. typedef long   SOMLINK somTP_Sockets_somsWritev(Sockets *somSelf, Environment *ev, 
  376.         long s, 
  377.         iovec* iov, 
  378.         long iovcnt);
  379. typedef somTP_Sockets_somsWritev *somTD_Sockets_somsWritev;
  380. typedef long   SOMLINK somTP_Sockets__get_serrno(Sockets *somSelf, Environment *ev);
  381. typedef somTP_Sockets__get_serrno *somTD_Sockets__get_serrno;
  382. typedef void   SOMLINK somTP_Sockets__set_serrno(Sockets *somSelf, Environment *ev, 
  383.         long serrno);
  384. typedef somTP_Sockets__set_serrno *somTD_Sockets__set_serrno;
  385.  
  386. /*
  387.  * -- Typedefs for Reintroduced Wrapper Methods
  388.  */
  389. typedef void   SOMLINK somTP_Sockets_somDefaultInit(Sockets *somSelf, 
  390.         som3InitCtrl* ctrl);
  391. typedef somTP_Sockets_somDefaultInit *somTD_Sockets_somDefaultInit;
  392. typedef void   SOMLINK somTP_Sockets_somDestruct(Sockets *somSelf, 
  393.         octet doFree, 
  394.         som3DestructCtrl* ctrl);
  395. typedef somTP_Sockets_somDestruct *somTD_Sockets_somDestruct;
  396. typedef void   SOMLINK somTP_Sockets_somDefaultCopyInit(Sockets *somSelf, 
  397.         som3InitCtrl* ctrl, 
  398.         SOMObject* fromObj);
  399. typedef somTP_Sockets_somDefaultCopyInit *somTD_Sockets_somDefaultCopyInit;
  400. typedef Sockets*   SOMLINK somTP_Sockets_somDefaultAssign(Sockets *somSelf, 
  401.         som3AssignCtrl* ctrl, 
  402.         SOMObject* fromObj);
  403. typedef somTP_Sockets_somDefaultAssign *somTD_Sockets_somDefaultAssign;
  404. typedef void   SOMLINK somTP_Sockets_somDefaultConstCopyInit(Sockets *somSelf, 
  405.         som3InitCtrl* ctrl, 
  406.         SOMObject* fromObj);
  407. typedef somTP_Sockets_somDefaultConstCopyInit *somTD_Sockets_somDefaultConstCopyInit;
  408. typedef void   SOMLINK somTP_Sockets_somDefaultVCopyInit(Sockets *somSelf, 
  409.         som3InitCtrl* ctrl, 
  410.         SOMObject* fromObj);
  411. typedef somTP_Sockets_somDefaultVCopyInit *somTD_Sockets_somDefaultVCopyInit;
  412. typedef void   SOMLINK somTP_Sockets_somDefaultConstVCopyInit(Sockets *somSelf, 
  413.         som3InitCtrl* ctrl, 
  414.         SOMObject* fromObj);
  415. typedef somTP_Sockets_somDefaultConstVCopyInit *somTD_Sockets_somDefaultConstVCopyInit;
  416. typedef Sockets*   SOMLINK somTP_Sockets_somDefaultConstAssign(Sockets *somSelf, 
  417.         som3AssignCtrl* ctrl, 
  418.         SOMObject* fromObj);
  419. typedef somTP_Sockets_somDefaultConstAssign *somTD_Sockets_somDefaultConstAssign;
  420. typedef Sockets*   SOMLINK somTP_Sockets_somDefaultVAssign(Sockets *somSelf, 
  421.         som3AssignCtrl* ctrl, 
  422.         SOMObject* fromObj);
  423. typedef somTP_Sockets_somDefaultVAssign *somTD_Sockets_somDefaultVAssign;
  424. typedef Sockets*   SOMLINK somTP_Sockets_somDefaultConstVAssign(Sockets *somSelf, 
  425.         som3AssignCtrl* ctrl, 
  426.         SOMObject* fromObj);
  427. typedef somTP_Sockets_somDefaultConstVAssign *somTD_Sockets_somDefaultConstVAssign;
  428. typedef void   SOMLINK somTP_Sockets_somInit(Sockets *somSelf);
  429. typedef somTP_Sockets_somInit *somTD_Sockets_somInit;
  430. typedef void   SOMLINK somTP_Sockets_somFree(Sockets *somSelf);
  431. typedef somTP_Sockets_somFree *somTD_Sockets_somFree;
  432. typedef void   SOMLINK somTP_Sockets_somUninit(Sockets *somSelf);
  433. typedef somTP_Sockets_somUninit *somTD_Sockets_somUninit;
  434. typedef SOMMSingleInstance*   SOMLINK somTP_Sockets_somGetClass(Sockets *somSelf);
  435. typedef somTP_Sockets_somGetClass *somTD_Sockets_somGetClass;
  436. typedef string   SOMLINK somTP_Sockets_somGetClassName(Sockets *somSelf);
  437. typedef somTP_Sockets_somGetClassName *somTD_Sockets_somGetClassName;
  438. typedef long   SOMLINK somTP_Sockets_somGetSize(Sockets *somSelf);
  439. typedef somTP_Sockets_somGetSize *somTD_Sockets_somGetSize;
  440. typedef boolean   SOMLINK somTP_Sockets_somIsA(Sockets *somSelf, 
  441.         SOMClass* aClassObj);
  442. typedef somTP_Sockets_somIsA *somTD_Sockets_somIsA;
  443. typedef boolean   SOMLINK somTP_Sockets_somIsInstanceOf(Sockets *somSelf, 
  444.         SOMClass* aClassObj);
  445. typedef somTP_Sockets_somIsInstanceOf *somTD_Sockets_somIsInstanceOf;
  446. typedef boolean   SOMLINK somTP_Sockets_somRespondsTo(Sockets *somSelf, 
  447.         somId mId);
  448. typedef somTP_Sockets_somRespondsTo *somTD_Sockets_somRespondsTo;
  449. typedef boolean   SOMLINK somTP_Sockets_somDispatch(Sockets *somSelf, 
  450.         somToken* retValue, 
  451.         somId methodId, 
  452.         va_list ap);
  453. typedef somTP_Sockets_somDispatch *somTD_Sockets_somDispatch;
  454. typedef boolean   SOMLINK somTP_Sockets_somClassDispatch(Sockets *somSelf, 
  455.         SOMClass* clsObj, 
  456.         somToken* retValue, 
  457.         somId methodId, 
  458.         va_list ap);
  459. typedef somTP_Sockets_somClassDispatch *somTD_Sockets_somClassDispatch;
  460. typedef boolean   SOMLINK somTP_Sockets_somCastObj(Sockets *somSelf, 
  461.         SOMClass* cls);
  462. typedef somTP_Sockets_somCastObj *somTD_Sockets_somCastObj;
  463. typedef boolean   SOMLINK somTP_Sockets_somResetObj(Sockets *somSelf);
  464. typedef somTP_Sockets_somResetObj *somTD_Sockets_somResetObj;
  465. typedef void   SOMLINK somTP_Sockets_somDispatchV(Sockets *somSelf, 
  466.         somId methodId, 
  467.         somId descriptor, 
  468.         va_list ap);
  469. typedef somTP_Sockets_somDispatchV *somTD_Sockets_somDispatchV;
  470. typedef long   SOMLINK somTP_Sockets_somDispatchL(Sockets *somSelf, 
  471.         somId methodId, 
  472.         somId descriptor, 
  473.         va_list ap);
  474. typedef somTP_Sockets_somDispatchL *somTD_Sockets_somDispatchL;
  475. typedef void*   SOMLINK somTP_Sockets_somDispatchA(Sockets *somSelf, 
  476.         somId methodId, 
  477.         somId descriptor, 
  478.         va_list ap);
  479. typedef somTP_Sockets_somDispatchA *somTD_Sockets_somDispatchA;
  480. typedef double   SOMLINK somTP_Sockets_somDispatchD(Sockets *somSelf, 
  481.         somId methodId, 
  482.         somId descriptor, 
  483.         va_list ap);
  484. typedef somTP_Sockets_somDispatchD *somTD_Sockets_somDispatchD;
  485. typedef SOMObject*   SOMLINK somTP_Sockets_somPrintSelf(Sockets *somSelf);
  486. typedef somTP_Sockets_somPrintSelf *somTD_Sockets_somPrintSelf;
  487. typedef void   SOMLINK somTP_Sockets_somDumpSelf(Sockets *somSelf, 
  488.         long level);
  489. typedef somTP_Sockets_somDumpSelf *somTD_Sockets_somDumpSelf;
  490. typedef void   SOMLINK somTP_Sockets_somDumpSelfInt(Sockets *somSelf, 
  491.         long level);
  492. typedef somTP_Sockets_somDumpSelfInt *somTD_Sockets_somDumpSelfInt;
  493. }
  494.  
  495. #endif /* Sockets_API */
  496.  
  497.  
  498. /*
  499.  * -- This emitter treats Method Tokens as Thunks by default.
  500.  * -- Use the sc modifier "nothunks" to change this default
  501.  */
  502. #undef somresolve_
  503. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  504.  
  505. /*
  506.  * -- The C++ Wrapper Class for Sockets
  507.  */
  508. class Sockets : public SOMObject
  509. {
  510. public:
  511.  
  512. // Sockets::new creates the class object if necessary, and then uses somNewNoInit
  513. // to allocate memory and create the object. Initialization is in ctors.
  514. void *operator new(size_t)
  515. {
  516.    if (!_Sockets) SocketsNewClass(Sockets_MajorVersion,Sockets_MinorVersion);
  517.    return (void*)
  518.       SOM_Resolve(_Sockets,SOMClass,somNewNoInit)
  519.          ((SOMClass *)((void*)_Sockets));
  520. }
  521.  
  522. // Sockets::delete uses somDestruct.
  523. void operator delete(void * obj)
  524. {
  525.    if (obj && *(void**)obj) {
  526.       SOM_Resolve(obj,SOMObject,somFree)
  527.          ((SOMObject*)obj);
  528.    }
  529. }
  530.  
  531. Sockets& operator=(Sockets& fromObj)
  532. {
  533.    this->somDefaultAssign(0,(SOMObject*)((void*)&fromObj));
  534.    return *this;
  535. }
  536.  
  537. Sockets()
  538. {
  539.    if (*(void**)this != 
  540.        ((somParentMtabStructPtr)
  541.         (SocketsCClassData.parentMtab))->mtab)
  542.       return;
  543.    ((SOMObject*)((void*)this))->somDefaultInit(0);
  544. }
  545.  
  546. Sockets(Sockets* fromObj)
  547. {
  548.    if (*(void**)this != 
  549.        ((somParentMtabStructPtr)
  550.         (SocketsCClassData.parentMtab))->mtab)
  551.       return;
  552.    ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
  553. }
  554.  
  555. #ifdef __IBMCPP__
  556. #pragma info(nocnv,nopar)
  557. #endif
  558. Sockets(const Sockets* fromObj)
  559. {
  560.    if (*(void**)this != 
  561.        ((somParentMtabStructPtr)
  562.         (SocketsCClassData.parentMtab))->mtab)
  563.       return;
  564.    ((SOMObject*)((void*)this))->somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
  565. }
  566. #ifdef __IBMCPP__
  567. #pragma info(restore)
  568. #endif
  569.  
  570.  
  571. /* method: somsAccept */
  572. long   somsAccept(Environment *ev, 
  573.         long s, 
  574.         sockaddr* name, 
  575.         long* namelen)
  576. {
  577. /*
  578.  *  Accept a connection request from a client.
  579.  */
  580.    return SOM_ResolveD(this,Sockets,Sockets,somsAccept)
  581.     (this, ev,s,name,namelen);
  582. }
  583.  
  584.  
  585. /* method: somsBind */
  586. long   somsBind(Environment *ev, 
  587.         long s, 
  588.         sockaddr* name, 
  589.         long namelen)
  590. {
  591. /*
  592.  *  Binds a unique local name to the socket with descriptor s.
  593.  */
  594.    return SOM_ResolveD(this,Sockets,Sockets,somsBind)
  595.     (this, ev,s,name,namelen);
  596. }
  597.  
  598.  
  599. /* method: somsConnect */
  600. long   somsConnect(Environment *ev, 
  601.         long s, 
  602.         sockaddr* name, 
  603.         long namelen)
  604. {
  605. /*
  606.  *  For streams sockets, attempts to establish a connection between
  607.  *  two sockets.  For datagram sockets, specifies the socket's peer.
  608.  */
  609.    return SOM_ResolveD(this,Sockets,Sockets,somsConnect)
  610.     (this, ev,s,name,namelen);
  611. }
  612.  
  613.  
  614. /* method: somsGethostbyaddr */
  615. hostent*   somsGethostbyaddr(Environment *ev, 
  616.         char* addr, 
  617.         long addrlen, 
  618.         long domain)
  619. {
  620. /*
  621.  *  Returns a hostent structure for the host address specified on
  622.  *  the call.
  623.  */
  624.    return SOM_ResolveD(this,Sockets,Sockets,somsGethostbyaddr)
  625.     (this, ev,addr,addrlen,domain);
  626. }
  627.  
  628.  
  629. /* method: somsGethostbyname */
  630. hostent*   somsGethostbyname(Environment *ev, 
  631.         string name)
  632. {
  633. /*
  634.  *  Returns a hostent structure for the host name specified on
  635.  *  the call.
  636.  */
  637.    return SOM_ResolveD(this,Sockets,Sockets,somsGethostbyname)
  638.     (this, ev,name);
  639. }
  640.  
  641.  
  642. /* method: somsGethostent */
  643. hostent*   somsGethostent(Environment *ev)
  644. {
  645. /*
  646.  *  Returns a pointer to the next entry in the hosts file.
  647.  */
  648.    return SOM_ResolveD(this,Sockets,Sockets,somsGethostent)
  649.     (this, ev);
  650. }
  651.  
  652.  
  653. /* method: somsGethostid */
  654. unsigned long   somsGethostid(Environment *ev)
  655. {
  656. /*
  657.  *  Returns the unique identifier for the current host.
  658.  */
  659.    return SOM_ResolveD(this,Sockets,Sockets,somsGethostid)
  660.     (this, ev);
  661. }
  662.  
  663.  
  664. /* method: somsGethostname */
  665. long   somsGethostname(Environment *ev, 
  666.         string name, 
  667.         long namelength)
  668. {
  669. /*
  670.  *  Retrieves the standard host name of the local host.
  671.  */
  672.    return SOM_ResolveD(this,Sockets,Sockets,somsGethostname)
  673.     (this, ev,name,namelength);
  674. }
  675.  
  676.  
  677. /* method: somsGetpeername */
  678. long   somsGetpeername(Environment *ev, 
  679.         long s, 
  680.         sockaddr* name, 
  681.         long* namelen)
  682. {
  683. /*
  684.  *  Gets the name of the peer connected to socket s.
  685.  */
  686.    return SOM_ResolveD(this,Sockets,Sockets,somsGetpeername)
  687.     (this, ev,s,name,namelen);
  688. }
  689.  
  690.  
  691. /* method: somsGetservbyname */
  692. servent*   somsGetservbyname(Environment *ev, 
  693.         string name, 
  694.         string protocol)
  695. {
  696. /*
  697.  *  Retrieves an entry from the /etc/services file using the service
  698.  *  name as a search key.
  699.  */
  700.    return SOM_ResolveD(this,Sockets,Sockets,somsGetservbyname)
  701.     (this, ev,name,protocol);
  702. }
  703.  
  704.  
  705. /* method: somsGetsockname */
  706. long   somsGetsockname(Environment *ev, 
  707.         long s, 
  708.         sockaddr* name, 
  709.         long* namelen)
  710. {
  711. /*
  712.  *  Stores the current name for the socket specified by the s
  713.  *  parameter into the structure pointed to by the name parameter.
  714.  */
  715.    return SOM_ResolveD(this,Sockets,Sockets,somsGetsockname)
  716.     (this, ev,s,name,namelen);
  717. }
  718.  
  719.  
  720. /* method: somsGetsockopt */
  721. long   somsGetsockopt(Environment *ev, 
  722.         long s, 
  723.         long level, 
  724.         long optname, 
  725.         char* optval, 
  726.         long* option)
  727. {
  728. /*
  729.  *  Returns the values of socket options at various protocol levels.
  730.  */
  731.    return SOM_ResolveD(this,Sockets,Sockets,somsGetsockopt)
  732.     (this, ev,s,level,optname,optval,option);
  733. }
  734.  
  735.  
  736. /* method: somsHtonl */
  737. unsigned long   somsHtonl(Environment *ev, 
  738.         unsigned long a)
  739. {
  740. /*
  741.  *  Translates an unsigned long integer from host-byte order to
  742.  *  network-byte order.
  743.  */
  744.    return SOM_ResolveD(this,Sockets,Sockets,somsHtonl)
  745.     (this, ev,a);
  746. }
  747.  
  748.  
  749. /* method: somsHtons */
  750. unsigned short   somsHtons(Environment *ev, 
  751.         unsigned short a)
  752. {
  753. /*
  754.  *  Translates an unsigned short integer from host-byte order to
  755.  *  network-byte order.
  756.  */
  757.    return SOM_ResolveD(this,Sockets,Sockets,somsHtons)
  758.     (this, ev,a);
  759. }
  760.  
  761.  
  762. /* method: somsIoctl */
  763. long   somsIoctl(Environment *ev, 
  764.         long s, 
  765.         long cmd, 
  766.         char* data, 
  767.         long length)
  768. {
  769. /*
  770.  *  Controls the operating characteristics of sockets.
  771.  */
  772.    return SOM_ResolveD(this,Sockets,Sockets,somsIoctl)
  773.     (this, ev,s,cmd,data,length);
  774. }
  775.  
  776.  
  777. /* method: somsInet_addr */
  778. unsigned long   somsInet_addr(Environment *ev, 
  779.         string cp)
  780. {
  781. /*
  782.  *  Interprets character strings representing numbers expressed in
  783.  *  standard '.' notation and returns numbers suitable for use as
  784.  *  internet addresses.
  785.  */
  786.    return SOM_ResolveD(this,Sockets,Sockets,somsInet_addr)
  787.     (this, ev,cp);
  788. }
  789.  
  790.  
  791. /* method: somsInet_lnaof */
  792. unsigned long   somsInet_lnaof(Environment *ev, 
  793.         in_addr* addr)
  794. {
  795. /*
  796.  *  Breaks apart the internet address and returns the local network
  797.  *  address portion.
  798.  */
  799.    return SOM_ResolveD(this,Sockets,Sockets,somsInet_lnaof)
  800.     (this, ev,addr);
  801. }
  802.  
  803.  
  804. /* method: somsInet_makeaddr */
  805. in_addr   somsInet_makeaddr(Environment *ev, 
  806.         unsigned long net, 
  807.         unsigned long lna)
  808. {
  809. /*
  810.  *  Takes a network number and a local network address and constructs
  811.  *  an internet address.
  812.  */
  813.    return SOM_ResolveD(this,Sockets,Sockets,somsInet_makeaddr)
  814.     (this, ev,net,lna);
  815. }
  816.  
  817.  
  818. /* method: somsInet_netof */
  819. unsigned long   somsInet_netof(Environment *ev, 
  820.         in_addr* addr)
  821. {
  822. /*
  823.  *  Returns the network number portion of the given internet address.
  824.  */
  825.    return SOM_ResolveD(this,Sockets,Sockets,somsInet_netof)
  826.     (this, ev,addr);
  827. }
  828.  
  829.  
  830. /* method: somsInet_network */
  831. unsigned long   somsInet_network(Environment *ev, 
  832.         string cp)
  833. {
  834. /*
  835.  *  Interprets character strings representing numbers expressed in
  836.  *  standard '.' notation and returns numbers suitable for use as
  837.  *  network numbers.
  838.  */
  839.    return SOM_ResolveD(this,Sockets,Sockets,somsInet_network)
  840.     (this, ev,cp);
  841. }
  842.  
  843.  
  844. /* method: somsInet_ntoa */
  845. string   somsInet_ntoa(Environment *ev, 
  846.         in_addr* addr)
  847. {
  848. /*
  849.  *  Returns a pointer to a string expressed in the dotted-decimal
  850.  *  notation.
  851.  */
  852.    return SOM_ResolveD(this,Sockets,Sockets,somsInet_ntoa)
  853.     (this, ev,addr);
  854. }
  855.  
  856.  
  857. /* method: somsListen */
  858. long   somsListen(Environment *ev, 
  859.         long s, 
  860.         long backlog)
  861. {
  862. /*
  863.  *  Creates a connection request queue of length backlog to queue
  864.  *  incoming connection requests, and then waits for incoming
  865.  *  connection requests.
  866.  */
  867.    return SOM_ResolveD(this,Sockets,Sockets,somsListen)
  868.     (this, ev,s,backlog);
  869. }
  870.  
  871.  
  872. /* method: somsNtohl */
  873. unsigned long   somsNtohl(Environment *ev, 
  874.         unsigned long a)
  875. {
  876. /*
  877.  *  Translates an unsigned long integer from network-byte order
  878.  *  to host-byte order.
  879.  */
  880.    return SOM_ResolveD(this,Sockets,Sockets,somsNtohl)
  881.     (this, ev,a);
  882. }
  883.  
  884.  
  885. /* method: somsNtohs */
  886. unsigned short   somsNtohs(Environment *ev, 
  887.         unsigned short a)
  888. {
  889. /*
  890.  *  Translates an unsigned short integer from network-byte order
  891.  *  to host-byte order.
  892.  */
  893.    return SOM_ResolveD(this,Sockets,Sockets,somsNtohs)
  894.     (this, ev,a);
  895. }
  896.  
  897.  
  898. /* method: somsReadv */
  899. long   somsReadv(Environment *ev, 
  900.         long s, 
  901.         iovec* iov, 
  902.         long iovcnt)
  903. {
  904. /*
  905.  *  Reads data on socket s and stores it in a set of buffers
  906.  *  described by iov.
  907.  */
  908.    return SOM_ResolveD(this,Sockets,Sockets,somsReadv)
  909.     (this, ev,s,iov,iovcnt);
  910. }
  911.  
  912.  
  913. /* method: somsRecv */
  914. long   somsRecv(Environment *ev, 
  915.         long s, 
  916.         char* buf, 
  917.         long len, 
  918.         long flags)
  919. {
  920. /*
  921.  *  Receives data on streams socket s and stores it in buf.
  922.  */
  923.    return SOM_ResolveD(this,Sockets,Sockets,somsRecv)
  924.     (this, ev,s,buf,len,flags);
  925. }
  926.  
  927.  
  928. /* method: somsRecvfrom */
  929. long   somsRecvfrom(Environment *ev, 
  930.         long s, 
  931.         char* buf, 
  932.         long len, 
  933.         long flags, 
  934.         sockaddr* name, 
  935.         long* namelen)
  936. {
  937. /*
  938.  *  Receives data on datagram socket s and stores it in buf.
  939.  */
  940.    return SOM_ResolveD(this,Sockets,Sockets,somsRecvfrom)
  941.     (this, ev,s,buf,len,flags,name,namelen);
  942. }
  943.  
  944.  
  945. /* method: somsRecvmsg */
  946. long   somsRecvmsg(Environment *ev, 
  947.         long s, 
  948.         msghdr* msg, 
  949.         long flags)
  950. {
  951. /*
  952.  *  Receives messages on a socket with descriptor s and stores them
  953.  *  in an array of message headers.
  954.  */
  955.    return SOM_ResolveD(this,Sockets,Sockets,somsRecvmsg)
  956.     (this, ev,s,msg,flags);
  957. }
  958.  
  959.  
  960. /* method: somsSelect */
  961. long   somsSelect(Environment *ev, 
  962.         long nfds, 
  963.         fd_set* readfds, 
  964.         fd_set* writefds, 
  965.         fd_set* exceptfds, 
  966.         timeval* timeout)
  967. {
  968. /*
  969.  *  Monitors activity on a set of different sockets until a timeout
  970.  *  expires, to see if any sockets are ready for reading or writing,
  971.  *  or if an exceptional condition is pending.
  972.  */
  973.    return SOM_ResolveD(this,Sockets,Sockets,somsSelect)
  974.     (this, ev,nfds,readfds,writefds,exceptfds,timeout);
  975. }
  976.  
  977.  
  978. /* method: somsSend */
  979. long   somsSend(Environment *ev, 
  980.         long s, 
  981.         char* msg, 
  982.         long len, 
  983.         long flags)
  984. {
  985. /*
  986.  *  Sends msg on streams socket s.
  987.  */
  988.    return SOM_ResolveD(this,Sockets,Sockets,somsSend)
  989.     (this, ev,s,msg,len,flags);
  990. }
  991.  
  992.  
  993. /* method: somsSendmsg */
  994. long   somsSendmsg(Environment *ev, 
  995.         long s, 
  996.         msghdr* msg, 
  997.         long flags)
  998. {
  999. /*
  1000.  *  Sends messages passed in an array of message headers on a socket
  1001.  *  with descriptor s.
  1002.  */
  1003.    return SOM_ResolveD(this,Sockets,Sockets,somsSendmsg)
  1004.     (this, ev,s,msg,flags);
  1005. }
  1006.  
  1007.  
  1008. /* method: somsSendto */
  1009. long   somsSendto(Environment *ev, 
  1010.         long s, 
  1011.         char* msg, 
  1012.         long len, 
  1013.         long flags, 
  1014.         sockaddr* to, 
  1015.         long tolen)
  1016. {
  1017. /*
  1018.  *  Sends msg on datagram socket s.
  1019.  */
  1020.    return SOM_ResolveD(this,Sockets,Sockets,somsSendto)
  1021.     (this, ev,s,msg,len,flags,to,tolen);
  1022. }
  1023.  
  1024.  
  1025. /* method: somsSetsockopt */
  1026. long   somsSetsockopt(Environment *ev, 
  1027.         long s, 
  1028.         long level, 
  1029.         long optname, 
  1030.         char* optval, 
  1031.         long optlen)
  1032. {
  1033. /*
  1034.  *  Sets options associated with a socket.
  1035.  */
  1036.    return SOM_ResolveD(this,Sockets,Sockets,somsSetsockopt)
  1037.     (this, ev,s,level,optname,optval,optlen);
  1038. }
  1039.  
  1040.  
  1041. /* method: somsShutdown */
  1042. long   somsShutdown(Environment *ev, 
  1043.         long s, 
  1044.         long how)
  1045. {
  1046. /*
  1047.  *  Shuts down all or part of a full-duplex connection.
  1048.  */
  1049.    return SOM_ResolveD(this,Sockets,Sockets,somsShutdown)
  1050.     (this, ev,s,how);
  1051. }
  1052.  
  1053.  
  1054. /* method: somsSocket */
  1055. long   somsSocket(Environment *ev, 
  1056.         long domain, 
  1057.         long type, 
  1058.         long protocol)
  1059. {
  1060. /*
  1061.  *  Creates an endpoint for communication and returns a socket
  1062.  *  descriptor representing the endpoint.
  1063.  */
  1064.    return SOM_ResolveD(this,Sockets,Sockets,somsSocket)
  1065.     (this, ev,domain,type,protocol);
  1066. }
  1067.  
  1068.  
  1069. /* method: somsSoclose */
  1070. long   somsSoclose(Environment *ev, 
  1071.         long s)
  1072. {
  1073. /*
  1074.  *  Shuts down socket s and frees resources allocated to the socket.
  1075.  */
  1076.    return SOM_ResolveD(this,Sockets,Sockets,somsSoclose)
  1077.     (this, ev,s);
  1078. }
  1079.  
  1080.  
  1081. /* method: somsWritev */
  1082. long   somsWritev(Environment *ev, 
  1083.         long s, 
  1084.         iovec* iov, 
  1085.         long iovcnt)
  1086. {
  1087. /*
  1088.  *  Writes data on socket s.  The data is gathered from the buffers
  1089.  *  described by iov.
  1090.  */
  1091.    return SOM_ResolveD(this,Sockets,Sockets,somsWritev)
  1092.     (this, ev,s,iov,iovcnt);
  1093. }
  1094.  
  1095.  
  1096. /* method: _get_serrno */
  1097. long   _get_serrno(Environment *ev)
  1098. {
  1099. /*
  1100.  * Method from the IDL attribute statement:
  1101.  * "attribute long serrno"
  1102.  */
  1103.    return SOM_ResolveD(this,Sockets,Sockets,_get_serrno)
  1104.     (this, ev);
  1105. }
  1106.  
  1107.  
  1108. /* method: _set_serrno */
  1109. void   _set_serrno(Environment *ev, 
  1110.         long serrno)
  1111. {
  1112. /*
  1113.  * Method from the IDL attribute statement:
  1114.  * "attribute long serrno"
  1115.  */
  1116.    SOM_ResolveD(this,Sockets,Sockets,_set_serrno)
  1117.     (this, ev,serrno);
  1118. }
  1119.  
  1120.  
  1121. /*
  1122.  * Reintroduce inherited methods
  1123.  */
  1124.  
  1125. /* initializer method: somDefaultInit */
  1126. void   somDefaultInit(som3InitCtrl* ctrl)
  1127. {
  1128. /*
  1129.  *  A default initializer for a SOM object. Passing a null ctrl
  1130.  *  indicates to the receiver that its class is the class of the
  1131.  *  object being initialized, whereby the initializer will determine
  1132.  *  an appropriate control structure.
  1133.  */
  1134.    SOM_ResolveD(this,Sockets,SOMObject,somDefaultInit)
  1135.     (this,ctrl);
  1136. }
  1137.  
  1138.  
  1139. /* method: somDestruct */
  1140. void   somDestruct(octet doFree, 
  1141.         som3DestructCtrl* ctrl)
  1142. {
  1143. /*
  1144.  *  The default destructor for a SOM object. A nonzero <doFree>
  1145.  *  indicates that the object storage should be freed by the
  1146.  *  object's class (via somDeallocate) after uninitialization.
  1147.  *  As with somDefaultInit, a null ctrl can be passed.
  1148.  */
  1149.    SOM_ResolveD(this,Sockets,SOMObject,somDestruct)
  1150.     (this,doFree,ctrl);
  1151. }
  1152.  
  1153.  
  1154. /* initializer method: somDefaultCopyInit */
  1155. void   somDefaultCopyInit(som3InitCtrl* ctrl, 
  1156.         SOMObject* fromObj)
  1157. {
  1158. /*
  1159.  *  A default copy constructor. Use this to make copies of objects for
  1160.  *  calling methods with "by-value" argument semantics.
  1161.  */
  1162.    SOM_ResolveD(this,Sockets,SOMObject,somDefaultCopyInit)
  1163.     (this,ctrl,fromObj);
  1164. }
  1165.  
  1166.  
  1167. /* method: somDefaultAssign */
  1168. Sockets*  somDefaultAssign(som3AssignCtrl* ctrl, 
  1169.         SOMObject* fromObj)
  1170. {
  1171. /*
  1172.  *  A default assignment operator. Use this to "assign" the state of one
  1173.  *  object to another.
  1174.  */
  1175.    return SOM_ResolveD(this,Sockets,SOMObject,somDefaultAssign)
  1176.     (this,ctrl,fromObj);
  1177. }
  1178.  
  1179.  
  1180. /* initializer method: somDefaultConstCopyInit */
  1181. void   somDefaultConstCopyInit(som3InitCtrl* ctrl, 
  1182.         SOMObject* fromObj)
  1183. {
  1184. /*
  1185.  *  A default copy constructor that uses a const fromObj.
  1186.  */
  1187.    SOM_ResolveD(this,Sockets,SOMObject,somDefaultConstCopyInit)
  1188.     (this,ctrl,fromObj);
  1189. }
  1190.  
  1191.  
  1192. /* initializer method: somDefaultVCopyInit */
  1193. void   somDefaultVCopyInit(som3InitCtrl* ctrl, 
  1194.         SOMObject* fromObj)
  1195. {
  1196. /*
  1197.  *  A default copy constructor that uses a volatile fromObj.
  1198.  */
  1199.    SOM_ResolveD(this,Sockets,SOMObject,somDefaultVCopyInit)
  1200.     (this,ctrl,fromObj);
  1201. }
  1202.  
  1203.  
  1204. /* initializer method: somDefaultConstVCopyInit */
  1205. void   somDefaultConstVCopyInit(som3InitCtrl* ctrl, 
  1206.         SOMObject* fromObj)
  1207. {
  1208. /*
  1209.  *  A default copy constructor that uses a const volatile fromObj.
  1210.  */
  1211.    SOM_ResolveD(this,Sockets,SOMObject,somDefaultConstVCopyInit)
  1212.     (this,ctrl,fromObj);
  1213. }
  1214.  
  1215.  
  1216. /* method: somDefaultConstAssign */
  1217. Sockets*  somDefaultConstAssign(som3AssignCtrl* ctrl, 
  1218.         SOMObject* fromObj)
  1219. {
  1220. /*
  1221.  *  A default assignment operator that uses a const fromObj.
  1222.  */
  1223.    return SOM_ResolveD(this,Sockets,SOMObject,somDefaultConstAssign)
  1224.     (this,ctrl,fromObj);
  1225. }
  1226.  
  1227.  
  1228. /* method: somDefaultVAssign */
  1229. Sockets*  somDefaultVAssign(som3AssignCtrl* ctrl, 
  1230.         SOMObject* fromObj)
  1231. {
  1232. /*
  1233.  *  A default assignment operator that uses a volatile fromObj.
  1234.  */
  1235.    return SOM_ResolveD(this,Sockets,SOMObject,somDefaultVAssign)
  1236.     (this,ctrl,fromObj);
  1237. }
  1238.  
  1239.  
  1240. /* method: somDefaultConstVAssign */
  1241. Sockets*  somDefaultConstVAssign(som3AssignCtrl* ctrl, 
  1242.         SOMObject* fromObj)
  1243. {
  1244. /*
  1245.  *  A default assignment operator that uses a const volatile fromObj.
  1246.  */
  1247.    return SOM_ResolveD(this,Sockets,SOMObject,somDefaultConstVAssign)
  1248.     (this,ctrl,fromObj);
  1249. }
  1250.  
  1251.  
  1252. /* method: somInit */
  1253. void   somInit()
  1254. {
  1255. /*
  1256.  *  Obsolete but still supported. Override somDefaultInit instead of somInit.
  1257.  */
  1258.    SOM_ResolveD(this,Sockets,SOMObject,somInit)
  1259.     (this);
  1260. }
  1261.  
  1262.  
  1263. /* method: somFree */
  1264. void   somFree()
  1265. {
  1266. /*
  1267.  *  Use as directed by framework implementations.
  1268.  */
  1269.    SOM_ResolveD(this,Sockets,SOMObject,somFree)
  1270.     (this);
  1271. }
  1272.  
  1273.  
  1274. /* method: somUninit */
  1275. void   somUninit()
  1276. {
  1277. /*
  1278.  *  Obsolete but still supported. Override somDestruct instead of somUninit.
  1279.  */
  1280.    SOM_ResolveD(this,Sockets,SOMObject,somUninit)
  1281.     (this);
  1282. }
  1283.  
  1284.  
  1285. /* method: somGetClass */
  1286. SOMMSingleInstance*  somGetClass()
  1287. {
  1288. /*
  1289.  *  Return the receiver's class.
  1290.  */
  1291.    return SOM_ResolveD(this,Sockets,SOMObject,somGetClass)
  1292.     (this);
  1293. }
  1294.  
  1295.  
  1296. /* method: somGetClassName */
  1297. string   somGetClassName()
  1298. {
  1299. /*
  1300.  *  Return the name of the receiver's class.
  1301.  */
  1302.    return SOM_ResolveD(this,Sockets,SOMObject,somGetClassName)
  1303.     (this);
  1304. }
  1305.  
  1306.  
  1307. /* method: somGetSize */
  1308. long   somGetSize()
  1309. {
  1310. /*
  1311.  *  Return the size of the receiver.
  1312.  */
  1313.    return SOM_ResolveD(this,Sockets,SOMObject,somGetSize)
  1314.     (this);
  1315. }
  1316.  
  1317.  
  1318. /* method: somIsA */
  1319. boolean   somIsA(SOMClass* aClassObj)
  1320. {
  1321. /*
  1322.  *  Returns 1 (true) if the receiver responds to methods
  1323.  *  introduced by <aClassObj>, and 0 (false) otherwise.
  1324.  */
  1325.    return SOM_ResolveD(this,Sockets,SOMObject,somIsA)
  1326.     (this,aClassObj);
  1327. }
  1328.  
  1329.  
  1330. /* method: somIsInstanceOf */
  1331. boolean   somIsInstanceOf(SOMClass* aClassObj)
  1332. {
  1333. /*
  1334.  *  Returns 1 (true) if the receiver is an instance of
  1335.  *  <aClassObj> and 0 (false) otherwise.
  1336.  */
  1337.    return SOM_ResolveD(this,Sockets,SOMObject,somIsInstanceOf)
  1338.     (this,aClassObj);
  1339. }
  1340.  
  1341.  
  1342. /* method: somRespondsTo */
  1343. boolean   somRespondsTo(somId mId)
  1344. {
  1345. /*
  1346.  *  Returns 1 (true) if the indicated method can be invoked
  1347.  *  on the receiver and 0 (false) otherwise.
  1348.  */
  1349.    return SOM_ResolveD(this,Sockets,SOMObject,somRespondsTo)
  1350.     (this,mId);
  1351. }
  1352.  
  1353.  
  1354. /* va_list method: somDispatch */
  1355.  
  1356. /*
  1357.  *  This method provides a generic, class-specific dispatch mechanism.
  1358.  *  It accepts as input <retValue> a pointer to the memory area to be
  1359.  *  loaded with the result of dispatching the method indicated by
  1360.  *  <methodId> using the arguments in <ap>. <ap> contains the object
  1361.  *  on which the method is to be invoked as the first argument.
  1362.  */
  1363. /* the va_list invocation form */
  1364. boolean   Sockets_somDispatch(somToken* retValue, 
  1365.         somId methodId, 
  1366.         va_list ap)
  1367. {return SOM_ResolveD(this,Sockets,SOMObject,somDispatch)
  1368.     (this,retValue,methodId,ap);
  1369. }
  1370.  
  1371. /* the varargs invocation form */
  1372. boolean   somDispatch(somToken* retValue, 
  1373.         somId methodId, 
  1374.         ...)
  1375. {
  1376. /*
  1377.  *  This method provides a generic, class-specific dispatch mechanism.
  1378.  *  It accepts as input <retValue> a pointer to the memory area to be
  1379.  *  loaded with the result of dispatching the method indicated by
  1380.  *  <methodId> using the arguments in <ap>. <ap> contains the object
  1381.  *  on which the method is to be invoked as the first argument.
  1382.  */
  1383.    va_list ap;
  1384.    va_start(ap, methodId);
  1385.    boolean __somResult = 
  1386.       SOM_ResolveD(this,Sockets,SOMObject,somDispatch)
  1387.     (this,retValue,methodId,ap);
  1388.    va_end(ap);
  1389.    return __somResult;
  1390. }
  1391.  
  1392.  
  1393. /* va_list method: somClassDispatch */
  1394.  
  1395. /*
  1396.  *  Like somDispatch, but method resolution for static methods is done
  1397.  *  according to the clsObj instance method table.
  1398.  */
  1399. /* the va_list invocation form */
  1400. boolean   Sockets_somClassDispatch(SOMClass* clsObj, 
  1401.         somToken* retValue, 
  1402.         somId methodId, 
  1403.         va_list ap)
  1404. {return SOM_ResolveD(this,Sockets,SOMObject,somClassDispatch)
  1405.     (this,clsObj,retValue,methodId,ap);
  1406. }
  1407.  
  1408. /* the varargs invocation form */
  1409. boolean   somClassDispatch(SOMClass* clsObj, 
  1410.         somToken* retValue, 
  1411.         somId methodId, 
  1412.         ...)
  1413. {
  1414. /*
  1415.  *  Like somDispatch, but method resolution for static methods is done
  1416.  *  according to the clsObj instance method table.
  1417.  */
  1418.    va_list ap;
  1419.    va_start(ap, methodId);
  1420.    boolean __somResult = 
  1421.       SOM_ResolveD(this,Sockets,SOMObject,somClassDispatch)
  1422.     (this,clsObj,retValue,methodId,ap);
  1423.    va_end(ap);
  1424.    return __somResult;
  1425. }
  1426.  
  1427.  
  1428. /* method: somCastObj */
  1429. boolean   somCastObj(SOMClass* cls)
  1430. {
  1431. /*
  1432.  *  cast the receiving object to cls (which must be an ancestor of the
  1433.  *  objects true class. Returns true on success.
  1434.  */
  1435.    return SOM_ResolveD(this,Sockets,SOMObject,somCastObj)
  1436.     (this,cls);
  1437. }
  1438.  
  1439.  
  1440. /* method: somResetObj */
  1441. boolean   somResetObj()
  1442. {
  1443. /*
  1444.  *  reset an object to its true class. Returns true always.
  1445.  */
  1446.    return SOM_ResolveD(this,Sockets,SOMObject,somResetObj)
  1447.     (this);
  1448. }
  1449.  
  1450.  
  1451. /* va_list method: somDispatchV */
  1452.  
  1453. /*
  1454.  *  Obsolete. Use somDispatch instead.
  1455.  */
  1456. /* the va_list invocation form */
  1457. void   Sockets_somDispatchV(somId methodId, 
  1458.         somId descriptor, 
  1459.         va_list ap)
  1460. {   SOM_ResolveD(this,Sockets,SOMObject,somDispatchV)
  1461.     (this,methodId,descriptor,ap);
  1462. }
  1463.  
  1464. /* the varargs invocation form */
  1465. void   somDispatchV(somId methodId, 
  1466.         somId descriptor, 
  1467.         ...)
  1468. {
  1469. /*
  1470.  *  Obsolete. Use somDispatch instead.
  1471.  */
  1472.    va_list ap;
  1473.    va_start(ap, descriptor);
  1474.    SOM_ResolveD(this,Sockets,SOMObject,somDispatchV)
  1475.     (this,methodId,descriptor,ap);
  1476.    va_end(ap);
  1477. }
  1478.  
  1479.  
  1480. /* va_list method: somDispatchL */
  1481.  
  1482. /*
  1483.  *  Obsolete. Use somDispatch instead.
  1484.  */
  1485. /* the va_list invocation form */
  1486. long   Sockets_somDispatchL(somId methodId, 
  1487.         somId descriptor, 
  1488.         va_list ap)
  1489. {return SOM_ResolveD(this,Sockets,SOMObject,somDispatchL)
  1490.     (this,methodId,descriptor,ap);
  1491. }
  1492.  
  1493. /* the varargs invocation form */
  1494. long   somDispatchL(somId methodId, 
  1495.         somId descriptor, 
  1496.         ...)
  1497. {
  1498. /*
  1499.  *  Obsolete. Use somDispatch instead.
  1500.  */
  1501.    va_list ap;
  1502.    va_start(ap, descriptor);
  1503.    long __somResult = 
  1504.       SOM_ResolveD(this,Sockets,SOMObject,somDispatchL)
  1505.     (this,methodId,descriptor,ap);
  1506.    va_end(ap);
  1507.    return __somResult;
  1508. }
  1509.  
  1510.  
  1511. /* va_list method: somDispatchA */
  1512.  
  1513. /*
  1514.  *  Obsolete. Use somDispatch instead.
  1515.  */
  1516. /* the va_list invocation form */
  1517. void*   Sockets_somDispatchA(somId methodId, 
  1518.         somId descriptor, 
  1519.         va_list ap)
  1520. {return SOM_ResolveD(this,Sockets,SOMObject,somDispatchA)
  1521.     (this,methodId,descriptor,ap);
  1522. }
  1523.  
  1524. /* the varargs invocation form */
  1525. void*   somDispatchA(somId methodId, 
  1526.         somId descriptor, 
  1527.         ...)
  1528. {
  1529. /*
  1530.  *  Obsolete. Use somDispatch instead.
  1531.  */
  1532.    va_list ap;
  1533.    va_start(ap, descriptor);
  1534.    void* __somResult = 
  1535.       SOM_ResolveD(this,Sockets,SOMObject,somDispatchA)
  1536.     (this,methodId,descriptor,ap);
  1537.    va_end(ap);
  1538.    return __somResult;
  1539. }
  1540.  
  1541.  
  1542. /* va_list method: somDispatchD */
  1543.  
  1544. /*
  1545.  *  Obsolete. Use somDispatch instead.
  1546.  */
  1547. /* the va_list invocation form */
  1548. double   Sockets_somDispatchD(somId methodId, 
  1549.         somId descriptor, 
  1550.         va_list ap)
  1551. {return SOM_ResolveD(this,Sockets,SOMObject,somDispatchD)
  1552.     (this,methodId,descriptor,ap);
  1553. }
  1554.  
  1555. /* the varargs invocation form */
  1556. double   somDispatchD(somId methodId, 
  1557.         somId descriptor, 
  1558.         ...)
  1559. {
  1560. /*
  1561.  *  Obsolete. Use somDispatch instead.
  1562.  */
  1563.    va_list ap;
  1564.    va_start(ap, descriptor);
  1565.    double __somResult = 
  1566.       SOM_ResolveD(this,Sockets,SOMObject,somDispatchD)
  1567.     (this,methodId,descriptor,ap);
  1568.    va_end(ap);
  1569.    return __somResult;
  1570. }
  1571.  
  1572.  
  1573. /* method: somPrintSelf */
  1574. SOMObject*   somPrintSelf()
  1575. {
  1576. /*
  1577.  *  Uses <SOMOutCharRoutine> to write a brief string with identifying
  1578.  *  information about this object.  The default implementation just gives
  1579.  *  the object's class name and its address in memory.
  1580.  *  <self> is returned.
  1581.  */
  1582.    return SOM_ResolveD(this,Sockets,SOMObject,somPrintSelf)
  1583.     (this);
  1584. }
  1585.  
  1586.  
  1587. /* method: somDumpSelf */
  1588. void   somDumpSelf(long level)
  1589. {
  1590. /*
  1591.  *  Uses <SOMOutCharRoutine> to write a detailed description of this object
  1592.  *  and its current state.
  1593.  * 
  1594.  *  <level> indicates the nesting level for describing compound objects
  1595.  *  it must be greater than or equal to zero.  All lines in the
  1596.  *  description will be preceeded by <2*level> spaces.
  1597.  * 
  1598.  *  This routine only actually writes the data that concerns the object
  1599.  *  as a whole, such as class, and uses <somDumpSelfInt> to describe
  1600.  *  the object's current state.  This approach allows readable
  1601.  *  descriptions of compound objects to be constructed.
  1602.  * 
  1603.  *  Generally it is not necessary to override this method, if it is
  1604.  *  overriden it generally must be completely replaced.
  1605.  */
  1606.    SOM_ResolveD(this,Sockets,SOMObject,somDumpSelf)
  1607.     (this,level);
  1608. }
  1609.  
  1610.  
  1611. /* method: somDumpSelfInt */
  1612. void   somDumpSelfInt(long level)
  1613. {
  1614. /*
  1615.  *  Uses <SOMOutCharRoutine> to write in the current state of this object.
  1616.  *  Generally this method will need to be overridden.  When overriding
  1617.  *  it, begin by calling the parent class form of this method and then
  1618.  *  write in a description of your class's instance data. This will
  1619.  *  result in a description of all the object's instance data going
  1620.  *  from its root ancestor class to its specific class.
  1621.  */
  1622.    SOM_ResolveD(this,Sockets,SOMObject,somDumpSelfInt)
  1623.     (this,level);
  1624. }
  1625.  
  1626.  
  1627.  
  1628. };   /* Sockets */
  1629.  
  1630.  
  1631.  
  1632. #endif       /* SOM_Sockets_xh */
  1633.