meanwhile: mw_common.h File Reference

# mw_common.h File Reference

## Detailed Description

Common data types and functions for handling those types.

Functions in this file all fit into similar naming conventions of `TYPE_ACTION` as per the activity they perform. The following actions are available:

`void TYPE_put(struct mwPutBuffer *b, TYPE *val)`

- marshalls val onto the buffer b. The buffer will grow as necessary to fit all the data put into it. For guint16, guint32, and gboolean, `TYPE val` is used instead of `TYPE \*val`.

`void TYPE_get(struct mwGetBuffer *b, TYPE *val)`

- unmarshals val from the buffer b. Failure (due to lack of insufficient remaining buffer) is indicated in the buffer's error field. A call to a _get function with a buffer in an error state has to effect.

`void TYPE_clear(TYPE *val)`

- zeros and frees internal members of val, but does not free val itself. Needs to be called before free-ing any complex types which have been unmarshalled from a TYPE_get or populated from a TYPE_clone call to prevent memory leaks.

`void TYPE_clone(TYPE *to, TYPE *from)`

- copies/clones members of from into to. May result in memory allocation for some types. Note that to is not cleared before-hand, it must already be in a pristine condition.

`gboolean TYPE_equal(TYPE *y, TYPE *z)`

- simple equality test.

`#include <glib.h>`

Go to the source code of this file.

