// // %CopyrightBegin% // // Copyright Ericsson AB 1999-2016. All Rights Reserved. // // 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. // // %CopyrightEnd% // #ifndef _NOTIFY_TEST_SERVER_IDL #define _NOTIFY_TEST_SERVER_IDL #include #include module notify_test { enum action {PULL_SEQ, PULL_STR, PULL_ANY, PUSH_SEQ, PUSH_STR, PUSH_ANY}; struct data { short score; string name; }; struct computer { float memsize; float cputime; float filesize; }; struct X { long A; string B; short C; }; union K switch(short) { case -1: short neg; case 0: case 2: string K; case 3: X L; case 5: long M; default: short N; }; union uni1 switch(long) { case 1: case 2: long lo; case 3: short sh; default: short defvalue; }; union uni2 switch(long) { case 1: case 2: long lo; case 3: short sh; }; typedef any namedAny; typedef short ShortArray[4]; struct studies { uni1 uni1; CosNotification::PropertySeq tests; ShortArray monthly_attendance; short gpa; }; interface funcs { void print(); void doAction(in action Act); }; // interface server interface SeqPushC : funcs, CosNotifyComm::SequencePushConsumer { }; interface StrPushC : funcs, CosNotifyComm::StructuredPushConsumer { }; interface AnyPushC : funcs, CosEventComm::PushConsumer { }; interface SeqPullC : funcs, CosNotifyComm::SequencePullConsumer { }; interface StrPullC : funcs, CosNotifyComm::StructuredPullConsumer { }; interface AnyPullC : funcs, CosEventComm::PullConsumer { }; interface SeqPushS : funcs, CosNotifyComm::SequencePushSupplier { }; interface StrPushS : funcs, CosNotifyComm::StructuredPushSupplier { }; interface AnyPushS : funcs, CosEventComm::PushSupplier { }; interface SeqPullS : funcs, CosNotifyComm::SequencePullSupplier { }; interface StrPullS : funcs, CosNotifyComm::StructuredPullSupplier { }; interface AnyPullS : funcs, CosEventComm::PullSupplier { }; }; #endif