OpenMAMA
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 WombatMsg;
37  class MamaMsg;
38 
53  class MAMACPPExpDLL MamaMsgIterator
54  {
55  public:
56  MamaMsgIterator (const MamaDictionary* dictionary);
57  MamaMsgIterator ();
58  MamaMsgIterator (const MamaMsgIterator& copy);
59  ~MamaMsgIterator ();
60 
61  void SetDict (const MamaDictionary* dictionary);
62  MamaMsgIterator& operator= (const MamaMsgIterator&);
63 
64  bool operator==(const MamaMsgIterator&) const;
65  bool operator!=(const MamaMsgIterator&) const;
66 
67  MamaMsgField& operator*();
68  MamaMsgField* operator->();
69  MamaMsgIterator& operator++();
70 
71  protected:
72  friend class MamaMsg;
73  mamaMsgIterator myImpl;
75  };
76 
113  class MAMACPPExpDLL MamaMsg
114  {
115  public:
116  ~MamaMsg ();
117 
118  MamaMsg (void);
119  MamaMsg (const MamaMsg& mm);
120  MamaMsg (WombatMsg& wm);
121 
129  void create (void);
130 
136  void createForPayload (const char id);
137 
143  void createForPayloadBridge (mamaPayloadBridge payloadBridge);
144 
145 
146 
151  void createForWombatMsg (void);
152 
172  void createFromBuffer (
173  const void* buffer,
174  size_t bufferLength);
175 
187  void createForBridgeFromBuffer (
188  const void* buffer,
189  size_t bufferLength,
190  mamaBridge bridge);
191 
196  void copy (const MamaMsg& rhs);
197 
208  MamaMsg* getTempCopy();
209  void applyMsg (const MamaMsg& msg);
210 
214  void clear (void);
215 
222  size_t getNumFields (void) const;
223 
232  size_t getByteSize (void) const;
233 
240  bool getBoolean (
241  const char* name,
242  mama_fid_t fid) const;
243 
249  bool getBoolean (
250  const MamaFieldDescriptor* fieldDesc) const;
251 
258  char getChar (
259  const char* name,
260  mama_fid_t fid) const;
261 
267  char getChar (
268  const MamaFieldDescriptor* fieldDesc) const;
269 
276  mama_i8_t getI8 (
277  const char* name,
278  mama_fid_t fid) const;
279 
285  mama_i8_t getI8 (
286  const MamaFieldDescriptor* fieldDesc) const;
287 
294  mama_u8_t getU8 (
295  const char* name,
296  mama_fid_t fid) const;
297 
303  mama_u8_t getU8 (
304  const MamaFieldDescriptor* fieldDesc) const;
305 
312  mama_i16_t getI16 (
313  const char* name,
314  mama_fid_t fid) const;
315 
321  mama_i16_t getI16 (
322  const MamaFieldDescriptor* fieldDesc) const;
323 
330  mama_u16_t getU16 (
331  const char* name,
332  mama_fid_t fid) const;
333 
339  mama_u16_t getU16 (
340  const MamaFieldDescriptor* fieldDesc) const;
341 
348  mama_i32_t getI32 (
349  const char* name,
350  mama_fid_t fid) const;
351 
357  mama_i32_t getI32 (
358  const MamaFieldDescriptor* fieldDesc) const;
359 
366  mama_u32_t getU32 (
367  const char* name,
368  mama_fid_t fid) const;
369 
375  mama_u32_t getU32 (
376  const MamaFieldDescriptor* fieldDesc) const;
377 
385  mama_i64_t getI64 (
386  const char* name,
387  mama_fid_t fid) const;
388 
394  mama_i64_t getI64 (
395  const MamaFieldDescriptor* fieldDesc) const;
396 
403  mama_u64_t getU64 (
404  const char* name,
405  mama_fid_t fid) const;
406 
412  mama_u64_t getU64 (
413  const MamaFieldDescriptor* fieldDesc) const;
414 
422  mama_f32_t getF32 (
423  const char* name,
424  mama_fid_t fid) const;
425 
431  mama_f32_t getF32 (
432  const MamaFieldDescriptor* fieldDesc) const;
433 
441  mama_f64_t getF64 (
442  const char* name,
443  mama_fid_t fid) const;
444 
450  mama_f64_t getF64 (
451  const MamaFieldDescriptor* fieldDesc) const;
452 
461  const char* getString (
462  const char* name,
463  mama_fid_t fid) const;
464 
472  const char* getString (
473  const MamaFieldDescriptor* fieldDesc) const;
474 
482  const void* getOpaque (
483  const char* name,
484  mama_fid_t fid,
485  size_t& size) const;
486 
493  const void* getOpaque (
494  const MamaFieldDescriptor* fieldDesc,
495  size_t& size) const;
496 
503  void getDateTime (
504  const char* name,
505  mama_fid_t fid,
506  MamaDateTime& result) const;
507 
513  void getDateTime (
514  const MamaFieldDescriptor* fieldDesc,
515  MamaDateTime& result) const;
516 
523  void getPrice (
524  const char* name,
525  mama_fid_t fid,
526  MamaPrice& result) const;
527 
533  void getPrice (
534  const MamaFieldDescriptor* fieldDesc,
535  MamaPrice& result) const;
536 
543  const MamaMsg* getMsg (
544  const char* name,
545  mama_fid_t fid) const;
546 
552  const MamaMsg* getMsg (
553  const MamaFieldDescriptor* fieldDesc) const;
554 
563  const char* getVectorChar (
564  const char* name,
565  mama_fid_t fid,
566  size_t& resultLen) const;
567 
575  const char* getVectorChar (
576  const MamaFieldDescriptor* fieldDesc,
577  size_t& resultLen) const;
578 
586  const mama_i8_t* getVectorI8 (
587  const char* name,
588  mama_fid_t fid,
589  size_t& resultLen) const;
590 
598  const mama_i8_t* getVectorI8 (
599  const MamaFieldDescriptor* fieldDesc,
600  size_t& resultLen) const;
601 
609  const mama_u8_t* getVectorU8 (
610  const char* name,
611  mama_fid_t fid,
612  size_t& resultLen) const;
613 
621  const mama_u8_t* getVectorU8 (
622  const MamaFieldDescriptor* fieldDesc,
623  size_t& resultLen) const;
624 
632  const mama_i16_t* getVectorI16 (
633  const char* name,
634  mama_fid_t fid,
635  size_t& resultLen) const;
636 
644  const mama_i16_t* getVectorI16 (
645  const MamaFieldDescriptor* fieldDesc,
646  size_t& resultLen) const;
647 
655  const mama_u16_t* getVectorU16 (
656  const char* name,
657  mama_fid_t fid,
658  size_t& resultLen) const;
659 
667  const mama_u16_t* getVectorU16 (
668  const MamaFieldDescriptor* fieldDesc,
669  size_t& resultLen) const;
670 
678  const mama_i32_t* getVectorI32 (
679  const char* name,
680  mama_fid_t fid,
681  size_t& resultLen) const;
682 
690  const mama_i32_t* getVectorI32 (
691  const MamaFieldDescriptor* fieldDesc,
692  size_t& resultLen) const;
693 
701  const mama_u32_t* getVectorU32 (
702  const char* name,
703  mama_fid_t fid,
704  size_t& resultLen) const;
705 
713  const mama_u32_t* getVectorU32 (
714  const MamaFieldDescriptor* fieldDesc,
715  size_t& resultLen) const;
716 
724  const mama_i64_t* getVectorI64 (
725  const char* name,
726  mama_fid_t fid,
727  size_t& resultLen) const;
728 
736  const mama_i64_t* getVectorI64 (
737  const MamaFieldDescriptor* fieldDesc,
738  size_t& resultLen) const;
739 
747  const mama_u64_t* getVectorU64 (
748  const char* name,
749  mama_fid_t fid,
750  size_t& resultLen) const;
751 
759  const mama_u64_t* getVectorU64 (
760  const MamaFieldDescriptor* fieldDesc,
761  size_t& resultLen) const;
762 
770  const mama_f32_t* getVectorF32 (
771  const char* name,
772  mama_fid_t fid,
773  size_t& resultLen) const;
774 
782  const mama_f32_t* getVectorF32 (
783  const MamaFieldDescriptor* fieldDesc,
784  size_t& resultLen) const;
785 
793  const mama_f64_t* getVectorF64 (
794  const char* name,
795  mama_fid_t fid,
796  size_t& resultLen) const;
797 
805  const mama_f64_t* getVectorF64 (
806  const MamaFieldDescriptor* fieldDesc,
807  size_t& resultLen) const;
808 
816  const MamaMsg** getVectorMsg (
817  const char* name,
818  mama_fid_t fid,
819  size_t& resultLen) const;
820 
827  const MamaMsg** getVectorMsg (
828  const MamaFieldDescriptor* fieldDesc,
829  size_t& resultLen) const;
830 
840  const char** getVectorString (
841  const char* name,
842  mama_fid_t fid,
843  size_t& resultLen) const;
844 
853  const char** getVectorString (
854  const MamaFieldDescriptor* fieldDesc,
855  size_t& resultLen) const;
856 
857 
865  bool tryBoolean (
866  const char* name,
867  mama_fid_t fid,
868  bool& result) const;
869 
876  bool tryBoolean (
877  const MamaFieldDescriptor* field,
878  bool& result) const;
879 
887  bool tryChar (
888  const char* name,
889  mama_fid_t fid,
890  char& result) const;
891 
898  bool tryChar (
899  const MamaFieldDescriptor* field,
900  char& result) const;
901 
909  bool tryI8 (
910  const char* name,
911  mama_fid_t fid,
912  mama_i8_t& result) const;
913 
920  bool tryI8 (
921  const MamaFieldDescriptor* field,
922  mama_i8_t& result) const;
923 
931  bool tryU8 (
932  const char* name,
933  mama_fid_t fid,
934  mama_u8_t& result) const;
935 
942  bool tryU8 (
943  const MamaFieldDescriptor* field,
944  mama_u8_t& result) const;
945 
953  bool tryI16 (
954  const char* name,
955  mama_fid_t fid,
956  mama_i16_t& result) const;
957 
964  bool tryI16 (
965  const MamaFieldDescriptor* field,
966  mama_i16_t& result) const;
967 
975  bool tryU16 (
976  const char* name,
977  mama_fid_t fid,
978  mama_u16_t& result) const;
979 
986  bool tryU16 (
987  const MamaFieldDescriptor* field,
988  mama_u16_t& result) const;
989 
997  bool tryI32 (
998  const char* name,
999  mama_fid_t fid,
1000  mama_i32_t& result) const;
1001 
1008  bool tryI32 (
1009  const MamaFieldDescriptor* field,
1010  mama_i32_t& result) const;
1011 
1019  bool tryU32 (
1020  const char* name,
1021  mama_fid_t fid,
1022  mama_u32_t& result) const;
1023 
1030  bool tryU32 (
1031  const MamaFieldDescriptor* field,
1032  mama_u32_t& result) const;
1033 
1041  bool tryI64 (
1042  const char* name,
1043  mama_fid_t fid,
1044  mama_i64_t& result) const;
1045 
1052  bool tryI64 (
1053  const MamaFieldDescriptor* field,
1054  mama_i64_t& result) const;
1055 
1063  bool tryU64 (
1064  const char* name,
1065  mama_fid_t fid,
1066  mama_u64_t& result) const;
1067 
1074  bool tryU64 (
1075  const MamaFieldDescriptor* field,
1076  mama_u64_t& result) const;
1077 
1086  bool tryF32 (
1087  const char* name,
1088  mama_fid_t fid,
1089  mama_f32_t& result) const;
1090 
1098  bool tryF32 (
1099  const MamaFieldDescriptor* field,
1100  mama_f32_t& result) const;
1101 
1110  bool tryF64 (
1111  const char* name,
1112  mama_fid_t fid,
1113  mama_f64_t& result) const;
1114 
1122  bool tryF64 (
1123  const MamaFieldDescriptor* field,
1124  mama_f64_t& result) const;
1125 
1133  bool tryString (
1134  const char* name,
1135  mama_fid_t fid,
1136  const char*& result) const;
1137 
1144  bool tryString (
1145  const MamaFieldDescriptor* field,
1146  const char*& result) const;
1147 
1155  bool tryDateTime (
1156  const char* name,
1157  mama_fid_t fid,
1158  MamaDateTime& result) const;
1159 
1166  bool tryDateTime (
1167  const MamaFieldDescriptor* field,
1168  MamaDateTime& result) const;
1169 
1177  bool tryPrice (
1178  const char* name,
1179  mama_fid_t fid,
1180  MamaPrice& result) const;
1181 
1188  bool tryPrice (
1189  const MamaFieldDescriptor* field,
1190  MamaPrice& result) const;
1191 
1199  bool tryMsg (
1200  const char* name,
1201  mama_fid_t fid,
1202  const MamaMsg*& result) const;
1203 
1210  bool tryMsg (
1211  const MamaFieldDescriptor* field,
1212  const MamaMsg*& result) const;
1213 
1222  bool tryOpaque (
1223  const char* name,
1224  mama_fid_t fid,
1225  const void*& result,
1226  size_t& size) const;
1227 
1235  bool tryOpaque (
1236  const MamaFieldDescriptor* field,
1237  const void*& result,
1238  size_t& size) const;
1239 
1249  bool tryVectorChar (
1250  const char* name,
1251  mama_fid_t fid,
1252  const char*& result,
1253  size_t& resultLen) const;
1254 
1263  bool tryVectorChar (
1264  const MamaFieldDescriptor* fieldDesc,
1265  const char*& result,
1266  size_t& resultLen) const;
1267 
1276  bool tryVectorI8 (
1277  const char* name,
1278  mama_fid_t fid,
1279  const mama_i8_t*& result,
1280  size_t& resultLen) const;
1281 
1290  bool tryVectorI8 (
1291  const MamaFieldDescriptor* fieldDesc,
1292  const mama_i8_t*& result,
1293  size_t& resultLen) const;
1294 
1303  bool tryVectorU8 (
1304  const char* name,
1305  mama_fid_t fid,
1306  const mama_u8_t*& result,
1307  size_t& resultLen) const;
1308 
1317  bool tryVectorU8 (
1318  const MamaFieldDescriptor* fieldDesc,
1319  const mama_u8_t*& result,
1320  size_t& resultLen) const;
1321 
1330  bool tryVectorI16 (
1331  const char* name,
1332  mama_fid_t fid,
1333  const mama_i16_t*& result,
1334  size_t& resultLen) const;
1335 
1344  bool tryVectorI16 (
1345  const MamaFieldDescriptor* fieldDesc,
1346  const mama_i16_t*& result,
1347  size_t& resultLen) const;
1348 
1357  bool tryVectorU16 (
1358  const char* name,
1359  mama_fid_t fid,
1360  const mama_u16_t*& result,
1361  size_t& resultLen) const;
1362 
1371  bool tryVectorU16 (
1372  const MamaFieldDescriptor* fieldDesc,
1373  const mama_u16_t*& result,
1374  size_t& resultLen) const;
1375 
1384  bool tryVectorI32 (
1385  const char* name,
1386  mama_fid_t fid,
1387  const mama_i32_t*& result,
1388  size_t& resultLen) const;
1389 
1398  bool tryVectorI32 (
1399  const MamaFieldDescriptor* fieldDesc,
1400  const mama_i32_t*& result,
1401  size_t& resultLen) const;
1402 
1411  bool tryVectorU32 (
1412  const char* name,
1413  mama_fid_t fid,
1414  const mama_u32_t*& result,
1415  size_t& resultLen) const;
1416 
1425  bool tryVectorU32 (
1426  const MamaFieldDescriptor* fieldDesc,
1427  const mama_u32_t*& result,
1428  size_t& resultLen) const;
1429 
1438  bool tryVectorI64 (
1439  const char* name,
1440  mama_fid_t fid,
1441  const mama_i64_t*& result,
1442  size_t& resultLen) const;
1443 
1452  bool tryVectorI64 (
1453  const MamaFieldDescriptor* fieldDesc,
1454  const mama_i64_t*& result,
1455  size_t& resultLen) const;
1456 
1465  bool tryVectorU64 (
1466  const char* name,
1467  mama_fid_t fid,
1468  const mama_u64_t*& result,
1469  size_t& resultLen) const;
1470 
1479  bool tryVectorU64 (
1480  const MamaFieldDescriptor* fieldDesc,
1481  const mama_u64_t*& result,
1482  size_t& resultLen) const;
1483 
1492  bool tryVectorF32 (
1493  const char* name,
1494  mama_fid_t fid,
1495  const mama_f32_t*& result,
1496  size_t& resultLen) const;
1497 
1506  bool tryVectorF32 (
1507  const MamaFieldDescriptor* fieldDesc,
1508  const mama_f32_t*& result,
1509  size_t& resultLen) const;
1510 
1519  bool tryVectorF64 (
1520  const char* name,
1521  mama_fid_t fid,
1522  const mama_f64_t*& result,
1523  size_t& resultLen) const;
1524 
1533  bool tryVectorF64 (
1534  const MamaFieldDescriptor* fieldDesc,
1535  const mama_f64_t*& result,
1536  size_t& resultLen) const;
1537 
1538 
1547  bool tryVectorString (
1548  const char* name,
1549  mama_fid_t fid,
1550  const char**& result,
1551  size_t& resultLen) const;
1552 
1560  bool tryVectorString (
1561  const MamaFieldDescriptor* fieldDesc,
1562  const char**& result,
1563  size_t& resultLen) const;
1572  bool tryVectorMsg (
1573  const char* name,
1574  mama_fid_t fid,
1575  const MamaMsg**& result,
1576  size_t& resultLen) const;
1577 
1585  bool tryVectorMsg (
1586  const MamaFieldDescriptor* fieldDesc,
1587  const MamaMsg**& result,
1588  size_t& resultLen) const;
1589 
1597  void addBoolean (
1598  const char* name,
1599  mama_fid_t fid,
1600  bool value);
1601 
1608  void addBoolean (
1609  const MamaFieldDescriptor* fieldDesc,
1610  bool value);
1611 
1619  void addChar (
1620  const char* name,
1621  mama_fid_t fid,
1622  char value);
1623 
1630  void addChar (
1631  const MamaFieldDescriptor* fieldDesc,
1632  char value);
1633 
1641  void addI8 (
1642  const char* name,
1643  mama_fid_t fid,
1644  mama_i8_t value);
1645 
1652  void addI8 (
1653  const MamaFieldDescriptor* fieldDesc,
1654  mama_i8_t value);
1655 
1663  void addI16 (
1664  const char* name,
1665  mama_fid_t fid,
1666  mama_i16_t value);
1667 
1674  void addI16 (
1675  const MamaFieldDescriptor* fieldDesc,
1676  mama_i16_t value);
1677 
1685  void addI32 (
1686  const char* name,
1687  mama_fid_t fid,
1688  mama_i32_t value);
1689 
1696  void addI32 (
1697  const MamaFieldDescriptor* fieldDesc,
1698  mama_i32_t value);
1699 
1707  void addI64 (
1708  const char* name,
1709  mama_fid_t fid,
1710  mama_i64_t value);
1711 
1718  void addI64 (
1719  const MamaFieldDescriptor* fieldDesc,
1720  mama_i64_t value);
1721 
1729  void addU8 (
1730  const char* name,
1731  mama_fid_t fid,
1732  mama_u8_t value);
1733 
1740  void addU8 (
1741  const MamaFieldDescriptor* fieldDesc,
1742  mama_u8_t value);
1743 
1751  void addU16 (
1752  const char* name,
1753  mama_fid_t fid,
1754  mama_u16_t value);
1755 
1762  void addU16 (
1763  const MamaFieldDescriptor* fieldDesc,
1764  mama_u16_t value);
1765 
1773  void addU32 (
1774  const char* name,
1775  mama_fid_t fid,
1776  mama_u32_t value);
1777 
1784  void addU32 (
1785  const MamaFieldDescriptor* fieldDesc,
1786  mama_u32_t value);
1787 
1795  void addU64 (
1796  const char* name,
1797  mama_fid_t fid,
1798  mama_u64_t value);
1799 
1806  void addU64 (
1807  const MamaFieldDescriptor* fieldDesc,
1808  mama_u64_t value);
1809 
1817  void addF32 (
1818  const char* name,
1819  mama_fid_t fid,
1820  mama_f32_t value);
1821 
1828  void addF32 (
1829  const MamaFieldDescriptor* fieldDesc,
1830  mama_f32_t value);
1831 
1839  void addF64 (
1840  const char* name,
1841  mama_fid_t fid,
1842  mama_f64_t value);
1843 
1850  void addF64 (
1851  const MamaFieldDescriptor* fieldDesc,
1852  mama_f64_t value);
1853 
1861  void addString (
1862  const char* name,
1863  mama_fid_t fid,
1864  const char* value);
1865 
1872  void addString (
1873  const MamaFieldDescriptor* fieldDesc,
1874  const char* value);
1875 
1883  void addDateTime (
1884  const char* name,
1885  mama_fid_t fid,
1886  const MamaDateTime& value);
1887 
1894  void addDateTime (
1895  const MamaFieldDescriptor* fieldDesc,
1896  const MamaDateTime& value);
1897 
1905  void addPrice (
1906  const char* name,
1907  mama_fid_t fid,
1908  const MamaPrice& value);
1909 
1916  void addPrice (
1917  const MamaFieldDescriptor* fieldDesc,
1918  const MamaPrice& value);
1919 
1928  void addOpaque (
1929  const char* name,
1930  mama_fid_t fid,
1931  const void* value,
1932  size_t size);
1933 
1941  void addOpaque (
1942  const MamaFieldDescriptor* fieldDesc,
1943  const void* value,
1944  size_t size);
1945 
1952  void addMsg(
1953  const char* name,
1954  mama_fid_t fid,
1955  MamaMsg* value);
1956 
1962  void addMsg (
1963  const MamaFieldDescriptor* fieldDesc,
1964  MamaMsg* value);
1965 
1974  void addVectorChar (
1975  const char* name,
1976  mama_fid_t fid,
1977  const char vectorValues[],
1978  size_t vectorLen);
1979 
1987  void addVectorChar (
1988  const MamaFieldDescriptor* fieldDesc,
1989  const char vectorValues[],
1990  size_t vectorLen);
1991 
1999  void addVectorI8 (
2000  const char* name,
2001  mama_fid_t fid,
2002  const mama_i8_t vectorValues[],
2003  size_t vectorLen);
2004 
2011  void addVectorI8 (
2012  const MamaFieldDescriptor* fieldDesc,
2013  const mama_i8_t vectorValues[],
2014  size_t vectorLen);
2015 
2023  void addVectorU8 (
2024  const char* name,
2025  mama_fid_t fid,
2026  const mama_u8_t vectorValues[],
2027  size_t vectorLen);
2028 
2035  void addVectorU8 (
2036  const MamaFieldDescriptor* fieldDesc,
2037  const mama_u8_t vectorValues[],
2038  size_t vectorLen);
2039 
2047  void addVectorI16 (
2048  const char* name,
2049  mama_fid_t fid,
2050  const mama_i16_t vectorValues[],
2051  size_t vectorLen);
2052 
2059  void addVectorI16 (
2060  const MamaFieldDescriptor* fieldDesc,
2061  const mama_i16_t vectorValues[],
2062  size_t vectorLen);
2063 
2071  void addVectorU16 (
2072  const char* name,
2073  mama_fid_t fid,
2074  const mama_u16_t vectorValues[],
2075  size_t vectorLen);
2076 
2083  void addVectorU16 (
2084  const MamaFieldDescriptor* fieldDesc,
2085  const mama_u16_t vectorValues[],
2086  size_t vectorLen);
2087 
2095  void addVectorI32 (
2096  const char* name,
2097  mama_fid_t fid,
2098  const mama_i32_t vectorValues[],
2099  size_t vectorLen);
2100 
2107  void addVectorI32 (
2108  const MamaFieldDescriptor* fieldDesc,
2109  const mama_i32_t vectorValues[],
2110  size_t vectorLen);
2111 
2119  void addVectorU32 (
2120  const char* name,
2121  mama_fid_t fid,
2122  const mama_u32_t vectorValues[],
2123  size_t vectorLen);
2124 
2131  void addVectorU32 (
2132  const MamaFieldDescriptor* fieldDesc,
2133  const mama_u32_t vectorValues[],
2134  size_t vectorLen);
2135 
2143  void addVectorI64 (
2144  const char* name,
2145  mama_fid_t fid,
2146  const mama_i64_t vectorValues[],
2147  size_t vectorLen);
2148 
2155  void addVectorI64 (
2156  const MamaFieldDescriptor* fieldDesc,
2157  const mama_i64_t vectorValues[],
2158  size_t vectorLen);
2159 
2167  void addVectorU64 (
2168  const char* name,
2169  mama_fid_t fid,
2170  const mama_u64_t vectorValues[],
2171  size_t vectorLen);
2172 
2179  void addVectorU64 (
2180  const MamaFieldDescriptor* fieldDesc,
2181  const mama_u64_t vectorValues[],
2182  size_t vectorLen);
2183 
2191  void addVectorF32 (
2192  const char* name,
2193  mama_fid_t fid,
2194  const mama_f32_t vectorValues[],
2195  size_t vectorLen);
2196 
2203  void addVectorF32 (
2204  const MamaFieldDescriptor* fieldDesc,
2205  const mama_f32_t vectorValues[],
2206  size_t vectorLen);
2207 
2215  void addVectorF64 (
2216  const char* name,
2217  mama_fid_t fid,
2218  const mama_f64_t vectorValues[],
2219  size_t vectorLen);
2220 
2227  void addVectorF64 (
2228  const MamaFieldDescriptor* fieldDesc,
2229  const mama_f64_t vectorValues[],
2230  size_t vectorLen);
2231 
2239  void addVectorString (
2240  const char* name,
2241  mama_fid_t fid,
2242  const char* vectorValues[],
2243  size_t vectorLen);
2244 
2251  void addVectorString (
2252  const MamaFieldDescriptor* fieldDesc,
2253  const char* vectorValues[],
2254  size_t vectorLen);
2255 
2263  void addVectorMsg (
2264  const char* name,
2265  mama_fid_t fid,
2266  MamaMsg* vectorValues[],
2267  size_t vectorLen);
2268 
2275  void addVectorMsg (
2276  const MamaFieldDescriptor* fieldDesc,
2277  MamaMsg* vectorValues[],
2278  size_t vectorLen);
2279 
2280 
2289  void updateBoolean (
2290  const char* name,
2291  mama_fid_t fid,
2292  bool value);
2293 
2301  void updateBoolean (
2302  const MamaFieldDescriptor* fieldDesc,
2303  bool value);
2304 
2313  void updateChar (
2314  const char* name,
2315  mama_fid_t fid,
2316  const char value);
2317 
2325  void updateChar (
2326  const MamaFieldDescriptor* fieldDesc,
2327  const char value);
2328 
2337  void updateI8 (
2338  const char* name,
2339  mama_fid_t fid,
2340  const mama_i8_t value);
2341 
2349  void updateI8 (
2350  const MamaFieldDescriptor* fieldDesc,
2351  const mama_i8_t value);
2352 
2361  void updateU8 (
2362  const char* name,
2363  mama_fid_t fid,
2364  const mama_u8_t value);
2365 
2373  void updateU8 (
2374  const MamaFieldDescriptor* fieldDesc,
2375  const mama_u8_t value);
2376 
2385  void updateI16 (
2386  const char* name,
2387  mama_fid_t fid,
2388  const mama_i16_t value);
2389 
2397  void updateI16 (
2398  const MamaFieldDescriptor* fieldDesc,
2399  const mama_i16_t value);
2400 
2409  void updateU16 (
2410  const char* name,
2411  mama_fid_t fid,
2412  const mama_u16_t value);
2413 
2421  void updateU16 (
2422  const MamaFieldDescriptor* fieldDesc,
2423  const mama_u16_t value);
2424 
2433  void updateI32 (
2434  const char* name,
2435  mama_fid_t fid,
2436  const mama_i32_t value);
2437 
2445  void updateI32 (
2446  const MamaFieldDescriptor* fieldDesc,
2447  const mama_i32_t value);
2448 
2457  void updateU32 (
2458  const char* name,
2459  mama_fid_t fid,
2460  const mama_u32_t value);
2461 
2469  void updateU32 (
2470  const MamaFieldDescriptor* fieldDesc,
2471  const mama_u32_t value);
2472 
2481  void updateI64 (
2482  const char* name,
2483  mama_fid_t fid,
2484  const mama_i64_t value);
2485 
2493  void updateI64 (
2494  const MamaFieldDescriptor* fieldDesc,
2495  const mama_i64_t value);
2496 
2505  void updateU64 (
2506  const char* name,
2507  mama_fid_t fid,
2508  const mama_u64_t value);
2509 
2517  void updateU64 (
2518  const MamaFieldDescriptor* fieldDesc,
2519  const mama_u64_t value);
2520 
2529  void updateF32 (
2530  const char* name,
2531  mama_fid_t fid,
2532  const mama_f32_t value);
2533 
2541  void updateF32 (
2542  const MamaFieldDescriptor* fieldDesc,
2543  const mama_f32_t value);
2544 
2553  void updateF64 (
2554  const char* name,
2555  mama_fid_t fid,
2556  const mama_f64_t value);
2557 
2565  void updateF64 (
2566  const MamaFieldDescriptor* fieldDesc,
2567  const mama_f64_t value);
2568 
2577  void updateString (
2578  const char* name,
2579  mama_fid_t fid,
2580  const char* value);
2581 
2589  void updateString (
2590  const MamaFieldDescriptor* fieldDesc,
2591  const char* value);
2592 
2602  void updateOpaque (
2603  const char* name,
2604  mama_fid_t fid,
2605  const void* value,
2606  size_t size);
2607 
2616  void updateOpaque (
2617  const MamaFieldDescriptor* fieldDesc,
2618  const void* value,
2619  size_t size);
2620 
2629  void updateDateTime (
2630  const char* name,
2631  mama_fid_t fid,
2632  const MamaDateTime& value);
2633 
2641  void updateDateTime (
2642  const MamaFieldDescriptor* fieldDesc,
2643  const MamaDateTime& value);
2644 
2653  void updatePrice (
2654  const char* name,
2655  mama_fid_t fid,
2656  const MamaPrice& value);
2657 
2665  void updatePrice (
2666  const MamaFieldDescriptor* fieldDesc,
2667  const MamaPrice& value);
2668 
2672  mamaMsgType getType (void) const;
2673 
2677  const char* getMsgTypeName (void) const;
2678 
2682  mamaMsgStatus getStatus (void) const;
2683 
2687  const char* getMsgStatusString (void) const;
2688 
2692  void iterateFields (MamaMsgFieldIterator& iterator,
2693  const MamaDictionary* dictionary,
2694  void* closure) const;
2695 
2703  const char* toString () const;
2704 
2712  void getFieldAsString (
2713  const char* name,
2714  mama_fid_t fid,
2715  char* result,
2716  size_t maxResultLen) const;
2717 
2724  void getFieldAsString (
2725  const MamaFieldDescriptor* fieldDesc,
2726  char* result,
2727  size_t maxResultLen) const;
2728 
2734  MamaMsgField* getField (
2735  const char* name,
2736  mama_fid_t fid) const;
2737 
2742  MamaMsgField* getField (
2743  const MamaFieldDescriptor* fieldDesc) const;
2744 
2751  bool tryField (
2752  const char* name,
2753  mama_fid_t fid) const;
2754 
2760  bool tryField (
2761  const MamaFieldDescriptor* fieldDesc) const;
2762 
2769  bool tryField (
2770  const char* name,
2771  mama_fid_t fid,
2772  MamaMsgField* result) const;
2773 
2779  bool tryField (
2780  const MamaFieldDescriptor* fieldDesc,
2781  MamaMsgField* result) const;
2782 
2791  bool tryFieldAsString (
2792  const char* name,
2793  mama_fid_t fid,
2794  char* result,
2795  size_t maxResultLen) const;
2796 
2804  bool tryFieldAsString (
2805  const MamaFieldDescriptor* fieldDesc,
2806  char* result,
2807  size_t maxResultLen) const;
2808 
2817  void getByteBuffer (
2818  const void*& buffer,
2819  size_t& bufferLength) const;
2820 
2829  void createForBridge (
2830  mamaBridge bridgeImpl);
2831 
2843  MamaMsg* detach (void);
2844 
2845 
2849  bool isFromInbox (void) const;
2850 
2851  mama_seqnum_t getSeqNum (void) const;
2852 
2857  bool getIsDefinitelyDuplicate (void) const;
2858 
2864  bool getIsPossiblyDuplicate (void) const;
2865 
2870  bool getIsPossiblyDelayed (void) const;
2871 
2876  bool getIsDefinitelyDelayed (void) const;
2877 
2881  bool getIsOutOfSequence (void) const;
2882 
2891  bool setNewBuffer (
2892  void* buffer,
2893  mama_size_t size);
2894 
2899  void* getNativeHandle (void) const;
2900 
2902  void createFromMsg (
2903  mamaMsg msg,
2904  bool destroyMsg = false) const;
2905 
2910  void setMsg (
2911  mamaMsg msg);
2912 
2916  const mamaMsg& getUnderlyingMsg (void) const;
2917 
2921  mamaMsg getUnderlyingMsg (void);
2922 
2923 
2929  mamaPayloadType getPayloadType (void) const;
2930 
2935  void* getNativeMsg (void);
2936 
2945  MamaMsgField& begin (
2946  MamaMsgIterator& theIterator) const;
2947 
2951  mamaMsgReply getReplyHandle (void) const;
2952 
2956  static void destroyReplyHandle (
2957  mamaMsgReply replyHandle);
2958 
2959  private:
2960  mutable mamaMsg mMsg;
2961  mutable bool mDestroy;
2962  mutable MamaMsg** mVectorMsg;
2963  mutable size_t mVectorMsgSize;
2964  mutable size_t mVectorMsgAllocSize;
2965  mutable mamaMsg* mCvectorMsg;
2966  mutable size_t mCvectorMsgAllocSize;
2967  mutable MamaMsg* mTmpMsg;
2968  mutable const char* mString;
2969  mutable MamaMsgField* mMsgField;
2970  mutable MamaMsg* mCopyMsg;
2971 
2972  void setDestroyCMsg (bool destroy);
2973  void cleanup ();
2974  void growVector (size_t newSize) const;
2975  void growCvector (size_t newSize) const;
2976  };
2977 
2978 } // namespace Wombat
2979 #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:113
mamaMsgIterator myImpl
Definition: MamaMsg.h:73
Definition: MamaBasicSubscription.h:27
Iterator class for mamaMsg.
Definition: MamaMsg.h:53
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:74
MamaMsg field representation.
Definition: MamaMsgField.h:45
The MamaFieldDescriptor class describes a field within a MamaDictionary
Definition: MamaFieldDescriptor.h:39


© 2012 Linux Foundation