## Data Structures
struct | mwAwareIdBlock
struct | mwAwareSnapshot
struct | mwEncryptItem
| encryption blocks More...
struct | mwIdBlock
struct | mwLoginInfo
struct | mwOpaque
| A length of binary data, not null-terminated. More...
struct | mwPrivacyInfo
struct | mwUserItem
struct | mwUserStatus
## Enumerations
enum | mwAwareType { mwAware_USER = 0x0002, mwAware_GROUP = 0x0003, mwAware_SERVER = 0x0008 }
| type codes for mwAwareIdBlock More...
enum | mwLoginType { mwLogin_LIB = 0x1000, mwLogin_JAVA_WEB = 0x1001, mwLogin_BINARY = 0x1002, mwLogin_JAVA_APP = 0x1003, mwLogin_LINKS = 0x100a, mwLogin_NOTES_6_5 = 0x1200, mwLogin_NOTES_6_5_3 = 0x1203, mwLogin_NOTES_7_0_beta = 0x1210, mwLogin_NOTES_7_0 = 0x1214, mwLogin_ICT = 0x1300, mwLogin_ICT_1_7_8_2 = 0x1302, mwLogin_ICT_SIP = 0x1303, mwLogin_NOTESBUDDY_4_14 = 0x1400, mwLogin_NOTESBUDDY_4_15 = 0x1405, mwLogin_NOTESBUDDY_4_16 = 0x1406, mwLogin_SANITY = 0x1600, mwLogin_ST_PERL = 0x1625, mwLogin_PMR_ALERT = 0x1650, mwLogin_TRILLIAN = 0x16aa, mwLogin_TRILLIAN_IBM = 0x16bb, mwLogin_MEANWHILE = 0x1700 }
| The type of login. More...
enum | mwStatusType { mwStatus_ACTIVE = 0x0020, mwStatus_IDLE = 0x0040, mwStatus_AWAY = 0x0060, mwStatus_BUSY = 0x0080 }
## Functions
Basic Data Types
The basic types are combined to construct the compound types.
void | gboolean_get (struct mwGetBuffer *b, gboolean *val)
gboolean | gboolean_peek (struct mwGetBuffer *b)
void | gboolean_put (struct mwPutBuffer *b, gboolean val)
void | guint16_get (struct mwGetBuffer *b, guint16 *val)
guint16 | guint16_peek (struct mwGetBuffer *b)
void | guint16_put (struct mwPutBuffer *b, guint16 val)
void | guint32_get (struct mwGetBuffer *b, guint32 *val)
guint32 | guint32_peek (struct mwGetBuffer *b)
void | guint32_put (struct mwPutBuffer *b, guint32 val)
void | mwOpaque_clear (struct mwOpaque *o)
void | mwOpaque_clone (struct mwOpaque *to, const struct mwOpaque *from)
void | mwOpaque_free (struct mwOpaque *o)
void | mwOpaque_get (struct mwGetBuffer *b, struct mwOpaque *o)
void | mwOpaque_put (struct mwPutBuffer *b, const struct mwOpaque *o)
void | mwString_get (struct mwGetBuffer *b, char **str)
void | mwString_put (struct mwPutBuffer *b, const char *str)
Compound Data Types
void | mwAwareIdBlock_clear (struct mwAwareIdBlock *idb)
void | mwAwareIdBlock_clone (struct mwAwareIdBlock *to, const struct mwAwareIdBlock *from)
gboolean | mwAwareIdBlock_equal (const struct mwAwareIdBlock *a, const struct mwAwareIdBlock *b)
void | mwAwareIdBlock_get (struct mwGetBuffer *b, struct mwAwareIdBlock *idb)
guint | mwAwareIdBlock_hash (const struct mwAwareIdBlock *a)
void | mwAwareIdBlock_put (struct mwPutBuffer *b, const struct mwAwareIdBlock *idb)
void | mwAwareSnapshot_clear (struct mwAwareSnapshot *idb)
void | mwAwareSnapshot_clone (struct mwAwareSnapshot *to, const struct mwAwareSnapshot *from)
void | mwAwareSnapshot_get (struct mwGetBuffer *b, struct mwAwareSnapshot *idb)
void | mwEncryptItem_clear (struct mwEncryptItem *item)
void | mwEncryptItem_free (struct mwEncryptItem *item)
void | mwEncryptItem_get (struct mwGetBuffer *b, struct mwEncryptItem *item)
void | mwEncryptItem_put (struct mwPutBuffer *b, const struct mwEncryptItem *item)
void | mwIdBlock_clear (struct mwIdBlock *id)
void | mwIdBlock_clone (struct mwIdBlock *to, const struct mwIdBlock *from)
gboolean | mwIdBlock_equal (const struct mwIdBlock *a, const struct mwIdBlock *b)
void | mwIdBlock_get (struct mwGetBuffer *b, struct mwIdBlock *id)
guint | mwIdBlock_hash (const struct mwIdBlock *idb)
void | mwIdBlock_put (struct mwPutBuffer *b, const struct mwIdBlock *id)
void | mwLoginInfo_clear (struct mwLoginInfo *info)
void | mwLoginInfo_clone (struct mwLoginInfo *to, const struct mwLoginInfo *from)
void | mwLoginInfo_get (struct mwGetBuffer *b, struct mwLoginInfo *info)
void | mwLoginInfo_put (struct mwPutBuffer *b, const struct mwLoginInfo *info)
void | mwPrivacyInfo_clear (struct mwPrivacyInfo *info)
void | mwPrivacyInfo_clone (struct mwPrivacyInfo *to, const struct mwPrivacyInfo *from)
void | mwPrivacyInfo_get (struct mwGetBuffer *b, struct mwPrivacyInfo *info)
void | mwPrivacyInfo_put (struct mwPutBuffer *b, const struct mwPrivacyInfo *info)
void | mwUserItem_clear (struct mwUserItem *user)
void | mwUserItem_clone (struct mwUserItem *to, const struct mwUserItem *from)
void | mwUserItem_get (struct mwGetBuffer *b, struct mwUserItem *user)
void | mwUserItem_put (struct mwPutBuffer *b, const struct mwUserItem *user)
void | mwUserStatus_clear (struct mwUserStatus *stat)
void | mwUserStatus_clone (struct mwUserStatus *to, const struct mwUserStatus *from)
void | mwUserStatus_get (struct mwGetBuffer *b, struct mwUserStatus *stat)
void | mwUserStatus_put (struct mwPutBuffer *b, const struct mwUserStatus *stat)
buffer utility functions
gsize | mwGetBuffer_advance (struct mwGetBuffer *b, gsize len)
| skip len bytes in the get buffer.
gboolean | mwGetBuffer_error (struct mwGetBuffer *b)
| TRUE if an error occurred while reading a basic type from this buffer.
void | mwGetBuffer_free (struct mwGetBuffer *b)
| destroy the buffer
struct mwGetBuffer * | mwGetBuffer_new (struct mwOpaque *data)
| allocate a new buffer with a copy of the given data
gsize | mwGetBuffer_read (struct mwGetBuffer *b, gpointer mem, gsize len)
| read len bytes of raw data from the get buffer into mem.
gsize | mwGetBuffer_remaining (struct mwGetBuffer *b)
| count of remaining available bytes
void | mwGetBuffer_reset (struct mwGetBuffer *b)
| reset the buffer to the very beginning.
struct mwGetBuffer * | mwGetBuffer_wrap (const struct mwOpaque *data)
| allocate a new buffer backed by the given data.
void | mwPutBuffer_finalize (struct mwOpaque *to, struct mwPutBuffer *from)
| move the buffer's data into an opaque, destroy the buffer
void | mwPutBuffer_free (struct mwPutBuffer *b)
| destroy the buffer
struct mwPutBuffer * | mwPutBuffer_new ()
| allocate a new empty buffer
void | mwPutBuffer_write (struct mwPutBuffer *b, gpointer data, gsize len)
| write raw data to the put buffer

