summaryrefslogtreecommitdiff
path: root/ivi-layermanagement-examples/LayerManagerUtils/include/IpcModuleLoader.h
blob: 0e1952ec1a1fc7685ca4375eeb520f003a32bbd0 (plain)
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
66
67
68
69
70
71
72
73
74
75
/**************************************************************************
 *
 * Copyright 2012 BMW Car IT GmbH
 *
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 ****************************************************************************/
#ifndef __IPCMODULELOADER_H_
#define __IPCMODULELOADER_H_

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus*/

#include "ilm_types.h"

struct IpcModule
{
    t_ilm_bool (*initClientMode)();
    t_ilm_bool (*initServiceMode)();

    t_ilm_message (*createMessage)(t_ilm_const_string);
    t_ilm_message (*createResponse)(t_ilm_message);
    t_ilm_message (*createErrorResponse)(t_ilm_message);
    t_ilm_message (*createNotification)(t_ilm_const_string);

    t_ilm_bool (*appendBool)(t_ilm_message, const t_ilm_bool);
    t_ilm_bool (*appendDouble)(t_ilm_message, const double);
    t_ilm_bool (*appendString)(t_ilm_message, const char*);
    t_ilm_bool (*appendInt)(t_ilm_message, const int);
    t_ilm_bool (*appendIntArray)(t_ilm_message, const int*, int);
    t_ilm_bool (*appendUint)(t_ilm_message, const unsigned int);
    t_ilm_bool (*appendUintArray)(t_ilm_message, const unsigned int*, int);

    t_ilm_bool (*sendToClients)(t_ilm_message, t_ilm_client_handle*, int);
    t_ilm_bool (*sendToService)(t_ilm_message);

    t_ilm_message (*receive)(t_ilm_int); /* timeout in ms*/

    t_ilm_const_string (*getMessageName)(t_ilm_message);
    t_ilm_message_type (*getMessageType)(t_ilm_message);
    t_ilm_const_string (*getSenderName)(t_ilm_message);
    t_ilm_client_handle (*getSenderHandle)(t_ilm_message);

    t_ilm_bool (*getBool)(t_ilm_message, t_ilm_bool*);
    t_ilm_bool (*getDouble)(t_ilm_message, double*);
    t_ilm_bool (*getString)(t_ilm_message, char*);
    t_ilm_bool (*getInt)(t_ilm_message, int*);
    t_ilm_bool (*getIntArray)(t_ilm_message, int**, int*);
    t_ilm_bool (*getUint)(t_ilm_message, unsigned int*);
    t_ilm_bool (*getUintArray)(t_ilm_message, unsigned int**, int*);

    t_ilm_bool (*destroyMessage)(t_ilm_message);

    t_ilm_bool (*destroy)();
};

t_ilm_bool loadIpcModule(struct IpcModule* communicator);

#ifdef __cplusplus
}  /* extern "C"*/
#endif /* __cplusplus*/

#endif /* __IPCMODULELOADER_H_*/