// Copyright (C) 2010-2016  MarketFactory, Inc. All Rights Reserved.
//================================================================================
//   This file is auto-generated; DO NOT EDIT!
//================================================================================

#ifndef __MFAPIGEN_VERSIONMESSAGE__
#define __MFAPIGEN_VERSIONMESSAGE__

#include <API/Clients/CPP/Proto/APITypes.h>
#include <API/Clients/CPP/MFAPIClient/MFMessage.h>

#include <iosfwd>
#include <string>
#include <vector>

namespace MFAPI {

/** A message that describes meta-data about the process generating
 * it.     This is used as a preamble to all our logfiles (this
 * information can be pulled out with a Python script), and as a
 * hand-shake between clients and servers, for version
 * identification.
 */

class VersionMessage : public MFMessage
{
public:
    static const uint16_t ID = 0x0;

    //--------------------------------------------------------------------------
    // Public attributes.

    std::string program;

    int8_t version_major;

    int8_t version_minor;

    int8_t version_micro;

    std::string version_extra;

    std::string revision;

    std::string commitdate;

    std::string branch;

    std::string build;

    std::string arch;

    std::string host;

    std::string date;

    std::string time;

    std::string compiler;

    std::string defines;

    std::string builduser;

    std::string distribution;

    std::string platform;

    /** The API protocol.
     */
    std::string protosig;

    int32_t syncSize;

    /** The internal protocol.
     */
    std::string extra1;

    /** The PID of the writer process.
     */
    std::string extra2;

    /** The API implementation language.
     */
    std::string extra3;

    std::string extra4;

    std::string extra5;

    //--------------------------------------------------------------------------

    VersionMessage();
    ~VersionMessage();

    bool operator==(const VersionMessage&) const;
    bool operator!=(const VersionMessage&) const;
    bool operator<(const VersionMessage&) const;

    virtual MsgType_t getMsgType() const { return ID; }
    virtual void dump(std::ostream& os, bool pretty) const;
    virtual void read(void*);
    virtual void write(void*) const;
    virtual void dump(void*) const;

};

std::ostream& operator<<(std::ostream& os, const VersionMessage& o);

} // MFAPI

#endif
// InclKwds: VersionMessage
/*
Brought to you by
/opt/atlassian/bamboo-agent/xml-data/build-dir/GAT-GWY-B3/Messaging/main.py --root /opt/atlassian/bamboo-agent/xml-data/build-dir/GAT-GWY-B3 --commit-date 2016-12-06T18:11:31.205-05:00 --revision 19c07f7ab2ea0612a19fbcabdd4a54e242830e7d --branch master --generated_directory /opt/atlassian/bamboo-agent/xml-data/build-dir/GAT-GWY-B3/build/rh7_3.13.0/release/intel64/generated/Python -o /opt/atlassian/bamboo-agent/xml-data/build-dir/GAT-GWY-B3/build/rh7_3.13.0/release/intel64/generated/API/Clients/CPP/Proto -i /opt/atlassian/bamboo-agent/xml-data/build-dir/GAT-GWY-B3/Messaging/MFProtocol --namespace=MFAPI cppapi /opt/atlassian/bamboo-agent/xml-data/build-dir/GAT-GWY-B3/Messaging/MFProtocol.proto.3130 /opt/atlassian/bamboo-agent/xml-data/build-dir/GAT-GWY-B3/Messaging/MFObsolete.proto.3130 
*/
