/usr/include/mamda/MamdaOrderBookChecker.h is in libmamda-dev 2.2.2.1-10.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | /* $Id$
*
* OpenMAMA: The open middleware agnostic messaging API
* Copyright (C) 2011 NYSE Technologies, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301 USA
*/
#ifndef MamdaOrderBookCheckerH
#define MamdaOrderBookCheckerH
#include <mamda/MamdaOptionalConfig.h>
#include <mamda/MamdaSubscription.h>
#include <mamda/MamdaOrderBookCheckerHandler.h>
#include <mama/mamacpp.h>
namespace Wombat
{
class MamdaOrderBook;
class MamdaOrderBookListener;
class MamdaOrderSource;
/**
* MamdaOrderBookChecker is a class that provides order book sanity
* checking by periodically requesting snapshots of the order book
* from the publisher and comparing that with an order book being
* maintained in real time. This class is purely for testing
* purposes, to test for possible configuration or programming errors
* in the order book publisher and in MAMDA order book management
* code.
*
* The developer registers a handler that contains callbacks for
* successful, inconclusive and failure events. The developer also
* provides an interval representing the frequency of the snapshot
* checks. The first check will take place at some random point in
* time between zero and the interval.
*/
class MAMDAOPTExpDLL MamdaOrderBookChecker
{
MamdaOrderBookChecker (const MamdaOrderBookChecker&);
MamdaOrderBookChecker& operator= (const MamdaOrderBookChecker&);
public:
/**
* Constructor for the order book checker. The caller registers a
* callback for events related to the checker.
*
* @param realTimeBook The real time order book to compare against.
* This param is "const" because we are not supposed to change it,
* even though it will change underneath us.
*
* @param realTimeSubsc The MamdaSubscription associated
* with the realTimeBook. We need it to access the message-level
* sequence number. This param is "const" because we are not
* supposed to change it, even though it will change underneath
* us.
*
* @param realTimeListener The MamdaOrderBookListener associated
* with the realTimeBook.
*
* @param handler The user-provided callback handler.
*
* @param intervalSeconds The number of seconds between checks.
*/
MamdaOrderBookChecker (const MamdaOrderBook& realTimeBook,
const MamdaSubscription& realTimeSubsc,
MamdaOrderBookListener& realTimeListener,
MamdaOrderBookCheckerHandler* handler,
mama_f64_t intervalSeconds);
MamdaOrderBookChecker (MamaQueue* queue,
MamdaOrderBookCheckerHandler* handler,
MamaSource* source,
const char* symbol,
mama_f64_t intervalSeconds);
/**
* Destructor
*/
~MamdaOrderBookChecker();
/**
* Perform an ad hoc snapshot check now. This may be useful if
* the checking is to be performed by some external trigger event.
*/
void checkSnapShotNow();
/**
* @return The number of successful checks.
*/
mama_u32_t getSuccessCount() const;
/**
* Return the number of inconclusive counts. An attempt to check
* the order book may be inconclusive if the order book sequence
* numbers do not match up.
*
* @return The number of inconclusive checks.
*/
mama_u32_t getInconclusiveCount() const;
/**
* Return the number of failed checks. This should be zero, of course.
*
* @return The number of failed checks.
*/
mama_u32_t getFailureCount() const;
struct MamdaOrderBookCheckerImpl;
private:
MamdaOrderBookCheckerImpl& mImpl;
};
} // namespace
#endif // MamdaOrderBookCheckerH
|