OpenMAMA C++ API
MamaMsg.h
Go to the documentation of this file.
1 /* $Id$
2  *
3  * OpenMAMA: The open middleware agnostic messaging API
4  * Copyright (C) 2011 NYSE Technologies, Inc.
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19  * 02110-1301 USA
20  */
21 
22 #ifndef MAMA_MSG_CPP_H__
23 #define MAMA_MSG_CPP_H__
24 
25 #include "mama/mamacpp.h"
26 #include "mama/MamaMsgField.h"
27 #include "mama/types.h"
28 
29 namespace Wombat
30 {
31  class MamaFieldDescriptor;
32  class MamaDateTime;
33  class MamaPrice;
34  class MamaMsgFieldIterator;
35  class MamaDictionary;
36  class MamaMsg;
37 
52  class MAMACPPExpDLL MamaMsgIterator
53  {
54  public:
55  MamaMsgIterator (const MamaDictionary* dictionary);
56  MamaMsgIterator ();
57  MamaMsgIterator (const MamaMsgIterator& copy);
58  ~MamaMsgIterator ();
59 
60  void SetDict (const MamaDictionary* dictionary);
61  MamaMsgIterator& operator= (const MamaMsgIterator&);
62 
63  bool operator==(const MamaMsgIterator&) const;
64  bool operator!=(const MamaMsgIterator&) const;
65 
66  MamaMsgField& operator*();
67  MamaMsgField* operator->();
68  MamaMsgIterator& operator++();
69 
70  protected:
71  friend class MamaMsg;
72  mamaMsgIterator myImpl;
74  };
75 
112  class MAMACPPExpDLL MamaMsg
113  {
114  public:
115  ~MamaMsg ();
116 
117  MamaMsg (void);
118  MamaMsg (const MamaMsg& mm);
119 
127  void create (void);
128 
135  MAMADeprecated(
136  "createForPayload has been deprecated, use dynamic loading instead!")
137  void createForPayload (const char id);
138 
144  void createForPayloadBridge (mamaPayloadBridge payloadBridge);
145 
165  void createFromBuffer (
166  const void* buffer,
167  size_t bufferLength);
168 
173  void copy (const MamaMsg& rhs);
174 
185  MamaMsg* getTempCopy();
186  void applyMsg (const MamaMsg& msg);
187 
191  void clear (void);
192 
199  size_t getNumFields (void) const;
200 
209  size_t getByteSize (void) const;
210 
217  bool getBoolean (
218  const char* name,
219  mama_fid_t fid) const;
220 
226  bool getBoolean (
227  const MamaFieldDescriptor* fieldDesc) const;
228 
235  char getChar (
236  const char* name,
237  mama_fid_t fid) const;
238 
244  char getChar (
245  const MamaFieldDescriptor* fieldDesc) const;
246 
253  mama_i8_t getI8 (
254  const char* name,
255  mama_fid_t fid) const;
256 
262  mama_i8_t getI8 (
263  const MamaFieldDescriptor* fieldDesc) const;
264 
271  mama_u8_t getU8 (
272  const char* name,
273  mama_fid_t fid) const;
274 
280  mama_u8_t getU8 (
281  const MamaFieldDescriptor* fieldDesc) const;
282 
289  mama_i16_t getI16 (
290  const char* name,
291  mama_fid_t fid) const;
292 
298  mama_i16_t getI16 (
299  const MamaFieldDescriptor* fieldDesc) const;
300 
307  mama_u16_t getU16 (
308  const char* name,
309  mama_fid_t fid) const;
310 
316  mama_u16_t getU16 (
317  const MamaFieldDescriptor* fieldDesc) const;
318 
325  mama_i32_t getI32 (
326  const char* name,
327  mama_fid_t fid) const;
328 
334  mama_i32_t getI32 (
335  const MamaFieldDescriptor* fieldDesc) const;
336 
343  mama_u32_t getU32 (
344  const char* name,
345  mama_fid_t fid) const;
346 
352  mama_u32_t getU32 (
353  const MamaFieldDescriptor* fieldDesc) const;
354 
362  mama_i64_t getI64 (
363  const char* name,
364  mama_fid_t fid) const;
365 
371  mama_i64_t getI64 (
372  const MamaFieldDescriptor* fieldDesc) const;
373 
380  mama_u64_t getU64 (
381  const char* name,
382  mama_fid_t fid) const;
383 
389  mama_u64_t getU64 (
390  const MamaFieldDescriptor* fieldDesc) const;
391 
399  mama_f32_t getF32 (
400  const char* name,
401  mama_fid_t fid) const;
402 
408  mama_f32_t getF32 (
409  const MamaFieldDescriptor* fieldDesc) const;
410 
418  mama_f64_t getF64 (
419  const char* name,
420  mama_fid_t fid) const;
421 
427  mama_f64_t getF64 (
428  const MamaFieldDescriptor* fieldDesc) const;
429 
438  const char* getString (
439  const char* name,
440  mama_fid_t fid) const;
441 
449  const char* getString (
450  const MamaFieldDescriptor* fieldDesc) const;
451 
459  const void* getOpaque (
460  const char* name,
461  mama_fid_t fid,
462  size_t& size) const;
463 
470  const void* getOpaque (
471  const MamaFieldDescriptor* fieldDesc,
472  size_t& size) const;
473 
480  void getDateTime (
481  const char* name,
482  mama_fid_t fid,
483  MamaDateTime& result) const;
484 
490  void getDateTime (
491  const MamaFieldDescriptor* fieldDesc,
492  MamaDateTime& result) const;
493 
500  void getPrice (
501  const char* name,
502  mama_fid_t fid,
503  MamaPrice& result) const;
504 
510  void getPrice (
511  const MamaFieldDescriptor* fieldDesc,
512  MamaPrice& result) const;
513 
520  const MamaMsg* getMsg (
521  const char* name,
522  mama_fid_t fid) const;
523 
529  const MamaMsg* getMsg (
530  const MamaFieldDescriptor* fieldDesc) const;
531 
540  const char* getVectorChar (
541  const char* name,
542  mama_fid_t fid,
543  size_t& resultLen) const;
544 
552  const char* getVectorChar (
553  const MamaFieldDescriptor* fieldDesc,
554  size_t& resultLen) const;
555 
563  const mama_i8_t* getVectorI8 (
564  const char* name,
565  mama_fid_t fid,
566  size_t& resultLen) const;
567 
575  const mama_i8_t* getVectorI8 (
576  const MamaFieldDescriptor* fieldDesc,
577  size_t& resultLen) const;
578 
586  const mama_u8_t* getVectorU8 (
587  const char* name,
588  mama_fid_t fid,
589  size_t& resultLen) const;
590 
598  const mama_u8_t* getVectorU8 (
599  const MamaFieldDescriptor* fieldDesc,
600  size_t& resultLen) const;
601 
609  const mama_i16_t* getVectorI16 (
610  const char* name,
611  mama_fid_t fid,
612  size_t& resultLen) const;
613 
621  const mama_i16_t* getVectorI16 (
622  const MamaFieldDescriptor* fieldDesc,
623  size_t& resultLen) const;
624 
632  const mama_u16_t* getVectorU16 (
633  const char* name,
634  mama_fid_t fid,
635  size_t& resultLen) const;
636 
644  const mama_u16_t* getVectorU16 (
645  const MamaFieldDescriptor* fieldDesc,
646  size_t& resultLen) const;
647 
655  const mama_i32_t* getVectorI32 (
656  const char* name,
657  mama_fid_t fid,
658  size_t& resultLen) const;
659 
667  const mama_i32_t* getVectorI32 (
668  const MamaFieldDescriptor* fieldDesc,
669  size_t& resultLen) const;
670 
678  const mama_u32_t* getVectorU32 (
679  const char* name,
680  mama_fid_t fid,
681  size_t& resultLen) const;
682 
690  const mama_u32_t* getVectorU32 (
691  const MamaFieldDescriptor* fieldDesc,
692  size_t& resultLen) const;
693 
701  const mama_i64_t* getVectorI64 (
702  const char* name,
703  mama_fid_t fid,
704  size_t& resultLen) const;
705 
713  const mama_i64_t* getVectorI64 (
714  const MamaFieldDescriptor* fieldDesc,
715  size_t& resultLen) const;
716 
724  const mama_u64_t* getVectorU64 (
725  const char* name,
726  mama_fid_t fid,
727  size_t& resultLen) const;
728 
736  const mama_u64_t* getVectorU64 (
737  const MamaFieldDescriptor* fieldDesc,
738  size_t& resultLen) const;
739 
747  const mama_f32_t* getVectorF32 (
748  const char* name,
749  mama_fid_t fid,
750  size_t& resultLen) const;
751 
759  const mama_f32_t* getVectorF32 (
760  const MamaFieldDescriptor* fieldDesc,
761  size_t& resultLen) const;
762 
770  const mama_f64_t* getVectorF64 (
771  const char* name,
772  mama_fid_t fid,
773  size_t& resultLen) const;
774 
782  const mama_f64_t* getVectorF64 (
783  const MamaFieldDescriptor* fieldDesc,
784  size_t& resultLen) const;
785 
793  const MamaMsg** getVectorMsg (
794  const char* name,
795  mama_fid_t fid,
796  size_t& resultLen) const;
797 
804  const MamaMsg** getVectorMsg (
805  const MamaFieldDescriptor* fieldDesc,
806  size_t& resultLen) const;
807 
817  const char** getVectorString (
818  const char* name,
819  mama_fid_t fid,
820  size_t& resultLen) const;
821 
830  const char** getVectorString (
831  const MamaFieldDescriptor* fieldDesc,
832  size_t& resultLen) const;
833 
834 
842  bool tryBoolean (
843  const char* name,
844  mama_fid_t fid,
845  bool& result) const;
846 
853  bool tryBoolean (
854  const MamaFieldDescriptor* field,
855  bool& result) const;
856 
864  bool tryChar (
865  const char* name,
866  mama_fid_t fid,
867  char& result) const;
868 
875  bool tryChar (
876  const MamaFieldDescriptor* field,
877  char& result) const;
878 
886  bool tryI8 (
887  const char* name,
888  mama_fid_t fid,
889  mama_i8_t& result) const;
890 
897  bool tryI8 (
898  const MamaFieldDescriptor* field,
899  mama_i8_t& result) const;
900 
908  bool tryU8 (
909  const char* name,
910  mama_fid_t fid,
911  mama_u8_t& result) const;
912 
919  bool tryU8 (
920  const MamaFieldDescriptor* field,
921  mama_u8_t& result) const;
922 
930  bool tryI16 (
931  const char* name,
932  mama_fid_t fid,
933  mama_i16_t& result) const;
934 
941  bool tryI16 (
942  const MamaFieldDescriptor* field,
943  mama_i16_t& result) const;
944 
952  bool tryU16 (
953  const char* name,
954  mama_fid_t fid,
955  mama_u16_t& result) const;
956 
963  bool tryU16 (
964  const MamaFieldDescriptor* field,
965  mama_u16_t& result) const;
966 
974  bool tryI32 (
975  const char* name,
976  mama_fid_t fid,
977  mama_i32_t& result) const;
978 
985  bool tryI32 (
986  const MamaFieldDescriptor* field,
987  mama_i32_t& result) const;
988 
996  bool tryU32 (
997  const char* name,
998  mama_fid_t fid,
999  mama_u32_t& result) const;
1000 
1007  bool tryU32 (
1008  const MamaFieldDescriptor* field,
1009  mama_u32_t& result) const;
1010 
1018  bool tryI64 (
1019  const char* name,
1020  mama_fid_t fid,
1021  mama_i64_t& result) const;
1022 
1029  bool tryI64 (
1030  const MamaFieldDescriptor* field,
1031  mama_i64_t& result) const;
1032 
1040  bool tryU64 (
1041  const char* name,
1042  mama_fid_t fid,
1043  mama_u64_t& result) const;
1044 
1051  bool tryU64 (
1052  const MamaFieldDescriptor* field,
1053  mama_u64_t& result) const;
1054 
1063  bool tryF32 (
1064  const char* name,
1065  mama_fid_t fid,
1066  mama_f32_t& result) const;
1067 
1075  bool tryF32 (
1076  const MamaFieldDescriptor* field,
1077  mama_f32_t& result) const;
1078 
1087  bool tryF64 (
1088  const char* name,
1089  mama_fid_t fid,
1090  mama_f64_t& result) const;
1091 
1099  bool tryF64 (
1100  const MamaFieldDescriptor* field,
1101  mama_f64_t& result) const;
1102 
1110  bool tryString (
1111  const char* name,
1112  mama_fid_t fid,
1113  const char*& result) const;
1114 
1121  bool tryString (
1122  const MamaFieldDescriptor* field,
1123  const char*& result) const;
1124 
1132  bool tryDateTime (
1133  const char* name,
1134  mama_fid_t fid,
1135  MamaDateTime& result) const;
1136 
1143  bool tryDateTime (
1144  const MamaFieldDescriptor* field,
1145  MamaDateTime& result) const;
1146 
1154  bool tryPrice (
1155  const char* name,
1156  mama_fid_t fid,
1157  MamaPrice& result) const;
1158 
1165  bool tryPrice (
1166  const MamaFieldDescriptor* field,
1167  MamaPrice& result) const;
1168 
1176  bool tryMsg (
1177  const char* name,
1178  mama_fid_t fid,
1179  const MamaMsg*& result) const;
1180 
1187  bool tryMsg (
1188  const MamaFieldDescriptor* field,
1189  const MamaMsg*& result) const;
1190 
1199  bool tryOpaque (
1200  const char* name,
1201  mama_fid_t fid,
1202  const void*& result,
1203  size_t& size) const;
1204 
1212  bool tryOpaque (
1213  const MamaFieldDescriptor* field,
1214  const void*& result,
1215  size_t& size) const;
1216 
1226  bool tryVectorChar (
1227  const char* name,
1228  mama_fid_t fid,
1229  const char*& result,
1230  size_t& resultLen) const;
1231 
1240  bool tryVectorChar (
1241  const MamaFieldDescriptor* fieldDesc,
1242  const char*& result,
1243  size_t& resultLen) const;
1244 
1253  bool tryVectorI8 (
1254  const char* name,
1255  mama_fid_t fid,
1256  const mama_i8_t*& result,
1257  size_t& resultLen) const;
1258 
1267  bool tryVectorI8 (
1268  const MamaFieldDescriptor* fieldDesc,
1269  const mama_i8_t*& result,
1270  size_t& resultLen) const;
1271 
1280  bool tryVectorU8 (
1281  const char* name,
1282  mama_fid_t fid,
1283  const mama_u8_t*& result,
1284  size_t& resultLen) const;
1285 
1294  bool tryVectorU8 (
1295  const MamaFieldDescriptor* fieldDesc,
1296  const mama_u8_t*& result,
1297  size_t& resultLen) const;
1298 
1307  bool tryVectorI16 (
1308  const char* name,
1309  mama_fid_t fid,
1310  const mama_i16_t*& result,
1311  size_t& resultLen) const;
1312 
1321  bool tryVectorI16 (
1322  const MamaFieldDescriptor* fieldDesc,
1323  const mama_i16_t*& result,
1324  size_t& resultLen) const;
1325 
1334  bool tryVectorU16 (
1335  const char* name,
1336  mama_fid_t fid,
1337  const mama_u16_t*& result,
1338  size_t& resultLen) const;
1339 
1348  bool tryVectorU16 (
1349  const MamaFieldDescriptor* fieldDesc,
1350  const mama_u16_t*& result,
1351  size_t& resultLen) const;
1352 
1361  bool tryVectorI32 (
1362  const char* name,
1363  mama_fid_t fid,
1364  const mama_i32_t*& result,
1365  size_t& resultLen) const;
1366 
1375  bool tryVectorI32 (
1376  const MamaFieldDescriptor* fieldDesc,
1377  const mama_i32_t*& result,
1378  size_t& resultLen) const;
1379 
1388  bool tryVectorU32 (
1389  const char* name,
1390  mama_fid_t fid,
1391  const mama_u32_t*& result,
1392  size_t& resultLen) const;
1393 
1402  bool tryVectorU32 (
1403  const MamaFieldDescriptor* fieldDesc,
1404  const mama_u32_t*& result,
1405  size_t& resultLen) const;
1406 
1415  bool tryVectorI64 (
1416  const char* name,
1417  mama_fid_t fid,
1418  const mama_i64_t*& result,
1419  size_t& resultLen) const;
1420 
1429  bool tryVectorI64 (
1430  const MamaFieldDescriptor* fieldDesc,
1431  const mama_i64_t*& result,
1432  size_t& resultLen) const;
1433 
1442  bool tryVectorU64 (
1443  const char* name,
1444  mama_fid_t fid,
1445  const mama_u64_t*& result,
1446  size_t& resultLen) const;
1447 
1456  bool tryVectorU64 (
1457  const MamaFieldDescriptor* fieldDesc,
1458  const mama_u64_t*& result,
1459  size_t& resultLen) const;
1460 
1469  bool tryVectorF32 (
1470  const char* name,
1471  mama_fid_t fid,
1472  const mama_f32_t*& result,
1473  size_t& resultLen) const;
1474 
1483  bool tryVectorF32 (
1484  const MamaFieldDescriptor* fieldDesc,
1485  const mama_f32_t*& result,
1486  size_t& resultLen) const;
1487 
1496  bool tryVectorF64 (
1497  const char* name,
1498  mama_fid_t fid,
1499  const mama_f64_t*& result,
1500  size_t& resultLen) const;
1501 
1510  bool tryVectorF64 (
1511  const MamaFieldDescriptor* fieldDesc,
1512  const mama_f64_t*& result,
1513  size_t& resultLen) const;
1514 
1515 
1524  bool tryVectorString (
1525  const char* name,
1526  mama_fid_t fid,
1527  const char**& result,
1528  size_t& resultLen) const;
1529 
1537  bool tryVectorString (
1538  const MamaFieldDescriptor* fieldDesc,
1539  const char**& result,
1540  size_t& resultLen) const;
1549  bool tryVectorMsg (
1550  const char* name,
1551  mama_fid_t fid,
1552  const MamaMsg**& result,
1553  size_t& resultLen) const;
1554 
1562  bool tryVectorMsg (
1563  const MamaFieldDescriptor* fieldDesc,
1564  const MamaMsg**& result,
1565  size_t& resultLen) const;
1566 
1574  void addBoolean (
1575  const char* name,
1576  mama_fid_t fid,
1577  bool value);
1578 
1585  void addBoolean (
1586  const MamaFieldDescriptor* fieldDesc,
1587  bool value);
1588 
1596  void addChar (
1597  const char* name,
1598  mama_fid_t fid,
1599  char value);
1600 
1607  void addChar (
1608  const MamaFieldDescriptor* fieldDesc,
1609  char value);
1610 
1618  void addI8 (
1619  const char* name,
1620  mama_fid_t fid,
1621  mama_i8_t value);
1622 
1629  void addI8 (
1630  const MamaFieldDescriptor* fieldDesc,
1631  mama_i8_t value);
1632 
1640  void addI16 (
1641  const char* name,
1642  mama_fid_t fid,
1643  mama_i16_t value);
1644 
1651  void addI16 (
1652  const MamaFieldDescriptor* fieldDesc,
1653  mama_i16_t value);
1654 
1662  void addI32 (
1663  const char* name,
1664  mama_fid_t fid,
1665  mama_i32_t value);
1666 
1673  void addI32 (
1674  const MamaFieldDescriptor* fieldDesc,
1675  mama_i32_t value);
1676 
1684  void addI64 (
1685  const char* name,
1686  mama_fid_t fid,
1687  mama_i64_t value);
1688 
1695  void addI64 (
1696  const MamaFieldDescriptor* fieldDesc,
1697  mama_i64_t value);
1698 
1706  void addU8 (
1707  const char* name,
1708  mama_fid_t fid,
1709  mama_u8_t value);
1710 
1717  void addU8 (
1718  const MamaFieldDescriptor* fieldDesc,
1719  mama_u8_t value);
1720 
1728  void addU16 (
1729  const char* name,
1730  mama_fid_t fid,
1731  mama_u16_t value);
1732 
1739  void addU16 (
1740  const MamaFieldDescriptor* fieldDesc,
1741  mama_u16_t value);
1742 
1750  void addU32 (
1751  const char* name,
1752  mama_fid_t fid,
1753  mama_u32_t value);
1754 
1761  void addU32 (
1762  const MamaFieldDescriptor* fieldDesc,
1763  mama_u32_t value);
1764 
1772  void addU64 (
1773  const char* name,
1774  mama_fid_t fid,
1775  mama_u64_t value);
1776 
1783  void addU64 (
1784  const MamaFieldDescriptor* fieldDesc,
1785  mama_u64_t value);
1786 
1794  void addF32 (
1795  const char* name,
1796  mama_fid_t fid,
1797  mama_f32_t value);
1798 
1805  void addF32 (
1806  const MamaFieldDescriptor* fieldDesc,
1807  mama_f32_t value);
1808 
1816  void addF64 (
1817  const char* name,
1818  mama_fid_t fid,
1819  mama_f64_t value);
1820 
1827  void addF64 (
1828  const MamaFieldDescriptor* fieldDesc,
1829  mama_f64_t value);
1830 
1838  void addString (
1839  const char* name,
1840  mama_fid_t fid,
1841  const char* value);
1842 
1849  void addString (
1850  const MamaFieldDescriptor* fieldDesc,
1851  const char* value);
1852 
1860  void addDateTime (
1861  const char* name,
1862  mama_fid_t fid,
1863  const MamaDateTime& value);
1864 
1871  void addDateTime (
1872  const MamaFieldDescriptor* fieldDesc,
1873  const MamaDateTime& value);
1874 
1882  void addPrice (
1883  const char* name,
1884  mama_fid_t fid,
1885  const MamaPrice& value);
1886 
1893  void addPrice (
1894  const MamaFieldDescriptor* fieldDesc,
1895  const MamaPrice& value);
1896 
1905  void addOpaque (
1906  const char* name,
1907  mama_fid_t fid,
1908  const void* value,
1909  size_t size);
1910 
1918  void addOpaque (
1919  const MamaFieldDescriptor* fieldDesc,
1920  const void* value,
1921  size_t size);
1922 
1929  void addMsg(
1930  const char* name,
1931  mama_fid_t fid,
1932  MamaMsg* value);
1933 
1939  void addMsg (
1940  const MamaFieldDescriptor* fieldDesc,
1941  MamaMsg* value);
1942 
1951  void addVectorChar (
1952  const char* name,
1953  mama_fid_t fid,
1954  const char vectorValues[],
1955  size_t vectorLen);
1956 
1964  void addVectorChar (
1965  const MamaFieldDescriptor* fieldDesc,
1966  const char vectorValues[],
1967  size_t vectorLen);
1968 
1976  void addVectorI8 (
1977  const char* name,
1978  mama_fid_t fid,
1979  const mama_i8_t vectorValues[],
1980  size_t vectorLen);
1981 
1988  void addVectorI8 (
1989  const MamaFieldDescriptor* fieldDesc,
1990  const mama_i8_t vectorValues[],
1991  size_t vectorLen);
1992 
2000  void addVectorU8 (
2001  const char* name,
2002  mama_fid_t fid,
2003  const mama_u8_t vectorValues[],
2004  size_t vectorLen);
2005 
2012  void addVectorU8 (
2013  const MamaFieldDescriptor* fieldDesc,
2014  const mama_u8_t vectorValues[],
2015  size_t vectorLen);
2016 
2024  void addVectorI16 (
2025  const char* name,
2026  mama_fid_t fid,
2027  const mama_i16_t vectorValues[],
2028  size_t vectorLen);
2029 
2036  void addVectorI16 (
2037  const MamaFieldDescriptor* fieldDesc,
2038  const mama_i16_t vectorValues[],
2039  size_t vectorLen);
2040 
2048  void addVectorU16 (
2049  const char* name,
2050  mama_fid_t fid,
2051  const mama_u16_t vectorValues[],
2052  size_t vectorLen);
2053 
2060  void addVectorU16 (
2061  const MamaFieldDescriptor* fieldDesc,
2062  const mama_u16_t vectorValues[],
2063  size_t vectorLen);
2064 
2072  void addVectorI32 (
2073  const char* name,
2074  mama_fid_t fid,
2075  const mama_i32_t vectorValues[],
2076  size_t vectorLen);
2077 
2084  void addVectorI32 (
2085  const MamaFieldDescriptor* fieldDesc,
2086  const mama_i32_t vectorValues[],
2087  size_t vectorLen);
2088 
2096  void addVectorU32 (
2097  const char* name,
2098  mama_fid_t fid,
2099  const mama_u32_t vectorValues[],
2100  size_t vectorLen);
2101 
2108  void addVectorU32 (
2109  const MamaFieldDescriptor* fieldDesc,
2110  const mama_u32_t vectorValues[],
2111  size_t vectorLen);
2112 
2120  void addVectorI64 (
2121  const char* name,
2122  mama_fid_t fid,
2123  const mama_i64_t vectorValues[],
2124  size_t vectorLen);
2125 
2132  void addVectorI64 (
2133  const MamaFieldDescriptor* fieldDesc,
2134  const mama_i64_t vectorValues[],
2135  size_t vectorLen);
2136 
2144  void addVectorU64 (
2145  const char* name,
2146  mama_fid_t fid,
2147  const mama_u64_t vectorValues[],
2148  size_t vectorLen);
2149 
2156  void addVectorU64 (
2157  const MamaFieldDescriptor* fieldDesc,
2158  const mama_u64_t vectorValues[],
2159  size_t vectorLen);
2160 
2168  void addVectorF32 (
2169  const char* name,
2170  mama_fid_t fid,
2171  const mama_f32_t vectorValues[],
2172  size_t vectorLen);
2173 
2180  void addVectorF32 (
2181  const MamaFieldDescriptor* fieldDesc,
2182  const mama_f32_t vectorValues[],
2183  size_t vectorLen);
2184 
2192  void addVectorF64 (
2193  const char* name,
2194  mama_fid_t fid,
2195  const mama_f64_t vectorValues[],
2196  size_t vectorLen);
2197 
2204  void addVectorF64 (
2205  const MamaFieldDescriptor* fieldDesc,
2206  const mama_f64_t vectorValues[],
2207  size_t vectorLen);
2208 
2216  void addVectorString (
2217  const char* name,
2218  mama_fid_t fid,
2219  const char* vectorValues[],
2220  size_t vectorLen);
2221 
2228  void addVectorString (
2229  const MamaFieldDescriptor* fieldDesc,
2230  const char* vectorValues[],
2231  size_t vectorLen);
2232 
2240  void addVectorMsg (
2241  const char* name,
2242  mama_fid_t fid,
2243  MamaMsg* vectorValues[],
2244  size_t vectorLen);
2245 
2252  void addVectorMsg (
2253  const MamaFieldDescriptor* fieldDesc,
2254  MamaMsg* vectorValues[],
2255  size_t vectorLen);
2256 
2257 
2266  void updateBoolean (
2267  const char* name,
2268  mama_fid_t fid,
2269  bool value);
2270 
2278  void updateBoolean (
2279  const MamaFieldDescriptor* fieldDesc,
2280  bool value);
2281 
2290  void updateChar (
2291  const char* name,
2292  mama_fid_t fid,
2293  const char value);
2294 
2302  void updateChar (
2303  const MamaFieldDescriptor* fieldDesc,
2304  const char value);
2305 
2314  void updateI8 (
2315  const char* name,
2316  mama_fid_t fid,
2317  const mama_i8_t value);
2318 
2326  void updateI8 (
2327  const MamaFieldDescriptor* fieldDesc,
2328  const mama_i8_t value);
2329 
2338  void updateU8 (
2339  const char* name,
2340  mama_fid_t fid,
2341  const mama_u8_t value);
2342 
2350  void updateU8 (
2351  const MamaFieldDescriptor* fieldDesc,
2352  const mama_u8_t value);
2353 
2362  void updateI16 (
2363  const char* name,
2364  mama_fid_t fid,
2365  const mama_i16_t value);
2366 
2374  void updateI16 (
2375  const MamaFieldDescriptor* fieldDesc,
2376  const mama_i16_t value);
2377 
2386  void updateU16 (
2387  const char* name,
2388  mama_fid_t fid,
2389  const mama_u16_t value);
2390 
2398  void updateU16 (
2399  const MamaFieldDescriptor* fieldDesc,
2400  const mama_u16_t value);
2401 
2410  void updateI32 (
2411  const char* name,
2412  mama_fid_t fid,
2413  const mama_i32_t value);
2414 
2422  void updateI32 (
2423  const MamaFieldDescriptor* fieldDesc,
2424  const mama_i32_t value);
2425 
2434  void updateU32 (
2435  const char* name,
2436  mama_fid_t fid,
2437  const mama_u32_t value);
2438 
2446  void updateU32 (
2447  const MamaFieldDescriptor* fieldDesc,
2448  const mama_u32_t value);
2449 
2458  void updateI64 (
2459  const char* name,
2460  mama_fid_t fid,
2461  const mama_i64_t value);
2462 
2470  void updateI64 (
2471  const MamaFieldDescriptor* fieldDesc,
2472  const mama_i64_t value);
2473 
2482  void updateU64 (
2483  const char* name,
2484  mama_fid_t fid,
2485  const mama_u64_t value);
2486 
2494  void updateU64 (
2495  const MamaFieldDescriptor* fieldDesc,
2496  const mama_u64_t value);
2497 
2506  void updateF32 (
2507  const char* name,
2508  mama_fid_t fid,
2509  const mama_f32_t value);
2510 
2518  void updateF32 (
2519  const MamaFieldDescriptor* fieldDesc,
2520  const mama_f32_t value);
2521 
2530  void updateF64 (
2531  const char* name,
2532  mama_fid_t fid,
2533  const mama_f64_t value);
2534 
2542  void updateF64 (
2543  const MamaFieldDescriptor* fieldDesc,
2544  const mama_f64_t value);
2545 
2554  void updateString (
2555  const char* name,
2556  mama_fid_t fid,
2557  const char* value);
2558 
2566  void updateString (
2567  const MamaFieldDescriptor* fieldDesc,
2568  const char* value);
2569 
2579  void updateOpaque (
2580  const char* name,
2581  mama_fid_t fid,
2582  const void* value,
2583  size_t size);
2584 
2593  void updateOpaque (
2594  const MamaFieldDescriptor* fieldDesc,
2595  const void* value,
2596  size_t size);
2597 
2606  void updateDateTime (
2607  const char* name,
2608  mama_fid_t fid,
2609  const MamaDateTime& value);
2610 
2618  void updateDateTime (
2619  const MamaFieldDescriptor* fieldDesc,
2620  const MamaDateTime& value);
2621 
2630  void updatePrice (
2631  const char* name,
2632  mama_fid_t fid,
2633  const MamaPrice& value);
2634 
2642  void updatePrice (
2643  const MamaFieldDescriptor* fieldDesc,
2644  const MamaPrice& value);
2645 
2649  mamaMsgType getType (void) const;
2650 
2654  const char* getMsgTypeName (void) const;
2655 
2659  mamaMsgStatus getStatus (void) const;
2660 
2664  const char* getMsgStatusString (void) const;
2665 
2669  void iterateFields (MamaMsgFieldIterator& iterator,
2670  const MamaDictionary* dictionary,
2671  void* closure) const;
2672 
2680  const char* toString () const;
2681 
2689  void getFieldAsString (
2690  const char* name,
2691  mama_fid_t fid,
2692  char* result,
2693  size_t maxResultLen) const;
2694 
2701  void getFieldAsString (
2702  const MamaFieldDescriptor* fieldDesc,
2703  char* result,
2704  size_t maxResultLen) const;
2705 
2711  MamaMsgField* getField (
2712  const char* name,
2713  mama_fid_t fid) const;
2714 
2719  MamaMsgField* getField (
2720  const MamaFieldDescriptor* fieldDesc) const;
2721 
2728  bool tryField (
2729  const char* name,
2730  mama_fid_t fid) const;
2731 
2737  bool tryField (
2738  const MamaFieldDescriptor* fieldDesc) const;
2739 
2746  bool tryField (
2747  const char* name,
2748  mama_fid_t fid,
2749  MamaMsgField* result) const;
2750 
2756  bool tryField (
2757  const MamaFieldDescriptor* fieldDesc,
2758  MamaMsgField* result) const;
2759 
2768  bool tryFieldAsString (
2769  const char* name,
2770  mama_fid_t fid,
2771  char* result,
2772  size_t maxResultLen) const;
2773 
2781  bool tryFieldAsString (
2782  const MamaFieldDescriptor* fieldDesc,
2783  char* result,
2784  size_t maxResultLen) const;
2785 
2794  void getByteBuffer (
2795  const void*& buffer,
2796  size_t& bufferLength) const;
2797 
2809  MamaMsg* detach (void);
2810 
2811 
2815  bool isFromInbox (void) const;
2816 
2817  mama_seqnum_t getSeqNum (void) const;
2818 
2823  bool getIsDefinitelyDuplicate (void) const;
2824 
2830  bool getIsPossiblyDuplicate (void) const;
2831 
2836  bool getIsPossiblyDelayed (void) const;
2837 
2842  bool getIsDefinitelyDelayed (void) const;
2843 
2847  bool getIsOutOfSequence (void) const;
2848 
2857  bool setNewBuffer (
2858  void* buffer,
2859  mama_size_t size);
2860 
2865  void* getNativeHandle (void) const;
2866 
2868  void createFromMsg (
2869  mamaMsg msg,
2870  bool destroyMsg = false) const;
2871 
2876  void setMsg (
2877  mamaMsg msg);
2878 
2882  const mamaMsg& getUnderlyingMsg (void) const;
2883 
2887  mamaMsg getUnderlyingMsg (void);
2888 
2889 
2895  MAMAIgnoreDeprecatedOpen
2896  mamaPayloadType getPayloadType (void) const;
2897  MAMAIgnoreDeprecatedClose
2898 
2903  void* getNativeMsg (void);
2904 
2913  MamaMsgField& begin (
2914  MamaMsgIterator& theIterator) const;
2915 
2919  mamaMsgReply getReplyHandle (void) const;
2920 
2924  static void destroyReplyHandle (
2925  mamaMsgReply replyHandle);
2926 
2927  private:
2928  mutable mamaMsg mMsg;
2929  mutable bool mDestroy;
2930  mutable MamaMsg** mVectorMsg;
2931  mutable size_t mVectorMsgSize;
2932  mutable size_t mVectorMsgAllocSize;
2933  mutable MamaMsg* mTmpMsg;
2934  mutable const char* mString;
2935  mutable MamaMsgField* mMsgField;
2936  mutable MamaMsg* mCopyMsg;
2937 
2938  void setDestroyCMsg (bool destroy);
2939  void cleanup ();
2940  void growVector (size_t newSize) const;
2941  void growCvector (size_t newSize) const;
2942  };
2943 
2944 } // namespace Wombat
2945 #endif // MAMA_MSG_CPP_H__
The MamaDictionary class maps field identifiers (FIDs) to human readable strings. ...
Definition: MamaDictionary.h:41
Callback class for iterating over all fields in a message.
Definition: MamaMsgFieldIterator.h:34
MAMA message representation.
Definition: MamaMsg.h:112
mamaMsgIterator myImpl
Definition: MamaMsg.h:72
Definition: MamaConnection.h:29
Iterator class for mamaMsg.
Definition: MamaMsg.h:52
MamaPrice is a special data type for representing floating point numbers that often require special f...
Definition: MamaPrice.h:43
A date/time representation with additional hints for precision, advanced output formatting and suppor...
Definition: MamaDateTime.h:67
MamaMsgField mMsgField
Definition: MamaMsg.h:73
MamaMsg field representation.
Definition: MamaMsgField.h:43
The MamaFieldDescriptor class describes a field within a MamaDictionary
Definition: MamaFieldDescriptor.h:39