## Enumeration Type Documentation

enum mwAwareType

type codes for mwAwareIdBlock

Enumerator:

  mwAware_USER | a single user
  mwAware_GROUP | a group
  mwAware_SERVER | a server

enum mwLoginType

The type of login.

Normally meaning the type of client code being used to login with.

If you know of any additional client identifiers, please add them below or submit an RFE to the meanwhile tracker.

Enumerator:

  mwLogin_LIB | official Lotus binary library
  mwLogin_JAVA_WEB | official Lotus Java applet
  mwLogin_BINARY | official Lotus binary application
  mwLogin_JAVA_APP | official Lotus Java application
  mwLogin_LINKS | official Sametime Links toolkit
  mwLogin_NOTES_6_5 |
  mwLogin_NOTES_6_5_3 |
  mwLogin_NOTES_7_0_beta |
  mwLogin_NOTES_7_0 |
  mwLogin_ICT |
  mwLogin_ICT_1_7_8_2 |
  mwLogin_ICT_SIP |
  mwLogin_NOTESBUDDY_4_14 | 0xff00 mask?
  mwLogin_NOTESBUDDY_4_15 |
  mwLogin_NOTESBUDDY_4_16 |
  mwLogin_SANITY |
  mwLogin_ST_PERL |
  mwLogin_PMR_ALERT |
  mwLogin_TRILLIAN | http://sf.net/st-plugin/
  mwLogin_TRILLIAN_IBM |
  mwLogin_MEANWHILE | Meanwhile library.

enum mwStatusType

Enumerator:

  mwStatus_ACTIVE |
  mwStatus_IDLE |
  mwStatus_AWAY |
  mwStatus_BUSY |

## Function Documentation

void gboolean_get | ( | struct mwGetBuffer * | b,
|  | gboolean * | val |
| ) |  |  |

gboolean gboolean_peek | ( | struct mwGetBuffer * | b | ) |

void gboolean_put | ( | struct mwPutBuffer * | b,
|  | gboolean | val |
| ) |  |  |

void guint16_get | ( | struct mwGetBuffer * | b,
|  | guint16 * | val |
| ) |  |  |

guint16 guint16_peek | ( | struct mwGetBuffer * | b | ) |

void guint16_put | ( | struct mwPutBuffer * | b,
|  | guint16 | val |
| ) |  |  |

