gmsec 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,89 @@
1
+ class GMSEC::Config
2
+ extend GMSEC::API
3
+
4
+ has :status
5
+
6
+ bind :GMSEC_CONFIG_OBJECT do |pointer|
7
+ gmsec_CreateConfig(pointer, status)
8
+ end
9
+
10
+ def self.from_config_file(config_file, config_name)
11
+ config = config_file.get_config(config_name)
12
+ new(native_object: to_native(config))
13
+ end
14
+
15
+ def initialize(options={})
16
+ options.each do |key, value|
17
+ add_value(key, value)
18
+ end
19
+ end
20
+
21
+ def [](key)
22
+ get_value(key)
23
+ end
24
+
25
+ def []=(key, value)
26
+ add_value(key, value)
27
+ end
28
+
29
+ def values
30
+ Enumerator.new do |y|
31
+ field = GMSEC::Field.new
32
+
33
+ key_buffer = FFI::Buffer.new(1024)
34
+ value_buffer = FFI::Buffer.new(8*1024)
35
+
36
+ key_pointer = FFI::MemoryPointer.new(key_buffer)
37
+ value_pointer = FFI::MemoryPointer.new(value_buffer)
38
+
39
+ gmsec_ConfigGetFirst(self, key_pointer, value_pointer, status)
40
+
41
+ key = key_pointer.read_pointer.read_string_to_null unless status.is_error?
42
+ value = value_pointer.read_pointer.read_string_to_null unless status.is_error?
43
+
44
+ while status.code != GMSEC_CONFIG_END_REACHED && status.code == GMSEC_STATUS_NO_ERROR
45
+ y << [key, value]
46
+ gmsec_ConfigGetNext(self, key_pointer, value_pointer, status)
47
+
48
+ key = key_pointer.read_pointer.read_string_to_null unless status.is_error?
49
+ value = value_pointer.read_pointer.read_string_to_null unless status.is_error?
50
+ end
51
+
52
+ if status.code != GMSEC_CONFIG_END_REACHED
53
+ raise RuntimeError.new("Error reading config fields : #{status}")
54
+ end
55
+ end
56
+ end
57
+
58
+ def to_xml
59
+ with_string_pointer do |pointer|
60
+ gmsec_ConfigToXML(self, pointer, status)
61
+ end
62
+ end
63
+
64
+ protected
65
+
66
+ def add_value(key, value)
67
+ gmsec_ConfigAddValue(self, key.to_s, value.to_s, status)
68
+ get_value(key)
69
+ end
70
+
71
+ def get_value(key)
72
+ with_string_pointer do |pointer|
73
+ gmsec_ConfigGetValue(self, key.to_s, pointer, status)
74
+ end
75
+ end
76
+
77
+ attach_function :gmsec_ConfigAddValue, [self, :string, :string, GMSEC::Status], :void
78
+ attach_function :gmsec_ConfigClear, [self, GMSEC::Status], :void
79
+ attach_function :gmsec_ConfigClearValue, [self, :string, GMSEC::Status], :void
80
+ attach_function :gmsec_ConfigFromXML, [self, :string, GMSEC::Status], :void
81
+ attach_function :gmsec_ConfigGetFirst, [self, :pointer, :pointer, GMSEC::Status], :void
82
+ attach_function :gmsec_ConfigGetNext, [self, :pointer, :pointer, GMSEC::Status], :void
83
+ attach_function :gmsec_ConfigGetValue, [self, :string, :pointer, GMSEC::Status], :void
84
+ attach_function :gmsec_ConfigToXML, [self, :pointer, GMSEC::Status], :void
85
+ attach_function :gmsec_CreateConfig, [:pointer, GMSEC::Status], :void
86
+ attach_function :gmsec_CreateConfigParams, [:pointer, :int, :pointer, GMSEC::Status], :void
87
+ attach_function :gmsec_DestroyConfig, [:pointer, GMSEC::Status], :void
88
+
89
+ end
@@ -0,0 +1,64 @@
1
+ require 'pry'
2
+ class GMSEC::ConfigFile
3
+ extend GMSEC::API
4
+
5
+ has :status
6
+
7
+ bind :GMSEC_CONFIGFILE_OBJECT
8
+
9
+ def initialize(filename)
10
+ case
11
+ when filename.nil?
12
+ raise RuntimeError.new("Unable to create ConfigFile instance: filename not provided")
13
+ when !File.exist?(filename.to_s)
14
+ raise RuntimeError.new("Unable to create ConfigFile instance: '#{filename}' does not exist")
15
+ end
16
+
17
+ initialize_native_object do |pointer|
18
+ gmsec_CreateConfigFile(pointer, filename, status)
19
+ end
20
+
21
+ gmsec_LoadConfigFile(self, status)
22
+
23
+ if status.is_error?
24
+ raise RuntimeError.new("Error reading config file: #{status}")
25
+ end
26
+ end
27
+
28
+ def to_xml
29
+ with_string_pointer do |pointer|
30
+ gmsec_ToXMLConfigFile(self, pointer, status)
31
+ end
32
+ end
33
+
34
+ def from_xml(str)
35
+ gmsec_FromXMLConfigFile(self, str, status)
36
+ end
37
+
38
+ def get_config(config_name)
39
+ GMSEC::Config.new.tap do |config|
40
+ gmsec_LookupConfigFileConfig(self, config_name, config, status)
41
+ end
42
+ end
43
+
44
+ def get_message(message_name, message: GMSEC::Message.new)
45
+ message.tap do |message|
46
+ gmsec_LookupConfigFileMessage(self, message_name, message, status)
47
+ end
48
+ end
49
+
50
+ def get_subscription(subscription_name)
51
+ with_string_pointer do |pointer|
52
+ gmsec_LookupConfigFileSubscription(self, subscription_name, pointer, status)
53
+ end
54
+ end
55
+
56
+ attach_function :gmsec_CreateConfigFile, [:pointer, :string, GMSEC::Status], :void
57
+ attach_function :gmsec_DestroyConfigFile, [:pointer, GMSEC::Status], :void
58
+ attach_function :gmsec_LoadConfigFile, [self, GMSEC::Status], :void
59
+ attach_function :gmsec_FromXMLConfigFile, [self, :string, GMSEC::Status], :void
60
+ attach_function :gmsec_ToXMLConfigFile, [self, :pointer, GMSEC::Status], :void
61
+ attach_function :gmsec_LookupConfigFileConfig, [self, :string, GMSEC::Config, GMSEC::Status], :void
62
+ attach_function :gmsec_LookupConfigFileMessage, [self, :string, GMSEC::Message, GMSEC::Status], :void
63
+ attach_function :gmsec_LookupConfigFileSubscription, [self, :string, :pointer, GMSEC::Status], :void
64
+ end
@@ -0,0 +1,208 @@
1
+ class GMSEC::Connection
2
+ extend GMSEC::API
3
+
4
+ bind :GMSEC_CONNECTION_OBJECT
5
+
6
+ has :config, :status
7
+
8
+ GMSEC_MESSAGE_TYPE = {
9
+ publish: GMSEC_MSG_PUBLISH,
10
+ reply: GMSEC_MSG_REPLY,
11
+ request: GMSEC_MSG_REQUEST,
12
+ unset: GMSEC_MSG_UNSET }
13
+
14
+ def initialize(config=nil, **config_options)
15
+ if config || !config_options.nil?
16
+ self.config = config_options.inject(config || GMSEC::Config.new) do |c, (k,v)|
17
+ c[k] = v
18
+ c
19
+ end
20
+ end
21
+ end
22
+
23
+ def connect
24
+ # We initialize the connection assuming that a config is provided before connecting.
25
+ initialize_native_object do |pointer|
26
+ gmsec_CreateConnectionForConfig(config, pointer, status)
27
+ end
28
+
29
+ gmsec_Connect(self, status)
30
+
31
+ if status.is_error?
32
+ raise RuntimeError.new("Unable to connect: #{status}")
33
+ end
34
+ end
35
+
36
+ def connected?
37
+ gmsec_IsConnected(self, status) == self.class.enum_type(:GMSEC_BOOL)[:GMSEC_TRUE]
38
+ end
39
+
40
+ def disconnect
41
+ gmsec_Disconnect(self, status)
42
+
43
+ if status.is_error?
44
+ raise RuntimeError.new("Unable to disconnect: #{status}")
45
+ end
46
+ end
47
+
48
+ def new_message(subject=nil, message_type: :publish, default: true)
49
+ message_type = GMSEC_MESSAGE_TYPE[message_type].tap do |type|
50
+ if type.nil?
51
+ raise RuntimeError.new("Message type '#{message_type}' not supported.")
52
+ end
53
+ end
54
+
55
+ pointer = FFI::MemoryPointer.new(GMSEC::Message.native_type)
56
+
57
+ case default
58
+ when true
59
+ gmsec_CreateMessageDflt(self, pointer, status)
60
+ when false
61
+ gmsec_CreateMessage(self, subject, message_type, pointer, status)
62
+ end
63
+
64
+ GMSEC::Message.new(native_object: pointer.read_pointer).tap do |message|
65
+ if subject
66
+ message.subject = subject
67
+ end
68
+ end
69
+ end
70
+
71
+ def publish(payload=nil, subject: nil)
72
+ message = case payload
73
+ when Hash
74
+ new_message(subject).tap do |message|
75
+ message << payload
76
+ end
77
+ when GMSEC::Message
78
+ payload
79
+ else
80
+ raise RuntimeError.new("Unable to publish payload of type #{payload.class}")
81
+ end
82
+
83
+ gmsec_Publish(self, message, status)
84
+
85
+ if status.is_error?
86
+ raise RuntimeError.new("Unable to publish message: #{status}")
87
+ end
88
+ end
89
+
90
+ def subscribe(subject, &block)
91
+ if block_given?
92
+ callback = FFI::Function.new(:void, [find_type(:GMSEC_CONNECTION_OBJECT), find_type(:GMSEC_MESSAGE_OBJECT)]) do |native_connection, native_message|
93
+ connection = GMSEC::Connection.new(native_object: native_connection)
94
+ message = GMSEC::Message.new(native_object: native_message)
95
+
96
+ case block.arity
97
+ when 1
98
+ block.call(message)
99
+ when 2
100
+ block.call(message, connection)
101
+ end
102
+ end
103
+
104
+ gmsec_SubscribeWCallback(self, subject, callback, status)
105
+ else
106
+ gmsec_Subscribe(self, subject, status)
107
+ end
108
+
109
+ if status.is_error?
110
+ raise RuntimeError.new("Unable to subscribe: #{status}")
111
+ end
112
+ end
113
+
114
+ def messages(timeout: 1000, dispatch: true)
115
+ Enumerator.new do |y|
116
+ pointer = FFI::MemoryPointer.new(GMSEC::Message.native_type)
117
+ gmsec_GetNextMsg(self, pointer, timeout, status)
118
+
119
+ while status.code != GMSEC_TIMEOUT_OCCURRED && status.code == 0
120
+ message = GMSEC::Message.new(native_object: pointer.read_pointer)
121
+
122
+ if dispatch
123
+ gmsec_DispatchMsg(self, message, status)
124
+ end
125
+
126
+ y << message
127
+
128
+ gmsec_GetNextMsg(self, pointer, timeout, status)
129
+ end
130
+ end
131
+ end
132
+
133
+ def library_version
134
+ with_string_pointer do |pointer|
135
+ gmsec_GetLibraryVersion(self, pointer, status)
136
+
137
+ if status.is_error?
138
+ raise RuntimeError.new("Unable to get library version: #{status}")
139
+ end
140
+ end
141
+ end
142
+
143
+ def library_root_name
144
+ with_string_pointer do |pointer|
145
+ gmsec_GetLibraryRootName(self, pointer, status)
146
+
147
+ if status.is_error?
148
+ raise RuntimeError.new("Unable to get library root name: #{status}")
149
+ end
150
+ end
151
+ end
152
+
153
+ def start_auto_dispatch
154
+ gmsec_StartAutoDispatch(self, status)
155
+
156
+ if status.is_error?
157
+ raise RuntimeError.new("Unable to start auto dispatch: #{status}")
158
+ end
159
+ end
160
+
161
+ def stop_auto_dispatch
162
+ gmsec_StopAutoDispatch(self, status)
163
+
164
+ if status.is_error?
165
+ raise RuntimeError.new("Unable to stop auto dispatch: #{status}")
166
+ end
167
+ end
168
+
169
+ def dispatcher_status
170
+ GMSEC::Status.new.tap do |status|
171
+ gmsec_GetLastDispatcherStatus(self, status)
172
+ end
173
+ end
174
+
175
+ protected
176
+
177
+ attach_function :gmsec_CloneMessage, [self, GMSEC::Message, :pointer, GMSEC::Status], :void
178
+ attach_function :gmsec_Connect, [self, GMSEC::Status], :void
179
+ attach_function :gmsec_CreateMessage, [self, :string, :GMSEC_MSG_KIND, :pointer, GMSEC::Status], :void
180
+ attach_function :gmsec_CreateMessageDflt, [self, :pointer, GMSEC::Status], :void
181
+ attach_function :gmsec_CreateMessageWCFG, [self, :string, :GMSEC_MSG_KIND, :pointer, GMSEC::Config, GMSEC::Status], :void
182
+ attach_function :gmsec_DestroyMessage, [self, GMSEC::Message, GMSEC::Status], :void
183
+ attach_function :gmsec_Disconnect, [self, GMSEC::Status], :void
184
+ attach_function :gmsec_DispatchMsg, [self, GMSEC::Message, GMSEC::Status], :void
185
+ attach_function :gmsec_GetLastDispatcherStatus, [self, GMSEC::Status], :void
186
+ attach_function :gmsec_GetLibraryRootName, [self, :pointer, GMSEC::Status], :void
187
+ attach_function :gmsec_GetLibraryVersion, [self, :pointer, GMSEC::Status], :void
188
+ attach_function :gmsec_GetNextMsg, [self, :pointer, :GMSEC_I32, GMSEC::Status], :void
189
+ attach_function :gmsec_IsConnected, [self, GMSEC::Status], :int
190
+ attach_function :gmsec_Publish, [self, GMSEC::Message, GMSEC::Status], :void
191
+ attach_function :gmsec_RegisterErrorCallback, [self, :string, :pointer, GMSEC::Status], :void
192
+ attach_function :gmsec_Reply, [self, GMSEC::Message, GMSEC::Message, GMSEC::Status], :void
193
+ attach_function :gmsec_Request, [self, GMSEC::Message, :GMSEC_I32, :pointer, GMSEC::Status], :void
194
+ attach_function :gmsec_RequestWCallback, [self, GMSEC::Message, :GMSEC_I32, :pointer, GMSEC::Status], :void
195
+ attach_function :gmsec_RequestWReplyCallback, [self, GMSEC::Message, :GMSEC_I32, :pointer, :pointer, GMSEC::Status], :void
196
+ attach_function :gmsec_StartAutoDispatch, [self, GMSEC::Status], :void
197
+ attach_function :gmsec_StopAutoDispatch, [self, GMSEC::Status], :void
198
+ attach_function :gmsec_Subscribe, [self, :string, GMSEC::Status], :void
199
+ attach_function :gmsec_SubscribeWCallback, [self, :string, :pointer, GMSEC::Status], :void
200
+ attach_function :gmsec_UnSubscribe, [self, :string, GMSEC::Status], :void
201
+ attach_function :gmsec_UnSubscribeWCallback, [self, :string, :pointer, GMSEC::Status], :void
202
+ attach_function :gmsec_GetLastDispatcherStatus, [self, GMSEC::Status], :void
203
+
204
+ # From ConnectionFactory
205
+ attach_function :gmsec_CreateConnection, [:GMSEC_CONNECTION_TYPE, GMSEC::Config, :pointer, GMSEC::Status], :void
206
+ attach_function :gmsec_CreateConnectionForType, [:GMSEC_CONNECTION_TYPE, GMSEC::Config, :pointer, GMSEC::Status], :void
207
+ attach_function :gmsec_CreateConnectionForConfig, [GMSEC::Config, :pointer, GMSEC::Status], :void
208
+ end
@@ -0,0 +1,189 @@
1
+ module GMSEC::Definitions
2
+
3
+ GMSEC_AUTODISPATCH_EXCLUSIVE = 37
4
+ GMSEC_AUTODISPATCH_FAILURE = 2
5
+ GMSEC_BAD_MESSAGE_FORMAT = 33
6
+ GMSEC_CONFIG_END_REACHED = 6
7
+ GMSEC_CONNECTION_DISPATCHER_ERROR = "CONNECTION_DISPATCHER_ERROR"
8
+ GMSEC_CONNECTION_ICSSWB = 1
9
+ GMSEC_CONNECTION_RENDEZVOUS = 2
10
+ GMSEC_CONNECTION_REQUEST_TIMEOUT = "CONNECTION_REQUEST_TIMEOUT"
11
+ GMSEC_CONNECTION_SMARTSOCKETS = 3
12
+ GMSEC_CUSTOM_ERROR = 36
13
+ GMSEC_ENCODING_ERROR = 26
14
+ GMSEC_FEATURE_NOT_SUPPORTED = 4
15
+ GMSEC_FIELDS_END_REACHED = 9
16
+ GMSEC_FIELD_TYPE_MISMATCH = 10
17
+ GMSEC_INITIALIZATION_ERROR = 29
18
+ GMSEC_INVALID_CALLBACK = 12
19
+ GMSEC_INVALID_CONFIG = 25
20
+ GMSEC_INVALID_CONFIG_NAME = 17
21
+ GMSEC_INVALID_CONFIG_VALUE = 5
22
+ GMSEC_INVALID_CONNECTION = 3
23
+ GMSEC_INVALID_CONNECTION_TYPE = 1
24
+ GMSEC_INVALID_FIELD = 23
25
+ GMSEC_INVALID_FIELD_NAME = 15
26
+ GMSEC_INVALID_FIELD_VALUE = 16
27
+ GMSEC_INVALID_MESSAGE = 7
28
+ GMSEC_INVALID_NEXT = 28
29
+ GMSEC_INVALID_SIGNATURE = 34
30
+ GMSEC_INVALID_SUBJECT_NAME = 18
31
+ GMSEC_LIBRARY_LOAD_FAILURE = 0
32
+ GMSEC_MSGCONVERT_FAILURE = 14
33
+ GMSEC_MSG_PUBLISH = 1
34
+ GMSEC_MSG_REPLY = 3
35
+ GMSEC_MSG_REQUEST = 2
36
+ GMSEC_MSG_UNSET = 0
37
+ GMSEC_NO_MESSAGE_AVAILABLE = 19
38
+ GMSEC_NO_WAIT = 0
39
+ GMSEC_OTHER_ERROR = 50
40
+ GMSEC_OUT_OF_MEMORY = 27
41
+ GMSEC_PUBLISH_NOT_AUTHORIZED = 31
42
+ GMSEC_REQDISPATCH_FAILURE = 13
43
+ GMSEC_STATUS_CALLBACKLKP_ERROR = 8
44
+ GMSEC_STATUS_CALLBACK_ERROR = 7
45
+ GMSEC_STATUS_CONFIGFILE_ERROR = 9
46
+ GMSEC_STATUS_CONFIG_ERROR = 3
47
+ GMSEC_STATUS_CONNECTION_ERROR = 2
48
+ GMSEC_STATUS_CUSTOM_ERROR = 12
49
+ GMSEC_STATUS_FACTORY_ERROR = 1
50
+ GMSEC_STATUS_FIELD_ERROR = 6
51
+ GMSEC_STATUS_ITERATOR_ERROR = 10
52
+ GMSEC_STATUS_LIBRARY_ERROR = 4
53
+ GMSEC_STATUS_MESSAGE_ERROR = 5
54
+ GMSEC_STATUS_NO_ERROR = 0
55
+ GMSEC_STATUS_OTHER_ERROR = 20
56
+ GMSEC_STATUS_POLICY_ERROR = 11
57
+ GMSEC_SUBSCRIBE_NOT_AUTHORIZED = 32
58
+ GMSEC_TIMEOUT_OCCURRED = 20
59
+ GMSEC_TRACKING_FAILURE = 21
60
+ GMSEC_TYPE_BLOB = 10
61
+ GMSEC_TYPE_BOOL = 2
62
+ GMSEC_TYPE_CHAR = 1
63
+ GMSEC_TYPE_COMPOUND = 24
64
+ GMSEC_TYPE_F32 = 7
65
+ GMSEC_TYPE_F64 = 8
66
+ GMSEC_TYPE_I16 = 3
67
+ GMSEC_TYPE_I32 = 5
68
+ GMSEC_TYPE_I64 = 22
69
+ GMSEC_TYPE_I8 = 20
70
+ GMSEC_TYPE_STR = 9
71
+ GMSEC_TYPE_U16 = 4
72
+ GMSEC_TYPE_U32 = 6
73
+ GMSEC_TYPE_U64 = 23
74
+ GMSEC_TYPE_U8 = 21
75
+ GMSEC_TYPE_UNSET = 0
76
+ GMSEC_UNINITIALIZED_OBJECT = 35
77
+ GMSEC_UNKNOWN_FIELD_TYPE = 11
78
+ GMSEC_UNKNOWN_MSG_TYPE = 8
79
+ GMSEC_UNUSED_CONFIG_ITEM = 22
80
+ GMSEC_USER_ACCESS_INVALID = 30
81
+ GMSEC_USING_LONG = 1
82
+ GMSEC_USING_LONG_LONG = 1
83
+ GMSEC_USING_SCHAR = 1
84
+ GMSEC_USING_SHORT = 1
85
+ GMSEC_USING_UCHAR = 1
86
+ GMSEC_WAIT_FOREVER = -1
87
+ GMSEC_XML_PARSE_ERROR = 24
88
+ MESSAGE_TRACKINGFIELDS_OFF = :GMSEC_FALSE
89
+ MESSAGE_TRACKINGFIELDS_ON = :GMSEC_TRUE
90
+ MESSAGE_TRACKINGFIELDS_UNSET = -1
91
+ NULL = 0
92
+ REPLY_SUBJECT_FIELD = "GMSEC_REPLY_SUBJECT"
93
+
94
+ GMSEC_STATUS_MIDDLEWARE_ERROR = GMSEC_STATUS_LIBRARY_ERROR
95
+ GMSEC_TYPE_BIN = GMSEC_TYPE_BLOB
96
+ GMSEC_TYPE_DOUBLE = GMSEC_TYPE_F64
97
+ GMSEC_TYPE_FLOAT = GMSEC_TYPE_F32
98
+ GMSEC_TYPE_LONG = GMSEC_TYPE_I32
99
+ GMSEC_TYPE_SHORT = GMSEC_TYPE_I16
100
+ GMSEC_TYPE_STRING = GMSEC_TYPE_STR
101
+ GMSEC_TYPE_ULONG = GMSEC_TYPE_U32
102
+ GMSEC_TYPE_USHORT = GMSEC_TYPE_U16
103
+
104
+ # Will specify layout in `included`
105
+ class GMSEC_LOG_ENTRY < FFI::Struct; end
106
+ class GMSEC_CONFIGFILED_STRUCT < FFI::Struct; end
107
+ class GMSEC_CONFIG_STRUCT < FFI::Struct; end
108
+ class GMSEC_CONNECTION_STRUCT < FFI::Struct; end
109
+ class GMSEC_FIELD_STRUCT < FFI::Struct; end
110
+ class GMSEC_MESSAGE_STRUCT < FFI::Struct; end
111
+ class GMSEC_STATUS_STRUCT < FFI::Struct; end
112
+
113
+ def self.included(base)
114
+ base.instance_eval do
115
+ typedef :char, :GMSEC_CHAR
116
+ typedef :char, :GMSEC_I8
117
+ typedef :double, :GMSEC_F64
118
+ typedef :float, :GMSEC_F32
119
+ typedef :long, :GMSEC_I32
120
+ typedef :long_long, :GMSEC_I64
121
+ typedef :pointer, :GMSEC_BIN
122
+ typedef :pointer, :GMSEC_BLOB
123
+ typedef :pointer, :GMSEC_CONFIGFILE_OBJECT
124
+ typedef :pointer, :GMSEC_CONFIGFILE_HANDLE
125
+ typedef :pointer, :GMSEC_CONFIG_HANDLE
126
+ typedef :pointer, :GMSEC_CONFIG_OBJECT
127
+ typedef :pointer, :GMSEC_CONNECTION_HANDLE
128
+ typedef :pointer, :GMSEC_CONNECTION_OBJECT
129
+ typedef :pointer, :GMSEC_FIELD_HANDLE
130
+ typedef :pointer, :GMSEC_FIELD_OBJECT
131
+ typedef :pointer, :GMSEC_MESSAGE_HANDLE
132
+ typedef :pointer, :GMSEC_MESSAGE_OBJECT
133
+ typedef :pointer, :GMSEC_STATUS_HANDLE
134
+ typedef :pointer, :GMSEC_STATUS_OBJECT
135
+ typedef :pointer, :GMSEC_STR
136
+ typedef :pointer, :GMSEC_STRING
137
+ typedef :short, :GMSEC_I16
138
+ typedef :uchar, :GMSEC_U8
139
+ typedef :ulong, :GMSEC_U32
140
+ typedef :ulong_long, :GMSEC_U64
141
+ typedef :ushort, :GMSEC_CONNECTION_TYPE
142
+ typedef :ushort, :GMSEC_STATUS_CLASS
143
+ typedef :ushort, :GMSEC_TYPE
144
+ typedef :ushort, :GMSEC_U16
145
+
146
+ typedef :GMSEC_F32, :GMSEC_FLOAT
147
+ typedef :GMSEC_F64, :GMSEC_DOUBLE
148
+ typedef :GMSEC_I16, :GMSEC_SHORT
149
+ typedef :GMSEC_I32, :GMSEC_LONG
150
+ typedef :GMSEC_I64, :GMSEC_LONGLONG
151
+ typedef :GMSEC_U16, :GMSEC_MSG_KIND
152
+ typedef :GMSEC_U16, :GMSEC_USHORT
153
+ typedef :GMSEC_U32, :GMSEC_ULONG
154
+ typedef :GMSEC_U64, :GMSEC_ULONGLONG
155
+
156
+ enum :GMSEC_BOOL, [
157
+ :GMSEC_FALSE,
158
+ :GMSEC_TRUE
159
+ ]
160
+
161
+ enum :LOG_LEVEL, [
162
+ :logNONE,
163
+ :logERROR,
164
+ :logSECURE,
165
+ :logWARNING,
166
+ :logINFO,
167
+ :logVERBOSE,
168
+ :logDEBUG,
169
+ :logNLEVEL
170
+ ]
171
+
172
+ callback :GMSEC_CALLBASE, [:GMSEC_CONNECTION_HANDLE, :GMSEC_MESSAGE_HANDLE], :void
173
+ callback :GMSEC_C_CALLBACK, [:GMSEC_CONNECTION_OBJECT, :GMSEC_MESSAGE_OBJECT], :void
174
+ callback :GMSEC_ERROR_CALLBACK, [:GMSEC_CONNECTION_HANDLE, :GMSEC_MESSAGE_HANDLE, :GMSEC_STATUS_HANDLE, :string], :void
175
+ callback :GMSEC_ERROR_CALLBACK, [:GMSEC_CONNECTION_HANDLE, :GMSEC_MESSAGE_HANDLE, :GMSEC_STATUS_HANDLE, :string], :void
176
+ callback :GMSEC_C_ERROR_CALLBACK, [:GMSEC_CONNECTION_OBJECT, :GMSEC_MESSAGE_OBJECT, :GMSEC_STATUS_OBJECT, :string], :void
177
+ callback :GMSEC_REPLY_CALLBACK, [:GMSEC_CONNECTION_HANDLE, :GMSEC_MESSAGE_HANDLE, :GMSEC_MESSAGE_HANDLE], :void
178
+ callback :GMSEC_C_REPLY_CALLBACK, [:GMSEC_CONNECTION_OBJECT, :GMSEC_MESSAGE_OBJECT, :GMSEC_MESSAGE_OBJECT], :void
179
+ callback :GMSEC_LOGGER_HANDLER, [:pointer], :void
180
+ end
181
+
182
+ base::GMSEC_LOG_ENTRY.layout(
183
+ file: :string,
184
+ line: :int,
185
+ level: base.find_type(:LOG_LEVEL),
186
+ time: :double,
187
+ message: :string)
188
+ end
189
+ end