summaryrefslogtreecommitdiffstats
path: root/tags/cpp-0.1.incubating-M1-final/sca/runtime/core/src/osoa/sca/ModuleContextImpl.h
blob: 5950313a0634059a9c508925f9c4f8086789930f (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
/*
 *
 *  Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
 *
 *  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.
 */

/* $Rev$ $Date: 2005/12/22 11:33:21 $ */

#ifndef osoa_sca_modulecontextimpl_h
#define osoa_sca_modulecontextimpl_h
#include "tuscany/sca/model/Module.h"
#include "tuscany/sca/core/ServiceProxy.h"

namespace osoa
{
    namespace sca
    {
        /** 
         * Contains the actual implementation of a ModuleContext interface.
         */
        class ModuleContextImpl  
        {
        
        public:
            /** 
             * Constructor that takes a Module which represents the runtime
             * model for this context.
             */
            ModuleContextImpl(tuscany::sca::model::Module* module);

            /**
             * See ModuleContext#locateService.
             */
            void* locateService(const char* serviceName);
            
            /**
             * Destructor.
             */
            virtual ~ModuleContextImpl();
        private:
            ModuleContextImpl(const ModuleContextImpl&);
            ModuleContextImpl& operator=(const ModuleContextImpl&);

            /**
             * Pointer to the runtime model Module object to which this
             * context refers.
             */
            tuscany::sca::model::Module* module;

            typedef vector<tuscany::sca::ServiceProxy*> PROXIES;
            /**
             * Vector of proxies created from calls to the locateService
             * method.
             */
            PROXIES proxies;
        };
    } // End namespace sca
} // End namespace osoa

#endif // osoa_sca_modulecontextimpl_h