-
Path: news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!p
ostnews.google.com!x25g2000yqj.googlegroups.com!not-for-mail
From: Selvin <p...@g...com>
Newsgroups: pl.comp.programming
Subject: Re: Streamin c#
Date: Wed, 1 Sep 2010 08:31:09 -0700 (PDT)
Organization: http://groups.google.com
Lines: 66
Message-ID: <0...@x...googlegroups.com>
References: <i53218$sgk$1@news.onet.pl>
NNTP-Posting-Host: 217.97.163.80
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
X-Trace: posting.google.com 1283355069 8968 127.0.0.1 (1 Sep 2010 15:31:09 GMT)
X-Complaints-To: g...@g...com
NNTP-Posting-Date: Wed, 1 Sep 2010 15:31:09 +0000 (UTC)
Complaints-To: g...@g...com
Injection-Info: x25g2000yqj.googlegroups.com; posting-host=217.97.163.80;
posting-account=R8EpSwoAAADeCYcG96LM5BAc_tdIdesQ
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/533.4
(KHTML, like Gecko) Chrome/5.0.375.127 Safari/533.4,gzip(gfe)
Xref: news-archive.icm.edu.pl pl.comp.programming:186756
[ ukryj nagłówki ]po co stream :) kolejka nie moze byc?
jak chcesz to mozesz to odziedziczyc po System.IO.Stream
public class MyBuffer
{
Queue<MemoryChunk> buffers = new Queue<MemoryChunk>();
object readlock = new object();
public uint AvailableDataLength { get; private set; }
public void Write(byte[] data, int offset, int count)
{
var mem = AllocateMemoryChunk(count);
Buffer.BlockCopy(data, offset, mem.Buffer, 0, count);
lock (readlock)
{
buffers.Enqueue(mem);
AvailableDataLength += count;
}
}
public int Read(byte[] buffer, int offset, int count)
{
int toread = 0;
lock (readlock)
{
if (buffers.Count != 0)
{
var buf = buffers.Peek();
toread = buf.Buffer.Length - buf.Offset;
int off = buf.Offset;
if (count >= toread)
buffers.Dequeue();
else
{
toread = count;
buf.Offset += toread;
}
Buffer.BlockCopy(buf.Buffer, off, buffer, offset,
toread);
AvailableDataLength -= toread;
}
return toread;
}
}
private MemoryChunk AllocateMemoryChunk(int newSize)
{
//zawsze mozna zrobic z tego pool zeby nie tworzyc nowych
MemoryChunk chunk = new MemoryChunk(newSize);
return chunk;
}
private class MemoryChunk
{
internal byte[] Buffer;
internal int Offset = 0;
internal MemoryChunk(uint bufferSize)
{
Buffer = new byte[bufferSize];
Offset = 0;
}
}
}
Następne wpisy z tego wątku
Najnowsze wątki z tej grupy
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
Najnowsze wątki
- 2025-07-16 Warszawa => Inżynier oprogramowania .Net <=
- 2025-07-16 Tadeusz Rolke RIP
- 2025-07-14 Dwa dylematy
- 2025-07-14 Re: Dwa dylematy
- 2025-07-14 [UOKiK] Jeronimo Martins, właścicielowi sieci Biedronka, [przedstawił zarzut] udział[u] w zmowie z 32 firmami transportowymi.
- 2025-07-14 Re: Dwa dylematy
- 2025-07-14 Re: Dwa dylematy
- 2025-07-15 w czasach LED komary mają ciężko
- 2025-07-14 walizka z kodami
- 2025-07-15 Warszawa => Konsultant Wiodący SAP PP <=
- 2025-07-15 Warszawa => Lead SAP PP Consultant <=
- 2025-07-15 China => Production Coordinator / Representant Product Dev <=
- 2025-07-15 Warszawa => IT Data Analyst (Power BI) <=
- 2025-07-15 Teoretyczny przypadek
- 2025-07-15 Totaliztyczne Prawa i Obowiązki Człowieka: dodałem p. 11 zabraniający efektywnych, podatków przekraczających 49% zysków