activemq-cpp-3.9.5
Network.h
Go to the documentation of this file.
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18#ifndef _DECAF_INTERNAL_NET_NETWORK_H_
19#define _DECAF_INTERNAL_NET_NETWORK_H_
20
21#include <decaf/util/Config.h>
22
26
27namespace decaf {
28namespace internal {
29namespace net {
30
31 class NetworkData;
32
39 class DECAF_API Network {
40 private:
41
42 NetworkData* data;
43
44 static Network* networkRuntime;
45
46 private:
47
48 Network(const Network&);
49 Network& operator=(const Network&);
50
51 protected:
52
54
55 public:
56
57 virtual ~Network();
58
70
82
83 template<typename T>
84 void addAsResource(T* value) {
86 this->addNetworkResource(resource);
87 }
88
106
107 public: // Static methods
108
116 static Network* getNetworkRuntime();
117
121 static void initializeNetworking();
122
128 static void shutdownNetworking();
129
130 };
131
132}}}
133
134#endif /* _DECAF_INTERNAL_NET_NETWORK_H_ */
void addAsResource(T *value)
Definition Network.h:84
static void initializeNetworking()
Initialize the Networking layer.
static void shutdownNetworking()
Shutdown the Network layer and free any associated resources, classes in the Decaf library that use t...
decaf::util::concurrent::Mutex * getRuntimeLock()
Gets a pointer to the Network Runtime's Lock object, this can be used by Network layer APIs to synchr...
void addShutdownTask(decaf::lang::Runnable *task)
Register a Runnable to be called when the Network Runtime is shutdown to provide a chance to cleanup ...
static Network * getNetworkRuntime()
Gets the one and only instance of the Network class, if this is called before the Network layer has b...
void addNetworkResource(decaf::internal::util::Resource *value)
Adds a Resource to the Network Runtime, this resource will be held by the runtime until the Library s...
A Generic Resource wraps some type and will delete it when the Resource itself is deleted.
Definition GenericResource.h:36
Interface for all Managed Resources in Decaf, these objects are added to the Runtime System and are d...
Definition Resource.h:33
Interface for a runnable object - defines a task that can be run by a thread.
Definition Runnable.h:29
Mutex object that offers recursive support on all platforms as well as providing the ability to use t...
Definition Mutex.h:39
#define DECAF_API
Definition Config.h:29
Definition DefaultServerSocketFactory.h:27
Definition AprPool.h:26
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
Definition AprPool.h:25