Node:Membership Information, Next:, Previous:Person Status Types, Up:LysKOM Data Types



Membership Information


        Membership-Type ::=     BITSTRING
              ( invitation;
                passive;
                secret;
                passive-message-invert;
                reserved2;
                reserved3;
                reserved4;
                reserved5;
              )

The Membership-Type type contains flags that modify a membership. It is passed as part of both Member and Membership (and obsolete versions of those types). The flags are:

invitation
The member has been invited, but has not yet accepted membership. Clients should set this flag when adding other users as members. The server may force this flag to be set when adding another person as a member of a conference.
passive
The member is not actively participating in the conference. Passive members do not receive messages (see async-send-message) and should not be displayed as active members by clients. See also passive-message-invert.
secret
The member does not wish to disclose the membership. Secret memberships and members are cleared before being returned to a person who is not a supervisor of the member or has sufficient privileges enabled.
passive-message-invert
If this bit is set, the passive bit is inverted when checking for messages (see async-send-message) to this conference. In other words, messages are blocked if one (but not both) of the bits passive and passive-message-invert are set.

The remaining flags in the Membership-Type structure are reserved and should be set to false on all new memberships and retained on all existing memberships.


        Member          ::=
              ( member          :       Pers-No;
                added-by        :       Pers-No;
                added-at        :       Time;
                type            :       Membership-Type;
              )

The Member structure encodes information about a member in a conference. It is returned by the get-members call. The fields of a Member structure are

member
The person who is a member of the conference.
added-by
The person who created the membership. This field is zero only if the membership was created before protocol version 10 was introduced.
added-at
The time when the membership was created. This field is meaningless if added-by is zero.
type
Flags modifying the membership.

The contents of a Member structure can be cleared (all fields set to zero) if the person requesting the record has insufficient privileges to see the contents of the structure.


        Read-Range ::=
              ( first-read      :       Local-Text-No;
                last-read       :       Local-Text-No;
              )

        Membership ::=
              ( position        :       INT32;
                last-time-read  :       Time;
                conference      :       Conf-No;
                priority        :       INT8;
                read-ranges     :       ARRAY Read-Range;
                added-by        :       Pers-No;
                added-at        :       Time;
                type            :       Membership-Type;
              )

        Membership-Old ::=
              ( last-time-read  :       Time;
                conference      :       Conf-No;
                priority        :       INT8;
                last-text-read  :       Local-Text-No;
                read-texts      :       ARRAY Local-Text-No;
              )


        Membership-10 ::=
              ( position        :       INT32;
                last-time-read  :       Time;
                conference      :       Conf-No;
                priority        :       INT8;
                last-text-read  :       Local-Text-No;
                read-texts      :       ARRAY Local-Text-No;
                added-by        :       Pers-No;
                added-at        :       Time;
                type            :       Membership-Type;
              )

The Membership structure encodes information about a person's membership in a conference. It is returned by the query-read-texts and get-membership calls.

The Membership-10 and Membership-Old types are obsolete variants of the same type, returned by older requests. Membership-Old contains less information. The encoding of the read texts in Membership-10 is very inefficient in the common case where you have read many texts after the first unread text.

position
The position of this membership in the membership list.
last-time-read
The time when the person last read anything from the conference. This will contain the start of the epoch if the unread-is-secret bit of the Personal-Flags is set and you don't have enough privileges to get the info anyhow.
conference
The conference this membership data pertains to.
priority
The priority the person has assigned to the conference. The higher the number, the higher the priority. In the past, priority zero indicated a passive membership. This usage is now obsolete.
last-text-read
The local number of last text read in the conference. This will be set to 0 if unread-is-secret is set, unless you have access to the data anyhow. This field is not available in Membership, but you can easily derive the same information from read-ranges.
read-texts
Additional texts beyond last-text-read that have also been read. This will be empty if unread-is-secret is set, unless you have access to the data anyhow.
read-ranges
A list of ranges of all read texts. This will be empty if unread-is-secret is set, unless you have access to the data anyhow.
added-by
The person who created the membership. This field is zero if the membership was created before protocol version 10 was introduced.
added-at
The time when the membership was created. This field is meaningless if added-by is zero.
type
Flags modifying the membership.

A membership record may be cleared by the server (all fields set to zero) if the person requesting the membership has insufficient privileges to see the contents membership, but has sufficient privileges to know about the person.