home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume36 / formes / part01 / assoc.c next >
C/C++ Source or Header  |  1993-04-01  |  2KB  |  104 lines

  1.  
  2. /*
  3.  *  Copyright (C) 1992-1993 Jeffrey Chilton
  4.  *
  5.  *  Permission is granted to anyone to make or distribute copies of
  6.  *  this program, in any medium, provided that the copyright notice
  7.  *  and permission notice are preserved, and that the distributor
  8.  *  grants the recipient permission for further redistribution as
  9.  *  permitted by this notice.
  10.  *  
  11.  *  Author's E-mail address:  172-9221@mcimail.com
  12.  *  
  13.  */
  14.  
  15. static char *whatstring = "@(#)assoc.c    2.2 JWC";
  16.  
  17. #include <stdio.h>
  18. #include <malloc.h>
  19.  
  20. #include "class.h"
  21. #include "assoc.h"
  22.  
  23. /* Association_new - Create an empty association */
  24.  
  25. Association *
  26. Association_new()
  27. {
  28.     Association *self;
  29.  
  30.     self = (Association *)malloc(sizeof (Association));
  31.     if (!self)
  32.     {
  33.     fprintf(stderr, "Association_new: malloc fails\n");
  34.     goto out;
  35.     }
  36.  
  37.     self->key = (void *)0;
  38.     self->value = (void *)0;
  39.  
  40. out:
  41.  
  42.     return self;
  43.  
  44. }
  45.  
  46. /* Association_newWithKey - Create a half-empty association */
  47.  
  48. Association *
  49. Association_newWithKey(key)
  50. void *key;
  51. {
  52.     Association *self;
  53.  
  54.     self = (Association *)malloc(sizeof (Association));
  55.     if (!self)
  56.     {
  57.     fprintf(stderr, "Association_new: malloc fails\n");
  58.     goto out;
  59.     }
  60.  
  61.     self->key = key;
  62.     self->value = (void *)0;
  63.  
  64. out:
  65.  
  66.     return self;
  67.  
  68. }
  69.  
  70. /* Association_newWithPair - Create a full association */
  71.  
  72. Association *
  73. Association_newWithPair(key, value)
  74. void *key;
  75. void *value;
  76. {
  77.     Association *self;
  78.  
  79.     self = (Association *)malloc(sizeof (Association));
  80.     if (!self)
  81.     {
  82.     fprintf(stderr, "Association_new: malloc fails\n");
  83.     goto out;
  84.     }
  85.  
  86.     self->key = key;
  87.     self->value = value;
  88.  
  89. out:
  90.  
  91.     return self;
  92.  
  93. }
  94.  
  95. /* Association_destroy */
  96.  
  97. void
  98. Association_destroy(self)
  99. Association *self;
  100. {
  101.     free(self);
  102. }
  103.  
  104.