Field3D
InitIO.cpp
Go to the documentation of this file.
1 //----------------------------------------------------------------------------//
2 
3 /*
4  * Copyright (c) 2009 Sony Pictures Imageworks Inc
5  *
6  * All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  *
12  * Redistributions of source code must retain the above copyright
13  * notice, this list of conditions and the following disclaimer.
14  * Redistributions in binary form must reproduce the above copyright
15  * notice, this list of conditions and the following disclaimer in the
16  * documentation and/or other materials provided with the
17  * distribution. Neither the name of Sony Pictures Imageworks nor the
18  * names of its contributors may be used to endorse or promote
19  * products derived from this software without specific prior written
20  * permission.
21  *
22  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
25  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
26  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
27  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
28  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
29  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
31  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
32  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
33  * OF THE POSSIBILITY OF SUCH DAMAGE.
34  */
35 
36 //----------------------------------------------------------------------------//
37 
42 //----------------------------------------------------------------------------//
43 
44 #include "InitIO.h"
45 
46 #include "DenseFieldIO.h"
47 #include "SparseFieldIO.h"
48 #include "MACFieldIO.h"
49 #include "FieldMappingIO.h"
50 #include "MIPFieldIO.h"
51 
52 //----------------------------------------------------------------------------//
53 
55 
56 //----------------------------------------------------------------------------//
57 
58 namespace {
59 
60  size_t g_numIOThreads = 1;
61 
62 }
63 
64 //----------------------------------------------------------------------------//
65 
66 void initIO()
67 {
68  static boost::mutex mutex;
69  boost::mutex::scoped_lock lock(mutex);
70 
72 
73  factory.registerFieldIO(DenseFieldIO::create);
74  factory.registerFieldIO(SparseFieldIO::create);
75  factory.registerFieldIO(MACFieldIO::create);
76  factory.registerFieldIO(MIPFieldIO::create);
77 
81 }
82 
83 //----------------------------------------------------------------------------//
84 
85 void setNumIOThreads(const size_t numThreads)
86 {
87  g_numIOThreads = numThreads;
88 }
89 
90 //----------------------------------------------------------------------------//
91 
92 size_t numIOThreads()
93 {
94  return g_numIOThreads;
95 }
96 
97 //----------------------------------------------------------------------------//
98 
100 
101 //----------------------------------------------------------------------------//
102 
Contains the FieldMappingIO base class and the NullFieldMappingIO and MatrixFieldMappingIO subclasses...
void setNumIOThreads(const size_t numThreads)
Sets the number of threads to use for I/O multi-threading.
Definition: InitIO.cpp:85
size_t numIOThreads()
Returns the number of I/O threads to use.
Definition: InitIO.cpp:92
Contains the initIO function.
static ClassFactory & singleton()
}
void registerFieldIO(CreateFieldIOFnPtr createFunc)
Registers an IO class with the class pool.
void registerFieldMappingIO(CreateFieldMappingIOFnPtr createFunc)
Registers an IO class with the class pool.
static FieldMappingIO::Ptr create()
static FieldMappingIO::Ptr create()
static FieldMappingIO::Ptr create()
void initIO()
Initializes the built-in Field3D IO classes.
Definition: InitIO.cpp:66
#define FIELD3D_NAMESPACE_SOURCE_CLOSE
Definition: ns.h:60