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

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