void guint32_get | ( | struct mwGetBuffer * | b,
|  | guint32 * | val |
| ) |  |  |

guint32 guint32_peek | ( | struct mwGetBuffer * | b | ) |

void guint32_put | ( | struct mwPutBuffer * | b,
|  | guint32 | val |
| ) |  |  |

void mwAwareIdBlock_clear | ( | struct mwAwareIdBlock * | idb | ) |

void mwAwareIdBlock_clone | ( | struct mwAwareIdBlock * | to,
|  | const struct mwAwareIdBlock * | from |
| ) |  |  |

gboolean mwAwareIdBlock_equal | ( | const struct mwAwareIdBlock * | a,
|  | const struct mwAwareIdBlock * | b |
| ) |  |  |

void mwAwareIdBlock_get | ( | struct mwGetBuffer * | b,
|  | struct mwAwareIdBlock * | idb |
| ) |  |  |

guint mwAwareIdBlock_hash | ( | const struct mwAwareIdBlock * | a | ) |

void mwAwareIdBlock_put | ( | struct mwPutBuffer * | b,
|  | const struct mwAwareIdBlock * | idb |
| ) |  |  |

void mwAwareSnapshot_clear | ( | struct mwAwareSnapshot * | idb | ) |

void mwAwareSnapshot_clone | ( | struct mwAwareSnapshot * | to,
|  | const struct mwAwareSnapshot * | from |
| ) |  |  |

void mwAwareSnapshot_get | ( | struct mwGetBuffer * | b,
|  | struct mwAwareSnapshot * | idb |
| ) |  |  |

void mwEncryptItem_clear | ( | struct mwEncryptItem * | item | ) |

void mwEncryptItem_free | ( | struct mwEncryptItem * | item | ) |

void mwEncryptItem_get | ( | struct mwGetBuffer * | b,
|  | struct mwEncryptItem * | item |
| ) |  |  |

void mwEncryptItem_put | ( | struct mwPutBuffer * | b,
|  | const struct mwEncryptItem * | item |
| ) |  |  |

gsize mwGetBuffer_advance | ( | struct mwGetBuffer * | b,
|  | gsize | len |
| ) |  |  |

skip len bytes in the get buffer.

If len is greater than the count of bytes remaining in the buffer, the buffer's error flag will NOT be set.

Returns:
  count of bytes successfully skipped

gboolean mwGetBuffer_error | ( | struct mwGetBuffer * | b | ) |

TRUE if an error occurred while reading a basic type from this buffer.

void mwGetBuffer_free | ( | struct mwGetBuffer * | b | ) |

destroy the buffer

struct mwGetBuffer* mwGetBuffer_new | ( | struct mwOpaque * | data | ) | `[read]`

allocate a new buffer with a copy of the given data

gsize mwGetBuffer_read | ( | struct mwGetBuffer * | b,
|  | gpointer | mem,
|  | gsize | len |
| ) |  |  |

read len bytes of raw data from the get buffer into mem.

If len is greater than the count of bytes remaining in the buffer, the buffer's error flag will NOT be set.

Returns:
  count of bytes successfully copied to mem

gsize mwGetBuffer_remaining | ( | struct mwGetBuffer * | b | ) |

count of remaining available bytes

void mwGetBuffer_reset | ( | struct mwGetBuffer * | b | ) |

reset the buffer to the very beginning.

Also clears the buffer's error flag.

struct mwGetBuffer* mwGetBuffer_wrap | ( | const struct mwOpaque * | data | ) | `[read]`

allocate a new buffer backed by the given data.

Calling mwGetBuffer_free will not result in the underlying data being freed

void mwIdBlock_clear | ( | struct mwIdBlock * | id | ) |

void mwIdBlock_clone | ( | struct mwIdBlock * | to,
|  | const struct mwIdBlock * | from |
| ) |  |  |

