Newcomers

warning: Creating default object from empty value in /home/hplus/enchantedage.com/modules/taxonomy/taxonomy.pages.inc on line 33.
Not very complex stuff.
jwatte's picture

Android programming, layouts and activities

I've been doing some Android programming, trying to get a feel for what an Android app would look like when structured as a main screen, some set-up screens, and a main gameplay screen (which then wants to go back to the main screen). I've fought a bit with the built-in Android layout views. They seem to be missing some capabilities that would be really useful.

jwatte's picture

main.cpp

#include "etwork/etwork.h"
#include "etwork/buffer.h"
#include "etwork/errors.h"
#include "etwork/notify.h"
#include "etwork/marshal.h"
 
#include <assert.h>
#include <stdio.h>
#include <string>
#include <math.h>
 
#if defined( NDEBUG )
#pragma warning( disable: 4101 )  //  unreferenced local variable
#endif
 
 
void TestEtworkCreate()
{
  EtworkSettings es;

jwatte's picture

tester

A simple command-line program that exercises parts of the Etwork API and asserts if something fails. Think of it as an API acceptance test.

jwatte's picture

sockimpl.h

#if !defined( etwork_sockimpl_h )
#define etwork_sockimpl_h
 
#include "etwork/etwork.h"
#include "etwork/locker.h"
#include "etwork/buffer.h"
#include "etwork/timer.h"
#include "etwork/errors.h"
#include "etwork/notify.h"
 
#if defined( WIN32 )
#include <windows.h>
#endif
 
#include <stdio.h>  //  for _snprintf
#include <math.h>
 
#include <string>
#include <map>

jwatte's picture

socketbase.cpp

#include "sockimpl.h"
 
using namespace etwork;
using namespace etwork::impl;
 
 
SocketManager::SocketManager()
{
  listening_ = INVALID_SOCKET;
  maxNumSocks_ = FD_SETSIZE;
  numSocks_ = 0;
  maxSock_ = 0;
  allSet_ = (fd_set *)::operator new( sizeof(fd_set) );
  FD_ZERO( allSet_ );
  readSet_ = (fd_set *)::operator new( sizeof(fd_set) );
  FD_ZERO( readSet_ );

jwatte's picture

marshal.cpp

#include <assert.h>
#include <string>
#include <math.h>
#include <map>
 
#include "etwork/marshal.h"
 
namespace marshaller {
 
inline std::string operator+( std::string const & left, int right ) {
  char buf[24];
  sprintf( buf, "%d", right );
  return left + std::string( buf );
}
 
inline std::string operator+( std::string const & left, size_t right ) {
  char buf[24];

jwatte's picture

errors.cpp

#include "sockimpl.h"
#include <stdarg.h>
 
using namespace etwork;
using namespace etwork::impl;
 
#if !defined( NDEBUG )
bool etwork::impl::gDebugging = true;
#else
bool etwork::impl::gDebugging = false;
#endif
 
bool etwork::impl::wsOpen = false;
 
Lock etwork::impl::gethostLock; //!< gethostbyname is not thread safe
 
IErrorNotify * etwork::impl::gErrorNotify;

jwatte's picture

buffer.cpp

#include "etwork/buffer.h"
 
#include <string.h>
#include <deque>
#include <assert.h>
 
using namespace etwork;
 
//! The framing protocol for etwork::Buffer is simple: each packet is 
//! preceded by a two-byte length, in network-endian order.
//! If random data is received, this may result in arbitrary packet 

jwatte's picture

block.cpp

#include "etwork/marshal.h"
 
 
Block::Block( void * base, size_t size )
{
  buf_ = (unsigned char *)base;
  size_ = size;
  pos_ = 0;
  deleteIt_ = false;
  atEof_ = false;
}
 
Block::Block( size_t size )
{
  buf_ = (unsigned char *)::operator new( size );
  size_ = size;
  pos_ = 0;
  deleteIt_ = true;
  atEof_ = false;
}
 
Block::~Block()
{
  if( deleteIt_ ) {

jwatte's picture

lib

Source code for the actual library -- includes code that calls WinSock to do actual network I/O.

Syndicate content