mw_common.h File Reference

Common data types and functions for handling those types. More...

`#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_OFFLINE = 0x0000 , mwStatus_ACTIVE = 0x0020 , mwStatus_IDLE = 0x0040 , mwStatus_AWAY = 0x0060 , mwStatus_BUSY = 0x0080 , mwStatus_MASK_MOBILE = 0x0200 }

## Functions

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 (void)
| allocate a new empty buffer
void | mwPutBuffer_write (struct mwPutBuffer *b, gpointer data, gsize len)
| write raw data to the put buffer
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)

## 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.

## Enumeration Type Documentation

## mwAwareType

enum mwAwareType

type codes for mwAwareIdBlock

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

## mwLoginType

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.

## mwStatusType

enum mwStatusType

Enumerator
mwStatus_OFFLINE |
mwStatus_ACTIVE |
mwStatus_IDLE |
mwStatus_AWAY |
mwStatus_BUSY |
mwStatus_MASK_MOBILE |

## Function Documentation

## gboolean_get()

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

## gboolean_peek()

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

## gboolean_put()

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

## guint16_get()

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

## guint16_peek()

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

## guint16_put()

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

## guint32_get()

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

## guint32_peek()

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

## guint32_put()

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

## mwAwareIdBlock_clear()

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

## mwAwareIdBlock_clone()

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

## mwAwareIdBlock_equal()

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

## mwAwareIdBlock_get()

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

## mwAwareIdBlock_hash()

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

## mwAwareIdBlock_put()

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

## mwAwareSnapshot_clear()

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

## mwAwareSnapshot_clone()

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

## mwAwareSnapshot_get()

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

## mwEncryptItem_clear()

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

## mwEncryptItem_free()

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

## mwEncryptItem_get()

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

## mwEncryptItem_put()

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

## mwGetBuffer_advance()

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

## mwGetBuffer_error()

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

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

## mwGetBuffer_free()

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

destroy the buffer

## mwGetBuffer_new()

struct mwGetBuffer * mwGetBuffer_new | ( | struct mwOpaque * | data | ) |

allocate a new buffer with a copy of the given data

## mwGetBuffer_read()

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

## mwGetBuffer_remaining()

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

count of remaining available bytes

## mwGetBuffer_reset()

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

reset the buffer to the very beginning.

Also clears the buffer's error flag.

## mwGetBuffer_wrap()

struct mwGetBuffer * mwGetBuffer_wrap | ( | const struct mwOpaque * | data | ) |

allocate a new buffer backed by the given data.

Calling mwGetBuffer_free will not result in the underlying data being freed

## mwIdBlock_clear()

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

## mwIdBlock_clone()

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

## mwIdBlock_equal()

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

## mwIdBlock_get()

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

## mwIdBlock_hash()

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

## mwIdBlock_put()

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

## mwLoginInfo_clear()

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

## mwLoginInfo_clone()

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

## mwLoginInfo_get()

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

## mwLoginInfo_put()

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

## mwOpaque_clear()

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

## mwOpaque_clone()

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

## mwOpaque_free()

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

## mwOpaque_get()

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

## mwOpaque_put()

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

## mwPrivacyInfo_clear()

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

## mwPrivacyInfo_clone()

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

## mwPrivacyInfo_get()

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

## mwPrivacyInfo_put()

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

## mwPutBuffer_finalize()

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

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

## mwPutBuffer_free()

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

destroy the buffer

## mwPutBuffer_new()

struct mwPutBuffer * mwPutBuffer_new | ( | void |  | ) |

allocate a new empty buffer

## mwPutBuffer_write()

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

write raw data to the put buffer

## mwString_get()

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

## mwString_put()

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

## mwUserItem_clear()

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

## mwUserItem_clone()

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

## mwUserItem_get()

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

## mwUserItem_put()

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

## mwUserStatus_clear()

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

## mwUserStatus_clone()

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

## mwUserStatus_get()

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

## mwUserStatus_put()

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