Sha256: 3cebe9e62893841e87b0b8f0dc6fce84e2145741a1b2815b26e712695c50700f

Contents?: true

Size: 1.73 KB

Versions: 15

Compression:

Stored size: 1.73 KB

Contents

/*****************************************************************************

$Id$

File:     page.cpp
Date:     30Apr06

Copyright (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
Gmail: blackhedd

This program is free software; you can redistribute it and/or modify
it under the terms of either: 1) the GNU General Public License
as published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version; or 2) Ruby's License.

See the file COPYING for complete licensing information.

*****************************************************************************/


#include "project.h"


/******************
PageList::PageList
******************/

PageList::PageList()
{
}


/*******************
PageList::~PageList
*******************/

PageList::~PageList()
{
	while (HasPages())
		PopFront();
}


/***************
PageList::Front
***************/

void PageList::Front (const char **page, int *length)
{
	assert (page && length);

	if (HasPages()) {
		Page p = Pages.front();
		*page = p.Buffer;
		*length = p.Size;
	}
	else {
		*page = NULL;
		*length = 0;
	}
}


/******************
PageList::PopFront
******************/

void PageList::PopFront()
{
	if (HasPages()) {
		Page p = Pages.front();
		Pages.pop_front();
		if (p.Buffer)
			free ((void*)p.Buffer);
	}
}


/******************
PageList::HasPages
******************/

bool PageList::HasPages()
{
	return (Pages.size() > 0) ? true : false;
}


/**************
PageList::Push
**************/

void PageList::Push (const char *buf, int size)
{
	if (buf && (size > 0)) {
		char *copy = (char*) malloc (size);
		if (!copy)
			throw std::runtime_error ("no memory in pagelist");
		memcpy (copy, buf, size);
		Pages.push_back (Page (copy, size));
	}
}





Version data entries

15 entries across 13 versions & 4 rubygems

Version Path
devcycle-ruby-server-sdk-1.1.0 examples/sinatra/vendor/bundle/ruby/3.1.0/gems/eventmachine-1.2.7/ext/page.cpp
devcycle-ruby-server-sdk-1.1.0 examples/sinatra/vendor/bundle/ruby/3.0.0/gems/eventmachine-1.2.7/ext/page.cpp
devcycle-ruby-server-sdk-1.1.0 examples/sinatra/vendor/bundle/ruby/2.6.0/gems/eventmachine-1.2.7/ext/page.cpp
eventmachine-mkroman-1.3.0.dev.1 ext/page.cpp
wj_eventmachine-1.3.2 ext/page.cpp
wj_eventmachine-1.3.1 ext/page.cpp
wj_eventmachine-1.3.0.dev.1 ext/page.cpp
eventmachine-1.2.7-java ext/page.cpp
eventmachine-1.2.7-x64-mingw32 ext/page.cpp
eventmachine-1.2.7-x86-mingw32 ext/page.cpp
eventmachine-1.2.7 ext/page.cpp
eventmachine-1.2.6-x64-mingw32 ext/page.cpp
eventmachine-1.2.6-x86-mingw32 ext/page.cpp
eventmachine-1.2.6-java ext/page.cpp
eventmachine-1.2.6 ext/page.cpp