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

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