root/trunk/Models/JVChatTranscript.h

Revision 3247, 3.1 kB (checked in by timothy, 2 years ago)

One step closer to allowing SQL only transcripts.

Line 
1 @class JVChatTranscript;
2 @class JVChatMessage;
3 @class JVChatEvent;
4 @class JVChatSession;
5
6 extern NSString *JVChatTranscriptUpdatedNotification;
7
8 @protocol JVChatTranscriptElement
9 - (/* xmlNode */ void *) node;
10 - (JVChatTranscript *) transcript;
11 @end
12
13 @interface JVChatTranscript : NSObject {
14         NSScriptObjectSpecifier *_objectSpecifier;
15         void *_xmlLog; /* xmlDoc * */
16         NSMutableArray *_messages;
17         NSString *_filePath;
18         NSFileHandle *_logFile;
19         BOOL _autoWriteChanges;
20         BOOL _requiresNewEnvelope;
21         unsigned long long _previousLogOffset;
22         unsigned long _elementLimit;
23 }
24 + (id) chatTranscript;
25 + (id) chatTranscriptWithChatTranscript:(JVChatTranscript *) transcript;
26 + (id) chatTranscriptWithElements:(NSArray *) elements;
27 + (id) chatTranscriptWithContentsOfFile:(NSString *) path;
28 + (id) chatTranscriptWithContentsOfURL:(NSURL *) url;
29
30 - (id) init;
31 - (id) initWithChatTranscript:(JVChatTranscript *) transcript;
32 - (id) initWithElements:(NSArray *) elements;
33 - (id) initWithContentsOfFile:(NSString *) path;
34 - (id) initWithContentsOfURL:(NSURL *) url;
35
36 - (/* xmlDoc */ void *) document;
37
38 - (BOOL) isEmpty;
39 - (unsigned long) elementCount;
40 - (unsigned long) sessionCount;
41 - (unsigned long) messageCount;
42 - (unsigned long) eventCount;
43
44 - (void) setElementLimit:(unsigned int) limit;
45 - (unsigned int) elementLimit;
46
47 - (NSArray *) elements;
48 - (NSArray *) elementsInRange:(NSRange) range;
49 - (id) elementAtIndex:(unsigned long) index;
50 - (id) lastElement;
51
52 - (NSArray *) appendElements:(NSArray *) elements;
53 - (void) appendChatTranscript:(JVChatTranscript *) transcript;
54
55 - (NSArray *) messages;
56 - (NSArray *) messagesInRange:(NSRange) range;
57 - (JVChatMessage *) messageAtIndex:(unsigned long) index;
58 - (JVChatMessage *) messageWithIdentifier:(NSString *) identifier;
59 - (JVChatMessage *) lastMessage;
60
61 - (BOOL) containsMessageWithIdentifier:(NSString *) identifier;
62
63 - (JVChatMessage *) appendMessage:(JVChatMessage *) message;
64 - (JVChatMessage *) appendMessage:(JVChatMessage *) message forceNewEnvelope:(BOOL) forceEnvelope;
65 - (NSArray *) appendMessages:(NSArray *) messages;
66 - (NSArray *) appendMessages:(NSArray *) messages forceNewEnvelope:(BOOL) forceEnvelope;
67
68 - (NSArray *) sessions;
69 - (NSArray *) sessionsInRange:(NSRange) range;
70 - (JVChatSession *) sessionAtIndex:(unsigned long) index;
71 - (JVChatSession *) lastSession;
72
73 - (JVChatSession *) startNewSession;
74 - (JVChatSession *) appendSession:(JVChatSession *) session;
75
76 - (NSArray *) events;
77 - (NSArray *) eventsInRange:(NSRange) range;
78 - (JVChatEvent *) eventAtIndex:(unsigned long) index;
79 - (JVChatEvent *) lastEvent;
80
81 - (BOOL) containsEventWithIdentifier:(NSString *) identifier;
82
83 - (JVChatEvent *) appendEvent:(JVChatEvent *) event;
84
85 - (NSString *) filePath;
86 - (void) setFilePath:(NSString *) filePath;
87
88 - (NSCalendarDate *) dateBegan;
89
90 - (NSURL *) source;
91 - (void) setSource:(NSURL *) source;
92
93 - (BOOL) automaticallyWritesChangesToFile;
94 - (void) setAutomaticallyWritesChangesToFile:(BOOL) option;
95
96 - (BOOL) writeToFile:(NSString *) path atomically:(BOOL) atomically;
97 - (BOOL) writeToURL:(NSURL *) url atomically:(BOOL) atomically;
98
99 - (void) setObjectSpecifier:(NSScriptObjectSpecifier *) objectSpecifier;
100 @end
Note: See TracBrowser for help on using the browser.