libIEC61850  0.8.3
Open-source IEC 61850 MMS/GOOSE server and client library
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
goose_subscriber.h
Go to the documentation of this file.
1 /*
2  * goose_subscriber.h
3  *
4  * Copyright 2013, 2014 Michael Zillgith
5  *
6  * This file is part of libIEC61850.
7  *
8  * libIEC61850 is free software: you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation, either version 3 of the License, or
11  * (at your option) any later version.
12  *
13  * libIEC61850 is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with libIEC61850. If not, see <http://www.gnu.org/licenses/>.
20  *
21  * See COPYING file for the complete license text.
22  */
23 
24 #ifndef GOOSE_SUBSCRIBER_H_
25 #define GOOSE_SUBSCRIBER_H_
26 
27 #include "libiec61850_common_api.h"
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
38 #include "mms_value.h"
39 
40 typedef struct sGooseSubscriber* GooseSubscriber;
41 
48 typedef void (*GooseListener)(GooseSubscriber subscriber, void* parameter);
49 
70 GooseSubscriber
71 GooseSubscriber_create(char* goCbRef, MmsValue* dataSetValues);
72 
73 //char*
74 //GooseSubscriber_getGoCbRef(GooseSubscriber self);
75 
84 void
85 GooseSubscriber_setAppId(GooseSubscriber self, uint16_t appId);
86 
94 bool
95 GooseSubscriber_isValid(GooseSubscriber self);
96 
97 //uint16_t
98 //GooseSubscriber_getAppId(GooseSubscriber self);
99 
100 void
101 GooseSubscriber_setGoId(GooseSubscriber self, const char* goId);
102 
103 //char*
104 //GooseSubscriber_getGoId(GooseSubscriber self);
105 
106 void
107 GooseSubscriber_destroy(GooseSubscriber self);
108 
116 void
117 GooseSubscriber_setListener(GooseSubscriber self, GooseListener listener, void* parameter);
118 
119 uint32_t
120 GooseSubscriber_getStNum(GooseSubscriber self);
121 
122 uint32_t
123 GooseSubscriber_getSqNum(GooseSubscriber self);
124 
125 bool
126 GooseSubscriber_isTest(GooseSubscriber self);
127 
128 bool
129 GooseSubscriber_needsCommission(GooseSubscriber self);
130 
131 uint32_t
132 GooseSubscriber_getTimeAllowedToLive(GooseSubscriber self);
133 
134 uint64_t
135 GooseSubscriber_getTimestamp(GooseSubscriber self);
136 
148 MmsValue*
149 GooseSubscriber_getDataSetValues(GooseSubscriber self);
150 
151 #ifdef __cplusplus
152 }
153 #endif
154 
155 
158 #endif /* GOOSE_SUBSCRIBER_H_ */