- Update
This commit is contained in:
1 parent
d281d765ea
commit
5b074a5176
1261 files changed
+199158
-7303
No files matched your search
@@ -0,0 +1,130 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "XMPPRoom.h"
|
||||
#import "XMPPRoomOccupant.h"
|
||||
#import "XMPPRoomMessageMemoryStorageObject.h"
|
||||
#import "XMPPRoomOccupantMemoryStorageObject.h"
|
||||
|
||||
|
||||
|
||||
@interface XMPPRoomMemoryStorage : NSObject <XMPPRoomStorage>
|
||||
|
||||
- (id)init;
|
||||
|
||||
@property (readonly) XMPPRoom *parent;
|
||||
|
||||
/**
|
||||
* You can optionally extend the XMPPRoomMessageMemoryStorageObject and XMPPRoomOccupantMemoryStorageObject classes.
|
||||
* Then just set the classes here, and your subclasses will automatically get used.
|
||||
*
|
||||
* You must set your desired class(es), if different from default, before you begin using the storage class.
|
||||
**/
|
||||
@property (assign, readwrite) Class messageClass;
|
||||
@property (assign, readwrite) Class occupantClass;
|
||||
|
||||
/**
|
||||
* Returns the occupant with the given full JID.
|
||||
**/
|
||||
- (XMPPRoomOccupantMemoryStorageObject *)occupantForJID:(XMPPJID *)jid;
|
||||
|
||||
/**
|
||||
* Returns the messages in sorted order.
|
||||
* The messages are sorted via the [messageClass compare:] method, which may optionally be overriden in subclasses.
|
||||
**/
|
||||
- (NSArray *)messages;
|
||||
|
||||
/**
|
||||
* Returns the occupants in sorted order.
|
||||
* The occupants are sorted via the [occupantsClass compare:] method, which may optionally be overriden in subclasses.
|
||||
**/
|
||||
- (NSArray *)occupants;
|
||||
|
||||
/**
|
||||
* This method is designed for subclasses of XMPPRoomMessageMemoryStorageObject
|
||||
* which may dynamically change the operation of the overriden compare: method.
|
||||
*
|
||||
* If changed, this method should be invoked to force a resort.
|
||||
**/
|
||||
- (NSArray *)resortMessages;
|
||||
|
||||
/**
|
||||
* This method is designed for subclasses of XMPPRoomOccupantMemoryStorageObject
|
||||
* which may dynamically change the operation of the overriden compare: method.
|
||||
*
|
||||
* If changed, this method should be invoked to force a resort.
|
||||
**/
|
||||
- (NSArray *)resortOccupants;
|
||||
|
||||
@end
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
#pragma mark -
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@protocol XMPPRoomMemoryStorageDelegate <NSObject>
|
||||
@optional
|
||||
|
||||
//
|
||||
// XMPPRoomMemoryStorage automatically uses the delegate(s) of its parent XMPPRoom.
|
||||
//
|
||||
|
||||
/**
|
||||
* Similar to XMPPRoomDelegate's xmppRoom:occupantDidJoin:withPresence: method.
|
||||
*
|
||||
* This method provides the delegate with the occupant storage instance,
|
||||
* as well as the current snapshot of the occupants array,
|
||||
* and the index at which the new occupant was inserted.
|
||||
*
|
||||
* The given occupant will be included in the given array at the given index.
|
||||
**/
|
||||
- (void)xmppRoomMemoryStorage:(XMPPRoomMemoryStorage *)sender
|
||||
occupantDidJoin:(XMPPRoomOccupantMemoryStorageObject *)occupant
|
||||
atIndex:(NSUInteger)index
|
||||
inArray:(NSArray *)allOccupants;
|
||||
|
||||
/**
|
||||
* Similar to XMPPRoomDelegate's xmppRoom:occupantDidLeave:withPresence: method.
|
||||
*
|
||||
* This method provides the delegate with the occupant storage instance,
|
||||
* as well as the current snapshot of the occupants array,
|
||||
* and the index at which the occupant used to reside.
|
||||
*
|
||||
* The given occupant will not be included in the given array.
|
||||
* It's previous location is given by the index.
|
||||
**/
|
||||
- (void)xmppRoomMemoryStorage:(XMPPRoomMemoryStorage *)sender
|
||||
occupantDidLeave:(XMPPRoomOccupantMemoryStorageObject *)occupant
|
||||
atIndex:(NSUInteger)index
|
||||
fromArray:(NSArray *)allOccupants;
|
||||
|
||||
/**
|
||||
* Similar to XMPPRoomDelegate's xmppRoom:occupantDidUpdate:withPresence: method.
|
||||
*
|
||||
* This method provides the delegate with the occupant storage instance,
|
||||
* as well as the current snapshot of the occupants array,
|
||||
* including the old and new index of the occupant.
|
||||
*
|
||||
* The given occupant will be included in the given array at the given newIndex.
|
||||
* If the location of the occupant didn't change, then the oldIndex and newIndex will be the same.
|
||||
**/
|
||||
- (void)xmppRoomMemoryStorage:(XMPPRoomMemoryStorage *)sender
|
||||
occupantDidUpdate:(XMPPRoomOccupantMemoryStorageObject *)occupant
|
||||
fromIndex:(NSUInteger)oldIndex
|
||||
toIndex:(NSUInteger)newIndex
|
||||
inArray:(NSArray *)allOccupants;
|
||||
|
||||
/**
|
||||
* Similar to XMPPRoomDelegate's xmppRoom:didReceiveMessage:fromOccupant: method.
|
||||
*
|
||||
* This method provides the delegate with the occupant and message storage instance,
|
||||
* as well as the current snapshot of the messages array,
|
||||
* including the new index of the message.
|
||||
*
|
||||
* The given message will be included in the given array at the given index.
|
||||
**/
|
||||
- (void)xmppRoomMemoryStorage:(XMPPRoomMemoryStorage *)sender
|
||||
didReceiveMessage:(XMPPRoomMessageMemoryStorageObject *)message
|
||||
fromOccupant:(XMPPRoomOccupantMemoryStorageObject *)occupant
|
||||
atIndex:(NSUInteger)index
|
||||
inArray:(NSArray *)allMessages;
|
||||
|
||||
@end
|
||||
Reference in new issue
Block a user