// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
-// file license.txt or http://www.opensource.org/licenses/mit-license.php.
-
-#ifndef __cplusplus
-# error This header can only be compiled as C++.
-#endif
+// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef __INCLUDED_PROTOCOL_H__
#define __INCLUDED_PROTOCOL_H__
#include "serialize.h"
#include "netbase.h"
-#include <string>
#include "uint256.h"
+#include "version.h"
extern bool fTestNet;
-static inline unsigned short GetDefaultPort(const bool testnet = fTestNet)
+inline unsigned short GetDefaultPort()
{
- return testnet ? 18333 : 8333;
+ return static_cast<unsigned short>(fTestNet ? 17777 : 7777);
}
// TODO: make private (improves encapsulation)
public:
- enum { COMMAND_SIZE=12 };
- char pchMessageStart[sizeof(::pchMessageStart)];
+ enum {
+ MESSAGE_START_SIZE=sizeof(::pchMessageStart),
+ COMMAND_SIZE=12,
+ MESSAGE_SIZE_SIZE=sizeof(int),
+ CHECKSUM_SIZE=sizeof(int),
+
+ MESSAGE_SIZE_OFFSET=MESSAGE_START_SIZE+COMMAND_SIZE,
+ CHECKSUM_OFFSET=MESSAGE_SIZE_OFFSET+MESSAGE_SIZE_SIZE
+ };
+ char pchMessageStart[MESSAGE_START_SIZE];
char pchCommand[COMMAND_SIZE];
unsigned int nMessageSize;
unsigned int nChecksum;
/** nServices flags */
enum
{
- NODE_NETWORK = (1 << 0),
+ NODE_NETWORK = (1 << 0)
};
/** A CService with information about it as peer */
{
public:
CAddress();
- explicit CAddress(CService ipIn, uint64 nServicesIn=NODE_NETWORK);
-
- void Init();
+ explicit CAddress(CService ipIn, uint64_t nServicesIn=NODE_NETWORK);
IMPLEMENT_SERIALIZE
(
READWRITE(*pip);
)
- void print() const;
-
// TODO: make private (improves encapsulation)
public:
- uint64 nServices;
+ uint64_t nServices;
// disk and network only
unsigned int nTime;
// memory only
- int64 nLastTry;
+ int64_t nLastTry;
};
/** inv message data */
bool IsKnownType() const;
const char* GetCommand() const;
std::string ToString() const;
- void print() const;
// TODO: make private (improves encapsulation)
public: