/* Copyright (C) 2014 InfiniDB, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /******************************************************************************* * $Id: we_bulkstatus.h 4648 2013-05-29 21:42:40Z rdempsey $ * *******************************************************************************/ /** @file */ #pragma once #if 0 // defined(_MSC_VER) && defined(WE_BULKSTATUS_DLLEXPORT) #define EXPORT __declspec(dllexport) #else #define EXPORT #endif namespace WriteEngine { // Defined this class to hold the global JobStatus flag rather then storing in // BulkLoad, because that would introduce circular dependencies, with the other // classes needing BulkLoad. So put the JobStatus in a separate class. class BulkStatus { public: static int getJobStatus() { return fJobStatus; } static void setJobStatus(int jobStatus) { fJobStatus = jobStatus; } private: /* @brief Global job status flag. * Declared volatile to insure that all threads see when this flag is * changed. We don't worry about using a mutex since we are just using * as a flag. Making the variable volatile should suffice, to make it * work with multiple threads. */ static volatile int fJobStatus; }; } // namespace WriteEngine #undef EXPORT