Anonymní profil Jan Kubalek – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Jan Kubalek – Programujte.comAnonymní profil Jan Kubalek – Programujte.com

 

Příspěvky odeslané z IP adresy 2001:1ab0:f15:0:f2de:f1ff...–

C / C++ › Ovládání zařízení
23. 10. 2015   #205841

Veci, ktere by jsi rad "hned z fleku delal" vyzaduji celkem dosti znalosti jak z mechaniky/konstrukce tak z navrhu a programovani embeded software/hardware.

Rozhodne se to nelze naucit za mesic a je lepsi zacit s necim malym (treba arduino a naucit se programovat ATMega processory).

C / C++ › C - allocators...
23. 10. 2015   #205840

Ahoj,

jelikoz pisu program, ktery pracuje s relativne velkym objemem pameti (ktere je rozdelena na male kousicky), napsal jsem si jednoduchy allokator (proste zavola malloc a pote prideluje zarovnane casti pameti...)

Nicmene si nejsem prilis jisty pouzitim. Je jasne, ze pokud mam nejaka surova data (strindy, struktury cisel apod.), pak je dobre je alokovat pomoci allokatoru.

Co kdyz mam ale strukturu, ktera obsahuje dalsi struktury (v cetne alokatoru) [typedef je tam kvuli konzistenci, bohuzel].

typedef struct ffcommand_part {
	int    max;                /**< MAX value of order(sort) attribute. Default val. = 0 */
	int    min;                /**< MIN value of order(sort) attribute. Default val. = 0 */
	list_t list;               /**< */
} ffcommand_part_t;
typedef struct ffcommand {
    allocator_t* allocator;
    ffcommand_part_t* video;
    ffcommand_part_t* audio;
    ffcommand_part_t* input;   /**< input (with options) for ffmpeg */
    ffcommand_part_t* output;  /**< output  (with options) */
} ffcommand_t;

void ffcommand_init(ffcommand_t* command) {
	struct allocator* allocator = malloc(sizeof(allocator_t)); CHMOC(command->allocator);
	allocator_init(allocator, 0);

	void* _al = allocator_malloc(allocator, 4 * sizeof(ffcommand_part_t)); // ??? ??? ???
	*command = (struct ffcommand) {
			.allocator = allocator;
			.video     = (ffcommand_part_t*)_al;
			.audio     = (ffcommand_part_t*)(_al + 1 * sizeof(ffcommand_part_t));
			.input     = (ffcommand_part_t*)(_al + 2 * sizeof(ffcommand_part_t));
			.output    = (ffcommand_part_t*)(_al + 3 * sizeof(ffcommand_part_t));
	};

	ffcommand_part_init(command->video);
	ffcommand_part_init(command->audio);
	ffcommand_part_init(command->input);
	ffcommand_part_init(command->output);
}

Pra danou strukturu alokuji alokator a pote pomoci tohoto alokatoru ziskam pamet pro struktury "audio", "video", "input", "output".

Dulezite je si uvedomit, ze alokator se pouziva hlavne pro plneni "audio", "video", ... spojaku hodnotami...

Smotny jsem vuci tomuto zpusobu rozpolcen, ale nemohu najit padne argumenty, proc takto neinicializovat strukturu, ktera obsahuje zbrusu novy alokator?

Takze se ptam - prijde vam takovato inicializace v poradku? Pokud ano/ne, proc?

Diky,

Honza

Jan Kubalek
MySQL › Zpracovani definovane funkce
31. 7. 2015   #203923

a

Ahoj,

mam otazku ohledne toho, jak se zpracovavaji funkce v MariaDB/MySQL.

Rekneme, ze mame funkci (CREATE FUNCTION), ktera vybere data/radky z tabulky `A` neco s nimi udela a pote je opet vlozi/upravi do/v tabulce A.

Ma otazka zni, jak presne databaze zpracovava funkce?

V moji funkci, kterou jsem popsal vyse, budu mit minimalne jeden select a minimalne jeden update.

Je mozne, aby mezi selectem a updatem nekdo jiny upravil tabulku A, ci z ni cetl? (jestli muze nsatat napr.: - vyberu data z A; neco s nimi delam; do db se pripoji Jenda a chce udelat select; data jsem douprovoval a delam update;).

Proste a jednoduse, jestli behem zpracovavani fce ma nekdo jiny pristup (Select, Update, Delete) k dane tabulce...

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032021 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý