1*78bc99aaSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*78bc99aaSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*78bc99aaSAndrew Rist * or more contributor license agreements. See the NOTICE file 5*78bc99aaSAndrew Rist * distributed with this work for additional information 6*78bc99aaSAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*78bc99aaSAndrew Rist * to you under the Apache License, Version 2.0 (the 8*78bc99aaSAndrew Rist * "License"); you may not use this file except in compliance 9*78bc99aaSAndrew Rist * with the License. You may obtain a copy of the License at 10cdf0e10cSrcweir * 11*78bc99aaSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 13*78bc99aaSAndrew Rist * Unless required by applicable law or agreed to in writing, 14*78bc99aaSAndrew Rist * software distributed under the License is distributed on an 15*78bc99aaSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*78bc99aaSAndrew Rist * KIND, either express or implied. See the License for the 17*78bc99aaSAndrew Rist * specific language governing permissions and limitations 18*78bc99aaSAndrew Rist * under the License. 19cdf0e10cSrcweir * 20*78bc99aaSAndrew Rist *************************************************************/ 21cdf0e10cSrcweir 22cdf0e10cSrcweir #include <precomp.h> 23cdf0e10cSrcweir #include <s2_luidl/pe_iface.hxx> 24cdf0e10cSrcweir 25cdf0e10cSrcweir 26cdf0e10cSrcweir // NOT FULLY DEFINED SERVICES 27cdf0e10cSrcweir #include <ary/idl/i_interface.hxx> 28cdf0e10cSrcweir #include <ary/idl/i_gate.hxx> 29cdf0e10cSrcweir #include <ary/idl/ip_ce.hxx> 30cdf0e10cSrcweir #include <ary/doc/d_oldidldocu.hxx> 31cdf0e10cSrcweir #include <s2_luidl/pe_func2.hxx> 32cdf0e10cSrcweir #include <s2_luidl/pe_attri.hxx> 33cdf0e10cSrcweir #include <s2_luidl/pe_type2.hxx> 34cdf0e10cSrcweir #include <s2_luidl/tk_keyw.hxx> 35cdf0e10cSrcweir #include <s2_luidl/tk_ident.hxx> 36cdf0e10cSrcweir #include <s2_luidl/tk_punct.hxx> 37cdf0e10cSrcweir #include <adc_cl.hxx> 38cdf0e10cSrcweir 39cdf0e10cSrcweir 40cdf0e10cSrcweir 41cdf0e10cSrcweir namespace csi 42cdf0e10cSrcweir { 43cdf0e10cSrcweir namespace uidl 44cdf0e10cSrcweir { 45cdf0e10cSrcweir 46cdf0e10cSrcweir #ifdef DF 47cdf0e10cSrcweir #undef DF 48cdf0e10cSrcweir #endif 49cdf0e10cSrcweir #define DF &PE_Interface::On_Default 50cdf0e10cSrcweir 51cdf0e10cSrcweir PE_Interface::F_TOK 52cdf0e10cSrcweir PE_Interface::aDispatcher[PE_Interface::e_STATES_MAX][PE_Interface::tt_MAX] = 53cdf0e10cSrcweir { { DF, DF, DF, DF, DF }, // e_none 54cdf0e10cSrcweir { &PE_Interface::On_need_uik_MetaType, 55cdf0e10cSrcweir DF, DF, DF, DF }, // need_uik 56cdf0e10cSrcweir { DF, &PE_Interface::On_uik_Identifier, 57cdf0e10cSrcweir &PE_Interface::On_uik_Punctuation, 58cdf0e10cSrcweir DF, DF }, // uik 59cdf0e10cSrcweir { &PE_Interface::On_need_ident_MetaType, 60cdf0e10cSrcweir DF, DF, DF, DF }, // need_ident 61cdf0e10cSrcweir { DF, &PE_Interface::On_ident_Identifier, 62cdf0e10cSrcweir &PE_Interface::On_ident_Punctuation, 63cdf0e10cSrcweir DF, DF }, // ident 64cdf0e10cSrcweir { &PE_Interface::On_need_interface_MetaType, 65cdf0e10cSrcweir DF, DF, DF, DF }, // need_interface 66cdf0e10cSrcweir { DF, &PE_Interface::On_need_name_Identifer, 67cdf0e10cSrcweir DF, DF, DF }, // need_name 68cdf0e10cSrcweir { DF, DF, &PE_Interface::On_wait_for_base_Punctuation, 69cdf0e10cSrcweir DF, DF }, // wait_for_base 70cdf0e10cSrcweir { DF, DF, DF, DF, DF }, // in_base 71cdf0e10cSrcweir { DF, DF, &PE_Interface::On_need_curlbr_open_Punctuation, 72cdf0e10cSrcweir DF, DF }, // need_curlbr_open 73cdf0e10cSrcweir { &PE_Interface::On_std_Metatype, 74cdf0e10cSrcweir &PE_Interface::On_std_GotoFunction, 75cdf0e10cSrcweir &PE_Interface::On_std_Punctuation, 76cdf0e10cSrcweir &PE_Interface::On_std_GotoFunction, 77cdf0e10cSrcweir &PE_Interface::On_std_Stereotype }, // e_std 78cdf0e10cSrcweir { DF, DF, DF, DF, DF }, // in_function 79cdf0e10cSrcweir { DF, DF, DF, DF, DF }, // in_attribute 80cdf0e10cSrcweir { DF, DF, &PE_Interface::On_need_finish_Punctuation, 81cdf0e10cSrcweir DF, DF }, // need_finish 82cdf0e10cSrcweir { DF, DF, DF, DF, DF } // in_base_interface 83cdf0e10cSrcweir }; 84cdf0e10cSrcweir 85cdf0e10cSrcweir 86cdf0e10cSrcweir 87cdf0e10cSrcweir inline void 88cdf0e10cSrcweir PE_Interface::CallHandler( const char * i_sTokenText, 89cdf0e10cSrcweir E_TokenType i_eTokenType ) 90cdf0e10cSrcweir { (this->*aDispatcher[eState][i_eTokenType])(i_sTokenText); } 91cdf0e10cSrcweir 92cdf0e10cSrcweir 93cdf0e10cSrcweir 94cdf0e10cSrcweir PE_Interface::PE_Interface() 95cdf0e10cSrcweir : eState(e_none), 96cdf0e10cSrcweir sData_Name(), 97cdf0e10cSrcweir bIsPreDeclaration(false), 98cdf0e10cSrcweir pCurInterface(0), 99cdf0e10cSrcweir nCurInterface(0), 100cdf0e10cSrcweir pPE_Function(0), 101cdf0e10cSrcweir pPE_Attribute(0), 102cdf0e10cSrcweir pPE_Type(0), 103cdf0e10cSrcweir nCurParsed_Base(0), 104cdf0e10cSrcweir bOptionalMember(false) 105cdf0e10cSrcweir { 106cdf0e10cSrcweir pPE_Function = new PE_Function(nCurInterface); 107cdf0e10cSrcweir pPE_Type = new PE_Type(nCurParsed_Base); 108cdf0e10cSrcweir pPE_Attribute = new PE_Attribute(nCurInterface); 109cdf0e10cSrcweir } 110cdf0e10cSrcweir 111cdf0e10cSrcweir void 112cdf0e10cSrcweir PE_Interface::EstablishContacts( UnoIDL_PE * io_pParentPE, 113cdf0e10cSrcweir ary::Repository & io_rRepository, 114cdf0e10cSrcweir TokenProcessing_Result & o_rResult ) 115cdf0e10cSrcweir { 116cdf0e10cSrcweir UnoIDL_PE::EstablishContacts(io_pParentPE,io_rRepository,o_rResult); 117cdf0e10cSrcweir pPE_Function->EstablishContacts(this,io_rRepository,o_rResult); 118cdf0e10cSrcweir pPE_Type->EstablishContacts(this,io_rRepository,o_rResult); 119cdf0e10cSrcweir pPE_Attribute->EstablishContacts(this,io_rRepository,o_rResult); 120cdf0e10cSrcweir } 121cdf0e10cSrcweir 122cdf0e10cSrcweir PE_Interface::~PE_Interface() 123cdf0e10cSrcweir { 124cdf0e10cSrcweir } 125cdf0e10cSrcweir 126cdf0e10cSrcweir void 127cdf0e10cSrcweir PE_Interface::ProcessToken( const Token & i_rToken ) 128cdf0e10cSrcweir { 129cdf0e10cSrcweir i_rToken.Trigger(*this); 130cdf0e10cSrcweir } 131cdf0e10cSrcweir 132cdf0e10cSrcweir 133cdf0e10cSrcweir void 134cdf0e10cSrcweir PE_Interface::Process_MetaType( const TokMetaType & i_rToken ) 135cdf0e10cSrcweir { 136cdf0e10cSrcweir CallHandler( i_rToken.Text(), tt_metatype ); 137cdf0e10cSrcweir } 138cdf0e10cSrcweir 139cdf0e10cSrcweir void 140cdf0e10cSrcweir PE_Interface::Process_Identifier( const TokIdentifier & i_rToken ) 141cdf0e10cSrcweir { 142cdf0e10cSrcweir CallHandler( i_rToken.Text(), tt_identifier ); 143cdf0e10cSrcweir } 144cdf0e10cSrcweir 145cdf0e10cSrcweir void 146cdf0e10cSrcweir PE_Interface::Process_Punctuation( const TokPunctuation & i_rToken ) 147cdf0e10cSrcweir { 148cdf0e10cSrcweir CallHandler( i_rToken.Text(), tt_punctuation ); 149cdf0e10cSrcweir } 150cdf0e10cSrcweir 151cdf0e10cSrcweir void 152cdf0e10cSrcweir PE_Interface::Process_NameSeparator() 153cdf0e10cSrcweir { 154cdf0e10cSrcweir CallHandler( "", tt_startoftype ); 155cdf0e10cSrcweir } 156cdf0e10cSrcweir 157cdf0e10cSrcweir void 158cdf0e10cSrcweir PE_Interface::Process_BuiltInType( const TokBuiltInType & i_rToken ) 159cdf0e10cSrcweir { 160cdf0e10cSrcweir CallHandler( i_rToken.Text(), tt_startoftype ); 161cdf0e10cSrcweir } 162cdf0e10cSrcweir 163cdf0e10cSrcweir void 164cdf0e10cSrcweir PE_Interface::Process_TypeModifier( const TokTypeModifier & i_rToken ) 165cdf0e10cSrcweir { 166cdf0e10cSrcweir CallHandler( i_rToken.Text(), tt_startoftype ); 167cdf0e10cSrcweir } 168cdf0e10cSrcweir 169cdf0e10cSrcweir void 170cdf0e10cSrcweir PE_Interface::Process_Stereotype( const TokStereotype & i_rToken ) 171cdf0e10cSrcweir { 172cdf0e10cSrcweir CallHandler( i_rToken.Text(), tt_stereotype ); 173cdf0e10cSrcweir } 174cdf0e10cSrcweir 175cdf0e10cSrcweir void 176cdf0e10cSrcweir PE_Interface::Process_Default() 177cdf0e10cSrcweir { 178cdf0e10cSrcweir SetResult(done, stay); 179cdf0e10cSrcweir } 180cdf0e10cSrcweir 181cdf0e10cSrcweir 182cdf0e10cSrcweir void 183cdf0e10cSrcweir PE_Interface::On_need_uik_MetaType(const char *) 184cdf0e10cSrcweir { 185cdf0e10cSrcweir // Deprecated, data will be ignored 186cdf0e10cSrcweir SetResult(done, stay); 187cdf0e10cSrcweir eState = uik; 188cdf0e10cSrcweir } 189cdf0e10cSrcweir 190cdf0e10cSrcweir void 191cdf0e10cSrcweir PE_Interface::On_uik_Identifier(const char *) 192cdf0e10cSrcweir { 193cdf0e10cSrcweir // Deprecated, data will be ignored 194cdf0e10cSrcweir SetResult(done, stay); 195cdf0e10cSrcweir } 196cdf0e10cSrcweir 197cdf0e10cSrcweir void 198cdf0e10cSrcweir PE_Interface::On_uik_Punctuation(const char * i_sText) 199cdf0e10cSrcweir { 200cdf0e10cSrcweir // Deprecated, data will be ignored 201cdf0e10cSrcweir SetResult(done, stay); 202cdf0e10cSrcweir if (strcmp(",",i_sText) == 0) 203cdf0e10cSrcweir { 204cdf0e10cSrcweir eState = need_ident; 205cdf0e10cSrcweir } 206cdf0e10cSrcweir } 207cdf0e10cSrcweir 208cdf0e10cSrcweir void 209cdf0e10cSrcweir PE_Interface::On_need_ident_MetaType(const char *) 210cdf0e10cSrcweir { 211cdf0e10cSrcweir SetResult(done, stay); 212cdf0e10cSrcweir eState = ident; 213cdf0e10cSrcweir } 214cdf0e10cSrcweir 215cdf0e10cSrcweir void 216cdf0e10cSrcweir PE_Interface::On_ident_Identifier(const char *) 217cdf0e10cSrcweir { 218cdf0e10cSrcweir SetResult(done, stay); 219cdf0e10cSrcweir } 220cdf0e10cSrcweir 221cdf0e10cSrcweir void 222cdf0e10cSrcweir PE_Interface::On_ident_Punctuation(const char * i_sText) 223cdf0e10cSrcweir { 224cdf0e10cSrcweir SetResult(done, stay); 225cdf0e10cSrcweir if (strcmp(")",i_sText) == 0) 226cdf0e10cSrcweir { 227cdf0e10cSrcweir eState = need_interface; 228cdf0e10cSrcweir } 229cdf0e10cSrcweir } 230cdf0e10cSrcweir 231cdf0e10cSrcweir void 232cdf0e10cSrcweir PE_Interface::On_need_interface_MetaType(const char *) 233cdf0e10cSrcweir { 234cdf0e10cSrcweir SetResult(done, stay); 235cdf0e10cSrcweir eState = need_name; 236cdf0e10cSrcweir } 237cdf0e10cSrcweir 238cdf0e10cSrcweir void 239cdf0e10cSrcweir PE_Interface::On_need_name_Identifer(const char * i_sText) 240cdf0e10cSrcweir { 241cdf0e10cSrcweir SetResult(done, stay); 242cdf0e10cSrcweir sData_Name = i_sText; 243cdf0e10cSrcweir eState = wait_for_base; 244cdf0e10cSrcweir } 245cdf0e10cSrcweir 246cdf0e10cSrcweir void 247cdf0e10cSrcweir PE_Interface::On_wait_for_base_Punctuation(const char * i_sText) 248cdf0e10cSrcweir { 249cdf0e10cSrcweir if (i_sText[0] != ';') 250cdf0e10cSrcweir { 251cdf0e10cSrcweir switch (i_sText[0]) 252cdf0e10cSrcweir { 253cdf0e10cSrcweir case ':': 254cdf0e10cSrcweir SetResult(done, push_sure, pPE_Type.Ptr()); 255cdf0e10cSrcweir eState = in_base; 256cdf0e10cSrcweir break; 257cdf0e10cSrcweir case '{': 258cdf0e10cSrcweir store_Interface(); 259cdf0e10cSrcweir 260cdf0e10cSrcweir SetResult(done,stay); 261cdf0e10cSrcweir eState = e_std; 262cdf0e10cSrcweir break; 263cdf0e10cSrcweir default: 264cdf0e10cSrcweir SetResult(not_done, pop_failure); 265cdf0e10cSrcweir eState = e_none; 266cdf0e10cSrcweir } // end switch 267cdf0e10cSrcweir } 268cdf0e10cSrcweir else 269cdf0e10cSrcweir { 270cdf0e10cSrcweir bIsPreDeclaration = true; 271cdf0e10cSrcweir SetResult(done, pop_success); 272cdf0e10cSrcweir eState = e_none; 273cdf0e10cSrcweir } 274cdf0e10cSrcweir } 275cdf0e10cSrcweir 276cdf0e10cSrcweir void 277cdf0e10cSrcweir PE_Interface::On_need_curlbr_open_Punctuation(const char * i_sText) 278cdf0e10cSrcweir { 279cdf0e10cSrcweir if (i_sText[0] == '{') 280cdf0e10cSrcweir { 281cdf0e10cSrcweir store_Interface(); 282cdf0e10cSrcweir 283cdf0e10cSrcweir SetResult(done, stay); 284cdf0e10cSrcweir eState = e_std; 285cdf0e10cSrcweir } 286cdf0e10cSrcweir else { 287cdf0e10cSrcweir csv_assert(false); 288cdf0e10cSrcweir } 289cdf0e10cSrcweir } 290cdf0e10cSrcweir 291cdf0e10cSrcweir 292cdf0e10cSrcweir void 293cdf0e10cSrcweir PE_Interface::On_std_Metatype(const char * i_sText) 294cdf0e10cSrcweir { 295cdf0e10cSrcweir if (strcmp(i_sText,"attribute") == 0) 296cdf0e10cSrcweir On_std_GotoAttribute(i_sText); 297cdf0e10cSrcweir else if (strcmp(i_sText,"interface") == 0) 298cdf0e10cSrcweir On_std_GotoBaseInterface(i_sText); 299cdf0e10cSrcweir else 300cdf0e10cSrcweir On_std_GotoFunction(i_sText); 301cdf0e10cSrcweir } 302cdf0e10cSrcweir 303cdf0e10cSrcweir void 304cdf0e10cSrcweir PE_Interface::On_std_Punctuation(const char * i_sText) 305cdf0e10cSrcweir { 306cdf0e10cSrcweir switch (i_sText[0]) 307cdf0e10cSrcweir { 308cdf0e10cSrcweir case '}': 309cdf0e10cSrcweir SetResult(done, stay); 310cdf0e10cSrcweir eState = need_finish; 311cdf0e10cSrcweir break; 312cdf0e10cSrcweir case ';': // Appears after base interface declarations. 313cdf0e10cSrcweir SetResult(done, stay); 314cdf0e10cSrcweir break; 315cdf0e10cSrcweir default: 316cdf0e10cSrcweir SetResult(not_done, pop_failure); 317cdf0e10cSrcweir eState = e_none; 318cdf0e10cSrcweir } // end switch 319cdf0e10cSrcweir } 320cdf0e10cSrcweir 321cdf0e10cSrcweir void 322cdf0e10cSrcweir PE_Interface::On_std_Stereotype(const char * i_sText) 323cdf0e10cSrcweir { 324cdf0e10cSrcweir if (strcmp(i_sText,"oneway") == 0) 325cdf0e10cSrcweir On_std_GotoFunction(i_sText); 326cdf0e10cSrcweir else if ( strcmp(i_sText,"readonly") == 0 327cdf0e10cSrcweir OR strcmp(i_sText,"bound") == 0 ) 328cdf0e10cSrcweir On_std_GotoAttribute(i_sText); 329cdf0e10cSrcweir else if (strcmp(i_sText,"optional") == 0) 330cdf0e10cSrcweir { 331cdf0e10cSrcweir bOptionalMember = true; 332cdf0e10cSrcweir SetResult(done, stay); 333cdf0e10cSrcweir } 334cdf0e10cSrcweir else 335cdf0e10cSrcweir SetResult(not_done, pop_failure); 336cdf0e10cSrcweir } 337cdf0e10cSrcweir 338cdf0e10cSrcweir void 339cdf0e10cSrcweir PE_Interface::On_std_GotoFunction(const char * ) 340cdf0e10cSrcweir { 341cdf0e10cSrcweir SetResult(not_done, push_sure, pPE_Function.Ptr()); 342cdf0e10cSrcweir eState = in_function; 343cdf0e10cSrcweir } 344cdf0e10cSrcweir 345cdf0e10cSrcweir void 346cdf0e10cSrcweir PE_Interface::On_std_GotoAttribute(const char * ) 347cdf0e10cSrcweir { 348cdf0e10cSrcweir SetResult(not_done, push_sure, pPE_Attribute.Ptr()); 349cdf0e10cSrcweir eState = in_attribute; 350cdf0e10cSrcweir } 351cdf0e10cSrcweir 352cdf0e10cSrcweir void 353cdf0e10cSrcweir PE_Interface::On_std_GotoBaseInterface(const char * ) 354cdf0e10cSrcweir { 355cdf0e10cSrcweir SetResult(done, push_sure, pPE_Type.Ptr()); 356cdf0e10cSrcweir eState = in_base_interface; 357cdf0e10cSrcweir } 358cdf0e10cSrcweir 359cdf0e10cSrcweir void 360cdf0e10cSrcweir PE_Interface::On_need_finish_Punctuation(const char * i_sText) 361cdf0e10cSrcweir { 362cdf0e10cSrcweir switch (i_sText[0]) 363cdf0e10cSrcweir { 364cdf0e10cSrcweir case ';': 365cdf0e10cSrcweir SetResult(done, pop_success); 366cdf0e10cSrcweir eState = e_none; 367cdf0e10cSrcweir break; 368cdf0e10cSrcweir default: 369cdf0e10cSrcweir SetResult(not_done, pop_failure); 370cdf0e10cSrcweir eState = e_none; 371cdf0e10cSrcweir } // end switch 372cdf0e10cSrcweir } 373cdf0e10cSrcweir 374cdf0e10cSrcweir void 375cdf0e10cSrcweir PE_Interface::On_Default(const char *) 376cdf0e10cSrcweir { 377cdf0e10cSrcweir SetResult(not_done, pop_failure); 378cdf0e10cSrcweir } 379cdf0e10cSrcweir 380cdf0e10cSrcweir void 381cdf0e10cSrcweir PE_Interface::InitData() 382cdf0e10cSrcweir { 383cdf0e10cSrcweir eState = need_interface; 384cdf0e10cSrcweir 385cdf0e10cSrcweir sData_Name.clear(); 386cdf0e10cSrcweir bIsPreDeclaration = false; 387cdf0e10cSrcweir pCurInterface = 0; 388cdf0e10cSrcweir nCurInterface = 0; 389cdf0e10cSrcweir nCurParsed_Base = 0; 390cdf0e10cSrcweir bOptionalMember = false; 391cdf0e10cSrcweir } 392cdf0e10cSrcweir 393cdf0e10cSrcweir void 394cdf0e10cSrcweir PE_Interface::TransferData() 395cdf0e10cSrcweir { 396cdf0e10cSrcweir if (NOT bIsPreDeclaration) 397cdf0e10cSrcweir { 398cdf0e10cSrcweir csv_assert(sData_Name.size() > 0); 399cdf0e10cSrcweir csv_assert(nCurInterface.IsValid()); 400cdf0e10cSrcweir } 401cdf0e10cSrcweir else 402cdf0e10cSrcweir { 403cdf0e10cSrcweir sData_Name.clear(); 404cdf0e10cSrcweir pCurInterface = 0; 405cdf0e10cSrcweir nCurInterface = 0; 406cdf0e10cSrcweir } 407cdf0e10cSrcweir 408cdf0e10cSrcweir eState = e_none; 409cdf0e10cSrcweir } 410cdf0e10cSrcweir 411cdf0e10cSrcweir void 412cdf0e10cSrcweir PE_Interface::ReceiveData() 413cdf0e10cSrcweir { 414cdf0e10cSrcweir switch (eState) 415cdf0e10cSrcweir { 416cdf0e10cSrcweir case in_base: 417cdf0e10cSrcweir eState = need_curlbr_open; 418cdf0e10cSrcweir break; 419cdf0e10cSrcweir case in_function: 420cdf0e10cSrcweir eState = e_std; 421cdf0e10cSrcweir break; 422cdf0e10cSrcweir case in_attribute: 423cdf0e10cSrcweir eState = e_std; 424cdf0e10cSrcweir break; 425cdf0e10cSrcweir case in_base_interface: 426cdf0e10cSrcweir if (bOptionalMember) 427cdf0e10cSrcweir { 428cdf0e10cSrcweir pPE_Type->SetOptional(); 429cdf0e10cSrcweir bOptionalMember = false; 430cdf0e10cSrcweir } 431cdf0e10cSrcweir pCurInterface->Add_Base( 432cdf0e10cSrcweir nCurParsed_Base, 433cdf0e10cSrcweir pPE_Type->ReleaseDocu()); 434cdf0e10cSrcweir nCurParsed_Base = 0; 435cdf0e10cSrcweir eState = e_std; 436cdf0e10cSrcweir break; 437cdf0e10cSrcweir default: 438cdf0e10cSrcweir csv_assert(false); 439cdf0e10cSrcweir } 440cdf0e10cSrcweir } 441cdf0e10cSrcweir 442cdf0e10cSrcweir UnoIDL_PE & 443cdf0e10cSrcweir PE_Interface::MyPE() 444cdf0e10cSrcweir { 445cdf0e10cSrcweir return *this; 446cdf0e10cSrcweir } 447cdf0e10cSrcweir 448cdf0e10cSrcweir void 449cdf0e10cSrcweir PE_Interface::store_Interface() 450cdf0e10cSrcweir { 451cdf0e10cSrcweir pCurInterface = & Gate().Ces().Store_Interface( 452cdf0e10cSrcweir CurNamespace().CeId(), 453cdf0e10cSrcweir sData_Name, 454cdf0e10cSrcweir nCurParsed_Base ); 455cdf0e10cSrcweir nCurInterface = pCurInterface->CeId(); 456cdf0e10cSrcweir PassDocuAt(*pCurInterface); 457cdf0e10cSrcweir } 458cdf0e10cSrcweir 459cdf0e10cSrcweir 460cdf0e10cSrcweir } // namespace uidl 461cdf0e10cSrcweir } // namespace csi 462