File: OOConsoleConnection.h

package info (click to toggle)
oolite 1.77.1-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 41,264 kB
  • ctags: 5,362
  • sloc: objc: 132,090; ansic: 10,457; python: 2,225; sh: 1,325; makefile: 332; perl: 259; xml: 125; php: 5
file content (65 lines) | stat: -rw-r--r-- 3,162 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/*	OOConsoleConnection.h
	
	Psuedo-object to handle communication with Oolite.
	
	This object does not deal with networking. It merely converts between data
	streams and the high-level representation of a connection.
*/

#ifndef INCLUDED_OOConsoleConnection_h
#define INCLUDED_OOConsoleConnection_h

#include <CoreFoundation/CoreFoundation.h>

typedef struct OOConsoleConnection *OOConsoleConnectionRef;


typedef struct
{
	float				r, g, b;
} OOConsoleRGBColor;


// Callbacks.
typedef void (*OOConsoleConnectionSendDataCallback)(void *cbInfo, const void *bytes, size_t length);
typedef void (*OOConsoleConnectionConsoleOutputCallback)(void *cbInfo, CFStringRef text, CFStringRef colorKey, CFRange *emphasisRanges, uint32_t emphasisRangeCount);
typedef void (*OOConsoleConnectionClearConsoleCallback)(void *cbInfo);
typedef void (*OOConsoleConnectionShowConsoleCallback)(void *cbInfo);
typedef void (*OOConsoleConnectionConfigurationChangedCallback)(void *cbInfo, CFArrayRef configurationKeys);
typedef void (*OOConsoleConnectionConnectionEstablishedCallback)(void *cbInfo, CFStringRef ooliteVersion);
typedef void (*OOConsoleConnectionCloseCallback)(void *cbInfo, Boolean closedRemotely, CFStringRef message);
typedef void (*OOConsoleConnectionErrorCallback)(void *cbInfo, CFStringRef message);
typedef void (*OOConsoleConnectionFinalizeCallback)(void *cbInfo);

typedef struct
{
	OOConsoleConnectionSendDataCallback					SendData;
	OOConsoleConnectionConsoleOutputCallback			ConsoleOutput;
	OOConsoleConnectionClearConsoleCallback				ClearConsole;
	OOConsoleConnectionShowConsoleCallback				ShowConsole;
	OOConsoleConnectionConfigurationChangedCallback		ConfigurationChanged;
	OOConsoleConnectionConnectionEstablishedCallback	ConnectionEstablished;
	OOConsoleConnectionCloseCallback					Close;
	OOConsoleConnectionErrorCallback					Error;
	OOConsoleConnectionFinalizeCallback					Finalize;
} OOConsoleConnectionCallbacks;


OOConsoleConnectionRef OOConsoleConnectionCreate(CFStringRef consoleIdentityString, OOConsoleConnectionCallbacks *callbacks, void *cbInfo);
void OOConsoleConnectionDestroy(OOConsoleConnectionRef connection);	// Will close the connection if open (and thus may call SendData callback).
void OOConsoleConnectionClose(OOConsoleConnectionRef connection, CFStringRef message);

Boolean OOConsoleConnectionIsOpen(OOConsoleConnectionRef connection);

void OOConsoleConnectionReceiveData(OOConsoleConnectionRef connection, CFDataRef data);
void OOConsoleConnectionReceiveBytes(OOConsoleConnectionRef connection, const void *bytes, size_t length);

void OOConsoleConnectionPerformCommand(OOConsoleConnectionRef connection, CFStringRef command);

CFPropertyListRef OOConsoleConnectionGetConfiguration(OOConsoleConnectionRef connection, CFStringRef key);
void OOConsoleConnectionSetConfiguration(OOConsoleConnectionRef connection, CFStringRef key, CFPropertyListRef value);

OOConsoleRGBColor OOConsoleConnectionGetForegroundColor(OOConsoleConnectionRef connection, CFStringRef colorKey);
OOConsoleRGBColor OOConsoleConnectionGetBackgroundColor(OOConsoleConnectionRef connection, CFStringRef colorKey);

#endif /* INCLUDED_OOConsoleConnection_h */