Guest User

Untitled

a guest
Nov 24th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.02 KB | None | 0 0
  1. pragma solidity ^0.4.16;
  2. contract RestaurantMASTER{
  3. event logStatus(uint orderNumber, bytes input, uint256 timestamp);
  4.  
  5. //Initialize State-variables(!)
  6. function RestaurantMASTER(){
  7. tokens[0]++;
  8. CU = Customer(newCustomer()); //[0] @contracts
  9. WA = Waiter(newWaiter()); //[1]
  10. CH = Chef(newChef()); //[2]
  11. DB = dataBase(newDataBase()); //[3]
  12.  
  13. }
  14.  
  15. //Contract 'Objects'
  16. address[] public contracts;
  17. Customer CU;
  18. Waiter WA;
  19. Chef CH;
  20. dataBase DB;
  21.  
  22.  
  23. //Casual State-Variables
  24. int[] public tokens = new int[](7);
  25. uint public orderNumber = -1;
  26.  
  27.  
  28. function newCustomer() private returns(address newContract){
  29. CU = new Customer();
  30. contracts.push(CU);
  31. return (CU);
  32. }
  33. function newWaiter () private returns(address newContract) {
  34. WA = new Waiter();
  35. contracts.push(WA);
  36. return (WA);
  37. }
  38. function newChef () private returns(address newContract) {
  39. CH = new Chef();
  40. contracts.push(CH);
  41. return (CH);
  42. }
  43. function newDataBase() private returns(address newContract){
  44. DB = new dataBase();
  45. contracts.push(DB);
  46. return (DB);
  47. }
  48. /*Function-Behavior:
  49. 1. Check if Token for function is available
  50. 2. Execute all possible automatic functions until further Manual/User-Tasks need to be done
  51. 3. Hand Token over to those Manual/User-Tasks
  52. 4. Remove own Token
  53. */
  54. function OrderPizza(){
  55. orderNumber++;
  56. if(tokens[0] == 1){
  57. tokens[0] = 0;
  58. tokens[2]++;
  59. logStatus(orderNumber,"Pizza ordered", now);
  60. } else {revert();}
  61. }
  62.  
  63. function TakeTheOrder(){
  64. if(tokens[2] == 1){
  65. tokens[2] = 0;
  66. tokens[3]++;
  67. logStatus(orderNumber,"Order taken", now);
  68. } else {revert();}
  69. }
  70.  
  71. function PreparePizza(){
  72. if(tokens[3] == 1){
  73. tokens[3] = 0;
  74. tokens[4]++;
  75. logStatus(orderNumber,"Pizza Prepared", now);
  76. } else {revert();}
  77. }
  78. function PokeTheWaiter(){
  79. if(tokens[4] == 1){
  80. tokens[4] = 0;
  81. tokens[6]++;
  82. logStatus(orderNumber,"Waiter has been poked", now);
  83. } else {revert();}
  84.  
  85. function WaiterBringsPizza(){
  86. if(tokens[4] == 1){
  87. tokens[4] = 0;
  88. tokens[7]++;
  89. logStatus(orderNumber,"Waiter is bringing Pizza", now);
  90. } else {revert();}
  91. }
  92. function CustomerReceivesPizza(){
  93. if(tokens[7] == 1){
  94. tokens[7] = 0;
  95. logStatus(orderNumber,"Customer eats Pizza", now);
  96. } else {revert();}
  97. }
  98.  
  99.  
  100.  
  101. }
  102. }
  103. contract Customer{
  104. event logStatus(uint orderNumber, bytes input, uint256 timestamp);
  105.  
  106. }
  107. contract Chef{
  108. event logStatus(uint orderNumber, bytes input, uint256 timestamp);
  109.  
  110. }
  111.  
  112. contract Waiter{
  113. event logStatus(uint orderNumber, bytes input, uint256 timestamp);
  114.  
  115. }
  116.  
  117. contract dataBase{
  118. event logStatus(uint orderNumber, bytes input, uint256 timestamp);
  119.  
  120. }
Add Comment
Please, Sign In to add comment