gboolean mwIdBlock_equal | ( | const struct mwIdBlock * | a,
|  | const struct mwIdBlock * | b |
| ) |  |  |

void mwIdBlock_get | ( | struct mwGetBuffer * | b,
|  | struct mwIdBlock * | id |
| ) |  |  |

guint mwIdBlock_hash | ( | const struct mwIdBlock * | idb | ) |

void mwIdBlock_put | ( | struct mwPutBuffer * | b,
|  | const struct mwIdBlock * | id |
| ) |  |  |

void mwLoginInfo_clear | ( | struct mwLoginInfo * | info | ) |

void mwLoginInfo_clone | ( | struct mwLoginInfo * | to,
|  | const struct mwLoginInfo * | from |
| ) |  |  |

void mwLoginInfo_get | ( | struct mwGetBuffer * | b,
|  | struct mwLoginInfo * | info |
| ) |  |  |

void mwLoginInfo_put | ( | struct mwPutBuffer * | b,
|  | const struct mwLoginInfo * | info |
| ) |  |  |

void mwOpaque_clear | ( | struct mwOpaque * | o | ) |

void mwOpaque_clone | ( | struct mwOpaque * | to,
|  | const struct mwOpaque * | from |
| ) |  |  |

void mwOpaque_free | ( | struct mwOpaque * | o | ) |

void mwOpaque_get | ( | struct mwGetBuffer * | b,
|  | struct mwOpaque * | o |
| ) |  |  |

void mwOpaque_put | ( | struct mwPutBuffer * | b,
|  | const struct mwOpaque * | o |
| ) |  |  |

void mwPrivacyInfo_clear | ( | struct mwPrivacyInfo * | info | ) |

void mwPrivacyInfo_clone | ( | struct mwPrivacyInfo * | to,
|  | const struct mwPrivacyInfo * | from |
| ) |  |  |

void mwPrivacyInfo_get | ( | struct mwGetBuffer * | b,
|  | struct mwPrivacyInfo * | info |
| ) |  |  |

void mwPrivacyInfo_put | ( | struct mwPutBuffer * | b,
|  | const struct mwPrivacyInfo * | info |
| ) |  |  |

void mwPutBuffer_finalize | ( | struct mwOpaque * | to,
|  | struct mwPutBuffer * | from |
| ) |  |  |

move the buffer's data into an opaque, destroy the buffer

void mwPutBuffer_free | ( | struct mwPutBuffer * | b | ) |

destroy the buffer

struct mwPutBuffer* mwPutBuffer_new | ( |  | ) | `[read]`

allocate a new empty buffer

void mwPutBuffer_write | ( | struct mwPutBuffer * | b,
|  | gpointer | data,
|  | gsize | len |
| ) |  |  |

write raw data to the put buffer

void mwString_get | ( | struct mwGetBuffer * | b,
|  | char ** | str |
| ) |  |  |

void mwString_put | ( | struct mwPutBuffer * | b,
|  | const char * | str |
| ) |  |  |

void mwUserItem_clear | ( | struct mwUserItem * | user | ) |

void mwUserItem_clone | ( | struct mwUserItem * | to,
|  | const struct mwUserItem * | from |
| ) |  |  |

void mwUserItem_get | ( | struct mwGetBuffer * | b,
|  | struct mwUserItem * | user |
| ) |  |  |

void mwUserItem_put | ( | struct mwPutBuffer * | b,
|  | const struct mwUserItem * | user |
| ) |  |  |

void mwUserStatus_clear | ( | struct mwUserStatus * | stat | ) |

void mwUserStatus_clone | ( | struct mwUserStatus * | to,
|  | const struct mwUserStatus * | from |
| ) |  |  |

void mwUserStatus_get | ( | struct mwGetBuffer * | b,
|  | struct mwUserStatus * | stat |
| ) |  |  |

void mwUserStatus_put | ( | struct mwPutBuffer * | b,
|  | const struct mwUserStatus * | stat |
| ) |  |  |